summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/field_weather.s3024
-rw-r--r--asm/field_weather_effects.s5240
-rw-r--r--asm/overworld.s12
3 files changed, 6 insertions, 8270 deletions
diff --git a/asm/field_weather.s b/asm/field_weather.s
deleted file mode 100644
index c5204def2..000000000
--- a/asm/field_weather.s
+++ /dev/null
@@ -1,3024 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8079C08
-sub_8079C08: @ 8079C08
- push {r4-r6,lr}
- ldr r0, _08079CCC @ =Task_WeatherMain
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08079CC4
- movs r0, 0x90
- lsls r0, 5
- bl AllocSpritePalette
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08079CD0 @ =gUnknown_83C2CE0
- lsls r1, r5, 5
- ldr r2, _08079CD4 @ =gPlttBufferUnfaded + 0x200
- adds r1, r2
- ldr r2, _08079CD8 @ =0x04000008
- bl CpuSet
- adds r0, r5, 0
- bl sub_8083598
- bl sub_8079EE8
- ldr r4, _08079CDC @ =gUnknown_2037F34
- ldr r1, _08079CE0 @ =0x000006d5
- adds r0, r4, r1
- strb r5, [r0]
- subs r1, 0x1
- adds r0, r4, r1
- strb r5, [r0]
- adds r1, 0x6
- adds r0, r4, r1
- strb r6, [r0]
- subs r1, 0x2
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x6
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x6
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x1C
- adds r0, r4, r1
- strb r6, [r0]
- subs r1, 0x5
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x29
- adds r0, r4, r1
- strb r6, [r0]
- subs r1, 0xE
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x17
- adds r0, r4, r1
- strb r6, [r0]
- subs r1, 0x34
- adds r0, r4, r1
- strb r6, [r0]
- movs r0, 0x10
- movs r1, 0
- bl Weather_SetBlendCoeffs
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r4, r1
- strb r6, [r0]
- ldr r0, _08079CE4 @ =0x000006c6
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r4, r1
- strb r6, [r0]
- ldr r0, _08079CE8 @ =0x000006d3
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _08079CEC @ =Task_WeatherInit
- movs r1, 0x50
- bl CreateTask
- ldr r1, _08079CF0 @ =0x000006c9
- adds r4, r1
- strb r0, [r4]
-_08079CC4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08079CCC: .4byte Task_WeatherMain
-_08079CD0: .4byte gUnknown_83C2CE0
-_08079CD4: .4byte gPlttBufferUnfaded + 0x200
-_08079CD8: .4byte 0x04000008
-_08079CDC: .4byte gUnknown_2037F34
-_08079CE0: .4byte 0x000006d5
-_08079CE4: .4byte 0x000006c6
-_08079CE8: .4byte 0x000006d3
-_08079CEC: .4byte Task_WeatherInit
-_08079CF0: .4byte 0x000006c9
- thumb_func_end sub_8079C08
-
- thumb_func_start weather_set
-weather_set: @ 8079CF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- beq _08079D0A
- cmp r4, 0x5
- beq _08079D0A
- cmp r4, 0xD
- beq _08079D0A
- bl PlayRainStoppingSoundEffect
-_08079D0A:
- ldr r1, _08079D4C @ =gUnknown_2037F34
- ldr r2, _08079D50 @ =0x000006d1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- beq _08079D2E
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _08079D2E
- ldr r0, _08079D54 @ =gUnknown_83C2BC0
- lsls r1, r4, 4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08079D2E:
- ldr r1, _08079D4C @ =gUnknown_2037F34
- ldr r2, _08079D58 @ =0x000006d3
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08079D50 @ =0x000006d1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r0, _08079D5C @ =0x000006ce
- adds r1, r0
- strh r2, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08079D4C: .4byte gUnknown_2037F34
-_08079D50: .4byte 0x000006d1
-_08079D54: .4byte gUnknown_83C2BC0
-_08079D58: .4byte 0x000006d3
-_08079D5C: .4byte 0x000006ce
- thumb_func_end weather_set
-
- thumb_func_start sub_8079D60
-sub_8079D60: @ 8079D60
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl PlayRainStoppingSoundEffect
- ldr r0, _08079D84 @ =gUnknown_2037F34
- movs r2, 0xDA
- lsls r2, 3
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _08079D88 @ =0x000006d1
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08079D84: .4byte gUnknown_2037F34
-_08079D88: .4byte 0x000006d1
- thumb_func_end sub_8079D60
-
- thumb_func_start sub_8079D8C
-sub_8079D8C: @ 8079D8C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl PlayRainStoppingSoundEffect
- ldr r1, _08079DB8 @ =gUnknown_2037F34
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r1, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r1, r2
- strb r4, [r0]
- movs r0, 0xD9
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08079DB8: .4byte gUnknown_2037F34
- thumb_func_end sub_8079D8C
-
- thumb_func_start Task_WeatherInit
-Task_WeatherInit: @ 8079DBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _08079DFC @ =gUnknown_2037F34
- movs r1, 0xD9
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08079DF4
- ldr r1, _08079E00 @ =gUnknown_83C2BC0
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08079E04 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08079E08 @ =Task_WeatherMain
- str r1, [r0]
-_08079DF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08079DFC: .4byte gUnknown_2037F34
-_08079E00: .4byte gUnknown_83C2BC0
-_08079E04: .4byte gTasks
-_08079E08: .4byte Task_WeatherMain
- thumb_func_end Task_WeatherInit
-
- thumb_func_start Task_WeatherMain
-Task_WeatherMain: @ 8079E0C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08079E68 @ =gUnknown_2037F34
- movs r0, 0xDA
- lsls r0, 3
- adds r6, r5, r0
- ldr r1, _08079E6C @ =0x000006d1
- adds r7, r5, r1
- ldrb r0, [r6]
- ldrb r2, [r7]
- cmp r0, r2
- beq _08079E80
- ldr r0, _08079E70 @ =gUnknown_83C2BC0
- mov r8, r0
- ldrb r0, [r6]
- lsls r0, 4
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08079E90
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08079E74 @ =0x000006c3
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _08079E78 @ =0x000006c6
- adds r0, r5, r2
- strb r4, [r0]
- ldrb r0, [r7]
- strb r0, [r6]
- ldr r0, _08079E7C @ =0x000006d3
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- b _08079E90
- .align 2, 0
-_08079E68: .4byte gUnknown_2037F34
-_08079E6C: .4byte 0x000006d1
-_08079E70: .4byte gUnknown_83C2BC0
-_08079E74: .4byte 0x000006c3
-_08079E78: .4byte 0x000006c6
-_08079E7C: .4byte 0x000006d3
-_08079E80:
- ldr r0, _08079EB0 @ =gUnknown_83C2BC0
- ldrb r1, [r6]
- lsls r1, 4
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08079E90:
- ldr r1, _08079EB4 @ =gUnknown_83C2CB0
- ldr r0, _08079EB8 @ =gUnknown_2037F34
- ldr r2, _08079EBC @ =0x000006c6
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08079EB0: .4byte gUnknown_83C2BC0
-_08079EB4: .4byte gUnknown_83C2CB0
-_08079EB8: .4byte gUnknown_2037F34
-_08079EBC: .4byte 0x000006c6
- thumb_func_end Task_WeatherMain
-
- thumb_func_start sub_8079EC0
-sub_8079EC0: @ 8079EC0
- ldr r0, _08079ED4 @ =gUnknown_2037F34
- ldr r2, _08079ED8 @ =0x000006c1
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _08079EDC @ =0x000006c2
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_08079ED4: .4byte gUnknown_2037F34
-_08079ED8: .4byte 0x000006c1
-_08079EDC: .4byte 0x000006c2
- thumb_func_end sub_8079EC0
-
- thumb_func_start nullsub_45
-nullsub_45: @ 8079EE0
- bx lr
- thumb_func_end nullsub_45
-
- thumb_func_start sub_8079EE4
-sub_8079EE4: @ 8079EE4
- movs r0, 0
- bx lr
- thumb_func_end sub_8079EE4
-
- thumb_func_start sub_8079EE8
-sub_8079EE8: @ 8079EE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08079F28 @ =gUnknown_20386A4
- ldr r0, _08079F2C @ =gUnknown_83C2CC0
- str r0, [r1]
- movs r0, 0
- mov r12, r0
- ldr r1, _08079F30 @ =gUnknown_2038394
- mov r10, r1
-_08079F00:
- mov r7, r10
- mov r0, r12
- cmp r0, 0
- bne _08079F0C
- ldr r1, _08079F34 @ =0xfffffda0
- adds r7, r1
-_08079F0C:
- movs r5, 0
- movs r0, 0x1
- add r0, r12
- mov r9, r0
-_08079F14:
- lsls r1, r5, 8
- lsls r0, r5, 24
- lsrs r2, r0, 16
- mov r0, r12
- cmp r0, 0
- bne _08079F38
- adds r0, r1, 0
- lsls r0, 12
- lsrs r4, r0, 16
- b _08079F3A
- .align 2, 0
-_08079F28: .4byte gUnknown_20386A4
-_08079F2C: .4byte gUnknown_83C2CC0
-_08079F30: .4byte gUnknown_2038394
-_08079F34: .4byte 0xfffffda0
-_08079F38:
- movs r4, 0
-_08079F3A:
- movs r3, 0
- adds r1, r5, 0x1
- mov r8, r1
-_08079F40:
- subs r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _08079F40
- adds r6, r2, 0
- movs r0, 0xF8
- lsls r0, 5
- subs r0, r2
- cmp r0, 0
- bge _08079F68
- adds r0, 0xF
-_08079F68:
- lsls r0, 12
- lsrs r4, r0, 16
- cmp r5, 0xB
- bhi _08079FB2
- cmp r3, 0x12
- bhi _08079FD8
-_08079F74:
- adds r0, r2, r4
- lsls r0, 16
- lsrs r2, r0, 16
- subs r0, r2, r6
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _08079F90
- lsrs r0, 31
- adds r0, r1, r0
- asrs r0, 1
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
-_08079F90:
- lsls r0, r3, 5
- adds r0, r7
- adds r1, r0, r5
- lsrs r0, r2, 8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08079FA6
- movs r0, 0x1F
- strb r0, [r1]
-_08079FA6:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _08079F74
- b _08079FD8
-_08079FB2:
- cmp r3, 0x12
- bhi _08079FD8
- movs r6, 0x1F
-_08079FB8:
- adds r1, r2, r4
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 5
- adds r0, r7
- adds r0, r5
- lsrs r1, 24
- strb r1, [r0]
- cmp r1, 0x1F
- bls _08079FCE
- strb r6, [r0]
-_08079FCE:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x12
- bls _08079FB8
-_08079FD8:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _08079F14
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x1
- bls _08079F00
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8079EE8
-
- thumb_func_start sub_8079FFC
-sub_8079FFC: @ 8079FFC
- push {r4-r7,lr}
- ldr r0, _0807A028 @ =gUnknown_2037F34
- movs r1, 0xD8
- lsls r1, 3
- adds r4, r0, r1
- ldr r2, _0807A02C @ =0x000006c1
- adds r1, r0, r2
- ldrb r7, [r4]
- mov r12, r7
- movs r6, 0
- ldrsb r6, [r4, r6]
- movs r5, 0
- ldrsb r5, [r1, r5]
- adds r3, r0, 0
- cmp r6, r5
- bne _0807A034
- ldr r0, _0807A030 @ =0x000006c6
- adds r1, r3, r0
- movs r0, 0x3
- strb r0, [r1]
- b _0807A07C
- .align 2, 0
-_0807A028: .4byte gUnknown_2037F34
-_0807A02C: .4byte 0x000006c1
-_0807A030: .4byte 0x000006c6
-_0807A034:
- ldr r1, _0807A05C @ =0x000006c3
- adds r2, r3, r1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r7, _0807A060 @ =0x000006c2
- adds r1, r3, r7
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0807A07C
- movs r0, 0
- strb r0, [r2]
- mov r0, r12
- cmp r6, r5
- bge _0807A064
- adds r0, 0x1
- b _0807A068
- .align 2, 0
-_0807A05C: .4byte 0x000006c3
-_0807A060: .4byte 0x000006c2
-_0807A064:
- mov r0, r12
- subs r0, 0x1
-_0807A068:
- strb r0, [r4]
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- movs r1, 0x20
- bl sub_807A294
-_0807A07C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8079FFC
-
- thumb_func_start sub_807A084
-sub_807A084: @ 807A084
- push {lr}
- ldr r2, _0807A0BC @ =gUnknown_2037F34
- ldr r0, _0807A0C0 @ =0x000006cb
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0807A0A2
- ldr r3, _0807A0C4 @ =0x000006ca
- adds r1, r2, r3
- movs r0, 0
- strb r0, [r1]
-_0807A0A2:
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0807A16C
- lsls r0, 2
- ldr r1, _0807A0C8 @ =_0807A0CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807A0BC: .4byte gUnknown_2037F34
-_0807A0C0: .4byte 0x000006cb
-_0807A0C4: .4byte 0x000006ca
-_0807A0C8: .4byte _0807A0CC
- .align 2, 0
-_0807A0CC:
- .4byte _0807A0F8
- .4byte _0807A0F8
- .4byte _0807A0F8
- .4byte _0807A144
- .4byte _0807A16C
- .4byte _0807A16C
- .4byte _0807A16C
- .4byte _0807A16C
- .4byte _0807A0F8
- .4byte _0807A120
- .4byte _0807A0F8
-_0807A0F8:
- bl sub_807A19C
- lsls r0, 24
- cmp r0, 0
- bne _0807A18C
- ldr r0, _0807A118 @ =gUnknown_2037F34
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0x3
- strb r2, [r1]
- ldr r3, _0807A11C @ =0x000006c6
- adds r0, r3
- strb r2, [r0]
- b _0807A18C
- .align 2, 0
-_0807A118: .4byte gUnknown_2037F34
-_0807A11C: .4byte 0x000006c6
-_0807A120:
- bl sub_807A1FC
- lsls r0, 24
- cmp r0, 0
- bne _0807A18C
- ldr r1, _0807A13C @ =gUnknown_2037F34
- movs r0, 0xD8
- lsls r0, 3
- adds r2, r1, r0
- movs r0, 0xFA
- strb r0, [r2]
- ldr r2, _0807A140 @ =0x000006c6
- adds r1, r2
- b _0807A188
- .align 2, 0
-_0807A13C: .4byte gUnknown_2037F34
-_0807A140: .4byte 0x000006c6
-_0807A144:
- bl sub_807A254
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0807A18C
- ldr r0, _0807A164 @ =gUnknown_2037F34
- movs r3, 0xD8
- lsls r3, 3
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0807A168 @ =0x000006c6
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- b _0807A18C
- .align 2, 0
-_0807A164: .4byte gUnknown_2037F34
-_0807A168: .4byte 0x000006c6
-_0807A16C:
- ldr r0, _0807A190 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0807A18C
- ldr r3, _0807A194 @ =0x000006c1
- adds r0, r2, r3
- ldrb r1, [r0]
- subs r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807A198 @ =0x000006c6
- adds r1, r2, r0
-_0807A188:
- movs r0, 0x3
- strb r0, [r1]
-_0807A18C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807A190: .4byte gPaletteFade
-_0807A194: .4byte 0x000006c1
-_0807A198: .4byte 0x000006c6
- thumb_func_end sub_807A084
-
- thumb_func_start sub_807A19C
-sub_807A19C: @ 807A19C
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _0807A1D8 @ =gUnknown_2037F34
- ldr r0, _0807A1DC @ =0x000006c7
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807A1F2
- adds r1, r0, 0x1
- strb r1, [r4]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807A1E4
- movs r3, 0x10
- subs r3, r1
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _0807A1E0 @ =0x000006c4
- adds r0, r2, r1
- ldrh r0, [r0]
- str r0, [sp]
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807A3D0
- movs r0, 0x1
- b _0807A1F4
- .align 2, 0
-_0807A1D8: .4byte gUnknown_2037F34
-_0807A1DC: .4byte 0x000006c7
-_0807A1E0: .4byte 0x000006c4
-_0807A1E4:
- movs r0, 0
- movs r1, 0x20
- movs r2, 0x3
- bl sub_807A294
- movs r0, 0x10
- strb r0, [r4]
-_0807A1F2:
- movs r0, 0
-_0807A1F4:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807A19C
-
- thumb_func_start sub_807A1FC
-sub_807A1FC: @ 807A1FC
- push {r4,lr}
- ldr r2, _0807A230 @ =gUnknown_2037F34
- ldr r0, _0807A234 @ =0x000006c7
- adds r4, r2, r0
- ldrb r0, [r4]
- cmp r0, 0x10
- beq _0807A24C
- adds r3, r0, 0x1
- strb r3, [r4]
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _0807A23C
- movs r0, 0x6
- negs r0, r0
- movs r1, 0x10
- subs r1, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807A238 @ =0x000006c4
- adds r2, r3
- ldrh r2, [r2]
- bl sub_807A518
- movs r0, 0x1
- b _0807A24E
- .align 2, 0
-_0807A230: .4byte gUnknown_2037F34
-_0807A234: .4byte 0x000006c7
-_0807A238: .4byte 0x000006c4
-_0807A23C:
- movs r2, 0x6
- negs r2, r2
- movs r0, 0
- movs r1, 0x20
- bl sub_807A294
- movs r0, 0x10
- strb r0, [r4]
-_0807A24C:
- movs r0, 0
-_0807A24E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807A1FC
-
- thumb_func_start sub_807A254
-sub_807A254: @ 807A254
- push {lr}
- ldr r2, _0807A27C @ =gUnknown_2037F34
- ldr r1, _0807A280 @ =0x000006c7
- adds r0, r2, r1
- ldrb r1, [r0]
- cmp r1, 0x10
- beq _0807A288
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0807A284 @ =0x000006c4
- adds r1, r2, r3
- ldrh r1, [r1]
- bl sub_807A5F8
- movs r0, 0x1
- b _0807A28A
- .align 2, 0
-_0807A27C: .4byte gUnknown_2037F34
-_0807A280: .4byte 0x000006c7
-_0807A284: .4byte 0x000006c4
-_0807A288:
- movs r0, 0
-_0807A28A:
- pop {r1}
- bx r1
- thumb_func_end sub_807A254
-
- thumb_func_start nullsub_46
-nullsub_46: @ 807A290
- bx lr
- thumb_func_end nullsub_46
-
- thumb_func_start sub_807A294
-sub_807A294: @ 807A294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- asrs r0, r2, 24
- cmp r0, 0
- ble _0807A3A0
- subs r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r3, 4
- adds r0, r1, r3
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r4, r9
- bcs _0807A3B6
- lsls r0, r2, 24
- asrs r0, 19
- str r0, [sp]
-_0807A2CE:
- ldr r0, _0807A300 @ =gUnknown_20386A4
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807A30C
- lsls r1, r6, 1
- ldr r0, _0807A304 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _0807A308 @ =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r9
- lsls r0, 16
- mov r8, r0
- adds r4, 0x1
- mov r12, r4
- b _0807A38A
- .align 2, 0
-_0807A300: .4byte gUnknown_20386A4
-_0807A304: .4byte gPlttBufferUnfaded
-_0807A308: .4byte gPlttBufferFaded
-_0807A30C:
- cmp r0, 0x2
- beq _0807A320
- adds r1, r4, 0
- subs r1, 0x10
- ldr r2, _0807A324 @ =gUnknown_2037F34
- ldr r3, _0807A328 @ =0x000006d5
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _0807A330
-_0807A320:
- ldr r0, _0807A32C @ =gUnknown_2038394
- b _0807A336
- .align 2, 0
-_0807A324: .4byte gUnknown_2037F34
-_0807A328: .4byte 0x000006d5
-_0807A32C: .4byte gUnknown_2038394
-_0807A330:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r2, r3
-_0807A336:
- ldr r1, [sp]
- adds r5, r1, r0
- movs r7, 0
- mov r3, r9
- lsls r3, 16
- mov r8, r3
- adds r4, 0x1
- mov r12, r4
- ldr r0, _0807A398 @ =gPlttBufferFaded
- mov r10, r0
-_0807A34A:
- adds r2, r6, 0
- lsls r0, r2, 1
- ldr r1, _0807A39C @ =gPlttBufferUnfaded
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r4, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r3, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r5, r1
- ldrb r1, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r2, 1
- add r2, r10
- lsls r1, 10
- lsls r3, 5
- orrs r1, r3
- orrs r1, r4
- strh r1, [r2]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807A34A
-_0807A38A:
- mov r3, r12
- lsls r0, r3, 16
- lsrs r4, r0, 16
- cmp r0, r8
- bcc _0807A2CE
- b _0807A3B6
- .align 2, 0
-_0807A398: .4byte gPlttBufferFaded
-_0807A39C: .4byte gPlttBufferUnfaded
-_0807A3A0:
- cmp r0, 0
- blt _0807A3B6
- lsls r1, r4, 5
- ldr r0, _0807A3C8 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _0807A3CC @ =gPlttBufferFaded
- adds r1, r2
- mov r3, r9
- lsls r2, r3, 3
- bl CpuFastSet
-_0807A3B6:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A3C8: .4byte gPlttBufferUnfaded
-_0807A3CC: .4byte gPlttBufferFaded
- thumb_func_end sub_807A294
-
- thumb_func_start sub_807A3D0
-sub_807A3D0: @ 807A3D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- mov r1, sp
- strh r4, [r1]
- ldr r1, [sp]
- lsls r3, r1, 27
- lsrs r3, 27
- str r3, [sp, 0x4]
- lsls r3, r1, 22
- lsrs r3, 27
- str r3, [sp, 0x8]
- lsls r1, 17
- lsrs r1, 27
- str r1, [sp, 0xC]
- lsls r6, r0, 4
- mov r3, r10
- adds r1, r3, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r2, r1
- lsrs r2, 24
- adds r4, r0, 0
- cmp r4, r10
- bcs _0807A4FC
- lsls r0, r2, 24
- asrs r0, 19
- str r0, [sp, 0x10]
-_0807A428:
- ldr r0, _0807A458 @ =gUnknown_20386A4
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807A45C
- mov r0, sp
- ldrh r3, [r0]
- adds r0, r6, 0
- movs r1, 0x10
- mov r2, r8
- bl BlendPalette
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- mov r3, r10
- lsls r3, 16
- mov r9, r3
- adds r4, 0x1
- mov r12, r4
- b _0807A4F2
- .align 2, 0
-_0807A458: .4byte gUnknown_20386A4
-_0807A45C:
- cmp r0, 0x1
- bne _0807A46C
- ldr r0, _0807A468 @ =gUnknown_2038134
- ldr r1, [sp, 0x10]
- adds r5, r1, r0
- b _0807A472
- .align 2, 0
-_0807A468: .4byte gUnknown_2038134
-_0807A46C:
- ldr r0, _0807A50C @ =gUnknown_2038394
- ldr r3, [sp, 0x10]
- adds r5, r3, r0
-_0807A472:
- movs r7, 0
- mov r0, r10
- lsls r0, 16
- mov r9, r0
- adds r4, 0x1
- mov r12, r4
-_0807A47E:
- adds r4, r6, 0
- lsls r0, r4, 1
- ldr r1, _0807A510 @ =gPlttBufferUnfaded
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r3, [r0]
- lsls r0, r1, 22
- lsrs r0, 27
- adds r0, r5, r0
- ldrb r2, [r0]
- lsls r1, 17
- lsrs r1, 27
- adds r1, r5, r1
- ldrb r1, [r1]
- ldr r6, [sp, 0x4]
- subs r0, r6, r3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldr r6, [sp, 0x8]
- subs r0, r6, r2
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- ldr r6, [sp, 0xC]
- subs r0, r6, r1
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- asrs r0, 4
- adds r1, r0
- lsls r1, 24
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 1
- ldr r0, _0807A514 @ =gPlttBufferFaded
- adds r4, r0
- lsrs r1, 14
- lsrs r2, 19
- orrs r1, r2
- orrs r1, r3
- strh r1, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807A47E
-_0807A4F2:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r0, r9
- bcc _0807A428
-_0807A4FC:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A50C: .4byte gUnknown_2038394
-_0807A510: .4byte gPlttBufferUnfaded
-_0807A514: .4byte gPlttBufferFaded
- thumb_func_end sub_807A3D0
-
- thumb_func_start sub_807A518
-sub_807A518: @ 807A518
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r1, 24
- lsrs r6, r1, 24
- mov r0, sp
- strh r2, [r0]
- ldr r0, [sp]
- lsls r1, r0, 27
- lsrs r1, 27
- str r1, [sp, 0x4]
- lsls r1, r0, 22
- lsrs r1, 27
- mov r10, r1
- lsls r0, 17
- lsrs r0, 27
- mov r8, r0
- movs r5, 0
- movs r4, 0
-_0807A544:
- ldr r0, _0807A56C @ =gUnknown_20386A4
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807A570
- mov r0, sp
- ldrh r3, [r0]
- adds r0, r5, 0
- movs r1, 0x10
- adds r2, r6, 0
- bl BlendPalette
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- mov r12, r4
- b _0807A5D4
- .align 2, 0
-_0807A56C: .4byte gUnknown_20386A4
-_0807A570:
- movs r7, 0
- adds r4, 0x1
- mov r12, r4
- ldr r0, _0807A5F0 @ =gPlttBufferFaded
- mov r9, r0
-_0807A57A:
- adds r4, r5, 0
- lsls r0, r4, 1
- ldr r1, _0807A5F4 @ =gPlttBufferUnfaded
- adds r0, r1
- ldr r1, [r0]
- lsls r3, r1, 27
- lsrs r3, 27
- lsls r2, r1, 22
- lsrs r2, 27
- lsls r1, 17
- lsrs r1, 27
- ldr r5, [sp, 0x4]
- subs r0, r5, r3
- muls r0, r6
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- mov r5, r10
- subs r0, r5, r2
- muls r0, r6
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- mov r5, r8
- subs r0, r5, r1
- muls r0, r6
- asrs r0, 4
- adds r1, r0
- lsls r1, 24
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- add r4, r9
- lsrs r1, 14
- lsrs r2, 19
- orrs r1, r2
- orrs r1, r3
- strh r1, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xF
- bls _0807A57A
-_0807A5D4:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0807A544
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A5F0: .4byte gPlttBufferFaded
-_0807A5F4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_807A518
-
- thumb_func_start sub_807A5F8
-sub_807A5F8: @ 807A5F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r3, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 16
- lsrs r3, 16
- mov r0, sp
- strh r3, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0
- adds r2, r7, 0
- bl BlendPalette
- ldr r0, [sp]
- lsls r1, r0, 27
- lsrs r1, 27
- str r1, [sp, 0x4]
- lsls r1, r0, 22
- lsrs r1, 27
- str r1, [sp, 0x8]
- lsls r0, 17
- lsrs r0, 27
- mov r10, r0
- movs r4, 0x10
-_0807A634:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_807A748
- lsls r0, 24
- cmp r0, 0
- beq _0807A6E4
- adds r0, r4, 0x1
- lsls r1, r0, 20
- lsrs r1, 16
- mov r12, r1
- lsls r1, r4, 20
- lsrs r6, r1, 16
- mov r9, r0
- cmp r6, r12
- bcs _0807A6F8
- movs r0, 0x1C
- mov r8, r0
-_0807A658:
- lsls r5, r6, 1
- ldr r0, _0807A6DC @ =gPlttBufferUnfaded
- adds r0, r5, r0
- ldr r2, [r0]
- lsls r4, r2, 27
- lsrs r4, 27
- lsls r3, r2, 22
- lsrs r3, 27
- lsls r2, 17
- lsrs r2, 27
- mov r0, r8
- subs r1, r0, r4
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x1F
- subs r1, r3
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- subs r1, r0, r2
- lsls r0, r1, 1
- adds r0, r1
- asrs r0, 2
- adds r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, [sp, 0x4]
- subs r0, r1, r4
- muls r0, r7
- asrs r0, 4
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [sp, 0x8]
- subs r0, r1, r3
- muls r0, r7
- asrs r0, 4
- adds r3, r0
- lsls r3, 24
- mov r1, r10
- subs r0, r1, r2
- muls r0, r7
- asrs r0, 4
- adds r2, r0
- lsls r2, 24
- ldr r0, _0807A6E0 @ =gPlttBufferFaded
- adds r5, r0
- lsrs r2, 14
- lsrs r3, 19
- orrs r2, r3
- orrs r2, r4
- strh r2, [r5]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r12
- bcc _0807A658
- b _0807A6F8
- .align 2, 0
-_0807A6DC: .4byte gPlttBufferUnfaded
-_0807A6E0: .4byte gPlttBufferFaded
-_0807A6E4:
- lsls r0, r4, 20
- lsrs r0, 16
- mov r1, sp
- ldrh r3, [r1]
- movs r1, 0x10
- adds r2, r7, 0
- bl BlendPalette
- adds r4, 0x1
- mov r9, r4
-_0807A6F8:
- mov r1, r9
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0807A634
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807A5F8
-
- thumb_func_start sub_807A714
-sub_807A714: @ 807A714
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0807A73C @ =gUnknown_2037F34
- ldr r0, _0807A740 @ =0x000006fa
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _0807A736
- ldr r4, _0807A744 @ =0x000006f4
- adds r0, r3, r4
- ldrb r3, [r1]
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0807A736:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A73C: .4byte gUnknown_2037F34
-_0807A740: .4byte 0x000006fa
-_0807A744: .4byte 0x000006f4
- thumb_func_end sub_807A714
-
- thumb_func_start sub_807A748
-sub_807A748: @ 807A748
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r1, 0
- ldr r2, _0807A770 @ =gUnknown_2037F34
- ldr r4, _0807A774 @ =0x000006fa
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0807A786
- ldr r5, _0807A778 @ =0x000006f4
- adds r4, r2, r5
- adds r2, r0, 0
-_0807A762:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _0807A77C
- movs r0, 0x1
- b _0807A788
- .align 2, 0
-_0807A770: .4byte gUnknown_2037F34
-_0807A774: .4byte 0x000006fa
-_0807A778: .4byte 0x000006f4
-_0807A77C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _0807A762
-_0807A786:
- movs r0, 0
-_0807A788:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807A748
-
- thumb_func_start sub_807A790
-sub_807A790: @ 807A790
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0807A7BC @ =gUnknown_2037F34
- ldr r1, _0807A7C0 @ =0x000006c6
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0807A7B6
- lsls r2, r4, 24
- asrs r2, 24
- movs r0, 0
- movs r1, 0x20
- bl sub_807A294
- movs r1, 0xD8
- lsls r1, 3
- adds r0, r5, r1
- strb r4, [r0]
-_0807A7B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A7BC: .4byte gUnknown_2037F34
-_0807A7C0: .4byte 0x000006c6
- thumb_func_end sub_807A790
-
- thumb_func_start sub_807A7C4
-sub_807A7C4: @ 807A7C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r3, _0807A80C @ =gUnknown_2037F34
- ldr r0, _0807A810 @ =0x000006c6
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0807A804
- movs r1, 0
- strb r1, [r2]
- movs r2, 0xD8
- lsls r2, 3
- adds r0, r3, r2
- strb r4, [r0]
- adds r2, 0x1
- adds r0, r3, r2
- strb r5, [r0]
- adds r2, 0x2
- adds r0, r3, r2
- strb r1, [r0]
- ldr r1, _0807A814 @ =0x000006c2
- adds r0, r3, r1
- strb r6, [r0]
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_807A790
-_0807A804:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A80C: .4byte gUnknown_2037F34
-_0807A810: .4byte 0x000006c6
-_0807A814: .4byte 0x000006c2
- thumb_func_end sub_807A7C4
-
- thumb_func_start FadeScreen
-FadeScreen: @ 807A818
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x1
- beq _0807A850
- cmp r0, 0x1
- bgt _0807A834
- cmp r0, 0
- beq _0807A83E
- b _0807A92C
-_0807A834:
- cmp r2, 0x2
- beq _0807A844
- cmp r2, 0x3
- beq _0807A854
- b _0807A92C
-_0807A83E:
- movs r4, 0
- movs r1, 0
- b _0807A858
-_0807A844:
- ldr r4, _0807A84C @ =0x0000ffff
- movs r1, 0
- b _0807A858
- .align 2, 0
-_0807A84C: .4byte 0x0000ffff
-_0807A850:
- movs r4, 0
- b _0807A856
-_0807A854:
- ldr r4, _0807A878 @ =0x0000ffff
-_0807A856:
- movs r1, 0x1
-_0807A858:
- ldr r0, _0807A87C @ =gUnknown_2037F34
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- blt _0807A880
- cmp r0, 0x6
- ble _0807A872
- cmp r0, 0xD
- bgt _0807A880
- cmp r0, 0xB
- blt _0807A880
-_0807A872:
- movs r2, 0x1
- b _0807A882
- .align 2, 0
-_0807A878: .4byte 0x0000ffff
-_0807A87C: .4byte gUnknown_2037F34
-_0807A880:
- movs r2, 0
-_0807A882:
- cmp r1, 0
- beq _0807A8C4
- cmp r2, 0
- beq _0807A896
- ldr r0, _0807A8B4 @ =gPlttBufferFaded
- ldr r1, _0807A8B8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
-_0807A896:
- movs r0, 0x1
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807A8BC @ =gUnknown_2037F34
- ldr r3, _0807A8C0 @ =0x000006c6
- adds r0, r3
- movs r1, 0x2
- strb r1, [r0]
- b _0807A92C
- .align 2, 0
-_0807A8B4: .4byte gPlttBufferFaded
-_0807A8B8: .4byte gPlttBufferUnfaded
-_0807A8BC: .4byte gUnknown_2037F34
-_0807A8C0: .4byte 0x000006c6
-_0807A8C4:
- ldr r1, _0807A8DC @ =gUnknown_2037F34
- ldr r3, _0807A8E0 @ =0x000006c4
- adds r0, r1, r3
- strh r4, [r0]
- cmp r2, 0
- beq _0807A8E8
- ldr r0, _0807A8E4 @ =0x000006c7
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- b _0807A8FA
- .align 2, 0
-_0807A8DC: .4byte gUnknown_2037F34
-_0807A8E0: .4byte 0x000006c4
-_0807A8E4: .4byte 0x000006c7
-_0807A8E8:
- movs r0, 0x1
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0807A8FA:
- ldr r4, _0807A934 @ =gUnknown_2037F34
- ldr r1, _0807A938 @ =0x000006c6
- adds r0, r4, r1
- movs r1, 0
- movs r5, 0x1
- strb r5, [r0]
- ldr r2, _0807A93C @ =0x000006ca
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _0807A940 @ =0x000006cb
- adds r0, r4, r3
- strb r1, [r0]
- movs r1, 0xE6
- lsls r1, 3
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r2, 0x68
- adds r1, r4, r2
- ldrb r1, [r1]
- bl Weather_SetBlendCoeffs
- movs r3, 0xD9
- lsls r3, 3
- adds r4, r3
- strb r5, [r4]
-_0807A92C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A934: .4byte gUnknown_2037F34
-_0807A938: .4byte 0x000006c6
-_0807A93C: .4byte 0x000006ca
-_0807A940: .4byte 0x000006cb
- thumb_func_end FadeScreen
-
- thumb_func_start FieldWeather_StartFadingOutCreditsMap
-FieldWeather_StartFadingOutCreditsMap: @ 807A944
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x1
- beq _0807A97C
- cmp r0, 0x1
- bgt _0807A962
- cmp r0, 0
- beq _0807A96C
- b _0807AA56
-_0807A962:
- cmp r2, 0x2
- beq _0807A972
- cmp r2, 0x3
- beq _0807A980
- b _0807AA56
-_0807A96C:
- movs r4, 0
- movs r1, 0
- b _0807A984
-_0807A972:
- ldr r4, _0807A978 @ =0x0000ffff
- movs r1, 0
- b _0807A984
- .align 2, 0
-_0807A978: .4byte 0x0000ffff
-_0807A97C:
- movs r4, 0
- b _0807A982
-_0807A980:
- ldr r4, _0807A9A4 @ =0x0000ffff
-_0807A982:
- movs r1, 0x1
-_0807A984:
- ldr r0, _0807A9A8 @ =gUnknown_2037F34
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- blt _0807A9AC
- cmp r0, 0x6
- ble _0807A99E
- cmp r0, 0xD
- bgt _0807A9AC
- cmp r0, 0xB
- blt _0807A9AC
-_0807A99E:
- movs r2, 0x1
- b _0807A9AE
- .align 2, 0
-_0807A9A4: .4byte 0x0000ffff
-_0807A9A8: .4byte gUnknown_2037F34
-_0807A9AC:
- movs r2, 0
-_0807A9AE:
- cmp r1, 0
- beq _0807A9F0
- cmp r2, 0
- beq _0807A9C2
- ldr r0, _0807A9E0 @ =gPlttBufferFaded
- ldr r1, _0807A9E4 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
-_0807A9C2:
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807A9E8 @ =gUnknown_2037F34
- ldr r3, _0807A9EC @ =0x000006c6
- adds r0, r3
- movs r1, 0x2
- strb r1, [r0]
- b _0807AA56
- .align 2, 0
-_0807A9E0: .4byte gPlttBufferFaded
-_0807A9E4: .4byte gPlttBufferUnfaded
-_0807A9E8: .4byte gUnknown_2037F34
-_0807A9EC: .4byte 0x000006c6
-_0807A9F0:
- ldr r1, _0807AA08 @ =gUnknown_2037F34
- ldr r3, _0807AA0C @ =0x000006c4
- adds r0, r1, r3
- strh r4, [r0]
- cmp r2, 0
- beq _0807AA14
- ldr r0, _0807AA10 @ =0x000006c7
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- b _0807AA24
- .align 2, 0
-_0807AA08: .4byte gUnknown_2037F34
-_0807AA0C: .4byte 0x000006c4
-_0807AA10: .4byte 0x000006c7
-_0807AA14:
- lsls r1, r5, 24
- asrs r1, 24
- str r4, [sp]
- adds r0, r6, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0807AA24:
- ldr r4, _0807AA60 @ =gUnknown_2037F34
- ldr r1, _0807AA64 @ =0x000006c6
- adds r0, r4, r1
- movs r1, 0
- movs r5, 0x1
- strb r5, [r0]
- ldr r2, _0807AA68 @ =0x000006ca
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _0807AA6C @ =0x000006cb
- adds r0, r4, r3
- strb r1, [r0]
- movs r1, 0xE6
- lsls r1, 3
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r2, 0x68
- adds r1, r4, r2
- ldrb r1, [r1]
- bl Weather_SetBlendCoeffs
- movs r3, 0xD9
- lsls r3, 3
- adds r4, r3
- strb r5, [r4]
-_0807AA56:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807AA60: .4byte gUnknown_2037F34
-_0807AA64: .4byte 0x000006c6
-_0807AA68: .4byte 0x000006ca
-_0807AA6C: .4byte 0x000006cb
- thumb_func_end FieldWeather_StartFadingOutCreditsMap
-
- thumb_func_start IsWeatherNotFadingIn
-IsWeatherNotFadingIn: @ 807AA70
- ldr r0, _0807AA84 @ =gUnknown_2037F34
- ldr r1, _0807AA88 @ =0x000006c6
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .align 2, 0
-_0807AA84: .4byte gUnknown_2037F34
-_0807AA88: .4byte 0x000006c6
- thumb_func_end IsWeatherNotFadingIn
-
- thumb_func_start UpdateSpritePaletteWithWeather
-UpdateSpritePaletteWithWeather: @ 807AA8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- ldr r5, _0807AACC @ =gUnknown_2037F34
- ldr r2, _0807AAD0 @ =0x000006c6
- adds r0, r5, r2
- ldrb r0, [r0]
- adds r1, r5, 0
- cmp r0, 0x1
- beq _0807AAD4
- cmp r0, 0x2
- beq _0807AB20
- adds r2, 0xA
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _0807AB58
- lsls r0, r4, 24
- lsrs r0, 24
- subs r2, 0x10
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x1
- bl sub_807A294
- b _0807AB68
- .align 2, 0
-_0807AACC: .4byte gUnknown_2037F34
-_0807AAD0: .4byte 0x000006c6
-_0807AAD4:
- ldr r2, _0807AB14 @ =0x000006ca
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807AB68
- adds r2, 0x6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0807AAF0
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_807A714
-_0807AAF0:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- movs r2, 0
- ldr r6, _0807AB18 @ =gPlttBufferFaded
- ldr r0, _0807AB1C @ =0x000006c4
- adds r3, r5, r0
-_0807AAFC:
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r3]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0807AAFC
- b _0807AB68
- .align 2, 0
-_0807AB14: .4byte 0x000006ca
-_0807AB18: .4byte gPlttBufferFaded
-_0807AB1C: .4byte 0x000006c4
-_0807AB20:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- lsls r1, r4, 1
- ldr r0, _0807AB4C @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _0807AB50 @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x8
- bl CpuFastSet
- ldr r0, _0807AB54 @ =gPaletteFade
- ldrh r2, [r0, 0x4]
- lsls r2, 21
- lsrs r2, 27
- ldrh r3, [r0, 0x6]
- lsls r3, 17
- lsrs r3, 17
- adds r0, r4, 0
- movs r1, 0x10
- bl BlendPalette
- b _0807AB68
- .align 2, 0
-_0807AB4C: .4byte gPlttBufferFaded
-_0807AB50: .4byte gPlttBufferUnfaded
-_0807AB54: .4byte gPaletteFade
-_0807AB58:
- lsls r0, r4, 20
- lsrs r4, r0, 16
- ldr r3, _0807AB70 @ =0x000073fc
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xC
- bl BlendPalette
-_0807AB68:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807AB70: .4byte 0x000073fc
- thumb_func_end UpdateSpritePaletteWithWeather
-
- thumb_func_start sub_807AB74
-sub_807AB74: @ 807AB74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0807AB90 @ =gUnknown_2037F34
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x1
- bl sub_807A294
- pop {r0}
- bx r0
- .align 2, 0
-_0807AB90: .4byte gUnknown_2037F34
- thumb_func_end sub_807AB74
-
- thumb_func_start sub_807AB94
-sub_807AB94: @ 807AB94
- push {lr}
- ldr r1, _0807ABA8 @ =gUnknown_2037F34
- ldr r2, _0807ABAC @ =0x000006c6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807ABB0
- movs r0, 0
- b _0807ABB6
- .align 2, 0
-_0807ABA8: .4byte gUnknown_2037F34
-_0807ABAC: .4byte 0x000006c6
-_0807ABB0:
- ldr r2, _0807ABBC @ =0x000006ca
- adds r0, r1, r2
- ldrb r0, [r0]
-_0807ABB6:
- pop {r1}
- bx r1
- .align 2, 0
-_0807ABBC: .4byte 0x000006ca
- thumb_func_end sub_807AB94
-
- thumb_func_start sub_807ABC0
-sub_807ABC0: @ 807ABC0
- push {r4,lr}
- ldr r4, _0807ABE8 @ =gUnknown_2037F34
- ldr r1, _0807ABEC @ =0x000006d4
- adds r4, r1
- ldrb r1, [r4]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r4]
- bl UpdateSpritePaletteWithWeather
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ABE8: .4byte gUnknown_2037F34
-_0807ABEC: .4byte 0x000006d4
- thumb_func_end sub_807ABC0
-
- thumb_func_start nullsub_47
-nullsub_47: @ 807ABF0
- bx lr
- thumb_func_end nullsub_47
-
- thumb_func_start sub_807ABF4
-sub_807ABF4: @ 807ABF4
- ldr r0, _0807AC08 @ =gUnknown_2037F34
- ldr r2, _0807AC0C @ =0x0000074d
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r1, _0807AC10 @ =0x0000074e
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0807AC08: .4byte gUnknown_2037F34
-_0807AC0C: .4byte 0x0000074d
-_0807AC10: .4byte 0x0000074e
- thumb_func_end sub_807ABF4
-
- thumb_func_start sub_807AC14
-sub_807AC14: @ 807AC14
- push {r4,lr}
- ldr r1, _0807AC3C @ =gUnknown_2037F34
- ldr r0, _0807AC40 @ =0x0000074d
- adds r4, r1, r0
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1F
- bgt _0807AC48
- ldr r0, _0807AC44 @ =0x0000074e
- adds r1, r0
- adds r0, r4, 0
- bl nullsub_47
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1F
- bgt _0807AC48
- movs r0, 0x1
- b _0807AC4A
- .align 2, 0
-_0807AC3C: .4byte gUnknown_2037F34
-_0807AC40: .4byte 0x0000074d
-_0807AC44: .4byte 0x0000074e
-_0807AC48:
- movs r0, 0
-_0807AC4A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_807AC14
-
- thumb_func_start sub_807AC50
-sub_807AC50: @ 807AC50
- push {lr}
- lsls r0, 24
- asrs r0, 24
- mvns r0, r0
- bl sub_807A790
- pop {r0}
- bx r0
- thumb_func_end sub_807AC50
-
- thumb_func_start sub_807AC60
-sub_807AC60: @ 807AC60
- ldr r1, _0807AC88 @ =gUnknown_2037F34
- ldr r2, _0807AC8C @ =0x0000073c
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- movs r3, 0xE8
- lsls r3, 3
- adds r0, r1, r3
- strh r2, [r0]
- adds r3, 0x2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _0807AC90 @ =0x0000073e
- adds r1, r0
- strh r2, [r1]
- ldr r1, _0807AC94 @ =gUnknown_20386A8
- movs r0, 0x5
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0807AC88: .4byte gUnknown_2037F34
-_0807AC8C: .4byte 0x0000073c
-_0807AC90: .4byte 0x0000073e
-_0807AC94: .4byte gUnknown_20386A8
- thumb_func_end sub_807AC60
-
- thumb_func_start sub_807AC98
-sub_807AC98: @ 807AC98
- push {r4-r7,lr}
- ldr r5, _0807ACB4 @ =gUnknown_2037F34
- ldr r0, _0807ACB8 @ =0x00000742
- adds r7, r5, r0
- movs r1, 0
- ldrsh r2, [r7, r1]
- cmp r2, 0x1
- beq _0807AD14
- cmp r2, 0x1
- bgt _0807ACBC
- cmp r2, 0
- beq _0807ACC2
- b _0807ADA0
- .align 2, 0
-_0807ACB4: .4byte gUnknown_2037F34
-_0807ACB8: .4byte 0x00000742
-_0807ACBC:
- cmp r2, 0x2
- beq _0807AD68
- b _0807ADA0
-_0807ACC2:
- movs r3, 0xE8
- lsls r3, 3
- adds r6, r5, r3
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807AD08 @ =gUnknown_20386A8
- ldrh r1, [r1]
- cmp r0, r1
- ble _0807ADA0
- strh r2, [r6]
- ldr r0, _0807AD0C @ =0x0000073c
- adds r4, r5, r0
- ldrh r0, [r4]
- adds r1, r0, 0x1
- strh r1, [r4]
- lsls r0, 24
- asrs r0, 24
- bl sub_807AC50
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- ble _0807ADA0
- ldr r3, _0807AD10 @ =0x0000073e
- adds r0, r5, r3
- strh r1, [r0]
- movs r0, 0x1
- strh r0, [r7]
- movs r0, 0x3C
- strh r0, [r6]
- b _0807ADA0
- .align 2, 0
-_0807AD08: .4byte gUnknown_20386A8
-_0807AD0C: .4byte 0x0000073c
-_0807AD10: .4byte 0x0000073e
-_0807AD14:
- movs r0, 0xE8
- lsls r0, 3
- adds r2, r5, r0
- ldrh r0, [r2]
- adds r0, 0x3
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0807AD5C @ =gSineTable
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r0, 0x1
- asrs r0, 6
- adds r0, 0x2
- ldr r2, _0807AD60 @ =0x0000073c
- adds r6, r5, r2
- adds r2, r0, 0
- strh r0, [r6]
- ldr r3, _0807AD64 @ =0x0000073e
- adds r4, r5, r3
- movs r3, 0
- ldrsh r1, [r4, r3]
- cmp r0, r1
- beq _0807AD54
- lsls r0, r2, 24
- asrs r0, 24
- bl sub_807AC50
-_0807AD54:
- ldrh r0, [r6]
- strh r0, [r4]
- b _0807ADA0
- .align 2, 0
-_0807AD5C: .4byte gSineTable
-_0807AD60: .4byte 0x0000073c
-_0807AD64: .4byte 0x0000073e
-_0807AD68:
- movs r0, 0xE8
- lsls r0, 3
- adds r2, r5, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807ADA8 @ =gUnknown_20386A8
- ldrh r1, [r1]
- cmp r0, r1
- ble _0807ADA0
- strh r6, [r2]
- ldr r1, _0807ADAC @ =0x0000073c
- adds r4, r5, r1
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 24
- asrs r0, 24
- bl sub_807AC50
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bne _0807ADA0
- strh r6, [r7]
-_0807ADA0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ADA8: .4byte gUnknown_20386A8
-_0807ADAC: .4byte 0x0000073c
- thumb_func_end sub_807AC98
-
- thumb_func_start Weather_SetBlendCoeffs
-Weather_SetBlendCoeffs: @ 807ADB0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807ADE8 @ =gUnknown_2037F34
- movs r4, 0xE6
- lsls r4, 3
- adds r2, r3, r4
- strh r0, [r2]
- adds r4, 0x2
- adds r2, r3, r4
- strh r1, [r2]
- adds r4, 0x2
- adds r2, r3, r4
- strh r0, [r2]
- ldr r2, _0807ADEC @ =0x00000736
- adds r3, r2
- strh r1, [r3]
- lsls r1, 8
- orrs r1, r0
- movs r0, 0x52
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807ADE8: .4byte gUnknown_2037F34
-_0807ADEC: .4byte 0x00000736
- thumb_func_end Weather_SetBlendCoeffs
-
- thumb_func_start Weather_SetTargetBlendCoeffs
-Weather_SetTargetBlendCoeffs: @ 807ADF0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0807AE24 @ =gUnknown_2037F34
- ldr r5, _0807AE28 @ =0x00000734
- adds r4, r3, r5
- movs r5, 0
- strh r0, [r4]
- ldr r4, _0807AE2C @ =0x00000736
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, _0807AE30 @ =0x0000073a
- adds r0, r3, r1
- strb r2, [r0]
- adds r4, 0x3
- adds r0, r3, r4
- strb r5, [r0]
- movs r0, 0xE7
- lsls r0, 3
- adds r3, r0
- strb r5, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807AE24: .4byte gUnknown_2037F34
-_0807AE28: .4byte 0x00000734
-_0807AE2C: .4byte 0x00000736
-_0807AE30: .4byte 0x0000073a
- thumb_func_end Weather_SetTargetBlendCoeffs
-
- thumb_func_start Weather_UpdateBlend
-Weather_UpdateBlend: @ 807AE34
- push {r4-r6,lr}
- ldr r0, _0807AE8C @ =gUnknown_2037F34
- movs r1, 0xE6
- lsls r1, 3
- adds r3, r0, r1
- ldr r2, [r3]
- ldr r6, _0807AE90 @ =0x00000734
- adds r4, r0, r6
- ldr r1, [r4]
- adds r5, r0, 0
- cmp r2, r1
- beq _0807AEF8
- ldr r0, _0807AE94 @ =0x00000739
- adds r2, r5, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r6, _0807AE98 @ =0x0000073a
- adds r1, r5, r6
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807AEC4
- movs r0, 0
- strb r0, [r2]
- movs r0, 0xE7
- lsls r0, 3
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807AE9C
- ldrh r1, [r3]
- adds r2, r1, 0
- ldrh r0, [r4]
- cmp r2, r0
- bcs _0807AEBC
- adds r0, r1, 0x1
- b _0807AEC2
- .align 2, 0
-_0807AE8C: .4byte gUnknown_2037F34
-_0807AE90: .4byte 0x00000734
-_0807AE94: .4byte 0x00000739
-_0807AE98: .4byte 0x0000073a
-_0807AE9C:
- ldr r1, _0807AEB4 @ =0x00000732
- adds r3, r5, r1
- ldr r2, _0807AEB8 @ =0x00000736
- adds r0, r5, r2
- ldrh r1, [r3]
- adds r2, r1, 0
- ldrh r0, [r0]
- cmp r2, r0
- bcs _0807AEBC
- adds r0, r1, 0x1
- b _0807AEC2
- .align 2, 0
-_0807AEB4: .4byte 0x00000732
-_0807AEB8: .4byte 0x00000736
-_0807AEBC:
- cmp r2, r0
- bls _0807AEC4
- subs r0, r1, 0x1
-_0807AEC2:
- strh r0, [r3]
-_0807AEC4:
- ldr r6, _0807AEF0 @ =0x00000732
- adds r0, r5, r6
- ldrh r1, [r0]
- lsls r1, 8
- movs r0, 0xE6
- lsls r0, 3
- adds r4, r5, r0
- ldrh r0, [r4]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r4]
- ldr r2, _0807AEF4 @ =0x00000734
- adds r0, r5, r2
- ldr r0, [r0]
- cmp r1, r0
- beq _0807AEF8
- movs r0, 0
- b _0807AEFA
- .align 2, 0
-_0807AEF0: .4byte 0x00000732
-_0807AEF4: .4byte 0x00000734
-_0807AEF8:
- movs r0, 0x1
-_0807AEFA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end Weather_UpdateBlend
-
- thumb_func_start sub_807AF00
-sub_807AF00: @ 807AF00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0807AF92
- lsls r0, 2
- ldr r1, _0807AF18 @ =_0807AF1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807AF18: .4byte _0807AF1C
- .align 2, 0
-_0807AF1C:
- .4byte _0807AF44
- .4byte _0807AF4C
- .4byte _0807AF54
- .4byte _0807AF5C
- .4byte _0807AF64
- .4byte _0807AF6C
- .4byte _0807AF74
- .4byte _0807AF7C
- .4byte _0807AF84
- .4byte _0807AF8C
-_0807AF44:
- movs r0, 0x1
- bl SetWeather
- b _0807AF92
-_0807AF4C:
- movs r0, 0x2
- bl SetWeather
- b _0807AF92
-_0807AF54:
- movs r0, 0x3
- bl SetWeather
- b _0807AF92
-_0807AF5C:
- movs r0, 0x4
- bl SetWeather
- b _0807AF92
-_0807AF64:
- movs r0, 0x5
- bl SetWeather
- b _0807AF92
-_0807AF6C:
- movs r0, 0x6
- bl SetWeather
- b _0807AF92
-_0807AF74:
- movs r0, 0x9
- bl SetWeather
- b _0807AF92
-_0807AF7C:
- movs r0, 0x7
- bl SetWeather
- b _0807AF92
-_0807AF84:
- movs r0, 0x8
- bl SetWeather
- b _0807AF92
-_0807AF8C:
- movs r0, 0xB
- bl SetWeather
-_0807AF92:
- pop {r0}
- bx r0
- thumb_func_end sub_807AF00
-
- thumb_func_start GetCurrentWeather
-GetCurrentWeather: @ 807AF98
- ldr r0, _0807AFA4 @ =gUnknown_2037F34
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807AFA4: .4byte gUnknown_2037F34
- thumb_func_end GetCurrentWeather
-
- thumb_func_start SetRainStrengthFromSoundEffect
-SetRainStrengthFromSoundEffect: @ 807AFA8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0807AFC8 @ =gUnknown_2037F34
- ldr r3, _0807AFCC @ =0x000006c6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0807AFFA
- cmp r2, 0x4C
- beq _0807AFE0
- cmp r2, 0x4C
- bgt _0807AFD0
- cmp r2, 0x4A
- beq _0807AFEC
- b _0807AFFA
- .align 2, 0
-_0807AFC8: .4byte gUnknown_2037F34
-_0807AFCC: .4byte 0x000006c6
-_0807AFD0:
- cmp r2, 0x4E
- bne _0807AFFA
- ldr r0, _0807AFDC @ =0x000006dd
- adds r1, r0
- movs r0, 0
- b _0807AFF2
- .align 2, 0
-_0807AFDC: .4byte 0x000006dd
-_0807AFE0:
- ldr r3, _0807AFE8 @ =0x000006dd
- adds r1, r3
- movs r0, 0x1
- b _0807AFF2
- .align 2, 0
-_0807AFE8: .4byte 0x000006dd
-_0807AFEC:
- ldr r0, _0807B000 @ =0x000006dd
- adds r1, r0
- movs r0, 0x2
-_0807AFF2:
- strb r0, [r1]
- adds r0, r2, 0
- bl PlaySE
-_0807AFFA:
- pop {r0}
- bx r0
- .align 2, 0
-_0807B000: .4byte 0x000006dd
- thumb_func_end SetRainStrengthFromSoundEffect
-
- thumb_func_start PlayRainStoppingSoundEffect
-PlayRainStoppingSoundEffect: @ 807B004
- push {lr}
- bl IsSpecialSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0807B042
- ldr r0, _0807B02C @ =gUnknown_2037F34
- ldr r1, _0807B030 @ =0x000006dd
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807B034
- cmp r0, 0x1
- bgt _0807B03C
- cmp r0, 0
- bne _0807B03C
- movs r0, 0x4F
- bl PlaySE
- b _0807B042
- .align 2, 0
-_0807B02C: .4byte gUnknown_2037F34
-_0807B030: .4byte 0x000006dd
-_0807B034:
- movs r0, 0x4D
- bl PlaySE
- b _0807B042
-_0807B03C:
- movs r0, 0x4B
- bl PlaySE
-_0807B042:
- pop {r0}
- bx r0
- thumb_func_end PlayRainStoppingSoundEffect
-
- thumb_func_start sub_807B048
-sub_807B048: @ 807B048
- ldr r0, _0807B054 @ =gUnknown_2037F34
- ldr r1, _0807B058 @ =0x000006d3
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807B054: .4byte gUnknown_2037F34
-_0807B058: .4byte 0x000006d3
- thumb_func_end sub_807B048
-
- thumb_func_start SetWeatherScreenFadeOut
-SetWeatherScreenFadeOut: @ 807B05C
- ldr r0, _0807B068 @ =gUnknown_2037F34
- ldr r1, _0807B06C @ =0x000006c6
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0807B068: .4byte gUnknown_2037F34
-_0807B06C: .4byte 0x000006c6
- thumb_func_end SetWeatherScreenFadeOut
-
- thumb_func_start sub_807B070
-sub_807B070: @ 807B070
- ldr r0, _0807B07C @ =gUnknown_2037F34
- ldr r1, _0807B080 @ =0x000006c6
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0807B07C: .4byte gUnknown_2037F34
-_0807B080: .4byte 0x000006c6
- thumb_func_end sub_807B070
-
- thumb_func_start PreservePaletteInWeather
-PreservePaletteInWeather: @ 807B084
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807B0A8 @ =gUnknown_83C2CC0
- ldr r5, _0807B0AC @ =gUnknown_2038684
- adds r1, r5, 0
- movs r2, 0x10
- bl CpuSet
- adds r4, r5
- movs r0, 0
- strb r0, [r4]
- ldr r0, _0807B0B0 @ =gUnknown_20386A4
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B0A8: .4byte gUnknown_83C2CC0
-_0807B0AC: .4byte gUnknown_2038684
-_0807B0B0: .4byte gUnknown_20386A4
- thumb_func_end PreservePaletteInWeather
-
- thumb_func_start ResetPreservedPalettesInWeather
-ResetPreservedPalettesInWeather: @ 807B0B4
- ldr r1, _0807B0BC @ =gUnknown_20386A4
- ldr r0, _0807B0C0 @ =gUnknown_83C2CC0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0807B0BC: .4byte gUnknown_20386A4
-_0807B0C0: .4byte gUnknown_83C2CC0
- thumb_func_end ResetPreservedPalettesInWeather
-
- thumb_func_start sub_807B0C4
-sub_807B0C4: @ 807B0C4
- push {lr}
- adds r1, r0, 0
- adds r3, r2, 0
- ldr r0, _0807B0E8 @ =gUnknown_2037F34
- movs r2, 0xDA
- lsls r2, 3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0807B0F0
- cmp r0, 0xB
- bgt _0807B0EC
- cmp r0, 0x5
- bgt _0807B0FA
- cmp r0, 0x3
- blt _0807B0FA
- b _0807B0F0
- .align 2, 0
-_0807B0E8: .4byte gUnknown_2037F34
-_0807B0EC:
- cmp r0, 0xD
- bne _0807B0FA
-_0807B0F0:
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0x3
- bl sub_8045314
-_0807B0FA:
- pop {r0}
- bx r0
- thumb_func_end sub_807B0C4
-
- thumb_func_start SetSav1Weather
-SetSav1Weather: @ 807B100
- push {r4,r5,lr}
- ldr r4, _0807B12C @ =gSaveBlock1Ptr
- ldr r1, [r4]
- adds r1, 0x2E
- ldrb r5, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl TranslateWeatherNum
- ldr r1, [r4]
- adds r1, 0x2E
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x2E
- ldrb r0, [r0]
- adds r1, r5, 0
- bl UpdateRainCounter
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B12C: .4byte gSaveBlock1Ptr
- thumb_func_end SetSav1Weather
-
- thumb_func_start sav1_get_weather_probably
-sav1_get_weather_probably: @ 807B130
- ldr r0, _0807B13C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- adds r0, 0x2E
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0807B13C: .4byte gSaveBlock1Ptr
- thumb_func_end sav1_get_weather_probably
-
- thumb_func_start SetSav1WeatherFromCurrMapHeader
-SetSav1WeatherFromCurrMapHeader: @ 807B140
- push {r4,r5,lr}
- ldr r4, _0807B16C @ =gSaveBlock1Ptr
- ldr r0, [r4]
- adds r0, 0x2E
- ldrb r5, [r0]
- ldr r0, _0807B170 @ =gMapHeader
- ldrb r0, [r0, 0x16]
- bl TranslateWeatherNum
- ldr r1, [r4]
- adds r1, 0x2E
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x2E
- ldrb r0, [r0]
- adds r1, r5, 0
- bl UpdateRainCounter
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B16C: .4byte gSaveBlock1Ptr
-_0807B170: .4byte gMapHeader
- thumb_func_end SetSav1WeatherFromCurrMapHeader
-
- thumb_func_start SetWeather
-SetWeather: @ 807B174
- push {lr}
- bl SetSav1Weather
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl weather_set
- pop {r0}
- bx r0
- thumb_func_end SetWeather
-
- thumb_func_start sub_807B18C
-sub_807B18C: @ 807B18C
- push {lr}
- bl SetSav1Weather
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079D60
- pop {r0}
- bx r0
- thumb_func_end sub_807B18C
-
- thumb_func_start DoCurrentWeather
-DoCurrentWeather: @ 807B1A4
- push {lr}
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl weather_set
- pop {r0}
- bx r0
- thumb_func_end DoCurrentWeather
-
- thumb_func_start sub_807B1B8
-sub_807B1B8: @ 807B1B8
- push {lr}
- bl sav1_get_weather_probably
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079D60
- pop {r0}
- bx r0
- thumb_func_end sub_807B1B8
-
- thumb_func_start TranslateWeatherNum
-TranslateWeatherNum: @ 807B1CC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _0807B294
- lsls r0, 2
- ldr r1, _0807B1E0 @ =_0807B1E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807B1E0: .4byte _0807B1E4
- .align 2, 0
-_0807B1E4:
- .4byte _0807B294
- .4byte _0807B23C
- .4byte _0807B240
- .4byte _0807B244
- .4byte _0807B248
- .4byte _0807B24C
- .4byte _0807B250
- .4byte _0807B254
- .4byte _0807B258
- .4byte _0807B25C
- .4byte _0807B260
- .4byte _0807B264
- .4byte _0807B268
- .4byte _0807B26C
- .4byte _0807B270
- .4byte _0807B294
- .4byte _0807B294
- .4byte _0807B294
- .4byte _0807B294
- .4byte _0807B294
- .4byte _0807B274
- .4byte _0807B27C
-_0807B23C:
- movs r0, 0x1
- b _0807B296
-_0807B240:
- movs r0, 0x2
- b _0807B296
-_0807B244:
- movs r0, 0x3
- b _0807B296
-_0807B248:
- movs r0, 0x4
- b _0807B296
-_0807B24C:
- movs r0, 0x5
- b _0807B296
-_0807B250:
- movs r0, 0x6
- b _0807B296
-_0807B254:
- movs r0, 0x7
- b _0807B296
-_0807B258:
- movs r0, 0x8
- b _0807B296
-_0807B25C:
- movs r0, 0x9
- b _0807B296
-_0807B260:
- movs r0, 0xA
- b _0807B296
-_0807B264:
- movs r0, 0xB
- b _0807B296
-_0807B268:
- movs r0, 0xC
- b _0807B296
-_0807B26C:
- movs r0, 0xD
- b _0807B296
-_0807B270:
- movs r0, 0xE
- b _0807B296
-_0807B274:
- ldr r1, _0807B278 @ =gUnknown_83C65C0
- b _0807B27E
- .align 2, 0
-_0807B278: .4byte gUnknown_83C65C0
-_0807B27C:
- ldr r1, _0807B28C @ =gUnknown_83C65C4
-_0807B27E:
- ldr r0, _0807B290 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- adds r0, 0x2F
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- b _0807B296
- .align 2, 0
-_0807B28C: .4byte gUnknown_83C65C4
-_0807B290: .4byte gSaveBlock1Ptr
-_0807B294:
- movs r0, 0
-_0807B296:
- pop {r1}
- bx r1
- thumb_func_end TranslateWeatherNum
-
- thumb_func_start UpdateWeatherPerDay
-UpdateWeatherPerDay: @ 807B29C
- lsls r0, 16
- ldr r1, _0807B2B8 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- adds r2, 0x2F
- lsrs r0, 16
- ldrb r1, [r2]
- adds r0, r1
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- strb r1, [r2]
- bx lr
- .align 2, 0
-_0807B2B8: .4byte gSaveBlock1Ptr
- thumb_func_end UpdateWeatherPerDay
-
- thumb_func_start UpdateRainCounter
-UpdateRainCounter: @ 807B2BC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r0, 24
- cmp r0, r1
- beq _0807B2D6
- cmp r2, 0x3
- beq _0807B2D0
- cmp r2, 0x5
- bne _0807B2D6
-_0807B2D0:
- movs r0, 0x28
- bl IncrementGameStat
-_0807B2D6:
- pop {r0}
- bx r0
- thumb_func_end UpdateRainCounter
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s
deleted file mode 100644
index decfe4078..000000000
--- a/asm/field_weather_effects.s
+++ /dev/null
@@ -1,5240 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Clouds_InitVars
-Clouds_InitVars: @ 807B2DC
- push {lr}
- ldr r0, _0807B314 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r2, _0807B318 @ =0x000006c1
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0807B31C @ =0x000006c2
- adds r3, r0, r1
- movs r1, 0x14
- strb r1, [r3]
- ldr r3, _0807B320 @ =0x000006d2
- adds r1, r0, r3
- strb r2, [r1]
- subs r3, 0x6
- adds r1, r0, r3
- strh r2, [r1]
- ldr r1, _0807B324 @ =0x000006de
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807B310
- movs r0, 0
- movs r1, 0x10
- bl Weather_SetBlendCoeffs
-_0807B310:
- pop {r0}
- bx r0
- .align 2, 0
-_0807B314: .4byte gUnknown_83C2BBC
-_0807B318: .4byte 0x000006c1
-_0807B31C: .4byte 0x000006c2
-_0807B320: .4byte 0x000006d2
-_0807B324: .4byte 0x000006de
- thumb_func_end Clouds_InitVars
-
- thumb_func_start Clouds_InitAll
-Clouds_InitAll: @ 807B328
- push {r4,lr}
- bl Clouds_InitVars
- ldr r0, _0807B350 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B354 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807B348
- adds r4, r1, r2
-_0807B33E:
- bl Clouds_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807B33E
-_0807B348:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B350: .4byte gUnknown_83C2BBC
-_0807B354: .4byte 0x000006d2
- thumb_func_end Clouds_InitAll
-
- thumb_func_start Clouds_Main
-Clouds_Main: @ 807B358
- push {r4,r5,lr}
- ldr r0, _0807B374 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807B378 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807B388
- cmp r0, 0x1
- bgt _0807B37C
- cmp r0, 0
- beq _0807B382
- b _0807B3AC
- .align 2, 0
-_0807B374: .4byte gUnknown_83C2BBC
-_0807B378: .4byte 0x000006cc
-_0807B37C:
- cmp r0, 0x2
- beq _0807B394
- b _0807B3AC
-_0807B382:
- bl CreateCloudSprites
- b _0807B3A6
-_0807B388:
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x1
- bl Weather_SetTargetBlendCoeffs
- b _0807B3A6
-_0807B394:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807B3AC
- ldr r0, _0807B3B4 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807B3A6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807B3AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B3B4: .4byte 0x000006d2
- thumb_func_end Clouds_Main
-
- thumb_func_start Clouds_Finish
-Clouds_Finish: @ 807B3B8
- push {r4,lr}
- ldr r0, _0807B3D0 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807B3D4 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _0807B3D8
- cmp r0, 0x1
- beq _0807B3E4
- movs r0, 0
- b _0807B3FA
- .align 2, 0
-_0807B3D0: .4byte gUnknown_83C2BBC
-_0807B3D4: .4byte 0x000006ce
-_0807B3D8:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl Weather_SetTargetBlendCoeffs
- b _0807B3F2
-_0807B3E4:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807B3F8
- bl sub_807B504
-_0807B3F2:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807B3F8:
- movs r0, 0x1
-_0807B3FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Clouds_Finish
-
- thumb_func_start Weather2_InitVars
-Weather2_InitVars: @ 807B400
- ldr r0, _0807B418 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807B41C @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0
- strb r0, [r2]
- ldr r0, _0807B420 @ =0x000006c2
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0807B418: .4byte gUnknown_83C2BBC
-_0807B41C: .4byte 0x000006c1
-_0807B420: .4byte 0x000006c2
- thumb_func_end Weather2_InitVars
-
- thumb_func_start Weather2_InitAll
-Weather2_InitAll: @ 807B424
- push {lr}
- bl Weather2_InitVars
- pop {r0}
- bx r0
- thumb_func_end Weather2_InitAll
-
- thumb_func_start nullsub_48
-nullsub_48: @ 807B430
- bx lr
- thumb_func_end nullsub_48
-
- thumb_func_start sub_807B434
-sub_807B434: @ 807B434
- movs r0, 0
- bx lr
- thumb_func_end sub_807B434
-
- thumb_func_start CreateCloudSprites
-CreateCloudSprites: @ 807B438
- push {r4,r5,lr}
- ldr r0, _0807B4B0 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807B4B4 @ =0x000006de
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0807B4F4
- ldr r0, _0807B4B8 @ =gUnknown_83C65D4
- bl LoadSpriteSheet
- ldr r0, _0807B4BC @ =gUnknown_83C2D00
- bl sub_807ABC0
- movs r5, 0
-_0807B456:
- ldr r0, _0807B4C0 @ =gUnknown_83C65F0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _0807B4CC
- ldr r0, _0807B4B0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- lsls r2, r5, 2
- movs r0, 0xFA
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- lsls r4, r3, 4
- adds r4, r3
- lsls r4, 2
- ldr r0, _0807B4C4 @ =gSprites
- adds r4, r0
- str r4, [r1]
- ldr r0, _0807B4C8 @ =gUnknown_83C65C8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r2, 0x2]
- adds r1, 0x7
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl SetSpritePosToMapCoords
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- b _0807B4DE
- .align 2, 0
-_0807B4B0: .4byte gUnknown_83C2BBC
-_0807B4B4: .4byte 0x000006de
-_0807B4B8: .4byte gUnknown_83C65D4
-_0807B4BC: .4byte gUnknown_83C2D00
-_0807B4C0: .4byte gUnknown_83C65F0
-_0807B4C4: .4byte gSprites
-_0807B4C8: .4byte gUnknown_83C65C8
-_0807B4CC:
- ldr r0, _0807B4FC @ =gUnknown_83C2BBC
- ldr r1, [r0]
- lsls r0, r5, 2
- movs r2, 0xFA
- lsls r2, 1
- adds r1, r2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807B4DE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x2
- bls _0807B456
- ldr r0, _0807B4FC @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807B500 @ =0x000006de
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807B4F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B4FC: .4byte gUnknown_83C2BBC
-_0807B500: .4byte 0x000006de
- thumb_func_end CreateCloudSprites
-
- thumb_func_start sub_807B504
-sub_807B504: @ 807B504
- push {r4,r5,lr}
- ldr r0, _0807B550 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B554 @ =0x000006de
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807B548
- movs r4, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r1, r0
-_0807B51C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807B52A
- bl DestroySprite
-_0807B52A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _0807B51C
- movs r0, 0x90
- lsls r0, 5
- bl FreeSpriteTilesByTag
- ldr r0, _0807B550 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807B554 @ =0x000006de
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807B548:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B550: .4byte gUnknown_83C2BBC
-_0807B554: .4byte 0x000006de
- thumb_func_end sub_807B504
-
- thumb_func_start sub_807B558
-sub_807B558: @ 807B558
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0
- beq _0807B570
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
-_0807B570:
- pop {r0}
- bx r0
- thumb_func_end sub_807B558
-
- thumb_func_start Drought_InitVars
-Drought_InitVars: @ 807B574
- ldr r0, _0807B598 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807B59C @ =0x000006cc
- adds r3, r1, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r3]
- ldr r3, _0807B5A0 @ =0x000006d2
- adds r0, r1, r3
- strb r2, [r0]
- subs r3, 0x11
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0807B5A4 @ =0x000006c2
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_0807B598: .4byte gUnknown_83C2BBC
-_0807B59C: .4byte 0x000006cc
-_0807B5A0: .4byte 0x000006d2
-_0807B5A4: .4byte 0x000006c2
- thumb_func_end Drought_InitVars
-
- thumb_func_start Drought_InitAll
-Drought_InitAll: @ 807B5A8
- push {r4,lr}
- bl Drought_InitVars
- ldr r0, _0807B5D0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B5D4 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807B5C8
- adds r4, r1, r2
-_0807B5BE:
- bl Drought_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807B5BE
-_0807B5C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B5D0: .4byte gUnknown_83C2BBC
-_0807B5D4: .4byte 0x000006d2
- thumb_func_end Drought_InitAll
-
- thumb_func_start Drought_Main
-Drought_Main: @ 807B5D8
- push {lr}
- ldr r1, _0807B5F4 @ =gUnknown_83C2BBC
- ldr r0, [r1]
- ldr r2, _0807B5F8 @ =0x000006cc
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0807B6B4
- lsls r0, 2
- ldr r1, _0807B5FC @ =_0807B600
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807B5F4: .4byte gUnknown_83C2BBC
-_0807B5F8: .4byte 0x000006cc
-_0807B5FC: .4byte _0807B600
- .align 2, 0
-_0807B600:
- .4byte _0807B614
- .4byte _0807B630
- .4byte _0807B648
- .4byte _0807B664
- .4byte _0807B67C
-_0807B614:
- ldr r1, [r2]
- ldr r2, _0807B628 @ =0x000006c6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807B6B8
- ldr r0, _0807B62C @ =0x000006cc
- adds r1, r0
- b _0807B69C
- .align 2, 0
-_0807B628: .4byte 0x000006c6
-_0807B62C: .4byte 0x000006cc
-_0807B630:
- bl sub_807ABF4
- ldr r0, _0807B640 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B644 @ =0x000006cc
- adds r1, r2
- b _0807B69C
- .align 2, 0
-_0807B640: .4byte gUnknown_83C2BBC
-_0807B644: .4byte 0x000006cc
-_0807B648:
- bl sub_807AC14
- lsls r0, 24
- cmp r0, 0
- bne _0807B6B8
- ldr r0, _0807B65C @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807B660 @ =0x000006cc
- adds r1, r0
- b _0807B69C
- .align 2, 0
-_0807B65C: .4byte gUnknown_83C2BBC
-_0807B660: .4byte 0x000006cc
-_0807B664:
- bl sub_807AC60
- ldr r0, _0807B674 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B678 @ =0x000006cc
- adds r1, r2
- b _0807B69C
- .align 2, 0
-_0807B674: .4byte gUnknown_83C2BBC
-_0807B678: .4byte 0x000006cc
-_0807B67C:
- bl sub_807AC98
- ldr r0, _0807B6A4 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r1, _0807B6A8 @ =0x0000073c
- adds r0, r2, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x6
- bne _0807B6B8
- ldr r0, _0807B6AC @ =0x000006d2
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807B6B0 @ =0x000006cc
- adds r1, r2, r0
-_0807B69C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807B6B8
- .align 2, 0
-_0807B6A4: .4byte gUnknown_83C2BBC
-_0807B6A8: .4byte 0x0000073c
-_0807B6AC: .4byte 0x000006d2
-_0807B6B0: .4byte 0x000006cc
-_0807B6B4:
- bl sub_807AC98
-_0807B6B8:
- pop {r0}
- bx r0
- thumb_func_end Drought_Main
-
- thumb_func_start sub_807B6BC
-sub_807B6BC: @ 807B6BC
- movs r0, 0
- bx lr
- thumb_func_end sub_807B6BC
-
- thumb_func_start StartDroughtWeatherBlend
-StartDroughtWeatherBlend: @ 807B6C0
- push {lr}
- ldr r0, _0807B6D0 @ =task50_0807B6D4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0807B6D0: .4byte task50_0807B6D4
- thumb_func_end StartDroughtWeatherBlend
-
- thumb_func_start task50_0807B6D4
-task50_0807B6D4: @ 807B6D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807B6F8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0807B7C2
- lsls r0, 2
- ldr r1, _0807B6FC @ =_0807B700
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807B6F8: .4byte gTasks
-_0807B6FC: .4byte _0807B700
- .align 2, 0
-_0807B700:
- .4byte _0807B714
- .4byte _0807B740
- .4byte _0807B768
- .4byte _0807B798
- .4byte _0807B7B8
-_0807B714:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x48
- bl GetGpuReg
- strh r0, [r4, 0xE]
- ldr r1, _0807B764 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0x9E
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0807B740:
- ldrh r0, [r4, 0xA]
- adds r0, 0x3
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0807B752
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_0807B752:
- ldrh r1, [r4, 0xA]
- movs r0, 0x54
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- ble _0807B7C2
- b _0807B7B0
- .align 2, 0
-_0807B764: .4byte 0x00003f3f
-_0807B768:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0807B7C2
- strh r1, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _0807B78E
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0807B78E:
- ldrh r1, [r4, 0xA]
- movs r0, 0x54
- bl SetGpuReg
- b _0807B7C2
-_0807B798:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4, 0xE]
- movs r0, 0x48
- bl SetGpuReg
-_0807B7B0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0807B7C2
-_0807B7B8:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_0807B7C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task50_0807B6D4
-
- thumb_func_start LightRain_InitVars
-LightRain_InitVars: @ 807B7C8
- push {r4,lr}
- ldr r0, _0807B818 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B81C @ =0x000006cc
- adds r0, r1, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- ldr r4, _0807B820 @ =0x000006d2
- adds r0, r1, r4
- strb r3, [r0]
- adds r4, 0x4
- adds r0, r1, r4
- strh r2, [r0]
- ldr r0, _0807B824 @ =0x000006db
- adds r2, r1, r0
- movs r0, 0x8
- strb r0, [r2]
- ldr r2, _0807B828 @ =0x000006dc
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x3
- adds r2, r1, r4
- movs r0, 0xA
- strb r0, [r2]
- ldr r0, _0807B82C @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r2, _0807B830 @ =0x000006c2
- adds r1, r2
- movs r0, 0x14
- strb r0, [r1]
- movs r0, 0x4E
- bl SetRainStrengthFromSoundEffect
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B818: .4byte gUnknown_83C2BBC
-_0807B81C: .4byte 0x000006cc
-_0807B820: .4byte 0x000006d2
-_0807B824: .4byte 0x000006db
-_0807B828: .4byte 0x000006dc
-_0807B82C: .4byte 0x000006c1
-_0807B830: .4byte 0x000006c2
- thumb_func_end LightRain_InitVars
-
- thumb_func_start LightRain_InitAll
-LightRain_InitAll: @ 807B834
- push {r4,lr}
- bl LightRain_InitVars
- ldr r0, _0807B85C @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807B860 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807B854
- adds r4, r1, r2
-_0807B84A:
- bl LightRain_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807B84A
-_0807B854:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B85C: .4byte gUnknown_83C2BBC
-_0807B860: .4byte 0x000006d2
- thumb_func_end LightRain_InitAll
-
- thumb_func_start LightRain_Main
-LightRain_Main: @ 807B864
- push {r4,r5,lr}
- ldr r0, _0807B880 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807B884 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807B894
- cmp r0, 0x1
- bgt _0807B888
- cmp r0, 0
- beq _0807B88E
- b _0807B8B8
- .align 2, 0
-_0807B880: .4byte gUnknown_83C2BBC
-_0807B884: .4byte 0x000006cc
-_0807B888:
- cmp r0, 0x2
- beq _0807B8A0
- b _0807B8B8
-_0807B88E:
- bl LoadRainSpriteSheet
- b _0807B8B2
-_0807B894:
- bl CreateRainSprite
- lsls r0, 24
- cmp r0, 0
- bne _0807B8B8
- b _0807B8B2
-_0807B8A0:
- bl sub_807BD4C
- lsls r0, 24
- cmp r0, 0
- bne _0807B8B8
- ldr r0, _0807B8C0 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807B8B2:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807B8B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B8C0: .4byte 0x000006d2
- thumb_func_end LightRain_Main
-
- thumb_func_start LightRain_Finish
-LightRain_Finish: @ 807B8C4
- push {r4,r5,lr}
- ldr r0, _0807B8E0 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r1, _0807B8E4 @ =0x000006ce
- adds r3, r2, r1
- ldrh r1, [r3]
- adds r4, r0, 0
- cmp r1, 0
- beq _0807B8E8
- cmp r1, 0x1
- beq _0807B91C
- movs r0, 0
- b _0807B94A
- .align 2, 0
-_0807B8E0: .4byte gUnknown_83C2BBC
-_0807B8E4: .4byte 0x000006ce
-_0807B8E8:
- ldr r5, _0807B908 @ =0x000006d1
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807B8FA
- cmp r0, 0x5
- beq _0807B8FA
- cmp r0, 0xD
- bne _0807B910
-_0807B8FA:
- ldr r0, [r4]
- ldr r1, _0807B90C @ =0x000006ce
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- b _0807B94A
- .align 2, 0
-_0807B908: .4byte 0x000006d1
-_0807B90C: .4byte 0x000006ce
-_0807B910:
- ldr r4, _0807B93C @ =0x000006d9
- adds r0, r2, r4
- strb r1, [r0]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807B91C:
- bl sub_807BD4C
- lsls r0, 24
- cmp r0, 0
- bne _0807B948
- bl DestroyRainSprites
- ldr r0, _0807B940 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r5, _0807B944 @ =0x000006ce
- adds r1, r5
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _0807B94A
- .align 2, 0
-_0807B93C: .4byte 0x000006d9
-_0807B940: .4byte gUnknown_83C2BBC
-_0807B944: .4byte 0x000006ce
-_0807B948:
- movs r0, 0x1
-_0807B94A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end LightRain_Finish
-
- thumb_func_start sub_807B950
-sub_807B950: @ 807B950
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0807B964
- ldr r0, _0807BA08 @ =0x00000169
- strh r0, [r7, 0x30]
-_0807B964:
- movs r2, 0x30
- ldrsh r1, [r7, r2]
- ldr r0, _0807BA0C @ =0x41c64e6d
- muls r0, r1
- ldr r3, _0807BA10 @ =0x00003039
- adds r0, r3
- lsls r0, 1
- lsrs r0, 17
- movs r1, 0x96
- lsls r1, 2
- bl __umodsi3
- movs r1, 0
- mov r8, r1
- strh r0, [r7, 0x30]
- ldr r1, _0807BA14 @ =gUnknown_83C66C4
- ldr r0, _0807BA18 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r2, _0807BA1C @ =0x000006dc
- adds r5, r2
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldrh r6, [r0]
- movs r3, 0x30
- ldrsh r0, [r7, r3]
- movs r1, 0x1E
- bl __modsi3
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r0, r4, 3
- strh r0, [r7, 0x32]
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- lsls r4, 7
- strh r4, [r7, 0x32]
- asrs r0, 9
- strh r0, [r7, 0x34]
- ldr r2, _0807BA20 @ =gUnknown_83C66BC
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- muls r1, r6
- subs r4, r1
- strh r4, [r7, 0x32]
- ldrb r1, [r5]
- lsls r1, 2
- adds r2, 0x2
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- muls r1, r6
- subs r0, r1
- strh r0, [r7, 0x34]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- mov r3, r8
- strh r3, [r7, 0x36]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- strh r6, [r7, 0x2E]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BA08: .4byte 0x00000169
-_0807BA0C: .4byte 0x41c64e6d
-_0807BA10: .4byte 0x00003039
-_0807BA14: .4byte gUnknown_83C66C4
-_0807BA18: .4byte gUnknown_83C2BBC
-_0807BA1C: .4byte 0x000006dc
-_0807BA20: .4byte gUnknown_83C66BC
- thumb_func_end sub_807B950
-
- thumb_func_start sub_807BA24
-sub_807BA24: @ 807BA24
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0807BB00
- ldr r3, _0807BA98 @ =gUnknown_83C66BC
- ldr r4, _0807BA9C @ =gUnknown_83C2BBC
- ldr r2, [r4]
- ldr r0, _0807BAA0 @ =0x000006dc
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0]
- ldrh r0, [r5, 0x32]
- adds r1, r0
- strh r1, [r5, 0x32]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, 0x2
- adds r0, r3
- ldrh r0, [r0]
- ldrh r2, [r5, 0x34]
- adds r0, r2
- strh r0, [r5, 0x34]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x20]
- lsls r0, 16
- asrs r2, r0, 20
- strh r2, [r5, 0x22]
- movs r3, 0x38
- ldrsh r0, [r5, r3]
- adds r3, r4, 0
- cmp r0, 0
- beq _0807BAA4
- adds r0, r1, 0
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _0807BAA4
- adds r1, r2, 0
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _0807BAA4
- cmp r1, 0xB0
- bgt _0807BAA4
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _0807BAAE
- .align 2, 0
-_0807BA98: .4byte gUnknown_83C66BC
-_0807BA9C: .4byte gUnknown_83C2BBC
-_0807BAA0: .4byte 0x000006dc
-_0807BAA4:
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_0807BAAE:
- strb r1, [r0]
- adds r4, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0807BB20
- ldr r0, [r3]
- ldr r1, _0807BAF4 @ =0x000006dc
- adds r0, r1
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0x1
- strh r0, [r5, 0x36]
- ldr r1, _0807BAF8 @ =gSpriteCoordOffsetX
- ldrh r0, [r5, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldr r1, _0807BAFC @ =gSpriteCoordOffsetY
- ldrh r0, [r5, 0x22]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- b _0807BB20
- .align 2, 0
-_0807BAF4: .4byte 0x000006dc
-_0807BAF8: .4byte gSpriteCoordOffsetX
-_0807BAFC: .4byte gSpriteCoordOffsetY
-_0807BB00:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0807BB20
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_807B950
-_0807BB20:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807BA24
-
- thumb_func_start sub_807BB28
-sub_807BB28: @ 807BB28
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0807BB48
- adds r0, r4, 0
- bl sub_807B950
- ldr r0, _0807BB44 @ =sub_807BA24
- str r0, [r4, 0x1C]
- b _0807BB4C
- .align 2, 0
-_0807BB44: .4byte sub_807BA24
-_0807BB48:
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_0807BB4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807BB28
-
- thumb_func_start sub_807BB54
-sub_807BB54: @ 807BB54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- ldr r2, _0807BBD8 @ =gUnknown_83C66C4
- ldr r0, _0807BBDC @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807BBE0 @ =0x000006dc
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0, r2
- ldrh r1, [r1]
- mov r8, r1
- adds r2, 0x2
- adds r0, r2
- ldrh r4, [r0]
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0807BBE4 @ =0x0000ffff
- cmp r6, r0
- beq _0807BBB2
- adds r5, r0, 0
-_0807BBA2:
- adds r0, r7, 0
- bl sub_807B950
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r5
- bne _0807BBA2
-_0807BBB2:
- cmp r4, r8
- bcs _0807BBE8
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0807BBE4 @ =0x0000ffff
- cmp r4, r0
- beq _0807BBD4
- adds r5, r0, 0
-_0807BBC4:
- adds r0, r7, 0
- bl sub_807BA24
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bne _0807BBC4
-_0807BBD4:
- movs r0, 0
- b _0807BBFC
- .align 2, 0
-_0807BBD8: .4byte gUnknown_83C66C4
-_0807BBDC: .4byte gUnknown_83C2BBC
-_0807BBE0: .4byte 0x000006dc
-_0807BBE4: .4byte 0x0000ffff
-_0807BBE8:
- mov r1, r8
- subs r0, r4, r1
- strh r0, [r7, 0x2E]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_0807BBFC:
- strh r0, [r7, 0x3A]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807BB54
-
- thumb_func_start LoadRainSpriteSheet
-LoadRainSpriteSheet: @ 807BC08
- push {lr}
- ldr r0, _0807BC14 @ =gUnknown_83C66CC
- bl LoadSpriteSheet
- pop {r0}
- bx r0
- .align 2, 0
-_0807BC14: .4byte gUnknown_83C66CC
- thumb_func_end LoadRainSpriteSheet
-
- thumb_func_start CreateRainSprite
-CreateRainSprite: @ 807BC18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0807BCC4 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r0, _0807BCC8 @ =0x000006da
- adds r2, r4, r0
- ldrb r0, [r2]
- cmp r0, 0x18
- bne _0807BC32
- b _0807BD38
-_0807BC32:
- ldrb r7, [r2]
- ldr r0, _0807BCCC @ =gUnknown_83C66A4
- ldr r2, _0807BCD0 @ =gUnknown_83C6608
- lsls r6, r7, 2
- adds r2, r6, r2
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _0807BCE0
- ldr r3, _0807BCD4 @ =gSprites
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strh r0, [r1, 0x38]
- lsls r2, r7, 3
- adds r0, r2, r7
- lsls r0, 4
- adds r0, r7
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0807BCD8 @ =0x00000257
- mov r10, r6
- mov r9, r3
- mov r12, r4
- mov r8, r2
- cmp r0, r1
- ble _0807BC96
- adds r2, r1, 0
-_0807BC7E:
- adds r0, r4, r5
- lsls r0, 2
- ldr r6, _0807BCD4 @ =gSprites
- adds r0, r6
- ldr r3, _0807BCDC @ =0xfffffda8
- ldrh r6, [r0, 0x30]
- adds r1, r3, r6
- strh r1, [r0, 0x30]
- lsls r1, 16
- asrs r1, 16
- cmp r1, r2
- bgt _0807BC7E
-_0807BC96:
- mov r0, r12
- adds r4, r0, r5
- lsls r4, 2
- add r4, r9
- adds r0, r4, 0
- bl sub_807B950
- mov r3, r8
- adds r1, r3, r7
- adds r0, r4, 0
- bl sub_807BB54
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807BCC4 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- add r0, r10
- str r4, [r0]
- b _0807BCE6
- .align 2, 0
-_0807BCC4: .4byte gUnknown_83C2BBC
-_0807BCC8: .4byte 0x000006da
-_0807BCCC: .4byte gUnknown_83C66A4
-_0807BCD0: .4byte gUnknown_83C6608
-_0807BCD4: .4byte gSprites
-_0807BCD8: .4byte 0x00000257
-_0807BCDC: .4byte 0xfffffda8
-_0807BCE0:
- adds r1, r4, r6
- movs r0, 0
- str r0, [r1]
-_0807BCE6:
- ldr r0, _0807BD1C @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r6, _0807BD20 @ =0x000006da
- adds r1, r2, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- bne _0807BD3C
- movs r3, 0
- adds r1, r2, 0
- ldr r5, _0807BD24 @ =sub_807BA24
- ldr r4, _0807BD28 @ =sub_807BB28
-_0807BD04:
- lsls r0, r3, 2
- adds r0, r1, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _0807BD2E
- movs r6, 0x3A
- ldrsh r0, [r2, r6]
- cmp r0, 0
- bne _0807BD2C
- str r5, [r2, 0x1C]
- b _0807BD2E
- .align 2, 0
-_0807BD1C: .4byte gUnknown_83C2BBC
-_0807BD20: .4byte 0x000006da
-_0807BD24: .4byte sub_807BA24
-_0807BD28: .4byte sub_807BB28
-_0807BD2C:
- str r4, [r2, 0x1C]
-_0807BD2E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x17
- bls _0807BD04
-_0807BD38:
- movs r0, 0
- b _0807BD3E
-_0807BD3C:
- movs r0, 0x1
-_0807BD3E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CreateRainSprite
-
- thumb_func_start sub_807BD4C
-sub_807BD4C: @ 807BD4C
- push {r4-r7,lr}
- ldr r0, _0807BD68 @ =gUnknown_83C2BBC
- ldr r3, [r0]
- movs r0, 0xDB
- lsls r0, 3
- adds r4, r3, r0
- ldr r1, _0807BD6C @ =0x000006d9
- adds r5, r3, r1
- ldrb r0, [r4]
- ldrb r7, [r5]
- cmp r0, r7
- bne _0807BD70
- movs r0, 0
- b _0807BDD2
- .align 2, 0
-_0807BD68: .4byte gUnknown_83C2BBC
-_0807BD6C: .4byte 0x000006d9
-_0807BD70:
- ldr r0, _0807BDA8 @ =0x000006d6
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r2]
- ldr r7, _0807BDAC @ =0x000006db
- adds r1, r3, r7
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807BDD0
- strh r6, [r2]
- ldrb r0, [r4]
- adds r1, r0, 0
- ldrb r5, [r5]
- cmp r1, r5
- bcs _0807BDB0
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, r1, 2
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x38]
- b _0807BDD0
- .align 2, 0
-_0807BDA8: .4byte 0x000006d6
-_0807BDAC: .4byte 0x000006db
-_0807BDB0:
- subs r0, 0x1
- strb r0, [r4]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r3, r0
- ldr r0, [r0]
- strh r6, [r0, 0x38]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0807BDD0:
- movs r0, 0x1
-_0807BDD2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807BD4C
-
- thumb_func_start DestroyRainSprites
-DestroyRainSprites: @ 807BDD8
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0807BE20 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r3, _0807BE24 @ =0x000006da
- adds r1, r2, r3
- adds r7, r0, 0
- ldrb r1, [r1]
- cmp r4, r1
- bcs _0807BE0A
- adds r5, r2, 0
- adds r6, r5, r3
-_0807BDF0:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807BDFE
- bl DestroySprite
-_0807BDFE:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0807BDF0
-_0807BE0A:
- ldr r0, [r7]
- ldr r1, _0807BE24 @ =0x000006da
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0807BE28 @ =0x00001206
- bl FreeSpriteTilesByTag
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BE20: .4byte gUnknown_83C2BBC
-_0807BE24: .4byte 0x000006da
-_0807BE28: .4byte 0x00001206
- thumb_func_end DestroyRainSprites
-
- thumb_func_start Snow_InitVars
-Snow_InitVars: @ 807BE2C
- push {r4,lr}
- ldr r0, _0807BE68 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807BE6C @ =0x000006cc
- adds r0, r1, r2
- movs r2, 0
- movs r3, 0
- strh r3, [r0]
- ldr r4, _0807BE70 @ =0x000006d2
- adds r0, r1, r4
- strb r2, [r0]
- ldr r0, _0807BE74 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- subs r4, 0x10
- adds r2, r1, r4
- movs r0, 0x14
- strb r0, [r2]
- ldr r0, _0807BE78 @ =0x000006e5
- adds r2, r1, r0
- movs r0, 0x10
- strb r0, [r2]
- movs r2, 0xDC
- lsls r2, 3
- adds r1, r2
- strh r3, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BE68: .4byte gUnknown_83C2BBC
-_0807BE6C: .4byte 0x000006cc
-_0807BE70: .4byte 0x000006d2
-_0807BE74: .4byte 0x000006c1
-_0807BE78: .4byte 0x000006e5
- thumb_func_end Snow_InitVars
-
- thumb_func_start Snow_InitAll
-Snow_InitAll: @ 807BE7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Snow_InitVars
- ldr r2, _0807BEDC @ =gUnknown_83C2BBC
- ldr r1, [r2]
- ldr r3, _0807BEE0 @ =0x000006d2
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BED2
- mov r8, r2
- adds r7, r1, r3
-_0807BE98:
- bl snowflakes_progress2
- movs r4, 0
- mov r1, r8
- ldr r0, [r1]
- ldr r3, _0807BEE4 @ =0x000006e4
- adds r0, r3
- ldrb r0, [r0]
- cmp r4, r0
- bcs _0807BECC
- ldr r0, _0807BEDC @ =gUnknown_83C2BBC
- ldr r5, [r0]
- adds r6, r5, r3
-_0807BEB2:
- lsls r1, r4, 2
- adds r0, r5, 0
- adds r0, 0x60
- adds r0, r1
- ldr r0, [r0]
- bl sub_807C1AC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0807BEB2
-_0807BECC:
- ldrb r0, [r7]
- cmp r0, 0
- beq _0807BE98
-_0807BED2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BEDC: .4byte gUnknown_83C2BBC
-_0807BEE0: .4byte 0x000006d2
-_0807BEE4: .4byte 0x000006e4
- thumb_func_end Snow_InitAll
-
- thumb_func_start snowflakes_progress2
-snowflakes_progress2: @ 807BEE8
- push {r4,r5,lr}
- ldr r0, _0807BF18 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807BF1C @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- bne _0807BF10
- bl snowflakes_progress
- lsls r0, 24
- cmp r0, 0
- bne _0807BF10
- ldr r0, _0807BF20 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807BF10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BF18: .4byte gUnknown_83C2BBC
-_0807BF1C: .4byte 0x000006cc
-_0807BF20: .4byte 0x000006d2
- thumb_func_end snowflakes_progress2
-
- thumb_func_start Snow_Finish
-Snow_Finish: @ 807BF24
- push {r4,lr}
- ldr r0, _0807BF3C @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r0, _0807BF40 @ =0x000006ce
- adds r3, r2, r0
- ldrh r1, [r3]
- cmp r1, 0
- beq _0807BF44
- cmp r1, 0x1
- beq _0807BF56
- movs r0, 0
- b _0807BF82
- .align 2, 0
-_0807BF3C: .4byte gUnknown_83C2BBC
-_0807BF40: .4byte 0x000006ce
-_0807BF44:
- ldr r4, _0807BF74 @ =0x000006e5
- adds r0, r2, r4
- strb r1, [r0]
- subs r4, 0x5
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807BF56:
- bl snowflakes_progress
- lsls r0, 24
- cmp r0, 0
- bne _0807BF80
- ldr r0, _0807BF78 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807BF7C @ =0x000006ce
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _0807BF82
- .align 2, 0
-_0807BF74: .4byte 0x000006e5
-_0807BF78: .4byte gUnknown_83C2BBC
-_0807BF7C: .4byte 0x000006ce
-_0807BF80:
- movs r0, 0x1
-_0807BF82:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Snow_Finish
-
- thumb_func_start snowflakes_progress
-snowflakes_progress: @ 807BF88
- push {r4,lr}
- ldr r0, _0807BFA4 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807BFA8 @ =0x000006e4
- adds r3, r1, r0
- ldr r4, _0807BFAC @ =0x000006e5
- adds r2, r1, r4
- ldrb r0, [r3]
- ldrb r4, [r2]
- cmp r0, r4
- bne _0807BFB0
- movs r0, 0
- b _0807BFF2
- .align 2, 0
-_0807BFA4: .4byte gUnknown_83C2BBC
-_0807BFA8: .4byte 0x000006e4
-_0807BFAC: .4byte 0x000006e5
-_0807BFB0:
- movs r0, 0xDC
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x24
- bls _0807BFDA
- movs r0, 0
- strh r0, [r1]
- ldrb r0, [r3]
- ldrb r2, [r2]
- cmp r0, r2
- bcs _0807BFD6
- bl snowflake_add
- b _0807BFDA
-_0807BFD6:
- bl snowflake_remove
-_0807BFDA:
- ldr r0, _0807BFF8 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r2, _0807BFFC @ =0x000006e4
- adds r1, r0, r2
- ldr r4, _0807C000 @ =0x000006e5
- adds r0, r4
- ldrb r1, [r1]
- ldrb r0, [r0]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0807BFF2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807BFF8: .4byte gUnknown_83C2BBC
-_0807BFFC: .4byte 0x000006e4
-_0807C000: .4byte 0x000006e5
- thumb_func_end snowflakes_progress
-
- thumb_func_start snowflake_add
-snowflake_add: @ 807C004
- push {r4-r6,lr}
- ldr r0, _0807C058 @ =gUnknown_83C6704
- movs r1, 0
- movs r2, 0
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0807C068
- ldr r0, _0807C05C @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldr r0, _0807C060 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807C064 @ =0x000006e4
- adds r6, r5, r0
- ldrb r0, [r6]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_807C0A4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0x1
- strb r1, [r6]
- lsls r0, 24
- lsrs r0, 22
- adds r5, 0x60
- adds r5, r0
- str r4, [r5]
- movs r0, 0x1
- b _0807C06A
- .align 2, 0
-_0807C058: .4byte gUnknown_83C6704
-_0807C05C: .4byte gSprites
-_0807C060: .4byte gUnknown_83C2BBC
-_0807C064: .4byte 0x000006e4
-_0807C068:
- movs r0, 0
-_0807C06A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end snowflake_add
-
- thumb_func_start snowflake_remove
-snowflake_remove: @ 807C070
- push {lr}
- ldr r0, _0807C084 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807C088 @ =0x000006e4
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _0807C08C
- movs r0, 0
- b _0807C0A0
- .align 2, 0
-_0807C084: .4byte gUnknown_83C2BBC
-_0807C088: .4byte 0x000006e4
-_0807C08C:
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r1, 0x60
- adds r1, r0
- ldr r0, [r1]
- bl DestroySprite
- movs r0, 0x1
-_0807C0A0:
- pop {r1}
- bx r1
- thumb_func_end snowflake_remove
-
- thumb_func_start sub_807C0A4
-sub_807C0A4: @ 807C0A4
- push {r4-r7,lr}
- adds r5, r0, 0
- bl Random
- movs r1, 0x36
- ldrsh r2, [r5, r1]
- lsls r1, r2, 2
- adds r1, r2
- movs r2, 0x7
- ands r1, r2
- lsls r4, r1, 4
- subs r4, r1
- lsls r4, 1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, _0807C148 @ =gSpriteCoordOffsetY
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- movs r2, 0x3
- negs r2, r2
- adds r1, r2, 0
- subs r1, r0
- movs r7, 0
- strh r1, [r5, 0x22]
- ldr r1, _0807C14C @ =gSpriteCoordOffsetX
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- subs r4, r0
- strh r4, [r5, 0x20]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- lsls r0, 7
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r6, r0, 0
- movs r4, 0x3
- ands r4, r6
- lsls r0, r4, 2
- adds r0, r4
- adds r0, 0x40
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- bics r1, r6
- adds r0, r5, 0
- bl StartSpriteAnim
- strh r7, [r5, 0x34]
- movs r0, 0x1
- cmp r4, 0
- bne _0807C134
- movs r0, 0x2
-_0807C134:
- strh r0, [r5, 0x32]
- movs r0, 0x1F
- ands r0, r6
- adds r0, 0xD2
- strh r0, [r5, 0x3A]
- strh r7, [r5, 0x38]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C148: .4byte gSpriteCoordOffsetY
-_0807C14C: .4byte gSpriteCoordOffsetX
- thumb_func_end sub_807C0A4
-
- thumb_func_start sub_807C150
-sub_807C150: @ 807C150
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807C19C @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807C1A0 @ =0x000006e2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x12
- bls _0807C196
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0807C1A4 @ =sub_807C1AC
- str r0, [r3, 0x1C]
- ldr r1, _0807C1A8 @ =gSpriteCoordOffsetY
- adds r0, r3, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0xFA
- subs r1, r0
- movs r2, 0
- strh r1, [r3, 0x22]
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- lsls r0, 7
- strh r0, [r3, 0x2E]
- strh r2, [r4]
-_0807C196:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C19C: .4byte gUnknown_83C2BBC
-_0807C1A0: .4byte 0x000006e2
-_0807C1A4: .4byte sub_807C1AC
-_0807C1A8: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807C150
-
- thumb_func_start sub_807C1AC
-sub_807C1AC: @ 807C1AC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldr r1, _0807C224 @ =gSineTable
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0807C1DE
- adds r0, 0x3F
-_0807C1DE:
- asrs r0, 6
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- adds r0, 0x28
- movs r5, 0
- ldrsb r5, [r0, r5]
- ldrh r0, [r4, 0x20]
- adds r0, r5
- ldr r1, _0807C228 @ =gSpriteCoordOffsetX
- ldrh r1, [r1]
- adds r3, r1, r0
- ldr r2, _0807C22C @ =0x000001ff
- adds r0, r2, 0
- ands r3, r0
- adds r2, r3, 0
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0807C210
- ldr r3, _0807C230 @ =0xffffff00
- adds r0, r3, 0
- orrs r2, r0
- lsls r0, r2, 16
- lsrs r3, r0, 16
-_0807C210:
- lsls r0, r3, 16
- asrs r0, 16
- movs r2, 0x3
- negs r2, r2
- cmp r0, r2
- bge _0807C234
- adds r1, r5
- movs r0, 0xF2
- subs r0, r1
- b _0807C23C
- .align 2, 0
-_0807C224: .4byte gSineTable
-_0807C228: .4byte gSpriteCoordOffsetX
-_0807C22C: .4byte 0x000001ff
-_0807C230: .4byte 0xffffff00
-_0807C234:
- cmp r0, 0xF2
- ble _0807C23E
- adds r0, r1, r5
- subs r0, r2, r0
-_0807C23C:
- strh r0, [r4, 0x20]
-_0807C23E:
- adds r0, r4, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- ldr r1, _0807C27C @ =gSpriteCoordOffsetY
- ldrh r1, [r1]
- adds r2, r1, r0
- movs r0, 0xFF
- ands r2, r0
- adds r0, r2, 0
- subs r0, 0xA4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807C280
- adds r1, r3
- movs r0, 0xFA
- subs r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- lsls r0, 7
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x38]
- movs r0, 0xDC
- strh r0, [r4, 0x3A]
- b _0807C2AC
- .align 2, 0
-_0807C27C: .4byte gSpriteCoordOffsetY
-_0807C280:
- adds r0, r2, 0
- subs r0, 0xF3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807C2AC
- movs r1, 0
- movs r0, 0xA3
- strh r0, [r4, 0x22]
- lsls r0, 7
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x38]
- movs r0, 0xDC
- strh r0, [r4, 0x3A]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807C2E0 @ =sub_807C150
- str r0, [r4, 0x1C]
-_0807C2AC:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x3A
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0807C2D8
- adds r0, r4, 0
- bl sub_807C0A4
- movs r0, 0xFA
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0807C2E0 @ =sub_807C150
- str r0, [r4, 0x1C]
-_0807C2D8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C2E0: .4byte sub_807C150
- thumb_func_end sub_807C1AC
-
- thumb_func_start sub_807C2E4
-sub_807C2E4: @ 807C2E4
- push {r4,r5,lr}
- ldr r0, _0807C33C @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C340 @ =0x000006cc
- adds r0, r1, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- ldr r5, _0807C344 @ =0x000006d2
- adds r4, r1, r5
- strb r3, [r4]
- adds r5, 0x4
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _0807C348 @ =0x000006db
- adds r2, r1, r0
- movs r0, 0x4
- strb r0, [r2]
- ldr r2, _0807C34C @ =0x000006dc
- adds r0, r1, r2
- strb r3, [r0]
- adds r5, 0x3
- adds r2, r1, r5
- movs r0, 0x10
- strb r0, [r2]
- ldr r0, _0807C350 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- subs r5, 0x17
- adds r2, r1, r5
- movs r0, 0x14
- strb r0, [r2]
- strb r3, [r4]
- ldr r0, _0807C354 @ =0x000006ed
- adds r1, r0
- strb r3, [r1]
- movs r0, 0x4A
- bl SetRainStrengthFromSoundEffect
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C33C: .4byte gUnknown_83C2BBC
-_0807C340: .4byte 0x000006cc
-_0807C344: .4byte 0x000006d2
-_0807C348: .4byte 0x000006db
-_0807C34C: .4byte 0x000006dc
-_0807C350: .4byte 0x000006c1
-_0807C354: .4byte 0x000006ed
- thumb_func_end sub_807C2E4
-
- thumb_func_start sub_807C358
-sub_807C358: @ 807C358
- push {r4,lr}
- bl sub_807C2E4
- ldr r0, _0807C380 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C384 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C378
- adds r4, r1, r2
-_0807C36E:
- bl Rain_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807C36E
-_0807C378:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C380: .4byte gUnknown_83C2BBC
-_0807C384: .4byte 0x000006d2
- thumb_func_end sub_807C358
-
- thumb_func_start sub_807C388
-sub_807C388: @ 807C388
- push {r4,r5,lr}
- ldr r0, _0807C3DC @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C3E0 @ =0x000006cc
- adds r0, r1, r2
- movs r4, 0
- movs r2, 0
- strh r2, [r0]
- ldr r5, _0807C3E4 @ =0x000006d2
- adds r3, r1, r5
- strb r4, [r3]
- adds r5, 0x4
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _0807C3E8 @ =0x000006db
- adds r2, r1, r0
- movs r0, 0x4
- strb r0, [r2]
- adds r5, 0x6
- adds r2, r1, r5
- movs r0, 0x1
- strb r0, [r2]
- ldr r0, _0807C3EC @ =0x000006d9
- adds r2, r1, r0
- movs r0, 0x18
- strb r0, [r2]
- subs r5, 0x1B
- adds r2, r1, r5
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, _0807C3F0 @ =0x000006c2
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- strb r4, [r3]
- movs r0, 0x4C
- bl SetRainStrengthFromSoundEffect
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C3DC: .4byte gUnknown_83C2BBC
-_0807C3E0: .4byte 0x000006cc
-_0807C3E4: .4byte 0x000006d2
-_0807C3E8: .4byte 0x000006db
-_0807C3EC: .4byte 0x000006d9
-_0807C3F0: .4byte 0x000006c2
- thumb_func_end sub_807C388
-
- thumb_func_start sub_807C3F4
-sub_807C3F4: @ 807C3F4
- push {r4,lr}
- bl sub_807C388
- ldr r0, _0807C41C @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C420 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C414
- adds r4, r1, r2
-_0807C40A:
- bl Rain_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807C40A
-_0807C414:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C41C: .4byte gUnknown_83C2BBC
-_0807C420: .4byte 0x000006d2
- thumb_func_end sub_807C3F4
-
- thumb_func_start Rain_Main
-Rain_Main: @ 807C424
- push {r4,r5,lr}
- bl UpdateThunderSound
- ldr r0, _0807C444 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807C448 @ =0x000006cc
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xE
- bls _0807C43A
- b _0807C79A
-_0807C43A:
- lsls r0, 2
- ldr r1, _0807C44C @ =_0807C450
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807C444: .4byte gUnknown_83C2BBC
-_0807C448: .4byte 0x000006cc
-_0807C44C: .4byte _0807C450
- .align 2, 0
-_0807C450:
- .4byte _0807C48C
- .4byte _0807C4A8
- .4byte _0807C4CC
- .4byte _0807C4FC
- .4byte _0807C520
- .4byte _0807C550
- .4byte _0807C580
- .4byte _0807C5AC
- .4byte _0807C5CA
- .4byte _0807C628
- .4byte _0807C6AC
- .4byte _0807C6D4
- .4byte _0807C704
- .4byte _0807C748
- .4byte _0807C77C
-_0807C48C:
- bl LoadRainSpriteSheet
- ldr r0, _0807C4A0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C4A4 @ =0x000006cc
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807C798
- .align 2, 0
-_0807C4A0: .4byte gUnknown_83C2BBC
-_0807C4A4: .4byte 0x000006cc
-_0807C4A8:
- bl CreateRainSprite
- lsls r0, 24
- cmp r0, 0
- beq _0807C4B4
- b _0807C79A
-_0807C4B4:
- ldr r0, _0807C4C4 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r3, _0807C4C8 @ =0x000006cc
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807C798
- .align 2, 0
-_0807C4C4: .4byte gUnknown_83C2BBC
-_0807C4C8: .4byte 0x000006cc
-_0807C4CC:
- bl sub_807BD4C
- lsls r0, 24
- cmp r0, 0
- beq _0807C4D8
- b _0807C79A
-_0807C4D8:
- ldr r0, _0807C4F0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807C4F4 @ =0x000006d2
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldr r2, _0807C4F8 @ =0x000006cc
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807C798
- .align 2, 0
-_0807C4F0: .4byte gUnknown_83C2BBC
-_0807C4F4: .4byte 0x000006d2
-_0807C4F8: .4byte 0x000006cc
-_0807C4FC:
- ldr r0, _0807C514 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r3, _0807C518 @ =0x000006c6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C50C
- b _0807C79A
-_0807C50C:
- ldr r0, _0807C51C @ =0x000006cc
- adds r1, r0
- movs r0, 0x6
- b _0807C798
- .align 2, 0
-_0807C514: .4byte gUnknown_83C2BBC
-_0807C518: .4byte 0x000006c6
-_0807C51C: .4byte 0x000006cc
-_0807C520:
- ldr r0, _0807C570 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r2, _0807C574 @ =0x000006ea
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r5, 0xB4
- lsls r5, 1
- adds r1, r5, 0
- bl __umodsi3
- adds r0, r5
- ldr r3, _0807C578 @ =0x000006e6
- adds r1, r4, r3
- strh r0, [r1]
- ldr r0, _0807C57C @ =0x000006cc
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807C550:
- ldr r0, _0807C570 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r3, _0807C578 @ =0x000006e6
- adds r1, r2, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0807C566
- b _0807C79A
-_0807C566:
- ldr r0, _0807C57C @ =0x000006cc
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807C798
- .align 2, 0
-_0807C570: .4byte gUnknown_83C2BBC
-_0807C574: .4byte 0x000006ea
-_0807C578: .4byte 0x000006e6
-_0807C57C: .4byte 0x000006cc
-_0807C580:
- ldr r0, _0807C5A0 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r1, _0807C5A4 @ =0x000006ea
- adds r0, r4, r1
- movs r5, 0x1
- strb r5, [r0]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- ldr r2, _0807C5A8 @ =0x000006eb
- adds r1, r4, r2
- strb r0, [r1]
- b _0807C608
- .align 2, 0
-_0807C5A0: .4byte gUnknown_83C2BBC
-_0807C5A4: .4byte 0x000006ea
-_0807C5A8: .4byte 0x000006eb
-_0807C5AC:
- bl Random
- ldr r1, _0807C614 @ =gUnknown_83C2BBC
- ldr r2, [r1]
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x1
- ldr r3, _0807C618 @ =0x000006ec
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0807C61C @ =0x000006cc
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0807C5CA:
- movs r0, 0x13
- bl sub_807A790
- ldr r0, _0807C614 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C620 @ =0x000006eb
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C5EE
- ldr r3, _0807C618 @ =0x000006ec
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0807C5EE
- movs r0, 0x14
- bl SetThunderCounter
-_0807C5EE:
- bl Random
- ldr r1, _0807C614 @ =gUnknown_83C2BBC
- ldr r4, [r1]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- ldr r2, _0807C624 @ =0x000006e6
- adds r1, r4, r2
- strh r0, [r1]
-_0807C608:
- ldr r3, _0807C61C @ =0x000006cc
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807C79A
- .align 2, 0
-_0807C614: .4byte gUnknown_83C2BBC
-_0807C618: .4byte 0x000006ec
-_0807C61C: .4byte 0x000006cc
-_0807C620: .4byte 0x000006eb
-_0807C624: .4byte 0x000006e6
-_0807C628:
- ldr r0, _0807C674 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r0, _0807C678 @ =0x000006e6
- adds r5, r4, r0
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0807C63E
- b _0807C79A
-_0807C63E:
- movs r0, 0x3
- bl sub_807A790
- ldr r2, _0807C67C @ =0x000006ea
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r3, _0807C680 @ =0x000006ec
- adds r1, r4, r3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _0807C688
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r0, 0x3C
- strh r0, [r5]
- ldr r0, _0807C684 @ =0x000006cc
- adds r1, r4, r0
- movs r0, 0xA
- b _0807C798
- .align 2, 0
-_0807C674: .4byte gUnknown_83C2BBC
-_0807C678: .4byte 0x000006e6
-_0807C67C: .4byte 0x000006ea
-_0807C680: .4byte 0x000006ec
-_0807C684: .4byte 0x000006cc
-_0807C688:
- ldr r1, _0807C698 @ =0x000006eb
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C6A0
- ldr r2, _0807C69C @ =0x000006cc
- adds r1, r4, r2
- b _0807C796
- .align 2, 0
-_0807C698: .4byte 0x000006eb
-_0807C69C: .4byte 0x000006cc
-_0807C6A0:
- ldr r3, _0807C6A8 @ =0x000006cc
- adds r1, r4, r3
- movs r0, 0xB
- b _0807C798
- .align 2, 0
-_0807C6A8: .4byte 0x000006cc
-_0807C6AC:
- ldr r0, _0807C6C8 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r0, _0807C6CC @ =0x000006e6
- adds r1, r2, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0807C79A
- ldr r3, _0807C6D0 @ =0x000006cc
- adds r1, r2, r3
- movs r0, 0x8
- b _0807C798
- .align 2, 0
-_0807C6C8: .4byte gUnknown_83C2BBC
-_0807C6CC: .4byte 0x000006e6
-_0807C6D0: .4byte 0x000006cc
-_0807C6D4:
- bl Random
- ldr r1, _0807C6F8 @ =gUnknown_83C2BBC
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r0, 0x3C
- ldr r3, _0807C6FC @ =0x000006e6
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _0807C700 @ =0x000006cc
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- b _0807C79A
- .align 2, 0
-_0807C6F8: .4byte gUnknown_83C2BBC
-_0807C6FC: .4byte 0x000006e6
-_0807C700: .4byte 0x000006cc
-_0807C704:
- ldr r0, _0807C73C @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r1, _0807C740 @ =0x000006e6
- adds r4, r5, r1
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0807C79A
- movs r0, 0x64
- bl SetThunderCounter
- movs r0, 0x13
- bl sub_807A790
- bl Random
- movs r1, 0xF
- ands r1, r0
- adds r1, 0x1E
- strh r1, [r4]
- ldr r2, _0807C744 @ =0x000006cc
- adds r1, r5, r2
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807C798
- .align 2, 0
-_0807C73C: .4byte gUnknown_83C2BBC
-_0807C740: .4byte 0x000006e6
-_0807C744: .4byte 0x000006cc
-_0807C748:
- ldr r0, _0807C770 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r3, _0807C774 @ =0x000006e6
- adds r1, r4, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0807C79A
- movs r0, 0x13
- movs r1, 0x3
- movs r2, 0x5
- bl sub_807A7C4
- ldr r0, _0807C778 @ =0x000006cc
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0807C798
- .align 2, 0
-_0807C770: .4byte gUnknown_83C2BBC
-_0807C774: .4byte 0x000006e6
-_0807C778: .4byte 0x000006cc
-_0807C77C:
- ldr r0, _0807C7A0 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r1, _0807C7A4 @ =0x000006c6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0807C79A
- ldr r3, _0807C7A8 @ =0x000006ea
- adds r1, r2, r3
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0807C7AC @ =0x000006cc
- adds r1, r2, r0
-_0807C796:
- movs r0, 0x4
-_0807C798:
- strh r0, [r1]
-_0807C79A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7A0: .4byte gUnknown_83C2BBC
-_0807C7A4: .4byte 0x000006c6
-_0807C7A8: .4byte 0x000006ea
-_0807C7AC: .4byte 0x000006cc
- thumb_func_end Rain_Main
-
- thumb_func_start Rain_Finish
-Rain_Finish: @ 807C7B0
- push {r4-r6,lr}
- ldr r0, _0807C7CC @ =gUnknown_83C2BBC
- ldr r6, [r0]
- ldr r0, _0807C7D0 @ =0x000006ce
- adds r5, r6, r0
- ldrh r1, [r5]
- cmp r1, 0x1
- beq _0807C7E6
- cmp r1, 0x1
- bgt _0807C7D4
- cmp r1, 0
- beq _0807C7DA
- b _0807C84C
- .align 2, 0
-_0807C7CC: .4byte gUnknown_83C2BBC
-_0807C7D0: .4byte 0x000006ce
-_0807C7D4:
- cmp r1, 0x2
- beq _0807C830
- b _0807C84C
-_0807C7DA:
- ldr r2, _0807C820 @ =0x000006ea
- adds r0, r6, r2
- strb r1, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807C7E6:
- bl Rain_Main
- ldr r0, _0807C824 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r1, _0807C820 @ =0x000006ea
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807C854
- subs r1, 0x19
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0807C84C
- cmp r0, 0x5
- beq _0807C84C
- cmp r0, 0xD
- beq _0807C84C
- ldr r0, _0807C828 @ =0x000006d9
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0807C82C @ =0x000006ce
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807C854
- .align 2, 0
-_0807C820: .4byte 0x000006ea
-_0807C824: .4byte gUnknown_83C2BBC
-_0807C828: .4byte 0x000006d9
-_0807C82C: .4byte 0x000006ce
-_0807C830:
- bl sub_807BD4C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807C854
- bl DestroyRainSprites
- ldr r1, _0807C850 @ =0x000006ed
- adds r0, r6, r1
- strb r4, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807C84C:
- movs r0, 0
- b _0807C856
- .align 2, 0
-_0807C850: .4byte 0x000006ed
-_0807C854:
- movs r0, 0x1
-_0807C856:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end Rain_Finish
-
- thumb_func_start SetThunderCounter
-SetThunderCounter: @ 807C85C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0807C890 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r0, _0807C894 @ =0x000006ed
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _0807C88A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __umodsi3
- movs r2, 0xDD
- lsls r2, 3
- adds r1, r4, r2
- strh r0, [r1]
- movs r0, 0x1
- strb r0, [r5]
-_0807C88A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C890: .4byte gUnknown_83C2BBC
-_0807C894: .4byte 0x000006ed
- thumb_func_end SetThunderCounter
-
- thumb_func_start UpdateThunderSound
-UpdateThunderSound: @ 807C898
- push {r4,lr}
- ldr r0, _0807C8D0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C8D4 @ =0x000006ed
- adds r0, r1, r2
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0807C8F8
- movs r0, 0xDD
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0807C8F4
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _0807C8F8
- bl Random
- ands r4, r0
- cmp r4, 0
- beq _0807C8D8
- movs r0, 0x50
- bl PlaySE
- b _0807C8DE
- .align 2, 0
-_0807C8D0: .4byte gUnknown_83C2BBC
-_0807C8D4: .4byte 0x000006ed
-_0807C8D8:
- movs r0, 0x51
- bl PlaySE
-_0807C8DE:
- ldr r0, _0807C8EC @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807C8F0 @ =0x000006ed
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0807C8F8
- .align 2, 0
-_0807C8EC: .4byte gUnknown_83C2BBC
-_0807C8F0: .4byte 0x000006ed
-_0807C8F4:
- subs r0, 0x1
- strh r0, [r1]
-_0807C8F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end UpdateThunderSound
-
- thumb_func_start Fog1_InitVars
-Fog1_InitVars: @ 807C900
- push {lr}
- ldr r0, _0807C94C @ =gUnknown_83C2BBC
- ldr r3, [r0]
- ldr r0, _0807C950 @ =0x000006cc
- adds r1, r3, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807C954 @ =0x000006d2
- adds r0, r3, r1
- strb r2, [r0]
- subs r1, 0x11
- adds r0, r3, r1
- strb r2, [r0]
- ldr r2, _0807C958 @ =0x000006c2
- adds r1, r3, r2
- movs r0, 0x14
- strb r0, [r1]
- ldr r1, _0807C95C @ =0x000006fb
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- bne _0807C948
- adds r2, 0x2E
- adds r0, r3, r2
- strh r1, [r0]
- adds r2, 0x2
- adds r0, r3, r2
- strh r1, [r0]
- subs r2, 0x4
- adds r0, r3, r2
- strh r1, [r0]
- movs r0, 0
- movs r1, 0x10
- bl Weather_SetBlendCoeffs
-_0807C948:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C94C: .4byte gUnknown_83C2BBC
-_0807C950: .4byte 0x000006cc
-_0807C954: .4byte 0x000006d2
-_0807C958: .4byte 0x000006c2
-_0807C95C: .4byte 0x000006fb
- thumb_func_end Fog1_InitVars
-
- thumb_func_start Fog1_InitAll
-Fog1_InitAll: @ 807C960
- push {r4,lr}
- bl Fog1_InitVars
- ldr r0, _0807C988 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807C98C @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807C980
- adds r4, r1, r2
-_0807C976:
- bl Fog1_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807C976
-_0807C980:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C988: .4byte gUnknown_83C2BBC
-_0807C98C: .4byte 0x000006d2
- thumb_func_end Fog1_InitAll
-
- thumb_func_start Fog1_Main
-Fog1_Main: @ 807C990
- push {r4-r6,lr}
- ldr r0, _0807C9DC @ =gUnknown_83C2BBC
- ldr r6, [r0]
- ldr r0, _0807C9E0 @ =gSpriteCoordOffsetX
- ldr r1, _0807C9E4 @ =0x000006f2
- adds r2, r6, r1
- ldrh r0, [r0]
- ldrh r1, [r2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r3, _0807C9E8 @ =0x000006ee
- adds r1, r6, r3
- strh r0, [r1]
- movs r0, 0xDE
- lsls r0, 3
- adds r1, r6, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0807C9CA
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0807C9CA:
- ldr r1, _0807C9EC @ =0x000006cc
- adds r5, r6, r1
- ldrh r4, [r5]
- cmp r4, 0
- beq _0807C9F0
- cmp r4, 0x1
- beq _0807CA30
- b _0807CA46
- .align 2, 0
-_0807C9DC: .4byte gUnknown_83C2BBC
-_0807C9E0: .4byte gSpriteCoordOffsetX
-_0807C9E4: .4byte 0x000006f2
-_0807C9E8: .4byte 0x000006ee
-_0807C9EC: .4byte 0x000006cc
-_0807C9F0:
- bl CreateFog1Sprites
- movs r3, 0xDA
- lsls r3, 3
- adds r0, r6, r3
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0807CA0C
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x3
- bl Weather_SetTargetBlendCoeffs
- b _0807CA16
-_0807CA0C:
- movs r0, 0x4
- movs r1, 0x10
- movs r2, 0
- bl Weather_SetTargetBlendCoeffs
-_0807CA16:
- ldr r0, _0807CA28 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807CA2C @ =0x000006cc
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0807CA46
- .align 2, 0
-_0807CA28: .4byte gUnknown_83C2BBC
-_0807CA2C: .4byte 0x000006cc
-_0807CA30:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807CA46
- ldr r1, _0807CA4C @ =0x000006d2
- adds r0, r6, r1
- strb r4, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0807CA46:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CA4C: .4byte 0x000006d2
- thumb_func_end Fog1_Main
-
- thumb_func_start Fog1_Finish
-Fog1_Finish: @ 807CA50
- push {r4,lr}
- ldr r0, _0807CAA0 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r0, _0807CAA4 @ =gSpriteCoordOffsetX
- ldr r1, _0807CAA8 @ =0x000006f2
- adds r3, r2, r1
- ldrh r0, [r0]
- ldrh r1, [r3]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r4, _0807CAAC @ =0x000006ee
- adds r1, r2, r4
- strh r0, [r1]
- movs r0, 0xDE
- lsls r0, 3
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bls _0807CA8A
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0807CA8A:
- ldr r1, _0807CAB0 @ =0x000006ce
- adds r4, r2, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807CAC6
- cmp r0, 0x1
- bgt _0807CAB4
- cmp r0, 0
- beq _0807CABA
- b _0807CADE
- .align 2, 0
-_0807CAA0: .4byte gUnknown_83C2BBC
-_0807CAA4: .4byte gSpriteCoordOffsetX
-_0807CAA8: .4byte 0x000006f2
-_0807CAAC: .4byte 0x000006ee
-_0807CAB0: .4byte 0x000006ce
-_0807CAB4:
- cmp r0, 0x2
- beq _0807CAD2
- b _0807CADE
-_0807CABA:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x3
- bl Weather_SetTargetBlendCoeffs
- b _0807CAD6
-_0807CAC6:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807CAE2
- b _0807CAD6
-_0807CAD2:
- bl DestroyFog1Sprites
-_0807CAD6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807CAE2
-_0807CADE:
- movs r0, 0
- b _0807CAE4
-_0807CAE2:
- movs r0, 0x1
-_0807CAE4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Fog1_Finish
-
- thumb_func_start Fog1SpriteCallback
-Fog1SpriteCallback: @ 807CAEC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807CB38 @ =gSpriteCoordOffsetY
- ldrb r0, [r0]
- strh r0, [r3, 0x26]
- ldr r0, _0807CB3C @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807CB40 @ =0x000006ee
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807CB44 @ =0x010f0000
- cmp r1, r0
- ble _0807CB30
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807CB48 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807CB30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CB38: .4byte gSpriteCoordOffsetY
-_0807CB3C: .4byte gUnknown_83C2BBC
-_0807CB40: .4byte 0x000006ee
-_0807CB44: .4byte 0x010f0000
-_0807CB48: .4byte 0x000001ff
- thumb_func_end Fog1SpriteCallback
-
- thumb_func_start CreateFog1Sprites
-CreateFog1Sprites: @ 807CB4C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0807CBC0 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807CBC4 @ =0x000006fb
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807CBF6
- ldr r0, _0807CBC8 @ =gUnknown_83C67A8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r5, 0
-_0807CB70:
- ldr r0, _0807CBCC @ =gUnknown_83C6790
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807CBD4
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807CBD0 @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x2E]
- lsls r0, 16
- lsrs r0, 10
- adds r0, 0x20
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 10
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r2, _0807CBC0 @ =gUnknown_83C2BBC
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, 0xA0
- adds r0, r1
- str r4, [r0]
- b _0807CBE2
- .align 2, 0
-_0807CBC0: .4byte gUnknown_83C2BBC
-_0807CBC4: .4byte 0x000006fb
-_0807CBC8: .4byte gUnknown_83C67A8
-_0807CBCC: .4byte gUnknown_83C6790
-_0807CBD0: .4byte gSprites
-_0807CBD4:
- ldr r2, _0807CC00 @ =gUnknown_83C2BBC
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r1, 0xA0
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807CBE2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x13
- bls _0807CB70
- ldr r0, [r2]
- ldr r1, _0807CC04 @ =0x000006fb
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807CBF6:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CC00: .4byte gUnknown_83C2BBC
-_0807CC04: .4byte 0x000006fb
- thumb_func_end CreateFog1Sprites
-
- thumb_func_start DestroyFog1Sprites
-DestroyFog1Sprites: @ 807CC08
- push {r4,r5,lr}
- ldr r0, _0807CC50 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807CC54 @ =0x000006fb
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807CC48
- movs r4, 0
- adds r5, r1, 0
- adds r5, 0xA0
-_0807CC1E:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807CC2C
- bl DestroySprite
-_0807CC2C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807CC1E
- ldr r0, _0807CC58 @ =0x00001201
- bl FreeSpriteTilesByTag
- ldr r0, _0807CC50 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807CC54 @ =0x000006fb
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807CC48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CC50: .4byte gUnknown_83C2BBC
-_0807CC54: .4byte 0x000006fb
-_0807CC58: .4byte 0x00001201
- thumb_func_end DestroyFog1Sprites
-
- thumb_func_start Ash_InitVars
-Ash_InitVars: @ 807CC5C
- push {lr}
- ldr r0, _0807CCA8 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807CCAC @ =0x000006cc
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r2, _0807CCB0 @ =0x000006d2
- adds r0, r1, r2
- strb r3, [r0]
- subs r2, 0x11
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _0807CCB4 @ =0x000006c2
- adds r0, r1, r3
- movs r2, 0x14
- strb r2, [r0]
- adds r3, 0x3C
- adds r0, r1, r3
- strh r2, [r0]
- movs r0, 0xE0
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0807CCA4
- movs r0, 0
- movs r1, 0x10
- bl Weather_SetBlendCoeffs
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x52
- bl SetGpuReg
-_0807CCA4:
- pop {r0}
- bx r0
- .align 2, 0
-_0807CCA8: .4byte gUnknown_83C2BBC
-_0807CCAC: .4byte 0x000006cc
-_0807CCB0: .4byte 0x000006d2
-_0807CCB4: .4byte 0x000006c2
- thumb_func_end Ash_InitVars
-
- thumb_func_start Ash_InitAll
-Ash_InitAll: @ 807CCB8
- push {r4,lr}
- bl Ash_InitVars
- ldr r0, _0807CCE0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807CCE4 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807CCD8
- adds r4, r1, r2
-_0807CCCE:
- bl Ash_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807CCCE
-_0807CCD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CCE0: .4byte gUnknown_83C2BBC
-_0807CCE4: .4byte 0x000006d2
- thumb_func_end Ash_InitAll
-
- thumb_func_start Ash_Main
-Ash_Main: @ 807CCE8
- push {r4,r5,lr}
- ldr r2, _0807CD2C @ =gUnknown_83C2BBC
- ldr r1, [r2]
- ldr r0, _0807CD30 @ =gSpriteCoordOffsetX
- ldrh r0, [r0]
- ldr r3, _0807CD34 @ =0x000001ff
- ands r3, r0
- ldr r0, _0807CD38 @ =0x000006fc
- adds r1, r0
- strh r3, [r1]
- cmp r3, 0xEF
- bls _0807CD14
- adds r4, r1, 0
- adds r1, r3, 0
-_0807CD04:
- adds r3, r1, 0
- subs r3, 0xF0
- adds r1, r3, 0
- lsls r0, r3, 16
- lsrs r0, 16
- cmp r0, 0xEF
- bhi _0807CD04
- strh r3, [r4]
-_0807CD14:
- ldr r5, [r2]
- ldr r1, _0807CD3C @ =0x000006cc
- adds r4, r5, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807CD4C
- cmp r0, 0x1
- bgt _0807CD40
- cmp r0, 0
- beq _0807CD46
- b _0807CD88
- .align 2, 0
-_0807CD2C: .4byte gUnknown_83C2BBC
-_0807CD30: .4byte gSpriteCoordOffsetX
-_0807CD34: .4byte 0x000001ff
-_0807CD38: .4byte 0x000006fc
-_0807CD3C: .4byte 0x000006cc
-_0807CD40:
- cmp r0, 0x2
- beq _0807CD68
- b _0807CD88
-_0807CD46:
- bl LoadAshSpriteSheet
- b _0807CD7A
-_0807CD4C:
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807CD5C
- bl CreateAshSprites
-_0807CD5C:
- movs r0, 0x10
- movs r1, 0
- movs r2, 0x1
- bl Weather_SetTargetBlendCoeffs
- b _0807CD7A
-_0807CD68:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807CD8C
- ldr r0, _0807CD84 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807CD7A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807CD8C
- .align 2, 0
-_0807CD84: .4byte 0x000006d2
-_0807CD88:
- bl Weather_UpdateBlend
-_0807CD8C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Ash_Main
-
- thumb_func_start Ash_Finish
-Ash_Finish: @ 807CD94
- push {r4,lr}
- ldr r0, _0807CDB0 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807CDB4 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807CDCA
- cmp r0, 0x1
- bgt _0807CDB8
- cmp r0, 0
- beq _0807CDBE
- b _0807CDEE
- .align 2, 0
-_0807CDB0: .4byte gUnknown_83C2BBC
-_0807CDB4: .4byte 0x000006ce
-_0807CDB8:
- cmp r0, 0x2
- beq _0807CDE0
- b _0807CDEE
-_0807CDBE:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl Weather_SetTargetBlendCoeffs
- b _0807CDD8
-_0807CDCA:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807CDF2
- bl DestroyAshSprites
-_0807CDD8:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807CDF2
-_0807CDE0:
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807CDEE:
- movs r0, 0
- b _0807CDF4
-_0807CDF2:
- movs r0, 0x1
-_0807CDF4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Ash_Finish
-
- thumb_func_start LoadAshSpriteSheet
-LoadAshSpriteSheet: @ 807CDFC
- push {lr}
- ldr r0, _0807CE08 @ =gUnknown_83C67B0
- bl LoadSpriteSheet
- pop {r0}
- bx r0
- .align 2, 0
-_0807CE08: .4byte gUnknown_83C67B0
- thumb_func_end LoadAshSpriteSheet
-
- thumb_func_start CreateAshSprites
-CreateAshSprites: @ 807CE0C
- push {r4,r5,lr}
- ldr r0, _0807CE78 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807CEA8
- movs r5, 0
-_0807CE20:
- ldr r0, _0807CE7C @ =gUnknown_83C67D0
- movs r1, 0
- movs r2, 0
- movs r3, 0x4E
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807CE84
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807CE80 @ =gSprites
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r5, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 6
- adds r0, 0x20
- strh r0, [r4, 0x2E]
- ldr r2, _0807CE78 @ =gUnknown_83C2BBC
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, 0xF0
- adds r0, r1
- str r4, [r0]
- b _0807CE92
- .align 2, 0
-_0807CE78: .4byte gUnknown_83C2BBC
-_0807CE7C: .4byte gUnknown_83C67D0
-_0807CE80: .4byte gSprites
-_0807CE84:
- ldr r2, _0807CEB0 @ =gUnknown_83C2BBC
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r1, 0xF0
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807CE92:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _0807CE20
- ldr r0, [r2]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807CEA8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CEB0: .4byte gUnknown_83C2BBC
- thumb_func_end CreateAshSprites
-
- thumb_func_start DestroyAshSprites
-DestroyAshSprites: @ 807CEB4
- push {r4,r5,lr}
- ldr r0, _0807CF00 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807CEF8
- movs r4, 0
- adds r5, r1, 0
- adds r5, 0xF0
-_0807CECC:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807CEDA
- bl DestroySprite
-_0807CEDA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807CECC
- ldr r0, _0807CF04 @ =0x00001202
- bl FreeSpriteTilesByTag
- ldr r0, _0807CF00 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807CEF8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CF00: .4byte gUnknown_83C2BBC
-_0807CF04: .4byte 0x00001202
- thumb_func_end DestroyAshSprites
-
- thumb_func_start sub_807CF08
-sub_807CF08: @ 807CF08
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0807CF24
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
-_0807CF24:
- ldr r1, _0807CF70 @ =gSpriteCoordOffsetY
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r3, 0x22]
- ldr r0, _0807CF74 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807CF78 @ =0x000006fc
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807CF7C @ =0x010f0000
- cmp r1, r0
- ble _0807CF68
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x32
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807CF80 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807CF68:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CF70: .4byte gSpriteCoordOffsetY
-_0807CF74: .4byte gUnknown_83C2BBC
-_0807CF78: .4byte 0x000006fc
-_0807CF7C: .4byte 0x010f0000
-_0807CF80: .4byte 0x000001ff
- thumb_func_end sub_807CF08
-
- thumb_func_start Fog2_InitVars
-Fog2_InitVars: @ 807CF84
- push {r4,lr}
- ldr r0, _0807CFF4 @ =gUnknown_83C2BBC
- ldr r3, [r0]
- ldr r1, _0807CFF8 @ =0x000006cc
- adds r0, r3, r1
- movs r1, 0
- movs r2, 0
- strh r2, [r0]
- ldr r4, _0807CFFC @ =0x000006d2
- adds r0, r3, r4
- strb r1, [r0]
- subs r4, 0x11
- adds r0, r3, r4
- strb r1, [r0]
- ldr r0, _0807D000 @ =0x000006c2
- adds r1, r3, r0
- movs r0, 0x14
- strb r0, [r1]
- movs r1, 0xDE
- lsls r1, 3
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x31
- adds r1, r3, r4
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _0807D004 @ =0x00000724
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _0807CFEE
- adds r4, 0x2A
- adds r0, r3, r4
- strh r2, [r0]
- subs r1, 0x6
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x4
- adds r0, r3, r4
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r3, r1
- strh r2, [r0]
- subs r4, 0x8
- adds r0, r3, r4
- strh r2, [r0]
- subs r1, 0x8
- adds r0, r3, r1
- strh r2, [r0]
- movs r0, 0
- movs r1, 0x10
- bl Weather_SetBlendCoeffs
-_0807CFEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807CFF4: .4byte gUnknown_83C2BBC
-_0807CFF8: .4byte 0x000006cc
-_0807CFFC: .4byte 0x000006d2
-_0807D000: .4byte 0x000006c2
-_0807D004: .4byte 0x00000724
- thumb_func_end Fog2_InitVars
-
- thumb_func_start Fog2_InitAll
-Fog2_InitAll: @ 807D008
- push {r4,lr}
- bl Fog2_InitVars
- ldr r0, _0807D030 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D034 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D028
- adds r4, r1, r2
-_0807D01E:
- bl Fog2_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807D01E
-_0807D028:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D030: .4byte gUnknown_83C2BBC
-_0807D034: .4byte 0x000006d2
- thumb_func_end Fog2_InitAll
-
- thumb_func_start Fog2_Main
-Fog2_Main: @ 807D038
- push {r4,r5,lr}
- bl sub_807D0FC
- ldr r0, _0807D058 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807D05C @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807D06C
- cmp r0, 0x1
- bgt _0807D060
- cmp r0, 0
- beq _0807D066
- b _0807D090
- .align 2, 0
-_0807D058: .4byte gUnknown_83C2BBC
-_0807D05C: .4byte 0x000006cc
-_0807D060:
- cmp r0, 0x2
- beq _0807D078
- b _0807D090
-_0807D066:
- bl CreateFog2Sprites
- b _0807D08A
-_0807D06C:
- movs r0, 0xC
- movs r1, 0x8
- movs r2, 0x8
- bl Weather_SetTargetBlendCoeffs
- b _0807D08A
-_0807D078:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807D090
- ldr r0, _0807D098 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807D08A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807D090:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D098: .4byte 0x000006d2
- thumb_func_end Fog2_Main
-
- thumb_func_start Fog2_Finish
-Fog2_Finish: @ 807D09C
- push {r4,lr}
- bl sub_807D0FC
- ldr r0, _0807D0BC @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D0C0 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807D0D6
- cmp r0, 0x1
- bgt _0807D0C4
- cmp r0, 0
- beq _0807D0CA
- b _0807D0EE
- .align 2, 0
-_0807D0BC: .4byte gUnknown_83C2BBC
-_0807D0C0: .4byte 0x000006ce
-_0807D0C4:
- cmp r0, 0x2
- beq _0807D0E2
- b _0807D0EE
-_0807D0CA:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1
- bl Weather_SetTargetBlendCoeffs
- b _0807D0E6
-_0807D0D6:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807D0F2
- b _0807D0E6
-_0807D0E2:
- bl DestroyFog2Sprites
-_0807D0E6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807D0F2
-_0807D0EE:
- movs r0, 0
- b _0807D0F4
-_0807D0F2:
- movs r0, 0x1
-_0807D0F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Fog2_Finish
-
- thumb_func_start sub_807D0FC
-sub_807D0FC: @ 807D0FC
- push {r4,r5,lr}
- ldr r0, _0807D174 @ =gUnknown_83C2BBC
- ldr r3, [r0]
- ldr r0, _0807D178 @ =0x0000071c
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r2]
- ldr r1, _0807D17C @ =0x0000ffff
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _0807D128
- movs r0, 0xE4
- lsls r0, 3
- adds r1, r3, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- strh r5, [r2]
-_0807D128:
- ldr r1, _0807D180 @ =0x0000071e
- adds r2, r3, r1
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ands r0, r4
- cmp r0, 0x4
- bls _0807D144
- ldr r0, _0807D184 @ =0x00000722
- adds r1, r3, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- strh r5, [r2]
-_0807D144:
- ldr r0, _0807D188 @ =gSpriteCoordOffsetX
- movs r2, 0xE4
- lsls r2, 3
- adds r1, r3, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- subs r2, 0x8
- adds r1, r3, r2
- strh r0, [r1]
- ldr r1, _0807D18C @ =gSpriteCoordOffsetY
- adds r2, 0xA
- adds r0, r3, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- subs r2, 0x8
- adds r1, r3, r2
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D174: .4byte gUnknown_83C2BBC
-_0807D178: .4byte 0x0000071c
-_0807D17C: .4byte 0x0000ffff
-_0807D180: .4byte 0x0000071e
-_0807D184: .4byte 0x00000722
-_0807D188: .4byte gSpriteCoordOffsetX
-_0807D18C: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807D0FC
-
- thumb_func_start CreateFog2Sprites
-CreateFog2Sprites: @ 807D190
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0807D1FC @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D200 @ =0x00000724
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D236
- ldr r0, _0807D204 @ =gUnknown_83C67E8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r6, 0
-_0807D1B4:
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- adds r5, r0, 0
- lsls r2, r5, 22
- asrs r2, 16
- ldr r0, _0807D208 @ =gUnknown_83C6804
- movs r1, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0807D210
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807D20C @ =gSprites
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- ldr r2, _0807D1FC @ =gUnknown_83C2BBC
- ldr r0, [r2]
- lsls r1, r6, 2
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r3
- adds r0, r1
- str r4, [r0]
- b _0807D222
- .align 2, 0
-_0807D1FC: .4byte gUnknown_83C2BBC
-_0807D200: .4byte 0x00000724
-_0807D204: .4byte gUnknown_83C67E8
-_0807D208: .4byte gUnknown_83C6804
-_0807D20C: .4byte gSprites
-_0807D210:
- ldr r2, _0807D240 @ =gUnknown_83C2BBC
- ldr r1, [r2]
- lsls r0, r6, 2
- movs r3, 0xA0
- lsls r3, 1
- adds r1, r3
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807D222:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x13
- bls _0807D1B4
- ldr r0, [r2]
- ldr r1, _0807D244 @ =0x00000724
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807D236:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D240: .4byte gUnknown_83C2BBC
-_0807D244: .4byte 0x00000724
- thumb_func_end CreateFog2Sprites
-
- thumb_func_start DestroyFog2Sprites
-DestroyFog2Sprites: @ 807D248
- push {r4,r5,lr}
- ldr r0, _0807D290 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D294 @ =0x00000724
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807D28A
- movs r4, 0
- movs r0, 0xA0
- lsls r0, 1
- adds r5, r1, r0
-_0807D260:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807D26E
- bl DestroySprite
-_0807D26E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807D260
- ldr r0, _0807D298 @ =0x00001203
- bl FreeSpriteTilesByTag
- ldr r0, _0807D290 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D294 @ =0x00000724
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807D28A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D290: .4byte gUnknown_83C2BBC
-_0807D294: .4byte 0x00000724
-_0807D298: .4byte 0x00001203
- thumb_func_end DestroyFog2Sprites
-
- thumb_func_start Fog2SpriteCallback
-Fog2SpriteCallback: @ 807D29C
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807D2EC @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D2F0 @ =0x0000071a
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x26]
- movs r4, 0xE3
- lsls r4, 3
- adds r2, r1, r4
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807D2F4 @ =0x010f0000
- cmp r1, r0
- ble _0807D2E4
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807D2F8 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807D2E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D2EC: .4byte gUnknown_83C2BBC
-_0807D2F0: .4byte 0x0000071a
-_0807D2F4: .4byte 0x010f0000
-_0807D2F8: .4byte 0x000001ff
- thumb_func_end Fog2SpriteCallback
-
- thumb_func_start Sandstorm_InitVars
-Sandstorm_InitVars: @ 807D2FC
- push {r4,lr}
- ldr r0, _0807D360 @ =gUnknown_83C2BBC
- ldr r3, [r0]
- ldr r0, _0807D364 @ =0x000006cc
- adds r1, r3, r0
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807D368 @ =0x000006d2
- adds r0, r3, r1
- strb r2, [r0]
- ldr r4, _0807D36C @ =0x000006c1
- adds r0, r3, r4
- strb r2, [r0]
- ldr r0, _0807D370 @ =0x000006c2
- adds r1, r3, r0
- movs r0, 0x14
- strb r0, [r1]
- ldr r1, _0807D374 @ =0x00000716
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _0807D358
- adds r4, 0x43
- adds r1, r3, r4
- adds r4, 0x4
- adds r0, r3, r4
- str r2, [r0]
- str r2, [r1]
- ldr r0, _0807D378 @ =0x00000712
- adds r1, r3, r0
- movs r0, 0x8
- strh r0, [r1]
- adds r4, 0xC
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1]
- cmp r2, 0x5F
- bls _0807D350
- movs r0, 0x80
- subs r0, r2
- strh r0, [r1]
-_0807D350:
- movs r0, 0
- movs r1, 0x10
- bl Weather_SetBlendCoeffs
-_0807D358:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D360: .4byte gUnknown_83C2BBC
-_0807D364: .4byte 0x000006cc
-_0807D368: .4byte 0x000006d2
-_0807D36C: .4byte 0x000006c1
-_0807D370: .4byte 0x000006c2
-_0807D374: .4byte 0x00000716
-_0807D378: .4byte 0x00000712
- thumb_func_end Sandstorm_InitVars
-
- thumb_func_start Sandstorm_InitAll
-Sandstorm_InitAll: @ 807D37C
- push {r4,lr}
- bl Sandstorm_InitVars
- ldr r0, _0807D3A4 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D3A8 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D39C
- adds r4, r1, r2
-_0807D392:
- bl Sandstorm_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807D392
-_0807D39C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D3A4: .4byte gUnknown_83C2BBC
-_0807D3A8: .4byte 0x000006d2
- thumb_func_end Sandstorm_InitAll
-
- thumb_func_start Sandstorm_Main
-Sandstorm_Main: @ 807D3AC
- push {r4,r5,lr}
- bl sub_807D4C4
- bl sub_807D48C
- ldr r0, _0807D3DC @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807D3E0 @ =0x00000712
- adds r1, r5, r0
- ldrh r0, [r1]
- cmp r0, 0x5F
- bls _0807D3C8
- movs r0, 0x20
- strh r0, [r1]
-_0807D3C8:
- ldr r0, _0807D3E4 @ =0x000006cc
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807D3F8
- cmp r0, 0x1
- bgt _0807D3E8
- cmp r0, 0
- beq _0807D3EE
- b _0807D41C
- .align 2, 0
-_0807D3DC: .4byte gUnknown_83C2BBC
-_0807D3E0: .4byte 0x00000712
-_0807D3E4: .4byte 0x000006cc
-_0807D3E8:
- cmp r0, 0x2
- beq _0807D404
- b _0807D41C
-_0807D3EE:
- bl CreateSandstormSprites_1
- bl CreateSandstormSprites_2
- b _0807D416
-_0807D3F8:
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- bl Weather_SetTargetBlendCoeffs
- b _0807D416
-_0807D404:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807D41C
- ldr r0, _0807D424 @ =0x000006d2
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_0807D416:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0807D41C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D424: .4byte 0x000006d2
- thumb_func_end Sandstorm_Main
-
- thumb_func_start Sandstorm_Finish
-Sandstorm_Finish: @ 807D428
- push {r4,lr}
- bl sub_807D4C4
- bl sub_807D48C
- ldr r0, _0807D44C @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D450 @ =0x000006ce
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _0807D466
- cmp r0, 0x1
- bgt _0807D454
- cmp r0, 0
- beq _0807D45A
- b _0807D47E
- .align 2, 0
-_0807D44C: .4byte gUnknown_83C2BBC
-_0807D450: .4byte 0x000006ce
-_0807D454:
- cmp r0, 0x2
- beq _0807D472
- b _0807D47E
-_0807D45A:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0
- bl Weather_SetTargetBlendCoeffs
- b _0807D476
-_0807D466:
- bl Weather_UpdateBlend
- lsls r0, 24
- cmp r0, 0
- beq _0807D482
- b _0807D476
-_0807D472:
- bl sub_807D544
-_0807D476:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807D482
-_0807D47E:
- movs r0, 0
- b _0807D484
-_0807D482:
- movs r0, 0x1
-_0807D484:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Sandstorm_Finish
-
- thumb_func_start sub_807D48C
-sub_807D48C: @ 807D48C
- push {lr}
- ldr r0, _0807D4B8 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r0, _0807D4BC @ =0x00000714
- adds r3, r2, r0
- ldrh r0, [r3]
- adds r1, r0, 0x1
- strh r1, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _0807D4B2
- ldr r1, _0807D4C0 @ =0x00000712
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r0]
- strh r2, [r3]
-_0807D4B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0807D4B8: .4byte gUnknown_83C2BBC
-_0807D4BC: .4byte 0x00000714
-_0807D4C0: .4byte 0x00000712
- thumb_func_end sub_807D48C
-
- thumb_func_start sub_807D4C4
-sub_807D4C4: @ 807D4C4
- push {r4-r6,lr}
- ldr r0, _0807D528 @ =gUnknown_83C2BBC
- ldr r2, [r0]
- ldr r0, _0807D52C @ =0x00000704
- adds r4, r2, r0
- ldr r6, _0807D530 @ =gSineTable
- ldr r1, _0807D534 @ =0x00000712
- adds r5, r2, r1
- ldrh r0, [r5]
- lsls r0, 1
- adds r0, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- lsls r1, 2
- ldr r0, [r4]
- subs r0, r1
- str r0, [r4]
- movs r0, 0xE1
- lsls r0, 3
- adds r3, r2, r0
- ldrh r0, [r5]
- lsls r0, 1
- adds r0, r6
- movs r5, 0
- ldrsh r1, [r0, r5]
- ldr r0, [r3]
- subs r0, r1
- str r0, [r3]
- ldr r1, _0807D538 @ =gSpriteCoordOffsetX
- ldr r0, [r4]
- lsrs r0, 8
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- ldr r4, _0807D53C @ =0x0000070e
- adds r1, r2, r4
- strh r0, [r1]
- ldr r1, _0807D540 @ =gSpriteCoordOffsetY
- ldr r0, [r3]
- lsrs r0, 8
- ldrh r1, [r1]
- adds r0, r1
- movs r5, 0xE2
- lsls r5, 3
- adds r2, r5
- strh r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D528: .4byte gUnknown_83C2BBC
-_0807D52C: .4byte 0x00000704
-_0807D530: .4byte gSineTable
-_0807D534: .4byte 0x00000712
-_0807D538: .4byte gSpriteCoordOffsetX
-_0807D53C: .4byte 0x0000070e
-_0807D540: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_807D4C4
-
- thumb_func_start sub_807D544
-sub_807D544: @ 807D544
- push {r4,r5,lr}
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D5CC @ =0x00000716
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807D586
- movs r4, 0
- movs r0, 0xC8
- lsls r0, 1
- adds r5, r1, r0
-_0807D55C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807D56A
- bl DestroySprite
-_0807D56A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0807D55C
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D5CC @ =0x00000716
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0807D5D0 @ =0x00001204
- bl FreeSpriteTilesByTag
-_0807D586:
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D5D4 @ =0x00000717
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807D5C0
- movs r4, 0
- movs r0, 0xF0
- lsls r0, 1
- adds r5, r1, r0
-_0807D59C:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0807D5AA
- bl DestroySprite
-_0807D5AA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _0807D59C
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D5D4 @ =0x00000717
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807D5C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D5C8: .4byte gUnknown_83C2BBC
-_0807D5CC: .4byte 0x00000716
-_0807D5D0: .4byte 0x00001204
-_0807D5D4: .4byte 0x00000717
- thumb_func_end sub_807D544
-
- thumb_func_start CreateSandstormSprites_1
-CreateSandstormSprites_1: @ 807D5D8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0807D648 @ =gUnknown_83C2BBC
- ldr r0, [r0]
- ldr r1, _0807D64C @ =0x00000716
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D686
- ldr r0, _0807D650 @ =gUnknown_83C6854
- bl LoadSpriteSheet
- ldr r0, _0807D654 @ =gUnknown_83C2D20
- bl sub_807ABC0
- movs r7, 0
-_0807D5F8:
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r6, r0, 0
- lsls r2, r6, 22
- asrs r2, 16
- ldr r0, _0807D658 @ =gUnknown_83C683C
- movs r1, 0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0807D660
- ldr r2, _0807D648 @ =gUnknown_83C2BBC
- ldr r5, [r2]
- lsls r0, r7, 2
- movs r3, 0xC8
- lsls r3, 1
- adds r5, r3
- adds r5, r0
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r0, _0807D65C @ =gSprites
- adds r4, r0
- str r4, [r5]
- adds r0, r7, 0
- movs r1, 0x5
- str r2, [sp]
- bl __umodsi3
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r6, [r0, 0x30]
- ldr r2, [sp]
- b _0807D672
- .align 2, 0
-_0807D648: .4byte gUnknown_83C2BBC
-_0807D64C: .4byte 0x00000716
-_0807D650: .4byte gUnknown_83C6854
-_0807D654: .4byte gUnknown_83C2D20
-_0807D658: .4byte gUnknown_83C683C
-_0807D65C: .4byte gSprites
-_0807D660:
- ldr r2, _0807D690 @ =gUnknown_83C2BBC
- ldr r1, [r2]
- lsls r0, r7, 2
- movs r3, 0xC8
- lsls r3, 1
- adds r1, r3
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0807D672:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x13
- bls _0807D5F8
- ldr r0, [r2]
- ldr r1, _0807D694 @ =0x00000716
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0807D686:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D690: .4byte gUnknown_83C2BBC
-_0807D694: .4byte 0x00000716
- thumb_func_end CreateSandstormSprites_1
-
- thumb_func_start CreateSandstormSprites_2
-CreateSandstormSprites_2: @ 807D698
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0807D740 @ =gUnknown_83C2BBC
- ldr r0, [r4]
- ldr r1, _0807D744 @ =0x00000717
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D784
- movs r7, 0
- mov r9, r4
- movs r2, 0
- mov r10, r2
-_0807D6B8:
- lsls r0, r7, 1
- mov r8, r0
- adds r6, r0, r7
- lsls r5, r6, 4
- adds r1, r5, 0
- adds r1, 0x18
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0807D748 @ =gUnknown_83C683C
- movs r2, 0xD0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0807D75C
- mov r2, r9
- ldr r4, [r2]
- lsls r0, r7, 2
- movs r2, 0xF0
- lsls r2, 1
- adds r4, r2
- adds r4, r0
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r0, _0807D74C @ =gSprites
- adds r2, r0
- str r2, [r4]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r1, [r4]
- adds r0, r6, r5
- strh r0, [r1, 0x30]
- ldr r1, [r4]
- movs r0, 0x8
- strh r0, [r1, 0x2E]
- ldr r0, [r4]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r1, [r4]
- ldr r0, _0807D750 @ =0x00006730
- strh r0, [r1, 0x36]
- ldr r1, [r4]
- ldr r0, _0807D754 @ =gUnknown_83C685C
- add r0, r8
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- ldr r0, [r4]
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl CalcCenterToCornerVec
- ldr r1, [r4]
- ldr r0, _0807D758 @ =SandstormSpriteCallback2
- str r0, [r1, 0x1C]
- b _0807D76E
- .align 2, 0
-_0807D740: .4byte gUnknown_83C2BBC
-_0807D744: .4byte 0x00000717
-_0807D748: .4byte gUnknown_83C683C
-_0807D74C: .4byte gSprites
-_0807D750: .4byte 0x00006730
-_0807D754: .4byte gUnknown_83C685C
-_0807D758: .4byte SandstormSpriteCallback2
-_0807D75C:
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r7, 2
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r2
- adds r0, r1
- mov r1, r10
- str r1, [r0]
-_0807D76E:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, _0807D794 @ =0x00000717
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _0807D6B8
-_0807D784:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D794: .4byte 0x00000717
- thumb_func_end CreateSandstormSprites_2
-
- thumb_func_start SandstormSpriteCallback1
-SandstormSpriteCallback1: @ 807D798
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0807D7E8 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x26]
- ldr r4, _0807D7EC @ =0x0000070e
- adds r2, r1, r4
- ldrh r1, [r2]
- adds r1, 0x20
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 6
- adds r1, r0
- strh r1, [r3, 0x20]
- lsls r1, 16
- ldr r0, _0807D7F0 @ =0x010f0000
- cmp r1, r0
- ble _0807D7E0
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r2]
- adds r1, r2
- movs r4, 0x2E
- ldrsh r2, [r3, r4]
- movs r0, 0x4
- subs r0, r2
- lsls r0, 6
- subs r1, r0
- ldr r0, _0807D7F4 @ =0x000001ff
- ands r1, r0
- strh r1, [r3, 0x20]
-_0807D7E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D7E8: .4byte gUnknown_83C2BBC
-_0807D7EC: .4byte 0x0000070e
-_0807D7F0: .4byte 0x010f0000
-_0807D7F4: .4byte 0x000001ff
- thumb_func_end SandstormSpriteCallback1
-
- thumb_func_start SandstormSpriteCallback2
-SandstormSpriteCallback2: @ 807D7F8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- subs r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0807D812
- ldr r0, _0807D818 @ =SandstormSpriteCallback3
- str r0, [r2, 0x1C]
-_0807D812:
- pop {r0}
- bx r0
- .align 2, 0
-_0807D818: .4byte SandstormSpriteCallback3
- thumb_func_end SandstormSpriteCallback2
-
- thumb_func_start SandstormSpriteCallback3
-SandstormSpriteCallback3: @ 807D81C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x22]
- subs r0, 0x1
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- negs r1, r1
- cmp r0, r1
- bge _0807D83A
- movs r0, 0xD0
- strh r0, [r5, 0x22]
- movs r0, 0x4
- strh r0, [r5, 0x2E]
-_0807D83A:
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldr r3, _0807D88C @ =gSineTable
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r2, r4, 0
- muls r2, r0
- adds r1, 0x40
- lsls r1, 1
- adds r1, r3
- movs r3, 0
- ldrsh r0, [r1, r3]
- muls r0, r4
- lsrs r2, 8
- strh r2, [r5, 0x24]
- lsrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807D886
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0807D886:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D88C: .4byte gSineTable
- thumb_func_end SandstormSpriteCallback3
-
- thumb_func_start Weather11_InitVars
-Weather11_InitVars: @ 807D890
- ldr r0, _0807D8B0 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807D8B4 @ =0x000006cc
- adds r2, r1, r0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _0807D8B8 @ =0x000006c1
- adds r2, r1, r0
- movs r0, 0x3
- strb r0, [r2]
- ldr r0, _0807D8BC @ =0x000006c2
- adds r1, r0
- movs r0, 0x14
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0807D8B0: .4byte gUnknown_83C2BBC
-_0807D8B4: .4byte 0x000006cc
-_0807D8B8: .4byte 0x000006c1
-_0807D8BC: .4byte 0x000006c2
- thumb_func_end Weather11_InitVars
-
- thumb_func_start Weather11_InitAll
-Weather11_InitAll: @ 807D8C0
- push {lr}
- bl Weather11_InitVars
- pop {r0}
- bx r0
- thumb_func_end Weather11_InitAll
-
- thumb_func_start nullsub_49
-nullsub_49: @ 807D8CC
- bx lr
- thumb_func_end nullsub_49
-
- thumb_func_start sub_807D8D0
-sub_807D8D0: @ 807D8D0
- movs r0, 0
- bx lr
- thumb_func_end sub_807D8D0
-
- thumb_func_start Bubbles_InitVars
-Bubbles_InitVars: @ 807D8D4
- push {r4,r5,lr}
- bl Fog1_InitVars
- ldr r0, _0807D914 @ =gUnknown_83C2BBC
- ldr r4, [r0]
- ldr r1, _0807D918 @ =0x0000072e
- adds r0, r4, r1
- ldrb r5, [r0]
- cmp r5, 0
- bne _0807D90C
- ldr r0, _0807D91C @ =gUnknown_83C6870
- bl LoadSpriteSheet
- movs r2, 0xE5
- lsls r2, 3
- adds r0, r4, r2
- strh r5, [r0]
- ldr r0, _0807D920 @ =gUnknown_83C6868
- ldrb r1, [r0]
- subs r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r1, _0807D924 @ =0x0000072a
- adds r0, r4, r1
- strh r5, [r0]
- adds r2, 0x6
- adds r0, r4, r2
- strh r5, [r0]
-_0807D90C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D914: .4byte gUnknown_83C2BBC
-_0807D918: .4byte 0x0000072e
-_0807D91C: .4byte gUnknown_83C6870
-_0807D920: .4byte gUnknown_83C6868
-_0807D924: .4byte 0x0000072a
- thumb_func_end Bubbles_InitVars
-
- thumb_func_start Bubbles_InitAll
-Bubbles_InitAll: @ 807D928
- push {r4,lr}
- bl Bubbles_InitVars
- ldr r0, _0807D950 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r2, _0807D954 @ =0x000006d2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807D948
- adds r4, r1, r2
-_0807D93E:
- bl Bubbles_Main
- ldrb r0, [r4]
- cmp r0, 0
- beq _0807D93E
-_0807D948:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D950: .4byte gUnknown_83C2BBC
-_0807D954: .4byte 0x000006d2
- thumb_func_end Bubbles_InitAll
-
- thumb_func_start Bubbles_Main
-Bubbles_Main: @ 807D958
- push {r4-r7,lr}
- bl Fog1_Main
- ldr r0, _0807D9B8 @ =gUnknown_83C2BBC
- ldr r5, [r0]
- ldr r0, _0807D9BC @ =0x00000726
- adds r4, r5, r0
- ldrh r0, [r4]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4]
- ldr r1, _0807D9C0 @ =0x0000ffff
- adds r7, r1, 0
- ldr r2, _0807D9C4 @ =gUnknown_83C6868
- movs r1, 0xE5
- lsls r1, 3
- adds r3, r5, r1
- ldrh r1, [r3]
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1]
- cmp r0, r1
- bls _0807D9B0
- strh r6, [r4]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- ands r0, r7
- cmp r0, 0x7
- bls _0807D998
- strh r6, [r3]
-_0807D998:
- ldr r0, _0807D9C8 @ =0x0000072a
- adds r4, r5, r0
- ldrh r0, [r4]
- bl sub_807D9E8
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ands r0, r7
- cmp r0, 0xC
- bls _0807D9B0
- strh r6, [r4]
-_0807D9B0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807D9B8: .4byte gUnknown_83C2BBC
-_0807D9BC: .4byte 0x00000726
-_0807D9C0: .4byte 0x0000ffff
-_0807D9C4: .4byte gUnknown_83C6868
-_0807D9C8: .4byte 0x0000072a
- thumb_func_end Bubbles_Main
-
- thumb_func_start Bubbles_Finish
-Bubbles_Finish: @ 807D9CC
- push {lr}
- bl Fog1_Finish
- lsls r0, 24
- cmp r0, 0
- beq _0807D9DC
- movs r0, 0x1
- b _0807D9E2
-_0807D9DC:
- bl sub_807DA70
- movs r0, 0
-_0807D9E2:
- pop {r1}
- bx r1
- thumb_func_end Bubbles_Finish
-
- thumb_func_start sub_807D9E8
-sub_807D9E8: @ 807D9E8
- push {r4,lr}
- lsls r0, 16
- ldr r1, _0807DA58 @ =gUnknown_83C6878
- lsrs r0, 14
- adds r3, r0, r1
- adds r1, 0x2
- adds r0, r1
- ldr r1, _0807DA5C @ =gSpriteCoordOffsetY
- ldrh r2, [r0]
- ldrh r0, [r1]
- subs r2, r0
- ldr r0, _0807DA60 @ =gUnknown_83C68BC
- movs r4, 0
- ldrsh r1, [r3, r4]
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0807DA50
- ldr r0, _0807DA64 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- strh r0, [r1, 0x32]
- ldr r0, _0807DA68 @ =gUnknown_83C2BBC
- ldr r1, [r0]
- ldr r0, _0807DA6C @ =0x0000072c
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0807DA50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DA58: .4byte gUnknown_83C6878
-_0807DA5C: .4byte gSpriteCoordOffsetY
-_0807DA60: .4byte gUnknown_83C68BC
-_0807DA64: .4byte gSprites
-_0807DA68: .4byte gUnknown_83C2BBC
-_0807DA6C: .4byte 0x0000072c
- thumb_func_end sub_807D9E8
-
- thumb_func_start sub_807DA70
-sub_807DA70: @ 807DA70
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0807DAA8 @ =gSprites
-_0807DA76:
- lsls r0, r4, 4
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r5, 0
- adds r0, 0x14
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _0807DAAC @ =gUnknown_83C68BC
- cmp r1, r0
- bne _0807DA90
- adds r0, r2, r5
- bl DestroySprite
-_0807DA90:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _0807DA76
- ldr r0, _0807DAB0 @ =0x00001205
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807DAA8: .4byte gSprites
-_0807DAAC: .4byte gUnknown_83C68BC
-_0807DAB0: .4byte 0x00001205
- thumb_func_end sub_807DA70
-
- thumb_func_start unc_0807DAB4
-unc_0807DAB4: @ 807DAB4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- movs r2, 0
- adds r0, 0x2
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807DAF4
- strh r2, [r1, 0x2E]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0807DAE6
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0807DAF4
- movs r0, 0x1
- strh r0, [r1, 0x30]
- b _0807DAF4
-_0807DAE6:
- ldrh r0, [r1, 0x24]
- subs r0, 0x1
- strh r0, [r1, 0x24]
- lsls r0, 16
- cmp r0, 0
- bgt _0807DAF4
- strh r2, [r1, 0x30]
-_0807DAF4:
- ldrh r0, [r1, 0x22]
- subs r0, 0x3
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x77
- ble _0807DB0E
- adds r0, r1, 0
- bl DestroySprite
-_0807DB0E:
- pop {r0}
- bx r0
- thumb_func_end unc_0807DAB4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/overworld.s b/asm/overworld.s
index 27235fa18..179d79fdc 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -1728,7 +1728,7 @@ sub_8055864: @ 8055864
_080558D4:
lsls r0, r4, 24
lsrs r0, 24
- bl sub_807AB74
+ bl ApplyWeatherGammaShiftToPal
adds r4, 0x1
cmp r4, 0xC
ble _080558D4
@@ -4644,8 +4644,8 @@ _08057050:
bl InitObjectEventPalettes
_08057056:
bl FieldEffectActiveListClear
- bl sub_8079C08
- bl sub_807B1B8
+ bl StartWeather
+ bl ResumePausedWeather
cmp r4, 0
bne _0805706A
bl SetUpFieldTasks
@@ -5400,8 +5400,8 @@ _0805769C:
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
bl FieldEffectActiveListClear
- bl sub_8079C08
- bl sub_807B1B8
+ bl StartWeather
+ bl ResumePausedWeather
bl SetUpFieldTasks
bl mapheader_run_script_with_tag_x5
b _0805772A
@@ -5451,7 +5451,7 @@ _08057712:
ldr r2, _08057738 @ =0x3fffffff
movs r0, 0
movs r1, 0
- bl FieldWeather_StartFadingOutCreditsMap
+ bl FadeSelectedPals
_0805772A:
ldrb r0, [r4]
adds r0, 0x1