summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/options.s1559
-rwxr-xr-xinclude/main.h12
-rwxr-xr-xld_script.txt1
-rw-r--r--src/options.c1268
-rwxr-xr-xsrc/titlescreen.c4
5 files changed, 1243 insertions, 1601 deletions
diff --git a/asm/options.s b/asm/options.s
deleted file mode 100755
index c31ae6d..0000000
--- a/asm/options.s
+++ /dev/null
@@ -1,1559 +0,0 @@
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_51C9C
-sub_51C9C: @ 0x08051C9C
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- sub sp, #0x8c
- ldr r0, _08051D38 @ =gUnknown_0200B3B8
- mov r8, r0
- ldr r2, _08051D3C @ =gOptionsData
- movs r3, #4
- ldrsh r1, [r2, r3]
- movs r0, #0xe6
- lsls r0, r0, #4
- muls r1, r0, r1
- movs r0, #0xa1
- lsls r0, r0, #3
- add r0, r8
- adds r1, r1, r0
- str r1, [sp, #0x60]
- add r4, sp, #0xc
- mov sl, r4
- mov r6, sp
- adds r6, #0x18
- str r6, [sp, #0x6c]
- mov r7, sp
- adds r7, #0x1c
- str r7, [sp, #0x74]
- mov r0, sp
- adds r0, #0x20
- str r0, [sp, #0x7c]
- movs r0, #0xb8
- lsls r0, r0, #2
- add r0, r8
- mov r3, sl
- mov r1, r8
- adds r1, #0xb8
- mov r2, sp
- movs r4, #2
- mov ip, r4
-_08051CEA:
- stm r2!, {r1}
- stm r3!, {r0}
- adds r0, #0xb8
- adds r1, #0xb8
- movs r6, #1
- rsbs r6, r6, #0
- add ip, r6
- mov r7, ip
- cmp r7, #0
- bge _08051CEA
- movs r0, #0
- mov ip, r0
- movs r1, #8
- add r1, r8
- mov sb, r1
- ldr r2, _08051D40 @ =gUnknown_0200B978
- adds r2, #8
- str r2, [sp, #0x70]
- ldr r0, _08051D44 @ =gUnknown_0200BAE8
- adds r4, r0, #0
- adds r4, #0xb8
- adds r5, r0, #0
- movs r3, #0
- ldr r1, [sp, #0x6c]
- adds r2, r5, #0
- subs r2, #0xb8
-_08051D1E:
- ldr r0, _08051D48 @ =gUnknown_0200293A
- add r0, ip
- ldrb r0, [r0]
- cmp r0, #1
- bne _08051D50
- ldr r6, _08051D3C @ =gOptionsData
- movs r7, #6
- ldrsh r0, [r6, r7]
- cmp r0, #1
- bne _08051D50
- ldr r0, _08051D4C @ =gUnknown_0200C7D8
- str r0, [r1]
- b _08051D52
- .align 2, 0
-_08051D38: .4byte gUnknown_0200B3B8
-_08051D3C: .4byte gOptionsData
-_08051D40: .4byte gUnknown_0200B978
-_08051D44: .4byte gUnknown_0200BAE8
-_08051D48: .4byte gUnknown_0200293A
-_08051D4C: .4byte gUnknown_0200C7D8
-_08051D50:
- str r2, [r1]
-_08051D52:
- ldr r6, [sp, #0x74]
- adds r0, r6, r3
- str r5, [r0]
- ldr r7, [sp, #0x7c]
- adds r0, r7, r3
- str r4, [r0]
- movs r0, #0x8a
- lsls r0, r0, #2
- adds r4, r4, r0
- adds r5, r5, r0
- adds r2, r2, r0
- adds r3, #0xc
- adds r1, #0xc
- movs r6, #1
- add ip, r6
- mov r7, ip
- cmp r7, #5
- ble _08051D1E
- ldr r0, _08051F64 @ =gUnknown_0200C890
- str r0, [sp, #0x64]
- movs r0, #1
- mov r1, r8
- strh r0, [r1]
- movs r2, #1
- mov r1, sp
- movs r3, #2
- mov ip, r3
-_08051D88:
- ldm r1!, {r0}
- strh r2, [r0]
- movs r4, #1
- rsbs r4, r4, #0
- add ip, r4
- mov r6, ip
- cmp r6, #0
- bge _08051D88
- ldr r7, [sp, #0x64]
- adds r7, #8
- str r7, [sp, #0x78]
- movs r2, #1
- mov r1, sl
- movs r0, #2
- mov ip, r0
-_08051DA6:
- ldm r1!, {r0}
- strh r2, [r0]
- movs r3, #1
- rsbs r3, r3, #0
- add ip, r3
- mov r4, ip
- cmp r4, #0
- bge _08051DA6
- movs r0, #1
- ldr r6, [sp, #0x60]
- strh r0, [r6]
- ldr r7, _08051F68 @ =gUnknown_0200B978
- strh r0, [r7]
- movs r0, #0
- mov ip, r0
- ldr r6, [sp, #0x6c]
- movs r3, #1
- movs r2, #0
-_08051DCA:
- adds r1, r2, r6
- movs r5, #2
-_08051DCE:
- ldm r1!, {r0}
- strh r3, [r0]
- subs r5, #1
- cmp r5, #0
- bge _08051DCE
- adds r2, #0xc
- movs r1, #1
- add ip, r1
- mov r4, ip
- cmp r4, #5
- ble _08051DCA
- movs r0, #1
- ldr r6, [sp, #0x64]
- strh r0, [r6]
- ldr r7, _08051F6C @ =gUnknown_0200C948
- strh r0, [r7]
- ldr r5, _08051F70 @ =gOptionsData
- adds r0, r5, #0
- adds r0, #0x30
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldr r1, _08051F74 @ =gUnknown_0200CA00
- strh r0, [r1]
- ldr r0, _08051F78 @ =gUnknown_086BB9EC
- movs r1, #0x20
- ldr r2, _08051F7C @ =gUnknown_0200B3B8
- bl LoadSpriteSets
- ldr r2, _08051F80 @ =gUnknown_086BB968
- movs r3, #0xa
- ldrsh r1, [r5, r3]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldrh r0, [r5, #2]
- ldrh r1, [r1]
- adds r0, r0, r1
- mov r4, r8
- strh r0, [r4, #2]
- movs r6, #0xa
- ldrsh r0, [r5, r6]
- lsls r0, r0, #2
- adds r0, r0, r2
- ldrh r0, [r0, #2]
- strh r0, [r4, #4]
- mov r7, sb
- ldr r4, _08051F84 @ =gOamBuffer
- mov r0, r8
- ldrh r2, [r0, #8]
- lsls r2, r2, #3
- adds r2, r2, r4
- movs r3, #2
- ldrsh r1, [r7, r3]
- movs r6, #2
- ldrsh r0, [r0, r6]
- adds r1, r1, r0
- ldr r3, _08051F88 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r6, _08051F8C @ =0xFFFFFE00
- adds r0, r6, #0
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- mov r0, r8
- ldrh r1, [r0, #8]
- lsls r1, r1, #3
- adds r1, r1, r4
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r1, #0
- mov ip, r1
- mov r8, r4
- mov r5, sp
- movs r2, #0x48
- mov sb, r2
-_08051E6C:
- ldr r0, [r5]
- mov r3, sb
- strh r3, [r0, #2]
- ldr r1, [r5]
- movs r0, #0x20
- strh r0, [r1, #4]
- ldr r4, [r5]
- adds r7, r4, #0
- adds r7, #8
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- add r2, r8
- ldr r0, _08051F90 @ =gUnknown_02002932
- add r0, ip
- ldrb r1, [r0]
- adds r1, #0x16
- ldrh r3, [r2, #4]
- ldr r0, _08051F94 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r3, [r4, #8]
- lsls r3, r3, #3
- add r3, r8
- movs r0, #2
- ldrsh r1, [r7, r0]
- ldr r0, [r5]
- movs r2, #2
- ldrsh r0, [r0, r2]
- adds r1, r1, r0
- ldr r2, _08051F88 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- adds r0, r6, #0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- add r1, r8
- ldm r5!, {r0}
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r3, #7
- add sb, r3
- movs r4, #1
- add ip, r4
- mov r7, ip
- cmp r7, #2
- ble _08051E6C
- movs r0, #0
- mov ip, r0
- ldr r1, _08051F84 @ =gOamBuffer
- mov r8, r1
- movs r6, #0x48
- mov r5, sl
-_08051EE2:
- ldr r0, [r5]
- strh r6, [r0, #2]
- ldr r0, [r5]
- movs r2, #0x2c
- mov sb, r2
- mov r3, sb
- strh r3, [r0, #4]
- ldr r4, [r5]
- adds r7, r4, #0
- adds r7, #8
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- add r2, r8
- ldr r0, _08051F98 @ =gUnknown_02002935
- add r0, ip
- ldrb r1, [r0]
- adds r1, #0x16
- ldrh r3, [r2, #4]
- ldr r0, _08051F94 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r3, [r4, #8]
- lsls r3, r3, #3
- add r3, r8
- movs r0, #2
- ldrsh r1, [r7, r0]
- ldr r0, [r5]
- movs r2, #2
- ldrsh r0, [r0, r2]
- adds r1, r1, r0
- ldr r2, _08051F88 @ =0x000001FF
- adds r0, r2, #0
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _08051F8C @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- add r1, r8
- ldm r5!, {r0}
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r6, #7
- movs r3, #1
- add ip, r3
- mov r4, ip
- cmp r4, #2
- ble _08051EE2
- movs r0, #0x48
- ldr r6, [sp, #0x60]
- strh r0, [r6, #2]
- ldr r7, _08051F70 @ =gOptionsData
- movs r1, #0xa
- ldrsh r0, [r7, r1]
- cmp r0, #0
- bne _08051F9C
- movs r0, #0x20
- strh r0, [r6, #4]
- b _08051FA6
- .align 2, 0
-_08051F64: .4byte gUnknown_0200C890
-_08051F68: .4byte gUnknown_0200B978
-_08051F6C: .4byte gUnknown_0200C948
-_08051F70: .4byte gOptionsData
-_08051F74: .4byte gUnknown_0200CA00
-_08051F78: .4byte gUnknown_086BB9EC
-_08051F7C: .4byte gUnknown_0200B3B8
-_08051F80: .4byte gUnknown_086BB968
-_08051F84: .4byte gOamBuffer
-_08051F88: .4byte 0x000001FF
-_08051F8C: .4byte 0xFFFFFE00
-_08051F90: .4byte gUnknown_02002932
-_08051F94: .4byte 0xFFFFFC00
-_08051F98: .4byte gUnknown_02002935
-_08051F9C:
- cmp r0, #1
- bne _08051FA6
- mov r3, sb
- ldr r2, [sp, #0x60]
- strh r3, [r2, #4]
-_08051FA6:
- ldr r5, _080520D0 @ =gOamBuffer
- ldr r7, _080520D4 @ =0xFFFFFE00
- ldr r4, [sp, #0x60]
- adds r4, #8
- movs r6, #1
- mov ip, r6
-_08051FB2:
- ldrh r3, [r4]
- lsls r3, r3, #3
- adds r3, r3, r5
- movs r0, #2
- ldrsh r1, [r4, r0]
- ldr r2, [sp, #0x60]
- movs r6, #2
- ldrsh r0, [r2, r6]
- adds r1, r1, r0
- ldr r0, _080520D8 @ =0x000001FF
- adds r6, r0, #0
- ands r1, r6
- ldrh r2, [r3, #2]
- adds r0, r7, #0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4]
- lsls r1, r1, #3
- adds r1, r1, r5
- ldr r2, [sp, #0x60]
- ldrb r0, [r2, #4]
- ldrb r3, [r4, #4]
- adds r0, r0, r3
- strb r0, [r1]
- adds r4, #8
- movs r0, #1
- rsbs r0, r0, #0
- add ip, r0
- mov r1, ip
- cmp r1, #0
- bge _08051FB2
- movs r0, #0x48
- ldr r2, _080520DC @ =gUnknown_0200B978
- strh r0, [r2, #2]
- ldr r3, _080520E0 @ =gOptionsData
- movs r4, #0xc
- ldrsh r0, [r3, r4]
- lsls r0, r0, #1
- ldr r7, _080520E4 @ =gUnknown_086BB9A8
- adds r0, r0, r7
- ldrh r0, [r0]
- strh r0, [r2, #4]
- ldr r7, [sp, #0x70]
- ldrh r2, [r2, #8]
- lsls r2, r2, #3
- ldr r0, _080520D0 @ =gOamBuffer
- adds r2, r2, r0
- movs r3, #2
- ldrsh r1, [r7, r3]
- adds r1, #0x48
- ands r1, r6
- ldrh r3, [r2, #2]
- ldr r0, _080520D4 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r4, _080520DC @ =gUnknown_0200B978
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r6, _080520D0 @ =gOamBuffer
- adds r1, r1, r6
- ldrb r0, [r4, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r7, #0
- mov ip, r7
- ldr r0, _080520E0 @ =gOptionsData
- str r0, [sp, #0x68]
- movs r1, #0x54
- str r1, [sp, #0x80]
- movs r2, #0
- str r2, [sp, #0x84]
- movs r3, #0
- str r3, [sp, #0x88]
- ldr r4, [sp, #0x6c]
- mov r8, r4
-_0805204E:
- ldr r0, [sp, #0x68]
- adds r0, #0x1a
- add r0, ip
- ldrb r0, [r0]
- cmp r0, #1
- bne _080520E8
- mov r6, r8
- ldr r1, [r6]
- movs r0, #0x9c
- strh r0, [r1, #2]
- ldr r0, [r6]
- add r7, sp, #0x80
- ldrh r7, [r7]
- strh r7, [r0, #4]
- movs r5, #0
- ldr r1, [sp, #0x68]
- movs r2, #6
- ldrsh r0, [r1, r2]
- adds r0, #1
- cmp r5, r0
- blt _0805207A
- b _080522E2
-_0805207A:
- ldr r3, [sp, #0x6c]
- ldr r6, [sp, #0x84]
- adds r4, r3, r6
- ldr r7, _080520D0 @ =gOamBuffer
- mov sb, r7
- movs r6, #8
- ldr r0, _080520D4 @ =0xFFFFFE00
- mov sl, r0
-_0805208A:
- ldr r0, [r4]
- adds r7, r0, r6
- ldrh r2, [r7]
- lsls r2, r2, #3
- add r2, sb
- movs r3, #2
- ldrsh r1, [r7, r3]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r3, _080520D8 @ =0x000001FF
- adds r0, r3, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r7]
- lsls r1, r1, #3
- add r1, sb
- ldr r0, [r4]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r6, #8
- adds r5, #1
- ldr r7, [sp, #0x68]
- movs r1, #6
- ldrsh r0, [r7, r1]
- adds r0, #1
- cmp r5, r0
- blt _0805208A
- b _080522E2
- .align 2, 0
-_080520D0: .4byte gOamBuffer
-_080520D4: .4byte 0xFFFFFE00
-_080520D8: .4byte 0x000001FF
-_080520DC: .4byte gUnknown_0200B978
-_080520E0: .4byte gOptionsData
-_080520E4: .4byte gUnknown_086BB9A8
-_080520E8:
- mov r2, r8
- ldr r1, [r2]
- movs r0, #0x9c
- strh r0, [r1, #2]
- ldr r0, [r2]
- add r3, sp, #0x80
- ldrh r3, [r3]
- strh r3, [r0, #4]
- ldr r4, [r2]
- adds r7, r4, #0
- adds r7, #8
- ldr r6, [sp, #0x68]
- movs r0, #0xc
- ldrsh r1, [r6, r0]
- lsls r0, r1, #2
- adds r0, r0, r1
- lsls r0, r0, #1
- ldr r1, [sp, #0x88]
- adds r0, r1, r0
- ldr r2, _08052490 @ =gUnknown_02031AF0
- adds r0, r0, r2
- ldrb r0, [r0]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =gOamBuffer
- adds r2, r2, r3
- lsls r0, r0, #3
- ldr r1, _08052498 @ =gUnknown_086BB910
- adds r6, r0, r1
- ldrh r0, [r6, #2]
- ldr r1, _0805249C @ =0x000003FF
- ands r1, r0
- ldrh r3, [r2, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =gOamBuffer
- adds r1, r1, r2
- ldrb r2, [r6, #4]
- lsls r2, r2, #6
- ldrb r3, [r1, #1]
- movs r0, #0x3f
- mov sl, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, #1]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r1, _08052494 @ =gOamBuffer
- adds r2, r2, r1
- ldrb r1, [r6, #5]
- lsls r1, r1, #6
- ldrb r3, [r2, #3]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #3]
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =gOamBuffer
- adds r2, r2, r3
- movs r0, #2
- ldrsh r1, [r7, r0]
- mov r3, r8
- ldr r0, [r3]
- movs r3, #2
- ldrsh r0, [r0, r3]
- adds r1, r1, r0
- ldr r0, _080524A4 @ =0x000001FF
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =gOamBuffer
- adds r1, r1, r2
- mov r3, r8
- ldr r0, [r3]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- ldr r4, [sp, #0x68]
- movs r7, #0xc
- ldrsh r1, [r4, r7]
- lsls r0, r1, #2
- adds r0, r0, r1
- lsls r0, r0, #1
- adds r0, #1
- ldr r1, [sp, #0x88]
- adds r0, r1, r0
- ldr r2, _08052490 @ =gUnknown_02031AF0
- adds r0, r0, r2
- ldrb r0, [r0]
- mov sb, r0
- cmp r0, #0xa
- bne _080521B8
- b _080522E2
-_080521B8:
- ldr r3, [sp, #0x74]
- ldr r4, [sp, #0x84]
- adds r5, r3, r4
- ldr r1, [r5]
- mov r7, r8
- ldr r0, [r7]
- ldrh r0, [r0, #2]
- ldrb r6, [r6, #6]
- adds r0, r0, r6
- strh r0, [r1, #2]
- ldr r1, [r5]
- ldr r0, [r7]
- ldrh r0, [r0, #4]
- strh r0, [r1, #4]
- ldr r4, [r5]
- adds r7, r4, #0
- adds r7, #8
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r0, _08052494 @ =gOamBuffer
- adds r2, r2, r0
- ldrh r1, [r2, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r1
- movs r1, #0x2a
- orrs r0, r1
- strh r0, [r2, #4]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =gOamBuffer
- adds r1, r1, r2
- ldrb r2, [r1, #1]
- mov r0, sl
- ands r0, r2
- strb r0, [r1, #1]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r3, _08052494 @ =gOamBuffer
- adds r1, r1, r3
- ldrb r2, [r1, #3]
- mov r0, sl
- ands r0, r2
- strb r0, [r1, #3]
- ldrh r3, [r4, #8]
- lsls r3, r3, #3
- ldr r6, _08052494 @ =gOamBuffer
- adds r3, r3, r6
- movs r0, #2
- ldrsh r1, [r7, r0]
- ldr r0, [r5]
- movs r2, #2
- ldrsh r0, [r0, r2]
- adds r1, r1, r0
- ldr r6, _080524A4 @ =0x000001FF
- ands r1, r6
- ldrh r2, [r3, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r4, #8]
- lsls r1, r1, #3
- ldr r0, _08052494 @ =gOamBuffer
- adds r1, r1, r0
- ldr r0, [r5]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- ldr r1, [sp, #0x7c]
- ldr r2, [sp, #0x84]
- adds r6, r1, r2
- ldr r1, [r6]
- ldr r0, [r5]
- ldrh r0, [r0, #2]
- adds r0, #8
- strh r0, [r1, #2]
- ldr r1, [r6]
- mov r3, r8
- ldr r0, [r3]
- ldrh r0, [r0, #4]
- strh r0, [r1, #4]
- ldr r5, [r6]
- adds r7, r5, #0
- adds r7, #8
- ldrh r3, [r5, #8]
- lsls r3, r3, #3
- ldr r4, _08052494 @ =gOamBuffer
- adds r3, r3, r4
- mov r0, sb
- lsls r4, r0, #3
- ldr r1, _08052498 @ =gUnknown_086BB910
- adds r4, r4, r1
- ldrh r0, [r4, #2]
- ldr r1, _0805249C @ =0x000003FF
- ands r1, r0
- ldrh r2, [r3, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #4]
- ldrh r2, [r5, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =gOamBuffer
- adds r2, r2, r3
- ldrb r1, [r4, #4]
- lsls r1, r1, #6
- ldrb r3, [r2, #1]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #1]
- ldrh r2, [r5, #8]
- lsls r2, r2, #3
- ldr r0, _08052494 @ =gOamBuffer
- adds r2, r2, r0
- ldrb r1, [r4, #5]
- lsls r1, r1, #6
- ldrb r3, [r2, #3]
- mov r0, sl
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, #3]
- ldrh r3, [r5, #8]
- lsls r3, r3, #3
- ldr r1, _08052494 @ =gOamBuffer
- adds r3, r3, r1
- movs r2, #2
- ldrsh r1, [r7, r2]
- ldr r0, [r6]
- movs r4, #2
- ldrsh r0, [r0, r4]
- adds r1, r1, r0
- ldr r0, _080524A4 @ =0x000001FF
- ands r1, r0
- ldrh r2, [r3, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r5, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =gOamBuffer
- adds r1, r1, r2
- ldr r0, [r6]
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
-_080522E2:
- ldr r3, [sp, #0x80]
- adds r3, #0xc
- str r3, [sp, #0x80]
- ldr r4, [sp, #0x84]
- adds r4, #0xc
- str r4, [sp, #0x84]
- ldr r6, [sp, #0x88]
- adds r6, #2
- str r6, [sp, #0x88]
- movs r7, #0xc
- add r8, r7
- movs r0, #1
- add ip, r0
- mov r1, ip
- cmp r1, #4
- bgt _08052304
- b _0805204E
-_08052304:
- movs r5, #8
- movs r0, #0xaa
- ldr r2, [sp, #0x64]
- strh r0, [r2, #2]
- ldr r0, _080524AC @ =gOptionsData
- adds r0, #0x2a
- ldrb r0, [r0]
- lsls r1, r0, #1
- adds r1, r1, r0
- lsls r1, r1, #2
- movs r0, #0x2c
- subs r0, r0, r1
- strh r0, [r2, #4]
- ldr r7, [sp, #0x78]
- ldrh r2, [r2, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =gOamBuffer
- adds r2, r2, r3
- movs r4, #2
- ldrsh r1, [r7, r4]
- adds r1, #0xaa
- ldr r6, _080524A4 @ =0x000001FF
- adds r0, r6, #0
- ands r1, r0
- ldrh r3, [r2, #2]
- ldr r4, _080524A8 @ =0xFFFFFE00
- adds r0, r4, #0
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r0, [sp, #0x64]
- ldrh r1, [r0, #8]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =gOamBuffer
- adds r1, r1, r2
- ldrb r0, [r0, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- movs r0, #0xc0
- ldr r3, _080524B0 @ =gUnknown_0200C948
- strh r0, [r3, #2]
- strh r5, [r3, #4]
- ldr r6, _080524AC @ =gOptionsData
- adds r6, #0x2d
- mov sl, r6
- adds r5, r3, #0
- adds r5, #8
- movs r6, #0x40
- mov sb, r4
- movs r7, #1
- mov ip, r7
-_0805236C:
- ldrh r3, [r5]
- lsls r3, r3, #3
- ldr r0, _08052494 @ =gOamBuffer
- adds r3, r3, r0
- mov r2, sl
- movs r1, #0
- ldrsb r1, [r2, r1]
- lsls r1, r1, #2
- adds r1, r6, r1
- ldr r7, _0805249C @ =0x000003FF
- adds r4, r7, #0
- ands r1, r4
- ldrh r2, [r3, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #4]
- ldrh r3, [r5]
- lsls r3, r3, #3
- ldr r0, _08052494 @ =gOamBuffer
- adds r3, r3, r0
- movs r2, #2
- ldrsh r1, [r5, r2]
- ldr r7, _080524B0 @ =gUnknown_0200C948
- movs r2, #2
- ldrsh r0, [r7, r2]
- adds r1, r1, r0
- ldr r7, _080524A4 @ =0x000001FF
- mov r8, r7
- mov r0, r8
- ands r1, r0
- ldrh r2, [r3, #2]
- mov r0, sb
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, #2]
- ldrh r1, [r5]
- lsls r1, r1, #3
- ldr r2, _08052494 @ =gOamBuffer
- adds r1, r1, r2
- ldr r3, _080524B0 @ =gUnknown_0200C948
- ldrb r0, [r3, #4]
- ldrb r7, [r5, #4]
- adds r0, r0, r7
- strb r0, [r1]
- adds r5, #8
- adds r6, #0x80
- movs r0, #1
- rsbs r0, r0, #0
- add ip, r0
- mov r1, ip
- cmp r1, #0
- bge _0805236C
- ldr r2, _080524B4 @ =gUnknown_0200CA00
- ldrh r0, [r2]
- cmp r0, #1
- bne _08052454
- movs r0, #0xb0
- strh r0, [r2, #2]
- movs r0, #8
- strh r0, [r2, #4]
- adds r7, r2, #0
- adds r7, #8
- ldrh r2, [r2, #8]
- lsls r2, r2, #3
- ldr r3, _08052494 @ =gOamBuffer
- adds r2, r2, r3
- ldr r5, _080524AC @ =gOptionsData
- adds r5, #0x2f
- movs r1, #0
- ldrsb r1, [r5, r1]
- lsls r1, r1, #6
- adds r1, #0x54
- ands r1, r4
- ldrh r3, [r2, #4]
- ldr r0, _080524A0 @ =0xFFFFFC00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #4]
- ldr r4, _080524B4 @ =gUnknown_0200CA00
- ldrh r2, [r4, #8]
- lsls r2, r2, #3
- ldr r6, _08052494 @ =gOamBuffer
- adds r2, r2, r6
- movs r0, #2
- ldrsh r1, [r7, r0]
- movs r3, #2
- ldrsh r0, [r4, r3]
- adds r1, r1, r0
- mov r4, r8
- ands r1, r4
- ldrh r3, [r2, #2]
- ldr r0, _080524A8 @ =0xFFFFFE00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, #2]
- ldr r6, _080524B4 @ =gUnknown_0200CA00
- ldrh r1, [r6, #8]
- lsls r1, r1, #3
- ldr r0, _08052494 @ =gOamBuffer
- adds r1, r1, r0
- ldrb r0, [r6, #4]
- ldrb r7, [r7, #4]
- adds r0, r0, r7
- strb r0, [r1]
- ldr r0, _080524B8 @ =gMain
- ldr r0, [r0, #0x4c]
- movs r1, #0x12
- bl __umodsi3
- cmp r0, #0
- bne _08052454
- ldrb r1, [r5]
- movs r0, #1
- subs r0, r0, r1
- strb r0, [r5]
-_08052454:
- movs r0, #0
- ldr r1, [sp, #0x60]
- strh r0, [r1]
- mov ip, r0
- ldr r4, [sp, #0x6c]
- movs r3, #0
-_08052460:
- mov r2, ip
- adds r2, #1
- mov r6, ip
- lsls r0, r6, #1
- add r0, ip
- lsls r0, r0, #2
- adds r1, r0, r4
- movs r5, #2
-_08052470:
- ldm r1!, {r0}
- strh r3, [r0]
- subs r5, #1
- cmp r5, #0
- bge _08052470
- mov ip, r2
- cmp r2, #5
- ble _08052460
- add sp, #0x8c
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052490: .4byte gUnknown_02031AF0
-_08052494: .4byte gOamBuffer
-_08052498: .4byte gUnknown_086BB910
-_0805249C: .4byte 0x000003FF
-_080524A0: .4byte 0xFFFFFC00
-_080524A4: .4byte 0x000001FF
-_080524A8: .4byte 0xFFFFFE00
-_080524AC: .4byte gOptionsData
-_080524B0: .4byte gUnknown_0200C948
-_080524B4: .4byte gUnknown_0200CA00
-_080524B8: .4byte gMain
-
- thumb_func_start sub_524BC
-sub_524BC: @ 0x080524BC
- push {r4, r5, lr}
- ldr r1, _0805251C @ =gOptionsData
- movs r2, #0x28
- ldrsh r0, [r1, r2]
- adds r2, r1, #0
- cmp r0, #1
- bgt _08052514
- ldr r0, _08052520 @ =gMain
- ldrh r0, [r0, #0x1c]
- ldr r4, _08052524 @ =0x000003F7
- ands r4, r0
- cmp r4, #0
- beq _08052514
- movs r3, #0
-_080524D8:
- movs r1, #1
- lsls r1, r3
- ands r1, r4
- cmp r1, #0
- beq _0805250E
- movs r5, #0x22
- ldrsh r0, [r2, r5]
- ands r0, r1
- cmp r0, #0
- bne _0805250E
- ldrh r0, [r2, #0x22]
- orrs r1, r0
- strh r1, [r2, #0x22]
- movs r1, #0x28
- ldrsh r0, [r2, r1]
- lsls r0, r0, #1
- adds r1, r2, #0
- adds r1, #0x24
- adds r0, r0, r1
- strh r3, [r0]
- ldrh r0, [r2, #0x28]
- adds r0, #1
- strh r0, [r2, #0x28]
- lsls r0, r0, #0x10
- asrs r0, r0, #0x10
- cmp r0, #2
- beq _08052514
-_0805250E:
- adds r3, #1
- cmp r3, #9
- ble _080524D8
-_08052514:
- pop {r4, r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805251C: .4byte gOptionsData
-_08052520: .4byte gMain
-_08052524: .4byte 0x000003F7
-
- thumb_func_start sub_52528
-sub_52528: @ 0x08052528
- push {r4, r5, r6, r7, lr}
- movs r0, #0
- ldr r1, _0805255C @ =gUnknown_0200B204
- mov ip, r1
- ldr r6, _08052560 @ =gUnknown_02031B18
-_08052532:
- movs r2, #0
- lsls r4, r0, #2
- lsls r3, r0, #1
- adds r5, r0, #1
-_0805253A:
- lsls r0, r2, #1
- adds r0, r0, r4
- add r0, ip
- movs r7, #0
- ldrsh r1, [r0, r7]
- cmp r1, #0x10
- beq _0805259A
- cmp r1, #0x10
- bgt _0805256A
- cmp r1, #2
- beq _08052592
- cmp r1, #2
- bgt _08052564
- cmp r1, #1
- beq _0805258E
- b _080525B2
- .align 2, 0
-_0805255C: .4byte gUnknown_0200B204
-_08052560: .4byte gUnknown_02031B18
-_08052564:
- cmp r1, #4
- beq _08052596
- b _080525B2
-_0805256A:
- cmp r1, #0x80
- beq _080525A6
- cmp r1, #0x80
- bgt _0805257C
- cmp r1, #0x20
- beq _0805259E
- cmp r1, #0x40
- beq _080525A2
- b _080525B2
-_0805257C:
- movs r0, #0x80
- lsls r0, r0, #1
- cmp r1, r0
- beq _080525AA
- movs r0, #0x80
- lsls r0, r0, #2
- cmp r1, r0
- beq _080525AE
- b _080525B2
-_0805258E:
- movs r1, #0
- b _080525B4
-_08052592:
- movs r1, #1
- b _080525B4
-_08052596:
- movs r1, #2
- b _080525B4
-_0805259A:
- movs r1, #4
- b _080525B4
-_0805259E:
- movs r1, #5
- b _080525B4
-_080525A2:
- movs r1, #6
- b _080525B4
-_080525A6:
- movs r1, #7
- b _080525B4
-_080525AA:
- movs r1, #8
- b _080525B4
-_080525AE:
- movs r1, #9
- b _080525B4
-_080525B2:
- movs r1, #0xa
-_080525B4:
- adds r0, r3, r2
- adds r0, r0, r6
- strb r1, [r0]
- adds r2, #1
- cmp r2, #1
- ble _0805253A
- adds r0, r5, #0
- cmp r0, #4
- ble _08052532
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_start sub_525CC
-sub_525CC: @ 0x080525CC
- push {r4, r5, r6, lr}
- lsls r0, r0, #0x18
- movs r1, #0x80
- lsls r1, r1, #0x11
- adds r0, r0, r1
- asrs r0, r0, #0x18
- cmp r0, #5
- bls _080525DE
- b _080528A2
-_080525DE:
- lsls r0, r0, #2
- ldr r1, _080525E8 @ =_080525EC
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080525E8: .4byte _080525EC
-_080525EC: @ jump table
- .4byte _08052604 @ case 0
- .4byte _080526CC @ case 1
- .4byte _08052720 @ case 2
- .4byte _08052770 @ case 3
- .4byte _080527C0 @ case 4
- .4byte _08052814 @ case 5
-_08052604:
- ldr r0, _080526BC @ =gMain
- mov ip, r0
- ldr r6, _080526C0 @ =gUnknown_086BB910
- ldrh r5, [r6, #0x28]
- adds r0, #0x60
- strh r5, [r0]
- adds r0, r6, #0
- adds r0, #0x50
- ldrh r2, [r0]
- mov r0, ip
- adds r0, #0x62
- strh r2, [r0]
- ldrh r4, [r6]
- adds r0, #2
- strh r4, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r6, #0
- adds r0, #0x48
- ldrh r3, [r0]
- mov r0, ip
- adds r0, #0x68
- strh r3, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r6, #0
- adds r0, #0x40
- ldrh r1, [r0]
- mov r0, ip
- adds r0, #0x6c
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- strh r1, [r0]
- ldrh r1, [r6, #8]
- movs r0, #0xa2
- lsls r0, r0, #1
- add r0, ip
- strh r1, [r0]
- movs r0, #0xa3
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- movs r0, #0xa4
- lsls r0, r0, #1
- add r0, ip
- strh r4, [r0]
- movs r0, #0xa5
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- movs r0, #0xa6
- lsls r0, r0, #1
- add r0, ip
- strh r5, [r0]
- movs r0, #0xa7
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- ldrh r1, [r6, #0x20]
- movs r0, #0xa8
- lsls r0, r0, #1
- add r0, ip
- strh r1, [r0]
- movs r0, #0xa9
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- ldrh r1, [r6, #0x30]
- movs r0, #0xaa
- lsls r0, r0, #1
- add r0, ip
- strh r1, [r0]
- movs r0, #0xab
- lsls r0, r0, #1
- add r0, ip
- strh r2, [r0]
- movs r2, #0
- ldr r4, _080526C4 @ =gUnknown_02031B18
- ldr r3, _080526C8 @ =gUnknown_08527EFE
-_080526AA:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, #1
- cmp r2, #9
- ble _080526AA
- b _080528A2
- .align 2, 0
-_080526BC: .4byte gMain
-_080526C0: .4byte gUnknown_086BB910
-_080526C4: .4byte gUnknown_02031B18
-_080526C8: .4byte gUnknown_08527EFE
-_080526CC:
- ldr r4, _08052718 @ =gMain
- ldr r5, _0805271C @ =gUnknown_086BB910
- ldrh r1, [r5, #0x28]
- adds r0, r4, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r5, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x62
- strh r2, [r0]
- ldrh r1, [r5]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r5, #0
- adds r0, #0x48
- ldrh r3, [r0]
- adds r0, r4, #0
- adds r0, #0x68
- strh r3, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r5, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x6c
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- b _080528A0
- .align 2, 0
-_08052718: .4byte gMain
-_0805271C: .4byte gUnknown_086BB910
-_08052720:
- ldr r3, _08052768 @ =gMain
- ldr r4, _0805276C @ =gUnknown_086BB910
- ldrh r1, [r4, #0x28]
- adds r0, r3, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r3, #0
- adds r0, #0x62
- strh r2, [r0]
- ldrh r1, [r4]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x48
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x68
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x6c
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #8]
- b _08052802
- .align 2, 0
-_08052768: .4byte gMain
-_0805276C: .4byte gUnknown_086BB910
-_08052770:
- ldr r4, _080527B8 @ =gMain
- ldr r5, _080527BC @ =gUnknown_086BB910
- adds r0, r5, #0
- adds r0, #0x48
- ldrh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r5, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x62
- strh r2, [r0]
- adds r0, r5, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x64
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r3, [r5, #0x28]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r5]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- adds r0, #2
- strh r3, [r0]
- adds r0, #2
- b _080528A0
- .align 2, 0
-_080527B8: .4byte gMain
-_080527BC: .4byte gUnknown_086BB910
-_080527C0:
- ldr r3, _0805280C @ =gMain
- ldr r4, _08052810 @ =gUnknown_086BB910
- adds r0, r4, #0
- adds r0, #0x48
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x60
- strh r1, [r0]
- adds r0, r4, #0
- adds r0, #0x50
- ldrh r2, [r0]
- adds r0, r3, #0
- adds r0, #0x62
- strh r2, [r0]
- adds r0, r4, #0
- adds r0, #0x40
- ldrh r1, [r0]
- adds r0, r3, #0
- adds r0, #0x64
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #0x28]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #0x20]
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- ldrh r1, [r4, #0x30]
-_08052802:
- adds r0, #2
- strh r1, [r0]
- adds r0, #2
- strh r2, [r0]
- b _080528A2
- .align 2, 0
-_0805280C: .4byte gMain
-_08052810: .4byte gUnknown_086BB910
-_08052814:
- ldr r2, _080528A8 @ =gMain
- movs r1, #0xa2
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x60
- strh r1, [r0]
- movs r1, #0xa3
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x62
- strh r0, [r1]
- movs r1, #0xa4
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x64
- strh r1, [r0]
- movs r1, #0xa5
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x66
- strh r0, [r1]
- movs r1, #0xa6
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x68
- strh r1, [r0]
- movs r1, #0xa7
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x6a
- strh r0, [r1]
- movs r1, #0xa8
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x6c
- strh r1, [r0]
- movs r1, #0xa9
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r1, r2, #0
- adds r1, #0x6e
- strh r0, [r1]
- movs r1, #0xaa
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x70
- strh r1, [r0]
- movs r1, #0xab
- lsls r1, r1, #1
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r0, r2, #0
- adds r0, #0x72
-_080528A0:
- strh r1, [r0]
-_080528A2:
- pop {r4, r5, r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080528A8: .4byte gMain
diff --git a/include/main.h b/include/main.h
index f37dd24..99cdcac 100755
--- a/include/main.h
+++ b/include/main.h
@@ -60,7 +60,17 @@ struct Main
/*0x48*/ int rngValue;
/*0x4C*/ int frameCount;
/*0x50*/ int unk50;
- /*0x54*/ u8 filler54[0x20];
+ /*0x54*/ u8 filler54[0xC];
+ /*0x60*/ u16 unk60;
+ /*0x62*/ u16 unk62;
+ /*0x64*/ u16 unk64;
+ /*0x66*/ u16 unk66;
+ /*0x68*/ u16 unk68;
+ /*0x6A*/ u16 unk6A;
+ /*0x6C*/ u16 unk6C;
+ /*0x6E*/ u16 unk6E;
+ /*0x70*/ u16 unk70;
+ /*0x72*/ u16 unk72;
// This field must be accessed using the following macro to produce matching code.
#define gMain_saveData (*(struct SaveData *)(&gMain.saveData))
diff --git a/ld_script.txt b/ld_script.txt
index 63a834d..985ec21 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -46,7 +46,6 @@ SECTIONS
src/rom_3219C.o(.text);
asm/rom_3219C.o(.text);
src/options.o(.text);
- asm/options.o(.text);
src/rom_528AC.o(.text);
asm/m4a_1.o(.text);
src/m4a.o(.text);
diff --git a/src/options.c b/src/options.c
index cd02b94..73e6f4a 100644
--- a/src/options.c
+++ b/src/options.c
@@ -23,9 +23,9 @@ struct OptionsData
s16 unk18;
u8 unk1A[6];
s16 unk20;
- u16 unk22;
+ s16 unk22;
s16 unk24[2];
- u16 unk28;
+ s16 unk28;
u8 unk2A;
s8 unk2B;
s8 unk2C;
@@ -36,11 +36,8 @@ struct OptionsData
};
extern struct OptionsData gOptionsData;
-
-void OptionsMain(void)
-{
- gUnknown_08527F08[gMain.subState]();
-}
+extern s16 gUnknown_0200B204[][2];
+extern u8 gUnknown_02031B18[];
extern const u16 gUnknown_0852B468[];
extern const u8 gUnknown_08528828[];
@@ -48,6 +45,11 @@ extern const u8 gUnknown_0852A848[];
extern const u8 gUnknown_08528028[];
extern const u8 gUnknown_0852A048[];
+void OptionsMain(void)
+{
+ gUnknown_08527F08[gMain.subState]();
+}
+
void sub_51240(void)
{
ResetSomeGraphicsRelatedStuff();
@@ -146,7 +148,7 @@ void sub_514B8(void)
switch (gOptionsData.unk0)
{
case 0:
- if (gMain.newKeys & 0x40)
+ if (gMain.newKeys & DPAD_UP)
{
if (gOptionsData.unkA != 0xD)
{
@@ -162,7 +164,7 @@ void sub_514B8(void)
}
}
}
- else if (gMain.newKeys & 0x80)
+ else if (gMain.newKeys & DPAD_DOWN)
{
if (gOptionsData.unkA < 6)
{
@@ -180,17 +182,17 @@ void sub_514B8(void)
gOptionsData.unkA = 2;
}
}
- if ((gMain.newKeys & 0x10) && gGameBoyPlayerEnabled == 1 && (u16)gOptionsData.unkA < 2)
+ if ((gMain.newKeys & DPAD_RIGHT) && gGameBoyPlayerEnabled == 1 && (u16)gOptionsData.unkA < 2)
{
m4aSongNumStart(0x67);
gOptionsData.unkA += 0xD;
}
- if ((gMain.newKeys & 0x20) && gGameBoyPlayerEnabled == 1 && (u16)(gOptionsData.unkA - 13) < 2)
+ if ((gMain.newKeys & DPAD_LEFT) && gGameBoyPlayerEnabled == 1 && (u16)(gOptionsData.unkA - 13) < 2)
{
m4aSongNumStart(0x67);
gOptionsData.unkA -= 0xD;
}
- if (gMain.newKeys & 1)
+ if (gMain.newKeys & A_BUTTON)
{
switch (gOptionsData.unkA)
{
@@ -262,7 +264,7 @@ void sub_514B8(void)
break;
}
}
- else if (gMain.newKeys & 2)
+ else if (gMain.newKeys & B_BUTTON)
{
m4aSongNumStart(0x66);
gMain.subState++;
@@ -273,7 +275,7 @@ void sub_514B8(void)
gOptionsData.unk2 = 1 - gOptionsData.unk2;
break;
case 1:
- if (gMain.heldKeys & 0x20)
+ if (gMain.heldKeys & DPAD_LEFT)
{
if (gOptionsData.unk18 == 0)
{
@@ -281,7 +283,7 @@ void sub_514B8(void)
gOptionsData.unk18 = 10;
}
}
- else if (gMain.heldKeys & 0x10)
+ else if (gMain.heldKeys & DPAD_RIGHT)
{
if (gOptionsData.unk18 == 0)
{
@@ -289,10 +291,12 @@ void sub_514B8(void)
gOptionsData.unk18 = 10;
}
}
- if (gMain.newKeys & 0x40)
+
+ if (gMain.newKeys & DPAD_UP)
gOptionsData.unkE += 10;
- else if (gMain.newKeys & 0x80)
+ else if (gMain.newKeys & DPAD_DOWN)
gOptionsData.unkE -= 10;
+
if (gOptionsData.unkE < 0)
gOptionsData.unkE = 33;
if (gOptionsData.unkE > 33)
@@ -303,12 +307,12 @@ void sub_514B8(void)
r4 %= 100;
gOptionsData.unk13 = r4 / 10;
gOptionsData.unk14 = r4 % 10;
- if (gMain.newKeys & 1)
+ if (gMain.newKeys & A_BUTTON)
{
m4aMPlayAllStop();
m4aSongNumStart(gUnknown_08527D22[gOptionsData.unkE]);
}
- else if (gMain.newKeys & 2)
+ else if (gMain.newKeys & B_BUTTON)
{
m4aMPlayAllStop();
m4aSongNumStart(0x66);
@@ -322,7 +326,7 @@ void sub_514B8(void)
gOptionsData.unk18--;
break;
case 2:
- if (gMain.heldKeys & 0x20)
+ if (gMain.heldKeys & DPAD_LEFT)
{
if (gOptionsData.unk18 == 0)
{
@@ -330,7 +334,7 @@ void sub_514B8(void)
gOptionsData.unk18 = 10;
}
}
- else if (gMain.heldKeys & 0x10)
+ else if (gMain.heldKeys & DPAD_RIGHT)
{
if (gOptionsData.unk18 == 0)
{
@@ -338,10 +342,12 @@ void sub_514B8(void)
gOptionsData.unk18 = 10;
}
}
- if (gMain.newKeys & 0x40)
+
+ if (gMain.newKeys & DPAD_UP)
gOptionsData.unk10 += 10;
- else if (gMain.newKeys & 0x80)
+ else if (gMain.newKeys & DPAD_DOWN)
gOptionsData.unk10 -= 10;
+
if (gOptionsData.unk10 < 0)
gOptionsData.unk10 = 0xB7;
if (gOptionsData.unk10 > 0xB7)
@@ -352,12 +358,12 @@ void sub_514B8(void)
r4 %= 100;
gOptionsData.unk16 = r4 / 10;
gOptionsData.unk17 = r4 % 10;
- if (gMain.newKeys & 0x1)
+ if (gMain.newKeys & A_BUTTON)
{
m4aMPlayAllStop();
m4aSongNumStart(gUnknown_08527D66[gOptionsData.unk10]);
}
- else if (gMain.newKeys & 0x2)
+ else if (gMain.newKeys & B_BUTTON)
{
m4aMPlayAllStop();
m4aSongNumStart(0x66);
@@ -371,7 +377,7 @@ void sub_514B8(void)
gOptionsData.unk18--;
break;
case 3:
- if (gMain.newKeys & 0x40)
+ if (gMain.newKeys & DPAD_UP)
{
if (gOptionsData.unkA > 7)
{
@@ -379,7 +385,7 @@ void sub_514B8(void)
gOptionsData.unkA--;
}
}
- else if (gMain.newKeys & 0x80)
+ else if (gMain.newKeys & DPAD_DOWN)
{
if (gOptionsData.unkA <= 10)
{
@@ -387,13 +393,13 @@ void sub_514B8(void)
gOptionsData.unkA++;
}
}
- if (gMain.newKeys & 1)
+ if (gMain.newKeys & A_BUTTON)
{
m4aSongNumStart(0x65);
gOptionsData.unk0 = 4;
gOptionsData.unk1A[gOptionsData.unkA - 7] = 1;
}
- else if (gMain.newKeys & 2)
+ else if (gMain.newKeys & B_BUTTON)
{
m4aSongNumStart(0x66);
gOptionsData.unkA = 6;
@@ -409,7 +415,7 @@ void sub_514B8(void)
gOptionsData.unk8 = 0;
gOptionsData.unk6 = 1 - gOptionsData.unk6;
}
- if (gMain.newKeys & 0x3F7)
+ if (gMain.newKeys & (KEYS_MASK ^ START_BUTTON))
{
s16 i;
@@ -420,7 +426,6 @@ void sub_514B8(void)
gOptionsData.unk24[i] = 10;
gOptionsData.unk28 = 0;
}
- //_08051B0E
if (gOptionsData.unk20 > 0)
{
sub_524BC();
@@ -439,10 +444,8 @@ void sub_514B8(void)
}
break;
}
- //_08051B98
if (gOptionsData.unk2E == 1)
{
- //gOptionsData.unk2B++;
if (++gOptionsData.unk2B > gUnknown_086BB9B4[gOptionsData.unk2C].unk2)
{
gOptionsData.unk2B = 0;
@@ -453,13 +456,10 @@ void sub_514B8(void)
gOptionsData.unk2D = 0;
gOptionsData.unk2E = 0;
}
- //_08051BE8
gOptionsData.unk2D = gUnknown_086BB9B4[gOptionsData.unk2C].unk0;
}
- // _08051C30
}
else
- //_08051C10
{
gOptionsData.unk2B++;
if (gOptionsData.unk2B > 18)
@@ -492,9 +492,1201 @@ void sub_51C60(void)
SetMainGameState(STATE_TITLE);
}
-/*
+NAKED
void sub_51C9C(void)
{
+ asm_unified("\n\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, sb\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ sub sp, #0x8c\n\
+ ldr r0, _08051D38 @ =gUnknown_0200B3B8\n\
+ mov r8, r0\n\
+ ldr r2, _08051D3C @ =gOptionsData\n\
+ movs r3, #4\n\
+ ldrsh r1, [r2, r3]\n\
+ movs r0, #0xe6\n\
+ lsls r0, r0, #4\n\
+ muls r1, r0, r1\n\
+ movs r0, #0xa1\n\
+ lsls r0, r0, #3\n\
+ add r0, r8\n\
+ adds r1, r1, r0\n\
+ str r1, [sp, #0x60]\n\
+ add r4, sp, #0xc\n\
+ mov sl, r4\n\
+ mov r6, sp\n\
+ adds r6, #0x18\n\
+ str r6, [sp, #0x6c]\n\
+ mov r7, sp\n\
+ adds r7, #0x1c\n\
+ str r7, [sp, #0x74]\n\
+ mov r0, sp\n\
+ adds r0, #0x20\n\
+ str r0, [sp, #0x7c]\n\
+ movs r0, #0xb8\n\
+ lsls r0, r0, #2\n\
+ add r0, r8\n\
+ mov r3, sl\n\
+ mov r1, r8\n\
+ adds r1, #0xb8\n\
+ mov r2, sp\n\
+ movs r4, #2\n\
+ mov ip, r4\n\
+_08051CEA:\n\
+ stm r2!, {r1}\n\
+ stm r3!, {r0}\n\
+ adds r0, #0xb8\n\
+ adds r1, #0xb8\n\
+ movs r6, #1\n\
+ rsbs r6, r6, #0\n\
+ add ip, r6\n\
+ mov r7, ip\n\
+ cmp r7, #0\n\
+ bge _08051CEA\n\
+ movs r0, #0\n\
+ mov ip, r0\n\
+ movs r1, #8\n\
+ add r1, r8\n\
+ mov sb, r1\n\
+ ldr r2, _08051D40 @ =gUnknown_0200B978\n\
+ adds r2, #8\n\
+ str r2, [sp, #0x70]\n\
+ ldr r0, _08051D44 @ =gUnknown_0200BAE8\n\
+ adds r4, r0, #0\n\
+ adds r4, #0xb8\n\
+ adds r5, r0, #0\n\
+ movs r3, #0\n\
+ ldr r1, [sp, #0x6c]\n\
+ adds r2, r5, #0\n\
+ subs r2, #0xb8\n\
+_08051D1E:\n\
+ ldr r0, _08051D48 @ =gUnknown_0200293A\n\
+ add r0, ip\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #1\n\
+ bne _08051D50\n\
+ ldr r6, _08051D3C @ =gOptionsData\n\
+ movs r7, #6\n\
+ ldrsh r0, [r6, r7]\n\
+ cmp r0, #1\n\
+ bne _08051D50\n\
+ ldr r0, _08051D4C @ =gUnknown_0200C7D8\n\
+ str r0, [r1]\n\
+ b _08051D52\n\
+ .align 2, 0\n\
+_08051D38: .4byte gUnknown_0200B3B8\n\
+_08051D3C: .4byte gOptionsData\n\
+_08051D40: .4byte gUnknown_0200B978\n\
+_08051D44: .4byte gUnknown_0200BAE8\n\
+_08051D48: .4byte gUnknown_0200293A\n\
+_08051D4C: .4byte gUnknown_0200C7D8\n\
+_08051D50:\n\
+ str r2, [r1]\n\
+_08051D52:\n\
+ ldr r6, [sp, #0x74]\n\
+ adds r0, r6, r3\n\
+ str r5, [r0]\n\
+ ldr r7, [sp, #0x7c]\n\
+ adds r0, r7, r3\n\
+ str r4, [r0]\n\
+ movs r0, #0x8a\n\
+ lsls r0, r0, #2\n\
+ adds r4, r4, r0\n\
+ adds r5, r5, r0\n\
+ adds r2, r2, r0\n\
+ adds r3, #0xc\n\
+ adds r1, #0xc\n\
+ movs r6, #1\n\
+ add ip, r6\n\
+ mov r7, ip\n\
+ cmp r7, #5\n\
+ ble _08051D1E\n\
+ ldr r0, _08051F64 @ =gUnknown_0200C890\n\
+ str r0, [sp, #0x64]\n\
+ movs r0, #1\n\
+ mov r1, r8\n\
+ strh r0, [r1]\n\
+ movs r2, #1\n\
+ mov r1, sp\n\
+ movs r3, #2\n\
+ mov ip, r3\n\
+_08051D88:\n\
+ ldm r1!, {r0}\n\
+ strh r2, [r0]\n\
+ movs r4, #1\n\
+ rsbs r4, r4, #0\n\
+ add ip, r4\n\
+ mov r6, ip\n\
+ cmp r6, #0\n\
+ bge _08051D88\n\
+ ldr r7, [sp, #0x64]\n\
+ adds r7, #8\n\
+ str r7, [sp, #0x78]\n\
+ movs r2, #1\n\
+ mov r1, sl\n\
+ movs r0, #2\n\
+ mov ip, r0\n\
+_08051DA6:\n\
+ ldm r1!, {r0}\n\
+ strh r2, [r0]\n\
+ movs r3, #1\n\
+ rsbs r3, r3, #0\n\
+ add ip, r3\n\
+ mov r4, ip\n\
+ cmp r4, #0\n\
+ bge _08051DA6\n\
+ movs r0, #1\n\
+ ldr r6, [sp, #0x60]\n\
+ strh r0, [r6]\n\
+ ldr r7, _08051F68 @ =gUnknown_0200B978\n\
+ strh r0, [r7]\n\
+ movs r0, #0\n\
+ mov ip, r0\n\
+ ldr r6, [sp, #0x6c]\n\
+ movs r3, #1\n\
+ movs r2, #0\n\
+_08051DCA:\n\
+ adds r1, r2, r6\n\
+ movs r5, #2\n\
+_08051DCE:\n\
+ ldm r1!, {r0}\n\
+ strh r3, [r0]\n\
+ subs r5, #1\n\
+ cmp r5, #0\n\
+ bge _08051DCE\n\
+ adds r2, #0xc\n\
+ movs r1, #1\n\
+ add ip, r1\n\
+ mov r4, ip\n\
+ cmp r4, #5\n\
+ ble _08051DCA\n\
+ movs r0, #1\n\
+ ldr r6, [sp, #0x64]\n\
+ strh r0, [r6]\n\
+ ldr r7, _08051F6C @ =gUnknown_0200C948\n\
+ strh r0, [r7]\n\
+ ldr r5, _08051F70 @ =gOptionsData\n\
+ adds r0, r5, #0\n\
+ adds r0, #0x30\n\
+ ldrb r0, [r0]\n\
+ lsls r0, r0, #0x18\n\
+ asrs r0, r0, #0x18\n\
+ ldr r1, _08051F74 @ =gUnknown_0200CA00\n\
+ strh r0, [r1]\n\
+ ldr r0, _08051F78 @ =gUnknown_086BB9EC\n\
+ movs r1, #0x20\n\
+ ldr r2, _08051F7C @ =gUnknown_0200B3B8\n\
+ bl LoadSpriteSets\n\
+ ldr r2, _08051F80 @ =gUnknown_086BB968\n\
+ movs r3, #0xa\n\
+ ldrsh r1, [r5, r3]\n\
+ lsls r1, r1, #2\n\
+ adds r1, r1, r2\n\
+ ldrh r0, [r5, #2]\n\
+ ldrh r1, [r1]\n\
+ adds r0, r0, r1\n\
+ mov r4, r8\n\
+ strh r0, [r4, #2]\n\
+ movs r6, #0xa\n\
+ ldrsh r0, [r5, r6]\n\
+ lsls r0, r0, #2\n\
+ adds r0, r0, r2\n\
+ ldrh r0, [r0, #2]\n\
+ strh r0, [r4, #4]\n\
+ mov r7, sb\n\
+ ldr r4, _08051F84 @ =gOamBuffer\n\
+ mov r0, r8\n\
+ ldrh r2, [r0, #8]\n\
+ lsls r2, r2, #3\n\
+ adds r2, r2, r4\n\
+ movs r3, #2\n\
+ ldrsh r1, [r7, r3]\n\
+ movs r6, #2\n\
+ ldrsh r0, [r0, r6]\n\
+ adds r1, r1, r0\n\
+ ldr r3, _08051F88 @ =0x000001FF\n\
+ adds r0, r3, #0\n\
+ ands r1, r0\n\
+ ldrh r3, [r2, #2]\n\
+ ldr r6, _08051F8C @ =0xFFFFFE00\n\
+ adds r0, r6, #0\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #2]\n\
+ mov r0, r8\n\
+ ldrh r1, [r0, #8]\n\
+ lsls r1, r1, #3\n\
+ adds r1, r1, r4\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ movs r1, #0\n\
+ mov ip, r1\n\
+ mov r8, r4\n\
+ mov r5, sp\n\
+ movs r2, #0x48\n\
+ mov sb, r2\n\
+_08051E6C:\n\
+ ldr r0, [r5]\n\
+ mov r3, sb\n\
+ strh r3, [r0, #2]\n\
+ ldr r1, [r5]\n\
+ movs r0, #0x20\n\
+ strh r0, [r1, #4]\n\
+ ldr r4, [r5]\n\
+ adds r7, r4, #0\n\
+ adds r7, #8\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ add r2, r8\n\
+ ldr r0, _08051F90 @ =gUnknown_02002932\n\
+ add r0, ip\n\
+ ldrb r1, [r0]\n\
+ adds r1, #0x16\n\
+ ldrh r3, [r2, #4]\n\
+ ldr r0, _08051F94 @ =0xFFFFFC00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #4]\n\
+ ldrh r3, [r4, #8]\n\
+ lsls r3, r3, #3\n\
+ add r3, r8\n\
+ movs r0, #2\n\
+ ldrsh r1, [r7, r0]\n\
+ ldr r0, [r5]\n\
+ movs r2, #2\n\
+ ldrsh r0, [r0, r2]\n\
+ adds r1, r1, r0\n\
+ ldr r2, _08051F88 @ =0x000001FF\n\
+ adds r0, r2, #0\n\
+ ands r1, r0\n\
+ ldrh r2, [r3, #2]\n\
+ adds r0, r6, #0\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #2]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ add r1, r8\n\
+ ldm r5!, {r0}\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ movs r3, #7\n\
+ add sb, r3\n\
+ movs r4, #1\n\
+ add ip, r4\n\
+ mov r7, ip\n\
+ cmp r7, #2\n\
+ ble _08051E6C\n\
+ movs r0, #0\n\
+ mov ip, r0\n\
+ ldr r1, _08051F84 @ =gOamBuffer\n\
+ mov r8, r1\n\
+ movs r6, #0x48\n\
+ mov r5, sl\n\
+_08051EE2:\n\
+ ldr r0, [r5]\n\
+ strh r6, [r0, #2]\n\
+ ldr r0, [r5]\n\
+ movs r2, #0x2c\n\
+ mov sb, r2\n\
+ mov r3, sb\n\
+ strh r3, [r0, #4]\n\
+ ldr r4, [r5]\n\
+ adds r7, r4, #0\n\
+ adds r7, #8\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ add r2, r8\n\
+ ldr r0, _08051F98 @ =gUnknown_02002935\n\
+ add r0, ip\n\
+ ldrb r1, [r0]\n\
+ adds r1, #0x16\n\
+ ldrh r3, [r2, #4]\n\
+ ldr r0, _08051F94 @ =0xFFFFFC00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #4]\n\
+ ldrh r3, [r4, #8]\n\
+ lsls r3, r3, #3\n\
+ add r3, r8\n\
+ movs r0, #2\n\
+ ldrsh r1, [r7, r0]\n\
+ ldr r0, [r5]\n\
+ movs r2, #2\n\
+ ldrsh r0, [r0, r2]\n\
+ adds r1, r1, r0\n\
+ ldr r2, _08051F88 @ =0x000001FF\n\
+ adds r0, r2, #0\n\
+ ands r1, r0\n\
+ ldrh r2, [r3, #2]\n\
+ ldr r0, _08051F8C @ =0xFFFFFE00\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #2]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ add r1, r8\n\
+ ldm r5!, {r0}\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ adds r6, #7\n\
+ movs r3, #1\n\
+ add ip, r3\n\
+ mov r4, ip\n\
+ cmp r4, #2\n\
+ ble _08051EE2\n\
+ movs r0, #0x48\n\
+ ldr r6, [sp, #0x60]\n\
+ strh r0, [r6, #2]\n\
+ ldr r7, _08051F70 @ =gOptionsData\n\
+ movs r1, #0xa\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, #0\n\
+ bne _08051F9C\n\
+ movs r0, #0x20\n\
+ strh r0, [r6, #4]\n\
+ b _08051FA6\n\
+ .align 2, 0\n\
+_08051F64: .4byte gUnknown_0200C890\n\
+_08051F68: .4byte gUnknown_0200B978\n\
+_08051F6C: .4byte gUnknown_0200C948\n\
+_08051F70: .4byte gOptionsData\n\
+_08051F74: .4byte gUnknown_0200CA00\n\
+_08051F78: .4byte gUnknown_086BB9EC\n\
+_08051F7C: .4byte gUnknown_0200B3B8\n\
+_08051F80: .4byte gUnknown_086BB968\n\
+_08051F84: .4byte gOamBuffer\n\
+_08051F88: .4byte 0x000001FF\n\
+_08051F8C: .4byte 0xFFFFFE00\n\
+_08051F90: .4byte gUnknown_02002932\n\
+_08051F94: .4byte 0xFFFFFC00\n\
+_08051F98: .4byte gUnknown_02002935\n\
+_08051F9C:\n\
+ cmp r0, #1\n\
+ bne _08051FA6\n\
+ mov r3, sb\n\
+ ldr r2, [sp, #0x60]\n\
+ strh r3, [r2, #4]\n\
+_08051FA6:\n\
+ ldr r5, _080520D0 @ =gOamBuffer\n\
+ ldr r7, _080520D4 @ =0xFFFFFE00\n\
+ ldr r4, [sp, #0x60]\n\
+ adds r4, #8\n\
+ movs r6, #1\n\
+ mov ip, r6\n\
+_08051FB2:\n\
+ ldrh r3, [r4]\n\
+ lsls r3, r3, #3\n\
+ adds r3, r3, r5\n\
+ movs r0, #2\n\
+ ldrsh r1, [r4, r0]\n\
+ ldr r2, [sp, #0x60]\n\
+ movs r6, #2\n\
+ ldrsh r0, [r2, r6]\n\
+ adds r1, r1, r0\n\
+ ldr r0, _080520D8 @ =0x000001FF\n\
+ adds r6, r0, #0\n\
+ ands r1, r6\n\
+ ldrh r2, [r3, #2]\n\
+ adds r0, r7, #0\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #2]\n\
+ ldrh r1, [r4]\n\
+ lsls r1, r1, #3\n\
+ adds r1, r1, r5\n\
+ ldr r2, [sp, #0x60]\n\
+ ldrb r0, [r2, #4]\n\
+ ldrb r3, [r4, #4]\n\
+ adds r0, r0, r3\n\
+ strb r0, [r1]\n\
+ adds r4, #8\n\
+ movs r0, #1\n\
+ rsbs r0, r0, #0\n\
+ add ip, r0\n\
+ mov r1, ip\n\
+ cmp r1, #0\n\
+ bge _08051FB2\n\
+ movs r0, #0x48\n\
+ ldr r2, _080520DC @ =gUnknown_0200B978\n\
+ strh r0, [r2, #2]\n\
+ ldr r3, _080520E0 @ =gOptionsData\n\
+ movs r4, #0xc\n\
+ ldrsh r0, [r3, r4]\n\
+ lsls r0, r0, #1\n\
+ ldr r7, _080520E4 @ =gUnknown_086BB9A8\n\
+ adds r0, r0, r7\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r2, #4]\n\
+ ldr r7, [sp, #0x70]\n\
+ ldrh r2, [r2, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r0, _080520D0 @ =gOamBuffer\n\
+ adds r2, r2, r0\n\
+ movs r3, #2\n\
+ ldrsh r1, [r7, r3]\n\
+ adds r1, #0x48\n\
+ ands r1, r6\n\
+ ldrh r3, [r2, #2]\n\
+ ldr r0, _080520D4 @ =0xFFFFFE00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #2]\n\
+ ldr r4, _080520DC @ =gUnknown_0200B978\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r6, _080520D0 @ =gOamBuffer\n\
+ adds r1, r1, r6\n\
+ ldrb r0, [r4, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ movs r7, #0\n\
+ mov ip, r7\n\
+ ldr r0, _080520E0 @ =gOptionsData\n\
+ str r0, [sp, #0x68]\n\
+ movs r1, #0x54\n\
+ str r1, [sp, #0x80]\n\
+ movs r2, #0\n\
+ str r2, [sp, #0x84]\n\
+ movs r3, #0\n\
+ str r3, [sp, #0x88]\n\
+ ldr r4, [sp, #0x6c]\n\
+ mov r8, r4\n\
+_0805204E:\n\
+ ldr r0, [sp, #0x68]\n\
+ adds r0, #0x1a\n\
+ add r0, ip\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #1\n\
+ bne _080520E8\n\
+ mov r6, r8\n\
+ ldr r1, [r6]\n\
+ movs r0, #0x9c\n\
+ strh r0, [r1, #2]\n\
+ ldr r0, [r6]\n\
+ add r7, sp, #0x80\n\
+ ldrh r7, [r7]\n\
+ strh r7, [r0, #4]\n\
+ movs r5, #0\n\
+ ldr r1, [sp, #0x68]\n\
+ movs r2, #6\n\
+ ldrsh r0, [r1, r2]\n\
+ adds r0, #1\n\
+ cmp r5, r0\n\
+ blt _0805207A\n\
+ b _080522E2\n\
+_0805207A:\n\
+ ldr r3, [sp, #0x6c]\n\
+ ldr r6, [sp, #0x84]\n\
+ adds r4, r3, r6\n\
+ ldr r7, _080520D0 @ =gOamBuffer\n\
+ mov sb, r7\n\
+ movs r6, #8\n\
+ ldr r0, _080520D4 @ =0xFFFFFE00\n\
+ mov sl, r0\n\
+_0805208A:\n\
+ ldr r0, [r4]\n\
+ adds r7, r0, r6\n\
+ ldrh r2, [r7]\n\
+ lsls r2, r2, #3\n\
+ add r2, sb\n\
+ movs r3, #2\n\
+ ldrsh r1, [r7, r3]\n\
+ movs r3, #2\n\
+ ldrsh r0, [r0, r3]\n\
+ adds r1, r1, r0\n\
+ ldr r3, _080520D8 @ =0x000001FF\n\
+ adds r0, r3, #0\n\
+ ands r1, r0\n\
+ ldrh r3, [r2, #2]\n\
+ mov r0, sl\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #2]\n\
+ ldrh r1, [r7]\n\
+ lsls r1, r1, #3\n\
+ add r1, sb\n\
+ ldr r0, [r4]\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ adds r6, #8\n\
+ adds r5, #1\n\
+ ldr r7, [sp, #0x68]\n\
+ movs r1, #6\n\
+ ldrsh r0, [r7, r1]\n\
+ adds r0, #1\n\
+ cmp r5, r0\n\
+ blt _0805208A\n\
+ b _080522E2\n\
+ .align 2, 0\n\
+_080520D0: .4byte gOamBuffer\n\
+_080520D4: .4byte 0xFFFFFE00\n\
+_080520D8: .4byte 0x000001FF\n\
+_080520DC: .4byte gUnknown_0200B978\n\
+_080520E0: .4byte gOptionsData\n\
+_080520E4: .4byte gUnknown_086BB9A8\n\
+_080520E8:\n\
+ mov r2, r8\n\
+ ldr r1, [r2]\n\
+ movs r0, #0x9c\n\
+ strh r0, [r1, #2]\n\
+ ldr r0, [r2]\n\
+ add r3, sp, #0x80\n\
+ ldrh r3, [r3]\n\
+ strh r3, [r0, #4]\n\
+ ldr r4, [r2]\n\
+ adds r7, r4, #0\n\
+ adds r7, #8\n\
+ ldr r6, [sp, #0x68]\n\
+ movs r0, #0xc\n\
+ ldrsh r1, [r6, r0]\n\
+ lsls r0, r1, #2\n\
+ adds r0, r0, r1\n\
+ lsls r0, r0, #1\n\
+ ldr r1, [sp, #0x88]\n\
+ adds r0, r1, r0\n\
+ ldr r2, _08052490 @ =gUnknown_02031AF0\n\
+ adds r0, r0, r2\n\
+ ldrb r0, [r0]\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r3, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r3\n\
+ lsls r0, r0, #3\n\
+ ldr r1, _08052498 @ =gUnknown_086BB910\n\
+ adds r6, r0, r1\n\
+ ldrh r0, [r6, #2]\n\
+ ldr r1, _0805249C @ =0x000003FF\n\
+ ands r1, r0\n\
+ ldrh r3, [r2, #4]\n\
+ ldr r0, _080524A0 @ =0xFFFFFC00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #4]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r2, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r2\n\
+ ldrb r2, [r6, #4]\n\
+ lsls r2, r2, #6\n\
+ ldrb r3, [r1, #1]\n\
+ movs r0, #0x3f\n\
+ mov sl, r0\n\
+ ands r0, r3\n\
+ orrs r0, r2\n\
+ strb r0, [r1, #1]\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r1, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r1\n\
+ ldrb r1, [r6, #5]\n\
+ lsls r1, r1, #6\n\
+ ldrb r3, [r2, #3]\n\
+ mov r0, sl\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strb r0, [r2, #3]\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r3, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r3\n\
+ movs r0, #2\n\
+ ldrsh r1, [r7, r0]\n\
+ mov r3, r8\n\
+ ldr r0, [r3]\n\
+ movs r3, #2\n\
+ ldrsh r0, [r0, r3]\n\
+ adds r1, r1, r0\n\
+ ldr r0, _080524A4 @ =0x000001FF\n\
+ ands r1, r0\n\
+ ldrh r3, [r2, #2]\n\
+ ldr r0, _080524A8 @ =0xFFFFFE00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #2]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r2, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r2\n\
+ mov r3, r8\n\
+ ldr r0, [r3]\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ ldr r4, [sp, #0x68]\n\
+ movs r7, #0xc\n\
+ ldrsh r1, [r4, r7]\n\
+ lsls r0, r1, #2\n\
+ adds r0, r0, r1\n\
+ lsls r0, r0, #1\n\
+ adds r0, #1\n\
+ ldr r1, [sp, #0x88]\n\
+ adds r0, r1, r0\n\
+ ldr r2, _08052490 @ =gUnknown_02031AF0\n\
+ adds r0, r0, r2\n\
+ ldrb r0, [r0]\n\
+ mov sb, r0\n\
+ cmp r0, #0xa\n\
+ bne _080521B8\n\
+ b _080522E2\n\
+_080521B8:\n\
+ ldr r3, [sp, #0x74]\n\
+ ldr r4, [sp, #0x84]\n\
+ adds r5, r3, r4\n\
+ ldr r1, [r5]\n\
+ mov r7, r8\n\
+ ldr r0, [r7]\n\
+ ldrh r0, [r0, #2]\n\
+ ldrb r6, [r6, #6]\n\
+ adds r0, r0, r6\n\
+ strh r0, [r1, #2]\n\
+ ldr r1, [r5]\n\
+ ldr r0, [r7]\n\
+ ldrh r0, [r0, #4]\n\
+ strh r0, [r1, #4]\n\
+ ldr r4, [r5]\n\
+ adds r7, r4, #0\n\
+ adds r7, #8\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r0, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r0\n\
+ ldrh r1, [r2, #4]\n\
+ ldr r0, _080524A0 @ =0xFFFFFC00\n\
+ ands r0, r1\n\
+ movs r1, #0x2a\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #4]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r2, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r2\n\
+ ldrb r2, [r1, #1]\n\
+ mov r0, sl\n\
+ ands r0, r2\n\
+ strb r0, [r1, #1]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r3, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r3\n\
+ ldrb r2, [r1, #3]\n\
+ mov r0, sl\n\
+ ands r0, r2\n\
+ strb r0, [r1, #3]\n\
+ ldrh r3, [r4, #8]\n\
+ lsls r3, r3, #3\n\
+ ldr r6, _08052494 @ =gOamBuffer\n\
+ adds r3, r3, r6\n\
+ movs r0, #2\n\
+ ldrsh r1, [r7, r0]\n\
+ ldr r0, [r5]\n\
+ movs r2, #2\n\
+ ldrsh r0, [r0, r2]\n\
+ adds r1, r1, r0\n\
+ ldr r6, _080524A4 @ =0x000001FF\n\
+ ands r1, r6\n\
+ ldrh r2, [r3, #2]\n\
+ ldr r0, _080524A8 @ =0xFFFFFE00\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #2]\n\
+ ldrh r1, [r4, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r0, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r0\n\
+ ldr r0, [r5]\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ ldr r1, [sp, #0x7c]\n\
+ ldr r2, [sp, #0x84]\n\
+ adds r6, r1, r2\n\
+ ldr r1, [r6]\n\
+ ldr r0, [r5]\n\
+ ldrh r0, [r0, #2]\n\
+ adds r0, #8\n\
+ strh r0, [r1, #2]\n\
+ ldr r1, [r6]\n\
+ mov r3, r8\n\
+ ldr r0, [r3]\n\
+ ldrh r0, [r0, #4]\n\
+ strh r0, [r1, #4]\n\
+ ldr r5, [r6]\n\
+ adds r7, r5, #0\n\
+ adds r7, #8\n\
+ ldrh r3, [r5, #8]\n\
+ lsls r3, r3, #3\n\
+ ldr r4, _08052494 @ =gOamBuffer\n\
+ adds r3, r3, r4\n\
+ mov r0, sb\n\
+ lsls r4, r0, #3\n\
+ ldr r1, _08052498 @ =gUnknown_086BB910\n\
+ adds r4, r4, r1\n\
+ ldrh r0, [r4, #2]\n\
+ ldr r1, _0805249C @ =0x000003FF\n\
+ ands r1, r0\n\
+ ldrh r2, [r3, #4]\n\
+ ldr r0, _080524A0 @ =0xFFFFFC00\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #4]\n\
+ ldrh r2, [r5, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r3, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r3\n\
+ ldrb r1, [r4, #4]\n\
+ lsls r1, r1, #6\n\
+ ldrb r3, [r2, #1]\n\
+ mov r0, sl\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strb r0, [r2, #1]\n\
+ ldrh r2, [r5, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r0, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r0\n\
+ ldrb r1, [r4, #5]\n\
+ lsls r1, r1, #6\n\
+ ldrb r3, [r2, #3]\n\
+ mov r0, sl\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strb r0, [r2, #3]\n\
+ ldrh r3, [r5, #8]\n\
+ lsls r3, r3, #3\n\
+ ldr r1, _08052494 @ =gOamBuffer\n\
+ adds r3, r3, r1\n\
+ movs r2, #2\n\
+ ldrsh r1, [r7, r2]\n\
+ ldr r0, [r6]\n\
+ movs r4, #2\n\
+ ldrsh r0, [r0, r4]\n\
+ adds r1, r1, r0\n\
+ ldr r0, _080524A4 @ =0x000001FF\n\
+ ands r1, r0\n\
+ ldrh r2, [r3, #2]\n\
+ ldr r0, _080524A8 @ =0xFFFFFE00\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #2]\n\
+ ldrh r1, [r5, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r2, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r2\n\
+ ldr r0, [r6]\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+_080522E2:\n\
+ ldr r3, [sp, #0x80]\n\
+ adds r3, #0xc\n\
+ str r3, [sp, #0x80]\n\
+ ldr r4, [sp, #0x84]\n\
+ adds r4, #0xc\n\
+ str r4, [sp, #0x84]\n\
+ ldr r6, [sp, #0x88]\n\
+ adds r6, #2\n\
+ str r6, [sp, #0x88]\n\
+ movs r7, #0xc\n\
+ add r8, r7\n\
+ movs r0, #1\n\
+ add ip, r0\n\
+ mov r1, ip\n\
+ cmp r1, #4\n\
+ bgt _08052304\n\
+ b _0805204E\n\
+_08052304:\n\
+ movs r5, #8\n\
+ movs r0, #0xaa\n\
+ ldr r2, [sp, #0x64]\n\
+ strh r0, [r2, #2]\n\
+ ldr r0, _080524AC @ =gOptionsData\n\
+ adds r0, #0x2a\n\
+ ldrb r0, [r0]\n\
+ lsls r1, r0, #1\n\
+ adds r1, r1, r0\n\
+ lsls r1, r1, #2\n\
+ movs r0, #0x2c\n\
+ subs r0, r0, r1\n\
+ strh r0, [r2, #4]\n\
+ ldr r7, [sp, #0x78]\n\
+ ldrh r2, [r2, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r3, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r3\n\
+ movs r4, #2\n\
+ ldrsh r1, [r7, r4]\n\
+ adds r1, #0xaa\n\
+ ldr r6, _080524A4 @ =0x000001FF\n\
+ adds r0, r6, #0\n\
+ ands r1, r0\n\
+ ldrh r3, [r2, #2]\n\
+ ldr r4, _080524A8 @ =0xFFFFFE00\n\
+ adds r0, r4, #0\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #2]\n\
+ ldr r0, [sp, #0x64]\n\
+ ldrh r1, [r0, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r2, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r2\n\
+ ldrb r0, [r0, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ movs r0, #0xc0\n\
+ ldr r3, _080524B0 @ =gUnknown_0200C948\n\
+ strh r0, [r3, #2]\n\
+ strh r5, [r3, #4]\n\
+ ldr r6, _080524AC @ =gOptionsData\n\
+ adds r6, #0x2d\n\
+ mov sl, r6\n\
+ adds r5, r3, #0\n\
+ adds r5, #8\n\
+ movs r6, #0x40\n\
+ mov sb, r4\n\
+ movs r7, #1\n\
+ mov ip, r7\n\
+_0805236C:\n\
+ ldrh r3, [r5]\n\
+ lsls r3, r3, #3\n\
+ ldr r0, _08052494 @ =gOamBuffer\n\
+ adds r3, r3, r0\n\
+ mov r2, sl\n\
+ movs r1, #0\n\
+ ldrsb r1, [r2, r1]\n\
+ lsls r1, r1, #2\n\
+ adds r1, r6, r1\n\
+ ldr r7, _0805249C @ =0x000003FF\n\
+ adds r4, r7, #0\n\
+ ands r1, r4\n\
+ ldrh r2, [r3, #4]\n\
+ ldr r0, _080524A0 @ =0xFFFFFC00\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #4]\n\
+ ldrh r3, [r5]\n\
+ lsls r3, r3, #3\n\
+ ldr r0, _08052494 @ =gOamBuffer\n\
+ adds r3, r3, r0\n\
+ movs r2, #2\n\
+ ldrsh r1, [r5, r2]\n\
+ ldr r7, _080524B0 @ =gUnknown_0200C948\n\
+ movs r2, #2\n\
+ ldrsh r0, [r7, r2]\n\
+ adds r1, r1, r0\n\
+ ldr r7, _080524A4 @ =0x000001FF\n\
+ mov r8, r7\n\
+ mov r0, r8\n\
+ ands r1, r0\n\
+ ldrh r2, [r3, #2]\n\
+ mov r0, sb\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strh r0, [r3, #2]\n\
+ ldrh r1, [r5]\n\
+ lsls r1, r1, #3\n\
+ ldr r2, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r2\n\
+ ldr r3, _080524B0 @ =gUnknown_0200C948\n\
+ ldrb r0, [r3, #4]\n\
+ ldrb r7, [r5, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ adds r5, #8\n\
+ adds r6, #0x80\n\
+ movs r0, #1\n\
+ rsbs r0, r0, #0\n\
+ add ip, r0\n\
+ mov r1, ip\n\
+ cmp r1, #0\n\
+ bge _0805236C\n\
+ ldr r2, _080524B4 @ =gUnknown_0200CA00\n\
+ ldrh r0, [r2]\n\
+ cmp r0, #1\n\
+ bne _08052454\n\
+ movs r0, #0xb0\n\
+ strh r0, [r2, #2]\n\
+ movs r0, #8\n\
+ strh r0, [r2, #4]\n\
+ adds r7, r2, #0\n\
+ adds r7, #8\n\
+ ldrh r2, [r2, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r3, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r3\n\
+ ldr r5, _080524AC @ =gOptionsData\n\
+ adds r5, #0x2f\n\
+ movs r1, #0\n\
+ ldrsb r1, [r5, r1]\n\
+ lsls r1, r1, #6\n\
+ adds r1, #0x54\n\
+ ands r1, r4\n\
+ ldrh r3, [r2, #4]\n\
+ ldr r0, _080524A0 @ =0xFFFFFC00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #4]\n\
+ ldr r4, _080524B4 @ =gUnknown_0200CA00\n\
+ ldrh r2, [r4, #8]\n\
+ lsls r2, r2, #3\n\
+ ldr r6, _08052494 @ =gOamBuffer\n\
+ adds r2, r2, r6\n\
+ movs r0, #2\n\
+ ldrsh r1, [r7, r0]\n\
+ movs r3, #2\n\
+ ldrsh r0, [r4, r3]\n\
+ adds r1, r1, r0\n\
+ mov r4, r8\n\
+ ands r1, r4\n\
+ ldrh r3, [r2, #2]\n\
+ ldr r0, _080524A8 @ =0xFFFFFE00\n\
+ ands r0, r3\n\
+ orrs r0, r1\n\
+ strh r0, [r2, #2]\n\
+ ldr r6, _080524B4 @ =gUnknown_0200CA00\n\
+ ldrh r1, [r6, #8]\n\
+ lsls r1, r1, #3\n\
+ ldr r0, _08052494 @ =gOamBuffer\n\
+ adds r1, r1, r0\n\
+ ldrb r0, [r6, #4]\n\
+ ldrb r7, [r7, #4]\n\
+ adds r0, r0, r7\n\
+ strb r0, [r1]\n\
+ ldr r0, _080524B8 @ =gMain\n\
+ ldr r0, [r0, #0x4c]\n\
+ movs r1, #0x12\n\
+ bl __umodsi3\n\
+ cmp r0, #0\n\
+ bne _08052454\n\
+ ldrb r1, [r5]\n\
+ movs r0, #1\n\
+ subs r0, r0, r1\n\
+ strb r0, [r5]\n\
+_08052454:\n\
+ movs r0, #0\n\
+ ldr r1, [sp, #0x60]\n\
+ strh r0, [r1]\n\
+ mov ip, r0\n\
+ ldr r4, [sp, #0x6c]\n\
+ movs r3, #0\n\
+_08052460:\n\
+ mov r2, ip\n\
+ adds r2, #1\n\
+ mov r6, ip\n\
+ lsls r0, r6, #1\n\
+ add r0, ip\n\
+ lsls r0, r0, #2\n\
+ adds r1, r0, r4\n\
+ movs r5, #2\n\
+_08052470:\n\
+ ldm r1!, {r0}\n\
+ strh r3, [r0]\n\
+ subs r5, #1\n\
+ cmp r5, #0\n\
+ bge _08052470\n\
+ mov ip, r2\n\
+ cmp r2, #5\n\
+ ble _08052460\n\
+ add sp, #0x8c\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov sb, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08052490: .4byte gUnknown_02031AF0\n\
+_08052494: .4byte gOamBuffer\n\
+_08052498: .4byte gUnknown_086BB910\n\
+_0805249C: .4byte 0x000003FF\n\
+_080524A0: .4byte 0xFFFFFC00\n\
+_080524A4: .4byte 0x000001FF\n\
+_080524A8: .4byte 0xFFFFFE00\n\
+_080524AC: .4byte gOptionsData\n\
+_080524B0: .4byte gUnknown_0200C948\n\
+_080524B4: .4byte gUnknown_0200CA00\n\
+_080524B8: .4byte gMain");
+}
+
+void sub_524BC(void)
+{
+ int i, pressedKeys;
+ if (gOptionsData.unk28 >= 2)
+ return;
+ pressedKeys = gMain.heldKeys & (KEYS_MASK ^ START_BUTTON);
+ if (!pressedKeys)
+ return;
+
+ for (i = 0; i < 10; i++)
+ {
+ int key = pressedKeys & (1 << i);
+ if (key && !(gOptionsData.unk22 & key))
+ {
+ gOptionsData.unk22 |= key;
+ gOptionsData.unk24[gOptionsData.unk28] = i;
+ if (++gOptionsData.unk28 == 2)
+ return;
+ }
+ }
+}
+
+void sub_52528(void)
+{
+ int i, j;
+ u8 var0;
+ for (i = 0; i < 5; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ switch (gUnknown_0200B204[i][j])
+ {
+ case 0x1:
+ var0 = 0;
+ break;
+ case 0x2:
+ var0 = 1;
+ break;
+ case 0x4:
+ var0 = 2;
+ break;
+ case 0x10:
+ var0 = 4;
+ break;
+ case 0x20:
+ var0 = 5;
+ break;
+ case 0x40:
+ var0 = 6;
+ break;
+ case 0x80:
+ var0 = 7;
+ break;
+ case 0x100:
+ var0 = 8;
+ break;
+ case 0x200:
+ var0 = 9;
+ break;
+ case 0x8:
+ default:
+ var0 = 10;
+ break;
+ }
+ gUnknown_02031B18[i * 2 + j] = var0;
+ }
+ }
+}
+
+extern const u8 gUnknown_08527EFE[];
+
+void sub_525CC(s8 arg0)
+{
+ int i;
+ s8 var0 = arg0 + 1;
+ switch (var0)
+ {
+ case 0:
+ gMain.unk60 = gUnknown_086BB910[5][0];
+ gMain.unk62 = gUnknown_086BB910[10][0];
+ gMain.unk64 = gUnknown_086BB910[0][0];
+ gMain.unk66 = gUnknown_086BB910[10][0];
+ gMain.unk68 = gUnknown_086BB910[9][0];
+ gMain.unk6A = gUnknown_086BB910[10][0];
+ gMain.unk6C = gUnknown_086BB910[8][0];
+ gMain.unk6E = gUnknown_086BB910[10][0];
+ gMain.unk70 = gUnknown_086BB910[9][0];
+ gMain.unk72 = gUnknown_086BB910[8][0];
+ gMain_saveData.unk144[0][0] = gUnknown_086BB910[1][0];
+ gMain_saveData.unk144[0][1] = gUnknown_086BB910[10][0];
+ gMain_saveData.unk144[1][0] = gUnknown_086BB910[0][0];
+ gMain_saveData.unk144[1][1] = gUnknown_086BB910[10][0];
+ gMain_saveData.unk144[2][0] = gUnknown_086BB910[5][0];
+ gMain_saveData.unk144[2][1] = gUnknown_086BB910[10][0];
+ gMain_saveData.unk144[3][0] = gUnknown_086BB910[4][0];
+ gMain_saveData.unk144[3][1] = gUnknown_086BB910[10][0];
+ gMain_saveData.unk144[4][0] = gUnknown_086BB910[6][0];
+ gMain_saveData.unk144[4][1] = gUnknown_086BB910[10][0];
+ for (i = 0; i < 10; i++)
+ gUnknown_02031B18[i] = gUnknown_08527EFE[i];
+ break;
+ case 1:
+ gMain.unk60 = gUnknown_086BB910[5][0];
+ gMain.unk62 = gUnknown_086BB910[10][0];
+ gMain.unk64 = gUnknown_086BB910[0][0];
+ gMain.unk66 = gUnknown_086BB910[10][0];
+ gMain.unk68 = gUnknown_086BB910[9][0];
+ gMain.unk6A = gUnknown_086BB910[10][0];
+ gMain.unk6C = gUnknown_086BB910[8][0];
+ gMain.unk6E = gUnknown_086BB910[10][0];
+ gMain.unk70 = gUnknown_086BB910[9][0];
+ gMain.unk72 = gUnknown_086BB910[8][0];
+ break;
+ case 2:
+ gMain.unk60 = gUnknown_086BB910[5][0];
+ gMain.unk62 = gUnknown_086BB910[10][0];
+ gMain.unk64 = gUnknown_086BB910[0][0];
+ gMain.unk66 = gUnknown_086BB910[10][0];
+ gMain.unk68 = gUnknown_086BB910[9][0];
+ gMain.unk6A = gUnknown_086BB910[10][0];
+ gMain.unk6C = gUnknown_086BB910[8][0];
+ gMain.unk6E = gUnknown_086BB910[10][0];
+ gMain.unk70 = gUnknown_086BB910[1][0];
+ gMain.unk72 = gUnknown_086BB910[10][0];
+ break;
+ case 3:
+ gMain.unk60 = gUnknown_086BB910[9][0];
+ gMain.unk62 = gUnknown_086BB910[10][0];
+ gMain.unk64 = gUnknown_086BB910[8][0];
+ gMain.unk66 = gUnknown_086BB910[10][0];
+ gMain.unk68 = gUnknown_086BB910[5][0];
+ gMain.unk6A = gUnknown_086BB910[10][0];
+ gMain.unk6C = gUnknown_086BB910[0][0];
+ gMain.unk6E = gUnknown_086BB910[10][0];
+ gMain.unk70 = gUnknown_086BB910[5][0];
+ gMain.unk72 = gUnknown_086BB910[0][0];
+ break;
+ case 4:
+ gMain.unk60 = gUnknown_086BB910[9][0];
+ gMain.unk62 = gUnknown_086BB910[10][0];
+ gMain.unk64 = gUnknown_086BB910[8][0];
+ gMain.unk66 = gUnknown_086BB910[10][0];
+ gMain.unk68 = gUnknown_086BB910[5][0];
+ gMain.unk6A = gUnknown_086BB910[10][0];
+ gMain.unk6C = gUnknown_086BB910[4][0];
+ gMain.unk6E = gUnknown_086BB910[10][0];
+ gMain.unk70 = gUnknown_086BB910[6][0];
+ gMain.unk72 = gUnknown_086BB910[10][0];
+ break;
+ case 5:
+ gMain.unk60 = gMain_saveData.unk144[0][0];
+ gMain.unk62 = gMain_saveData.unk144[0][1];
+ gMain.unk64 = gMain_saveData.unk144[1][0];
+ gMain.unk66 = gMain_saveData.unk144[1][1];
+ gMain.unk68 = gMain_saveData.unk144[2][0];
+ gMain.unk6A = gMain_saveData.unk144[2][1];
+ gMain.unk6C = gMain_saveData.unk144[3][0];
+ gMain.unk6E = gMain_saveData.unk144[3][1];
+ gMain.unk70 = gMain_saveData.unk144[4][0];
+ gMain.unk72 = gMain_saveData.unk144[4][1];
+ break;
+ }
}
-*/
diff --git a/src/titlescreen.c b/src/titlescreen.c
index 583ca5f..a0b5a6b 100755
--- a/src/titlescreen.c
+++ b/src/titlescreen.c
@@ -672,8 +672,8 @@ static void sub_11640(void)
{
int i;
const struct SpriteSet *spriteSet;
- struct SpriteGroup *group1 = &gTitlescreen.unk8[gUnknown_0200B3B8];
- struct SpriteGroup *group2 = &gTitlescreen.unk10[gUnknown_0200B3B8];
+ struct SpriteGroup *group1 = &gUnknown_0200B3B8[gTitlescreen.unk8];
+ struct SpriteGroup *group2 = &gUnknown_0200B3B8[gTitlescreen.unk10];
group1->available = gTitlescreen.unk9;
group2->available = gTitlescreen.unk11;