begin load_save.c

This commit is contained in:
DizzyEggg
2017-09-04 18:26:39 +02:00
parent 7ba62bcac8
commit 92892d140a
17 changed files with 234 additions and 185 deletions
+1 -1
View File
@@ -307,7 +307,7 @@ c2_copyright_1: @ 816CEAC
bl sub_815355C
lsls r0, 16
lsrs r0, 16
bl InitSaveBlockPointersWithRandomOffset
bl SetSaveBlocksPointers
bl sub_808447C
bl ResetSaveCounters
movs r0, 0
+4 -4
View File
@@ -52672,8 +52672,8 @@ SetBerryPowder: @ 802467C
.pool
thumb_func_end SetBerryPowder
thumb_func_start sub_8024690
sub_8024690: @ 8024690
thumb_func_start ApplyNewEncyprtionKeyToBerryPowder
ApplyNewEncyprtionKeyToBerryPowder: @ 8024690
push {lr}
adds r1, r0, 0
ldr r0, =gSaveBlock2Ptr
@@ -52681,11 +52681,11 @@ sub_8024690: @ 8024690
movs r2, 0xFA
lsls r2, 1
adds r0, r2
bl apply_u32_xor_crypto
bl ApplyNewEncyprtionKeyToWord
pop {r0}
bx r0
.pool
thumb_func_end sub_8024690
thumb_func_end ApplyNewEncyprtionKeyToBerryPowder
thumb_func_start sub_80246AC
sub_80246AC: @ 80246AC
+15 -103
View File
@@ -5,97 +5,9 @@
.text
thumb_func_start CheckForFlashMemory
@ void CheckForFlashMemory()
CheckForFlashMemory: @ 8076B68
push {lr}
bl IdentifyFlash
lsls r0, 16
cmp r0, 0
bne _08076B84
ldr r1, =gFlashMemoryPresent
movs r0, 0x1
str r0, [r1]
bl StartFlashMemoryTimer
b _08076B8A
.pool
_08076B84:
ldr r1, =gFlashMemoryPresent
movs r0, 0
str r0, [r1]
_08076B8A:
pop {r0}
bx r0
.pool
thumb_func_end CheckForFlashMemory
thumb_func_start ClearSav2
ClearSav2: @ 8076B94
push {lr}
sub sp, 0x4
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r1, =gUnknown_02024A54
ldr r2, =0x010007d6
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end ClearSav2
thumb_func_start ClearSav1
ClearSav1: @ 8076BB8
push {lr}
sub sp, 0x4
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r1, =gUnknown_02025A00
ldr r2, =0x01001f04
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end ClearSav1
thumb_func_start InitSaveBlockPointersWithRandomOffset
@ void InitSaveBlockPointersWithRandomOffset(u8 offset)
InitSaveBlockPointersWithRandomOffset: @ 8076BDC
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r5, =gSaveBlock1Ptr
bl Random
adds r4, r0
movs r0, 0x7C
ands r4, r0
ldr r1, =gSaveBlock2Ptr
ldr r0, =gUnknown_02024A54
adds r0, r4, r0
str r0, [r1]
ldr r0, =gUnknown_02025A00
adds r0, r4, r0
str r0, [r5]
ldr r1, =gUnknown_03005D94
ldr r0, =gUnknown_02029808
adds r4, r0
str r4, [r1]
bl SetBagItemsPointers
bl SetDecorationInventoriesPointers
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end InitSaveBlockPointersWithRandomOffset
thumb_func_start saveblock_randomize_and_relocate
saveblock_randomize_and_relocate: @ 8076C2C
thumb_func_start MoveSaveBlocks_ResetHeap
MoveSaveBlocks_ResetHeap: @ 8076C2C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -126,7 +38,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
ldr r0, =0x02000f2c
adds r2, r7, 0
bl memcpy
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
mov r8, r0
ldr r1, [r0]
ldr r0, =0x000083d0
@@ -141,7 +53,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
adds r1, r0
ldrb r0, [r4, 0xD]
adds r0, r1
bl InitSaveBlockPointersWithRandomOffset
bl SetSaveBlocksPointers
ldr r1, =gSaveBlock2Ptr
ldr r0, [r1]
adds r1, r4, 0
@@ -173,7 +85,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
lsrs r0, 16
adds r4, r0
adds r0, r4, 0
bl saveblock_apply_crypto
bl ApplyNewEncyprtionKeyToAllEncryptedData
ldr r1, =gSaveBlock2Ptr
ldr r0, [r1]
adds r0, 0xAC
@@ -187,7 +99,7 @@ saveblock_randomize_and_relocate: @ 8076C2C
pop {r0}
bx r0
.pool
thumb_func_end saveblock_randomize_and_relocate
thumb_func_end MoveSaveBlocks_ResetHeap
thumb_func_start sav2_x1_query_bit1
sav2_x1_query_bit1: @ 8076D24
@@ -713,8 +625,8 @@ ApplyNewEncyprtionKeyToHword: @ 8077100
.pool
thumb_func_end ApplyNewEncyprtionKeyToHword
thumb_func_start apply_u32_xor_crypto
apply_u32_xor_crypto: @ 8077118
thumb_func_start ApplyNewEncyprtionKeyToWord
ApplyNewEncyprtionKeyToWord: @ 8077118
ldr r2, =gSaveBlock2Ptr
ldr r3, [r2]
adds r3, 0xAC
@@ -725,24 +637,24 @@ apply_u32_xor_crypto: @ 8077118
str r2, [r0]
bx lr
.pool
thumb_func_end apply_u32_xor_crypto
thumb_func_end ApplyNewEncyprtionKeyToWord
thumb_func_start saveblock_apply_crypto
saveblock_apply_crypto: @ 8077130
thumb_func_start ApplyNewEncyprtionKeyToAllEncryptedData
ApplyNewEncyprtionKeyToAllEncryptedData: @ 8077130
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8084864
bl ApplyNewEncyprtionKeyToGameStats
adds r0, r4, 0
bl ApplyNewEncyprtionKeyToBagItems_
adds r0, r4, 0
bl sub_8024690
bl ApplyNewEncyprtionKeyToBerryPowder
ldr r5, =gSaveBlock1Ptr
ldr r0, [r5]
movs r1, 0x92
lsls r1, 3
adds r0, r1
adds r1, r4, 0
bl apply_u32_xor_crypto
bl ApplyNewEncyprtionKeyToWord
ldr r0, [r5]
ldr r1, =0x00000494
adds r0, r1
@@ -752,6 +664,6 @@ saveblock_apply_crypto: @ 8077130
pop {r0}
bx r0
.pool
thumb_func_end saveblock_apply_crypto
thumb_func_end ApplyNewEncyprtionKeyToAllEncryptedData
.align 2, 0 @ Don't pad with nop.
+2 -2
View File
@@ -133,7 +133,7 @@ _0817764E:
bls _081775FC
_08177658:
movs r7, 0
ldr r1, =gUnknown_03005D94
ldr r1, =gPokemonStoragePtr
mov r9, r1
_0817765E:
movs r6, 0
@@ -233,7 +233,7 @@ _0817773C:
ldr r1, =gSpecialVar_0x8006
movs r0, 0x1
strh r0, [r1]
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
ldr r1, [sp]
lsls r0, r1, 2
adds r0, r1
+12 -12
View File
@@ -238,8 +238,8 @@ _08084854:
.pool
thumb_func_end sav12_xor_set
thumb_func_start sub_8084864
sub_8084864: @ 8084864
thumb_func_start ApplyNewEncyprtionKeyToGameStats
ApplyNewEncyprtionKeyToGameStats: @ 8084864
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
@@ -251,7 +251,7 @@ _0808486C:
ldr r0, [r6]
adds r0, r1
adds r1, r5, 0
bl apply_u32_xor_crypto
bl ApplyNewEncyprtionKeyToWord
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -261,7 +261,7 @@ _0808486C:
pop {r0}
bx r0
.pool
thumb_func_end sub_8084864
thumb_func_end ApplyNewEncyprtionKeyToGameStats
thumb_func_start CopyFieldObjectTemplatesToSav1
@ void CopyFieldObjectTemplatesToSav1()
@@ -3713,7 +3713,7 @@ _0808644C:
bl overworld_bg_setup
bl script_env_1_init
bl script_env_2_disable
bl saveblock_randomize_and_relocate_
bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
b _08086506
_08086462:
@@ -3838,7 +3838,7 @@ _08086570:
bl mli0_load_map
b _08086622
_0808657C:
bl saveblock_randomize_and_relocate_
bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
b _08086622
_08086586:
@@ -3941,7 +3941,7 @@ _0808664C:
beq _0808668A
b _0808668E
_08086656:
bl saveblock_randomize_and_relocate_
bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
movs r0, 0
bl sub_8086988
@@ -4006,7 +4006,7 @@ _080866B4:
.4byte _0808679A
_080866EC:
bl sub_808631C
bl saveblock_randomize_and_relocate_
bl MoveSaveBlocks_ResetHeap_
bl sub_80867D8
b _08086792
_080866FA:
@@ -4106,14 +4106,14 @@ _080867B4:
bx r0
thumb_func_end do_load_map_stuff_loop
thumb_func_start saveblock_randomize_and_relocate_
saveblock_randomize_and_relocate_: @ 80867C8
thumb_func_start MoveSaveBlocks_ResetHeap_
MoveSaveBlocks_ResetHeap_: @ 80867C8
push {lr}
bl sub_81BE6AC
bl saveblock_randomize_and_relocate
bl MoveSaveBlocks_ResetHeap
pop {r0}
bx r0
thumb_func_end saveblock_randomize_and_relocate_
thumb_func_end MoveSaveBlocks_ResetHeap_
thumb_func_start sub_80867D8
sub_80867D8: @ 80867D8
+1 -1
View File
@@ -3065,7 +3065,7 @@ _08036758:
thumb_func_start sub_8036760
sub_8036760: @ 8036760
push {lr}
bl saveblock_randomize_and_relocate
bl MoveSaveBlocks_ResetHeap
bl sub_8056F28
bl dp11_init
bl init_uns_table_pokemon_copy
+24 -24
View File
@@ -20562,7 +20562,7 @@ nullsub_98: @ 80D1D08
thumb_func_start get_preferred_box
@ char get_preferred_box()
get_preferred_box: @ 80D1D0C
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldrb r0, [r0]
bx lr
@@ -20576,7 +20576,7 @@ sub_80D1D18: @ 80D1D18
lsrs r1, r0, 24
cmp r1, 0xD
bhi _080D1D28
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
strb r1, [r0]
_080D1D28:
@@ -20597,7 +20597,7 @@ get_pokemon_data_from_any_box: @ 80D1D30
bhi _080D1D6C
cmp r4, 0x1D
bhi _080D1D6C
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20635,7 +20635,7 @@ set_pokemon_data_from_any_box: @ 80D1D74
bhi _080D1DAC
cmp r4, 0x1D
bhi _080D1DAC
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20665,7 +20665,7 @@ get_pokemon_data_from_selected_box: @ 80D1DB8
adds r2, r1, 0
lsls r3, 24
lsrs r3, 24
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldrb r0, [r0]
adds r1, r3, 0
@@ -20683,7 +20683,7 @@ set_pokemon_data_from_selected_box: @ 80D1DD8
adds r3, r2, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldrb r0, [r0]
adds r1, r4, 0
@@ -20707,7 +20707,7 @@ sub_80D1DFC: @ 80D1DFC
bhi _080D1E38
cmp r4, 0x1D
bhi _080D1E38
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20745,7 +20745,7 @@ sub_80D1E44: @ 80D1E44
bhi _080D1E84
cmp r2, 0x1D
bhi _080D1E84
ldr r6, =gUnknown_03005D94
ldr r6, =gPokemonStoragePtr
lsls r1, r0, 2
adds r1, r0
lsls r0, r1, 4
@@ -20786,7 +20786,7 @@ sub_80D1E90: @ 80D1E90
bhi _080D1EC6
cmp r4, 0x1D
bhi _080D1EC6
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20822,7 +20822,7 @@ sub_80D1ED0: @ 80D1ED0
bhi _080D1F10
cmp r4, 0x1D
bhi _080D1F10
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -20860,7 +20860,7 @@ sub_80D1F18: @ 80D1F18
bhi _080D1F4E
cmp r1, 0x1D
bhi _080D1F4E
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
lsls r3, r1, 2
adds r3, r1
@@ -20895,7 +20895,7 @@ sub_80D1F58: @ 80D1F58
bhi _080D1F8E
cmp r2, 0x1D
bhi _080D1F8E
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r1, [r0]
lsls r3, r2, 2
adds r3, r2
@@ -20950,7 +20950,7 @@ sub_80D1F98: @ 80D1F98
bhi _080D2004
cmp r6, 0x1D
bhi _080D2004
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r7, 2
adds r0, r7
lsls r1, r0, 4
@@ -20995,7 +20995,7 @@ sub_80D2018: @ 80D2018
bhi _080D2048
cmp r4, 0x1D
bhi _080D2048
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -21028,7 +21028,7 @@ sub_80D2054: @ 80D2054
bhi _080D2088
cmp r4, 0x1D
bhi _080D2088
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -21062,7 +21062,7 @@ get_pokemon_by_box_and_pos: @ 80D2094
bhi _080D20C8
cmp r4, 0x1D
bhi _080D20C8
ldr r2, =gUnknown_03005D94
ldr r2, =gPokemonStoragePtr
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 4
@@ -21095,7 +21095,7 @@ sav3_get_box_name: @ 80D20D0
movs r0, 0
b _080D20EC
_080D20DE:
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
lsls r1, r2, 3
adds r1, r2
ldr r2, =0x00008344
@@ -21118,7 +21118,7 @@ sub_80D20F8: @ 80D20F8
movs r0, 0
b _080D2112
_080D2106:
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldr r2, =0x000083c2
adds r0, r2
@@ -21141,7 +21141,7 @@ sub_80D2120: @ 80D2120
bhi _080D213E
cmp r1, 0x10
bhi _080D213E
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
ldr r0, [r0]
ldr r3, =0x000083c2
adds r0, r3
@@ -21271,7 +21271,7 @@ sub_80D2218: @ 80D2218
push {r7}
sub sp, 0x4
movs r2, 0
ldr r0, =gUnknown_03005D94
ldr r0, =gPokemonStoragePtr
mov r8, r0
movs r7, 0x4
_080D2228:
@@ -21321,7 +21321,7 @@ sub_80D2270: @ 80D2270
bhi _080D22C8
cmp r2, 0x1D
bhi _080D22C8
ldr r6, =gUnknown_03005D94
ldr r6, =gPokemonStoragePtr
lsls r1, r0, 2
adds r1, r0
lsls r0, r1, 4
@@ -21371,7 +21371,7 @@ sub_80D22D0: @ 80D22D0
push {r6,r7}
movs r7, 0
movs r0, 0
ldr r1, =gUnknown_03005D94
ldr r1, =gPokemonStoragePtr
mov r9, r1
_080D22E0:
lsls r1, r0, 2
@@ -21428,7 +21428,7 @@ sub_80D233C: @ 80D233C
push {r6,r7}
movs r7, 0
movs r0, 0
ldr r1, =gUnknown_03005D94
ldr r1, =gPokemonStoragePtr
mov r9, r1
_080D234C:
lsls r1, r0, 2
@@ -21490,7 +21490,7 @@ sub_80D23A8: @ 80D23A8
strh r0, [r1, 0x2]
movs r0, 0
mov r8, r0
ldr r7, =gUnknown_03005D94
ldr r7, =gPokemonStoragePtr
movs r5, 0x4
_080D23C0:
movs r6, 0
+1 -1
View File
@@ -29,7 +29,7 @@ sub_81700F8: @ 81700F8
bl sub_815355C
lsls r0, 16
lsrs r0, 16
bl InitSaveBlockPointersWithRandomOffset
bl SetSaveBlocksPointers
bl sub_808447C
bl ResetSaveCounters
movs r0, 0