summaryrefslogtreecommitdiff
path: root/asm/save.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/save.s')
-rw-r--r--asm/save.s1748
1 files changed, 7 insertions, 1741 deletions
diff --git a/asm/save.s b/asm/save.s
index 004514594..7047c3c25 100644
--- a/asm/save.s
+++ b/asm/save.s
@@ -5,1746 +5,12 @@
.text
- thumb_func_start calls_flash_erase_block
-calls_flash_erase_block: @ 8152650
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =EraseFlashSector
-_08152656:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [r5]
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08152656
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end calls_flash_erase_block
-
- thumb_func_start sub_8152680
-sub_8152680: @ 8152680
- ldr r0, =gUnknown_03006200
- movs r1, 0
- str r1, [r0]
- ldr r0, =gUnknown_030061F0
- strh r1, [r0]
- ldr r0, =gUnknown_030061FC
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_8152680
-
- thumb_func_start sub_815269C
-sub_815269C: @ 815269C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r4, 0
- cmp r0, 0x1
- beq _081526D0
- cmp r0, 0x1
- bgt _081526B6
- cmp r0, 0
- beq _081526BC
- b _081526F4
-_081526B6:
- cmp r0, 0x2
- beq _081526E4
- b _081526F4
-_081526BC:
- ldr r2, =gUnknown_030061FC
- movs r1, 0x1
- lsls r1, r3
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _081526F4
- .pool
-_081526D0:
- ldr r2, =gUnknown_030061FC
- adds r1, r0, 0
- lsls r1, r3
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- b _081526F4
- .pool
-_081526E4:
- ldr r0, =gUnknown_030061FC
- movs r1, 0x1
- lsls r1, r3
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _081526F4
- movs r4, 0x1
-_081526F4:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_815269C
-
- thumb_func_start save_write_to_flash
-save_write_to_flash: @ 8152700
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, =gUnknown_03006204
- ldr r0, =gUnknown_0203ABBC
- str r0, [r1]
- ldr r0, =0x0000ffff
- cmp r2, r0
- beq _08152730
- adds r0, r2, 0
- adds r1, r7, 0
- bl sub_81527A0
- lsls r0, 24
- lsrs r5, r0, 24
- b _08152782
- .pool
-_08152730:
- ldr r1, =gUnknown_030061F8
- ldr r5, =gUnknown_030061F0
- ldrh r0, [r5]
- strh r0, [r1]
- ldr r1, =gUnknown_030061F4
- ldr r6, =gUnknown_03006200
- ldr r4, [r6]
- str r4, [r1]
- adds r0, 0x1
- strh r0, [r5]
- ldrh r0, [r5]
- movs r1, 0xE
- bl __umodsi3
- strh r0, [r5]
- adds r4, 0x1
- str r4, [r6]
- movs r5, 0x1
- movs r4, 0
-_08152756:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_81527A0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08152756
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _08152782
- movs r5, 0xFF
- ldr r1, =gUnknown_030061F0
- ldr r0, =gUnknown_030061F8
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, =gUnknown_03006200
- ldr r0, =gUnknown_030061F4
- ldr r0, [r0]
- str r0, [r1]
-_08152782:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end save_write_to_flash
-
- thumb_func_start sub_81527A0
-sub_81527A0: @ 81527A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gUnknown_030061F0
- ldrh r0, [r0]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, =gUnknown_03006200
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r6, 3
- adds r0, r4
- ldr r1, [r0]
- mov r10, r1
- ldrh r4, [r0, 0x4]
- movs r3, 0
- mov r9, r2
- ldr r2, =gUnknown_03006204
- mov r12, r2
- mov r8, r12
- movs r2, 0
- ldr r1, =0x00000fff
-_081527F2:
- mov r7, r8
- ldr r0, [r7]
- adds r0, r3
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bls _081527F2
- mov r0, r12
- ldr r1, [r0]
- ldr r2, =0x00000ff4
- adds r0, r1, r2
- strh r6, [r0]
- ldr r3, =0x00000ff8
- adds r2, r1, r3
- ldr r0, =0x08012025
- str r0, [r2]
- ldr r6, =0x00000ffc
- adds r1, r6
- mov r7, r9
- ldr r0, [r7]
- str r0, [r1]
- movs r3, 0
- lsls r5, 24
- cmp r3, r4
- bcs _08152840
- mov r2, r12
-_0815282A:
- ldr r1, [r2]
- adds r1, r3
- mov r6, r10
- adds r0, r6, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _0815282A
-_08152840:
- mov r0, r10
- adds r1, r4, 0
- bl sub_8153164
- ldr r1, =gUnknown_03006204
- ldr r1, [r1]
- ldr r7, =0x00000ff6
- adds r2, r1, r7
- strh r0, [r2]
- lsrs r0, r5, 24
- bl sub_8152908
- lsls r0, 24
- lsrs r0, 24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81527A0
-
- thumb_func_start sub_8152890
-sub_8152890: @ 8152890
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r4, =gUnknown_0203ABBC
- movs r3, 0
- movs r6, 0
- ldr r1, =0x00000fff
-_081528A4:
- adds r0, r4, r3
- strb r6, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bls _081528A4
- ldr r0, =0x00000ff8
- adds r1, r4, r0
- ldr r0, =0x08012025
- str r0, [r1]
- movs r3, 0
- cmp r3, r2
- bcs _081528D2
-_081528C0:
- adds r1, r4, r3
- adds r0, r5, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _081528C0
-_081528D2:
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_8153164
- ldr r2, =0x00000ff4
- adds r1, r4, r2
- strh r0, [r1]
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_8152908
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152890
-
- thumb_func_start sub_8152908
-sub_8152908: @ 8152908
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl ProgramFlashSectorAndVerify
- cmp r0, 0
- bne _08152924
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_815269C
- movs r0, 0x1
- b _0815292E
-_08152924:
- movs r0, 0
- adds r1, r4, 0
- bl sub_815269C
- movs r0, 0xFF
-_0815292E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8152908
-
- thumb_func_start sub_8152934
-sub_8152934: @ 8152934
- push {r4-r6,lr}
- ldr r1, =gUnknown_03006204
- ldr r0, =gUnknown_0203ABBC
- str r0, [r1]
- ldr r1, =gUnknown_030061F8
- ldr r5, =gUnknown_030061F0
- ldrh r0, [r5]
- strh r0, [r1]
- ldr r1, =gUnknown_030061F4
- ldr r6, =gUnknown_03006200
- ldr r4, [r6]
- str r4, [r1]
- adds r0, 0x1
- strh r0, [r5]
- ldrh r0, [r5]
- movs r1, 0xE
- bl __umodsi3
- strh r0, [r5]
- adds r4, 0x1
- str r4, [r6]
- ldr r1, =gUnknown_03006208
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gUnknown_030061FC
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152934
-
- thumb_func_start sub_8152990
-sub_8152990: @ 8152990
- ldr r1, =gUnknown_03006204
- ldr r0, =gUnknown_0203ABBC
- str r0, [r1]
- ldr r1, =gUnknown_030061F8
- ldr r0, =gUnknown_030061F0
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, =gUnknown_030061F4
- ldr r0, =gUnknown_03006200
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, =gUnknown_03006208
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gUnknown_030061FC
- movs r0, 0
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_8152990
-
- thumb_func_start sub_81529D4
-sub_81529D4: @ 81529D4
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gUnknown_03006208
- ldrh r2, [r4]
- subs r0, 0x1
- cmp r2, r0
- bge _08152A28
- movs r5, 0x1
- adds r0, r2, 0
- bl sub_81527A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _08152A2A
- movs r5, 0xFF
- ldr r1, =gUnknown_030061F0
- ldr r0, =gUnknown_030061F8
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, =gUnknown_03006200
- ldr r0, =gUnknown_030061F4
- ldr r0, [r0]
- str r0, [r1]
- b _08152A2A
- .pool
-_08152A28:
- movs r5, 0xFF
-_08152A2A:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81529D4
-
- thumb_func_start sub_8152A34
-sub_8152A34: @ 8152A34
- push {r4,lr}
- lsls r0, 16
- movs r4, 0x1
- ldr r2, =0xffff0000
- adds r0, r2
- lsrs r0, 16
- bl calls_flash_erase_block_2
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _08152A5E
- movs r4, 0xFF
- ldr r1, =gUnknown_030061F0
- ldr r0, =gUnknown_030061F8
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, =gUnknown_03006200
- ldr r0, =gUnknown_030061F4
- ldr r0, [r0]
- str r0, [r1]
-_08152A5E:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152A34
-
- thumb_func_start calls_flash_erase_block_2
-calls_flash_erase_block_2: @ 8152A80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gUnknown_030061F0
- ldrh r0, [r0]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, =gUnknown_03006200
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r6, 3
- adds r0, r4
- ldr r1, [r0]
- mov r10, r1
- ldrh r3, [r0, 0x4]
- movs r4, 0
- mov r9, r2
- ldr r2, =gUnknown_03006204
- mov r12, r2
- mov r8, r12
- movs r2, 0
- ldr r1, =0x00000fff
-_08152AD2:
- mov r7, r8
- ldr r0, [r7]
- adds r0, r4
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _08152AD2
- mov r0, r12
- ldr r1, [r0]
- ldr r2, =0x00000ff4
- adds r0, r1, r2
- strh r6, [r0]
- ldr r6, =0x00000ff8
- adds r2, r1, r6
- ldr r0, =0x08012025
- str r0, [r2]
- ldr r7, =0x00000ffc
- adds r1, r7
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1]
- movs r4, 0
- lsls r6, r5, 24
- mov r8, r6
- cmp r4, r3
- bcs _08152B22
- mov r2, r12
-_08152B0C:
- ldr r1, [r2]
- adds r1, r4
- mov r7, r10
- adds r0, r7, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r3
- bcc _08152B0C
-_08152B22:
- mov r0, r10
- adds r1, r3, 0
- bl sub_8153164
- ldr r1, =gUnknown_03006204
- ldr r1, [r1]
- ldr r2, =0x00000ff6
- adds r1, r2
- strh r0, [r1]
- ldr r0, =EraseFlashSector
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- movs r6, 0x1
- movs r4, 0
- ldr r7, =0x00000ff7
- mov r9, r7
- ldr r7, =ProgramFlashByte
- b _08152B82
- .pool
-_08152B7C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08152B82:
- cmp r4, r9
- bhi _08152BA0
- ldr r0, =gUnknown_03006204
- ldr r0, [r0]
- adds r0, r4
- ldrb r2, [r0]
- ldr r3, [r7]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- beq _08152B7C
- movs r6, 0xFF
-_08152BA0:
- cmp r6, 0xFF
- bne _08152BB0
- mov r0, r8
- lsrs r1, r0, 24
- b _08152C08
- .pool
-_08152BB0:
- movs r6, 0x1
- movs r4, 0
- ldr r1, =ProgramFlashByte
- mov r9, r1
- ldr r7, =0x00000ff9
- b _08152BCA
- .pool
-_08152BC4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08152BCA:
- cmp r4, 0x6
- bhi _08152BEC
- adds r1, r4, r7
- ldr r0, =gUnknown_03006204
- ldr r0, [r0]
- adds r0, r4, r0
- adds r0, r7
- ldrb r2, [r0]
- mov r0, r9
- ldr r3, [r0]
- adds r0, r5, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- beq _08152BC4
- movs r6, 0xFF
-_08152BEC:
- cmp r6, 0xFF
- beq _08152C04
- mov r2, r8
- lsrs r1, r2, 24
- movs r0, 0x1
- bl sub_815269C
- movs r0, 0x1
- b _08152C10
- .pool
-_08152C04:
- mov r6, r8
- lsrs r1, r6, 24
-_08152C08:
- movs r0, 0
- bl sub_815269C
- movs r0, 0xFF
-_08152C10:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end calls_flash_erase_block_2
-
- thumb_func_start sav12_xor_get
-sav12_xor_get: @ 8152C20
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, =gUnknown_030061F0
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, =gUnknown_03006200
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =ProgramFlashByte
- ldr r1, =0x00000ff8
- ldr r3, [r0]
- adds r0, r4, 0
- movs r2, 0x25
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _08152C84
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_815269C
- movs r0, 0x1
- b _08152C9C
- .pool
-_08152C84:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_815269C
- ldr r0, =gUnknown_030061F8
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, =gUnknown_030061F4
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_08152C9C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sav12_xor_get
-
- thumb_func_start sub_8152CAC
-sub_8152CAC: @ 8152CAC
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, =gUnknown_030061F0
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, =gUnknown_03006200
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r3, =ProgramFlashByte
- ldr r1, =0x00000ff8
- ldr r0, =gUnknown_03006204
- ldr r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _08152D1C
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_815269C
- movs r0, 0x1
- b _08152D34
- .pool
-_08152D1C:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_815269C
- ldr r0, =gUnknown_030061F8
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, =gUnknown_030061F4
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_08152D34:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152CAC
-
- thumb_func_start sub_8152D44
-sub_8152D44: @ 8152D44
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, =gUnknown_030061F0
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, =gUnknown_03006200
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =ProgramFlashByte
- ldr r1, =0x00000ff8
- ldr r3, [r0]
- adds r0, r4, 0
- movs r2, 0x25
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _08152DA8
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_815269C
- movs r0, 0x1
- b _08152DC0
- .pool
-_08152DA8:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_815269C
- ldr r0, =gUnknown_030061F8
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, =gUnknown_030061F4
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_08152DC0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152D44
-
- thumb_func_start sub_8152DD0
-sub_8152DD0: @ 8152DD0
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, =gUnknown_03006204
- ldr r0, =gUnknown_0203ABBC
- str r0, [r1]
- ldr r0, =0x0000ffff
- cmp r4, r0
- beq _08152DF4
- movs r5, 0xFF
- b _08152E06
- .pool
-_08152DF4:
- adds r0, r6, 0
- bl sub_8152EC8
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8152E10
-_08152E06:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8152DD0
-
- thumb_func_start sub_8152E10
-sub_8152E10: @ 8152E10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- ldr r0, =gUnknown_03006200
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 17
- lsrs r7, r0, 16
- movs r5, 0
- ldr r6, =gUnknown_03006204
-_08152E2C:
- adds r0, r5, r7
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- bl sub_815314C
- ldr r0, [r6]
- ldr r1, =0x00000ff4
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _08152E48
- ldr r0, =gUnknown_030061F0
- strh r5, [r0]
-_08152E48:
- ldr r0, [r6]
- lsls r1, 3
- mov r2, r8
- adds r4, r1, r2
- ldrh r1, [r4, 0x4]
- bl sub_8153164
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, [r6]
- ldr r1, =0x00000ff8
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, =0x08012025
- adds r5, 0x1
- cmp r1, r0
- bne _08152E98
- ldr r1, =0x00000ff6
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08152E98
- movs r2, 0
- ldrh r0, [r4, 0x4]
- cmp r2, r0
- bcs _08152E98
- adds r3, r4, 0
- ldr r4, =gUnknown_03006204
-_08152E80:
- ldr r1, [r3]
- adds r1, r2
- ldr r0, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r1, [r3, 0x4]
- cmp r2, r1
- bcc _08152E80
-_08152E98:
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _08152E2C
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152E10
-
- thumb_func_start sub_8152EC8
-sub_8152EC8: @ 8152EC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r7, =gUnknown_03006204
-_08152EE4:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, [r7]
- bl sub_815314C
- ldr r2, [r7]
- ldr r1, =0x00000ff8
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, =0x08012025
- cmp r1, r0
- bne _08152F34
- movs r5, 0x1
- ldr r3, =0x00000ff4
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 3
- add r0, r10
- ldrh r1, [r0, 0x4]
- adds r0, r2, 0
- bl sub_8153164
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- ldr r3, =0x00000ff6
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _08152F34
- ldr r2, =0x00000ffc
- adds r0, r1, r2
- ldr r0, [r0]
- mov r8, r0
- subs r3, 0x2
- adds r1, r3
- adds r0, r5, 0
- ldrh r1, [r1]
- lsls r0, r1
- orrs r6, r0
-_08152F34:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08152EE4
- cmp r5, 0
- beq _08152F70
- ldr r0, =0x00003fff
- movs r1, 0xFF
- str r1, [sp]
- cmp r6, r0
- bne _08152F74
- movs r2, 0x1
- str r2, [sp]
- b _08152F74
- .pool
-_08152F70:
- movs r3, 0
- str r3, [sp]
-_08152F74:
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r7, =gUnknown_03006204
-_08152F7C:
- adds r0, r4, 0
- adds r0, 0xE
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r7]
- bl sub_815314C
- ldr r2, [r7]
- ldr r1, =0x00000ff8
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, =0x08012025
- cmp r1, r0
- bne _08152FD0
- movs r5, 0x1
- ldr r3, =0x00000ff4
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 3
- add r0, r10
- ldrh r1, [r0, 0x4]
- adds r0, r2, 0
- bl sub_8153164
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- ldr r3, =0x00000ff6
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _08152FD0
- ldr r2, =0x00000ffc
- adds r0, r1, r2
- ldr r0, [r0]
- mov r9, r0
- subs r3, 0x2
- adds r1, r3
- adds r0, r5, 0
- ldrh r1, [r1]
- lsls r0, r1
- orrs r6, r0
-_08152FD0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08152F7C
- cmp r5, 0
- beq _08153008
- ldr r0, =0x00003fff
- movs r1, 0xFF
- cmp r6, r0
- bne _0815300A
- movs r1, 0x1
- b _0815300A
- .pool
-_08153008:
- movs r1, 0
-_0815300A:
- ldr r0, [sp]
- cmp r0, 0x1
- bne _0815307C
- cmp r1, 0x1
- bne _0815306C
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- bne _08153022
- mov r1, r9
- cmp r1, 0
- beq _0815302C
-_08153022:
- mov r2, r8
- cmp r2, 0
- bne _08153050
- cmp r9, r0
- bne _08153050
-_0815302C:
- mov r1, r8
- adds r1, 0x1
- mov r0, r9
- adds r0, 0x1
- cmp r1, r0
- bcs _08153044
- ldr r0, =gUnknown_03006200
- mov r3, r9
- b _08153064
- .pool
-_08153044:
- ldr r0, =gUnknown_03006200
- mov r1, r8
- str r1, [r0]
- b _08153094
- .pool
-_08153050:
- cmp r8, r9
- bcs _08153060
- ldr r0, =gUnknown_03006200
- mov r2, r9
- str r2, [r0]
- b _08153094
- .pool
-_08153060:
- ldr r0, =gUnknown_03006200
- mov r3, r8
-_08153064:
- str r3, [r0]
- b _08153094
- .pool
-_0815306C:
- ldr r0, =gUnknown_03006200
- mov r2, r8
- str r2, [r0]
- cmp r1, 0xFF
- beq _0815308C
- b _08153094
- .pool
-_0815307C:
- cmp r1, 0x1
- bne _08153098
- ldr r0, =gUnknown_03006200
- mov r3, r9
- str r3, [r0]
- ldr r0, [sp]
- cmp r0, 0xFF
- bne _08153094
-_0815308C:
- movs r0, 0xFF
- b _081530C4
- .pool
-_08153094:
- movs r0, 0x1
- b _081530C4
-_08153098:
- ldr r2, [sp]
- cmp r2, 0
- bne _081530B8
- cmp r1, 0
- bne _081530B8
- ldr r0, =gUnknown_03006200
- str r1, [r0]
- ldr r0, =gUnknown_030061F0
- strh r1, [r0]
- movs r0, 0
- b _081530C4
- .pool
-_081530B8:
- ldr r0, =gUnknown_03006200
- movs r1, 0
- str r1, [r0]
- ldr r0, =gUnknown_030061F0
- strh r1, [r0]
- movs r0, 0x2
-_081530C4:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8152EC8
-
- thumb_func_start sub_81530DC
-sub_81530DC: @ 81530DC
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- ldr r5, =gUnknown_0203ABBC
- adds r1, r5, 0
- bl sub_815314C
- ldr r1, =0x00000ff8
- adds r0, r5, r1
- ldr r1, [r0]
- ldr r0, =0x08012025
- cmp r1, r0
- bne _08153144
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8153164
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =0x00000ff4
- adds r1, r5, r2
- ldrh r1, [r1]
- cmp r1, r0
- bne _08153140
- movs r2, 0
- cmp r2, r4
- bcs _0815312A
-_08153118:
- adds r1, r6, r2
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bcc _08153118
-_0815312A:
- movs r0, 0x1
- b _08153146
- .pool
-_08153140:
- movs r0, 0x2
- b _08153146
-_08153144:
- movs r0, 0
-_08153146:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81530DC
-
- thumb_func_start sub_815314C
-sub_815314C: @ 815314C
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- bl ReadFlash
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_815314C
-
- thumb_func_start sub_8153164
-sub_8153164: @ 8153164
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- movs r2, 0
- movs r3, 0
- lsrs r1, 18
- cmp r2, r1
- bcs _08153182
-_08153174:
- ldm r4!, {r0}
- adds r2, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08153174
-_08153182:
- lsrs r0, r2, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8153164
-
- thumb_func_start sub_8153190
-sub_8153190: @ 8153190
- push {r4,r5,lr}
- ldr r3, =gUnknown_03006220
- ldr r0, =gSaveBlock2Ptr
- ldr r2, =gUnknown_085CDC00
- ldrh r1, [r2]
- ldr r0, [r0]
- adds r0, r1
- str r0, [r3]
- ldrh r0, [r2, 0x2]
- strh r0, [r3, 0x4]
- ldr r5, =gSaveBlock1Ptr
- adds r3, 0x8
- adds r2, 0x4
- movs r4, 0x3
-_081531AC:
- ldrh r0, [r2]
- ldr r1, [r5]
- adds r1, r0
- str r1, [r3]
- ldrh r0, [r2, 0x2]
- strh r0, [r3, 0x4]
- adds r3, 0x8
- adds r2, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _081531AC
- movs r4, 0x5
- ldr r1, =gUnknown_03006220
- ldr r5, =gUnknown_03005D94
- ldr r0, =gUnknown_085CDC00
- adds r3, r1, 0
- adds r3, 0x28
- adds r2, r0, 0
- adds r2, 0x14
-_081531D2:
- ldrh r0, [r2]
- ldr r1, [r5]
- adds r1, r0
- str r1, [r3]
- ldrh r0, [r2, 0x2]
- strh r0, [r3, 0x4]
- adds r3, 0x8
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, 0xD
- ble _081531D2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8153190
-
- thumb_func_start calls_flash_erase_block_3
-calls_flash_erase_block_3: @ 8153204
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0203CF5C
- ldr r6, [r1]
- movs r0, 0
- str r0, [r1]
- bl sub_8153190
- cmp r4, 0x5
- bhi _081532AC
- lsls r0, r4, 2
- ldr r1, =_0815322C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815322C:
- .4byte _081532AC
- .4byte _081532C4
- .4byte _081532C4
- .4byte _0815325A
- .4byte _081532F8
- .4byte _08153244
-_08153244:
- movs r4, 0x1C
- ldr r5, =EraseFlashSector
-_08153248:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08153248
-_0815325A:
- movs r0, 0xA
- bl sub_80847F8
- ldr r1, =0x000003e6
- cmp r0, r1
- bhi _0815326C
- movs r0, 0xA
- bl sav12_xor_increment
-_0815326C:
- bl save_serialize_game
- ldr r0, =0x0000ffff
- ldr r1, =gUnknown_03006220
- bl save_write_to_flash
- ldr r4, =0x0201c000
- movs r5, 0xF8
- lsls r5, 4
- movs r0, 0x1C
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8152890
- adds r4, r5
- movs r0, 0x1D
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8152890
- b _0815331A
- .pool
-_081532AC:
- bl save_serialize_game
- ldr r0, =0x0000ffff
- ldr r1, =gUnknown_03006220
- bl save_write_to_flash
- b _0815331A
- .pool
-_081532C4:
- bl save_serialize_game
- movs r4, 0
-_081532CA:
- adds r0, r4, 0
- ldr r1, =gUnknown_03006220
- bl calls_flash_erase_block_2
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _081532CA
- movs r4, 0
-_081532DE:
- adds r0, r4, 0
- ldr r1, =gUnknown_03006220
- bl sav12_xor_get
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _081532DE
- b _0815331A
- .pool
-_081532F8:
- movs r4, 0x1C
- ldr r5, =EraseFlashSector
-_081532FC:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _081532FC
- bl save_serialize_game
- ldr r0, =0x0000ffff
- ldr r1, =gUnknown_03006220
- bl save_write_to_flash
-_0815331A:
- ldr r0, =gUnknown_0203CF5C
- str r6, [r0]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end calls_flash_erase_block_3
-
- thumb_func_start save_game_when_memory_present
-save_game_when_memory_present: @ 8153338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gFlashMemoryPresent
- ldr r4, [r0]
- cmp r4, 0x1
- bne _0815335A
- adds r0, r5, 0
- bl calls_flash_erase_block_3
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _08153370
- adds r0, r5, 0
- bl fullscreen_save_activate
-_0815335A:
- ldr r1, =gUnknown_03006294
- movs r0, 0xFF
- strh r0, [r1]
- movs r0, 0xFF
- b _08153376
- .pool
-_08153370:
- ldr r0, =gUnknown_03006294
- strh r4, [r0]
- movs r0, 0x1
-_08153376:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end save_game_when_memory_present
-
- thumb_func_start sub_8153380
-sub_8153380: @ 8153380
- push {lr}
- ldr r0, =gFlashMemoryPresent
- ldr r0, [r0]
- cmp r0, 0x1
- bne _081533A4
- bl sub_8153190
- bl save_serialize_game
- ldr r0, =gUnknown_03006220
- bl sub_8152934
- movs r0, 0
- b _081533A6
- .pool
-_081533A4:
- movs r0, 0x1
-_081533A6:
- pop {r1}
- bx r1
- thumb_func_end sub_8153380
-
- thumb_func_start sub_81533AC
-sub_81533AC: @ 81533AC
- push {r4,lr}
- ldr r1, =gUnknown_03006220
- movs r0, 0xE
- bl sub_81529D4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _081533C8
- movs r0, 0
- bl fullscreen_save_activate
-_081533C8:
- cmp r4, 0xFF
- beq _081533D8
- movs r0, 0
- b _081533DA
- .pool
-_081533D8:
- movs r0, 0x1
-_081533DA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81533AC
-
- thumb_func_start sub_81533E0
-sub_81533E0: @ 81533E0
- push {lr}
- ldr r1, =gUnknown_03006220
- movs r0, 0xE
- bl sub_8152A34
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _081533F8
- movs r0, 0
- bl fullscreen_save_activate
-_081533F8:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81533E0
-
- thumb_func_start sub_8153408
-sub_8153408: @ 8153408
- push {lr}
- ldr r1, =gUnknown_03006220
- movs r0, 0xE
- bl sub_8152CAC
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _08153420
- movs r0, 0
- bl fullscreen_save_activate
-_08153420:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8153408
-
- thumb_func_start sub_8153430
-sub_8153430: @ 8153430
- push {r4,lr}
- ldr r0, =gFlashMemoryPresent
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0815346C
- bl sub_8153190
- bl save_serialize_game
- ldr r4, =gUnknown_03006220
- adds r0, r4, 0
- bl sub_8152990
- ldr r0, =gUnknown_03006208
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_8152A34
- movs r0, 0
- b _0815346E
- .pool
-_0815346C:
- movs r0, 0x1
-_0815346E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8153430
-
- thumb_func_start sub_8153474
-sub_8153474: @ 8153474
- push {r4-r6,lr}
- movs r6, 0
- ldr r0, =gUnknown_03006208
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bhi _081534A8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gUnknown_03006220
- adds r1, r4, 0
- bl sub_8152A34
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8152D44
- b _081534B2
- .pool
-_081534A8:
- ldr r1, =gUnknown_03006220
- adds r0, r5, 0
- bl sub_8152D44
- movs r6, 0x1
-_081534B2:
- ldr r0, =gUnknown_030061FC
- ldr r0, [r0]
- cmp r0, 0
- beq _081534C0
- movs r0, 0x1
- bl fullscreen_save_activate
-_081534C0:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8153474
-
- thumb_func_start sub_81534D0
-sub_81534D0: @ 81534D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gFlashMemoryPresent
- ldr r0, [r0]
- cmp r0, 0x1
- beq _081534F0
- ldr r1, =gUnknown_03006210
- movs r0, 0x4
- strh r0, [r1]
- movs r0, 0xFF
- b _08153550
- .pool
-_081534F0:
- bl sub_8153190
- cmp r4, 0
- beq _081534FC
- cmp r4, 0x3
- beq _08153528
-_081534FC:
- ldr r0, =0x0000ffff
- ldr r1, =gUnknown_03006220
- bl sub_8152DD0
- lsls r0, 24
- lsrs r4, r0, 24
- bl save_deserialize_game
- ldr r0, =gUnknown_03006210
- strh r4, [r0]
- ldr r1, =gUnknown_03006214
- movs r0, 0
- str r0, [r1]
- b _0815354E
- .pool
-_08153528:
- ldr r5, =0x0201c000
- movs r6, 0xF8
- lsls r6, 4
- movs r0, 0x1C
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_81530DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0815354E
- adds r1, r5, r6
- movs r0, 0x1D
- adds r2, r6, 0
- bl sub_81530DC
- lsls r0, 24
- lsrs r4, r0, 24
-_0815354E:
- adds r0, r4, 0
-_08153550:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81534D0
+
thumb_func_start sub_815355C
sub_815355C: @ 815355C
push {r4-r7,lr}
- ldr r5, =gUnknown_03006204
+ ldr r5, =gFastSaveSection
ldr r0, =gUnknown_0203ABBC
str r0, [r5]
adds r7, r0, 0
@@ -1764,10 +30,10 @@ _0815357C:
adds r0, r1
b _081535CA
_0815358C:
- bl sub_8153190
- ldr r0, =gUnknown_03006220
- bl sub_8152EC8
- ldr r0, =gUnknown_03006200
+ bl UpdateSaveAddresses
+ ldr r0, =gRamSaveSectionLocations
+ bl GetSaveValidStatus
+ ldr r0, =gSaveCounter
ldr r1, [r0]
ands r1, r4
lsls r0, r1, 3
@@ -1780,7 +46,7 @@ _081535A6:
lsls r0, 24
lsrs r0, 24
ldr r1, [r5]
- bl sub_815314C
+ bl DoReadFlashWholeSection
ldr r0, [r5]
ldr r1, =0x00000ff4
adds r0, r1