summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-03-16 20:12:37 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2020-03-16 20:12:37 -0400
commit6e00e822101c4c3f68bce0789ba56133b24b586b (patch)
treea9130de6de36a81db21c87a3522bcc79728a1f49
parentf8915246a77a4453135ac3a4e6a61c098d557451 (diff)
Port field_weather from Emerald
-rw-r--r--asm/field_weather.s3016
-rw-r--r--asm/field_weather_effects.s452
-rw-r--r--asm/field_weather_util.s295
-rw-r--r--asm/overworld.s8
-rw-r--r--data/field_weather.s133
-rw-r--r--include/field_weather.h2
-rw-r--r--include/field_weather_util.h6
-rw-r--r--ld_script.txt5
-rw-r--r--src/credits.c4
-rw-r--r--src/field_weather.c1320
-rw-r--r--src/field_weather_util.c12
-rw-r--r--sym_ewram.txt21
12 files changed, 1872 insertions, 3402 deletions
diff --git a/asm/field_weather.s b/asm/field_weather.s
index c5204def2..2428f2984 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -5,3020 +5,4 @@
.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
index decfe4078..23b5a111c 100644
--- a/asm/field_weather_effects.s
+++ b/asm/field_weather_effects.s
@@ -8,7 +8,7 @@
thumb_func_start Clouds_InitVars
Clouds_InitVars: @ 807B2DC
push {lr}
- ldr r0, _0807B314 @ =gUnknown_83C2BBC
+ ldr r0, _0807B314 @ =gWeatherPtr
ldr r0, [r0]
ldr r2, _0807B318 @ =0x000006c1
adds r1, r0, r2
@@ -36,7 +36,7 @@ _0807B310:
pop {r0}
bx r0
.align 2, 0
-_0807B314: .4byte gUnknown_83C2BBC
+_0807B314: .4byte gWeatherPtr
_0807B318: .4byte 0x000006c1
_0807B31C: .4byte 0x000006c2
_0807B320: .4byte 0x000006d2
@@ -47,7 +47,7 @@ _0807B324: .4byte 0x000006de
Clouds_InitAll: @ 807B328
push {r4,lr}
bl Clouds_InitVars
- ldr r0, _0807B350 @ =gUnknown_83C2BBC
+ ldr r0, _0807B350 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B354 @ =0x000006d2
adds r0, r1, r2
@@ -65,14 +65,14 @@ _0807B348:
pop {r0}
bx r0
.align 2, 0
-_0807B350: .4byte gUnknown_83C2BBC
+_0807B350: .4byte gWeatherPtr
_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 r0, _0807B374 @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807B378 @ =0x000006cc
adds r4, r5, r0
@@ -85,7 +85,7 @@ Clouds_Main: @ 807B358
beq _0807B382
b _0807B3AC
.align 2, 0
-_0807B374: .4byte gUnknown_83C2BBC
+_0807B374: .4byte gWeatherPtr
_0807B378: .4byte 0x000006cc
_0807B37C:
cmp r0, 0x2
@@ -124,7 +124,7 @@ _0807B3B4: .4byte 0x000006d2
thumb_func_start Clouds_Finish
Clouds_Finish: @ 807B3B8
push {r4,lr}
- ldr r0, _0807B3D0 @ =gUnknown_83C2BBC
+ ldr r0, _0807B3D0 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807B3D4 @ =0x000006ce
adds r4, r0, r1
@@ -136,7 +136,7 @@ Clouds_Finish: @ 807B3B8
movs r0, 0
b _0807B3FA
.align 2, 0
-_0807B3D0: .4byte gUnknown_83C2BBC
+_0807B3D0: .4byte gWeatherPtr
_0807B3D4: .4byte 0x000006ce
_0807B3D8:
movs r0, 0
@@ -164,7 +164,7 @@ _0807B3FA:
thumb_func_start Weather2_InitVars
Weather2_InitVars: @ 807B400
- ldr r0, _0807B418 @ =gUnknown_83C2BBC
+ ldr r0, _0807B418 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807B41C @ =0x000006c1
adds r2, r1, r0
@@ -176,7 +176,7 @@ Weather2_InitVars: @ 807B400
strb r0, [r1]
bx lr
.align 2, 0
-_0807B418: .4byte gUnknown_83C2BBC
+_0807B418: .4byte gWeatherPtr
_0807B41C: .4byte 0x000006c1
_0807B420: .4byte 0x000006c2
thumb_func_end Weather2_InitVars
@@ -203,7 +203,7 @@ sub_807B434: @ 807B434
thumb_func_start CreateCloudSprites
CreateCloudSprites: @ 807B438
push {r4,r5,lr}
- ldr r0, _0807B4B0 @ =gUnknown_83C2BBC
+ ldr r0, _0807B4B0 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807B4B4 @ =0x000006de
adds r0, r1
@@ -213,7 +213,7 @@ CreateCloudSprites: @ 807B438
ldr r0, _0807B4B8 @ =gUnknown_83C65D4
bl LoadSpriteSheet
ldr r0, _0807B4BC @ =gUnknown_83C2D00
- bl sub_807ABC0
+ bl LoadCustomWeatherSpritePalette
movs r5, 0
_0807B456:
ldr r0, _0807B4C0 @ =gUnknown_83C65F0
@@ -225,7 +225,7 @@ _0807B456:
lsrs r3, r0, 24
cmp r3, 0x40
beq _0807B4CC
- ldr r0, _0807B4B0 @ =gUnknown_83C2BBC
+ ldr r0, _0807B4B0 @ =gWeatherPtr
ldr r1, [r0]
lsls r2, r5, 2
movs r0, 0xFA
@@ -260,7 +260,7 @@ _0807B456:
strb r0, [r4]
b _0807B4DE
.align 2, 0
-_0807B4B0: .4byte gUnknown_83C2BBC
+_0807B4B0: .4byte gWeatherPtr
_0807B4B4: .4byte 0x000006de
_0807B4B8: .4byte gUnknown_83C65D4
_0807B4BC: .4byte gUnknown_83C2D00
@@ -268,7 +268,7 @@ _0807B4C0: .4byte gUnknown_83C65F0
_0807B4C4: .4byte gSprites
_0807B4C8: .4byte gUnknown_83C65C8
_0807B4CC:
- ldr r0, _0807B4FC @ =gUnknown_83C2BBC
+ ldr r0, _0807B4FC @ =gWeatherPtr
ldr r1, [r0]
lsls r0, r5, 2
movs r2, 0xFA
@@ -283,7 +283,7 @@ _0807B4DE:
lsrs r5, r0, 16
cmp r5, 0x2
bls _0807B456
- ldr r0, _0807B4FC @ =gUnknown_83C2BBC
+ ldr r0, _0807B4FC @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807B500 @ =0x000006de
adds r0, r1
@@ -294,14 +294,14 @@ _0807B4F4:
pop {r0}
bx r0
.align 2, 0
-_0807B4FC: .4byte gUnknown_83C2BBC
+_0807B4FC: .4byte gWeatherPtr
_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 r0, _0807B550 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B554 @ =0x000006de
adds r0, r1, r2
@@ -328,7 +328,7 @@ _0807B52A:
movs r0, 0x90
lsls r0, 5
bl FreeSpriteTilesByTag
- ldr r0, _0807B550 @ =gUnknown_83C2BBC
+ ldr r0, _0807B550 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807B554 @ =0x000006de
adds r0, r1
@@ -339,7 +339,7 @@ _0807B548:
pop {r0}
bx r0
.align 2, 0
-_0807B550: .4byte gUnknown_83C2BBC
+_0807B550: .4byte gWeatherPtr
_0807B554: .4byte 0x000006de
thumb_func_end sub_807B504
@@ -364,7 +364,7 @@ _0807B570:
thumb_func_start Drought_InitVars
Drought_InitVars: @ 807B574
- ldr r0, _0807B598 @ =gUnknown_83C2BBC
+ ldr r0, _0807B598 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807B59C @ =0x000006cc
adds r3, r1, r0
@@ -382,7 +382,7 @@ Drought_InitVars: @ 807B574
strb r2, [r1]
bx lr
.align 2, 0
-_0807B598: .4byte gUnknown_83C2BBC
+_0807B598: .4byte gWeatherPtr
_0807B59C: .4byte 0x000006cc
_0807B5A0: .4byte 0x000006d2
_0807B5A4: .4byte 0x000006c2
@@ -392,7 +392,7 @@ _0807B5A4: .4byte 0x000006c2
Drought_InitAll: @ 807B5A8
push {r4,lr}
bl Drought_InitVars
- ldr r0, _0807B5D0 @ =gUnknown_83C2BBC
+ ldr r0, _0807B5D0 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B5D4 @ =0x000006d2
adds r0, r1, r2
@@ -410,14 +410,14 @@ _0807B5C8:
pop {r0}
bx r0
.align 2, 0
-_0807B5D0: .4byte gUnknown_83C2BBC
+_0807B5D0: .4byte gWeatherPtr
_0807B5D4: .4byte 0x000006d2
thumb_func_end Drought_InitAll
thumb_func_start Drought_Main
Drought_Main: @ 807B5D8
push {lr}
- ldr r1, _0807B5F4 @ =gUnknown_83C2BBC
+ ldr r1, _0807B5F4 @ =gWeatherPtr
ldr r0, [r1]
ldr r2, _0807B5F8 @ =0x000006cc
adds r0, r2
@@ -431,7 +431,7 @@ Drought_Main: @ 807B5D8
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0807B5F4: .4byte gUnknown_83C2BBC
+_0807B5F4: .4byte gWeatherPtr
_0807B5F8: .4byte 0x000006cc
_0807B5FC: .4byte _0807B600
.align 2, 0
@@ -455,41 +455,41 @@ _0807B614:
_0807B628: .4byte 0x000006c6
_0807B62C: .4byte 0x000006cc
_0807B630:
- bl sub_807ABF4
- ldr r0, _0807B640 @ =gUnknown_83C2BBC
+ bl ResetDroughtWeatherPaletteLoading
+ ldr r0, _0807B640 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B644 @ =0x000006cc
adds r1, r2
b _0807B69C
.align 2, 0
-_0807B640: .4byte gUnknown_83C2BBC
+_0807B640: .4byte gWeatherPtr
_0807B644: .4byte 0x000006cc
_0807B648:
- bl sub_807AC14
+ bl LoadDroughtWeatherPalettes
lsls r0, 24
cmp r0, 0
bne _0807B6B8
- ldr r0, _0807B65C @ =gUnknown_83C2BBC
+ ldr r0, _0807B65C @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807B660 @ =0x000006cc
adds r1, r0
b _0807B69C
.align 2, 0
-_0807B65C: .4byte gUnknown_83C2BBC
+_0807B65C: .4byte gWeatherPtr
_0807B660: .4byte 0x000006cc
_0807B664:
bl sub_807AC60
- ldr r0, _0807B674 @ =gUnknown_83C2BBC
+ ldr r0, _0807B674 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B678 @ =0x000006cc
adds r1, r2
b _0807B69C
.align 2, 0
-_0807B674: .4byte gUnknown_83C2BBC
+_0807B674: .4byte gWeatherPtr
_0807B678: .4byte 0x000006cc
_0807B67C:
bl sub_807AC98
- ldr r0, _0807B6A4 @ =gUnknown_83C2BBC
+ ldr r0, _0807B6A4 @ =gWeatherPtr
ldr r2, [r0]
ldr r1, _0807B6A8 @ =0x0000073c
adds r0, r2, r1
@@ -509,7 +509,7 @@ _0807B69C:
strh r0, [r1]
b _0807B6B8
.align 2, 0
-_0807B6A4: .4byte gUnknown_83C2BBC
+_0807B6A4: .4byte gWeatherPtr
_0807B6A8: .4byte 0x0000073c
_0807B6AC: .4byte 0x000006d2
_0807B6B0: .4byte 0x000006cc
@@ -660,7 +660,7 @@ _0807B7C2:
thumb_func_start LightRain_InitVars
LightRain_InitVars: @ 807B7C8
push {r4,lr}
- ldr r0, _0807B818 @ =gUnknown_83C2BBC
+ ldr r0, _0807B818 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B81C @ =0x000006cc
adds r0, r1, r2
@@ -698,7 +698,7 @@ LightRain_InitVars: @ 807B7C8
pop {r0}
bx r0
.align 2, 0
-_0807B818: .4byte gUnknown_83C2BBC
+_0807B818: .4byte gWeatherPtr
_0807B81C: .4byte 0x000006cc
_0807B820: .4byte 0x000006d2
_0807B824: .4byte 0x000006db
@@ -711,7 +711,7 @@ _0807B830: .4byte 0x000006c2
LightRain_InitAll: @ 807B834
push {r4,lr}
bl LightRain_InitVars
- ldr r0, _0807B85C @ =gUnknown_83C2BBC
+ ldr r0, _0807B85C @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807B860 @ =0x000006d2
adds r0, r1, r2
@@ -729,14 +729,14 @@ _0807B854:
pop {r0}
bx r0
.align 2, 0
-_0807B85C: .4byte gUnknown_83C2BBC
+_0807B85C: .4byte gWeatherPtr
_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 r0, _0807B880 @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807B884 @ =0x000006cc
adds r4, r5, r0
@@ -749,7 +749,7 @@ LightRain_Main: @ 807B864
beq _0807B88E
b _0807B8B8
.align 2, 0
-_0807B880: .4byte gUnknown_83C2BBC
+_0807B880: .4byte gWeatherPtr
_0807B884: .4byte 0x000006cc
_0807B888:
cmp r0, 0x2
@@ -788,7 +788,7 @@ _0807B8C0: .4byte 0x000006d2
thumb_func_start LightRain_Finish
LightRain_Finish: @ 807B8C4
push {r4,r5,lr}
- ldr r0, _0807B8E0 @ =gUnknown_83C2BBC
+ ldr r0, _0807B8E0 @ =gWeatherPtr
ldr r2, [r0]
ldr r1, _0807B8E4 @ =0x000006ce
adds r3, r2, r1
@@ -801,7 +801,7 @@ LightRain_Finish: @ 807B8C4
movs r0, 0
b _0807B94A
.align 2, 0
-_0807B8E0: .4byte gUnknown_83C2BBC
+_0807B8E0: .4byte gWeatherPtr
_0807B8E4: .4byte 0x000006ce
_0807B8E8:
ldr r5, _0807B908 @ =0x000006d1
@@ -837,7 +837,7 @@ _0807B91C:
cmp r0, 0
bne _0807B948
bl DestroyRainSprites
- ldr r0, _0807B940 @ =gUnknown_83C2BBC
+ ldr r0, _0807B940 @ =gWeatherPtr
ldr r1, [r0]
ldr r5, _0807B944 @ =0x000006ce
adds r1, r5
@@ -848,7 +848,7 @@ _0807B91C:
b _0807B94A
.align 2, 0
_0807B93C: .4byte 0x000006d9
-_0807B940: .4byte gUnknown_83C2BBC
+_0807B940: .4byte gWeatherPtr
_0807B944: .4byte 0x000006ce
_0807B948:
movs r0, 0x1
@@ -886,7 +886,7 @@ _0807B964:
mov r8, r1
strh r0, [r7, 0x30]
ldr r1, _0807BA14 @ =gUnknown_83C66C4
- ldr r0, _0807BA18 @ =gUnknown_83C2BBC
+ ldr r0, _0807BA18 @ =gWeatherPtr
ldr r5, [r0]
ldr r2, _0807BA1C @ =0x000006dc
adds r5, r2
@@ -953,7 +953,7 @@ _0807BA08: .4byte 0x00000169
_0807BA0C: .4byte 0x41c64e6d
_0807BA10: .4byte 0x00003039
_0807BA14: .4byte gUnknown_83C66C4
-_0807BA18: .4byte gUnknown_83C2BBC
+_0807BA18: .4byte gWeatherPtr
_0807BA1C: .4byte 0x000006dc
_0807BA20: .4byte gUnknown_83C66BC
thumb_func_end sub_807B950
@@ -967,7 +967,7 @@ sub_807BA24: @ 807BA24
cmp r0, 0
bne _0807BB00
ldr r3, _0807BA98 @ =gUnknown_83C66BC
- ldr r4, _0807BA9C @ =gUnknown_83C2BBC
+ ldr r4, _0807BA9C @ =gWeatherPtr
ldr r2, [r4]
ldr r0, _0807BAA0 @ =0x000006dc
adds r2, r0
@@ -1020,7 +1020,7 @@ sub_807BA24: @ 807BA24
b _0807BAAE
.align 2, 0
_0807BA98: .4byte gUnknown_83C66BC
-_0807BA9C: .4byte gUnknown_83C2BBC
+_0807BA9C: .4byte gWeatherPtr
_0807BAA0: .4byte 0x000006dc
_0807BAA4:
adds r0, r5, 0
@@ -1123,7 +1123,7 @@ sub_807BB54: @ 807BB54
lsls r5, r1, 16
lsrs r5, 16
ldr r2, _0807BBD8 @ =gUnknown_83C66C4
- ldr r0, _0807BBDC @ =gUnknown_83C2BBC
+ ldr r0, _0807BBDC @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807BBE0 @ =0x000006dc
adds r0, r1
@@ -1184,7 +1184,7 @@ _0807BBD4:
b _0807BBFC
.align 2, 0
_0807BBD8: .4byte gUnknown_83C66C4
-_0807BBDC: .4byte gUnknown_83C2BBC
+_0807BBDC: .4byte gWeatherPtr
_0807BBE0: .4byte 0x000006dc
_0807BBE4: .4byte 0x0000ffff
_0807BBE8:
@@ -1225,7 +1225,7 @@ CreateRainSprite: @ 807BC18
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0807BCC4 @ =gUnknown_83C2BBC
+ ldr r0, _0807BCC4 @ =gWeatherPtr
ldr r4, [r0]
ldr r0, _0807BCC8 @ =0x000006da
adds r2, r4, r0
@@ -1301,13 +1301,13 @@ _0807BC96:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _0807BCC4 @ =gUnknown_83C2BBC
+ ldr r0, _0807BCC4 @ =gWeatherPtr
ldr r0, [r0]
add r0, r10
str r4, [r0]
b _0807BCE6
.align 2, 0
-_0807BCC4: .4byte gUnknown_83C2BBC
+_0807BCC4: .4byte gWeatherPtr
_0807BCC8: .4byte 0x000006da
_0807BCCC: .4byte gUnknown_83C66A4
_0807BCD0: .4byte gUnknown_83C6608
@@ -1319,7 +1319,7 @@ _0807BCE0:
movs r0, 0
str r0, [r1]
_0807BCE6:
- ldr r0, _0807BD1C @ =gUnknown_83C2BBC
+ ldr r0, _0807BD1C @ =gWeatherPtr
ldr r2, [r0]
ldr r6, _0807BD20 @ =0x000006da
adds r1, r2, r6
@@ -1347,7 +1347,7 @@ _0807BD04:
str r5, [r2, 0x1C]
b _0807BD2E
.align 2, 0
-_0807BD1C: .4byte gUnknown_83C2BBC
+_0807BD1C: .4byte gWeatherPtr
_0807BD20: .4byte 0x000006da
_0807BD24: .4byte sub_807BA24
_0807BD28: .4byte sub_807BB28
@@ -1377,7 +1377,7 @@ _0807BD3E:
thumb_func_start sub_807BD4C
sub_807BD4C: @ 807BD4C
push {r4-r7,lr}
- ldr r0, _0807BD68 @ =gUnknown_83C2BBC
+ ldr r0, _0807BD68 @ =gWeatherPtr
ldr r3, [r0]
movs r0, 0xDB
lsls r0, 3
@@ -1391,7 +1391,7 @@ sub_807BD4C: @ 807BD4C
movs r0, 0
b _0807BDD2
.align 2, 0
-_0807BD68: .4byte gUnknown_83C2BBC
+_0807BD68: .4byte gWeatherPtr
_0807BD6C: .4byte 0x000006d9
_0807BD70:
ldr r0, _0807BDA8 @ =0x000006d6
@@ -1453,7 +1453,7 @@ _0807BDD2:
DestroyRainSprites: @ 807BDD8
push {r4-r7,lr}
movs r4, 0
- ldr r0, _0807BE20 @ =gUnknown_83C2BBC
+ ldr r0, _0807BE20 @ =gWeatherPtr
ldr r2, [r0]
ldr r3, _0807BE24 @ =0x000006da
adds r1, r2, r3
@@ -1489,7 +1489,7 @@ _0807BE0A:
pop {r0}
bx r0
.align 2, 0
-_0807BE20: .4byte gUnknown_83C2BBC
+_0807BE20: .4byte gWeatherPtr
_0807BE24: .4byte 0x000006da
_0807BE28: .4byte 0x00001206
thumb_func_end DestroyRainSprites
@@ -1497,7 +1497,7 @@ _0807BE28: .4byte 0x00001206
thumb_func_start Snow_InitVars
Snow_InitVars: @ 807BE2C
push {r4,lr}
- ldr r0, _0807BE68 @ =gUnknown_83C2BBC
+ ldr r0, _0807BE68 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807BE6C @ =0x000006cc
adds r0, r1, r2
@@ -1527,7 +1527,7 @@ Snow_InitVars: @ 807BE2C
pop {r0}
bx r0
.align 2, 0
-_0807BE68: .4byte gUnknown_83C2BBC
+_0807BE68: .4byte gWeatherPtr
_0807BE6C: .4byte 0x000006cc
_0807BE70: .4byte 0x000006d2
_0807BE74: .4byte 0x000006c1
@@ -1540,7 +1540,7 @@ Snow_InitAll: @ 807BE7C
mov r7, r8
push {r7}
bl Snow_InitVars
- ldr r2, _0807BEDC @ =gUnknown_83C2BBC
+ ldr r2, _0807BEDC @ =gWeatherPtr
ldr r1, [r2]
ldr r3, _0807BEE0 @ =0x000006d2
adds r0, r1, r3
@@ -1559,7 +1559,7 @@ _0807BE98:
ldrb r0, [r0]
cmp r4, r0
bcs _0807BECC
- ldr r0, _0807BEDC @ =gUnknown_83C2BBC
+ ldr r0, _0807BEDC @ =gWeatherPtr
ldr r5, [r0]
adds r6, r5, r3
_0807BEB2:
@@ -1586,7 +1586,7 @@ _0807BED2:
pop {r0}
bx r0
.align 2, 0
-_0807BEDC: .4byte gUnknown_83C2BBC
+_0807BEDC: .4byte gWeatherPtr
_0807BEE0: .4byte 0x000006d2
_0807BEE4: .4byte 0x000006e4
thumb_func_end Snow_InitAll
@@ -1594,7 +1594,7 @@ _0807BEE4: .4byte 0x000006e4
thumb_func_start snowflakes_progress2
snowflakes_progress2: @ 807BEE8
push {r4,r5,lr}
- ldr r0, _0807BF18 @ =gUnknown_83C2BBC
+ ldr r0, _0807BF18 @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807BF1C @ =0x000006cc
adds r4, r5, r0
@@ -1617,7 +1617,7 @@ _0807BF10:
pop {r0}
bx r0
.align 2, 0
-_0807BF18: .4byte gUnknown_83C2BBC
+_0807BF18: .4byte gWeatherPtr
_0807BF1C: .4byte 0x000006cc
_0807BF20: .4byte 0x000006d2
thumb_func_end snowflakes_progress2
@@ -1625,7 +1625,7 @@ _0807BF20: .4byte 0x000006d2
thumb_func_start Snow_Finish
Snow_Finish: @ 807BF24
push {r4,lr}
- ldr r0, _0807BF3C @ =gUnknown_83C2BBC
+ ldr r0, _0807BF3C @ =gWeatherPtr
ldr r2, [r0]
ldr r0, _0807BF40 @ =0x000006ce
adds r3, r2, r0
@@ -1637,7 +1637,7 @@ Snow_Finish: @ 807BF24
movs r0, 0
b _0807BF82
.align 2, 0
-_0807BF3C: .4byte gUnknown_83C2BBC
+_0807BF3C: .4byte gWeatherPtr
_0807BF40: .4byte 0x000006ce
_0807BF44:
ldr r4, _0807BF74 @ =0x000006e5
@@ -1654,7 +1654,7 @@ _0807BF56:
lsls r0, 24
cmp r0, 0
bne _0807BF80
- ldr r0, _0807BF78 @ =gUnknown_83C2BBC
+ ldr r0, _0807BF78 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807BF7C @ =0x000006ce
adds r1, r0
@@ -1665,7 +1665,7 @@ _0807BF56:
b _0807BF82
.align 2, 0
_0807BF74: .4byte 0x000006e5
-_0807BF78: .4byte gUnknown_83C2BBC
+_0807BF78: .4byte gWeatherPtr
_0807BF7C: .4byte 0x000006ce
_0807BF80:
movs r0, 0x1
@@ -1678,7 +1678,7 @@ _0807BF82:
thumb_func_start snowflakes_progress
snowflakes_progress: @ 807BF88
push {r4,lr}
- ldr r0, _0807BFA4 @ =gUnknown_83C2BBC
+ ldr r0, _0807BFA4 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807BFA8 @ =0x000006e4
adds r3, r1, r0
@@ -1691,7 +1691,7 @@ snowflakes_progress: @ 807BF88
movs r0, 0
b _0807BFF2
.align 2, 0
-_0807BFA4: .4byte gUnknown_83C2BBC
+_0807BFA4: .4byte gWeatherPtr
_0807BFA8: .4byte 0x000006e4
_0807BFAC: .4byte 0x000006e5
_0807BFB0:
@@ -1716,7 +1716,7 @@ _0807BFB0:
_0807BFD6:
bl snowflake_remove
_0807BFDA:
- ldr r0, _0807BFF8 @ =gUnknown_83C2BBC
+ ldr r0, _0807BFF8 @ =gWeatherPtr
ldr r0, [r0]
ldr r2, _0807BFFC @ =0x000006e4
adds r1, r0, r2
@@ -1733,7 +1733,7 @@ _0807BFF2:
pop {r1}
bx r1
.align 2, 0
-_0807BFF8: .4byte gUnknown_83C2BBC
+_0807BFF8: .4byte gWeatherPtr
_0807BFFC: .4byte 0x000006e4
_0807C000: .4byte 0x000006e5
thumb_func_end snowflakes_progress
@@ -1755,7 +1755,7 @@ snowflake_add: @ 807C004
adds r4, r1
lsls r4, 2
adds r4, r0
- ldr r0, _0807C060 @ =gUnknown_83C2BBC
+ ldr r0, _0807C060 @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807C064 @ =0x000006e4
adds r6, r5, r0
@@ -1782,7 +1782,7 @@ snowflake_add: @ 807C004
.align 2, 0
_0807C058: .4byte gUnknown_83C6704
_0807C05C: .4byte gSprites
-_0807C060: .4byte gUnknown_83C2BBC
+_0807C060: .4byte gWeatherPtr
_0807C064: .4byte 0x000006e4
_0807C068:
movs r0, 0
@@ -1795,7 +1795,7 @@ _0807C06A:
thumb_func_start snowflake_remove
snowflake_remove: @ 807C070
push {lr}
- ldr r0, _0807C084 @ =gUnknown_83C2BBC
+ ldr r0, _0807C084 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807C088 @ =0x000006e4
adds r2, r1, r0
@@ -1805,7 +1805,7 @@ snowflake_remove: @ 807C070
movs r0, 0
b _0807C0A0
.align 2, 0
-_0807C084: .4byte gUnknown_83C2BBC
+_0807C084: .4byte gWeatherPtr
_0807C088: .4byte 0x000006e4
_0807C08C:
subs r0, 0x1
@@ -1911,7 +1911,7 @@ _0807C14C: .4byte gSpriteCoordOffsetX
sub_807C150: @ 807C150
push {r4,lr}
adds r3, r0, 0
- ldr r0, _0807C19C @ =gUnknown_83C2BBC
+ ldr r0, _0807C19C @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807C1A0 @ =0x000006e2
adds r4, r0, r1
@@ -1949,7 +1949,7 @@ _0807C196:
pop {r0}
bx r0
.align 2, 0
-_0807C19C: .4byte gUnknown_83C2BBC
+_0807C19C: .4byte gWeatherPtr
_0807C1A0: .4byte 0x000006e2
_0807C1A4: .4byte sub_807C1AC
_0807C1A8: .4byte gSpriteCoordOffsetY
@@ -2120,7 +2120,7 @@ _0807C2E0: .4byte sub_807C150
thumb_func_start sub_807C2E4
sub_807C2E4: @ 807C2E4
push {r4,r5,lr}
- ldr r0, _0807C33C @ =gUnknown_83C2BBC
+ ldr r0, _0807C33C @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C340 @ =0x000006cc
adds r0, r1, r2
@@ -2162,7 +2162,7 @@ sub_807C2E4: @ 807C2E4
pop {r0}
bx r0
.align 2, 0
-_0807C33C: .4byte gUnknown_83C2BBC
+_0807C33C: .4byte gWeatherPtr
_0807C340: .4byte 0x000006cc
_0807C344: .4byte 0x000006d2
_0807C348: .4byte 0x000006db
@@ -2175,7 +2175,7 @@ _0807C354: .4byte 0x000006ed
sub_807C358: @ 807C358
push {r4,lr}
bl sub_807C2E4
- ldr r0, _0807C380 @ =gUnknown_83C2BBC
+ ldr r0, _0807C380 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C384 @ =0x000006d2
adds r0, r1, r2
@@ -2193,14 +2193,14 @@ _0807C378:
pop {r0}
bx r0
.align 2, 0
-_0807C380: .4byte gUnknown_83C2BBC
+_0807C380: .4byte gWeatherPtr
_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 r0, _0807C3DC @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C3E0 @ =0x000006cc
adds r0, r1, r2
@@ -2240,7 +2240,7 @@ sub_807C388: @ 807C388
pop {r0}
bx r0
.align 2, 0
-_0807C3DC: .4byte gUnknown_83C2BBC
+_0807C3DC: .4byte gWeatherPtr
_0807C3E0: .4byte 0x000006cc
_0807C3E4: .4byte 0x000006d2
_0807C3E8: .4byte 0x000006db
@@ -2252,7 +2252,7 @@ _0807C3F0: .4byte 0x000006c2
sub_807C3F4: @ 807C3F4
push {r4,lr}
bl sub_807C388
- ldr r0, _0807C41C @ =gUnknown_83C2BBC
+ ldr r0, _0807C41C @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C420 @ =0x000006d2
adds r0, r1, r2
@@ -2270,7 +2270,7 @@ _0807C414:
pop {r0}
bx r0
.align 2, 0
-_0807C41C: .4byte gUnknown_83C2BBC
+_0807C41C: .4byte gWeatherPtr
_0807C420: .4byte 0x000006d2
thumb_func_end sub_807C3F4
@@ -2278,7 +2278,7 @@ _0807C420: .4byte 0x000006d2
Rain_Main: @ 807C424
push {r4,r5,lr}
bl UpdateThunderSound
- ldr r0, _0807C444 @ =gUnknown_83C2BBC
+ ldr r0, _0807C444 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807C448 @ =0x000006cc
adds r0, r1
@@ -2293,7 +2293,7 @@ _0807C43A:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0807C444: .4byte gUnknown_83C2BBC
+_0807C444: .4byte gWeatherPtr
_0807C448: .4byte 0x000006cc
_0807C44C: .4byte _0807C450
.align 2, 0
@@ -2315,7 +2315,7 @@ _0807C450:
.4byte _0807C77C
_0807C48C:
bl LoadRainSpriteSheet
- ldr r0, _0807C4A0 @ =gUnknown_83C2BBC
+ ldr r0, _0807C4A0 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C4A4 @ =0x000006cc
adds r1, r2
@@ -2323,7 +2323,7 @@ _0807C48C:
adds r0, 0x1
b _0807C798
.align 2, 0
-_0807C4A0: .4byte gUnknown_83C2BBC
+_0807C4A0: .4byte gWeatherPtr
_0807C4A4: .4byte 0x000006cc
_0807C4A8:
bl CreateRainSprite
@@ -2332,7 +2332,7 @@ _0807C4A8:
beq _0807C4B4
b _0807C79A
_0807C4B4:
- ldr r0, _0807C4C4 @ =gUnknown_83C2BBC
+ ldr r0, _0807C4C4 @ =gWeatherPtr
ldr r1, [r0]
ldr r3, _0807C4C8 @ =0x000006cc
adds r1, r3
@@ -2340,7 +2340,7 @@ _0807C4B4:
adds r0, 0x1
b _0807C798
.align 2, 0
-_0807C4C4: .4byte gUnknown_83C2BBC
+_0807C4C4: .4byte gWeatherPtr
_0807C4C8: .4byte 0x000006cc
_0807C4CC:
bl sub_807BD4C
@@ -2349,7 +2349,7 @@ _0807C4CC:
beq _0807C4D8
b _0807C79A
_0807C4D8:
- ldr r0, _0807C4F0 @ =gUnknown_83C2BBC
+ ldr r0, _0807C4F0 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807C4F4 @ =0x000006d2
adds r2, r1, r0
@@ -2361,11 +2361,11 @@ _0807C4D8:
adds r0, 0x1
b _0807C798
.align 2, 0
-_0807C4F0: .4byte gUnknown_83C2BBC
+_0807C4F0: .4byte gWeatherPtr
_0807C4F4: .4byte 0x000006d2
_0807C4F8: .4byte 0x000006cc
_0807C4FC:
- ldr r0, _0807C514 @ =gUnknown_83C2BBC
+ ldr r0, _0807C514 @ =gWeatherPtr
ldr r1, [r0]
ldr r3, _0807C518 @ =0x000006c6
adds r0, r1, r3
@@ -2379,11 +2379,11 @@ _0807C50C:
movs r0, 0x6
b _0807C798
.align 2, 0
-_0807C514: .4byte gUnknown_83C2BBC
+_0807C514: .4byte gWeatherPtr
_0807C518: .4byte 0x000006c6
_0807C51C: .4byte 0x000006cc
_0807C520:
- ldr r0, _0807C570 @ =gUnknown_83C2BBC
+ ldr r0, _0807C570 @ =gWeatherPtr
ldr r4, [r0]
ldr r2, _0807C574 @ =0x000006ea
adds r1, r4, r2
@@ -2406,7 +2406,7 @@ _0807C520:
adds r0, 0x1
strh r0, [r4]
_0807C550:
- ldr r0, _0807C570 @ =gUnknown_83C2BBC
+ ldr r0, _0807C570 @ =gWeatherPtr
ldr r2, [r0]
ldr r3, _0807C578 @ =0x000006e6
adds r1, r2, r3
@@ -2424,12 +2424,12 @@ _0807C566:
adds r0, 0x1
b _0807C798
.align 2, 0
-_0807C570: .4byte gUnknown_83C2BBC
+_0807C570: .4byte gWeatherPtr
_0807C574: .4byte 0x000006ea
_0807C578: .4byte 0x000006e6
_0807C57C: .4byte 0x000006cc
_0807C580:
- ldr r0, _0807C5A0 @ =gUnknown_83C2BBC
+ ldr r0, _0807C5A0 @ =gWeatherPtr
ldr r4, [r0]
ldr r1, _0807C5A4 @ =0x000006ea
adds r0, r4, r1
@@ -2444,12 +2444,12 @@ _0807C580:
strb r0, [r1]
b _0807C608
.align 2, 0
-_0807C5A0: .4byte gUnknown_83C2BBC
+_0807C5A0: .4byte gWeatherPtr
_0807C5A4: .4byte 0x000006ea
_0807C5A8: .4byte 0x000006eb
_0807C5AC:
bl Random
- ldr r1, _0807C614 @ =gUnknown_83C2BBC
+ ldr r1, _0807C614 @ =gWeatherPtr
ldr r2, [r1]
movs r1, 0x1
ands r1, r0
@@ -2465,7 +2465,7 @@ _0807C5AC:
_0807C5CA:
movs r0, 0x13
bl sub_807A790
- ldr r0, _0807C614 @ =gUnknown_83C2BBC
+ ldr r0, _0807C614 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C620 @ =0x000006eb
adds r0, r1, r2
@@ -2481,7 +2481,7 @@ _0807C5CA:
bl SetThunderCounter
_0807C5EE:
bl Random
- ldr r1, _0807C614 @ =gUnknown_83C2BBC
+ ldr r1, _0807C614 @ =gWeatherPtr
ldr r4, [r1]
lsls r0, 16
lsrs r0, 16
@@ -2499,13 +2499,13 @@ _0807C608:
strh r0, [r4]
b _0807C79A
.align 2, 0
-_0807C614: .4byte gUnknown_83C2BBC
+_0807C614: .4byte gWeatherPtr
_0807C618: .4byte 0x000006ec
_0807C61C: .4byte 0x000006cc
_0807C620: .4byte 0x000006eb
_0807C624: .4byte 0x000006e6
_0807C628:
- ldr r0, _0807C674 @ =gUnknown_83C2BBC
+ ldr r0, _0807C674 @ =gWeatherPtr
ldr r4, [r0]
ldr r0, _0807C678 @ =0x000006e6
adds r5, r4, r0
@@ -2543,7 +2543,7 @@ _0807C63E:
movs r0, 0xA
b _0807C798
.align 2, 0
-_0807C674: .4byte gUnknown_83C2BBC
+_0807C674: .4byte gWeatherPtr
_0807C678: .4byte 0x000006e6
_0807C67C: .4byte 0x000006ea
_0807C680: .4byte 0x000006ec
@@ -2568,7 +2568,7 @@ _0807C6A0:
.align 2, 0
_0807C6A8: .4byte 0x000006cc
_0807C6AC:
- ldr r0, _0807C6C8 @ =gUnknown_83C2BBC
+ ldr r0, _0807C6C8 @ =gWeatherPtr
ldr r2, [r0]
ldr r0, _0807C6CC @ =0x000006e6
adds r1, r2, r0
@@ -2583,12 +2583,12 @@ _0807C6AC:
movs r0, 0x8
b _0807C798
.align 2, 0
-_0807C6C8: .4byte gUnknown_83C2BBC
+_0807C6C8: .4byte gWeatherPtr
_0807C6CC: .4byte 0x000006e6
_0807C6D0: .4byte 0x000006cc
_0807C6D4:
bl Random
- ldr r1, _0807C6F8 @ =gUnknown_83C2BBC
+ ldr r1, _0807C6F8 @ =gWeatherPtr
ldr r2, [r1]
lsls r0, 16
lsrs r0, 16
@@ -2605,11 +2605,11 @@ _0807C6D4:
strh r0, [r2]
b _0807C79A
.align 2, 0
-_0807C6F8: .4byte gUnknown_83C2BBC
+_0807C6F8: .4byte gWeatherPtr
_0807C6FC: .4byte 0x000006e6
_0807C700: .4byte 0x000006cc
_0807C704:
- ldr r0, _0807C73C @ =gUnknown_83C2BBC
+ ldr r0, _0807C73C @ =gWeatherPtr
ldr r5, [r0]
ldr r1, _0807C740 @ =0x000006e6
adds r4, r5, r1
@@ -2634,11 +2634,11 @@ _0807C704:
adds r0, 0x1
b _0807C798
.align 2, 0
-_0807C73C: .4byte gUnknown_83C2BBC
+_0807C73C: .4byte gWeatherPtr
_0807C740: .4byte 0x000006e6
_0807C744: .4byte 0x000006cc
_0807C748:
- ldr r0, _0807C770 @ =gUnknown_83C2BBC
+ ldr r0, _0807C770 @ =gWeatherPtr
ldr r4, [r0]
ldr r3, _0807C774 @ =0x000006e6
adds r1, r4, r3
@@ -2658,11 +2658,11 @@ _0807C748:
adds r0, 0x1
b _0807C798
.align 2, 0
-_0807C770: .4byte gUnknown_83C2BBC
+_0807C770: .4byte gWeatherPtr
_0807C774: .4byte 0x000006e6
_0807C778: .4byte 0x000006cc
_0807C77C:
- ldr r0, _0807C7A0 @ =gUnknown_83C2BBC
+ ldr r0, _0807C7A0 @ =gWeatherPtr
ldr r2, [r0]
ldr r1, _0807C7A4 @ =0x000006c6
adds r0, r2, r1
@@ -2684,7 +2684,7 @@ _0807C79A:
pop {r0}
bx r0
.align 2, 0
-_0807C7A0: .4byte gUnknown_83C2BBC
+_0807C7A0: .4byte gWeatherPtr
_0807C7A4: .4byte 0x000006c6
_0807C7A8: .4byte 0x000006ea
_0807C7AC: .4byte 0x000006cc
@@ -2693,7 +2693,7 @@ _0807C7AC: .4byte 0x000006cc
thumb_func_start Rain_Finish
Rain_Finish: @ 807C7B0
push {r4-r6,lr}
- ldr r0, _0807C7CC @ =gUnknown_83C2BBC
+ ldr r0, _0807C7CC @ =gWeatherPtr
ldr r6, [r0]
ldr r0, _0807C7D0 @ =0x000006ce
adds r5, r6, r0
@@ -2706,7 +2706,7 @@ Rain_Finish: @ 807C7B0
beq _0807C7DA
b _0807C84C
.align 2, 0
-_0807C7CC: .4byte gUnknown_83C2BBC
+_0807C7CC: .4byte gWeatherPtr
_0807C7D0: .4byte 0x000006ce
_0807C7D4:
cmp r1, 0x2
@@ -2721,7 +2721,7 @@ _0807C7DA:
strh r0, [r5]
_0807C7E6:
bl Rain_Main
- ldr r0, _0807C824 @ =gUnknown_83C2BBC
+ ldr r0, _0807C824 @ =gWeatherPtr
ldr r2, [r0]
ldr r1, _0807C820 @ =0x000006ea
adds r0, r2, r1
@@ -2749,7 +2749,7 @@ _0807C7E6:
b _0807C854
.align 2, 0
_0807C820: .4byte 0x000006ea
-_0807C824: .4byte gUnknown_83C2BBC
+_0807C824: .4byte gWeatherPtr
_0807C828: .4byte 0x000006d9
_0807C82C: .4byte 0x000006ce
_0807C830:
@@ -2783,7 +2783,7 @@ SetThunderCounter: @ 807C85C
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
- ldr r0, _0807C890 @ =gUnknown_83C2BBC
+ ldr r0, _0807C890 @ =gWeatherPtr
ldr r4, [r0]
ldr r0, _0807C894 @ =0x000006ed
adds r5, r4, r0
@@ -2806,14 +2806,14 @@ _0807C88A:
pop {r0}
bx r0
.align 2, 0
-_0807C890: .4byte gUnknown_83C2BBC
+_0807C890: .4byte gWeatherPtr
_0807C894: .4byte 0x000006ed
thumb_func_end SetThunderCounter
thumb_func_start UpdateThunderSound
UpdateThunderSound: @ 807C898
push {r4,lr}
- ldr r0, _0807C8D0 @ =gUnknown_83C2BBC
+ ldr r0, _0807C8D0 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C8D4 @ =0x000006ed
adds r0, r1, r2
@@ -2838,13 +2838,13 @@ UpdateThunderSound: @ 807C898
bl PlaySE
b _0807C8DE
.align 2, 0
-_0807C8D0: .4byte gUnknown_83C2BBC
+_0807C8D0: .4byte gWeatherPtr
_0807C8D4: .4byte 0x000006ed
_0807C8D8:
movs r0, 0x51
bl PlaySE
_0807C8DE:
- ldr r0, _0807C8EC @ =gUnknown_83C2BBC
+ ldr r0, _0807C8EC @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807C8F0 @ =0x000006ed
adds r0, r1
@@ -2852,7 +2852,7 @@ _0807C8DE:
strb r1, [r0]
b _0807C8F8
.align 2, 0
-_0807C8EC: .4byte gUnknown_83C2BBC
+_0807C8EC: .4byte gWeatherPtr
_0807C8F0: .4byte 0x000006ed
_0807C8F4:
subs r0, 0x1
@@ -2866,7 +2866,7 @@ _0807C8F8:
thumb_func_start Fog1_InitVars
Fog1_InitVars: @ 807C900
push {lr}
- ldr r0, _0807C94C @ =gUnknown_83C2BBC
+ ldr r0, _0807C94C @ =gWeatherPtr
ldr r3, [r0]
ldr r0, _0807C950 @ =0x000006cc
adds r1, r3, r0
@@ -2904,7 +2904,7 @@ _0807C948:
pop {r0}
bx r0
.align 2, 0
-_0807C94C: .4byte gUnknown_83C2BBC
+_0807C94C: .4byte gWeatherPtr
_0807C950: .4byte 0x000006cc
_0807C954: .4byte 0x000006d2
_0807C958: .4byte 0x000006c2
@@ -2915,7 +2915,7 @@ _0807C95C: .4byte 0x000006fb
Fog1_InitAll: @ 807C960
push {r4,lr}
bl Fog1_InitVars
- ldr r0, _0807C988 @ =gUnknown_83C2BBC
+ ldr r0, _0807C988 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807C98C @ =0x000006d2
adds r0, r1, r2
@@ -2933,14 +2933,14 @@ _0807C980:
pop {r0}
bx r0
.align 2, 0
-_0807C988: .4byte gUnknown_83C2BBC
+_0807C988: .4byte gWeatherPtr
_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 r0, _0807C9DC @ =gWeatherPtr
ldr r6, [r0]
ldr r0, _0807C9E0 @ =gSpriteCoordOffsetX
ldr r1, _0807C9E4 @ =0x000006f2
@@ -2978,7 +2978,7 @@ _0807C9CA:
beq _0807CA30
b _0807CA46
.align 2, 0
-_0807C9DC: .4byte gUnknown_83C2BBC
+_0807C9DC: .4byte gWeatherPtr
_0807C9E0: .4byte gSpriteCoordOffsetX
_0807C9E4: .4byte 0x000006f2
_0807C9E8: .4byte 0x000006ee
@@ -3002,7 +3002,7 @@ _0807CA0C:
movs r2, 0
bl Weather_SetTargetBlendCoeffs
_0807CA16:
- ldr r0, _0807CA28 @ =gUnknown_83C2BBC
+ ldr r0, _0807CA28 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807CA2C @ =0x000006cc
adds r1, r0
@@ -3011,7 +3011,7 @@ _0807CA16:
strh r0, [r1]
b _0807CA46
.align 2, 0
-_0807CA28: .4byte gUnknown_83C2BBC
+_0807CA28: .4byte gWeatherPtr
_0807CA2C: .4byte 0x000006cc
_0807CA30:
bl Weather_UpdateBlend
@@ -3035,7 +3035,7 @@ _0807CA4C: .4byte 0x000006d2
thumb_func_start Fog1_Finish
Fog1_Finish: @ 807CA50
push {r4,lr}
- ldr r0, _0807CAA0 @ =gUnknown_83C2BBC
+ ldr r0, _0807CAA0 @ =gWeatherPtr
ldr r2, [r0]
ldr r0, _0807CAA4 @ =gSpriteCoordOffsetX
ldr r1, _0807CAA8 @ =0x000006f2
@@ -3075,7 +3075,7 @@ _0807CA8A:
beq _0807CABA
b _0807CADE
.align 2, 0
-_0807CAA0: .4byte gUnknown_83C2BBC
+_0807CAA0: .4byte gWeatherPtr
_0807CAA4: .4byte gSpriteCoordOffsetX
_0807CAA8: .4byte 0x000006f2
_0807CAAC: .4byte 0x000006ee
@@ -3121,7 +3121,7 @@ Fog1SpriteCallback: @ 807CAEC
ldr r0, _0807CB38 @ =gSpriteCoordOffsetY
ldrb r0, [r0]
strh r0, [r3, 0x26]
- ldr r0, _0807CB3C @ =gUnknown_83C2BBC
+ ldr r0, _0807CB3C @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807CB40 @ =0x000006ee
adds r2, r0, r1
@@ -3156,7 +3156,7 @@ _0807CB30:
bx r0
.align 2, 0
_0807CB38: .4byte gSpriteCoordOffsetY
-_0807CB3C: .4byte gUnknown_83C2BBC
+_0807CB3C: .4byte gWeatherPtr
_0807CB40: .4byte 0x000006ee
_0807CB44: .4byte 0x010f0000
_0807CB48: .4byte 0x000001ff
@@ -3166,7 +3166,7 @@ _0807CB48: .4byte 0x000001ff
CreateFog1Sprites: @ 807CB4C
push {r4,r5,lr}
sub sp, 0x8
- ldr r0, _0807CBC0 @ =gUnknown_83C2BBC
+ ldr r0, _0807CBC0 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807CBC4 @ =0x000006fb
adds r0, r1
@@ -3211,7 +3211,7 @@ _0807CB70:
lsrs r0, 10
adds r0, 0x20
strh r0, [r4, 0x22]
- ldr r2, _0807CBC0 @ =gUnknown_83C2BBC
+ ldr r2, _0807CBC0 @ =gWeatherPtr
ldr r0, [r2]
lsls r1, r5, 2
adds r0, 0xA0
@@ -3219,13 +3219,13 @@ _0807CB70:
str r4, [r0]
b _0807CBE2
.align 2, 0
-_0807CBC0: .4byte gUnknown_83C2BBC
+_0807CBC0: .4byte gWeatherPtr
_0807CBC4: .4byte 0x000006fb
_0807CBC8: .4byte gUnknown_83C67A8
_0807CBCC: .4byte gUnknown_83C6790
_0807CBD0: .4byte gSprites
_0807CBD4:
- ldr r2, _0807CC00 @ =gUnknown_83C2BBC
+ ldr r2, _0807CC00 @ =gWeatherPtr
ldr r1, [r2]
lsls r0, r5, 2
adds r1, 0xA0
@@ -3249,14 +3249,14 @@ _0807CBF6:
pop {r0}
bx r0
.align 2, 0
-_0807CC00: .4byte gUnknown_83C2BBC
+_0807CC00: .4byte gWeatherPtr
_0807CC04: .4byte 0x000006fb
thumb_func_end CreateFog1Sprites
thumb_func_start DestroyFog1Sprites
DestroyFog1Sprites: @ 807CC08
push {r4,r5,lr}
- ldr r0, _0807CC50 @ =gUnknown_83C2BBC
+ ldr r0, _0807CC50 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807CC54 @ =0x000006fb
adds r0, r1, r2
@@ -3281,7 +3281,7 @@ _0807CC2C:
bls _0807CC1E
ldr r0, _0807CC58 @ =0x00001201
bl FreeSpriteTilesByTag
- ldr r0, _0807CC50 @ =gUnknown_83C2BBC
+ ldr r0, _0807CC50 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807CC54 @ =0x000006fb
adds r0, r1
@@ -3292,7 +3292,7 @@ _0807CC48:
pop {r0}
bx r0
.align 2, 0
-_0807CC50: .4byte gUnknown_83C2BBC
+_0807CC50: .4byte gWeatherPtr
_0807CC54: .4byte 0x000006fb
_0807CC58: .4byte 0x00001201
thumb_func_end DestroyFog1Sprites
@@ -3300,7 +3300,7 @@ _0807CC58: .4byte 0x00001201
thumb_func_start Ash_InitVars
Ash_InitVars: @ 807CC5C
push {lr}
- ldr r0, _0807CCA8 @ =gUnknown_83C2BBC
+ ldr r0, _0807CCA8 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807CCAC @ =0x000006cc
adds r2, r1, r0
@@ -3337,7 +3337,7 @@ _0807CCA4:
pop {r0}
bx r0
.align 2, 0
-_0807CCA8: .4byte gUnknown_83C2BBC
+_0807CCA8: .4byte gWeatherPtr
_0807CCAC: .4byte 0x000006cc
_0807CCB0: .4byte 0x000006d2
_0807CCB4: .4byte 0x000006c2
@@ -3347,7 +3347,7 @@ _0807CCB4: .4byte 0x000006c2
Ash_InitAll: @ 807CCB8
push {r4,lr}
bl Ash_InitVars
- ldr r0, _0807CCE0 @ =gUnknown_83C2BBC
+ ldr r0, _0807CCE0 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807CCE4 @ =0x000006d2
adds r0, r1, r2
@@ -3365,14 +3365,14 @@ _0807CCD8:
pop {r0}
bx r0
.align 2, 0
-_0807CCE0: .4byte gUnknown_83C2BBC
+_0807CCE0: .4byte gWeatherPtr
_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 r2, _0807CD2C @ =gWeatherPtr
ldr r1, [r2]
ldr r0, _0807CD30 @ =gSpriteCoordOffsetX
ldrh r0, [r0]
@@ -3407,7 +3407,7 @@ _0807CD14:
beq _0807CD46
b _0807CD88
.align 2, 0
-_0807CD2C: .4byte gUnknown_83C2BBC
+_0807CD2C: .4byte gWeatherPtr
_0807CD30: .4byte gSpriteCoordOffsetX
_0807CD34: .4byte 0x000001ff
_0807CD38: .4byte 0x000006fc
@@ -3460,7 +3460,7 @@ _0807CD8C:
thumb_func_start Ash_Finish
Ash_Finish: @ 807CD94
push {r4,lr}
- ldr r0, _0807CDB0 @ =gUnknown_83C2BBC
+ ldr r0, _0807CDB0 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807CDB4 @ =0x000006ce
adds r4, r0, r1
@@ -3473,7 +3473,7 @@ Ash_Finish: @ 807CD94
beq _0807CDBE
b _0807CDEE
.align 2, 0
-_0807CDB0: .4byte gUnknown_83C2BBC
+_0807CDB0: .4byte gWeatherPtr
_0807CDB4: .4byte 0x000006ce
_0807CDB8:
cmp r0, 0x2
@@ -3528,7 +3528,7 @@ _0807CE08: .4byte gUnknown_83C67B0
thumb_func_start CreateAshSprites
CreateAshSprites: @ 807CE0C
push {r4,r5,lr}
- ldr r0, _0807CE78 @ =gUnknown_83C2BBC
+ ldr r0, _0807CE78 @ =gWeatherPtr
ldr r0, [r0]
movs r1, 0xE0
lsls r1, 3
@@ -3571,7 +3571,7 @@ _0807CE20:
lsls r0, 6
adds r0, 0x20
strh r0, [r4, 0x2E]
- ldr r2, _0807CE78 @ =gUnknown_83C2BBC
+ ldr r2, _0807CE78 @ =gWeatherPtr
ldr r0, [r2]
lsls r1, r5, 2
adds r0, 0xF0
@@ -3579,11 +3579,11 @@ _0807CE20:
str r4, [r0]
b _0807CE92
.align 2, 0
-_0807CE78: .4byte gUnknown_83C2BBC
+_0807CE78: .4byte gWeatherPtr
_0807CE7C: .4byte gUnknown_83C67D0
_0807CE80: .4byte gSprites
_0807CE84:
- ldr r2, _0807CEB0 @ =gUnknown_83C2BBC
+ ldr r2, _0807CEB0 @ =gWeatherPtr
ldr r1, [r2]
lsls r0, r5, 2
adds r1, 0xF0
@@ -3607,13 +3607,13 @@ _0807CEA8:
pop {r0}
bx r0
.align 2, 0
-_0807CEB0: .4byte gUnknown_83C2BBC
+_0807CEB0: .4byte gWeatherPtr
thumb_func_end CreateAshSprites
thumb_func_start DestroyAshSprites
DestroyAshSprites: @ 807CEB4
push {r4,r5,lr}
- ldr r0, _0807CF00 @ =gUnknown_83C2BBC
+ ldr r0, _0807CF00 @ =gWeatherPtr
ldr r1, [r0]
movs r2, 0xE0
lsls r2, 3
@@ -3639,7 +3639,7 @@ _0807CEDA:
bls _0807CECC
ldr r0, _0807CF04 @ =0x00001202
bl FreeSpriteTilesByTag
- ldr r0, _0807CF00 @ =gUnknown_83C2BBC
+ ldr r0, _0807CF00 @ =gWeatherPtr
ldr r0, [r0]
movs r1, 0xE0
lsls r1, 3
@@ -3651,7 +3651,7 @@ _0807CEF8:
pop {r0}
bx r0
.align 2, 0
-_0807CF00: .4byte gUnknown_83C2BBC
+_0807CF00: .4byte gWeatherPtr
_0807CF04: .4byte 0x00001202
thumb_func_end DestroyAshSprites
@@ -3677,7 +3677,7 @@ _0807CF24:
ldrh r1, [r1]
adds r0, r1
strh r0, [r3, 0x22]
- ldr r0, _0807CF74 @ =gUnknown_83C2BBC
+ ldr r0, _0807CF74 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807CF78 @ =0x000006fc
adds r2, r0, r1
@@ -3712,7 +3712,7 @@ _0807CF68:
bx r0
.align 2, 0
_0807CF70: .4byte gSpriteCoordOffsetY
-_0807CF74: .4byte gUnknown_83C2BBC
+_0807CF74: .4byte gWeatherPtr
_0807CF78: .4byte 0x000006fc
_0807CF7C: .4byte 0x010f0000
_0807CF80: .4byte 0x000001ff
@@ -3721,7 +3721,7 @@ _0807CF80: .4byte 0x000001ff
thumb_func_start Fog2_InitVars
Fog2_InitVars: @ 807CF84
push {r4,lr}
- ldr r0, _0807CFF4 @ =gUnknown_83C2BBC
+ ldr r0, _0807CFF4 @ =gWeatherPtr
ldr r3, [r0]
ldr r1, _0807CFF8 @ =0x000006cc
adds r0, r3, r1
@@ -3777,7 +3777,7 @@ _0807CFEE:
pop {r0}
bx r0
.align 2, 0
-_0807CFF4: .4byte gUnknown_83C2BBC
+_0807CFF4: .4byte gWeatherPtr
_0807CFF8: .4byte 0x000006cc
_0807CFFC: .4byte 0x000006d2
_0807D000: .4byte 0x000006c2
@@ -3788,7 +3788,7 @@ _0807D004: .4byte 0x00000724
Fog2_InitAll: @ 807D008
push {r4,lr}
bl Fog2_InitVars
- ldr r0, _0807D030 @ =gUnknown_83C2BBC
+ ldr r0, _0807D030 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D034 @ =0x000006d2
adds r0, r1, r2
@@ -3806,7 +3806,7 @@ _0807D028:
pop {r0}
bx r0
.align 2, 0
-_0807D030: .4byte gUnknown_83C2BBC
+_0807D030: .4byte gWeatherPtr
_0807D034: .4byte 0x000006d2
thumb_func_end Fog2_InitAll
@@ -3814,7 +3814,7 @@ _0807D034: .4byte 0x000006d2
Fog2_Main: @ 807D038
push {r4,r5,lr}
bl sub_807D0FC
- ldr r0, _0807D058 @ =gUnknown_83C2BBC
+ ldr r0, _0807D058 @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807D05C @ =0x000006cc
adds r4, r5, r0
@@ -3827,7 +3827,7 @@ Fog2_Main: @ 807D038
beq _0807D066
b _0807D090
.align 2, 0
-_0807D058: .4byte gUnknown_83C2BBC
+_0807D058: .4byte gWeatherPtr
_0807D05C: .4byte 0x000006cc
_0807D060:
cmp r0, 0x2
@@ -3867,7 +3867,7 @@ _0807D098: .4byte 0x000006d2
Fog2_Finish: @ 807D09C
push {r4,lr}
bl sub_807D0FC
- ldr r0, _0807D0BC @ =gUnknown_83C2BBC
+ ldr r0, _0807D0BC @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D0C0 @ =0x000006ce
adds r4, r0, r1
@@ -3880,7 +3880,7 @@ Fog2_Finish: @ 807D09C
beq _0807D0CA
b _0807D0EE
.align 2, 0
-_0807D0BC: .4byte gUnknown_83C2BBC
+_0807D0BC: .4byte gWeatherPtr
_0807D0C0: .4byte 0x000006ce
_0807D0C4:
cmp r0, 0x2
@@ -3919,7 +3919,7 @@ _0807D0F4:
thumb_func_start sub_807D0FC
sub_807D0FC: @ 807D0FC
push {r4,r5,lr}
- ldr r0, _0807D174 @ =gUnknown_83C2BBC
+ ldr r0, _0807D174 @ =gWeatherPtr
ldr r3, [r0]
ldr r0, _0807D178 @ =0x0000071c
adds r2, r3, r0
@@ -3981,7 +3981,7 @@ _0807D144:
pop {r0}
bx r0
.align 2, 0
-_0807D174: .4byte gUnknown_83C2BBC
+_0807D174: .4byte gWeatherPtr
_0807D178: .4byte 0x0000071c
_0807D17C: .4byte 0x0000ffff
_0807D180: .4byte 0x0000071e
@@ -3994,7 +3994,7 @@ _0807D18C: .4byte gSpriteCoordOffsetY
CreateFog2Sprites: @ 807D190
push {r4-r6,lr}
sub sp, 0x8
- ldr r0, _0807D1FC @ =gUnknown_83C2BBC
+ ldr r0, _0807D1FC @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D200 @ =0x00000724
adds r0, r1
@@ -4034,7 +4034,7 @@ _0807D1B4:
bl __umodsi3
strh r0, [r4, 0x2E]
strh r5, [r4, 0x30]
- ldr r2, _0807D1FC @ =gUnknown_83C2BBC
+ ldr r2, _0807D1FC @ =gWeatherPtr
ldr r0, [r2]
lsls r1, r6, 2
movs r3, 0xA0
@@ -4044,13 +4044,13 @@ _0807D1B4:
str r4, [r0]
b _0807D222
.align 2, 0
-_0807D1FC: .4byte gUnknown_83C2BBC
+_0807D1FC: .4byte gWeatherPtr
_0807D200: .4byte 0x00000724
_0807D204: .4byte gUnknown_83C67E8
_0807D208: .4byte gUnknown_83C6804
_0807D20C: .4byte gSprites
_0807D210:
- ldr r2, _0807D240 @ =gUnknown_83C2BBC
+ ldr r2, _0807D240 @ =gWeatherPtr
ldr r1, [r2]
lsls r0, r6, 2
movs r3, 0xA0
@@ -4076,14 +4076,14 @@ _0807D236:
pop {r0}
bx r0
.align 2, 0
-_0807D240: .4byte gUnknown_83C2BBC
+_0807D240: .4byte gWeatherPtr
_0807D244: .4byte 0x00000724
thumb_func_end CreateFog2Sprites
thumb_func_start DestroyFog2Sprites
DestroyFog2Sprites: @ 807D248
push {r4,r5,lr}
- ldr r0, _0807D290 @ =gUnknown_83C2BBC
+ ldr r0, _0807D290 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D294 @ =0x00000724
adds r0, r1, r2
@@ -4109,7 +4109,7 @@ _0807D26E:
bls _0807D260
ldr r0, _0807D298 @ =0x00001203
bl FreeSpriteTilesByTag
- ldr r0, _0807D290 @ =gUnknown_83C2BBC
+ ldr r0, _0807D290 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D294 @ =0x00000724
adds r0, r1
@@ -4120,7 +4120,7 @@ _0807D28A:
pop {r0}
bx r0
.align 2, 0
-_0807D290: .4byte gUnknown_83C2BBC
+_0807D290: .4byte gWeatherPtr
_0807D294: .4byte 0x00000724
_0807D298: .4byte 0x00001203
thumb_func_end DestroyFog2Sprites
@@ -4129,7 +4129,7 @@ _0807D298: .4byte 0x00001203
Fog2SpriteCallback: @ 807D29C
push {r4,lr}
adds r3, r0, 0
- ldr r0, _0807D2EC @ =gUnknown_83C2BBC
+ ldr r0, _0807D2EC @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D2F0 @ =0x0000071a
adds r0, r1, r2
@@ -4168,7 +4168,7 @@ _0807D2E4:
pop {r0}
bx r0
.align 2, 0
-_0807D2EC: .4byte gUnknown_83C2BBC
+_0807D2EC: .4byte gWeatherPtr
_0807D2F0: .4byte 0x0000071a
_0807D2F4: .4byte 0x010f0000
_0807D2F8: .4byte 0x000001ff
@@ -4177,7 +4177,7 @@ _0807D2F8: .4byte 0x000001ff
thumb_func_start Sandstorm_InitVars
Sandstorm_InitVars: @ 807D2FC
push {r4,lr}
- ldr r0, _0807D360 @ =gUnknown_83C2BBC
+ ldr r0, _0807D360 @ =gWeatherPtr
ldr r3, [r0]
ldr r0, _0807D364 @ =0x000006cc
adds r1, r3, r0
@@ -4227,7 +4227,7 @@ _0807D358:
pop {r0}
bx r0
.align 2, 0
-_0807D360: .4byte gUnknown_83C2BBC
+_0807D360: .4byte gWeatherPtr
_0807D364: .4byte 0x000006cc
_0807D368: .4byte 0x000006d2
_0807D36C: .4byte 0x000006c1
@@ -4240,7 +4240,7 @@ _0807D378: .4byte 0x00000712
Sandstorm_InitAll: @ 807D37C
push {r4,lr}
bl Sandstorm_InitVars
- ldr r0, _0807D3A4 @ =gUnknown_83C2BBC
+ ldr r0, _0807D3A4 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D3A8 @ =0x000006d2
adds r0, r1, r2
@@ -4258,7 +4258,7 @@ _0807D39C:
pop {r0}
bx r0
.align 2, 0
-_0807D3A4: .4byte gUnknown_83C2BBC
+_0807D3A4: .4byte gWeatherPtr
_0807D3A8: .4byte 0x000006d2
thumb_func_end Sandstorm_InitAll
@@ -4267,7 +4267,7 @@ Sandstorm_Main: @ 807D3AC
push {r4,r5,lr}
bl sub_807D4C4
bl sub_807D48C
- ldr r0, _0807D3DC @ =gUnknown_83C2BBC
+ ldr r0, _0807D3DC @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807D3E0 @ =0x00000712
adds r1, r5, r0
@@ -4288,7 +4288,7 @@ _0807D3C8:
beq _0807D3EE
b _0807D41C
.align 2, 0
-_0807D3DC: .4byte gUnknown_83C2BBC
+_0807D3DC: .4byte gWeatherPtr
_0807D3E0: .4byte 0x00000712
_0807D3E4: .4byte 0x000006cc
_0807D3E8:
@@ -4331,7 +4331,7 @@ Sandstorm_Finish: @ 807D428
push {r4,lr}
bl sub_807D4C4
bl sub_807D48C
- ldr r0, _0807D44C @ =gUnknown_83C2BBC
+ ldr r0, _0807D44C @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D450 @ =0x000006ce
adds r4, r0, r1
@@ -4344,7 +4344,7 @@ Sandstorm_Finish: @ 807D428
beq _0807D45A
b _0807D47E
.align 2, 0
-_0807D44C: .4byte gUnknown_83C2BBC
+_0807D44C: .4byte gWeatherPtr
_0807D450: .4byte 0x000006ce
_0807D454:
cmp r0, 0x2
@@ -4383,7 +4383,7 @@ _0807D484:
thumb_func_start sub_807D48C
sub_807D48C: @ 807D48C
push {lr}
- ldr r0, _0807D4B8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D4B8 @ =gWeatherPtr
ldr r2, [r0]
ldr r0, _0807D4BC @ =0x00000714
adds r3, r2, r0
@@ -4405,7 +4405,7 @@ _0807D4B2:
pop {r0}
bx r0
.align 2, 0
-_0807D4B8: .4byte gUnknown_83C2BBC
+_0807D4B8: .4byte gWeatherPtr
_0807D4BC: .4byte 0x00000714
_0807D4C0: .4byte 0x00000712
thumb_func_end sub_807D48C
@@ -4413,7 +4413,7 @@ _0807D4C0: .4byte 0x00000712
thumb_func_start sub_807D4C4
sub_807D4C4: @ 807D4C4
push {r4-r6,lr}
- ldr r0, _0807D528 @ =gUnknown_83C2BBC
+ ldr r0, _0807D528 @ =gWeatherPtr
ldr r2, [r0]
ldr r0, _0807D52C @ =0x00000704
adds r4, r2, r0
@@ -4463,7 +4463,7 @@ sub_807D4C4: @ 807D4C4
pop {r0}
bx r0
.align 2, 0
-_0807D528: .4byte gUnknown_83C2BBC
+_0807D528: .4byte gWeatherPtr
_0807D52C: .4byte 0x00000704
_0807D530: .4byte gSineTable
_0807D534: .4byte 0x00000712
@@ -4475,7 +4475,7 @@ _0807D540: .4byte gSpriteCoordOffsetY
thumb_func_start sub_807D544
sub_807D544: @ 807D544
push {r4,r5,lr}
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D5C8 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D5CC @ =0x00000716
adds r0, r1, r2
@@ -4499,7 +4499,7 @@ _0807D56A:
lsrs r4, r0, 16
cmp r4, 0x13
bls _0807D55C
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D5C8 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D5CC @ =0x00000716
adds r0, r1
@@ -4508,7 +4508,7 @@ _0807D56A:
ldr r0, _0807D5D0 @ =0x00001204
bl FreeSpriteTilesByTag
_0807D586:
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D5C8 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D5D4 @ =0x00000717
adds r0, r1, r2
@@ -4532,7 +4532,7 @@ _0807D5AA:
lsrs r4, r0, 16
cmp r4, 0x4
bls _0807D59C
- ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D5C8 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D5D4 @ =0x00000717
adds r0, r1
@@ -4543,7 +4543,7 @@ _0807D5C0:
pop {r0}
bx r0
.align 2, 0
-_0807D5C8: .4byte gUnknown_83C2BBC
+_0807D5C8: .4byte gWeatherPtr
_0807D5CC: .4byte 0x00000716
_0807D5D0: .4byte 0x00001204
_0807D5D4: .4byte 0x00000717
@@ -4553,7 +4553,7 @@ _0807D5D4: .4byte 0x00000717
CreateSandstormSprites_1: @ 807D5D8
push {r4-r7,lr}
sub sp, 0x4
- ldr r0, _0807D648 @ =gUnknown_83C2BBC
+ ldr r0, _0807D648 @ =gWeatherPtr
ldr r0, [r0]
ldr r1, _0807D64C @ =0x00000716
adds r0, r1
@@ -4563,7 +4563,7 @@ CreateSandstormSprites_1: @ 807D5D8
ldr r0, _0807D650 @ =gUnknown_83C6854
bl LoadSpriteSheet
ldr r0, _0807D654 @ =gUnknown_83C2D20
- bl sub_807ABC0
+ bl LoadCustomWeatherSpritePalette
movs r7, 0
_0807D5F8:
adds r0, r7, 0
@@ -4580,7 +4580,7 @@ _0807D5F8:
lsrs r1, r0, 24
cmp r1, 0x40
beq _0807D660
- ldr r2, _0807D648 @ =gUnknown_83C2BBC
+ ldr r2, _0807D648 @ =gWeatherPtr
ldr r5, [r2]
lsls r0, r7, 2
movs r3, 0xC8
@@ -4603,14 +4603,14 @@ _0807D5F8:
ldr r2, [sp]
b _0807D672
.align 2, 0
-_0807D648: .4byte gUnknown_83C2BBC
+_0807D648: .4byte gWeatherPtr
_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 r2, _0807D690 @ =gWeatherPtr
ldr r1, [r2]
lsls r0, r7, 2
movs r3, 0xC8
@@ -4636,7 +4636,7 @@ _0807D686:
pop {r0}
bx r0
.align 2, 0
-_0807D690: .4byte gUnknown_83C2BBC
+_0807D690: .4byte gWeatherPtr
_0807D694: .4byte 0x00000716
thumb_func_end CreateSandstormSprites_1
@@ -4647,7 +4647,7 @@ CreateSandstormSprites_2: @ 807D698
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r4, _0807D740 @ =gUnknown_83C2BBC
+ ldr r4, _0807D740 @ =gWeatherPtr
ldr r0, [r4]
ldr r1, _0807D744 @ =0x00000717
adds r0, r1
@@ -4724,7 +4724,7 @@ _0807D6B8:
str r0, [r1, 0x1C]
b _0807D76E
.align 2, 0
-_0807D740: .4byte gUnknown_83C2BBC
+_0807D740: .4byte gWeatherPtr
_0807D744: .4byte 0x00000717
_0807D748: .4byte gUnknown_83C683C
_0807D74C: .4byte gSprites
@@ -4769,7 +4769,7 @@ _0807D794: .4byte 0x00000717
SandstormSpriteCallback1: @ 807D798
push {r4,lr}
adds r3, r0, 0
- ldr r0, _0807D7E8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D7E8 @ =gWeatherPtr
ldr r1, [r0]
movs r2, 0xE2
lsls r2, 3
@@ -4808,7 +4808,7 @@ _0807D7E0:
pop {r0}
bx r0
.align 2, 0
-_0807D7E8: .4byte gUnknown_83C2BBC
+_0807D7E8: .4byte gWeatherPtr
_0807D7EC: .4byte 0x0000070e
_0807D7F0: .4byte 0x010f0000
_0807D7F4: .4byte 0x000001ff
@@ -4902,7 +4902,7 @@ _0807D88C: .4byte gSineTable
thumb_func_start Weather11_InitVars
Weather11_InitVars: @ 807D890
- ldr r0, _0807D8B0 @ =gUnknown_83C2BBC
+ ldr r0, _0807D8B0 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807D8B4 @ =0x000006cc
adds r2, r1, r0
@@ -4918,7 +4918,7 @@ Weather11_InitVars: @ 807D890
strb r0, [r1]
bx lr
.align 2, 0
-_0807D8B0: .4byte gUnknown_83C2BBC
+_0807D8B0: .4byte gWeatherPtr
_0807D8B4: .4byte 0x000006cc
_0807D8B8: .4byte 0x000006c1
_0807D8BC: .4byte 0x000006c2
@@ -4947,7 +4947,7 @@ sub_807D8D0: @ 807D8D0
Bubbles_InitVars: @ 807D8D4
push {r4,r5,lr}
bl Fog1_InitVars
- ldr r0, _0807D914 @ =gUnknown_83C2BBC
+ ldr r0, _0807D914 @ =gWeatherPtr
ldr r4, [r0]
ldr r1, _0807D918 @ =0x0000072e
adds r0, r4, r1
@@ -4976,7 +4976,7 @@ _0807D90C:
pop {r0}
bx r0
.align 2, 0
-_0807D914: .4byte gUnknown_83C2BBC
+_0807D914: .4byte gWeatherPtr
_0807D918: .4byte 0x0000072e
_0807D91C: .4byte gUnknown_83C6870
_0807D920: .4byte gUnknown_83C6868
@@ -4987,7 +4987,7 @@ _0807D924: .4byte 0x0000072a
Bubbles_InitAll: @ 807D928
push {r4,lr}
bl Bubbles_InitVars
- ldr r0, _0807D950 @ =gUnknown_83C2BBC
+ ldr r0, _0807D950 @ =gWeatherPtr
ldr r1, [r0]
ldr r2, _0807D954 @ =0x000006d2
adds r0, r1, r2
@@ -5005,7 +5005,7 @@ _0807D948:
pop {r0}
bx r0
.align 2, 0
-_0807D950: .4byte gUnknown_83C2BBC
+_0807D950: .4byte gWeatherPtr
_0807D954: .4byte 0x000006d2
thumb_func_end Bubbles_InitAll
@@ -5013,7 +5013,7 @@ _0807D954: .4byte 0x000006d2
Bubbles_Main: @ 807D958
push {r4-r7,lr}
bl Fog1_Main
- ldr r0, _0807D9B8 @ =gUnknown_83C2BBC
+ ldr r0, _0807D9B8 @ =gWeatherPtr
ldr r5, [r0]
ldr r0, _0807D9BC @ =0x00000726
adds r4, r5, r0
@@ -5059,7 +5059,7 @@ _0807D9B0:
pop {r0}
bx r0
.align 2, 0
-_0807D9B8: .4byte gUnknown_83C2BBC
+_0807D9B8: .4byte gWeatherPtr
_0807D9BC: .4byte 0x00000726
_0807D9C0: .4byte 0x0000ffff
_0807D9C4: .4byte gUnknown_83C6868
@@ -5129,7 +5129,7 @@ sub_807D9E8: @ 807D9E8
strh r0, [r1, 0x2E]
strh r0, [r1, 0x30]
strh r0, [r1, 0x32]
- ldr r0, _0807DA68 @ =gUnknown_83C2BBC
+ ldr r0, _0807DA68 @ =gWeatherPtr
ldr r1, [r0]
ldr r0, _0807DA6C @ =0x0000072c
adds r1, r0
@@ -5145,7 +5145,7 @@ _0807DA58: .4byte gUnknown_83C6878
_0807DA5C: .4byte gSpriteCoordOffsetY
_0807DA60: .4byte gUnknown_83C68BC
_0807DA64: .4byte gSprites
-_0807DA68: .4byte gUnknown_83C2BBC
+_0807DA68: .4byte gWeatherPtr
_0807DA6C: .4byte 0x0000072c
thumb_func_end sub_807D9E8
diff --git a/asm/field_weather_util.s b/asm/field_weather_util.s
new file mode 100644
index 000000000..c31f35763
--- /dev/null
+++ b/asm/field_weather_util.s
@@ -0,0 +1,295 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_807B0C4
+sub_807B0C4: @ 807B0C4
+ push {lr}
+ adds r1, r0, 0
+ adds r3, r2, 0
+ ldr r0, _0807B0E8 @ =gWeather
+ 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 gWeather
+_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 SetNextWeather
+ 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 SetCurrentAndNextWeather
+ 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 SetNextWeather
+ 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 SetCurrentAndNextWeather
+ 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/overworld.s b/asm/overworld.s
index 27235fa18..504fecbf1 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,7 +4644,7 @@ _08057050:
bl InitObjectEventPalettes
_08057056:
bl FieldEffectActiveListClear
- bl sub_8079C08
+ bl StartWeather
bl sub_807B1B8
cmp r4, 0
bne _0805706A
@@ -5400,7 +5400,7 @@ _0805769C:
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
bl FieldEffectActiveListClear
- bl sub_8079C08
+ bl StartWeather
bl sub_807B1B8
bl SetUpFieldTasks
bl mapheader_run_script_with_tag_x5
@@ -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
diff --git a/data/field_weather.s b/data/field_weather.s
index d872998bf..7e40ea747 100644
--- a/data/field_weather.s
+++ b/data/field_weather.s
@@ -7,139 +7,6 @@
.section .rodata
.align 2
-gUnknown_83BFBE4:: @ 83BFBE4
- .incbin "graphics/field_effects/unk_83BFBE4.bin.lz"
-
-gUnknown_83C0408::
- .incbin "graphics/field_effects/unk_83C0408.bin.lz"
-
-gUnknown_83C0C00::
- .incbin "graphics/field_effects/unk_83C0C00.bin.lz"
-
-gUnknown_83C139C::
- .incbin "graphics/field_effects/unk_83C139C.bin.lz"
-
-gUnknown_83C1BB8::
- .incbin "graphics/field_effects/unk_83C1BB8.bin.lz"
-
-gUnknown_83C2380::
- .incbin "graphics/field_effects/unk_83C2380.bin.lz"
-
-gUnknown_83C2BA4::
- .4byte gUnknown_83BFBE4
- .4byte gUnknown_83C0408
- .4byte gUnknown_83C0C00
- .4byte gUnknown_83C139C
- .4byte gUnknown_83C1BB8
- .4byte gUnknown_83C2380
-
-gUnknown_83C2BBC:: @ 83C2BBC
- .4byte gUnknown_2037F34
-
-gUnknown_83C2BC0:: @ 83C2BC0
- .4byte sub_8079EC0
- .4byte nullsub_45
- .4byte sub_8079EC0
- .4byte sub_8079EE4
- .4byte Clouds_InitVars
- .4byte Clouds_Main
- .4byte Clouds_InitAll
- .4byte Clouds_Finish
- .4byte Weather2_InitVars
- .4byte nullsub_48
- .4byte Weather2_InitAll
- .4byte sub_807B434
- .4byte LightRain_InitVars
- .4byte LightRain_Main
- .4byte LightRain_InitAll
- .4byte LightRain_Finish
- .4byte Snow_InitVars
- .4byte snowflakes_progress2
- .4byte Snow_InitAll
- .4byte Snow_Finish
- .4byte sub_807C2E4
- .4byte Rain_Main
- .4byte sub_807C358
- .4byte Rain_Finish
- .4byte Fog1_InitVars
- .4byte Fog1_Main
- .4byte Fog1_InitAll
- .4byte Fog1_Finish
- .4byte Ash_InitVars
- .4byte Ash_Main
- .4byte Ash_InitAll
- .4byte Ash_Finish
- .4byte Sandstorm_InitVars
- .4byte Sandstorm_Main
- .4byte Sandstorm_InitAll
- .4byte Sandstorm_Finish
- .4byte Fog2_InitVars
- .4byte Fog2_Main
- .4byte Fog2_InitAll
- .4byte Fog2_Finish
- .4byte Fog1_InitVars
- .4byte Fog1_Main
- .4byte Fog1_InitAll
- .4byte Fog1_Finish
- .4byte Weather11_InitVars
- .4byte nullsub_49
- .4byte Weather11_InitAll
- .4byte sub_807D8D0
- .4byte Drought_InitVars
- .4byte Drought_Main
- .4byte Drought_InitAll
- .4byte sub_807B6BC
- .4byte sub_807C388
- .4byte Rain_Main
- .4byte sub_807C3F4
- .4byte Rain_Finish
- .4byte Bubbles_InitVars
- .4byte Bubbles_Main
- .4byte Bubbles_InitAll
- .4byte Bubbles_Finish
-
-gUnknown_83C2CB0:: @ 83C2CB0
- .4byte sub_8079FFC
- .4byte sub_807A084
- .4byte nullsub_46
- .4byte nullsub_46
-
-gUnknown_83C2CC0:: @ 83C2CC0
- .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01
-
-gUnknown_83C2CE0:: @ 83C2CE0
- .incbin "graphics/field_effects/unk_83C2CE0.gbapal"
-
-gUnknown_83C2D00:: @ 83C2D00
- .incbin "graphics/field_effects/unk_83C2D00.gbapal"
-
-gUnknown_83C2D20:: @ 83C2D20
- .incbin "graphics/field_effects/unk_83C2D20.gbapal"
-
-gUnknown_83C2D40::
- .incbin "graphics/field_effects/unk_83C2D40.4bpp"
-
-gWeatherFog1Tiles:: @ 83C3540
- .incbin "graphics/field_effects/unk_83C3540.4bpp"
-
-gUnknown_83C3D40::
- .incbin "graphics/field_effects/unk_83C3D40.4bpp"
-
-gUnknown_83C4540::
- .incbin "graphics/field_effects/unk_83C4540.4bpp"
-
-gUnknown_83C4580::
- .incbin "graphics/field_effects/unk_83C4580.4bpp"
-
-gUnknown_83C45C0::
- .incbin "graphics/field_effects/unk_83C45C0.4bpp"
-
-gUnknown_83C55C0::
- .incbin "graphics/field_effects/unk_83C55C0.4bpp"
-
-gUnknown_83C5BC0::
- .incbin "graphics/field_effects/unk_83C5BC0.4bpp"
-
gUnknown_83C65C0:: @ 83C65C0
.byte 0x02, 0x03, 0x05, 0x03
diff --git a/include/field_weather.h b/include/field_weather.h
index 6b62f0edd..1f2d9902e 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -17,7 +17,7 @@ bool8 IsWeatherNotFadingIn(void);
void SetWeatherScreenFadeOut(void);
void sub_807B070(void);
u8 GetCurrentWeather(void);
-void FieldWeather_StartFadingOutCreditsMap(u8, u8, u32);
+void delay(u8, u8, u32);
void UpdateSpritePaletteWithWeather(u8 palIdx);
void ResetPreservedPalettesInWeather(void);
void PreservePaletteInWeather(u8 palIdx);
diff --git a/include/field_weather_util.h b/include/field_weather_util.h
new file mode 100644
index 000000000..da49d3869
--- /dev/null
+++ b/include/field_weather_util.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_WEATHER_UTIL_H
+#define GUARD_FIELD_WEATHER_UTIL_H
+
+void SetWeather(u8 weather);
+
+#endif //GUARD_FIELD_WEATHER_UTIL_H
diff --git a/ld_script.txt b/ld_script.txt
index 4538c714e..854604f8a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -114,7 +114,10 @@ SECTIONS {
src/battle_anim_status_effects.o(.text);
src/title_screen.o(.text);
src/reset_save_heap.o(.text);
+ src/field_weather.o(.text);
asm/field_weather.o(.text);
+ src/field_weather_util.o(.text);
+ asm/field_weather_util.o(.text);
asm/field_weather_effects.o(.text);
src/field_fadetransition.o(.text);
src/field_screen_effect.o(.text);
@@ -446,6 +449,8 @@ SECTIONS {
data/map_events.o(.rodata);
src/battle_anim_status_effects.o(.rodata);
src/title_screen.o(.rodata);
+ src/field_weather.o(.rodata);
+ src/field_weather_util.o(.rodata);
data/field_weather.o(.rodata);
src/field_screen_effect.o(.rodata);
src/battle_setup.o(.rodata);
diff --git a/src/credits.c b/src/credits.c
index e0d57a2a4..4d7bbd67b 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -910,7 +910,7 @@ static s32 RollCredits(void)
case CREDITSSCRCMD_MAPNEXT:
sCreditsMgr->mainseqno = CREDITSSCENE_MAPNEXT_DESTROYWINDOW;
sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
- FieldWeather_StartFadingOutCreditsMap(1, 0, 0x3FFFFFFF);
+ FadeSelectedPals(1, 0, 0x3FFFFFFF);
break;
case CREDITSSCRCMD_MAP:
sCreditsMgr->mainseqno = CREDITSSCENE_MAP_LOADMAP_CREATESPRITES;
@@ -1305,7 +1305,7 @@ static s32 RollCredits(void)
"\tldr r2, _080F3E0C @ =0x3fffffff\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
- "\tbl FieldWeather_StartFadingOutCreditsMap\n"
+ "\tbl FadeSelectedPals\n"
"\tb _080F3E94\n"
"\t.align 2, 0\n"
"_080F3E04: .4byte sCreditsMgr\n"
diff --git a/src/field_weather.c b/src/field_weather.c
new file mode 100644
index 000000000..fb5f4eee7
--- /dev/null
+++ b/src/field_weather.c
@@ -0,0 +1,1320 @@
+#include "global.h"
+#include "gflib.h"
+#include "blend_palette.h"
+#include "field_effect.h"
+#include "field_weather.h"
+#include "field_weather_util.h"
+#include "task.h"
+#include "trig.h"
+#include "constants/field_weather.h"
+#include "constants/weather.h"
+#include "constants/songs.h"
+
+#define DROUGHT_COLOR_INDEX(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00))
+
+enum
+{
+ GAMMA_NONE,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+};
+
+struct RGBColor
+{
+ u16 r:5;
+ u16 g:5;
+ u16 b:5;
+};
+
+struct WeatherPaletteData
+{
+ u16 gammaShiftColors[8][0x1000]; // 0x1000 is the number of bytes that make up all palettes.
+};
+
+struct WeatherCallbacks
+{
+ void (*initVars)(void);
+ void (*main)(void);
+ void (*initAll)(void);
+ bool8 (*finish)(void);
+};
+
+struct Weather
+{
+ union
+ {
+ struct
+ {
+ struct Sprite *rainSprites[MAX_RAIN_SPRITES];
+ struct Sprite *snowflakeSprites[101];
+ struct Sprite *cloudSprites[NUM_CLOUD_SPRITES];
+ } s1;
+ struct
+ {
+ u8 filler0[0xA0];
+ struct Sprite *fogHSprites[NUM_FOG_HORIZONTAL_SPRITES];
+ struct Sprite *ashSprites[NUM_ASH_SPRITES];
+ struct Sprite *fogDSprites[NUM_FOG_DIAGONAL_SPRITES];
+ struct Sprite *sandstormSprites1[NUM_SANDSTORM_SPRITES];
+ struct Sprite *sandstormSprites2[NUM_SWIRL_SANDSTORM_SPRITES];
+ } s2;
+ } sprites;
+ u8 gammaShifts[19][32];
+ u8 altGammaShifts[19][32];
+ s8 gammaIndex;
+ s8 gammaTargetIndex;
+ u8 gammaStepDelay;
+ u8 gammaStepFrameCounter;
+ u16 fadeDestColor;
+ /*0x6C6*/ u8 palProcessingState;
+ /*0x6C7*/ u8 fadeScreenCounter;
+ /*0x6C8*/ bool8 readyForInit;
+ /*0x6C9*/ u8 taskId;
+ /*0x6CA*/ u8 unknown_6CA;
+ u8 unknown_6CB;
+ u16 initStep;
+ u16 finishStep;
+ u8 currWeather;
+ u8 nextWeather;
+ u8 weatherGfxLoaded;
+ bool8 weatherChangeComplete;
+ u8 weatherPicSpritePalIndex;
+ u8 altGammaSpritePalIndex;
+ u16 rainSpriteVisibleCounter;
+ u8 curRainSpriteIndex;
+ u8 targetRainSpriteCount;
+ u8 rainSpriteCount;
+ u8 rainSpriteVisibleDelay;
+ u8 isDownpour;
+ u8 rainStrength;
+ /*0x6DE*/ u8 cloudSpritesCreated;
+ u8 filler_6DF[1];
+ u16 snowflakeVisibleCounter;
+ u16 unknown_6E2;
+ u8 snowflakeSpriteCount;
+ u8 targetSnowflakeSpriteCount;
+ u16 unknown_6E6;
+ u16 thunderCounter;
+ u8 unknown_6EA;
+ u8 unknown_6EB;
+ u8 unknown_6EC;
+ u8 thunderTriggered;
+ u16 fogHScrollPosX;
+ u16 fogHScrollCounter;
+ u16 fogHScrollOffset;
+ u8 lightenedFogSpritePals[6];
+ u8 lightenedFogSpritePalsCount;
+ u8 fogHSpritesCreated;
+ u16 ashBaseSpritesX;
+ u16 unknown_6FE;
+ u8 ashSpritesCreated;
+ u8 filler_701[3];
+ u32 sandstormXOffset;
+ u32 sandstormYOffset;
+ u8 filler_70C[2];
+ u16 sandstormBaseSpritesX;
+ u16 sandstormPosY;
+ u16 sandstormWaveIndex;
+ u16 sandstormWaveCounter;
+ u8 sandstormSpritesCreated;
+ u8 sandstormSwirlSpritesCreated;
+ u16 fogDBaseSpritesX;
+ u16 fogDPosY;
+ u16 fogDScrollXCounter;
+ u16 fogDScrollYCounter;
+ u16 fogDXOffset;
+ u16 fogDYOffset;
+ u8 fogDSpritesCreated;
+ u8 filler_725[1];
+ u16 bubblesDelayCounter;
+ u16 bubblesDelayIndex;
+ u16 bubblesCoordsIndex;
+ u16 bubblesSpriteCount;
+ u8 bubblesSpritesCreated;
+ u8 filler_72F;
+ u16 currBlendEVA;
+ u16 currBlendEVB;
+ u16 targetBlendEVA;
+ u16 targetBlendEVB;
+ u8 blendUpdateCounter;
+ u8 blendFrameCounter;
+ u8 blendDelay;
+ u8 filler_73B[0x3C-0x3B];
+ s16 unknown_73C;
+ s16 unknown_73E;
+ s16 unknown_740;
+ s16 unknown_742;
+ u8 filler_744[0xD-4];
+ s8 loadDroughtPalsIndex;
+ u8 loadDroughtPalsOffset;
+};
+
+EWRAM_DATA struct Weather gWeather = {};
+EWRAM_DATA u8 sFieldEffectPaletteGammaTypes[32] = {};
+EWRAM_DATA const u8 *sPaletteGammaTypes = NULL;
+EWRAM_DATA u16 gUnknown_20386A8 = 0;
+
+void Task_WeatherMain(u8 taskId);
+void Task_WeatherInit(u8 taskId);
+void None_Init(void);
+void None_Main(void);
+bool8 None_Finish(void);
+void BuildGammaShiftTables(void);
+void UpdateWeatherGammaShift(void);
+void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex);
+void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaIndex, u8 blendCoeff, u16 blendColor);
+void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 blendColor);
+void FadeInScreenWithWeather(void);
+bool8 FadeInScreen_RainShowShade(void);
+bool8 FadeInScreen_Drought(void);
+bool8 FadeInScreen_FogHorizontal(void);
+void DoNothing(void);
+void ApplyFogBlend(u8 blendCoeff, u16 blendColor);
+bool8 LightenSpritePaletteInFog(u8 paletteIndex);
+void Weather_SetBlendCoeffs(u8, u8);
+bool8 Ash_Finish(void);
+bool8 Bubbles_Finish(void);
+bool8 Clouds_Finish(void);
+bool8 Fog1_Finish(void);
+bool8 Fog2_Finish(void);
+bool8 LightRain_Finish(void);
+bool8 Rain_Finish(void);
+bool8 Sandstorm_Finish(void);
+bool8 Snow_Finish(void);
+bool8 sub_807B434(void);
+bool8 sub_807B6BC(void);
+bool8 sub_807D8D0(void);
+void Ash_InitAll(void);
+void Ash_InitVars(void);
+void Ash_Main(void);
+void Bubbles_InitAll(void);
+void Bubbles_InitVars(void);
+void Bubbles_Main(void);
+void Clouds_InitAll(void);
+void Clouds_InitVars(void);
+void Clouds_Main(void);
+void Drought_InitAll(void);
+void Drought_InitVars(void);
+void Drought_Main(void);
+void Fog1_InitAll(void);
+void Fog1_InitVars(void);
+void Fog1_Main(void);
+void Fog2_InitAll(void);
+void Fog2_InitVars(void);
+void Fog2_Main(void);
+void LightRain_InitAll(void);
+void LightRain_InitVars(void);
+void LightRain_Main(void);
+void Rain_Main(void);
+void Sandstorm_InitAll(void);
+void Sandstorm_InitVars(void);
+void Sandstorm_Main(void);
+void Snow_InitAll(void);
+void Snow_InitVars(void);
+void Weather11_InitAll(void);
+void Weather11_InitVars(void);
+void Weather2_InitAll(void);
+void Weather2_InitVars(void);
+void nullsub_48(void);
+void nullsub_49(void);
+void snowflakes_progress2(void);
+void sub_807C2E4(void);
+void sub_807C358(void);
+void sub_807C388(void);
+void sub_807C3F4(void);
+
+const u32 gUnknown_83BFBE4[] = INCBIN_U32("graphics/field_effects/unk_83BFBE4.bin.lz");
+const u32 gUnknown_83C0408[] = INCBIN_U32("graphics/field_effects/unk_83C0408.bin.lz");
+const u32 gUnknown_83C0C00[] = INCBIN_U32("graphics/field_effects/unk_83C0C00.bin.lz");
+const u32 gUnknown_83C139C[] = INCBIN_U32("graphics/field_effects/unk_83C139C.bin.lz");
+const u32 gUnknown_83C1BB8[] = INCBIN_U32("graphics/field_effects/unk_83C1BB8.bin.lz");
+const u32 gUnknown_83C2380[] = INCBIN_U32("graphics/field_effects/unk_83C2380.bin.lz");
+
+const u32 *const gUnknown_83C2BA4[] = {
+ gUnknown_83BFBE4,
+ gUnknown_83C0408,
+ gUnknown_83C0C00,
+ gUnknown_83C139C,
+ gUnknown_83C1BB8,
+ gUnknown_83C2380
+};
+
+struct Weather *const gWeatherPtr = &gWeather;
+
+const struct WeatherCallbacks sWeatherFuncs[] = {
+ {None_Init, None_Main, None_Init, None_Finish},
+ {Clouds_InitVars, Clouds_Main, Clouds_InitAll, Clouds_Finish},
+ {Weather2_InitVars, nullsub_48, Weather2_InitAll, sub_807B434},
+ {LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish},
+ {Snow_InitVars, snowflakes_progress2, Snow_InitAll, Snow_Finish},
+ {sub_807C2E4, Rain_Main, sub_807C358, Rain_Finish},
+ {Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
+ {Ash_InitVars, Ash_Main, Ash_InitAll, Ash_Finish},
+ {Sandstorm_InitVars, Sandstorm_Main, Sandstorm_InitAll, Sandstorm_Finish},
+ {Fog2_InitVars, Fog2_Main, Fog2_InitAll, Fog2_Finish},
+ {Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
+ {Weather11_InitVars, nullsub_49, Weather11_InitAll, sub_807D8D0},
+ {Drought_InitVars, Drought_Main, Drought_InitAll, sub_807B6BC},
+ {sub_807C388, Rain_Main, sub_807C3F4, Rain_Finish},
+ {Bubbles_InitVars, Bubbles_Main, Bubbles_InitAll, Bubbles_Finish},
+};
+
+void (*const gWeatherPalStateFuncs[])(void) = {
+ UpdateWeatherGammaShift,
+ FadeInScreenWithWeather,
+ DoNothing,
+ DoNothing
+};
+
+const u8 sBasePaletteGammaTypes[32] = {
+ // background palettes
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NONE,
+ GAMMA_NONE,
+ GAMMA_NONE,
+ // sprite palettes
+ GAMMA_ALT,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+ GAMMA_ALT,
+ GAMMA_ALT,
+ GAMMA_ALT,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+};
+
+const u16 gUnknown_83C2CE0[] = INCBIN_U16("graphics/field_effects/unk_83C2CE0.gbapal");
+
+// code
+void StartWeather(void)
+{
+ if (!FuncIsActiveTask(Task_WeatherMain))
+ {
+ u8 index = AllocSpritePalette(0x1200);
+ CpuCopy32(gUnknown_83C2CE0, &gPlttBufferUnfaded[0x100 + index * 16], 32);
+ sub_8083598(index);
+ BuildGammaShiftTables();
+ gWeatherPtr->altGammaSpritePalIndex = index;
+ gWeatherPtr->weatherPicSpritePalIndex = index;
+ gWeatherPtr->rainSpriteCount = 0;
+ gWeatherPtr->curRainSpriteIndex = 0;
+ gWeatherPtr->cloudSpritesCreated = 0;
+ gWeatherPtr->snowflakeSpriteCount = 0;
+ gWeatherPtr->ashSpritesCreated = 0;
+ gWeatherPtr->fogHSpritesCreated = 0;
+ gWeatherPtr->fogDSpritesCreated = 0;
+ gWeatherPtr->sandstormSpritesCreated = 0;
+ gWeatherPtr->sandstormSwirlSpritesCreated = 0;
+ gWeatherPtr->bubblesSpritesCreated = 0;
+ gWeatherPtr->lightenedFogSpritePalsCount = 0;
+ Weather_SetBlendCoeffs(16, 0);
+ gWeatherPtr->currWeather = 0;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ gWeatherPtr->readyForInit = FALSE;
+ gWeatherPtr->weatherChangeComplete = TRUE;
+ gWeatherPtr->taskId = CreateTask(Task_WeatherInit, 80);
+ }
+}
+
+void SetNextWeather(u8 weather)
+{
+ if (weather != WEATHER_RAIN && weather != WEATHER_RAIN_THUNDERSTORM && weather != WEATHER_DOWNPOUR)
+ {
+ PlayRainStoppingSoundEffect();
+ }
+
+ if (gWeatherPtr->nextWeather != weather && gWeatherPtr->currWeather == weather)
+ {
+ sWeatherFuncs[weather].initVars();
+ }
+
+ gWeatherPtr->weatherChangeComplete = FALSE;
+ gWeatherPtr->nextWeather = weather;
+ gWeatherPtr->finishStep = 0;
+}
+
+
+void SetCurrentAndNextWeather(u8 weather)
+{
+ PlayRainStoppingSoundEffect();
+ gWeatherPtr->currWeather = weather;
+ gWeatherPtr->nextWeather = weather;
+}
+
+void SetCurrentAndNextWeatherNoDelay(u8 weather)
+{
+ PlayRainStoppingSoundEffect();
+ gWeatherPtr->currWeather = weather;
+ gWeatherPtr->nextWeather = weather;
+ // Overrides the normal delay during screen fading.
+ gWeatherPtr->readyForInit = TRUE;
+}
+
+void Task_WeatherInit(u8 taskId)
+{
+ // Waits until it's ok to initialize weather.
+ // When the screen fades in, this is set to TRUE.
+ if (gWeatherPtr->readyForInit)
+ {
+ sWeatherFuncs[gWeatherPtr->currWeather].initAll();
+ gTasks[taskId].func = Task_WeatherMain;
+ }
+}
+
+void Task_WeatherMain(u8 taskId)
+{
+ if (gWeatherPtr->currWeather != gWeatherPtr->nextWeather)
+ {
+ if (!sWeatherFuncs[gWeatherPtr->currWeather].finish()
+ /*&& gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT*/)
+ {
+ // Finished cleaning up previous weather. Now transition to next weather.
+ sWeatherFuncs[gWeatherPtr->nextWeather].initVars();
+ gWeatherPtr->gammaStepFrameCounter = 0;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_CHANGING_WEATHER;
+ gWeatherPtr->currWeather = gWeatherPtr->nextWeather;
+ gWeatherPtr->weatherChangeComplete = TRUE;
+ }
+ }
+ else
+ {
+ sWeatherFuncs[gWeatherPtr->currWeather].main();
+ }
+
+ gWeatherPalStateFuncs[gWeatherPtr->palProcessingState]();
+}
+
+
+void None_Init(void)
+{
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 0;
+}
+
+void None_Main(void)
+{
+}
+
+u8 None_Finish(void)
+{
+ return 0;
+}
+
+// Builds two tables that contain gamma shifts for palette colors.
+// It's unclear why the two tables aren't declared as const arrays, since
+// this function always builds the same two tables.
+void BuildGammaShiftTables(void)
+{
+ u16 v0;
+ u8 (*gammaTable)[32];
+ u16 v2;
+ u16 v4;
+ u16 v5;
+ u16 gammaIndex;
+ u16 v9;
+ u32 v10;
+ u16 v11;
+ s16 dunno;
+
+ sPaletteGammaTypes = sBasePaletteGammaTypes;
+ for (v0 = 0; v0 <= 1; v0++)
+ {
+ if (v0 == 0)
+ gammaTable = gWeatherPtr->gammaShifts;
+ else
+ gammaTable = gWeatherPtr->altGammaShifts;
+
+ for (v2 = 0; v2 < 32; v2++)
+ {
+ v4 = v2 << 8;
+ if (v0 == 0)
+ v5 = (v2 << 8) / 16;
+ else
+ v5 = 0;
+ for (gammaIndex = 0; gammaIndex <= 2; gammaIndex++)
+ {
+ v4 = (v4 - v5);
+ gammaTable[gammaIndex][v2] = v4 >> 8;
+ }
+ v9 = v4;
+ v10 = 0x1f00 - v4;
+ if ((0x1f00 - v4) < 0)
+ {
+ v10 += 0xf;
+ }
+ v11 = v10 >> 4;
+ if (v2 < 12)
+ {
+ for (; gammaIndex < 19; gammaIndex++)
+ {
+ v4 += v11;
+ dunno = v4 - v9;
+ if (dunno > 0)
+ v4 -= (dunno + ((u16)dunno >> 15)) >> 1;
+ gammaTable[gammaIndex][v2] = v4 >> 8;
+ if (gammaTable[gammaIndex][v2] > 0x1f)
+ gammaTable[gammaIndex][v2] = 0x1f;
+ }
+ }
+ else
+ {
+ for (; gammaIndex < 19; gammaIndex++)
+ {
+ v4 += v11;
+ gammaTable[gammaIndex][v2] = v4 >> 8;
+ if (gammaTable[gammaIndex][v2] > 0x1f)
+ gammaTable[gammaIndex][v2] = 0x1f;
+ }
+ }
+ }
+ }
+}
+
+// When the weather is changing, it gradually updates the palettes
+// towards the desired gamma shift.
+void UpdateWeatherGammaShift(void)
+{
+ if (gWeatherPtr->gammaIndex == gWeatherPtr->gammaTargetIndex)
+ {
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ }
+ else
+ {
+ if (++gWeatherPtr->gammaStepFrameCounter >= gWeatherPtr->gammaStepDelay)
+ {
+ gWeatherPtr->gammaStepFrameCounter = 0;
+ if (gWeatherPtr->gammaIndex < gWeatherPtr->gammaTargetIndex)
+ gWeatherPtr->gammaIndex++;
+ else
+ gWeatherPtr->gammaIndex--;
+
+ ApplyGammaShift(0, 32, gWeatherPtr->gammaIndex);
+ }
+ }
+}
+
+void FadeInScreenWithWeather(void)
+{
+ if (++gWeatherPtr->unknown_6CB > 1)
+ gWeatherPtr->unknown_6CA = 0;
+
+ switch (gWeatherPtr->currWeather)
+ {
+ case WEATHER_RAIN:
+ case WEATHER_RAIN_THUNDERSTORM:
+ case WEATHER_DOWNPOUR:
+ case WEATHER_SNOW:
+ case WEATHER_SHADE:
+ if (FadeInScreen_RainShowShade() == FALSE)
+ {
+ gWeatherPtr->gammaIndex = 3;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ }
+ break;
+ case WEATHER_DROUGHT:
+ if (FadeInScreen_Drought() == FALSE)
+ {
+ gWeatherPtr->gammaIndex = -6;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ }
+ break;
+ case WEATHER_FOG_HORIZONTAL:
+ if (FadeInScreen_FogHorizontal() == FALSE)
+ {
+ gWeatherPtr->gammaIndex = 0;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ }
+ break;
+ case WEATHER_VOLCANIC_ASH:
+ case WEATHER_SANDSTORM:
+ case WEATHER_FOG_DIAGONAL:
+ case WEATHER_UNDERWATER:
+ default:
+ if (!gPaletteFade.active)
+ {
+ gWeatherPtr->gammaIndex = gWeatherPtr->gammaTargetIndex;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ }
+ break;
+ }
+}
+
+bool8 FadeInScreen_RainShowShade(void)
+{
+ if (gWeatherPtr->fadeScreenCounter == 16)
+ return FALSE;
+
+ if (++gWeatherPtr->fadeScreenCounter >= 16)
+ {
+ ApplyGammaShift(0, 32, 3);
+ gWeatherPtr->fadeScreenCounter = 16;
+ return FALSE;
+ }
+
+ ApplyGammaShiftWithBlend(0, 32, 3, 16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor);
+ return TRUE;
+}
+
+bool8 FadeInScreen_Drought(void)
+{
+ if (gWeatherPtr->fadeScreenCounter == 16)
+ return FALSE;
+
+ if (++gWeatherPtr->fadeScreenCounter >= 16)
+ {
+ ApplyGammaShift(0, 32, -6);
+ gWeatherPtr->fadeScreenCounter = 16;
+ return FALSE;
+ }
+
+ ApplyDroughtGammaShiftWithBlend(-6, 16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor);
+ return TRUE;
+}
+
+bool8 FadeInScreen_FogHorizontal(void)
+{
+ if (gWeatherPtr->fadeScreenCounter == 16)
+ return FALSE;
+
+ gWeatherPtr->fadeScreenCounter++;
+ ApplyFogBlend(16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor);
+ return TRUE;
+}
+
+void DoNothing(void)
+{ }
+
+void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
+{
+ u16 curPalIndex;
+ u16 palOffset;
+ u8 *gammaTable;
+ u16 i;
+
+ if (gammaIndex > 0)
+ {
+ gammaIndex--;
+ palOffset = startPalIndex * 16;
+ numPalettes += startPalIndex;
+ curPalIndex = startPalIndex;
+
+ // Loop through the speficied palette range and apply necessary gamma shifts to the colors.
+ while (curPalIndex < numPalettes)
+ {
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
+ {
+ // No palette change.
+ CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
+ palOffset += 16;
+ }
+ else
+ {
+ u8 r, g, b;
+
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_ALT || curPalIndex - 16 == gWeatherPtr->altGammaSpritePalIndex)
+ gammaTable = gWeatherPtr->altGammaShifts[gammaIndex];
+ else
+ gammaTable = gWeatherPtr->gammaShifts[gammaIndex];
+
+ for (i = 0; i < 16; i++)
+ {
+ // Apply gamma shift to the original color.
+ struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ r = gammaTable[baseColor.r];
+ g = gammaTable[baseColor.g];
+ b = gammaTable[baseColor.b];
+ gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ }
+ }
+
+ curPalIndex++;
+ }
+ }
+ else if (gammaIndex < 0)
+ {
+ // A negative gammIndex value means that the blending will come from the special Drought weather's palette tables.
+ // Dummied out in FRLG
+
+ // gammaIndex = -gammaIndex - 1;
+ // palOffset = startPalIndex * 16;
+ // numPalettes += startPalIndex;
+ // curPalIndex = startPalIndex;
+ //
+ // CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
+ // while (curPalIndex < numPalettes)
+ // {
+ // if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
+ // {
+ // // No palette change.
+ // palOffset += 16;
+ // }
+ // else
+ // {
+ //
+ // for (i = 0; i < 16; i++)
+ // {
+ // gPlttBufferFaded[palOffset] = sDroughtWeatherColors[gammaIndex][DROUGHT_COLOR_INDEX(gPlttBufferUnfaded[palOffset])];
+ // palOffset++;
+ // }
+ // }
+ //
+ // curPalIndex++;
+ // }
+ }
+ else
+ {
+ // No palette blending.
+ CpuFastCopy(gPlttBufferUnfaded + startPalIndex * 16, gPlttBufferFaded + startPalIndex * 16, numPalettes * 16 * sizeof(u16));
+ }
+}
+
+void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaIndex, u8 blendCoeff, u16 blendColor)
+{
+ u16 palOffset;
+ u16 curPalIndex;
+ u16 i;
+ struct RGBColor color = *(struct RGBColor *)&blendColor;
+ u8 rBlend = color.r;
+ u8 gBlend = color.g;
+ u8 bBlend = color.b;
+
+ palOffset = startPalIndex * 16;
+ numPalettes += startPalIndex;
+ gammaIndex--;
+ curPalIndex = startPalIndex;
+
+ while (curPalIndex < numPalettes)
+ {
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
+ {
+ // No gamma shift. Simply blend the colors.
+ BlendPalette(palOffset, 16, blendCoeff, blendColor);
+ palOffset += 16;
+ }
+ else
+ {
+ u8 *gammaTable;
+
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NORMAL)
+ gammaTable = gWeatherPtr->gammaShifts[gammaIndex];
+ else
+ gammaTable = gWeatherPtr->altGammaShifts[gammaIndex];
+
+ for (i = 0; i < 16; i++)
+ {
+ struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ u8 r = gammaTable[baseColor.r];
+ u8 g = gammaTable[baseColor.g];
+ u8 b = gammaTable[baseColor.b];
+
+ // Apply gamma shift and target blend color to the original color.
+ r += ((rBlend - r) * blendCoeff) >> 4;
+ g += ((gBlend - g) * blendCoeff) >> 4;
+ b += ((bBlend - b) * blendCoeff) >> 4;
+ gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
+ }
+ }
+
+ curPalIndex++;
+ }
+}
+
+void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 blendColor)
+{
+ struct RGBColor color;
+ u8 rBlend;
+ u8 gBlend;
+ u8 bBlend;
+ u16 curPalIndex;
+ u16 palOffset;
+ u16 i;
+
+ gammaIndex = -gammaIndex - 1;
+ color = *(struct RGBColor *)&blendColor;
+ rBlend = color.r;
+ gBlend = color.g;
+ bBlend = color.b;
+ palOffset = 0;
+ for (curPalIndex = 0; curPalIndex < 32; curPalIndex++)
+ {
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
+ {
+ // No gamma shift. Simply blend the colors.
+ BlendPalette(palOffset, 16, blendCoeff, blendColor);
+ palOffset += 16;
+ }
+ else
+ {
+ for (i = 0; i < 16; i++)
+ {
+ u32 offset;
+ struct RGBColor color1;
+ struct RGBColor color2;
+ u8 r1, g1, b1;
+ u8 r2, g2, b2;
+
+ color1 = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ r1 = color1.r;
+ g1 = color1.g;
+ b1 = color1.b;
+
+ r1 += ((rBlend - r1) * blendCoeff) >> 4;
+ g1 += ((gBlend - g1) * blendCoeff) >> 4;
+ b1 += ((bBlend - b1) * blendCoeff) >> 4;
+
+ gPlttBufferFaded[palOffset++] = (b1 << 10) | (g1 << 5) | r1;
+ }
+ }
+ }
+}
+
+void ApplyFogBlend(u8 blendCoeff, u16 blendColor)
+{
+ struct RGBColor color;
+ u8 rBlend;
+ u8 gBlend;
+ u8 bBlend;
+ u16 curPalIndex;
+
+ BlendPalette(0, 256, blendCoeff, blendColor);
+ color = *(struct RGBColor *)&blendColor;
+ rBlend = color.r;
+ gBlend = color.g;
+ bBlend = color.b;
+
+ for (curPalIndex = 16; curPalIndex < 32; curPalIndex++)
+ {
+ if (LightenSpritePaletteInFog(curPalIndex))
+ {
+ u16 palEnd = (curPalIndex + 1) * 16;
+ u16 palOffset = curPalIndex * 16;
+
+ while (palOffset < palEnd)
+ {
+ struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ u8 r = color.r;
+ u8 g = color.g;
+ u8 b = color.b;
+
+ r += ((28 - r) * 3) >> 2;
+ g += ((31 - g) * 3) >> 2;
+ b += ((28 - b) * 3) >> 2;
+
+ r += ((rBlend - r) * blendCoeff) >> 4;
+ g += ((gBlend - g) * blendCoeff) >> 4;
+ b += ((bBlend - b) * blendCoeff) >> 4;
+
+ gPlttBufferFaded[palOffset] = (b << 10) | (g << 5) | r;
+ palOffset++;
+ }
+ }
+ else
+ {
+ BlendPalette(curPalIndex * 16, 16, blendCoeff, blendColor);
+ }
+ }
+}
+
+void MarkFogSpritePalToLighten(u8 paletteIndex)
+{
+ if (gWeatherPtr->lightenedFogSpritePalsCount < 6)
+ {
+ gWeatherPtr->lightenedFogSpritePals[gWeatherPtr->lightenedFogSpritePalsCount] = paletteIndex;
+ gWeatherPtr->lightenedFogSpritePalsCount++;
+ }
+}
+
+bool8 LightenSpritePaletteInFog(u8 paletteIndex)
+{
+ u16 i;
+
+ for (i = 0; i < gWeatherPtr->lightenedFogSpritePalsCount; i++)
+ {
+ if (gWeatherPtr->lightenedFogSpritePals[i] == paletteIndex)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_807A790(s8 gammaIndex)
+{
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE)
+ {
+ ApplyGammaShift(0, 32, gammaIndex);
+ gWeatherPtr->gammaIndex = gammaIndex;
+ }
+}
+
+void sub_807A7C4(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay)
+{
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE)
+ {
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_CHANGING_WEATHER;
+ gWeatherPtr->gammaIndex = gammaIndex;
+ gWeatherPtr->gammaTargetIndex = gammaTargetIndex;
+ gWeatherPtr->gammaStepFrameCounter = 0;
+ gWeatherPtr->gammaStepDelay = gammaStepDelay;
+ sub_807A790(gammaIndex);
+ }
+}
+
+void FadeScreen(u8 mode, s8 delay)
+{
+ u32 fadeColor;
+ bool8 fadeOut;
+ bool8 useWeatherPal;
+
+ switch (mode)
+ {
+ case FADE_FROM_BLACK:
+ fadeColor = RGB_BLACK;
+ fadeOut = FALSE;
+ break;
+ case FADE_FROM_WHITE:
+ fadeColor = RGB_WHITEALPHA;
+ fadeOut = FALSE;
+ break;
+ case FADE_TO_BLACK:
+ fadeColor = RGB_BLACK;
+ fadeOut = TRUE;
+ break;
+ case FADE_TO_WHITE:
+ fadeColor = RGB_WHITEALPHA;
+ fadeOut = TRUE;
+ break;
+ default:
+ return;
+ }
+
+ switch (gWeatherPtr->currWeather)
+ {
+ case WEATHER_RAIN:
+ case WEATHER_RAIN_THUNDERSTORM:
+ case WEATHER_DOWNPOUR:
+ case WEATHER_SNOW:
+ case WEATHER_FOG_HORIZONTAL:
+ case WEATHER_SHADE:
+ case WEATHER_DROUGHT:
+ useWeatherPal = TRUE;
+ break;
+ default:
+ useWeatherPal = FALSE;
+ break;
+ }
+
+ if (fadeOut)
+ {
+ if (useWeatherPal)
+ CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
+
+ BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor);
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
+ }
+ else
+ {
+ gWeatherPtr->fadeDestColor = fadeColor;
+ if (useWeatherPal)
+ gWeatherPtr->fadeScreenCounter = 0;
+ else
+ BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor);
+
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN;
+ gWeatherPtr->unknown_6CA = 1;
+ gWeatherPtr->unknown_6CB = 0;
+ Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
+ gWeatherPtr->readyForInit = TRUE;
+ }
+}
+
+void FadeSelectedPals(u8 mode, s8 delay, u32 selectedPalettes)
+{
+ u32 fadeColor;
+ bool8 fadeOut;
+ bool8 useWeatherPal;
+
+ switch (mode)
+ {
+ case FADE_FROM_BLACK:
+ fadeColor = RGB_BLACK;
+ fadeOut = FALSE;
+ break;
+ case FADE_FROM_WHITE:
+ fadeColor = RGB_WHITEALPHA;
+ fadeOut = FALSE;
+ break;
+ case FADE_TO_BLACK:
+ fadeColor = RGB_BLACK;
+ fadeOut = TRUE;
+ break;
+ case FADE_TO_WHITE:
+ fadeColor = RGB_WHITEALPHA;
+ fadeOut = TRUE;
+ break;
+ default:
+ return;
+ }
+
+ switch (gWeatherPtr->currWeather)
+ {
+ case WEATHER_RAIN:
+ case WEATHER_RAIN_THUNDERSTORM:
+ case WEATHER_DOWNPOUR:
+ case WEATHER_SNOW:
+ case WEATHER_FOG_HORIZONTAL:
+ case WEATHER_SHADE:
+ case WEATHER_DROUGHT:
+ useWeatherPal = TRUE;
+ break;
+ default:
+ useWeatherPal = FALSE;
+ break;
+ }
+
+ if (fadeOut)
+ {
+ if (useWeatherPal)
+ CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
+
+ BeginNormalPaletteFade(selectedPalettes, delay, 0, 16, fadeColor);
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
+ }
+ else
+ {
+ gWeatherPtr->fadeDestColor = fadeColor;
+ if (useWeatherPal)
+ gWeatherPtr->fadeScreenCounter = 0;
+ else
+ BeginNormalPaletteFade(selectedPalettes, delay, 16, 0, fadeColor);
+
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN;
+ gWeatherPtr->unknown_6CA = 1;
+ gWeatherPtr->unknown_6CB = 0;
+ Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
+ gWeatherPtr->readyForInit = TRUE;
+ }
+}
+
+
+bool8 IsWeatherNotFadingIn(void)
+{
+ return (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_IN);
+}
+
+void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
+{
+ u16 paletteIndex = 16 + spritePaletteIndex;
+ u16 i;
+
+ switch (gWeatherPtr->palProcessingState)
+ {
+ case WEATHER_PAL_STATE_SCREEN_FADING_IN:
+ if (gWeatherPtr->unknown_6CA != 0)
+ {
+ if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL)
+ MarkFogSpritePalToLighten(paletteIndex);
+ paletteIndex *= 16;
+ for (i = 0; i < 16; i++)
+ gPlttBufferFaded[paletteIndex + i] = gWeatherPtr->fadeDestColor;
+ }
+ break;
+ case WEATHER_PAL_STATE_SCREEN_FADING_OUT:
+ paletteIndex *= 16;
+ CpuFastCopy(gPlttBufferFaded + paletteIndex, gPlttBufferUnfaded + paletteIndex, 32);
+ BlendPalette(paletteIndex, 16, gPaletteFade.y, gPaletteFade.blendColor);
+ break;
+ // WEATHER_PAL_STATE_CHANGING_WEATHER
+ // WEATHER_PAL_STATE_CHANGING_IDLE
+ default:
+ if (gWeatherPtr->currWeather != WEATHER_FOG_HORIZONTAL)
+ {
+ ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex);
+ }
+ else
+ {
+ paletteIndex *= 16;
+ BlendPalette(paletteIndex, 16, 12, RGB(28, 31, 28));
+ }
+ break;
+ }
+}
+
+void ApplyWeatherGammaShiftToPal(u8 paletteIndex)
+{
+ ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex);
+}
+
+u8 sub_80ABF20(void)
+{
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_SCREEN_FADING_IN)
+ return gWeatherPtr->unknown_6CA;
+ else
+ return 0;
+}
+
+void LoadCustomWeatherSpritePalette(const u16 *palette)
+{
+ LoadPalette(palette, 0x100 + gWeatherPtr->weatherPicSpritePalIndex * 16, 32);
+ UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex);
+}
+
+static void LoadDroughtWeatherPalette(u8 *gammaIndexPtr, u8 *a1)
+{
+ // Dummied out in FRLG
+ // *gammaIndexPtr = 0x20;
+ // *a1 = 0x20;
+}
+
+void ResetDroughtWeatherPaletteLoading(void)
+{
+ gWeatherPtr->loadDroughtPalsIndex = 1;
+ gWeatherPtr->loadDroughtPalsOffset = 1;
+}
+
+bool8 LoadDroughtWeatherPalettes(void)
+{
+ if (gWeatherPtr->loadDroughtPalsIndex < 32)
+ {
+ LoadDroughtWeatherPalette(&gWeatherPtr->loadDroughtPalsIndex, &gWeatherPtr->loadDroughtPalsOffset);
+ if (gWeatherPtr->loadDroughtPalsIndex < 32)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_807AC50(s8 gammaIndex)
+{
+ sub_807A790(-gammaIndex - 1);
+}
+
+void sub_807AC60(void)
+{
+ gWeatherPtr->unknown_73C = 0;
+ gWeatherPtr->unknown_740 = 0;
+ gWeatherPtr->unknown_742 = 0;
+ gWeatherPtr->unknown_73E = 0;
+ gUnknown_20386A8 = 5;
+}
+
+void sub_807AC98(void)
+{
+ switch (gWeatherPtr->unknown_742)
+ {
+ case 0:
+ if (++gWeatherPtr->unknown_740 > gUnknown_20386A8)
+ {
+ gWeatherPtr->unknown_740 = 0;
+ sub_807AC50(gWeatherPtr->unknown_73C++);
+ if (gWeatherPtr->unknown_73C > 5)
+ {
+ gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C;
+ gWeatherPtr->unknown_742 = 1;
+ gWeatherPtr->unknown_740 = 0x3C;
+ }
+ }
+ break;
+ case 1:
+ gWeatherPtr->unknown_740 = (gWeatherPtr->unknown_740 + 3) & 0x7F;
+ gWeatherPtr->unknown_73C = ((gSineTable[gWeatherPtr->unknown_740] - 1) >> 6) + 2;
+ if (gWeatherPtr->unknown_73C != gWeatherPtr->unknown_73E)
+ sub_807AC50(gWeatherPtr->unknown_73C);
+ gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C;
+ break;
+ case 2:
+ if (++gWeatherPtr->unknown_740 > gUnknown_20386A8)
+ {
+ gWeatherPtr->unknown_740 = 0;
+ sub_807AC50(--gWeatherPtr->unknown_73C);
+ if (gWeatherPtr->unknown_73C == 3)
+ gWeatherPtr->unknown_742 = 0;
+ }
+ break;
+ }
+}
+
+void Weather_SetBlendCoeffs(u8 eva, u8 evb)
+{
+ gWeatherPtr->currBlendEVA = eva;
+ gWeatherPtr->currBlendEVB = evb;
+ gWeatherPtr->targetBlendEVA = eva;
+ gWeatherPtr->targetBlendEVB = evb;
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(eva, evb));
+}
+
+void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay)
+{
+ gWeatherPtr->targetBlendEVA = eva;
+ gWeatherPtr->targetBlendEVB = evb;
+ gWeatherPtr->blendDelay = delay;
+ gWeatherPtr->blendFrameCounter = 0;
+ gWeatherPtr->blendUpdateCounter = 0;
+}
+
+bool8 Weather_UpdateBlend(void)
+{
+ if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA
+ && gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
+ return TRUE;
+
+ if (++gWeatherPtr->blendFrameCounter > gWeatherPtr->blendDelay)
+ {
+ gWeatherPtr->blendFrameCounter = 0;
+ gWeatherPtr->blendUpdateCounter++;
+
+ // Update currBlendEVA and currBlendEVB on alternate frames
+ if (gWeatherPtr->blendUpdateCounter & 1)
+ {
+ if (gWeatherPtr->currBlendEVA < gWeatherPtr->targetBlendEVA)
+ gWeatherPtr->currBlendEVA++;
+ else if (gWeatherPtr->currBlendEVA > gWeatherPtr->targetBlendEVA)
+ gWeatherPtr->currBlendEVA--;
+ }
+ else
+ {
+ if (gWeatherPtr->currBlendEVB < gWeatherPtr->targetBlendEVB)
+ gWeatherPtr->currBlendEVB++;
+ else if (gWeatherPtr->currBlendEVB > gWeatherPtr->targetBlendEVB)
+ gWeatherPtr->currBlendEVB--;
+ }
+ }
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB));
+
+ if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA
+ && gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
+ return TRUE;
+
+ return FALSE;
+}
+
+void sub_807AF00(u8 a)
+{
+ switch (a)
+ {
+ case 1:
+ SetWeather(WEATHER_SUNNY_CLOUDS);
+ break;
+ case 2:
+ SetWeather(WEATHER_SUNNY);
+ break;
+ case 3:
+ SetWeather(WEATHER_RAIN);
+ break;
+ case 4:
+ SetWeather(WEATHER_SNOW);
+ break;
+ case 5:
+ SetWeather(WEATHER_RAIN_THUNDERSTORM);
+ break;
+ case 6:
+ SetWeather(WEATHER_FOG_HORIZONTAL);
+ break;
+ case 7:
+ SetWeather(WEATHER_FOG_DIAGONAL);
+ break;
+ case 8:
+ SetWeather(WEATHER_VOLCANIC_ASH);
+ break;
+ case 9:
+ SetWeather(WEATHER_SANDSTORM);
+ break;
+ case 10:
+ SetWeather(WEATHER_SHADE);
+ break;
+ }
+}
+
+u8 GetCurrentWeather(void)
+{
+ return gWeatherPtr->currWeather;
+}
+
+void SetRainStrengthFromSoundEffect(u16 soundEffect)
+{
+ if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT)
+ {
+ switch (soundEffect)
+ {
+ case SE_T_KOAME:
+ gWeatherPtr->rainStrength = 0;
+ break;
+ case SE_T_OOAME:
+ gWeatherPtr->rainStrength = 1;
+ break;
+ case SE_T_AME:
+ gWeatherPtr->rainStrength = 2;
+ break;
+ default:
+ return;
+ }
+
+ PlaySE(soundEffect);
+ }
+}
+
+void PlayRainStoppingSoundEffect(void)
+{
+ if (IsSpecialSEPlaying())
+ {
+ switch (gWeatherPtr->rainStrength)
+ {
+ case 0:
+ PlaySE(SE_T_KOAME_E);
+ break;
+ case 1:
+ PlaySE(SE_T_OOAME_E);
+ break;
+ case 2:
+ default:
+ PlaySE(SE_T_AME_E);
+ break;
+ }
+ }
+}
+
+u8 IsWeatherChangeComplete(void)
+{
+ return gWeatherPtr->weatherChangeComplete;
+}
+
+void SetWeatherScreenFadeOut(void)
+{
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
+}
+
+void sub_807B070(void)
+{
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+}
+
+void PreservePaletteInWeather(u8 preservedPalIndex)
+{
+ CpuCopy16(sBasePaletteGammaTypes, sFieldEffectPaletteGammaTypes, 32);
+ sFieldEffectPaletteGammaTypes[preservedPalIndex] = GAMMA_NONE;
+ sPaletteGammaTypes = sFieldEffectPaletteGammaTypes;
+}
+
+void ResetPreservedPalettesInWeather(void)
+{
+ sPaletteGammaTypes = sBasePaletteGammaTypes;
+}
diff --git a/src/field_weather_util.c b/src/field_weather_util.c
new file mode 100644
index 000000000..ed1ce5236
--- /dev/null
+++ b/src/field_weather_util.c
@@ -0,0 +1,12 @@
+#include "global.h"
+
+const u16 gUnknown_83C2D00[] = INCBIN_U16("graphics/field_effects/unk_83C2D00.gbapal");
+const u16 gUnknown_83C2D20[] = INCBIN_U16("graphics/field_effects/unk_83C2D20.gbapal");
+const u16 gUnknown_83C2D40[] = INCBIN_U16("graphics/field_effects/unk_83C2D40.4bpp");
+const u16 gWeatherFog1Tiles[] = INCBIN_U16("graphics/field_effects/unk_83C3540.4bpp");
+const u16 gUnknown_83C3D40[] = INCBIN_U16("graphics/field_effects/unk_83C3D40.4bpp");
+const u16 gUnknown_83C4540[] = INCBIN_U16("graphics/field_effects/unk_83C4540.4bpp");
+const u16 gUnknown_83C4580[] = INCBIN_U16("graphics/field_effects/unk_83C4580.4bpp");
+const u16 gUnknown_83C45C0[] = INCBIN_U16("graphics/field_effects/unk_83C45C0.4bpp");
+const u16 gUnknown_83C55C0[] = INCBIN_U16("graphics/field_effects/unk_83C55C0.4bpp");
+const u16 gUnknown_83C5BC0[] = INCBIN_U16("graphics/field_effects/unk_83C5BC0.4bpp");
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 531ae1434..3da5bb78f 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -117,27 +117,8 @@ gPlayerAvatar: @ 2037078
.include "src/battle_anim_mons.o"
.align 2
.include "src/title_screen.o"
-
.align 2
- @ .include "src/field_weather.o"
-gUnknown_2037F34: @ 2037F34
- .space 0x200
-
-gUnknown_2038134: @ 2038134
- .space 0x260
-
-gUnknown_2038394: @ 2038394
- .space 0x2F0
-
-gUnknown_2038684: @ 2038684
- .space 0x20
-
-gUnknown_20386A4: @ 20386A4
- .space 0x4
-
-gUnknown_20386A8: @ 20386A8
- .space 0x4
-
+ .include "src/field_weather.o"
.align 2
.include "src/battle_setup.o"
.align 2