summaryrefslogtreecommitdiff
path: root/asm/new_game.s
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
committerDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
commitb4a39100c0e052bdab3cfa2da707072c2ee18115 (patch)
treedcea69ec49430f004c17ff71b77587cafd78c69a /asm/new_game.s
parentf09f9cef752c37e3cc0686573c1fdb29da842772 (diff)
parent6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (diff)
Merge https://github.com/pret/pokeemerald
Diffstat (limited to 'asm/new_game.s')
-rw-r--r--asm/new_game.s380
1 files changed, 380 insertions, 0 deletions
diff --git a/asm/new_game.s b/asm/new_game.s
new file mode 100644
index 000000000..aae9fa7dc
--- /dev/null
+++ b/asm/new_game.s
@@ -0,0 +1,380 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start write_word_to_mem
+@ void write_word_to_mem(int value, int *mem)
+write_word_to_mem: @ 80842CC
+ 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 write_word_to_mem
+
+ thumb_func_start sub_80842DC
+sub_80842DC: @ 80842DC
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ ldrb r1, [r2, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_80842DC
+
+ thumb_func_start sub_80842F4
+sub_80842F4: @ 80842F4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r1, 0
+ movs r2, 0
+_080842FC:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080842FC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80842F4
+
+ thumb_func_start set_player_trainer_id
+set_player_trainer_id: @ 8084310
+ push {r4,lr}
+ bl GenerateRandomNumber
+ adds r4, r0, 0
+ bl GetTrainerId
+ lsls r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ orrs r4, r0
+ ldr r0, =0x03005d90
+ ldr r1, [r0]
+ adds r1, 0xA
+ adds r0, r4, 0
+ bl write_word_to_mem
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end set_player_trainer_id
+
+ thumb_func_start init_options
+init_options: @ 808433C
+ ldr r3, =0x03005d90
+ 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]
+ bx lr
+ .pool
+ thumb_func_end init_options
+
+ thumb_func_start sub_8084390
+sub_8084390: @ 8084390
+ push {r4,lr}
+ ldr r1, =0x030060b0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, =0x03005d90
+ 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
+ .pool
+ thumb_func_end sub_8084390
+
+ thumb_func_start sub_80843C0
+sub_80843C0: @ 80843C0
+ push {r4-r7,lr}
+ bl sub_80DF040
+ movs r2, 0x8
+ ldr r0, =0x03005d8c
+ mov r12, r0
+ ldr r4, =0x00002e90
+ ldr r3, =gUnknown_08339D1C
+_080843D0:
+ mov r1, r12
+ ldr r0, [r1]
+ lsls r1, r2, 5
+ adds r0, r1
+ adds r0, r4
+ adds r1, r3, 0
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldm r1!, {r5,r6}
+ stm r0!, {r5,r6}
+ adds r2, 0x1
+ cmp r2, 0xC
+ ble _080843D0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80843C0
+
+ thumb_func_start sub_8084400
+sub_8084400: @ 8084400
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, =0x03005d90
+ ldr r1, [r4]
+ ldr r0, =0x0000064c
+ adds r1, r0
+ ldr r2, =0x05000238
+ mov r0, sp
+ bl CpuSet
+ ldr r0, [r4]
+ ldr r1, =0x00000ee1
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, =0x00000ee9
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8084400
+
+ thumb_func_start sub_808444C
+sub_808444C: @ 808444C
+ push {lr}
+ sub sp, 0x4
+ movs r3, 0x1
+ negs r3, r3
+ str r3, [sp]
+ movs r0, 0x19
+ movs r1, 0x28
+ adds r2, r3, 0
+ bl warp1_set
+ bl warp_in
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808444C
+
+ thumb_func_start init_sav2
+init_sav2: @ 808446C
+ push {lr}
+ bl memclr_stdsav2
+ bl init_options
+ pop {r0}
+ bx r0
+ thumb_func_end init_sav2
+
+ thumb_func_start sub_808447C
+sub_808447C: @ 808447C
+ push {lr}
+ ldr r1, =0x020322d4
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80BB358
+ bl zero_player_party_data
+ bl zero_enemy_party_data
+ bl sub_81AAB70
+ bl sub_813624C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_808447C
+
+ thumb_func_start NewGameInitData
+@ void NewGameInitData()
+NewGameInitData: @ 80844A0
+ push {r4,r5,lr}
+ ldr r0, =0x03006210
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080844AE
+ cmp r0, 0x2
+ bne _080844B2
+_080844AE:
+ bl GameFreakRTC_Reset
+_080844B2:
+ ldr r1, =0x020322d4
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r4, =0x03005d90
+ ldr r0, [r4]
+ adds r0, 0xAC
+ movs r5, 0
+ str r5, [r0]
+ bl zero_player_party_data
+ bl zero_enemy_party_data
+ bl sub_80BB2D0
+ bl sub_8084400
+ bl clear_sav1
+ bl sub_80D436C
+ ldr r0, [r4]
+ strb r5, [r0, 0x9]
+ ldr r0, [r4]
+ adds r0, 0xA8
+ str r5, [r0]
+ bl set_player_trainer_id
+ bl reset_playtime
+ bl sub_8084390
+ bl sub_809D300
+ bl sub_80EBEE0
+ bl GabbyAndTyNewGameInitData
+ bl sub_80E8B28
+ bl RemoveAllBerryTrees
+ ldr r4, =0x03005d8c
+ ldr r0, [r4]
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, =0x00000bb8
+ bl EncryptMoney
+ movs r0, 0
+ bl SetCoins
+ bl sub_80D766C
+ bl sub_80847A8
+ bl sub_80843C0
+ bl sub_813C1F8
+ bl sub_80F9A7C
+ bl sub_80F9AD4
+ ldr r0, =0x020244e9
+ strb r5, [r0]
+ bl zero_player_party_data
+ bl sub_80C7770
+ bl sub_8161B34
+ bl sub_8161B60
+ ldr r0, [r4]
+ ldr r1, =0x00000496
+ adds r0, r1
+ strh r5, [r0]
+ bl sub_80D7094
+ bl sub_816ADF4
+ bl sub_8136E88
+ bl sub_81618B4
+ bl sub_811F184
+ bl sub_8120160
+ bl sub_81224D4
+ bl sub_813BA10
+ bl sub_8177558
+ bl sub_808444C
+ ldr r0, =gUnknown_082715DE
+ bl script_env_2_execute_new_script
+ bl sub_80845CC
+ bl copy_strings_to_sav1
+ bl sub_818DA30
+ bl sub_819FAA0
+ bl sub_81A4B14
+ bl sub_8195E10
+ bl sub_801AFD8
+ bl sub_800E5AC
+ bl sub_81D54BC
+ bl sub_80DED74
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end NewGameInitData
+
+ thumb_func_start sub_80845CC
+sub_80845CC: @ 80845CC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r0, sp
+ movs r5, 0
+ strh r5, [r0]
+ ldr r4, =0x03005d90
+ ldr r1, [r4]
+ movs r0, 0xF6
+ lsls r0, 1
+ adds r1, r0
+ ldr r6, =0x01000008
+ mov r0, sp
+ adds r2, r6, 0
+ bl CpuSet
+ ldr r0, [r4]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ bl sub_802467C
+ bl sub_802E33C
+ mov r0, sp
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r1, [r4]
+ movs r2, 0x83
+ lsls r2, 2
+ adds r1, r2
+ adds r2, r6, 0
+ bl CpuSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80845CC
+
+ .align 2, 0 @ Don't pad with nop.