mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 13:47:12 -05:00
341 lines
5.9 KiB
ArmAsm
341 lines
5.9 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start WriteUnalignedWord
|
|
WriteUnalignedWord: @ 80548FC
|
|
strb r0, [r1]
|
|
lsrs r2, r0, 8
|
|
strb r2, [r1, 0x1]
|
|
lsrs r2, r0, 16
|
|
strb r2, [r1, 0x2]
|
|
lsrs r0, 24
|
|
strb r0, [r1, 0x3]
|
|
bx lr
|
|
thumb_func_end WriteUnalignedWord
|
|
|
|
thumb_func_start CopyUnalignedWord
|
|
CopyUnalignedWord: @ 805490C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r3, r1, 0
|
|
movs r2, 0
|
|
_08054914:
|
|
adds r0, r4, r2
|
|
adds r1, r3, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _08054914
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CopyUnalignedWord
|
|
|
|
thumb_func_start InitPlayerTrainerId
|
|
InitPlayerTrainerId: @ 8054928
|
|
push {r4,lr}
|
|
bl Random
|
|
adds r4, r0, 0
|
|
bl GetGeneratedTrainerIdLower
|
|
lsls r4, 16
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
orrs r4, r0
|
|
ldr r0, _08054950 @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
adds r1, 0xA
|
|
adds r0, r4, 0
|
|
bl WriteUnalignedWord
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054950: .4byte gSaveBlock2Ptr
|
|
thumb_func_end InitPlayerTrainerId
|
|
|
|
thumb_func_start SetDefaultOptions
|
|
SetDefaultOptions: @ 8054954
|
|
ldr r3, _080549A8 @ =gSaveBlock2Ptr
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x14]
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x14]
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x14]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
strb r0, [r2, 0x14]
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x15]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x15]
|
|
ldr r1, [r3]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x13]
|
|
bx lr
|
|
.align 2, 0
|
|
_080549A8: .4byte gSaveBlock2Ptr
|
|
thumb_func_end SetDefaultOptions
|
|
|
|
thumb_func_start sub_80549AC
|
|
sub_80549AC: @ 80549AC
|
|
push {r4,lr}
|
|
ldr r4, _080549D0 @ =gSaveBlock2Ptr
|
|
ldr r0, [r4]
|
|
adds r0, 0x28
|
|
movs r1, 0
|
|
movs r2, 0x34
|
|
bl memset
|
|
ldr r0, [r4]
|
|
adds r0, 0x5C
|
|
movs r1, 0
|
|
movs r2, 0x34
|
|
bl memset
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080549D0: .4byte gSaveBlock2Ptr
|
|
thumb_func_end sub_80549AC
|
|
|
|
thumb_func_start sub_80549D4
|
|
sub_80549D4: @ 80549D4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r0, _080549F0 @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
adds r1, 0xB0
|
|
ldr r2, _080549F4 @ =0x050001fa
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080549F0: .4byte gSaveBlock2Ptr
|
|
_080549F4: .4byte 0x050001fa
|
|
thumb_func_end sub_80549D4
|
|
|
|
thumb_func_start sub_80549F8
|
|
sub_80549F8: @ 80549F8
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x1
|
|
movs r3, 0x6
|
|
bl Overworld_SetWarpDestination
|
|
bl WarpIntoMap
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80549F8
|
|
|
|
thumb_func_start Sav2_ClearSetDefault
|
|
Sav2_ClearSetDefault: @ 8054A18
|
|
push {lr}
|
|
bl ClearSav2
|
|
bl SetDefaultOptions
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Sav2_ClearSetDefault
|
|
|
|
thumb_func_start ResetMenuAndMonGlobals
|
|
ResetMenuAndMonGlobals: @ 8054A28
|
|
push {lr}
|
|
ldr r1, _08054A5C @ =gUnknown_2031DB0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bl ZeroPlayerPartyMons
|
|
bl ZeroEnemyPartyMons
|
|
bl sub_81089BC
|
|
bl ResetTMCaseCursorPos
|
|
bl sub_813D6E4
|
|
bl sub_811089C
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8083214
|
|
bl sub_806E6FC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054A5C: .4byte gUnknown_2031DB0
|
|
thumb_func_end ResetMenuAndMonGlobals
|
|
|
|
thumb_func_start sub_8054A60
|
|
sub_8054A60: @ 8054A60
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x8
|
|
ldr r6, _08054B50 @ =gSaveBlock1Ptr
|
|
ldr r1, [r6]
|
|
ldr r0, _08054B54 @ =0x00003a4c
|
|
mov r8, r0
|
|
add r1, r8
|
|
mov r0, sp
|
|
bl StringCopy
|
|
ldr r1, _08054B58 @ =gUnknown_2031DB0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r4, _08054B5C @ =gSaveBlock2Ptr
|
|
ldr r0, [r4]
|
|
movs r1, 0xF2
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
movs r5, 0
|
|
str r5, [r0]
|
|
bl ZeroPlayerPartyMons
|
|
bl ZeroEnemyPartyMons
|
|
bl sub_80549D4
|
|
bl ClearSav1
|
|
bl ClearMailData
|
|
ldr r0, [r4]
|
|
strb r5, [r0, 0x9]
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0xA8
|
|
str r5, [r1]
|
|
adds r0, 0xAC
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xAD
|
|
strb r5, [r0]
|
|
bl InitPlayerTrainerId
|
|
bl PlayTimeCounter_Reset
|
|
bl sub_80549AC
|
|
bl sub_806E0D0
|
|
bl ResetFameChecker
|
|
ldr r0, [r6]
|
|
movs r1, 0xA4
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r1, _08054B60 @ =0x00000bb8
|
|
bl SetMoney
|
|
bl sub_8054E68
|
|
bl InitLinkBattleRecords
|
|
bl sub_80A0904
|
|
bl sub_80A0958
|
|
bl sub_806E190
|
|
ldr r0, _08054B64 @ =gPlayerPartyCount
|
|
strb r5, [r0]
|
|
bl ZeroPlayerPartyMons
|
|
bl sub_808C7E0
|
|
bl ClearRoamerData
|
|
ldr r0, [r6]
|
|
ldr r1, _08054B68 @ =0x00000296
|
|
adds r0, r1
|
|
strh r5, [r0]
|
|
bl ClearItemSlotsInAllBagPockets
|
|
bl sub_80EB658
|
|
bl sub_809C794
|
|
bl sub_80BDD34
|
|
bl sub_8113044
|
|
bl copy_strings_to_sav1
|
|
bl sub_8054B70
|
|
bl sub_8143D24
|
|
bl sub_815D838
|
|
bl sub_80549F8
|
|
ldr r0, _08054B6C @ =gUnknown_81A6481
|
|
bl ScriptContext2_RunNewScript
|
|
ldr r0, [r6]
|
|
add r0, r8
|
|
mov r1, sp
|
|
bl StringCopy
|
|
bl sub_815EE0C
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054B50: .4byte gSaveBlock1Ptr
|
|
_08054B54: .4byte 0x00003a4c
|
|
_08054B58: .4byte gUnknown_2031DB0
|
|
_08054B5C: .4byte gSaveBlock2Ptr
|
|
_08054B60: .4byte 0x00000bb8
|
|
_08054B64: .4byte gPlayerPartyCount
|
|
_08054B68: .4byte 0x00000296
|
|
_08054B6C: .4byte gUnknown_81A6481
|
|
thumb_func_end sub_8054A60
|
|
|
|
thumb_func_start sub_8054B70
|
|
sub_8054B70: @ 8054B70
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
mov r0, sp
|
|
movs r5, 0
|
|
strh r5, [r0]
|
|
ldr r4, _08054BBC @ =gSaveBlock2Ptr
|
|
ldr r1, [r4]
|
|
movs r0, 0xAF
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r6, _08054BC0 @ =0x01000008
|
|
mov r0, sp
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
ldr r0, [r4]
|
|
ldr r1, _08054BC4 @ =0x00000af8
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl sub_815EE54
|
|
bl ResetPokeJumpResults
|
|
mov r0, sp
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
ldr r1, [r4]
|
|
movs r2, 0xB1
|
|
lsls r2, 4
|
|
adds r1, r2
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08054BBC: .4byte gSaveBlock2Ptr
|
|
_08054BC0: .4byte 0x01000008
|
|
_08054BC4: .4byte 0x00000af8
|
|
thumb_func_end sub_8054B70
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|