diff --git a/asm/non_matchings/code/z_kankyo/func_80073A5C.s b/asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s
similarity index 99%
rename from asm/non_matchings/code/z_kankyo/func_80073A5C.s
rename to asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s
index 0c5b47c24b..fde3b33b6d 100644
--- a/asm/non_matchings/code/z_kankyo/func_80073A5C.s
+++ b/asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s
@@ -35,7 +35,7 @@ glabel D_8013C7D8
.float 0.1
.text
-glabel func_80073A5C
+glabel Environment_DrawLensFlare
/* AEABFC 80073A5C 27BDFE50 */ addiu $sp, $sp, -0x1b0
/* AEAC00 80073A60 3C0B8012 */ lui $t3, %hi(D_8011FE00) # $t3, 0x8012
/* AEAC04 80073A64 AFBF004C */ sw $ra, 0x4c($sp)
@@ -348,7 +348,7 @@ glabel func_80073A5C
/* AEB0AC 80073F0C 00000000 */ nop
.L80073F10:
/* AEB0B0 80073F10 44D8F800 */ ctc1 $t8, $31
-/* AEB0B4 80073F14 0C01BE4F */ jal func_8006F93C
+/* AEB0B4 80073F14 0C01BE4F */ jal Environment_LerpWeight
/* AEB0B8 80073F18 30C6FFFF */ andi $a2, $a2, 0xffff
/* AEB0BC 80073F1C E7A0013C */ swc1 $f0, 0x13c($sp)
/* AEB0C0 80073F20 44913000 */ mtc1 $s1, $f6
@@ -600,8 +600,8 @@ glabel func_80073A5C
/* AEB468 800742C8 2A21000A */ slti $at, $s1, 0xa
.L800742CC:
/* AEB46C 800742CC 8E0702D0 */ lw $a3, 0x2d0($s0)
-/* AEB470 800742D0 3C030403 */ lui $v1, %hi(gEffBurnMark1DL) # $v1, 0x403
-/* AEB474 800742D4 24637730 */ addiu $v1, %lo(gEffBurnMark1DL) # addiu $v1, $v1, 0x7730
+/* AEB470 800742D0 3C030403 */ lui $v1, %hi(gLensFlareCircleDL) # $v1, 0x403
+/* AEB474 800742D4 24637730 */ addiu $v1, %lo(gLensFlareCircleDL) # addiu $v1, $v1, 0x7730
/* AEB478 800742D8 24E80008 */ addiu $t0, $a3, 8
/* AEB47C 800742DC AE0802D0 */ sw $t0, 0x2d0($s0)
/* AEB480 800742E0 3C0FDE00 */ lui $t7, 0xde00
diff --git a/asm/non_matchings/code/z_kankyo/func_80074704.s b/asm/non_matchings/code/z_kankyo/Environment_DrawRain.s
similarity index 99%
rename from asm/non_matchings/code/z_kankyo/func_80074704.s
rename to asm/non_matchings/code/z_kankyo/Environment_DrawRain.s
index a70264682c..61203b66e7 100644
--- a/asm/non_matchings/code/z_kankyo/func_80074704.s
+++ b/asm/non_matchings/code/z_kankyo/Environment_DrawRain.s
@@ -35,7 +35,7 @@ glabel D_8013C7F0
.float 0.02
.text
-glabel func_80074704
+glabel Environment_DrawRain
/* AEB8A4 80074704 27BDFED8 */ addiu $sp, $sp, -0x128
/* AEB8A8 80074708 3C0F8012 */ lui $t7, %hi(D_8011FE70) # $t7, 0x8012
/* AEB8AC 8007470C AFBF006C */ sw $ra, 0x6c($sp)
diff --git a/asm/non_matchings/code/z_kankyo/func_80070C24.s b/asm/non_matchings/code/z_kankyo/Environment_Update.s
similarity index 99%
rename from asm/non_matchings/code/z_kankyo/func_80070C24.s
rename to asm/non_matchings/code/z_kankyo/Environment_Update.s
index 908bd361d2..a0ba2c5eff 100644
--- a/asm/non_matchings/code/z_kankyo/func_80070C24.s
+++ b/asm/non_matchings/code/z_kankyo/Environment_Update.s
@@ -39,7 +39,7 @@ glabel D_8013C7A8
.float 0.005
.text
-glabel func_80070C24
+glabel Environment_Update
/* AE7DC4 80070C24 27BDFF70 */ addiu $sp, $sp, -0x90
/* AE7DC8 80070C28 3C0D8016 */ lui $t5, %hi(gSaveContext) # $t5, 0x8016
/* AE7DCC 80070C2C 25ADE660 */ addiu $t5, %lo(gSaveContext) # addiu $t5, $t5, -0x19a0
@@ -200,16 +200,16 @@ glabel func_80070C24
/* AE8014 80070E74 8DAF1360 */ lw $t7, 0x1360($t5)
/* AE8018 80070E78 8DB80010 */ lw $t8, 0x10($t5)
.L80070E7C:
-/* AE801C 80070E7C 3C038012 */ lui $v1, %hi(D_8011FB40) # $v1, 0x8012
-/* AE8020 80070E80 2463FB40 */ addiu $v1, %lo(D_8011FB40) # addiu $v1, $v1, -0x4c0
+/* AE801C 80070E7C 3C038012 */ lui $v1, %hi(gTimeIncrement) # $v1, 0x8012
+/* AE8020 80070E80 2463FB40 */ addiu $v1, %lo(gTimeIncrement) # addiu $v1, $v1, -0x4c0
/* AE8024 80070E84 13000004 */ beqz $t8, .L80070E98
/* AE8028 80070E88 00000000 */ nop
/* AE802C 80070E8C 94620000 */ lhu $v0, ($v1)
/* AE8030 80070E90 28410190 */ slti $at, $v0, 0x190
/* AE8034 80070E94 14200007 */ bnez $at, .L80070EB4
.L80070E98:
-/* AE8038 80070E98 3C038012 */ lui $v1, %hi(D_8011FB40) # $v1, 0x8012
-/* AE803C 80070E9C 2463FB40 */ addiu $v1, %lo(D_8011FB40) # addiu $v1, $v1, -0x4c0
+/* AE8038 80070E98 3C038012 */ lui $v1, %hi(gTimeIncrement) # $v1, 0x8012
+/* AE803C 80070E9C 2463FB40 */ addiu $v1, %lo(gTimeIncrement) # addiu $v1, $v1, -0x4c0
/* AE8040 80070EA0 94790000 */ lhu $t9, ($v1)
/* AE8044 80070EA4 95AE000C */ lhu $t6, 0xc($t5)
/* AE8048 80070EA8 01D97821 */ addu $t7, $t6, $t9
@@ -223,8 +223,8 @@ glabel func_80070C24
.L80070EC4:
/* AE8064 80070EC4 8DAF1360 */ lw $t7, 0x1360($t5)
.L80070EC8:
-/* AE8068 80070EC8 3C038012 */ lui $v1, %hi(D_8011FB40) # $v1, 0x8012
-/* AE806C 80070ECC 2463FB40 */ addiu $v1, %lo(D_8011FB40) # addiu $v1, $v1, -0x4c0
+/* AE8068 80070EC8 3C038012 */ lui $v1, %hi(gTimeIncrement) # $v1, 0x8012
+/* AE806C 80070ECC 2463FB40 */ addiu $v1, %lo(gTimeIncrement) # addiu $v1, $v1, -0x4c0
/* AE8070 80070ED0 29E10005 */ slti $at, $t7, 5
/* AE8074 80070ED4 10200004 */ beqz $at, .L80070EE8
/* AE8078 80070ED8 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016
@@ -297,7 +297,7 @@ glabel func_80070C24
/* AE8164 80070FC4 AC790004 */ sw $t9, 4($v1)
/* AE8168 80070FC8 8FA40090 */ lw $a0, 0x90($sp)
/* AE816C 80070FCC AFAA007C */ sw $t2, 0x7c($sp)
-/* AE8170 80070FD0 0C01C1C6 */ jal func_80070718
+/* AE8170 80070FD0 0C01C1C6 */ jal Environment_PrintDebugInfo
/* AE8174 80070FD4 E7AE0088 */ swc1 $f14, 0x88($sp)
/* AE8178 80070FD8 8FAF0074 */ lw $t7, 0x74($sp)
/* AE817C 80070FDC 8FAA007C */ lw $t2, 0x7c($sp)
@@ -405,7 +405,7 @@ glabel func_80070C24
/* AE8300 80071160 30E5FFFF */ andi $a1, $a3, 0xffff
/* AE8304 80071164 AFA80034 */ sw $t0, 0x34($sp)
/* AE8308 80071168 AFAA007C */ sw $t2, 0x7c($sp)
-/* AE830C 8007116C 0C01BE4F */ jal func_8006F93C
+/* AE830C 8007116C 0C01BE4F */ jal Environment_LerpWeight
/* AE8310 80071170 E7AE0088 */ swc1 $f14, 0x88($sp)
/* AE8314 80071174 920F001F */ lbu $t7, 0x1f($s0)
/* AE8318 80071178 8FA80034 */ lw $t0, 0x34($sp)
diff --git a/asm/non_matchings/code/z_kankyo/func_8006FC88.s b/asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s
similarity index 96%
rename from asm/non_matchings/code/z_kankyo/func_8006FC88.s
rename to asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s
index 834392d26f..99743ec871 100644
--- a/asm/non_matchings/code/z_kankyo/func_8006FC88.s
+++ b/asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s
@@ -29,7 +29,7 @@ glabel D_8013C380
.balign 4
.text
-glabel func_8006FC88
+glabel Environment_UpdateSkybox
/* AE6E28 8006FC88 27BDFFA0 */ addiu $sp, $sp, -0x60
/* AE6E2C 8006FC8C AFB00030 */ sw $s0, 0x30($sp)
/* AE6E30 8006FC90 308200FF */ andi $v0, $a0, 0xff
@@ -78,7 +78,7 @@ glabel func_8006FC88
/* AE6ED4 8006FD34 3146FFFF */ andi $a2, $t2, 0xffff
/* AE6ED8 8006FD38 11C00029 */ beqz $t6, .L8006FDE0
/* AE6EDC 8006FD3C 00000000 */ nop
-/* AE6EE0 8006FD40 0C01BE4F */ jal func_8006F93C
+/* AE6EE0 8006FD40 0C01BE4F */ jal Environment_LerpWeight
/* AE6EE4 8006FD44 30E4FFFF */ andi $a0, $a3, 0xffff
/* AE6EE8 8006FD48 3C01437F */ li $at, 0x437F0000 # 0.000000
/* AE6EEC 8006FD4C 44812000 */ mtc1 $at, $f4
@@ -165,8 +165,8 @@ glabel func_8006FC88
.L8006FE74:
/* AE7014 8006FE74 906F0005 */ lbu $t7, 5($v1)
/* AE7018 8006FE78 90780006 */ lbu $t8, 6($v1)
-/* AE701C 8006FE7C 3C028012 */ lui $v0, %hi(D_8011FB3C) # $v0, 0x8012
-/* AE7020 8006FE80 2442FB3C */ addiu $v0, %lo(D_8011FB3C) # addiu $v0, $v0, -0x4c4
+/* AE701C 8006FE7C 3C028012 */ lui $v0, %hi(gSkyboxBlendingEnabled) # $v0, 0x8012
+/* AE7020 8006FE80 2442FB3C */ addiu $v0, %lo(gSkyboxBlendingEnabled) # addiu $v0, $v0, -0x4c4
/* AE7024 8006FE84 332B00FF */ andi $t3, $t9, 0xff
/* AE7028 8006FE88 A0590000 */ sb $t9, ($v0)
/* AE702C 8006FE8C A3AF005A */ sb $t7, 0x5a($sp)
@@ -183,7 +183,7 @@ glabel func_8006FC88
/* AE7058 8006FEB8 94640002 */ lhu $a0, 2($v1)
/* AE705C 8006FEBC 94650000 */ lhu $a1, ($v1)
/* AE7060 8006FEC0 A3A8005B */ sb $t0, 0x5b($sp)
-/* AE7064 8006FEC4 0C01BE4F */ jal func_8006F93C
+/* AE7064 8006FEC4 0C01BE4F */ jal Environment_LerpWeight
/* AE7068 8006FEC8 3146FFFF */ andi $a2, $t2, 0xffff
/* AE706C 8006FECC 3C01437F */ li $at, 0x437F0000 # 0.000000
/* AE7070 8006FED0 44815000 */ mtc1 $at, $f10
@@ -239,7 +239,7 @@ glabel func_8006FC88
/* AE7128 8006FF88 94640002 */ lhu $a0, 2($v1)
/* AE712C 8006FF8C 94650000 */ lhu $a1, ($v1)
/* AE7130 8006FF90 A3A8005B */ sb $t0, 0x5b($sp)
-/* AE7134 8006FF94 0C01BE4F */ jal func_8006F93C
+/* AE7134 8006FF94 0C01BE4F */ jal Environment_LerpWeight
/* AE7138 8006FF98 3146FFFF */ andi $a2, $t2, 0xffff
/* AE713C 8006FF9C 3C01437F */ li $at, 0x437F0000 # 0.000000
/* AE7140 8006FFA0 44812000 */ mtc1 $at, $f4
@@ -412,10 +412,10 @@ glabel func_8006FC88
/* AE73A8 80070208 530B0027 */ beql $t8, $t3, .L800702A8
/* AE73AC 8007020C 93B80059 */ lbu $t8, 0x59($sp)
/* AE73B0 80070210 820C0044 */ lb $t4, 0x44($s0)
-/* AE73B4 80070214 3C0F8012 */ lui $t7, %hi(D_8011FD3C) # $t7, 0x8012
+/* AE73B4 80070214 3C0F8012 */ lui $t7, %hi(gSkyboxFiles) # $t7, 0x8012
/* AE73B8 80070218 240D0001 */ li $t5, 1
/* AE73BC 8007021C 15800021 */ bnez $t4, .L800702A4
-/* AE73C0 80070220 25EFFD3C */ addiu $t7, %lo(D_8011FD3C) # addiu $t7, $t7, -0x2c4
+/* AE73C0 80070220 25EFFD3C */ addiu $t7, %lo(gSkyboxFiles) # addiu $t7, $t7, -0x2c4
/* AE73C4 80070224 A20D0044 */ sb $t5, 0x44($s0)
/* AE73C8 80070228 93AE005A */ lbu $t6, 0x5a($sp)
/* AE73CC 8007022C 26040068 */ addiu $a0, $s0, 0x68
@@ -460,8 +460,8 @@ glabel func_8006FC88
/* AE7460 800702C0 240C000B */ li $t4, 11
/* AE7464 800702C4 A20C0044 */ sb $t4, 0x44($s0)
/* AE7468 800702C8 93AD0059 */ lbu $t5, 0x59($sp)
-/* AE746C 800702CC 3C198012 */ lui $t9, %hi(D_8011FD3C) # $t9, 0x8012
-/* AE7470 800702D0 2739FD3C */ addiu $t9, %lo(D_8011FD3C) # addiu $t9, $t9, -0x2c4
+/* AE746C 800702CC 3C198012 */ lui $t9, %hi(gSkyboxFiles) # $t9, 0x8012
+/* AE7470 800702D0 2739FD3C */ addiu $t9, %lo(gSkyboxFiles) # addiu $t9, $t9, -0x2c4
/* AE7474 800702D4 000D7100 */ sll $t6, $t5, 4
/* AE7478 800702D8 01D91021 */ addu $v0, $t6, $t9
/* AE747C 800702DC 8C4F0004 */ lw $t7, 4($v0)
@@ -503,11 +503,11 @@ glabel func_8006FC88
/* AE7504 80070364 A2180044 */ sb $t8, 0x44($s0)
/* AE7508 80070368 8FB90050 */ lw $t9, 0x50($sp)
/* AE750C 8007036C 93AB005A */ lbu $t3, 0x5a($sp)
-/* AE7510 80070370 3C0D8012 */ lui $t5, %hi(D_8011FD3C) # $t5, 0x8012
+/* AE7510 80070370 3C0D8012 */ lui $t5, %hi(gSkyboxFiles) # $t5, 0x8012
/* AE7514 80070374 33380004 */ andi $t8, $t9, 4
/* AE7518 80070378 000B6100 */ sll $t4, $t3, 4
/* AE751C 8007037C 00185883 */ sra $t3, $t8, 2
-/* AE7520 80070380 25ADFD3C */ addiu $t5, %lo(D_8011FD3C) # addiu $t5, $t5, -0x2c4
+/* AE7520 80070380 25ADFD3C */ addiu $t5, %lo(gSkyboxFiles) # addiu $t5, $t5, -0x2c4
/* AE7524 80070384 260E0048 */ addiu $t6, $s0, 0x48
/* AE7528 80070388 332F0001 */ andi $t7, $t9, 1
/* AE752C 8007038C AFAE0040 */ sw $t6, 0x40($sp)
@@ -577,10 +577,10 @@ glabel func_8006FC88
/* AE7624 80070484 93AE0059 */ lbu $t6, 0x59($sp)
/* AE7628 80070488 260D0048 */ addiu $t5, $s0, 0x48
/* AE762C 8007048C AFAD0040 */ sw $t5, 0x40($sp)
-/* AE7630 80070490 3C188012 */ lui $t8, %hi(D_8011FD3C) # $t8, 0x8012
+/* AE7630 80070490 3C188012 */ lui $t8, %hi(gSkyboxFiles) # $t8, 0x8012
/* AE7634 80070494 31EC0004 */ andi $t4, $t7, 4
/* AE7638 80070498 000C6883 */ sra $t5, $t4, 2
-/* AE763C 8007049C 2718FD3C */ addiu $t8, %lo(D_8011FD3C) # addiu $t8, $t8, -0x2c4
+/* AE763C 8007049C 2718FD3C */ addiu $t8, %lo(gSkyboxFiles) # addiu $t8, $t8, -0x2c4
/* AE7640 800704A0 31EB0001 */ andi $t3, $t7, 1
/* AE7644 800704A4 000EC900 */ sll $t9, $t6, 4
/* AE7648 800704A8 03381021 */ addu $v0, $t9, $t8
diff --git a/asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s b/asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s
deleted file mode 100644
index 1c44515305..0000000000
--- a/asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s
+++ /dev/null
@@ -1,181 +0,0 @@
-glabel Kankyo_FadeInGameOverLights
-/* AED294 800760F4 27BDFFC8 */ addiu $sp, $sp, -0x38
-/* AED298 800760F8 AFBF002C */ sw $ra, 0x2c($sp)
-/* AED29C 800760FC AFB00028 */ sw $s0, 0x28($sp)
-/* AED2A0 80076100 8C831C44 */ lw $v1, 0x1c44($a0)
-/* AED2A4 80076104 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AED2A8 80076108 44810000 */ mtc1 $at, $f0
-/* AED2AC 8007610C C4640024 */ lwc1 $f4, 0x24($v1)
-/* AED2B0 80076110 3C028016 */ lui $v0, %hi(D_8015FDAE)
-/* AED2B4 80076114 9042FDAE */ lbu $v0, %lo(D_8015FDAE)($v0)
-/* AED2B8 80076118 4600218D */ trunc.w.s $f6, $f4
-/* AED2BC 8007611C C4640028 */ lwc1 $f4, 0x28($v1)
-/* AED2C0 80076120 00808025 */ move $s0, $a0
-/* AED2C4 80076124 3C048016 */ lui $a0, %hi(D_8015FD88)
-/* AED2C8 80076128 440F3000 */ mfc1 $t7, $f6
-/* AED2CC 8007612C 4600218D */ trunc.w.s $f6, $f4
-/* AED2D0 80076130 C464002C */ lwc1 $f4, 0x2c($v1)
-/* AED2D4 80076134 000FC400 */ sll $t8, $t7, 0x10
-/* AED2D8 80076138 0018CC03 */ sra $t9, $t8, 0x10
-/* AED2DC 8007613C 44994000 */ mtc1 $t9, $f8
-/* AED2E0 80076140 440A3000 */ mfc1 $t2, $f6
-/* AED2E4 80076144 4600218D */ trunc.w.s $f6, $f4
-/* AED2E8 80076148 240900FF */ li $t1, 255
-/* AED2EC 8007614C 000A5C00 */ sll $t3, $t2, 0x10
-/* AED2F0 80076150 468042A0 */ cvt.s.w $f10, $f8
-/* AED2F4 80076154 000B6403 */ sra $t4, $t3, 0x10
-/* AED2F8 80076158 448C4000 */ mtc1 $t4, $f8
-/* AED2FC 8007615C 440F3000 */ mfc1 $t7, $f6
-/* AED300 80076160 AFA9001C */ sw $t1, 0x1c($sp)
-/* AED304 80076164 2484FD88 */ addiu $a0, %lo(D_8015FD88)
-/* AED308 80076168 46005401 */ sub.s $f16, $f10, $f0
-/* AED30C 8007616C 000FC400 */ sll $t8, $t7, 0x10
-/* AED310 80076170 0018CC03 */ sra $t9, $t8, 0x10
-/* AED314 80076174 468042A0 */ cvt.s.w $f10, $f8
-/* AED318 80076178 44994000 */ mtc1 $t9, $f8
-/* AED31C 8007617C AFA30034 */ sw $v1, 0x34($sp)
-/* AED320 80076180 AFA20018 */ sw $v0, 0x18($sp)
-/* AED324 80076184 AFA20014 */ sw $v0, 0x14($sp)
-/* AED328 80076188 4600848D */ trunc.w.s $f18, $f16
-/* AED32C 8007618C AFA20010 */ sw $v0, 0x10($sp)
-/* AED330 80076190 46005400 */ add.s $f16, $f10, $f0
-/* AED334 80076194 44059000 */ mfc1 $a1, $f18
-/* AED338 80076198 468042A0 */ cvt.s.w $f10, $f8
-/* AED33C 8007619C 00052C00 */ sll $a1, $a1, 0x10
-/* AED340 800761A0 00052C03 */ sra $a1, $a1, 0x10
-/* AED344 800761A4 4600848D */ trunc.w.s $f18, $f16
-/* AED348 800761A8 46005401 */ sub.s $f16, $f10, $f0
-/* AED34C 800761AC 44069000 */ mfc1 $a2, $f18
-/* AED350 800761B0 4600848D */ trunc.w.s $f18, $f16
-/* AED354 800761B4 00063400 */ sll $a2, $a2, 0x10
-/* AED358 800761B8 00063403 */ sra $a2, $a2, 0x10
-/* AED35C 800761BC 44079000 */ mfc1 $a3, $f18
-/* AED360 800761C0 00000000 */ nop
-/* AED364 800761C4 00073C00 */ sll $a3, $a3, 0x10
-/* AED368 800761C8 0C01E763 */ jal Lights_PointNoGlowSetInfo
-/* AED36C 800761CC 00073C03 */ sra $a3, $a3, 0x10
-/* AED370 800761D0 8FA30034 */ lw $v1, 0x34($sp)
-/* AED374 800761D4 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AED378 800761D8 44810000 */ mtc1 $at, $f0
-/* AED37C 800761DC C4640024 */ lwc1 $f4, 0x24($v1)
-/* AED380 800761E0 3C028016 */ lui $v0, %hi(D_8015FDAE)
-/* AED384 800761E4 9042FDAE */ lbu $v0, %lo(D_8015FDAE)($v0)
-/* AED388 800761E8 4600218D */ trunc.w.s $f6, $f4
-/* AED38C 800761EC C4640028 */ lwc1 $f4, 0x28($v1)
-/* AED390 800761F0 3C048016 */ lui $a0, %hi(D_8015FDA0)
-/* AED394 800761F4 240F00FF */ li $t7, 255
-/* AED398 800761F8 440B3000 */ mfc1 $t3, $f6
-/* AED39C 800761FC 4600218D */ trunc.w.s $f6, $f4
-/* AED3A0 80076200 C464002C */ lwc1 $f4, 0x2c($v1)
-/* AED3A4 80076204 000B6400 */ sll $t4, $t3, 0x10
-/* AED3A8 80076208 000C6C03 */ sra $t5, $t4, 0x10
-/* AED3AC 8007620C 448D4000 */ mtc1 $t5, $f8
-/* AED3B0 80076210 44183000 */ mfc1 $t8, $f6
-/* AED3B4 80076214 4600218D */ trunc.w.s $f6, $f4
-/* AED3B8 80076218 AFAF001C */ sw $t7, 0x1c($sp)
-/* AED3BC 8007621C 0018CC00 */ sll $t9, $t8, 0x10
-/* AED3C0 80076220 468042A0 */ cvt.s.w $f10, $f8
-/* AED3C4 80076224 00194403 */ sra $t0, $t9, 0x10
-/* AED3C8 80076228 44884000 */ mtc1 $t0, $f8
-/* AED3CC 8007622C 440B3000 */ mfc1 $t3, $f6
-/* AED3D0 80076230 2484FDA0 */ addiu $a0, %lo(D_8015FDA0)
-/* AED3D4 80076234 AFA20018 */ sw $v0, 0x18($sp)
-/* AED3D8 80076238 46005400 */ add.s $f16, $f10, $f0
-/* AED3DC 8007623C 000B6400 */ sll $t4, $t3, 0x10
-/* AED3E0 80076240 000C6C03 */ sra $t5, $t4, 0x10
-/* AED3E4 80076244 468042A0 */ cvt.s.w $f10, $f8
-/* AED3E8 80076248 448D4000 */ mtc1 $t5, $f8
-/* AED3EC 8007624C AFA20014 */ sw $v0, 0x14($sp)
-/* AED3F0 80076250 AFA20010 */ sw $v0, 0x10($sp)
-/* AED3F4 80076254 4600848D */ trunc.w.s $f18, $f16
-/* AED3F8 80076258 46005400 */ add.s $f16, $f10, $f0
-/* AED3FC 8007625C 44059000 */ mfc1 $a1, $f18
-/* AED400 80076260 468042A0 */ cvt.s.w $f10, $f8
-/* AED404 80076264 00052C00 */ sll $a1, $a1, 0x10
-/* AED408 80076268 00052C03 */ sra $a1, $a1, 0x10
-/* AED40C 8007626C 4600848D */ trunc.w.s $f18, $f16
-/* AED410 80076270 46005400 */ add.s $f16, $f10, $f0
-/* AED414 80076274 44069000 */ mfc1 $a2, $f18
-/* AED418 80076278 4600848D */ trunc.w.s $f18, $f16
-/* AED41C 8007627C 00063400 */ sll $a2, $a2, 0x10
-/* AED420 80076280 00063403 */ sra $a2, $a2, 0x10
-/* AED424 80076284 44079000 */ mfc1 $a3, $f18
-/* AED428 80076288 00000000 */ nop
-/* AED42C 8007628C 00073C00 */ sll $a3, $a3, 0x10
-/* AED430 80076290 0C01E763 */ jal Lights_PointNoGlowSetInfo
-/* AED434 80076294 00073C03 */ sra $a3, $a3, 0x10
-/* AED438 80076298 3C038016 */ lui $v1, %hi(D_8015FDAE) # $v1, 0x8016
-/* AED43C 8007629C 2463FDAE */ addiu $v1, %lo(D_8015FDAE) # addiu $v1, $v1, -0x252
-/* AED440 800762A0 90620000 */ lbu $v0, ($v1)
-/* AED444 800762A4 284100FE */ slti $at, $v0, 0xfe
-/* AED448 800762A8 10200002 */ beqz $at, .L800762B4
-/* AED44C 800762AC 24580002 */ addiu $t8, $v0, 2
-/* AED450 800762B0 A0780000 */ sb $t8, ($v1)
-.L800762B4:
-/* AED454 800762B4 0C03032E */ jal func_800C0CB8
-/* AED458 800762B8 02002025 */ move $a0, $s0
-/* AED45C 800762BC 3C038016 */ lui $v1, %hi(D_8015FDAE) # $v1, 0x8016
-/* AED460 800762C0 10400029 */ beqz $v0, .L80076368
-/* AED464 800762C4 2463FDAE */ addiu $v1, %lo(D_8015FDAE) # addiu $v1, $v1, -0x252
-/* AED468 800762C8 00001825 */ move $v1, $zero
-/* AED46C 800762CC 3C060001 */ lui $a2, 1
-/* AED470 800762D0 2405FF01 */ li $a1, -255
-.L800762D4:
-/* AED474 800762D4 0003C840 */ sll $t9, $v1, 1
-/* AED478 800762D8 02194021 */ addu $t0, $s0, $t9
-/* AED47C 800762DC 01061021 */ addu $v0, $t0, $a2
-/* AED480 800762E0 84440AB0 */ lh $a0, 0xab0($v0)
-/* AED484 800762E4 24630001 */ addiu $v1, $v1, 1
-/* AED488 800762E8 00031C00 */ sll $v1, $v1, 0x10
-/* AED48C 800762EC 2881FF02 */ slti $at, $a0, -0xfe
-/* AED490 800762F0 14200006 */ bnez $at, .L8007630C
-/* AED494 800762F4 00031C03 */ sra $v1, $v1, 0x10
-/* AED498 800762F8 844A0AB6 */ lh $t2, 0xab6($v0)
-/* AED49C 800762FC 2489FFF4 */ addiu $t1, $a0, -0xc
-/* AED4A0 80076300 A4490AB0 */ sh $t1, 0xab0($v0)
-/* AED4A4 80076304 254BFFF4 */ addiu $t3, $t2, -0xc
-/* AED4A8 80076308 A44B0AB6 */ sh $t3, 0xab6($v0)
-.L8007630C:
-/* AED4AC 8007630C 28610003 */ slti $at, $v1, 3
-/* AED4B0 80076310 1420FFF0 */ bnez $at, .L800762D4
-/* AED4B4 80076314 A4450ABC */ sh $a1, 0xabc($v0)
-/* AED4B8 80076318 02061021 */ addu $v0, $s0, $a2
-/* AED4BC 8007631C 84430AC4 */ lh $v1, 0xac4($v0)
-/* AED4C0 80076320 844C0AF8 */ lh $t4, 0xaf8($v0)
-/* AED4C4 80076324 246EFF9C */ addiu $t6, $v1, -0x64
-/* AED4C8 80076328 01836821 */ addu $t5, $t4, $v1
-/* AED4CC 8007632C 29A10385 */ slti $at, $t5, 0x385
-/* AED4D0 80076330 14200003 */ bnez $at, .L80076340
-/* AED4D4 80076334 3C010001 */ lui $at, 1
-/* AED4D8 80076338 00300821 */ addu $at, $at, $s0
-/* AED4DC 8007633C A42E0AC4 */ sh $t6, 0xac4($at)
-.L80076340:
-/* AED4E0 80076340 84430AC2 */ lh $v1, 0xac2($v0)
-/* AED4E4 80076344 844F0AF6 */ lh $t7, 0xaf6($v0)
-/* AED4E8 80076348 2479FFF6 */ addiu $t9, $v1, -0xa
-/* AED4EC 8007634C 01E3C021 */ addu $t8, $t7, $v1
-/* AED4F0 80076350 2B0103B7 */ slti $at, $t8, 0x3b7
-/* AED4F4 80076354 1420000F */ bnez $at, .L80076394
-/* AED4F8 80076358 3C010001 */ lui $at, 1
-/* AED4FC 8007635C 00300821 */ addu $at, $at, $s0
-/* AED500 80076360 1000000C */ b .L80076394
-/* AED504 80076364 A4390AC2 */ sh $t9, 0xac2($at)
-.L80076368:
-/* AED508 80076368 3C010001 */ lui $at, 1
-/* AED50C 8007636C 3C060001 */ lui $a2, 1
-/* AED510 80076370 00300821 */ addu $at, $at, $s0
-/* AED514 80076374 24080001 */ li $t0, 1
-/* AED518 80076378 A0280B05 */ sb $t0, 0xb05($at)
-/* AED51C 8007637C 02061021 */ addu $v0, $s0, $a2
-/* AED520 80076380 A0400B06 */ sb $zero, 0xb06($v0)
-/* AED524 80076384 A0400B07 */ sb $zero, 0xb07($v0)
-/* AED528 80076388 A0400B08 */ sb $zero, 0xb08($v0)
-/* AED52C 8007638C 90690000 */ lbu $t1, ($v1)
-/* AED530 80076390 A0490B09 */ sb $t1, 0xb09($v0)
-.L80076394:
-/* AED534 80076394 8FBF002C */ lw $ra, 0x2c($sp)
-/* AED538 80076398 8FB00028 */ lw $s0, 0x28($sp)
-/* AED53C 8007639C 27BD0038 */ addiu $sp, $sp, 0x38
-/* AED540 800763A0 03E00008 */ jr $ra
-/* AED544 800763A4 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s b/asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s
deleted file mode 100644
index be3a7630cf..0000000000
--- a/asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s
+++ /dev/null
@@ -1,209 +0,0 @@
-glabel Kankyo_FadeOutGameOverLights
-/* AED548 800763A8 27BDFFC0 */ addiu $sp, $sp, -0x40
-/* AED54C 800763AC AFB2002C */ sw $s2, 0x2c($sp)
-/* AED550 800763B0 3C128016 */ lui $s2, %hi(D_8015FDAE)
-/* AED554 800763B4 2652FDAE */ addiu $s2, %lo(D_8015FDAE) # addiu $s2, $s2, -0x252
-/* AED558 800763B8 92420000 */ lbu $v0, ($s2)
-/* AED55C 800763BC AFBF003C */ sw $ra, 0x3c($sp)
-/* AED560 800763C0 AFB50038 */ sw $s5, 0x38($sp)
-/* AED564 800763C4 AFB40034 */ sw $s4, 0x34($sp)
-/* AED568 800763C8 AFB30030 */ sw $s3, 0x30($sp)
-/* AED56C 800763CC AFB10028 */ sw $s1, 0x28($sp)
-/* AED570 800763D0 AFB00024 */ sw $s0, 0x24($sp)
-/* AED574 800763D4 28410003 */ slti $at, $v0, 3
-/* AED578 800763D8 0080A825 */ move $s5, $a0
-/* AED57C 800763DC 14200004 */ bnez $at, .L800763F0
-/* AED580 800763E0 8C911C44 */ lw $s1, 0x1c44($a0)
-/* AED584 800763E4 244EFFFD */ addiu $t6, $v0, -3
-/* AED588 800763E8 10000002 */ b .L800763F4
-/* AED58C 800763EC A24E0000 */ sb $t6, ($s2)
-.L800763F0:
-/* AED590 800763F0 A2400000 */ sb $zero, ($s2)
-.L800763F4:
-/* AED594 800763F4 92500000 */ lbu $s0, ($s2)
-/* AED598 800763F8 24010001 */ li $at, 1
-/* AED59C 800763FC 02A02025 */ move $a0, $s5
-/* AED5A0 80076400 1601000D */ bne $s0, $at, .L80076438
-/* AED5A4 80076404 02001025 */ move $v0, $s0
-/* AED5A8 80076408 26B007A8 */ addiu $s0, $s5, 0x7a8
-/* AED5AC 8007640C 3C068016 */ lui $a2, %hi(D_8015FD84)
-/* AED5B0 80076410 8CC6FD84 */ lw $a2, %lo(D_8015FD84)($a2)
-/* AED5B4 80076414 0C01E9F1 */ jal LightContext_RemoveLight
-/* AED5B8 80076418 02002825 */ move $a1, $s0
-/* AED5BC 8007641C 3C068016 */ lui $a2, %hi(D_8015FD98)
-/* AED5C0 80076420 8CC6FD98 */ lw $a2, %lo(D_8015FD98)($a2)
-/* AED5C4 80076424 02A02025 */ move $a0, $s5
-/* AED5C8 80076428 0C01E9F1 */ jal LightContext_RemoveLight
-/* AED5CC 8007642C 02002825 */ move $a1, $s0
-/* AED5D0 80076430 10000063 */ b .L800765C0
-/* AED5D4 80076434 00000000 */ nop
-.L80076438:
-/* AED5D8 80076438 28410002 */ slti $at, $v0, 2
-/* AED5DC 8007643C 14200060 */ bnez $at, .L800765C0
-/* AED5E0 80076440 00000000 */ nop
-/* AED5E4 80076444 C6240024 */ lwc1 $f4, 0x24($s1)
-/* AED5E8 80076448 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AED5EC 8007644C 44810000 */ mtc1 $at, $f0
-/* AED5F0 80076450 4600218D */ trunc.w.s $f6, $f4
-/* AED5F4 80076454 C6240028 */ lwc1 $f4, 0x28($s1)
-/* AED5F8 80076458 3C048016 */ lui $a0, %hi(D_8015FD88)
-/* AED5FC 8007645C 240A00FF */ li $t2, 255
-/* AED600 80076460 44183000 */ mfc1 $t8, $f6
-/* AED604 80076464 4600218D */ trunc.w.s $f6, $f4
-/* AED608 80076468 C624002C */ lwc1 $f4, 0x2c($s1)
-/* AED60C 8007646C 0018CC00 */ sll $t9, $t8, 0x10
-/* AED610 80076470 00194403 */ sra $t0, $t9, 0x10
-/* AED614 80076474 44884000 */ mtc1 $t0, $f8
-/* AED618 80076478 440B3000 */ mfc1 $t3, $f6
-/* AED61C 8007647C 4600218D */ trunc.w.s $f6, $f4
-/* AED620 80076480 AFAA001C */ sw $t2, 0x1c($sp)
-/* AED624 80076484 000B6400 */ sll $t4, $t3, 0x10
-/* AED628 80076488 468042A0 */ cvt.s.w $f10, $f8
-/* AED62C 8007648C 000C6C03 */ sra $t5, $t4, 0x10
-/* AED630 80076490 448D4000 */ mtc1 $t5, $f8
-/* AED634 80076494 44183000 */ mfc1 $t8, $f6
-/* AED638 80076498 AFB00018 */ sw $s0, 0x18($sp)
-/* AED63C 8007649C AFB00014 */ sw $s0, 0x14($sp)
-/* AED640 800764A0 46005401 */ sub.s $f16, $f10, $f0
-/* AED644 800764A4 0018CC00 */ sll $t9, $t8, 0x10
-/* AED648 800764A8 00194403 */ sra $t0, $t9, 0x10
-/* AED64C 800764AC 468042A0 */ cvt.s.w $f10, $f8
-/* AED650 800764B0 44884000 */ mtc1 $t0, $f8
-/* AED654 800764B4 AFB00010 */ sw $s0, 0x10($sp)
-/* AED658 800764B8 2484FD88 */ addiu $a0, %lo(D_8015FD88)
-/* AED65C 800764BC 4600848D */ trunc.w.s $f18, $f16
-/* AED660 800764C0 46005400 */ add.s $f16, $f10, $f0
-/* AED664 800764C4 44059000 */ mfc1 $a1, $f18
-/* AED668 800764C8 468042A0 */ cvt.s.w $f10, $f8
-/* AED66C 800764CC 00052C00 */ sll $a1, $a1, 0x10
-/* AED670 800764D0 00052C03 */ sra $a1, $a1, 0x10
-/* AED674 800764D4 4600848D */ trunc.w.s $f18, $f16
-/* AED678 800764D8 46005401 */ sub.s $f16, $f10, $f0
-/* AED67C 800764DC 44069000 */ mfc1 $a2, $f18
-/* AED680 800764E0 4600848D */ trunc.w.s $f18, $f16
-/* AED684 800764E4 00063400 */ sll $a2, $a2, 0x10
-/* AED688 800764E8 00063403 */ sra $a2, $a2, 0x10
-/* AED68C 800764EC 44079000 */ mfc1 $a3, $f18
-/* AED690 800764F0 00000000 */ nop
-/* AED694 800764F4 00073C00 */ sll $a3, $a3, 0x10
-/* AED698 800764F8 0C01E763 */ jal Lights_PointNoGlowSetInfo
-/* AED69C 800764FC 00073C03 */ sra $a3, $a3, 0x10
-/* AED6A0 80076500 C6240024 */ lwc1 $f4, 0x24($s1)
-/* AED6A4 80076504 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AED6A8 80076508 44810000 */ mtc1 $at, $f0
-/* AED6AC 8007650C 4600218D */ trunc.w.s $f6, $f4
-/* AED6B0 80076510 C6240028 */ lwc1 $f4, 0x28($s1)
-/* AED6B4 80076514 92500000 */ lbu $s0, ($s2)
-/* AED6B8 80076518 3C048016 */ lui $a0, %hi(D_8015FDA0)
-/* AED6BC 8007651C 440C3000 */ mfc1 $t4, $f6
-/* AED6C0 80076520 4600218D */ trunc.w.s $f6, $f4
-/* AED6C4 80076524 C624002C */ lwc1 $f4, 0x2c($s1)
-/* AED6C8 80076528 000C6C00 */ sll $t5, $t4, 0x10
-/* AED6CC 8007652C 000D7403 */ sra $t6, $t5, 0x10
-/* AED6D0 80076530 448E4000 */ mtc1 $t6, $f8
-/* AED6D4 80076534 44193000 */ mfc1 $t9, $f6
-/* AED6D8 80076538 4600218D */ trunc.w.s $f6, $f4
-/* AED6DC 8007653C 241800FF */ li $t8, 255
-/* AED6E0 80076540 00194400 */ sll $t0, $t9, 0x10
-/* AED6E4 80076544 468042A0 */ cvt.s.w $f10, $f8
-/* AED6E8 80076548 00084C03 */ sra $t1, $t0, 0x10
-/* AED6EC 8007654C 44894000 */ mtc1 $t1, $f8
-/* AED6F0 80076550 440C3000 */ mfc1 $t4, $f6
-/* AED6F4 80076554 AFB8001C */ sw $t8, 0x1c($sp)
-/* AED6F8 80076558 2484FDA0 */ addiu $a0, %lo(D_8015FDA0)
-/* AED6FC 8007655C 46005400 */ add.s $f16, $f10, $f0
-/* AED700 80076560 000C6C00 */ sll $t5, $t4, 0x10
-/* AED704 80076564 000D7403 */ sra $t6, $t5, 0x10
-/* AED708 80076568 468042A0 */ cvt.s.w $f10, $f8
-/* AED70C 8007656C 448E4000 */ mtc1 $t6, $f8
-/* AED710 80076570 AFB00018 */ sw $s0, 0x18($sp)
-/* AED714 80076574 AFB00014 */ sw $s0, 0x14($sp)
-/* AED718 80076578 AFB00010 */ sw $s0, 0x10($sp)
-/* AED71C 8007657C 4600848D */ trunc.w.s $f18, $f16
-/* AED720 80076580 46005400 */ add.s $f16, $f10, $f0
-/* AED724 80076584 44059000 */ mfc1 $a1, $f18
-/* AED728 80076588 468042A0 */ cvt.s.w $f10, $f8
-/* AED72C 8007658C 00052C00 */ sll $a1, $a1, 0x10
-/* AED730 80076590 00052C03 */ sra $a1, $a1, 0x10
-/* AED734 80076594 4600848D */ trunc.w.s $f18, $f16
-/* AED738 80076598 46005400 */ add.s $f16, $f10, $f0
-/* AED73C 8007659C 44069000 */ mfc1 $a2, $f18
-/* AED740 800765A0 4600848D */ trunc.w.s $f18, $f16
-/* AED744 800765A4 00063400 */ sll $a2, $a2, 0x10
-/* AED748 800765A8 00063403 */ sra $a2, $a2, 0x10
-/* AED74C 800765AC 44079000 */ mfc1 $a3, $f18
-/* AED750 800765B0 00000000 */ nop
-/* AED754 800765B4 00073C00 */ sll $a3, $a3, 0x10
-/* AED758 800765B8 0C01E763 */ jal Lights_PointNoGlowSetInfo
-/* AED75C 800765BC 00073C03 */ sra $a3, $a3, 0x10
-.L800765C0:
-/* AED760 800765C0 0C03032E */ jal func_800C0CB8
-/* AED764 800765C4 02A02025 */ move $a0, $s5
-/* AED768 800765C8 10400025 */ beqz $v0, .L80076660
-/* AED76C 800765CC 3C140001 */ lui $s4, 1
-/* AED770 800765D0 3C130001 */ lui $s3, (0x00010AB6 >> 16) # lui $s3, 1
-/* AED774 800765D4 3C120001 */ lui $s2, (0x00010AB0 >> 16) # lui $s2, 1
-/* AED778 800765D8 36520AB0 */ ori $s2, (0x00010AB0 & 0xFFFF) # ori $s2, $s2, 0xab0
-/* AED77C 800765DC 36730AB6 */ ori $s3, (0x00010AB6 & 0xFFFF) # ori $s3, $s3, 0xab6
-/* AED780 800765E0 00008025 */ move $s0, $zero
-/* AED784 800765E4 3C140001 */ lui $s4, 1
-.L800765E8:
-/* AED788 800765E8 0010C840 */ sll $t9, $s0, 1
-/* AED78C 800765EC 02B98821 */ addu $s1, $s5, $t9
-/* AED790 800765F0 24080001 */ li $t0, 1
-/* AED794 800765F4 AFA80010 */ sw $t0, 0x10($sp)
-/* AED798 800765F8 02322021 */ addu $a0, $s1, $s2
-/* AED79C 800765FC 00002825 */ move $a1, $zero
-/* AED7A0 80076600 24060005 */ li $a2, 5
-/* AED7A4 80076604 0C01E1A7 */ jal Math_SmoothStepToS
-/* AED7A8 80076608 2407000C */ li $a3, 12
-/* AED7AC 8007660C 24090001 */ li $t1, 1
-/* AED7B0 80076610 AFA90010 */ sw $t1, 0x10($sp)
-/* AED7B4 80076614 02332021 */ addu $a0, $s1, $s3
-/* AED7B8 80076618 00002825 */ move $a1, $zero
-/* AED7BC 8007661C 24060005 */ li $a2, 5
-/* AED7C0 80076620 0C01E1A7 */ jal Math_SmoothStepToS
-/* AED7C4 80076624 2407000C */ li $a3, 12
-/* AED7C8 80076628 26100001 */ addiu $s0, $s0, 1
-/* AED7CC 8007662C 00108400 */ sll $s0, $s0, 0x10
-/* AED7D0 80076630 00108403 */ sra $s0, $s0, 0x10
-/* AED7D4 80076634 2A010003 */ slti $at, $s0, 3
-/* AED7D8 80076638 02345021 */ addu $t2, $s1, $s4
-/* AED7DC 8007663C 1420FFEA */ bnez $at, .L800765E8
-/* AED7E0 80076640 A5400ABC */ sh $zero, 0xabc($t2)
-/* AED7E4 80076644 3C010001 */ lui $at, 1
-/* AED7E8 80076648 00350821 */ addu $at, $at, $s5
-/* AED7EC 8007664C A4200AC4 */ sh $zero, 0xac4($at)
-/* AED7F0 80076650 3C010001 */ lui $at, 1
-/* AED7F4 80076654 00350821 */ addu $at, $at, $s5
-/* AED7F8 80076658 10000011 */ b .L800766A0
-/* AED7FC 8007665C A4200AC2 */ sh $zero, 0xac2($at)
-.L80076660:
-/* AED800 80076660 3C010001 */ lui $at, 1
-/* AED804 80076664 00350821 */ addu $at, $at, $s5
-/* AED808 80076668 240B0001 */ li $t3, 1
-/* AED80C 8007666C A02B0B05 */ sb $t3, 0xb05($at)
-/* AED810 80076670 02B41021 */ addu $v0, $s5, $s4
-/* AED814 80076674 A0400B06 */ sb $zero, 0xb06($v0)
-/* AED818 80076678 A0400B07 */ sb $zero, 0xb07($v0)
-/* AED81C 8007667C A0400B08 */ sb $zero, 0xb08($v0)
-/* AED820 80076680 924C0000 */ lbu $t4, ($s2)
-/* AED824 80076684 3C010001 */ lui $at, 1
-/* AED828 80076688 00350821 */ addu $at, $at, $s5
-/* AED82C 8007668C A04C0B09 */ sb $t4, 0xb09($v0)
-/* AED830 80076690 924D0000 */ lbu $t5, ($s2)
-/* AED834 80076694 55A00003 */ bnezl $t5, .L800766A4
-/* AED838 80076698 8FBF003C */ lw $ra, 0x3c($sp)
-/* AED83C 8007669C A0200B05 */ sb $zero, 0xb05($at)
-.L800766A0:
-/* AED840 800766A0 8FBF003C */ lw $ra, 0x3c($sp)
-.L800766A4:
-/* AED844 800766A4 8FB00024 */ lw $s0, 0x24($sp)
-/* AED848 800766A8 8FB10028 */ lw $s1, 0x28($sp)
-/* AED84C 800766AC 8FB2002C */ lw $s2, 0x2c($sp)
-/* AED850 800766B0 8FB30030 */ lw $s3, 0x30($sp)
-/* AED854 800766B4 8FB40034 */ lw $s4, 0x34($sp)
-/* AED858 800766B8 8FB50038 */ lw $s5, 0x38($sp)
-/* AED85C 800766BC 03E00008 */ jr $ra
-/* AED860 800766C0 27BD0040 */ addiu $sp, $sp, 0x40
-
diff --git a/asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s b/asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s
deleted file mode 100644
index 111039aee1..0000000000
--- a/asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s
+++ /dev/null
@@ -1,122 +0,0 @@
-glabel Kankyo_InitGameOverLights
-/* AED0B4 80075F14 27BDFFC8 */ addiu $sp, $sp, -0x38
-/* AED0B8 80075F18 AFBF0024 */ sw $ra, 0x24($sp)
-/* AED0BC 80075F1C AFA40038 */ sw $a0, 0x38($sp)
-/* AED0C0 80075F20 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AED0C4 80075F24 44810000 */ mtc1 $at, $f0
-/* AED0C8 80075F28 8C831C44 */ lw $v1, 0x1c44($a0)
-/* AED0CC 80075F2C 3C018016 */ lui $at, %hi(D_8015FDAE)
-/* AED0D0 80075F30 A020FDAE */ sb $zero, %lo(D_8015FDAE)($at)
-/* AED0D4 80075F34 C4640024 */ lwc1 $f4, 0x24($v1)
-/* AED0D8 80075F38 3C048016 */ lui $a0, %hi(D_8015FD88)
-/* AED0DC 80075F3C 240A00FF */ li $t2, 255
-/* AED0E0 80075F40 4600218D */ trunc.w.s $f6, $f4
-/* AED0E4 80075F44 C4640028 */ lwc1 $f4, 0x28($v1)
-/* AED0E8 80075F48 2484FD88 */ addiu $a0, %lo(D_8015FD88) # addiu $a0, $a0, -0x278
-/* AED0EC 80075F4C 44183000 */ mfc1 $t8, $f6
-/* AED0F0 80075F50 4600218D */ trunc.w.s $f6, $f4
-/* AED0F4 80075F54 C464002C */ lwc1 $f4, 0x2c($v1)
-/* AED0F8 80075F58 0018CC00 */ sll $t9, $t8, 0x10
-/* AED0FC 80075F5C 00194403 */ sra $t0, $t9, 0x10
-/* AED100 80075F60 44884000 */ mtc1 $t0, $f8
-/* AED104 80075F64 440B3000 */ mfc1 $t3, $f6
-/* AED108 80075F68 4600218D */ trunc.w.s $f6, $f4
-/* AED10C 80075F6C AFAA001C */ sw $t2, 0x1c($sp)
-/* AED110 80075F70 000B6400 */ sll $t4, $t3, 0x10
-/* AED114 80075F74 468042A0 */ cvt.s.w $f10, $f8
-/* AED118 80075F78 000C6C03 */ sra $t5, $t4, 0x10
-/* AED11C 80075F7C 448D4000 */ mtc1 $t5, $f8
-/* AED120 80075F80 44183000 */ mfc1 $t8, $f6
-/* AED124 80075F84 AFA00018 */ sw $zero, 0x18($sp)
-/* AED128 80075F88 AFA00014 */ sw $zero, 0x14($sp)
-/* AED12C 80075F8C 46005401 */ sub.s $f16, $f10, $f0
-/* AED130 80075F90 0018CC00 */ sll $t9, $t8, 0x10
-/* AED134 80075F94 00194403 */ sra $t0, $t9, 0x10
-/* AED138 80075F98 468042A0 */ cvt.s.w $f10, $f8
-/* AED13C 80075F9C 44884000 */ mtc1 $t0, $f8
-/* AED140 80075FA0 AFA00010 */ sw $zero, 0x10($sp)
-/* AED144 80075FA4 AFA30030 */ sw $v1, 0x30($sp)
-/* AED148 80075FA8 4600848D */ trunc.w.s $f18, $f16
-/* AED14C 80075FAC 46005400 */ add.s $f16, $f10, $f0
-/* AED150 80075FB0 44059000 */ mfc1 $a1, $f18
-/* AED154 80075FB4 468042A0 */ cvt.s.w $f10, $f8
-/* AED158 80075FB8 00052C00 */ sll $a1, $a1, 0x10
-/* AED15C 80075FBC 00052C03 */ sra $a1, $a1, 0x10
-/* AED160 80075FC0 4600848D */ trunc.w.s $f18, $f16
-/* AED164 80075FC4 46005401 */ sub.s $f16, $f10, $f0
-/* AED168 80075FC8 44069000 */ mfc1 $a2, $f18
-/* AED16C 80075FCC 4600848D */ trunc.w.s $f18, $f16
-/* AED170 80075FD0 00063400 */ sll $a2, $a2, 0x10
-/* AED174 80075FD4 00063403 */ sra $a2, $a2, 0x10
-/* AED178 80075FD8 44079000 */ mfc1 $a3, $f18
-/* AED17C 80075FDC 00000000 */ nop
-/* AED180 80075FE0 00073C00 */ sll $a3, $a3, 0x10
-/* AED184 80075FE4 0C01E763 */ jal Lights_PointNoGlowSetInfo
-/* AED188 80075FE8 00073C03 */ sra $a3, $a3, 0x10
-/* AED18C 80075FEC 8FA40038 */ lw $a0, 0x38($sp)
-/* AED190 80075FF0 3C068016 */ lui $a2, %hi(D_8015FD88)
-/* AED194 80075FF4 24C6FD88 */ addiu $a2, %lo(D_8015FD88) # addiu $a2, $a2, -0x278
-/* AED198 80075FF8 248507A8 */ addiu $a1, $a0, 0x7a8
-/* AED19C 80075FFC 0C01E9D9 */ jal LightContext_InsertLight
-/* AED1A0 80076000 AFA5002C */ sw $a1, 0x2c($sp)
-/* AED1A4 80076004 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AED1A8 80076008 44810000 */ mtc1 $at, $f0
-/* AED1AC 8007600C 8FA30030 */ lw $v1, 0x30($sp)
-/* AED1B0 80076010 3C018016 */ lui $at, %hi(D_8015FD84)
-/* AED1B4 80076014 AC22FD84 */ sw $v0, %lo(D_8015FD84)($at)
-/* AED1B8 80076018 C4640024 */ lwc1 $f4, 0x24($v1)
-/* AED1BC 8007601C 3C048016 */ lui $a0, %hi(D_8015FDA0)
-/* AED1C0 80076020 241800FF */ li $t8, 255
-/* AED1C4 80076024 4600218D */ trunc.w.s $f6, $f4
-/* AED1C8 80076028 C4640028 */ lwc1 $f4, 0x28($v1)
-/* AED1CC 8007602C 2484FDA0 */ addiu $a0, %lo(D_8015FDA0) # addiu $a0, $a0, -0x260
-/* AED1D0 80076030 440C3000 */ mfc1 $t4, $f6
-/* AED1D4 80076034 4600218D */ trunc.w.s $f6, $f4
-/* AED1D8 80076038 C464002C */ lwc1 $f4, 0x2c($v1)
-/* AED1DC 8007603C 000C6C00 */ sll $t5, $t4, 0x10
-/* AED1E0 80076040 000D7403 */ sra $t6, $t5, 0x10
-/* AED1E4 80076044 448E4000 */ mtc1 $t6, $f8
-/* AED1E8 80076048 44193000 */ mfc1 $t9, $f6
-/* AED1EC 8007604C 4600218D */ trunc.w.s $f6, $f4
-/* AED1F0 80076050 AFB8001C */ sw $t8, 0x1c($sp)
-/* AED1F4 80076054 00194400 */ sll $t0, $t9, 0x10
-/* AED1F8 80076058 468042A0 */ cvt.s.w $f10, $f8
-/* AED1FC 8007605C 00084C03 */ sra $t1, $t0, 0x10
-/* AED200 80076060 44894000 */ mtc1 $t1, $f8
-/* AED204 80076064 440C3000 */ mfc1 $t4, $f6
-/* AED208 80076068 AFA00018 */ sw $zero, 0x18($sp)
-/* AED20C 8007606C AFA00014 */ sw $zero, 0x14($sp)
-/* AED210 80076070 46005400 */ add.s $f16, $f10, $f0
-/* AED214 80076074 000C6C00 */ sll $t5, $t4, 0x10
-/* AED218 80076078 000D7403 */ sra $t6, $t5, 0x10
-/* AED21C 8007607C 468042A0 */ cvt.s.w $f10, $f8
-/* AED220 80076080 448E4000 */ mtc1 $t6, $f8
-/* AED224 80076084 AFA00010 */ sw $zero, 0x10($sp)
-/* AED228 80076088 4600848D */ trunc.w.s $f18, $f16
-/* AED22C 8007608C 46005400 */ add.s $f16, $f10, $f0
-/* AED230 80076090 44059000 */ mfc1 $a1, $f18
-/* AED234 80076094 468042A0 */ cvt.s.w $f10, $f8
-/* AED238 80076098 00052C00 */ sll $a1, $a1, 0x10
-/* AED23C 8007609C 00052C03 */ sra $a1, $a1, 0x10
-/* AED240 800760A0 4600848D */ trunc.w.s $f18, $f16
-/* AED244 800760A4 46005400 */ add.s $f16, $f10, $f0
-/* AED248 800760A8 44069000 */ mfc1 $a2, $f18
-/* AED24C 800760AC 4600848D */ trunc.w.s $f18, $f16
-/* AED250 800760B0 00063400 */ sll $a2, $a2, 0x10
-/* AED254 800760B4 00063403 */ sra $a2, $a2, 0x10
-/* AED258 800760B8 44079000 */ mfc1 $a3, $f18
-/* AED25C 800760BC 00000000 */ nop
-/* AED260 800760C0 00073C00 */ sll $a3, $a3, 0x10
-/* AED264 800760C4 0C01E763 */ jal Lights_PointNoGlowSetInfo
-/* AED268 800760C8 00073C03 */ sra $a3, $a3, 0x10
-/* AED26C 800760CC 3C068016 */ lui $a2, %hi(D_8015FDA0) # $a2, 0x8016
-/* AED270 800760D0 24C6FDA0 */ addiu $a2, %lo(D_8015FDA0) # addiu $a2, $a2, -0x260
-/* AED274 800760D4 8FA40038 */ lw $a0, 0x38($sp)
-/* AED278 800760D8 0C01E9D9 */ jal LightContext_InsertLight
-/* AED27C 800760DC 8FA5002C */ lw $a1, 0x2c($sp)
-/* AED280 800760E0 8FBF0024 */ lw $ra, 0x24($sp)
-/* AED284 800760E4 3C018016 */ lui $at, %hi(D_8015FD98) # $at, 0x8016
-/* AED288 800760E8 AC22FD98 */ sw $v0, %lo(D_8015FD98)($at)
-/* AED28C 800760EC 03E00008 */ jr $ra
-/* AED290 800760F0 27BD0038 */ addiu $sp, $sp, 0x38
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8006F0A0.s b/asm/non_matchings/code/z_kankyo/func_8006F0A0.s
deleted file mode 100644
index bed1af931f..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006F0A0.s
+++ /dev/null
@@ -1,15 +0,0 @@
-glabel func_8006F0A0
-/* AE6240 8006F0A0 000473C3 */ sra $t6, $a0, 0xf
-/* AE6244 8006F0A4 31CF0007 */ andi $t7, $t6, 7
-/* AE6248 8006F0A8 3C198012 */ lui $t9, %hi(D_8011FAF0) # $t9, 0x8012
-/* AE624C 8006F0AC 2739FAF0 */ addiu $t9, %lo(D_8011FAF0) # addiu $t9, $t9, -0x510
-/* AE6250 8006F0B0 000FC0C0 */ sll $t8, $t7, 3
-/* AE6254 8006F0B4 03192821 */ addu $a1, $t8, $t9
-/* AE6258 8006F0B8 8CAA0000 */ lw $t2, ($a1)
-/* AE625C 8006F0BC 00044103 */ sra $t0, $a0, 4
-/* AE6260 8006F0C0 8CAC0004 */ lw $t4, 4($a1)
-/* AE6264 8006F0C4 310907FF */ andi $t1, $t0, 0x7ff
-/* AE6268 8006F0C8 01495804 */ sllv $t3, $t1, $t2
-/* AE626C 8006F0CC 03E00008 */ jr $ra
-/* AE6270 8006F0D0 018B1021 */ addu $v0, $t4, $t3
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8006F0D4.s b/asm/non_matchings/code/z_kankyo/func_8006F0D4.s
deleted file mode 100644
index 71f82606c9..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006F0D4.s
+++ /dev/null
@@ -1,12 +0,0 @@
-glabel func_8006F0D4
-/* AE6274 8006F0D4 00057080 */ sll $t6, $a1, 2
-/* AE6278 8006F0D8 01C57021 */ addu $t6, $t6, $a1
-/* AE627C 8006F0DC 000E71C0 */ sll $t6, $t6, 7
-/* AE6280 8006F0E0 00047840 */ sll $t7, $a0, 1
-/* AE6284 8006F0E4 01CFC021 */ addu $t8, $t6, $t7
-/* AE6288 8006F0E8 3C038017 */ lui $v1, %hi(gZBuffer)
-/* AE628C 8006F0EC 00781821 */ addu $v1, $v1, $t8
-/* AE6290 8006F0F0 946359C0 */ lhu $v1, %lo(gZBuffer)($v1)
-/* AE6294 8006F0F4 03E00008 */ jr $ra
-/* AE6298 8006F0F8 3062FFFF */ andi $v0, $v1, 0xffff
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8006F0FC.s b/asm/non_matchings/code/z_kankyo/func_8006F0FC.s
deleted file mode 100644
index 664e097b7d..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006F0FC.s
+++ /dev/null
@@ -1,19 +0,0 @@
-glabel func_8006F0FC
-/* AE629C 8006F0FC 27BDFFE8 */ addiu $sp, $sp, -0x18
-/* AE62A0 8006F100 AFA40018 */ sw $a0, 0x18($sp)
-/* AE62A4 8006F104 AFA5001C */ sw $a1, 0x1c($sp)
-/* AE62A8 8006F108 AFBF0014 */ sw $ra, 0x14($sp)
-/* AE62AC 8006F10C 3C058016 */ lui $a1, %hi(D_8015FD80) # $a1, 0x8016
-/* AE62B0 8006F110 3C048016 */ lui $a0, %hi(D_8015FD7E) # $a0, 0x8016
-/* AE62B4 8006F114 8484FD7E */ lh $a0, %lo(D_8015FD7E)($a0)
-/* AE62B8 8006F118 0C01BC35 */ jal func_8006F0D4
-/* AE62BC 8006F11C 84A5FD80 */ lh $a1, %lo(D_8015FD80)($a1)
-/* AE62C0 8006F120 3C018012 */ lui $at, %hi(D_8011FB44) # $at, 0x8012
-/* AE62C4 8006F124 A422FB44 */ sh $v0, %lo(D_8011FB44)($at)
-/* AE62C8 8006F128 0C01EA6D */ jal Lights_GlowCheck
-/* AE62CC 8006F12C 8FA4001C */ lw $a0, 0x1c($sp)
-/* AE62D0 8006F130 8FBF0014 */ lw $ra, 0x14($sp)
-/* AE62D4 8006F134 27BD0018 */ addiu $sp, $sp, 0x18
-/* AE62D8 8006F138 03E00008 */ jr $ra
-/* AE62DC 8006F13C 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8006F140.s b/asm/non_matchings/code/z_kankyo/func_8006F140.s
deleted file mode 100644
index 78aa242a6d..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006F140.s
+++ /dev/null
@@ -1,564 +0,0 @@
-.rdata
-glabel D_8013C240
- .asciz "\x1b[43;30m\n\nフィールド常駐以外、太陽設定!よって強制解除!\n\x1b[m"
- # EUC-JP: フィールド常駐以外、太陽設定!よって強制解除! | "Sun setting except field resident! So forced release!"?
- .balign 4
-
-.late_rodata
-glabel jtbl_8013C790
- .word L8006F4A8
- .word L8006F4CC
- .word L8006F4CC
- .word L8006F4CC
- .word L8006F4F0
-
-.text
-glabel func_8006F140
-/* AE62E0 8006F140 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AE62E4 8006F144 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AE62E8 8006F148 9502000C */ lhu $v0, 0xc($t0)
-/* AE62EC 8006F14C 27BDFFA8 */ addiu $sp, $sp, -0x58
-/* AE62F0 8006F150 3401C001 */ li $at, 49153
-/* AE62F4 8006F154 AFB10028 */ sw $s1, 0x28($sp)
-/* AE62F8 8006F158 AFB00024 */ sw $s0, 0x24($sp)
-/* AE62FC 8006F15C 0041082A */ slt $at, $v0, $at
-/* AE6300 8006F160 00A08025 */ move $s0, $a1
-/* AE6304 8006F164 00808825 */ move $s1, $a0
-/* AE6308 8006F168 AFBF002C */ sw $ra, 0x2c($sp)
-/* AE630C 8006F16C AFA60060 */ sw $a2, 0x60($sp)
-/* AE6310 8006F170 10200003 */ beqz $at, .L8006F180
-/* AE6314 8006F174 A5001422 */ sh $zero, 0x1422($t0)
-/* AE6318 8006F178 28414555 */ slti $at, $v0, 0x4555
-/* AE631C 8006F17C 10200003 */ beqz $at, .L8006F18C
-.L8006F180:
-/* AE6320 8006F180 240E0001 */ li $t6, 1
-/* AE6324 8006F184 10000002 */ b .L8006F190
-/* AE6328 8006F188 AD0E0010 */ sw $t6, 0x10($t0)
-.L8006F18C:
-/* AE632C 8006F18C AD000010 */ sw $zero, 0x10($t0)
-.L8006F190:
-/* AE6330 8006F190 8E380000 */ lw $t8, ($s1)
-/* AE6334 8006F194 3C0F8007 */ lui $t7, %hi(func_8006F0FC)
-/* AE6338 8006F198 25EFF0FC */ addiu $t7, %lo(func_8006F0FC) # addiu $t7, $t7, -0xf04
-/* AE633C 8006F19C AF0F02EC */ sw $t7, 0x2ec($t8)
-/* AE6340 8006F1A0 8E390000 */ lw $t9, ($s1)
-/* AE6344 8006F1A4 26040028 */ addiu $a0, $s0, 0x28
-/* AE6348 8006F1A8 240B0050 */ li $t3, 80
-/* AE634C 8006F1AC AF3102F0 */ sw $s1, 0x2f0($t9)
-/* AE6350 8006F1B0 240C0050 */ li $t4, 80
-/* AE6354 8006F1B4 240D0050 */ li $t5, 80
-/* AE6358 8006F1B8 AFAD0018 */ sw $t5, 0x18($sp)
-/* AE635C 8006F1BC AFAC0014 */ sw $t4, 0x14($sp)
-/* AE6360 8006F1C0 AFA40038 */ sw $a0, 0x38($sp)
-/* AE6364 8006F1C4 AFAB0010 */ sw $t3, 0x10($sp)
-/* AE6368 8006F1C8 24050050 */ li $a1, 80
-/* AE636C 8006F1CC 24060050 */ li $a2, 80
-/* AE6370 8006F1D0 0C01E79F */ jal Lights_DirectionalSetInfo
-/* AE6374 8006F1D4 24070050 */ li $a3, 80
-/* AE6378 8006F1D8 262507A8 */ addiu $a1, $s1, 0x7a8
-/* AE637C 8006F1DC AFA50034 */ sw $a1, 0x34($sp)
-/* AE6380 8006F1E0 02202025 */ move $a0, $s1
-/* AE6384 8006F1E4 0C01E9D9 */ jal LightContext_InsertLight
-/* AE6388 8006F1E8 8FA60038 */ lw $a2, 0x38($sp)
-/* AE638C 8006F1EC 26040036 */ addiu $a0, $s0, 0x36
-/* AE6390 8006F1F0 240E0050 */ li $t6, 80
-/* AE6394 8006F1F4 240F0050 */ li $t7, 80
-/* AE6398 8006F1F8 24180050 */ li $t8, 80
-/* AE639C 8006F1FC AFB80018 */ sw $t8, 0x18($sp)
-/* AE63A0 8006F200 AFAF0014 */ sw $t7, 0x14($sp)
-/* AE63A4 8006F204 AFAE0010 */ sw $t6, 0x10($sp)
-/* AE63A8 8006F208 AFA40038 */ sw $a0, 0x38($sp)
-/* AE63AC 8006F20C 24050050 */ li $a1, 80
-/* AE63B0 8006F210 24060050 */ li $a2, 80
-/* AE63B4 8006F214 0C01E79F */ jal Lights_DirectionalSetInfo
-/* AE63B8 8006F218 24070050 */ li $a3, 80
-/* AE63BC 8006F21C 02202025 */ move $a0, $s1
-/* AE63C0 8006F220 8FA50034 */ lw $a1, 0x34($sp)
-/* AE63C4 8006F224 0C01E9D9 */ jal LightContext_InsertLight
-/* AE63C8 8006F228 8FA60038 */ lw $a2, 0x38($sp)
-/* AE63CC 8006F22C 44800000 */ mtc1 $zero, $f0
-/* AE63D0 8006F230 24030063 */ li $v1, 99
-/* AE63D4 8006F234 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AE63D8 8006F238 44812000 */ mtc1 $at, $f4
-/* AE63DC 8006F23C A2030010 */ sb $v1, 0x10($s0)
-/* AE63E0 8006F240 A2030011 */ sb $v1, 0x11($s0)
-/* AE63E4 8006F244 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016
-/* AE63E8 8006F248 A2000019 */ sb $zero, 0x19($s0)
-/* AE63EC 8006F24C A600001A */ sh $zero, 0x1a($s0)
-/* AE63F0 8006F250 A2000021 */ sb $zero, 0x21($s0)
-/* AE63F4 8006F254 A6000022 */ sh $zero, 0x22($s0)
-/* AE63F8 8006F258 A2000044 */ sb $zero, 0x44($s0)
-/* AE63FC 8006F25C A200001F */ sb $zero, 0x1f($s0)
-/* AE6400 8006F260 A2000020 */ sb $zero, 0x20($s0)
-/* AE6404 8006F264 A20000BD */ sb $zero, 0xbd($s0)
-/* AE6408 8006F268 A20000BE */ sb $zero, 0xbe($s0)
-/* AE640C 8006F26C A20000DC */ sb $zero, 0xdc($s0)
-/* AE6410 8006F270 A20000DD */ sb $zero, 0xdd($s0)
-/* AE6414 8006F274 A20000DE */ sb $zero, 0xde($s0)
-/* AE6418 8006F278 A20000DF */ sb $zero, 0xdf($s0)
-/* AE641C 8006F27C A20000E0 */ sb $zero, 0xe0($s0)
-/* AE6420 8006F280 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AE6424 8006F284 A20000E1 */ sb $zero, 0xe1($s0)
-/* AE6428 8006F288 A20000E2 */ sb $zero, 0xe2($s0)
-/* AE642C 8006F28C A20000E3 */ sb $zero, 0xe3($s0)
-/* AE6430 8006F290 A20000E4 */ sb $zero, 0xe4($s0)
-/* AE6434 8006F294 A20000E5 */ sb $zero, 0xe5($s0)
-/* AE6438 8006F298 A20000E9 */ sb $zero, 0xe9($s0)
-/* AE643C 8006F29C A20000EA */ sb $zero, 0xea($s0)
-/* AE6440 8006F2A0 A20000EB */ sb $zero, 0xeb($s0)
-/* AE6444 8006F2A4 A20000EC */ sb $zero, 0xec($s0)
-/* AE6448 8006F2A8 A20000ED */ sb $zero, 0xed($s0)
-/* AE644C 8006F2AC A20000E6 */ sb $zero, 0xe6($s0)
-/* AE6450 8006F2B0 A20000E7 */ sb $zero, 0xe7($s0)
-/* AE6454 8006F2B4 A20000E8 */ sb $zero, 0xe8($s0)
-/* AE6458 8006F2B8 E6000084 */ swc1 $f0, 0x84($s0)
-/* AE645C 8006F2BC E6000088 */ swc1 $f0, 0x88($s0)
-/* AE6460 8006F2C0 E60400D8 */ swc1 $f4, 0xd8($s0)
-/* AE6464 8006F2C4 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AE6468 8006F2C8 A0600000 */ sb $zero, ($v1)
-/* AE646C 8006F2CC A0600001 */ sb $zero, 1($v1)
-/* AE6470 8006F2D0 A0600002 */ sb $zero, 2($v1)
-/* AE6474 8006F2D4 A0600003 */ sb $zero, 3($v1)
-/* AE6478 8006F2D8 3C018016 */ lui $at, %hi(D_8015FD7C) # $at, 0x8016
-/* AE647C 8006F2DC 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AE6480 8006F2E0 A420FD7C */ sh $zero, %lo(D_8015FD7C)($at)
-/* AE6484 8006F2E4 A1001410 */ sb $zero, 0x1410($t0)
-/* AE6488 8006F2E8 A60000A0 */ sh $zero, 0xa0($s0)
-/* AE648C 8006F2EC 860200A0 */ lh $v0, 0xa0($s0)
-/* AE6490 8006F2F0 24018000 */ li $at, -32768
-/* AE6494 8006F2F4 A602009E */ sh $v0, 0x9e($s0)
-/* AE6498 8006F2F8 A602009C */ sh $v0, 0x9c($s0)
-/* AE649C 8006F2FC A602009A */ sh $v0, 0x9a($s0)
-/* AE64A0 8006F300 A6020098 */ sh $v0, 0x98($s0)
-/* AE64A4 8006F304 A6020096 */ sh $v0, 0x96($s0)
-/* AE64A8 8006F308 A6020094 */ sh $v0, 0x94($s0)
-/* AE64AC 8006F30C A6020092 */ sh $v0, 0x92($s0)
-/* AE64B0 8006F310 A6020090 */ sh $v0, 0x90($s0)
-/* AE64B4 8006F314 A602008E */ sh $v0, 0x8e($s0)
-/* AE64B8 8006F318 A602008C */ sh $v0, 0x8c($s0)
-/* AE64BC 8006F31C 8503000C */ lh $v1, 0xc($t0)
-/* AE64C0 8006F320 00612021 */ addu $a0, $v1, $at
-/* AE64C4 8006F324 00042400 */ sll $a0, $a0, 0x10
-/* AE64C8 8006F328 0C01DE1C */ jal Math_SinS
-/* AE64CC 8006F32C 00042403 */ sra $a0, $a0, 0x10
-/* AE64D0 8006F330 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AE64D4 8006F334 44813000 */ mtc1 $at, $f6
-/* AE64D8 8006F338 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AE64DC 8006F33C 44818000 */ mtc1 $at, $f16
-/* AE64E0 8006F340 46060202 */ mul.s $f8, $f0, $f6
-/* AE64E4 8006F344 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AE64E8 8006F348 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AE64EC 8006F34C 24018000 */ li $at, -32768
-/* AE64F0 8006F350 46004287 */ neg.s $f10, $f8
-/* AE64F4 8006F354 46105482 */ mul.s $f18, $f10, $f16
-/* AE64F8 8006F358 E6120004 */ swc1 $f18, 4($s0)
-/* AE64FC 8006F35C 9503000C */ lhu $v1, 0xc($t0)
-/* AE6500 8006F360 00612021 */ addu $a0, $v1, $at
-/* AE6504 8006F364 00042400 */ sll $a0, $a0, 0x10
-/* AE6508 8006F368 0C01DE0D */ jal Math_CosS
-/* AE650C 8006F36C 00042403 */ sra $a0, $a0, 0x10
-/* AE6510 8006F370 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AE6514 8006F374 44812000 */ mtc1 $at, $f4
-/* AE6518 8006F378 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AE651C 8006F37C 44814000 */ mtc1 $at, $f8
-/* AE6520 8006F380 46040182 */ mul.s $f6, $f0, $f4
-/* AE6524 8006F384 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AE6528 8006F388 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AE652C 8006F38C 24018000 */ li $at, -32768
-/* AE6530 8006F390 46083282 */ mul.s $f10, $f6, $f8
-/* AE6534 8006F394 E60A0008 */ swc1 $f10, 8($s0)
-/* AE6538 8006F398 9503000C */ lhu $v1, 0xc($t0)
-/* AE653C 8006F39C 00612021 */ addu $a0, $v1, $at
-/* AE6540 8006F3A0 00042400 */ sll $a0, $a0, 0x10
-/* AE6544 8006F3A4 0C01DE0D */ jal Math_CosS
-/* AE6548 8006F3A8 00042403 */ sra $a0, $a0, 0x10
-/* AE654C 8006F3AC 3C0141A0 */ li $at, 0x41A00000 # 0.000000
-/* AE6550 8006F3B0 44818000 */ mtc1 $at, $f16
-/* AE6554 8006F3B4 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AE6558 8006F3B8 44812000 */ mtc1 $at, $f4
-/* AE655C 8006F3BC 46100482 */ mul.s $f18, $f0, $f16
-/* AE6560 8006F3C0 24070050 */ li $a3, 80
-/* AE6564 8006F3C4 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
-/* AE6568 8006F3C8 240500FF */ li $a1, 255
-/* AE656C 8006F3CC 3419FFFF */ li $t9, 65535
-/* AE6570 8006F3D0 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570
-/* AE6574 8006F3D4 A60700A8 */ sh $a3, 0xa8($s0)
-/* AE6578 8006F3D8 46049182 */ mul.s $f6, $f18, $f4
-/* AE657C 8006F3DC A60700AA */ sh $a3, 0xaa($s0)
-/* AE6580 8006F3E0 A60700AC */ sh $a3, 0xac($s0)
-/* AE6584 8006F3E4 A20000BC */ sb $zero, 0xbc($s0)
-/* AE6588 8006F3E8 A20500BF */ sb $a1, 0xbf($s0)
-/* AE658C 8006F3EC A61900D6 */ sh $t9, 0xd6($s0)
-/* AE6590 8006F3F0 A6000002 */ sh $zero, 2($s0)
-/* AE6594 8006F3F4 E606000C */ swc1 $f6, 0xc($s0)
-/* AE6598 8006F3F8 8C6D0000 */ lw $t5, ($v1)
-/* AE659C 8006F3FC 3C048012 */ lui $a0, %hi(D_8011FB40) # $a0, 0x8012
-/* AE65A0 8006F400 2484FB40 */ addiu $a0, %lo(D_8011FB40) # addiu $a0, $a0, -0x4c0
-/* AE65A4 8006F404 A4800000 */ sh $zero, ($a0)
-/* AE65A8 8006F408 A5A00032 */ sh $zero, 0x32($t5)
-/* AE65AC 8006F40C 8C6E0000 */ lw $t6, ($v1)
-/* AE65B0 8006F410 240A0001 */ li $t2, 1
-/* AE65B4 8006F414 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AE65B8 8006F418 A5CA0026 */ sh $t2, 0x26($t6)
-/* AE65BC 8006F41C 8C6F0000 */ lw $t7, ($v1)
-/* AE65C0 8006F420 3C010001 */ lui $at, 1
-/* AE65C4 8006F424 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AE65C8 8006F428 85E2085A */ lh $v0, 0x85a($t7)
-/* AE65CC 8006F42C 02213021 */ addu $a2, $s1, $at
-/* AE65D0 8006F430 3C048012 */ lui $a0, %hi(D_8011FB30) # $a0, 0x8012
-/* AE65D4 8006F434 10400002 */ beqz $v0, .L8006F440
-/* AE65D8 8006F438 2458FFFF */ addiu $t8, $v0, -1
-/* AE65DC 8006F43C A1181415 */ sb $t8, 0x1415($t0)
-.L8006F440:
-/* AE65E0 8006F440 A0C00B12 */ sb $zero, 0xb12($a2)
-/* AE65E4 8006F444 A0C00B13 */ sb $zero, 0xb13($a2)
-/* AE65E8 8006F448 A0C00B14 */ sb $zero, 0xb14($a2)
-/* AE65EC 8006F44C A0C00B15 */ sb $zero, 0xb15($a2)
-/* AE65F0 8006F450 A0C00B16 */ sb $zero, 0xb16($a2)
-/* AE65F4 8006F454 911913C3 */ lbu $t9, 0x13c3($t0)
-/* AE65F8 8006F458 2484FB30 */ addiu $a0, %lo(D_8011FB30) # addiu $a0, $a0, -0x4d0
-/* AE65FC 8006F45C 24090001 */ li $t1, 1
-/* AE6600 8006F460 53200046 */ beql $t9, $zero, .L8006F57C
-/* AE6604 8006F464 A0800000 */ sb $zero, ($a0)
-/* AE6608 8006F468 8D0B1360 */ lw $t3, 0x1360($t0)
-/* AE660C 8006F46C 3C048012 */ lui $a0, %hi(D_8011FB30) # $a0, 0x8012
-/* AE6610 8006F470 2484FB30 */ addiu $a0, %lo(D_8011FB30) # addiu $a0, $a0, -0x4d0
-/* AE6614 8006F474 29610004 */ slti $at, $t3, 4
-/* AE6618 8006F478 1020003D */ beqz $at, .L8006F570
-/* AE661C 8006F47C 00000000 */ nop
-/* AE6620 8006F480 908C0000 */ lbu $t4, ($a0)
-/* AE6624 8006F484 258DFFFF */ addiu $t5, $t4, -1
-/* AE6628 8006F488 2DA10005 */ sltiu $at, $t5, 5
-/* AE662C 8006F48C 10200021 */ beqz $at, .L8006F514
-/* AE6630 8006F490 000D6880 */ sll $t5, $t5, 2
-/* AE6634 8006F494 3C018014 */ lui $at, %hi(jtbl_8013C790)
-/* AE6638 8006F498 002D0821 */ addu $at, $at, $t5
-/* AE663C 8006F49C 8C2DC790 */ lw $t5, %lo(jtbl_8013C790)($at)
-/* AE6640 8006F4A0 01A00008 */ jr $t5
-/* AE6644 8006F4A4 00000000 */ nop
-glabel L8006F4A8
-/* AE6648 8006F4A8 24020003 */ li $v0, 3
-/* AE664C 8006F4AC 24090001 */ li $t1, 1
-/* AE6650 8006F4B0 A2090017 */ sb $t1, 0x17($s0)
-/* AE6654 8006F4B4 A2090018 */ sb $t1, 0x18($s0)
-/* AE6658 8006F4B8 A202001F */ sb $v0, 0x1f($s0)
-/* AE665C 8006F4BC A2020020 */ sb $v0, 0x20($s0)
-/* AE6660 8006F4C0 A0C00B15 */ sb $zero, 0xb15($a2)
-/* AE6664 8006F4C4 10000013 */ b .L8006F514
-/* AE6668 8006F4C8 A0C00B14 */ sb $zero, 0xb14($a2)
-glabel L8006F4CC
-/* AE666C 8006F4CC 24020002 */ li $v0, 2
-/* AE6670 8006F4D0 24090001 */ li $t1, 1
-/* AE6674 8006F4D4 A2090017 */ sb $t1, 0x17($s0)
-/* AE6678 8006F4D8 A2090018 */ sb $t1, 0x18($s0)
-/* AE667C 8006F4DC A202001F */ sb $v0, 0x1f($s0)
-/* AE6680 8006F4E0 A2020020 */ sb $v0, 0x20($s0)
-/* AE6684 8006F4E4 A0C00B15 */ sb $zero, 0xb15($a2)
-/* AE6688 8006F4E8 1000000A */ b .L8006F514
-/* AE668C 8006F4EC A0C00B14 */ sb $zero, 0xb14($a2)
-glabel L8006F4F0
-/* AE6690 8006F4F0 24020004 */ li $v0, 4
-/* AE6694 8006F4F4 24090001 */ li $t1, 1
-/* AE6698 8006F4F8 A2090017 */ sb $t1, 0x17($s0)
-/* AE669C 8006F4FC A2090018 */ sb $t1, 0x18($s0)
-/* AE66A0 8006F500 A202001F */ sb $v0, 0x1f($s0)
-/* AE66A4 8006F504 A2020020 */ sb $v0, 0x20($s0)
-/* AE66A8 8006F508 A0C00B15 */ sb $zero, 0xb15($a2)
-/* AE66AC 8006F50C 10000001 */ b .L8006F514
-/* AE66B0 8006F510 A0C00B14 */ sb $zero, 0xb14($a2)
-.L8006F514:
-/* AE66B4 8006F514 90CE1E14 */ lbu $t6, 0x1e14($a2)
-/* AE66B8 8006F518 154E0015 */ bne $t2, $t6, .L8006F570
-/* AE66BC 8006F51C 00000000 */ nop
-/* AE66C0 8006F520 90820000 */ lbu $v0, ($a0)
-/* AE66C4 8006F524 24010003 */ li $at, 3
-/* AE66C8 8006F528 24180040 */ li $t8, 64
-/* AE66CC 8006F52C 14410004 */ bne $v0, $at, .L8006F540
-/* AE66D0 8006F530 24090001 */ li $t1, 1
-/* AE66D4 8006F534 A0D80B15 */ sb $t8, 0xb15($a2)
-/* AE66D8 8006F538 10000010 */ b .L8006F57C
-/* AE66DC 8006F53C A0D80B14 */ sb $t8, 0xb14($a2)
-.L8006F540:
-/* AE66E0 8006F540 24010004 */ li $at, 4
-/* AE66E4 8006F544 14410005 */ bne $v0, $at, .L8006F55C
-/* AE66E8 8006F548 24090001 */ li $t1, 1
-/* AE66EC 8006F54C 24020014 */ li $v0, 20
-/* AE66F0 8006F550 A0C20B12 */ sb $v0, 0xb12($a2)
-/* AE66F4 8006F554 10000009 */ b .L8006F57C
-/* AE66F8 8006F558 A0C20B13 */ sb $v0, 0xb13($a2)
-.L8006F55C:
-/* AE66FC 8006F55C 24010005 */ li $at, 5
-/* AE6700 8006F560 14410003 */ bne $v0, $at, .L8006F570
-/* AE6704 8006F564 2402001E */ li $v0, 30
-/* AE6708 8006F568 A0C20B12 */ sb $v0, 0xb12($a2)
-/* AE670C 8006F56C A0C20B13 */ sb $v0, 0xb13($a2)
-.L8006F570:
-/* AE6710 8006F570 10000002 */ b .L8006F57C
-/* AE6714 8006F574 24090001 */ li $t1, 1
-/* AE6718 8006F578 A0800000 */ sb $zero, ($a0)
-.L8006F57C:
-/* AE671C 8006F57C 3C018012 */ lui $at, %hi(D_8011FB38) # $at, 0x8012
-/* AE6720 8006F580 A020FB38 */ sb $zero, %lo(D_8011FB38)($at)
-/* AE6724 8006F584 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012
-/* AE6728 8006F588 A020FB34 */ sb $zero, %lo(D_8011FB34)($at)
-/* AE672C 8006F58C 3C018012 */ lui $at, %hi(D_8011FB3C) # $at, 0x8012
-/* AE6730 8006F590 A020FB3C */ sb $zero, %lo(D_8011FB3C)($at)
-/* AE6734 8006F594 8C790000 */ lw $t9, ($v1)
-/* AE6738 8006F598 A10013C3 */ sb $zero, 0x13c3($t0)
-/* AE673C 8006F59C 2404FFB0 */ li $a0, -80
-/* AE6740 8006F5A0 A7270B5A */ sh $a3, 0xb5a($t9)
-/* AE6744 8006F5A4 8C6B0000 */ lw $t3, ($v1)
-/* AE6748 8006F5A8 2418000A */ li $t8, 10
-/* AE674C 8006F5AC 3C018016 */ lui $at, %hi(D_8015FCC8) # $at, 0x8016
-/* AE6750 8006F5B0 A5670B5C */ sh $a3, 0xb5c($t3)
-/* AE6754 8006F5B4 8C6C0000 */ lw $t4, ($v1)
-/* AE6758 8006F5B8 00001025 */ move $v0, $zero
-/* AE675C 8006F5BC A5870B5E */ sh $a3, 0xb5e($t4)
-/* AE6760 8006F5C0 8C6D0000 */ lw $t5, ($v1)
-/* AE6764 8006F5C4 A5A40B60 */ sh $a0, 0xb60($t5)
-/* AE6768 8006F5C8 8C6E0000 */ lw $t6, ($v1)
-/* AE676C 8006F5CC A5C40B62 */ sh $a0, 0xb62($t6)
-/* AE6770 8006F5D0 8C6F0000 */ lw $t7, ($v1)
-/* AE6774 8006F5D4 A5E40B64 */ sh $a0, 0xb64($t7)
-/* AE6778 8006F5D8 8C790000 */ lw $t9, ($v1)
-/* AE677C 8006F5DC A7380B66 */ sh $t8, 0xb66($t9)
-/* AE6780 8006F5E0 8C6B0000 */ lw $t3, ($v1)
-/* AE6784 8006F5E4 A5600B68 */ sh $zero, 0xb68($t3)
-/* AE6788 8006F5E8 8C6C0000 */ lw $t4, ($v1)
-/* AE678C 8006F5EC A5800B6A */ sh $zero, 0xb6a($t4)
-/* AE6790 8006F5F0 8C6D0000 */ lw $t5, ($v1)
-/* AE6794 8006F5F4 A5A00B6C */ sh $zero, 0xb6c($t5)
-/* AE6798 8006F5F8 8C6E0000 */ lw $t6, ($v1)
-/* AE679C 8006F5FC A5C00B6E */ sh $zero, 0xb6e($t6)
-/* AE67A0 8006F600 8C6F0000 */ lw $t7, ($v1)
-/* AE67A4 8006F604 3C038016 */ lui $v1, %hi(D_8015FD10) # $v1, 0x8016
-/* AE67A8 8006F608 2463FD10 */ addiu $v1, %lo(D_8015FD10) # addiu $v1, $v1, -0x2f0
-/* AE67AC 8006F60C A5E00B70 */ sh $zero, 0xb70($t7)
-/* AE67B0 8006F610 A029FCC8 */ sb $t1, %lo(D_8015FCC8)($at)
-.L8006F614:
-/* AE67B4 8006F614 0002C140 */ sll $t8, $v0, 5
-/* AE67B8 8006F618 24420001 */ addiu $v0, $v0, 1
-/* AE67BC 8006F61C 304200FF */ andi $v0, $v0, 0xff
-/* AE67C0 8006F620 28410003 */ slti $at, $v0, 3
-/* AE67C4 8006F624 0078C821 */ addu $t9, $v1, $t8
-/* AE67C8 8006F628 1420FFFA */ bnez $at, .L8006F614
-/* AE67CC 8006F62C A3250000 */ sb $a1, ($t9)
-/* AE67D0 8006F630 A4C01D30 */ sh $zero, 0x1d30($a2)
-/* AE67D4 8006F634 A4C01D32 */ sh $zero, 0x1d32($a2)
-/* AE67D8 8006F638 00001025 */ move $v0, $zero
-.L8006F63C:
-/* AE67DC 8006F63C 00025880 */ sll $t3, $v0, 2
-/* AE67E0 8006F640 24420001 */ addiu $v0, $v0, 1
-/* AE67E4 8006F644 304200FF */ andi $v0, $v0, 0xff
-/* AE67E8 8006F648 2841000A */ slti $at, $v0, 0xa
-/* AE67EC 8006F64C 022B6021 */ addu $t4, $s1, $t3
-/* AE67F0 8006F650 1420FFFA */ bnez $at, .L8006F63C
-/* AE67F4 8006F654 AD801D8C */ sw $zero, 0x1d8c($t4)
-/* AE67F8 8006F658 3C010001 */ lui $at, (0x000117A4 >> 16) # lui $at, 1
-/* AE67FC 8006F65C 342117A4 */ ori $at, (0x000117A4 & 0xFFFF) # ori $at, $at, 0x17a4
-/* AE6800 8006F660 02212021 */ addu $a0, $s1, $at
-/* AE6804 8006F664 24050002 */ li $a1, 2
-/* AE6808 8006F668 0C02604B */ jal Object_GetIndex
-/* AE680C 8006F66C AFA60034 */ sw $a2, 0x34($sp)
-/* AE6810 8006F670 8FA60034 */ lw $a2, 0x34($sp)
-/* AE6814 8006F674 04410009 */ bgez $v0, .L8006F69C
-/* AE6818 8006F678 24090001 */ li $t1, 1
-/* AE681C 8006F67C 90CD0A3A */ lbu $t5, 0xa3a($a2)
-/* AE6820 8006F680 3C010001 */ lui $at, 1
-/* AE6824 8006F684 00310821 */ addu $at, $at, $s1
-/* AE6828 8006F688 15A00004 */ bnez $t5, .L8006F69C
-/* AE682C 8006F68C 3C048014 */ lui $a0, %hi(D_8013C240) # $a0, 0x8014
-/* AE6830 8006F690 A0290A3A */ sb $t1, 0xa3a($at)
-/* AE6834 8006F694 0C00084C */ jal osSyncPrintf
-/* AE6838 8006F698 2484C240 */ addiu $a0, %lo(D_8013C240) # addiu $a0, $a0, -0x3dc0
-.L8006F69C:
-/* AE683C 8006F69C 3C018016 */ lui $at, %hi(D_8015FCF0) # $at, 0x8016
-/* AE6840 8006F6A0 0C02A857 */ jal func_800AA15C
-/* AE6844 8006F6A4 A020FCF0 */ sb $zero, %lo(D_8015FCF0)($at)
-/* AE6848 8006F6A8 8FBF002C */ lw $ra, 0x2c($sp)
-/* AE684C 8006F6AC 8FB00024 */ lw $s0, 0x24($sp)
-/* AE6850 8006F6B0 8FB10028 */ lw $s1, 0x28($sp)
-/* AE6854 8006F6B4 03E00008 */ jr $ra
-/* AE6858 8006F6B8 27BD0058 */ addiu $sp, $sp, 0x58
-
-/* AE685C 8006F6BC AFA50004 */ sw $a1, 4($sp)
-/* AE6860 8006F6C0 AFA60008 */ sw $a2, 8($sp)
-/* AE6864 8006F6C4 AFA7000C */ sw $a3, 0xc($sp)
-/* AE6868 8006F6C8 90890000 */ lbu $t1, ($a0)
-/* AE686C 8006F6CC 30A500FF */ andi $a1, $a1, 0xff
-/* AE6870 8006F6D0 30C600FF */ andi $a2, $a2, 0xff
-/* AE6874 8006F6D4 00A91823 */ subu $v1, $a1, $t1
-/* AE6878 8006F6D8 00031C00 */ sll $v1, $v1, 0x10
-/* AE687C 8006F6DC 00031C03 */ sra $v1, $v1, 0x10
-/* AE6880 8006F6E0 10A90043 */ beq $a1, $t1, .L8006F7F0
-/* AE6884 8006F6E4 00A04025 */ move $t0, $a1
-/* AE6888 8006F6E8 0066001A */ div $zero, $v1, $a2
-/* AE688C 8006F6EC 93AB0013 */ lbu $t3, 0x13($sp)
-/* AE6890 8006F6F0 14C00002 */ bnez $a2, .L8006F6FC
-/* AE6894 8006F6F4 00000000 */ nop
-/* AE6898 8006F6F8 0007000D */ break 7
-.L8006F6FC:
-/* AE689C 8006F6FC 2401FFFF */ li $at, -1
-/* AE68A0 8006F700 14C10004 */ bne $a2, $at, .L8006F714
-/* AE68A4 8006F704 3C018000 */ lui $at, 0x8000
-/* AE68A8 8006F708 14610002 */ bne $v1, $at, .L8006F714
-/* AE68AC 8006F70C 00000000 */ nop
-/* AE68B0 8006F710 0006000D */ break 6
-.L8006F714:
-/* AE68B4 8006F714 00003812 */ mflo $a3
-/* AE68B8 8006F718 00075400 */ sll $t2, $a3, 0x10
-/* AE68BC 8006F71C 000B6400 */ sll $t4, $t3, 0x10
-/* AE68C0 8006F720 000C6403 */ sra $t4, $t4, 0x10
-/* AE68C4 8006F724 000A5403 */ sra $t2, $t2, 0x10
-/* AE68C8 8006F728 00071400 */ sll $v0, $a3, 0x10
-/* AE68CC 8006F72C 014C082A */ slt $at, $t2, $t4
-/* AE68D0 8006F730 10200007 */ beqz $at, .L8006F750
-/* AE68D4 8006F734 00021403 */ sra $v0, $v0, 0x10
-/* AE68D8 8006F738 000B3023 */ negu $a2, $t3
-/* AE68DC 8006F73C 00063400 */ sll $a2, $a2, 0x10
-/* AE68E0 8006F740 00063403 */ sra $a2, $a2, 0x10
-/* AE68E4 8006F744 00CA082A */ slt $at, $a2, $t2
-/* AE68E8 8006F748 54200016 */ bnezl $at, .L8006F7A4
-/* AE68EC 8006F74C 014C082A */ slt $at, $t2, $t4
-.L8006F750:
-/* AE68F0 8006F750 93A5000F */ lbu $a1, 0xf($sp)
-/* AE68F4 8006F754 00057400 */ sll $t6, $a1, 0x10
-/* AE68F8 8006F758 000E7C03 */ sra $t7, $t6, 0x10
-/* AE68FC 8006F75C 01EA082A */ slt $at, $t7, $t2
-/* AE6900 8006F760 10200003 */ beqz $at, .L8006F770
-/* AE6904 8006F764 00053023 */ negu $a2, $a1
-/* AE6908 8006F768 00051400 */ sll $v0, $a1, 0x10
-/* AE690C 8006F76C 00021403 */ sra $v0, $v0, 0x10
-.L8006F770:
-/* AE6910 8006F770 0006C400 */ sll $t8, $a2, 0x10
-/* AE6914 8006F774 0018CC03 */ sra $t9, $t8, 0x10
-/* AE6918 8006F778 0059082A */ slt $at, $v0, $t9
-/* AE691C 8006F77C 50200004 */ beql $at, $zero, .L8006F790
-/* AE6920 8006F780 00406825 */ move $t5, $v0
-/* AE6924 8006F784 00061400 */ sll $v0, $a2, 0x10
-/* AE6928 8006F788 00021403 */ sra $v0, $v0, 0x10
-/* AE692C 8006F78C 00406825 */ move $t5, $v0
-.L8006F790:
-/* AE6930 8006F790 012D7021 */ addu $t6, $t1, $t5
-/* AE6934 8006F794 A08E0000 */ sb $t6, ($a0)
-/* AE6938 8006F798 03E00008 */ jr $ra
-/* AE693C 8006F79C 306200FF */ andi $v0, $v1, 0xff
-
-/* AE6940 8006F7A0 014C082A */ slt $at, $t2, $t4
-.L8006F7A4:
-/* AE6944 8006F7A4 10200008 */ beqz $at, .L8006F7C8
-/* AE6948 8006F7A8 012CC021 */ addu $t8, $t1, $t4
-/* AE694C 8006F7AC 331900FF */ andi $t9, $t8, 0xff
-/* AE6950 8006F7B0 000B1400 */ sll $v0, $t3, 0x10
-/* AE6954 8006F7B4 0119082A */ slt $at, $t0, $t9
-/* AE6958 8006F7B8 00021403 */ sra $v0, $v0, 0x10
-/* AE695C 8006F7BC 10200002 */ beqz $at, .L8006F7C8
-/* AE6960 8006F7C0 A0980000 */ sb $t8, ($a0)
-/* AE6964 8006F7C4 A0850000 */ sb $a1, ($a0)
-.L8006F7C8:
-/* AE6968 8006F7C8 00C2082A */ slt $at, $a2, $v0
-/* AE696C 8006F7CC 10200008 */ beqz $at, .L8006F7F0
-/* AE6970 8006F7D0 00000000 */ nop
-/* AE6974 8006F7D4 908D0000 */ lbu $t5, ($a0)
-/* AE6978 8006F7D8 01A67821 */ addu $t7, $t5, $a2
-/* AE697C 8006F7DC 31F800FF */ andi $t8, $t7, 0xff
-/* AE6980 8006F7E0 0308082A */ slt $at, $t8, $t0
-/* AE6984 8006F7E4 10200002 */ beqz $at, .L8006F7F0
-/* AE6988 8006F7E8 A08F0000 */ sb $t7, ($a0)
-/* AE698C 8006F7EC A0850000 */ sb $a1, ($a0)
-.L8006F7F0:
-/* AE6990 8006F7F0 03E00008 */ jr $ra
-/* AE6994 8006F7F4 306200FF */ andi $v0, $v1, 0xff
-
-/* AE6998 8006F7F8 AFA50004 */ sw $a1, 4($sp)
-/* AE699C 8006F7FC AFA60008 */ sw $a2, 8($sp)
-/* AE69A0 8006F800 AFA7000C */ sw $a3, 0xc($sp)
-/* AE69A4 8006F804 80880000 */ lb $t0, ($a0)
-/* AE69A8 8006F808 00052E00 */ sll $a1, $a1, 0x18
-/* AE69AC 8006F80C 00052E03 */ sra $a1, $a1, 0x18
-/* AE69B0 8006F810 00A81823 */ subu $v1, $a1, $t0
-/* AE69B4 8006F814 00031C00 */ sll $v1, $v1, 0x10
-/* AE69B8 8006F818 30C600FF */ andi $a2, $a2, 0xff
-/* AE69BC 8006F81C 10A80045 */ beq $a1, $t0, .L8006F934
-/* AE69C0 8006F820 00031C03 */ sra $v1, $v1, 0x10
-/* AE69C4 8006F824 0066001A */ div $zero, $v1, $a2
-/* AE69C8 8006F828 93AA0013 */ lbu $t2, 0x13($sp)
-/* AE69CC 8006F82C 14C00002 */ bnez $a2, .L8006F838
-/* AE69D0 8006F830 00000000 */ nop
-/* AE69D4 8006F834 0007000D */ break 7
-.L8006F838:
-/* AE69D8 8006F838 2401FFFF */ li $at, -1
-/* AE69DC 8006F83C 14C10004 */ bne $a2, $at, .L8006F850
-/* AE69E0 8006F840 3C018000 */ lui $at, 0x8000
-/* AE69E4 8006F844 14610002 */ bne $v1, $at, .L8006F850
-/* AE69E8 8006F848 00000000 */ nop
-/* AE69EC 8006F84C 0006000D */ break 6
-.L8006F850:
-/* AE69F0 8006F850 00003812 */ mflo $a3
-/* AE69F4 8006F854 00074C00 */ sll $t1, $a3, 0x10
-/* AE69F8 8006F858 000A5C00 */ sll $t3, $t2, 0x10
-/* AE69FC 8006F85C 000B5C03 */ sra $t3, $t3, 0x10
-/* AE6A00 8006F860 00094C03 */ sra $t1, $t1, 0x10
-/* AE6A04 8006F864 00071400 */ sll $v0, $a3, 0x10
-/* AE6A08 8006F868 012B082A */ slt $at, $t1, $t3
-/* AE6A0C 8006F86C 10200007 */ beqz $at, .L8006F88C
-/* AE6A10 8006F870 00021403 */ sra $v0, $v0, 0x10
-/* AE6A14 8006F874 000A3023 */ negu $a2, $t2
-/* AE6A18 8006F878 00063400 */ sll $a2, $a2, 0x10
-/* AE6A1C 8006F87C 00063403 */ sra $a2, $a2, 0x10
-/* AE6A20 8006F880 00C9082A */ slt $at, $a2, $t1
-/* AE6A24 8006F884 54200016 */ bnezl $at, .L8006F8E0
-/* AE6A28 8006F888 012B082A */ slt $at, $t1, $t3
-.L8006F88C:
-/* AE6A2C 8006F88C 93A5000F */ lbu $a1, 0xf($sp)
-/* AE6A30 8006F890 00057400 */ sll $t6, $a1, 0x10
-/* AE6A34 8006F894 000E7C03 */ sra $t7, $t6, 0x10
-/* AE6A38 8006F898 01E9082A */ slt $at, $t7, $t1
-/* AE6A3C 8006F89C 10200003 */ beqz $at, .L8006F8AC
-/* AE6A40 8006F8A0 00053023 */ negu $a2, $a1
-/* AE6A44 8006F8A4 00051400 */ sll $v0, $a1, 0x10
-/* AE6A48 8006F8A8 00021403 */ sra $v0, $v0, 0x10
-.L8006F8AC:
-/* AE6A4C 8006F8AC 0006C400 */ sll $t8, $a2, 0x10
-/* AE6A50 8006F8B0 0018CC03 */ sra $t9, $t8, 0x10
-/* AE6A54 8006F8B4 0059082A */ slt $at, $v0, $t9
-/* AE6A58 8006F8B8 50200004 */ beql $at, $zero, .L8006F8CC
-/* AE6A5C 8006F8BC 00406825 */ move $t5, $v0
-/* AE6A60 8006F8C0 00061400 */ sll $v0, $a2, 0x10
-/* AE6A64 8006F8C4 00021403 */ sra $v0, $v0, 0x10
-/* AE6A68 8006F8C8 00406825 */ move $t5, $v0
-.L8006F8CC:
-/* AE6A6C 8006F8CC 010D7021 */ addu $t6, $t0, $t5
-/* AE6A70 8006F8D0 A08E0000 */ sb $t6, ($a0)
-/* AE6A74 8006F8D4 03E00008 */ jr $ra
-/* AE6A78 8006F8D8 306200FF */ andi $v0, $v1, 0xff
-
-/* AE6A7C 8006F8DC 012B082A */ slt $at, $t1, $t3
-.L8006F8E0:
-/* AE6A80 8006F8E0 10200009 */ beqz $at, .L8006F908
-/* AE6A84 8006F8E4 010BC821 */ addu $t9, $t0, $t3
-/* AE6A88 8006F8E8 A0990000 */ sb $t9, ($a0)
-/* AE6A8C 8006F8EC 808C0000 */ lb $t4, ($a0)
-/* AE6A90 8006F8F0 000A1400 */ sll $v0, $t2, 0x10
-/* AE6A94 8006F8F4 00021403 */ sra $v0, $v0, 0x10
-/* AE6A98 8006F8F8 00AC082A */ slt $at, $a1, $t4
-/* AE6A9C 8006F8FC 50200003 */ beql $at, $zero, .L8006F90C
-/* AE6AA0 8006F900 00C2082A */ slt $at, $a2, $v0
-/* AE6AA4 8006F904 A0850000 */ sb $a1, ($a0)
-.L8006F908:
-/* AE6AA8 8006F908 00C2082A */ slt $at, $a2, $v0
-.L8006F90C:
-/* AE6AAC 8006F90C 10200009 */ beqz $at, .L8006F934
-/* AE6AB0 8006F910 00000000 */ nop
-/* AE6AB4 8006F914 808D0000 */ lb $t5, ($a0)
-/* AE6AB8 8006F918 01A6C021 */ addu $t8, $t5, $a2
-/* AE6ABC 8006F91C A0980000 */ sb $t8, ($a0)
-/* AE6AC0 8006F920 80990000 */ lb $t9, ($a0)
-/* AE6AC4 8006F924 0325082A */ slt $at, $t9, $a1
-/* AE6AC8 8006F928 10200002 */ beqz $at, .L8006F934
-/* AE6ACC 8006F92C 00000000 */ nop
-/* AE6AD0 8006F930 A0850000 */ sb $a1, ($a0)
-.L8006F934:
-/* AE6AD4 8006F934 03E00008 */ jr $ra
-/* AE6AD8 8006F938 306200FF */ andi $v0, $v1, 0xff
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8006F93C.s b/asm/non_matchings/code/z_kankyo/func_8006F93C.s
deleted file mode 100644
index c01ed57aae..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006F93C.s
+++ /dev/null
@@ -1,35 +0,0 @@
-glabel func_8006F93C
-/* AE6ADC 8006F93C AFA40000 */ sw $a0, ($sp)
-/* AE6AE0 8006F940 AFA50004 */ sw $a1, 4($sp)
-/* AE6AE4 8006F944 30A5FFFF */ andi $a1, $a1, 0xffff
-/* AE6AE8 8006F948 3084FFFF */ andi $a0, $a0, 0xffff
-/* AE6AEC 8006F94C 00857023 */ subu $t6, $a0, $a1
-/* AE6AF0 8006F950 448E2000 */ mtc1 $t6, $f4
-/* AE6AF4 8006F954 44803000 */ mtc1 $zero, $f6
-/* AE6AF8 8006F958 AFA60008 */ sw $a2, 8($sp)
-/* AE6AFC 8006F95C 46802020 */ cvt.s.w $f0, $f4
-/* AE6B00 8006F960 30C6FFFF */ andi $a2, $a2, 0xffff
-/* AE6B04 8006F964 00867823 */ subu $t7, $a0, $a2
-/* AE6B08 8006F968 46003032 */ c.eq.s $f6, $f0
-/* AE6B0C 8006F96C 00000000 */ nop
-/* AE6B10 8006F970 4503000E */ bc1tl .L8006F9AC
-/* AE6B14 8006F974 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AE6B18 8006F978 448F4000 */ mtc1 $t7, $f8
-/* AE6B1C 8006F97C 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AE6B20 8006F980 44816000 */ mtc1 $at, $f12
-/* AE6B24 8006F984 468042A0 */ cvt.s.w $f10, $f8
-/* AE6B28 8006F988 46005403 */ div.s $f16, $f10, $f0
-/* AE6B2C 8006F98C 46106081 */ sub.s $f2, $f12, $f16
-/* AE6B30 8006F990 4602603E */ c.le.s $f12, $f2
-/* AE6B34 8006F994 00000000 */ nop
-/* AE6B38 8006F998 45030004 */ bc1tl .L8006F9AC
-/* AE6B3C 8006F99C 3C013F80 */ lui $at, 0x3f80
-/* AE6B40 8006F9A0 03E00008 */ jr $ra
-/* AE6B44 8006F9A4 46001006 */ mov.s $f0, $f2
-
-/* AE6B48 8006F9A8 3C013F80 */ li $at, 0x3F800000 # 0.000000
-.L8006F9AC:
-/* AE6B4C 8006F9AC 44810000 */ mtc1 $at, $f0
-/* AE6B50 8006F9B0 00000000 */ nop
-/* AE6B54 8006F9B4 03E00008 */ jr $ra
-/* AE6B58 8006F9B8 00000000 */ nop
diff --git a/asm/non_matchings/code/z_kankyo/func_8006F9BC.s b/asm/non_matchings/code/z_kankyo/func_8006F9BC.s
deleted file mode 100644
index a74e6f7f92..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006F9BC.s
+++ /dev/null
@@ -1,142 +0,0 @@
-.rdata
-glabel D_8013C280
- .asciz "\x1b[41;37m\nend_frameとstart_frameのフレーム関係がおかしい!!!\x1b[m"
- # EUC-JP: とstart_frameのフレーム関係がおかしい!!! | The frame relation between end_frame and start_frame is wrong
- .balign 4
-
-glabel D_8013C2C0
- .asciz "\x1b[41;37m\nby get_parcent_forAccelBrake!!!!!!!!!\x1b[m"
- .balign 4
-
-.text
-glabel func_8006F9BC
-/* AE6B5C 8006F9BC 27BDFFC0 */ addiu $sp, $sp, -0x40
-/* AE6B60 8006F9C0 30A3FFFF */ andi $v1, $a1, 0xffff
-/* AE6B64 8006F9C4 30C2FFFF */ andi $v0, $a2, 0xffff
-/* AE6B68 8006F9C8 AFA7004C */ sw $a3, 0x4c($sp)
-/* AE6B6C 8006F9CC 0062082A */ slt $at, $v1, $v0
-/* AE6B70 8006F9D0 30E7FFFF */ andi $a3, $a3, 0xffff
-/* AE6B74 8006F9D4 AFBF001C */ sw $ra, 0x1c($sp)
-/* AE6B78 8006F9D8 F7B40010 */ sdc1 $f20, 0x10($sp)
-/* AE6B7C 8006F9DC AFA40040 */ sw $a0, 0x40($sp)
-/* AE6B80 8006F9E0 AFA50044 */ sw $a1, 0x44($sp)
-/* AE6B84 8006F9E4 14200004 */ bnez $at, .L8006F9F8
-/* AE6B88 8006F9E8 AFA60048 */ sw $a2, 0x48($sp)
-/* AE6B8C 8006F9EC 44800000 */ mtc1 $zero, $f0
-/* AE6B90 8006F9F0 10000064 */ b .L8006FB84
-/* AE6B94 8006F9F4 8FBF001C */ lw $ra, 0x1c($sp)
-.L8006F9F8:
-/* AE6B98 8006F9F8 97A40042 */ lhu $a0, 0x42($sp)
-/* AE6B9C 8006F9FC 0044082A */ slt $at, $v0, $a0
-/* AE6BA0 8006FA00 14200004 */ bnez $at, .L8006FA14
-/* AE6BA4 8006FA04 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AE6BA8 8006FA08 44810000 */ mtc1 $at, $f0
-/* AE6BAC 8006FA0C 1000005D */ b .L8006FB84
-/* AE6BB0 8006FA10 8FBF001C */ lw $ra, 0x1c($sp)
-.L8006FA14:
-/* AE6BB4 8006FA14 44832000 */ mtc1 $v1, $f4
-/* AE6BB8 8006FA18 44843000 */ mtc1 $a0, $f6
-/* AE6BBC 8006FA1C 3C048014 */ lui $a0, %hi(D_8013C280)
-/* AE6BC0 8006FA20 46802020 */ cvt.s.w $f0, $f4
-/* AE6BC4 8006FA24 468030A0 */ cvt.s.w $f2, $f6
-/* AE6BC8 8006FA28 4600103E */ c.le.s $f2, $f0
-/* AE6BCC 8006FA2C 00000000 */ nop
-/* AE6BD0 8006FA30 4501000C */ bc1t .L8006FA64
-/* AE6BD4 8006FA34 00000000 */ nop
-/* AE6BD8 8006FA38 97AE0052 */ lhu $t6, 0x52($sp)
-/* AE6BDC 8006FA3C 44874000 */ mtc1 $a3, $f8
-/* AE6BE0 8006FA40 46001481 */ sub.s $f18, $f2, $f0
-/* AE6BE4 8006FA44 448E5000 */ mtc1 $t6, $f10
-/* AE6BE8 8006FA48 468043A0 */ cvt.s.w $f14, $f8
-/* AE6BEC 8006FA4C 46805520 */ cvt.s.w $f20, $f10
-/* AE6BF0 8006FA50 46147100 */ add.s $f4, $f14, $f20
-/* AE6BF4 8006FA54 4604903C */ c.lt.s $f18, $f4
-/* AE6BF8 8006FA58 00000000 */ nop
-/* AE6BFC 8006FA5C 4502000A */ bc1fl .L8006FA88
-/* AE6C00 8006FA60 46129200 */ add.s $f8, $f18, $f18
-.L8006FA64:
-/* AE6C04 8006FA64 0C00084C */ jal osSyncPrintf
-/* AE6C08 8006FA68 2484C280 */ addiu $a0, %lo(D_8013C280)
-/* AE6C0C 8006FA6C 3C048014 */ lui $a0, %hi(D_8013C2C0)
-/* AE6C10 8006FA70 0C00084C */ jal osSyncPrintf
-/* AE6C14 8006FA74 2484C2C0 */ addiu $a0, %lo(D_8013C2C0) # addiu $a0, $a0, -0x3d40
-/* AE6C18 8006FA78 44800000 */ mtc1 $zero, $f0
-/* AE6C1C 8006FA7C 10000041 */ b .L8006FB84
-/* AE6C20 8006FA80 8FBF001C */ lw $ra, 0x1c($sp)
-/* AE6C24 8006FA84 46129200 */ add.s $f8, $f18, $f18
-.L8006FA88:
-/* AE6C28 8006FA88 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AE6C2C 8006FA8C 44813000 */ mtc1 $at, $f6
-/* AE6C30 8006FA90 460E4281 */ sub.s $f10, $f8, $f14
-/* AE6C34 8006FA94 44804000 */ mtc1 $zero, $f8
-/* AE6C38 8006FA98 46145101 */ sub.s $f4, $f10, $f20
-/* AE6C3C 8006FA9C 46087032 */ c.eq.s $f14, $f8
-/* AE6C40 8006FAA0 46043403 */ div.s $f16, $f6, $f4
-/* AE6C44 8006FAA4 45010011 */ bc1t .L8006FAEC
-/* AE6C48 8006FAA8 E7B00024 */ swc1 $f16, 0x24($sp)
-/* AE6C4C 8006FAAC 44825000 */ mtc1 $v0, $f10
-/* AE6C50 8006FAB0 00000000 */ nop
-/* AE6C54 8006FAB4 468051A0 */ cvt.s.w $f6, $f10
-/* AE6C58 8006FAB8 46003301 */ sub.s $f12, $f6, $f0
-/* AE6C5C 8006FABC 460E603E */ c.le.s $f12, $f14
-/* AE6C60 8006FAC0 00000000 */ nop
-/* AE6C64 8006FAC4 45000006 */ bc1f .L8006FAE0
-/* AE6C68 8006FAC8 00000000 */ nop
-/* AE6C6C 8006FACC 460C8102 */ mul.s $f4, $f16, $f12
-/* AE6C70 8006FAD0 00000000 */ nop
-/* AE6C74 8006FAD4 460C2202 */ mul.s $f8, $f4, $f12
-/* AE6C78 8006FAD8 10000029 */ b .L8006FB80
-/* AE6C7C 8006FADC 460E4003 */ div.s $f0, $f8, $f14
-.L8006FAE0:
-/* AE6C80 8006FAE0 460E8082 */ mul.s $f2, $f16, $f14
-/* AE6C84 8006FAE4 10000006 */ b .L8006FB00
-/* AE6C88 8006FAE8 46149101 */ sub.s $f4, $f18, $f20
-.L8006FAEC:
-/* AE6C8C 8006FAEC 44825000 */ mtc1 $v0, $f10
-/* AE6C90 8006FAF0 44801000 */ mtc1 $zero, $f2
-/* AE6C94 8006FAF4 468051A0 */ cvt.s.w $f6, $f10
-/* AE6C98 8006FAF8 46003301 */ sub.s $f12, $f6, $f0
-/* AE6C9C 8006FAFC 46149101 */ sub.s $f4, $f18, $f20
-.L8006FB00:
-/* AE6CA0 8006FB00 4604603E */ c.le.s $f12, $f4
-/* AE6CA4 8006FB04 00000000 */ nop
-/* AE6CA8 8006FB08 45020008 */ bc1fl .L8006FB2C
-/* AE6CAC 8006FB0C 460E9201 */ sub.s $f8, $f18, $f14
-/* AE6CB0 8006FB10 46108200 */ add.s $f8, $f16, $f16
-/* AE6CB4 8006FB14 460E6281 */ sub.s $f10, $f12, $f14
-/* AE6CB8 8006FB18 460A4182 */ mul.s $f6, $f8, $f10
-/* AE6CBC 8006FB1C 46061080 */ add.s $f2, $f2, $f6
-/* AE6CC0 8006FB20 10000017 */ b .L8006FB80
-/* AE6CC4 8006FB24 46001006 */ mov.s $f0, $f2
-/* AE6CC8 8006FB28 460E9201 */ sub.s $f8, $f18, $f14
-.L8006FB2C:
-/* AE6CCC 8006FB2C 46108100 */ add.s $f4, $f16, $f16
-/* AE6CD0 8006FB30 46144281 */ sub.s $f10, $f8, $f20
-/* AE6CD4 8006FB34 44804000 */ mtc1 $zero, $f8
-/* AE6CD8 8006FB38 460A2182 */ mul.s $f6, $f4, $f10
-/* AE6CDC 8006FB3C 4608A032 */ c.eq.s $f20, $f8
-/* AE6CE0 8006FB40 00000000 */ nop
-/* AE6CE4 8006FB44 4501000D */ bc1t .L8006FB7C
-/* AE6CE8 8006FB48 46061080 */ add.s $f2, $f2, $f6
-/* AE6CEC 8006FB4C 46148102 */ mul.s $f4, $f16, $f20
-/* AE6CF0 8006FB50 4612603C */ c.lt.s $f12, $f18
-/* AE6CF4 8006FB54 00000000 */ nop
-/* AE6CF8 8006FB58 45000008 */ bc1f .L8006FB7C
-/* AE6CFC 8006FB5C 46041080 */ add.s $f2, $f2, $f4
-/* AE6D00 8006FB60 460C9001 */ sub.s $f0, $f18, $f12
-/* AE6D04 8006FB64 C7AA0024 */ lwc1 $f10, 0x24($sp)
-/* AE6D08 8006FB68 46005182 */ mul.s $f6, $f10, $f0
-/* AE6D0C 8006FB6C 00000000 */ nop
-/* AE6D10 8006FB70 46003202 */ mul.s $f8, $f6, $f0
-/* AE6D14 8006FB74 46144103 */ div.s $f4, $f8, $f20
-/* AE6D18 8006FB78 46041081 */ sub.s $f2, $f2, $f4
-.L8006FB7C:
-/* AE6D1C 8006FB7C 46001006 */ mov.s $f0, $f2
-.L8006FB80:
-/* AE6D20 8006FB80 8FBF001C */ lw $ra, 0x1c($sp)
-.L8006FB84:
-/* AE6D24 8006FB84 D7B40010 */ ldc1 $f20, 0x10($sp)
-/* AE6D28 8006FB88 27BD0040 */ addiu $sp, $sp, 0x40
-/* AE6D2C 8006FB8C 03E00008 */ jr $ra
-/* AE6D30 8006FB90 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8006FB94.s b/asm/non_matchings/code/z_kankyo/func_8006FB94.s
deleted file mode 100644
index 7387ad722a..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8006FB94.s
+++ /dev/null
@@ -1,68 +0,0 @@
-glabel func_8006FB94
-/* AE6D34 8006FB94 AFA50004 */ sw $a1, 4($sp)
-/* AE6D38 8006FB98 908200DD */ lbu $v0, 0xdd($a0)
-/* AE6D3C 8006FB9C 10400038 */ beqz $v0, .L8006FC80
-/* AE6D40 8006FBA0 00000000 */ nop
-/* AE6D44 8006FBA4 908300DE */ lbu $v1, 0xde($a0)
-/* AE6D48 8006FBA8 24010001 */ li $at, 1
-/* AE6D4C 8006FBAC 10600006 */ beqz $v1, .L8006FBC8
-/* AE6D50 8006FBB0 00000000 */ nop
-/* AE6D54 8006FBB4 24010001 */ li $at, 1
-/* AE6D58 8006FBB8 10610019 */ beq $v1, $at, .L8006FC20
-/* AE6D5C 8006FBBC 3C088012 */ lui $t0, %hi(D_8011FB3C)
-/* AE6D60 8006FBC0 03E00008 */ jr $ra
-/* AE6D64 8006FBC4 00000000 */ nop
-
-.L8006FBC8:
-/* AE6D68 8006FBC8 1441002D */ bne $v0, $at, .L8006FC80
-/* AE6D6C 8006FBCC 3C0E8012 */ lui $t6, %hi(D_8011FB3C) # $t6, 0x8012
-/* AE6D70 8006FBD0 91CEFB3C */ lbu $t6, %lo(D_8011FB3C)($t6)
-/* AE6D74 8006FBD4 24020001 */ li $v0, 1
-/* AE6D78 8006FBD8 240F0064 */ li $t7, 100
-/* AE6D7C 8006FBDC 15C00028 */ bnez $t6, .L8006FC80
-/* AE6D80 8006FBE0 24050002 */ li $a1, 2
-/* AE6D84 8006FBE4 A0820019 */ sb $v0, 0x19($a0)
-/* AE6D88 8006FBE8 A0800017 */ sb $zero, 0x17($a0)
-/* AE6D8C 8006FBEC A0820018 */ sb $v0, 0x18($a0)
-/* AE6D90 8006FBF0 A48F001A */ sh $t7, 0x1a($a0)
-/* AE6D94 8006FBF4 A0820021 */ sb $v0, 0x21($a0)
-/* AE6D98 8006FBF8 A080001F */ sb $zero, 0x1f($a0)
-/* AE6D9C 8006FBFC A0850020 */ sb $a1, 0x20($a0)
-/* AE6DA0 8006FC00 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012
-/* AE6DA4 8006FC04 A025FB34 */ sb $a1, %lo(D_8011FB34)($at)
-/* AE6DA8 8006FC08 909800DE */ lbu $t8, 0xde($a0)
-/* AE6DAC 8006FC0C A48F0022 */ sh $t7, 0x22($a0)
-/* AE6DB0 8006FC10 A48F0024 */ sh $t7, 0x24($a0)
-/* AE6DB4 8006FC14 27190001 */ addiu $t9, $t8, 1
-/* AE6DB8 8006FC18 03E00008 */ jr $ra
-/* AE6DBC 8006FC1C A09900DE */ sb $t9, 0xde($a0)
-
-.L8006FC20:
-/* AE6DC0 8006FC20 9108FB3C */ lbu $t0, %lo(D_8011FB3C)($t0)
-/* AE6DC4 8006FC24 24010002 */ li $at, 2
-/* AE6DC8 8006FC28 15000015 */ bnez $t0, .L8006FC80
-/* AE6DCC 8006FC2C 00000000 */ nop
-/* AE6DD0 8006FC30 14410013 */ bne $v0, $at, .L8006FC80
-/* AE6DD4 8006FC34 24090064 */ li $t1, 100
-/* AE6DD8 8006FC38 3C018012 */ lui $at, %hi(D_8011FB30) # $at, 0x8012
-/* AE6DDC 8006FC3C A020FB30 */ sb $zero, %lo(D_8011FB30)($at)
-/* AE6DE0 8006FC40 24020001 */ li $v0, 1
-/* AE6DE4 8006FC44 24050002 */ li $a1, 2
-/* AE6DE8 8006FC48 A0820019 */ sb $v0, 0x19($a0)
-/* AE6DEC 8006FC4C A0820017 */ sb $v0, 0x17($a0)
-/* AE6DF0 8006FC50 A0800018 */ sb $zero, 0x18($a0)
-/* AE6DF4 8006FC54 A489001A */ sh $t1, 0x1a($a0)
-/* AE6DF8 8006FC58 A0820021 */ sb $v0, 0x21($a0)
-/* AE6DFC 8006FC5C A085001F */ sb $a1, 0x1f($a0)
-/* AE6E00 8006FC60 A0800020 */ sb $zero, 0x20($a0)
-/* AE6E04 8006FC64 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012
-/* AE6E08 8006FC68 A020FB34 */ sb $zero, %lo(D_8011FB34)($at)
-/* AE6E0C 8006FC6C A4890022 */ sh $t1, 0x22($a0)
-/* AE6E10 8006FC70 A4890024 */ sh $t1, 0x24($a0)
-/* AE6E14 8006FC74 A08000EE */ sb $zero, 0xee($a0)
-/* AE6E18 8006FC78 A08000DD */ sb $zero, 0xdd($a0)
-/* AE6E1C 8006FC7C A08000DE */ sb $zero, 0xde($a0)
-.L8006FC80:
-/* AE6E20 8006FC80 03E00008 */ jr $ra
-/* AE6E24 8006FC84 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80070600.s b/asm/non_matchings/code/z_kankyo/func_80070600.s
deleted file mode 100644
index 5a28337980..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80070600.s
+++ /dev/null
@@ -1,53 +0,0 @@
-.rdata
-glabel D_8013C390
- .asciz "\x1b[43;30m\n水ポリゴンデータに水中カラーが設定されておりません!\x1b[m"
- # EUC-JP: 水ポリゴンデータに水中カラーが設定されておりません | Underwater color is not set in the water poly data
- .balign 4
-
-.text
-glabel func_80070600
-/* AE77A0 80070600 27BDFFE8 */ addiu $sp, $sp, -0x18
-/* AE77A4 80070604 2401001F */ li $at, 31
-/* AE77A8 80070608 AFBF0014 */ sw $ra, 0x14($sp)
-/* AE77AC 8007060C 14A10008 */ bne $a1, $at, .L80070630
-/* AE77B0 80070610 00803025 */ move $a2, $a0
-/* AE77B4 80070614 3C048014 */ lui $a0, %hi(D_8013C390) # $a0, 0x8014
-/* AE77B8 80070618 2484C390 */ addiu $a0, %lo(D_8013C390) # addiu $a0, $a0, -0x3c70
-/* AE77BC 8007061C AFA0001C */ sw $zero, 0x1c($sp)
-/* AE77C0 80070620 0C00084C */ jal osSyncPrintf
-/* AE77C4 80070624 AFA60018 */ sw $a2, 0x18($sp)
-/* AE77C8 80070628 8FA5001C */ lw $a1, 0x1c($sp)
-/* AE77CC 8007062C 8FA60018 */ lw $a2, 0x18($sp)
-.L80070630:
-/* AE77D0 80070630 3C010001 */ lui $at, 1
-/* AE77D4 80070634 00C11021 */ addu $v0, $a2, $at
-/* AE77D8 80070638 904E0A42 */ lbu $t6, 0xa42($v0)
-/* AE77DC 8007063C 3C010001 */ lui $at, 1
-/* AE77E0 80070640 00260821 */ addu $at, $at, $a2
-/* AE77E4 80070644 55C0000F */ bnezl $t6, .L80070684
-/* AE77E8 80070648 A0200AE0 */ sb $zero, 0xae0($at)
-/* AE77EC 8007064C 904F0A44 */ lbu $t7, 0xa44($v0)
-/* AE77F0 80070650 3C018012 */ lui $at, %hi(D_8011FB34) # $at, 0x8012
-/* AE77F4 80070654 A02FFB34 */ sb $t7, %lo(D_8011FB34)($at)
-/* AE77F8 80070658 90580A43 */ lbu $t8, 0xa43($v0)
-/* AE77FC 8007065C 3C010001 */ lui $at, 1
-/* AE7800 80070660 00260821 */ addu $at, $at, $a2
-/* AE7804 80070664 50B8000B */ beql $a1, $t8, .L80070694
-/* AE7808 80070668 8FBF0014 */ lw $ra, 0x14($sp)
-/* AE780C 8007066C A0250A43 */ sb $a1, 0xa43($at)
-/* AE7810 80070670 3C010001 */ lui $at, 1
-/* AE7814 80070674 00260821 */ addu $at, $at, $a2
-/* AE7818 80070678 10000005 */ b .L80070690
-/* AE781C 8007067C A0250A44 */ sb $a1, 0xa44($at)
-/* AE7820 80070680 A0200AE0 */ sb $zero, 0xae0($at)
-.L80070684:
-/* AE7824 80070684 3C010001 */ lui $at, 1
-/* AE7828 80070688 00260821 */ addu $at, $at, $a2
-/* AE782C 8007068C A0250AE3 */ sb $a1, 0xae3($at)
-.L80070690:
-/* AE7830 80070690 8FBF0014 */ lw $ra, 0x14($sp)
-.L80070694:
-/* AE7834 80070694 27BD0018 */ addiu $sp, $sp, 0x18
-/* AE7838 80070698 03E00008 */ jr $ra
-/* AE783C 8007069C 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800706A0.s b/asm/non_matchings/code/z_kankyo/func_800706A0.s
deleted file mode 100644
index b41533d05d..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800706A0.s
+++ /dev/null
@@ -1,34 +0,0 @@
-glabel func_800706A0
-/* AE7840 800706A0 3C0E0001 */ lui $t6, 1
-/* AE7844 800706A4 01C47021 */ addu $t6, $t6, $a0
-/* AE7848 800706A8 91CE0A42 */ lbu $t6, 0xa42($t6)
-/* AE784C 800706AC 3C028012 */ lui $v0, %hi(D_8011FB34) # $v0, 0x8012
-/* AE7850 800706B0 2442FB34 */ addiu $v0, %lo(D_8011FB34) # addiu $v0, $v0, -0x4cc
-/* AE7854 800706B4 55C0000B */ bnezl $t6, .L800706E4
-/* AE7858 800706B8 3C010001 */ lui $at, 1
-/* AE785C 800706BC 904F0000 */ lbu $t7, ($v0)
-/* AE7860 800706C0 3C010001 */ lui $at, 1
-/* AE7864 800706C4 00240821 */ addu $at, $at, $a0
-/* AE7868 800706C8 A02F0A43 */ sb $t7, 0xa43($at)
-/* AE786C 800706CC 90580000 */ lbu $t8, ($v0)
-/* AE7870 800706D0 3C010001 */ lui $at, 1
-/* AE7874 800706D4 00240821 */ addu $at, $at, $a0
-/* AE7878 800706D8 03E00008 */ jr $ra
-/* AE787C 800706DC A0380A44 */ sb $t8, 0xa44($at)
-
-/* AE7880 800706E0 3C010001 */ lui $at, 1
-.L800706E4:
-/* AE7884 800706E4 00240821 */ addu $at, $at, $a0
-/* AE7888 800706E8 A0200AE0 */ sb $zero, 0xae0($at)
-/* AE788C 800706EC 3C010001 */ lui $at, 1
-/* AE7890 800706F0 00240821 */ addu $at, $at, $a0
-/* AE7894 800706F4 241900FF */ li $t9, 255
-/* AE7898 800706F8 A0390AE3 */ sb $t9, 0xae3($at)
-/* AE789C 800706FC 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AE78A0 80070700 44812000 */ mtc1 $at, $f4
-/* AE78A4 80070704 3C010001 */ lui $at, 1
-/* AE78A8 80070708 00240821 */ addu $at, $at, $a0
-/* AE78AC 8007070C E4240AFC */ swc1 $f4, 0xafc($at)
-/* AE78B0 80070710 03E00008 */ jr $ra
-/* AE78B4 80070714 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80070718.s b/asm/non_matchings/code/z_kankyo/func_80070718.s
deleted file mode 100644
index b40164a2ea..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80070718.s
+++ /dev/null
@@ -1,433 +0,0 @@
-.rdata
-glabel D_8013C3D0
- .asciz "T%03d "
- .balign 4
-
-glabel D_8013C3D8
- .asciz "E%03d"
- .balign 4
-
-glabel D_8013C3E0
- .asciz "%s"
- .balign 4
-
-glabel D_8013C3E4
- .asciz "ZELDATIME "
- .balign 4
-
-glabel D_8013C3F0
- .asciz "%02d"
- .balign 4
-
-glabel D_8013C3F8
- .asciz "%s"
- .balign 4
-
-glabel D_8013C3FC
- .asciz ":"
- .balign 4
-
-glabel D_8013C400
- .asciz "%s"
- .balign 4
-
-glabel D_8013C404
- .asciz " "
- .balign 4
-
-glabel D_8013C408
- .asciz "%02d"
- .balign 4
-
-glabel D_8013C410
- .asciz "%s"
- .balign 4
-
-glabel D_8013C414
- .asciz "VRBOXTIME "
- .balign 4
-
-glabel D_8013C420
- .asciz "%02d"
- .balign 4
-
-glabel D_8013C428
- .asciz "%s"
- .balign 4
-
-glabel D_8013C42C
- .asciz ":"
- .balign 4
-
-glabel D_8013C430
- .asciz "%s"
- .balign 4
-
-glabel D_8013C434
- .asciz " "
- .balign 4
-
-glabel D_8013C438
- .asciz "%02d"
- .balign 4
-
-glabel D_8013C440
- .asciz "%s"
- .balign 4
-
-glabel D_8013C444
- .asciz "YORU"
- .balign 4
-
-glabel D_8013C44C
- .asciz "%s"
- .balign 4
-
-glabel D_8013C450
- .asciz "HIRU"
- .balign 4
-
-.text
-glabel func_80070718
-/* AE78B8 80070718 27BDFF98 */ addiu $sp, $sp, -0x68
-/* AE78BC 8007071C AFB00020 */ sw $s0, 0x20($sp)
-/* AE78C0 80070720 27B00038 */ addiu $s0, $sp, 0x38
-/* AE78C4 80070724 AFBF0024 */ sw $ra, 0x24($sp)
-/* AE78C8 80070728 AFA40068 */ sw $a0, 0x68($sp)
-/* AE78CC 8007072C AFA5006C */ sw $a1, 0x6c($sp)
-/* AE78D0 80070730 0C03EEE3 */ jal GfxPrint_Init
-/* AE78D4 80070734 02002025 */ move $a0, $s0
-/* AE78D8 80070738 8FAE006C */ lw $t6, 0x6c($sp)
-/* AE78DC 8007073C 02002025 */ move $a0, $s0
-/* AE78E0 80070740 0C03EF07 */ jal GfxPrint_Open
-/* AE78E4 80070744 8DC50000 */ lw $a1, ($t6)
-/* AE78E8 80070748 02002025 */ move $a0, $s0
-/* AE78EC 8007074C 24050016 */ li $a1, 22
-/* AE78F0 80070750 0C03ED07 */ jal GfxPrint_SetPos
-/* AE78F4 80070754 24060007 */ li $a2, 7
-/* AE78F8 80070758 240F0040 */ li $t7, 64
-/* AE78FC 8007075C AFAF0010 */ sw $t7, 0x10($sp)
-/* AE7900 80070760 02002025 */ move $a0, $s0
-/* AE7904 80070764 2405009B */ li $a1, 155
-/* AE7908 80070768 2406009B */ li $a2, 155
-/* AE790C 8007076C 0C03ECEB */ jal GfxPrint_SetColor
-/* AE7910 80070770 240700FF */ li $a3, 255
-/* AE7914 80070774 3C068016 */ lui $a2, %hi(gSaveContext+0x14) # $a2, 0x8016
-/* AE7918 80070778 3C058014 */ lui $a1, %hi(D_8013C3D0) # $a1, 0x8014
-/* AE791C 8007077C 24A5C3D0 */ addiu $a1, %lo(D_8013C3D0) # addiu $a1, $a1, -0x3c30
-/* AE7920 80070780 8CC6E674 */ lw $a2, %lo(gSaveContext+0x14)($a2)
-/* AE7924 80070784 0C03EF2D */ jal GfxPrint_Printf
-/* AE7928 80070788 02002025 */ move $a0, $s0
-/* AE792C 8007078C 3C068016 */ lui $a2, %hi(gSaveContext+0x18) # $a2, 0x8016
-/* AE7930 80070790 3C058014 */ lui $a1, %hi(D_8013C3D8) # $a1, 0x8014
-/* AE7934 80070794 24A5C3D8 */ addiu $a1, %lo(D_8013C3D8) # addiu $a1, $a1, -0x3c28
-/* AE7938 80070798 8CC6E678 */ lw $a2, %lo(gSaveContext+0x18)($a2)
-/* AE793C 8007079C 0C03EF2D */ jal GfxPrint_Printf
-/* AE7940 800707A0 02002025 */ move $a0, $s0
-/* AE7944 800707A4 24180040 */ li $t8, 64
-/* AE7948 800707A8 AFB80010 */ sw $t8, 0x10($sp)
-/* AE794C 800707AC 02002025 */ move $a0, $s0
-/* AE7950 800707B0 240500FF */ li $a1, 255
-/* AE7954 800707B4 240600FF */ li $a2, 255
-/* AE7958 800707B8 0C03ECEB */ jal GfxPrint_SetColor
-/* AE795C 800707BC 24070037 */ li $a3, 55
-/* AE7960 800707C0 02002025 */ move $a0, $s0
-/* AE7964 800707C4 24050016 */ li $a1, 22
-/* AE7968 800707C8 0C03ED07 */ jal GfxPrint_SetPos
-/* AE796C 800707CC 24060008 */ li $a2, 8
-/* AE7970 800707D0 3C058014 */ lui $a1, %hi(D_8013C3E0) # $a1, 0x8014
-/* AE7974 800707D4 3C068014 */ lui $a2, %hi(D_8013C3E4) # $a2, 0x8014
-/* AE7978 800707D8 24C6C3E4 */ addiu $a2, %lo(D_8013C3E4) # addiu $a2, $a2, -0x3c1c
-/* AE797C 800707DC 24A5C3E0 */ addiu $a1, %lo(D_8013C3E0) # addiu $a1, $a1, -0x3c20
-/* AE7980 800707E0 0C03EF2D */ jal GfxPrint_Printf
-/* AE7984 800707E4 02002025 */ move $a0, $s0
-/* AE7988 800707E8 24190040 */ li $t9, 64
-/* AE798C 800707EC AFB90010 */ sw $t9, 0x10($sp)
-/* AE7990 800707F0 02002025 */ move $a0, $s0
-/* AE7994 800707F4 240500FF */ li $a1, 255
-/* AE7998 800707F8 240600FF */ li $a2, 255
-/* AE799C 800707FC 0C03ECEB */ jal GfxPrint_SetColor
-/* AE79A0 80070800 240700FF */ li $a3, 255
-/* AE79A4 80070804 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AE79A8 80070808 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AE79AC 8007080C 3C058014 */ lui $a1, %hi(D_8013C3F0)
-/* AE79B0 80070810 24A5C3F0 */ addiu $a1, %lo(D_8013C3F0) # addiu $a1, $a1, -0x3c10
-/* AE79B4 80070814 44822000 */ mtc1 $v0, $f4
-/* AE79B8 80070818 02002025 */ move $a0, $s0
-/* AE79BC 8007081C 04410005 */ bgez $v0, .L80070834
-/* AE79C0 80070820 468021A0 */ cvt.s.w $f6, $f4
-/* AE79C4 80070824 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AE79C8 80070828 44814000 */ mtc1 $at, $f8
-/* AE79CC 8007082C 00000000 */ nop
-/* AE79D0 80070830 46083180 */ add.s $f6, $f6, $f8
-.L80070834:
-/* AE79D4 80070834 3C013CB4 */ li $at, 0x3CB40000 # 0.000000
-/* AE79D8 80070838 44815000 */ mtc1 $at, $f10
-/* AE79DC 8007083C 3C014270 */ li $at, 0x42700000 # 0.000000
-/* AE79E0 80070840 44819000 */ mtc1 $at, $f18
-/* AE79E4 80070844 460A3402 */ mul.s $f16, $f6, $f10
-/* AE79E8 80070848 24060001 */ li $a2, 1
-/* AE79EC 8007084C 46128103 */ div.s $f4, $f16, $f18
-/* AE79F0 80070850 4448F800 */ cfc1 $t0, $31
-/* AE79F4 80070854 44C6F800 */ ctc1 $a2, $31
-/* AE79F8 80070858 00000000 */ nop
-/* AE79FC 8007085C 46002224 */ cvt.w.s $f8, $f4
-/* AE7A00 80070860 4446F800 */ cfc1 $a2, $31
-/* AE7A04 80070864 00000000 */ nop
-/* AE7A08 80070868 30C60078 */ andi $a2, $a2, 0x78
-/* AE7A0C 8007086C 10C00012 */ beqz $a2, .L800708B8
-/* AE7A10 80070870 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AE7A14 80070874 44814000 */ mtc1 $at, $f8
-/* AE7A18 80070878 24060001 */ li $a2, 1
-/* AE7A1C 8007087C 46082201 */ sub.s $f8, $f4, $f8
-/* AE7A20 80070880 44C6F800 */ ctc1 $a2, $31
-/* AE7A24 80070884 00000000 */ nop
-/* AE7A28 80070888 46004224 */ cvt.w.s $f8, $f8
-/* AE7A2C 8007088C 4446F800 */ cfc1 $a2, $31
-/* AE7A30 80070890 00000000 */ nop
-/* AE7A34 80070894 30C60078 */ andi $a2, $a2, 0x78
-/* AE7A38 80070898 14C00005 */ bnez $a2, .L800708B0
-/* AE7A3C 8007089C 00000000 */ nop
-/* AE7A40 800708A0 44064000 */ mfc1 $a2, $f8
-/* AE7A44 800708A4 3C018000 */ lui $at, 0x8000
-/* AE7A48 800708A8 10000007 */ b .L800708C8
-/* AE7A4C 800708AC 00C13025 */ or $a2, $a2, $at
-.L800708B0:
-/* AE7A50 800708B0 10000005 */ b .L800708C8
-/* AE7A54 800708B4 2406FFFF */ li $a2, -1
-.L800708B8:
-/* AE7A58 800708B8 44064000 */ mfc1 $a2, $f8
-/* AE7A5C 800708BC 00000000 */ nop
-/* AE7A60 800708C0 04C0FFFB */ bltz $a2, .L800708B0
-/* AE7A64 800708C4 00000000 */ nop
-.L800708C8:
-/* AE7A68 800708C8 44C8F800 */ ctc1 $t0, $31
-/* AE7A6C 800708CC 0C03EF2D */ jal GfxPrint_Printf
-/* AE7A70 800708D0 30C600FF */ andi $a2, $a2, 0xff
-/* AE7A74 800708D4 3C098016 */ lui $t1, %hi(gSaveContext+0xc) # $t1, 0x8016
-/* AE7A78 800708D8 9529E66C */ lhu $t1, %lo(gSaveContext+0xc)($t1)
-/* AE7A7C 800708DC 312A001F */ andi $t2, $t1, 0x1f
-/* AE7A80 800708E0 29410010 */ slti $at, $t2, 0x10
-/* AE7A84 800708E4 10200007 */ beqz $at, .L80070904
-/* AE7A88 800708E8 3C0B8012 */ lui $t3, %hi(D_8011FB40) # $t3, 0x8012
-/* AE7A8C 800708EC 956BFB40 */ lhu $t3, %lo(D_8011FB40)($t3)
-/* AE7A90 800708F0 3C058014 */ lui $a1, %hi(D_8013C400) # $a1, 0x8014
-/* AE7A94 800708F4 24A5C400 */ addiu $a1, %lo(D_8013C400) # addiu $a1, $a1, -0x3c00
-/* AE7A98 800708F8 29610006 */ slti $at, $t3, 6
-/* AE7A9C 800708FC 14200009 */ bnez $at, .L80070924
-/* AE7AA0 80070900 02002025 */ move $a0, $s0
-.L80070904:
-/* AE7AA4 80070904 3C058014 */ lui $a1, %hi(D_8013C3F8) # $a1, 0x8014
-/* AE7AA8 80070908 3C068014 */ lui $a2, %hi(D_8013C3FC) # $a2, 0x8014
-/* AE7AAC 8007090C 24C6C3FC */ addiu $a2, %lo(D_8013C3FC) # addiu $a2, $a2, -0x3c04
-/* AE7AB0 80070910 24A5C3F8 */ addiu $a1, %lo(D_8013C3F8) # addiu $a1, $a1, -0x3c08
-/* AE7AB4 80070914 0C03EF2D */ jal GfxPrint_Printf
-/* AE7AB8 80070918 02002025 */ move $a0, $s0
-/* AE7ABC 8007091C 10000004 */ b .L80070930
-/* AE7AC0 80070920 00000000 */ nop
-.L80070924:
-/* AE7AC4 80070924 3C068014 */ lui $a2, %hi(D_8013C404) # $a2, 0x8014
-/* AE7AC8 80070928 0C03EF2D */ jal GfxPrint_Printf
-/* AE7ACC 8007092C 24C6C404 */ addiu $a2, %lo(D_8013C404) # addiu $a2, $a2, -0x3bfc
-.L80070930:
-/* AE7AD0 80070930 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AE7AD4 80070934 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AE7AD8 80070938 3C058014 */ lui $a1, %hi(D_8013C408)
-/* AE7ADC 8007093C 24A5C408 */ addiu $a1, %lo(D_8013C408) # addiu $a1, $a1, -0x3bf8
-/* AE7AE0 80070940 44823000 */ mtc1 $v0, $f6
-/* AE7AE4 80070944 02002025 */ move $a0, $s0
-/* AE7AE8 80070948 04410005 */ bgez $v0, .L80070960
-/* AE7AEC 8007094C 468032A0 */ cvt.s.w $f10, $f6
-/* AE7AF0 80070950 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AE7AF4 80070954 44818000 */ mtc1 $at, $f16
-/* AE7AF8 80070958 00000000 */ nop
-/* AE7AFC 8007095C 46105280 */ add.s $f10, $f10, $f16
-.L80070960:
-/* AE7B00 80070960 3C013CB4 */ li $at, 0x3CB40000 # 0.000000
-/* AE7B04 80070964 44819000 */ mtc1 $at, $f18
-/* AE7B08 80070968 2401003C */ li $at, 60
-/* AE7B0C 8007096C 46125102 */ mul.s $f4, $f10, $f18
-/* AE7B10 80070970 4600220D */ trunc.w.s $f8, $f4
-/* AE7B14 80070974 44064000 */ mfc1 $a2, $f8
-/* AE7B18 80070978 00000000 */ nop
-/* AE7B1C 8007097C 00063400 */ sll $a2, $a2, 0x10
-/* AE7B20 80070980 00063403 */ sra $a2, $a2, 0x10
-/* AE7B24 80070984 00C1001A */ div $zero, $a2, $at
-/* AE7B28 80070988 00003010 */ mfhi $a2
-/* AE7B2C 8007098C 0C03EF2D */ jal GfxPrint_Printf
-/* AE7B30 80070990 00000000 */ nop
-/* AE7B34 80070994 240D0040 */ li $t5, 64
-/* AE7B38 80070998 AFAD0010 */ sw $t5, 0x10($sp)
-/* AE7B3C 8007099C 02002025 */ move $a0, $s0
-/* AE7B40 800709A0 240500FF */ li $a1, 255
-/* AE7B44 800709A4 240600FF */ li $a2, 255
-/* AE7B48 800709A8 0C03ECEB */ jal GfxPrint_SetColor
-/* AE7B4C 800709AC 24070037 */ li $a3, 55
-/* AE7B50 800709B0 02002025 */ move $a0, $s0
-/* AE7B54 800709B4 24050016 */ li $a1, 22
-/* AE7B58 800709B8 0C03ED07 */ jal GfxPrint_SetPos
-/* AE7B5C 800709BC 24060009 */ li $a2, 9
-/* AE7B60 800709C0 3C058014 */ lui $a1, %hi(D_8013C410) # $a1, 0x8014
-/* AE7B64 800709C4 3C068014 */ lui $a2, %hi(D_8013C414) # $a2, 0x8014
-/* AE7B68 800709C8 24C6C414 */ addiu $a2, %lo(D_8013C414) # addiu $a2, $a2, -0x3bec
-/* AE7B6C 800709CC 24A5C410 */ addiu $a1, %lo(D_8013C410) # addiu $a1, $a1, -0x3bf0
-/* AE7B70 800709D0 0C03EF2D */ jal GfxPrint_Printf
-/* AE7B74 800709D4 02002025 */ move $a0, $s0
-/* AE7B78 800709D8 240E0040 */ li $t6, 64
-/* AE7B7C 800709DC AFAE0010 */ sw $t6, 0x10($sp)
-/* AE7B80 800709E0 02002025 */ move $a0, $s0
-/* AE7B84 800709E4 240500FF */ li $a1, 255
-/* AE7B88 800709E8 240600FF */ li $a2, 255
-/* AE7B8C 800709EC 0C03ECEB */ jal GfxPrint_SetColor
-/* AE7B90 800709F0 240700FF */ li $a3, 255
-/* AE7B94 800709F4 3C028016 */ lui $v0, %hi(gSaveContext+0x141a) # $v0, 0x8016
-/* AE7B98 800709F8 9442FA7A */ lhu $v0, %lo(gSaveContext+0x141a)($v0)
-/* AE7B9C 800709FC 3C058014 */ lui $a1, %hi(D_8013C420)
-/* AE7BA0 80070A00 24A5C420 */ addiu $a1, %lo(D_8013C420) # addiu $a1, $a1, -0x3be0
-/* AE7BA4 80070A04 44823000 */ mtc1 $v0, $f6
-/* AE7BA8 80070A08 02002025 */ move $a0, $s0
-/* AE7BAC 80070A0C 04410005 */ bgez $v0, .L80070A24
-/* AE7BB0 80070A10 46803420 */ cvt.s.w $f16, $f6
-/* AE7BB4 80070A14 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AE7BB8 80070A18 44815000 */ mtc1 $at, $f10
-/* AE7BBC 80070A1C 00000000 */ nop
-/* AE7BC0 80070A20 460A8400 */ add.s $f16, $f16, $f10
-.L80070A24:
-/* AE7BC4 80070A24 3C013CB4 */ li $at, 0x3CB40000 # 0.000000
-/* AE7BC8 80070A28 44819000 */ mtc1 $at, $f18
-/* AE7BCC 80070A2C 3C014270 */ li $at, 0x42700000 # 0.000000
-/* AE7BD0 80070A30 44814000 */ mtc1 $at, $f8
-/* AE7BD4 80070A34 46128102 */ mul.s $f4, $f16, $f18
-/* AE7BD8 80070A38 24060001 */ li $a2, 1
-/* AE7BDC 80070A3C 46082183 */ div.s $f6, $f4, $f8
-/* AE7BE0 80070A40 444FF800 */ cfc1 $t7, $31
-/* AE7BE4 80070A44 44C6F800 */ ctc1 $a2, $31
-/* AE7BE8 80070A48 00000000 */ nop
-/* AE7BEC 80070A4C 460032A4 */ cvt.w.s $f10, $f6
-/* AE7BF0 80070A50 4446F800 */ cfc1 $a2, $31
-/* AE7BF4 80070A54 00000000 */ nop
-/* AE7BF8 80070A58 30C60078 */ andi $a2, $a2, 0x78
-/* AE7BFC 80070A5C 10C00012 */ beqz $a2, .L80070AA8
-/* AE7C00 80070A60 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AE7C04 80070A64 44815000 */ mtc1 $at, $f10
-/* AE7C08 80070A68 24060001 */ li $a2, 1
-/* AE7C0C 80070A6C 460A3281 */ sub.s $f10, $f6, $f10
-/* AE7C10 80070A70 44C6F800 */ ctc1 $a2, $31
-/* AE7C14 80070A74 00000000 */ nop
-/* AE7C18 80070A78 460052A4 */ cvt.w.s $f10, $f10
-/* AE7C1C 80070A7C 4446F800 */ cfc1 $a2, $31
-/* AE7C20 80070A80 00000000 */ nop
-/* AE7C24 80070A84 30C60078 */ andi $a2, $a2, 0x78
-/* AE7C28 80070A88 14C00005 */ bnez $a2, .L80070AA0
-/* AE7C2C 80070A8C 00000000 */ nop
-/* AE7C30 80070A90 44065000 */ mfc1 $a2, $f10
-/* AE7C34 80070A94 3C018000 */ lui $at, 0x8000
-/* AE7C38 80070A98 10000007 */ b .L80070AB8
-/* AE7C3C 80070A9C 00C13025 */ or $a2, $a2, $at
-.L80070AA0:
-/* AE7C40 80070AA0 10000005 */ b .L80070AB8
-/* AE7C44 80070AA4 2406FFFF */ li $a2, -1
-.L80070AA8:
-/* AE7C48 80070AA8 44065000 */ mfc1 $a2, $f10
-/* AE7C4C 80070AAC 00000000 */ nop
-/* AE7C50 80070AB0 04C0FFFB */ bltz $a2, .L80070AA0
-/* AE7C54 80070AB4 00000000 */ nop
-.L80070AB8:
-/* AE7C58 80070AB8 44CFF800 */ ctc1 $t7, $31
-/* AE7C5C 80070ABC 0C03EF2D */ jal GfxPrint_Printf
-/* AE7C60 80070AC0 30C600FF */ andi $a2, $a2, 0xff
-/* AE7C64 80070AC4 3C188016 */ lui $t8, %hi(gSaveContext+0x141a) # $t8, 0x8016
-/* AE7C68 80070AC8 9718FA7A */ lhu $t8, %lo(gSaveContext+0x141a)($t8)
-/* AE7C6C 80070ACC 3C088012 */ lui $t0, %hi(D_8011FB40) # $t0, 0x8012
-/* AE7C70 80070AD0 02002025 */ move $a0, $s0
-/* AE7C74 80070AD4 3319001F */ andi $t9, $t8, 0x1f
-/* AE7C78 80070AD8 2B210010 */ slti $at, $t9, 0x10
-/* AE7C7C 80070ADC 10200007 */ beqz $at, .L80070AFC
-/* AE7C80 80070AE0 3C058014 */ lui $a1, %hi(D_8013C428) # $a1, 0x8014
-/* AE7C84 80070AE4 9508FB40 */ lhu $t0, %lo(D_8011FB40)($t0)
-/* AE7C88 80070AE8 3C068014 */ lui $a2, %hi(D_8013C434) # $a2, 0x8014
-/* AE7C8C 80070AEC 24C6C434 */ addiu $a2, %lo(D_8013C434) # addiu $a2, $a2, -0x3bcc
-/* AE7C90 80070AF0 29010006 */ slti $at, $t0, 6
-/* AE7C94 80070AF4 14200007 */ bnez $at, .L80070B14
-/* AE7C98 80070AF8 00000000 */ nop
-.L80070AFC:
-/* AE7C9C 80070AFC 3C068014 */ lui $a2, %hi(D_8013C42C) # $a2, 0x8014
-/* AE7CA0 80070B00 24C6C42C */ addiu $a2, %lo(D_8013C42C) # addiu $a2, $a2, -0x3bd4
-/* AE7CA4 80070B04 0C03EF2D */ jal GfxPrint_Printf
-/* AE7CA8 80070B08 24A5C428 */ addiu $a1, %lo(D_8013C428) # addiu $a1, $a1, -0x3bd8
-/* AE7CAC 80070B0C 10000005 */ b .L80070B24
-/* AE7CB0 80070B10 00000000 */ nop
-.L80070B14:
-/* AE7CB4 80070B14 3C058014 */ lui $a1, %hi(D_8013C430) # $a1, 0x8014
-/* AE7CB8 80070B18 24A5C430 */ addiu $a1, %lo(D_8013C430) # addiu $a1, $a1, -0x3bd0
-/* AE7CBC 80070B1C 0C03EF2D */ jal GfxPrint_Printf
-/* AE7CC0 80070B20 02002025 */ move $a0, $s0
-.L80070B24:
-/* AE7CC4 80070B24 3C028016 */ lui $v0, %hi(gSaveContext+0x141a) # $v0, 0x8016
-/* AE7CC8 80070B28 9442FA7A */ lhu $v0, %lo(gSaveContext+0x141a)($v0)
-/* AE7CCC 80070B2C 3C058014 */ lui $a1, %hi(D_8013C438)
-/* AE7CD0 80070B30 24A5C438 */ addiu $a1, %lo(D_8013C438) # addiu $a1, $a1, -0x3bc8
-/* AE7CD4 80070B34 44828000 */ mtc1 $v0, $f16
-/* AE7CD8 80070B38 02002025 */ move $a0, $s0
-/* AE7CDC 80070B3C 04410005 */ bgez $v0, .L80070B54
-/* AE7CE0 80070B40 468084A0 */ cvt.s.w $f18, $f16
-/* AE7CE4 80070B44 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AE7CE8 80070B48 44812000 */ mtc1 $at, $f4
-/* AE7CEC 80070B4C 00000000 */ nop
-/* AE7CF0 80070B50 46049480 */ add.s $f18, $f18, $f4
-.L80070B54:
-/* AE7CF4 80070B54 3C013CB4 */ li $at, 0x3CB40000 # 0.000000
-/* AE7CF8 80070B58 44814000 */ mtc1 $at, $f8
-/* AE7CFC 80070B5C 2401003C */ li $at, 60
-/* AE7D00 80070B60 46089182 */ mul.s $f6, $f18, $f8
-/* AE7D04 80070B64 4600328D */ trunc.w.s $f10, $f6
-/* AE7D08 80070B68 44065000 */ mfc1 $a2, $f10
-/* AE7D0C 80070B6C 00000000 */ nop
-/* AE7D10 80070B70 00063400 */ sll $a2, $a2, 0x10
-/* AE7D14 80070B74 00063403 */ sra $a2, $a2, 0x10
-/* AE7D18 80070B78 00C1001A */ div $zero, $a2, $at
-/* AE7D1C 80070B7C 00003010 */ mfhi $a2
-/* AE7D20 80070B80 0C03EF2D */ jal GfxPrint_Printf
-/* AE7D24 80070B84 00000000 */ nop
-/* AE7D28 80070B88 240A0040 */ li $t2, 64
-/* AE7D2C 80070B8C AFAA0010 */ sw $t2, 0x10($sp)
-/* AE7D30 80070B90 02002025 */ move $a0, $s0
-/* AE7D34 80070B94 24050037 */ li $a1, 55
-/* AE7D38 80070B98 240600FF */ li $a2, 255
-/* AE7D3C 80070B9C 0C03ECEB */ jal GfxPrint_SetColor
-/* AE7D40 80070BA0 240700FF */ li $a3, 255
-/* AE7D44 80070BA4 02002025 */ move $a0, $s0
-/* AE7D48 80070BA8 24050016 */ li $a1, 22
-/* AE7D4C 80070BAC 0C03ED07 */ jal GfxPrint_SetPos
-/* AE7D50 80070BB0 24060006 */ li $a2, 6
-/* AE7D54 80070BB4 3C0B8016 */ lui $t3, %hi(gSaveContext+0x10) # $t3, 0x8016
-/* AE7D58 80070BB8 8D6BE670 */ lw $t3, %lo(gSaveContext+0x10)($t3)
-/* AE7D5C 80070BBC 3C058014 */ lui $a1, %hi(D_8013C44C) # $a1, 0x8014
-/* AE7D60 80070BC0 24A5C44C */ addiu $a1, %lo(D_8013C44C) # addiu $a1, $a1, -0x3bb4
-/* AE7D64 80070BC4 11600009 */ beqz $t3, .L80070BEC
-/* AE7D68 80070BC8 02002025 */ move $a0, $s0
-/* AE7D6C 80070BCC 3C058014 */ lui $a1, %hi(D_8013C440) # $a1, 0x8014
-/* AE7D70 80070BD0 3C068014 */ lui $a2, %hi(D_8013C444) # $a2, 0x8014
-/* AE7D74 80070BD4 24C6C444 */ addiu $a2, %lo(D_8013C444) # addiu $a2, $a2, -0x3bbc
-/* AE7D78 80070BD8 24A5C440 */ addiu $a1, %lo(D_8013C440) # addiu $a1, $a1, -0x3bc0
-/* AE7D7C 80070BDC 0C03EF2D */ jal GfxPrint_Printf
-/* AE7D80 80070BE0 02002025 */ move $a0, $s0
-/* AE7D84 80070BE4 10000004 */ b .L80070BF8
-/* AE7D88 80070BE8 00000000 */ nop
-.L80070BEC:
-/* AE7D8C 80070BEC 3C068014 */ lui $a2, %hi(D_8013C450) # $a2, 0x8014
-/* AE7D90 80070BF0 0C03EF2D */ jal GfxPrint_Printf
-/* AE7D94 80070BF4 24C6C450 */ addiu $a2, %lo(D_8013C450) # addiu $a2, $a2, -0x3bb0
-.L80070BF8:
-/* AE7D98 80070BF8 0C03EF19 */ jal GfxPrint_Close
-/* AE7D9C 80070BFC 02002025 */ move $a0, $s0
-/* AE7DA0 80070C00 8FAC006C */ lw $t4, 0x6c($sp)
-/* AE7DA4 80070C04 02002025 */ move $a0, $s0
-/* AE7DA8 80070C08 0C03EF05 */ jal GfxPrint_Destroy
-/* AE7DAC 80070C0C AD820000 */ sw $v0, ($t4)
-/* AE7DB0 80070C10 8FBF0024 */ lw $ra, 0x24($sp)
-/* AE7DB4 80070C14 8FB00020 */ lw $s0, 0x20($sp)
-/* AE7DB8 80070C18 27BD0068 */ addiu $sp, $sp, 0x68
-/* AE7DBC 80070C1C 03E00008 */ jr $ra
-/* AE7DC0 80070C20 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800730DC.s b/asm/non_matchings/code/z_kankyo/func_800730DC.s
deleted file mode 100644
index 820b014715..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800730DC.s
+++ /dev/null
@@ -1,610 +0,0 @@
-.rdata
-glabel D_8013C55C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C56C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C57C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C58C
- .asciz "../z_kankyo.c"
- .balign 4
-
-.late_rodata
-glabel D_8013C7AC
- .float 0.8
-
-glabel D_8013C7B0
- .float 0.8
-
-glabel D_8013C7B4
- .float 0.8
-
-.text
-glabel func_800730DC
-/* AEA27C 800730DC 27BDFF78 */ addiu $sp, $sp, -0x88
-/* AEA280 800730E0 AFBF0024 */ sw $ra, 0x24($sp)
-/* AEA284 800730E4 AFB10020 */ sw $s1, 0x20($sp)
-/* AEA288 800730E8 AFB0001C */ sw $s0, 0x1c($sp)
-/* AEA28C 800730EC 8C850000 */ lw $a1, ($a0)
-/* AEA290 800730F0 00808825 */ move $s1, $a0
-/* AEA294 800730F4 3C068014 */ lui $a2, %hi(D_8013C55C) # $a2, 0x8014
-/* AEA298 800730F8 24C6C55C */ addiu $a2, %lo(D_8013C55C) # addiu $a2, $a2, -0x3aa4
-/* AEA29C 800730FC 27A40060 */ addiu $a0, $sp, 0x60
-/* AEA2A0 80073100 240708DA */ li $a3, 2266
-/* AEA2A4 80073104 0C031AB1 */ jal Graph_OpenDisps
-/* AEA2A8 80073108 00A08025 */ move $s0, $a1
-/* AEA2AC 8007310C 922E1D6C */ lbu $t6, 0x1d6c($s1)
-/* AEA2B0 80073110 3C028016 */ lui $v0, %hi(gSaveContext+0xc)
-/* AEA2B4 80073114 11C0004C */ beqz $t6, .L80073248
-/* AEA2B8 80073118 00000000 */ nop
-/* AEA2BC 8007311C 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AEA2C0 80073120 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEA2C4 80073124 24018000 */ li $at, -32768
-/* AEA2C8 80073128 00412021 */ addu $a0, $v0, $at
-/* AEA2CC 8007312C 00042400 */ sll $a0, $a0, 0x10
-/* AEA2D0 80073130 0C01DE1C */ jal Math_SinS
-/* AEA2D4 80073134 00042403 */ sra $a0, $a0, 0x10
-/* AEA2D8 80073138 3C018014 */ lui $at, %hi(D_8013C7AC)
-/* AEA2DC 8007313C C422C7AC */ lwc1 $f2, %lo(D_8013C7AC)($at)
-/* AEA2E0 80073140 3C010001 */ lui $at, (0x00010A28 >> 16) # lui $at, 1
-/* AEA2E4 80073144 34210A28 */ ori $at, (0x00010A28 & 0xFFFF) # ori $at, $at, 0xa28
-/* AEA2E8 80073148 02212021 */ addu $a0, $s1, $at
-/* AEA2EC 8007314C 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AEA2F0 80073150 44812000 */ mtc1 $at, $f4
-/* AEA2F4 80073154 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA2F8 80073158 44815000 */ mtc1 $at, $f10
-/* AEA2FC 8007315C 46040182 */ mul.s $f6, $f0, $f4
-/* AEA300 80073160 44071000 */ mfc1 $a3, $f2
-/* AEA304 80073164 3C063F80 */ lui $a2, 0x3f80
-/* AEA308 80073168 E7A20010 */ swc1 $f2, 0x10($sp)
-/* AEA30C 8007316C 46003207 */ neg.s $f8, $f6
-/* AEA310 80073170 460A4102 */ mul.s $f4, $f8, $f10
-/* AEA314 80073174 44052000 */ mfc1 $a1, $f4
-/* AEA318 80073178 0C01E0C4 */ jal Math_SmoothStepToF
-/* AEA31C 8007317C 00000000 */ nop
-/* AEA320 80073180 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AEA324 80073184 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEA328 80073188 24018000 */ li $at, -32768
-/* AEA32C 8007318C 00412021 */ addu $a0, $v0, $at
-/* AEA330 80073190 00042400 */ sll $a0, $a0, 0x10
-/* AEA334 80073194 0C01DE0D */ jal Math_CosS
-/* AEA338 80073198 00042403 */ sra $a0, $a0, 0x10
-/* AEA33C 8007319C 3C018014 */ lui $at, %hi(D_8013C7B0)
-/* AEA340 800731A0 C422C7B0 */ lwc1 $f2, %lo(D_8013C7B0)($at)
-/* AEA344 800731A4 3C010001 */ lui $at, (0x00010A2C >> 16) # lui $at, 1
-/* AEA348 800731A8 34210A2C */ ori $at, (0x00010A2C & 0xFFFF) # ori $at, $at, 0xa2c
-/* AEA34C 800731AC 02212021 */ addu $a0, $s1, $at
-/* AEA350 800731B0 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AEA354 800731B4 44813000 */ mtc1 $at, $f6
-/* AEA358 800731B8 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA35C 800731BC 44815000 */ mtc1 $at, $f10
-/* AEA360 800731C0 46060202 */ mul.s $f8, $f0, $f6
-/* AEA364 800731C4 44071000 */ mfc1 $a3, $f2
-/* AEA368 800731C8 AFA40030 */ sw $a0, 0x30($sp)
-/* AEA36C 800731CC 3C063F80 */ lui $a2, 0x3f80
-/* AEA370 800731D0 E7A20010 */ swc1 $f2, 0x10($sp)
-/* AEA374 800731D4 460A4102 */ mul.s $f4, $f8, $f10
-/* AEA378 800731D8 44052000 */ mfc1 $a1, $f4
-/* AEA37C 800731DC 0C01E0C4 */ jal Math_SmoothStepToF
-/* AEA380 800731E0 00000000 */ nop
-/* AEA384 800731E4 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AEA388 800731E8 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEA38C 800731EC 24018000 */ li $at, -32768
-/* AEA390 800731F0 00412021 */ addu $a0, $v0, $at
-/* AEA394 800731F4 00042400 */ sll $a0, $a0, 0x10
-/* AEA398 800731F8 0C01DE0D */ jal Math_CosS
-/* AEA39C 800731FC 00042403 */ sra $a0, $a0, 0x10
-/* AEA3A0 80073200 3C0141A0 */ li $at, 0x41A00000 # 0.000000
-/* AEA3A4 80073204 44813000 */ mtc1 $at, $f6
-/* AEA3A8 80073208 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA3AC 8007320C 44815000 */ mtc1 $at, $f10
-/* AEA3B0 80073210 46060202 */ mul.s $f8, $f0, $f6
-/* AEA3B4 80073214 3C018014 */ lui $at, %hi(D_8013C7B4)
-/* AEA3B8 80073218 C426C7B4 */ lwc1 $f6, %lo(D_8013C7B4)($at)
-/* AEA3BC 8007321C 3C073F4C */ lui $a3, (0x3F4CCCCD >> 16) # lui $a3, 0x3f4c
-/* AEA3C0 80073220 34E7CCCD */ ori $a3, (0x3F4CCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
-/* AEA3C4 80073224 8FA40030 */ lw $a0, 0x30($sp)
-/* AEA3C8 80073228 3C063F80 */ lui $a2, 0x3f80
-/* AEA3CC 8007322C 460A4102 */ mul.s $f4, $f8, $f10
-/* AEA3D0 80073230 E7A60010 */ swc1 $f6, 0x10($sp)
-/* AEA3D4 80073234 44052000 */ mfc1 $a1, $f4
-/* AEA3D8 80073238 0C01E0C4 */ jal Math_SmoothStepToF
-/* AEA3DC 8007323C 00000000 */ nop
-/* AEA3E0 80073240 10000031 */ b .L80073308
-/* AEA3E4 80073244 00000000 */ nop
-.L80073248:
-/* AEA3E8 80073248 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEA3EC 8007324C 24018000 */ li $at, -32768
-/* AEA3F0 80073250 00412021 */ addu $a0, $v0, $at
-/* AEA3F4 80073254 00042400 */ sll $a0, $a0, 0x10
-/* AEA3F8 80073258 0C01DE1C */ jal Math_SinS
-/* AEA3FC 8007325C 00042403 */ sra $a0, $a0, 0x10
-/* AEA400 80073260 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AEA404 80073264 44814000 */ mtc1 $at, $f8
-/* AEA408 80073268 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA40C 8007326C 44813000 */ mtc1 $at, $f6
-/* AEA410 80073270 46080282 */ mul.s $f10, $f0, $f8
-/* AEA414 80073274 3C010001 */ lui $at, 1
-/* AEA418 80073278 00310821 */ addu $at, $at, $s1
-/* AEA41C 8007327C 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AEA420 80073280 46005107 */ neg.s $f4, $f10
-/* AEA424 80073284 46062202 */ mul.s $f8, $f4, $f6
-/* AEA428 80073288 E4280A28 */ swc1 $f8, 0xa28($at)
-/* AEA42C 8007328C 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEA430 80073290 24018000 */ li $at, -32768
-/* AEA434 80073294 00412021 */ addu $a0, $v0, $at
-/* AEA438 80073298 00042400 */ sll $a0, $a0, 0x10
-/* AEA43C 8007329C 0C01DE0D */ jal Math_CosS
-/* AEA440 800732A0 00042403 */ sra $a0, $a0, 0x10
-/* AEA444 800732A4 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AEA448 800732A8 44815000 */ mtc1 $at, $f10
-/* AEA44C 800732AC 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA450 800732B0 44813000 */ mtc1 $at, $f6
-/* AEA454 800732B4 460A0102 */ mul.s $f4, $f0, $f10
-/* AEA458 800732B8 3C010001 */ lui $at, 1
-/* AEA45C 800732BC 00310821 */ addu $at, $at, $s1
-/* AEA460 800732C0 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AEA464 800732C4 46062202 */ mul.s $f8, $f4, $f6
-/* AEA468 800732C8 E4280A2C */ swc1 $f8, 0xa2c($at)
-/* AEA46C 800732CC 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEA470 800732D0 24018000 */ li $at, -32768
-/* AEA474 800732D4 00412021 */ addu $a0, $v0, $at
-/* AEA478 800732D8 00042400 */ sll $a0, $a0, 0x10
-/* AEA47C 800732DC 0C01DE0D */ jal Math_CosS
-/* AEA480 800732E0 00042403 */ sra $a0, $a0, 0x10
-/* AEA484 800732E4 3C0141A0 */ li $at, 0x41A00000 # 0.000000
-/* AEA488 800732E8 44815000 */ mtc1 $at, $f10
-/* AEA48C 800732EC 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA490 800732F0 44813000 */ mtc1 $at, $f6
-/* AEA494 800732F4 460A0102 */ mul.s $f4, $f0, $f10
-/* AEA498 800732F8 3C010001 */ lui $at, 1
-/* AEA49C 800732FC 00310821 */ addu $at, $at, $s1
-/* AEA4A0 80073300 46062202 */ mul.s $f8, $f4, $f6
-/* AEA4A4 80073304 E4280A30 */ swc1 $f8, 0xa30($at)
-.L80073308:
-/* AEA4A8 80073308 3C028016 */ lui $v0, %hi(gSaveContext) # $v0, 0x8016
-/* AEA4AC 8007330C 2442E660 */ addiu $v0, %lo(gSaveContext) # addiu $v0, $v0, -0x19a0
-/* AEA4B0 80073310 8C4F0000 */ lw $t7, ($v0)
-/* AEA4B4 80073314 240100CD */ li $at, 205
-/* AEA4B8 80073318 55E10006 */ bnel $t7, $at, .L80073334
-/* AEA4BC 8007331C C63200E8 */ lwc1 $f18, 0xe8($s1)
-/* AEA4C0 80073320 8C581360 */ lw $t8, 0x1360($v0)
-/* AEA4C4 80073324 24010005 */ li $at, 5
-/* AEA4C8 80073328 1301018C */ beq $t8, $at, .L8007395C
-/* AEA4CC 8007332C 00000000 */ nop
-/* AEA4D0 80073330 C63200E8 */ lwc1 $f18, 0xe8($s1)
-.L80073334:
-/* AEA4D4 80073334 C63000E0 */ lwc1 $f16, 0xe0($s1)
-/* AEA4D8 80073338 C62A00E4 */ lwc1 $f10, 0xe4($s1)
-/* AEA4DC 8007333C 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEA4E0 80073340 02214021 */ addu $t0, $s1, $at
-/* AEA4E4 80073344 C5080A30 */ lwc1 $f8, 0xa30($t0)
-/* AEA4E8 80073348 C5060A28 */ lwc1 $f6, 0xa28($t0)
-/* AEA4EC 8007334C C5040A2C */ lwc1 $f4, 0xa2c($t0)
-/* AEA4F0 80073350 46089200 */ add.s $f8, $f18, $f8
-/* AEA4F4 80073354 00003825 */ move $a3, $zero
-/* AEA4F8 80073358 AFA80030 */ sw $t0, 0x30($sp)
-/* AEA4FC 8007335C 46068300 */ add.s $f12, $f16, $f6
-/* AEA500 80073360 44064000 */ mfc1 $a2, $f8
-/* AEA504 80073364 0C034261 */ jal Matrix_Translate
-/* AEA508 80073368 46045380 */ add.s $f14, $f10, $f4
-/* AEA50C 8007336C 8FA80030 */ lw $t0, 0x30($sp)
-/* AEA510 80073370 3C01437F */ li $at, 0x437F0000 # 0.000000
-/* AEA514 80073374 44818000 */ mtc1 $at, $f16
-/* AEA518 80073378 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA51C 8007337C 44815000 */ mtc1 $at, $f10
-/* AEA520 80073380 C5080A2C */ lwc1 $f8, 0xa2c($t0)
-/* AEA524 80073384 3C0142A0 */ li $at, 0x42A00000 # 0.000000
-/* AEA528 80073388 44809000 */ mtc1 $zero, $f18
-/* AEA52C 8007338C 460A4103 */ div.s $f4, $f8, $f10
-/* AEA530 80073390 44814000 */ mtc1 $at, $f8
-/* AEA534 80073394 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEA538 80073398 44815000 */ mtc1 $at, $f10
-/* AEA53C 8007339C E7A4007C */ swc1 $f4, 0x7c($sp)
-/* AEA540 800733A0 C7A6007C */ lwc1 $f6, 0x7c($sp)
-/* AEA544 800733A4 46083083 */ div.s $f2, $f6, $f8
-/* AEA548 800733A8 46101302 */ mul.s $f12, $f2, $f16
-/* AEA54C 800733AC 4612603C */ c.lt.s $f12, $f18
-/* AEA550 800733B0 00000000 */ nop
-/* AEA554 800733B4 45020003 */ bc1fl .L800733C4
-/* AEA558 800733B8 460C803C */ c.lt.s $f16, $f12
-/* AEA55C 800733BC 46009306 */ mov.s $f12, $f18
-/* AEA560 800733C0 460C803C */ c.lt.s $f16, $f12
-.L800733C4:
-/* AEA564 800733C4 00000000 */ nop
-/* AEA568 800733C8 45020003 */ bc1fl .L800733D8
-/* AEA56C 800733CC 4612103C */ c.lt.s $f2, $f18
-/* AEA570 800733D0 46008306 */ mov.s $f12, $f16
-/* AEA574 800733D4 4612103C */ c.lt.s $f2, $f18
-.L800733D8:
-/* AEA578 800733D8 46001006 */ mov.s $f0, $f2
-/* AEA57C 800733DC 460C8301 */ sub.s $f12, $f16, $f12
-/* AEA580 800733E0 45020003 */ bc1fl .L800733F0
-/* AEA584 800733E4 4600503C */ c.lt.s $f10, $f0
-/* AEA588 800733E8 46009006 */ mov.s $f0, $f18
-/* AEA58C 800733EC 4600503C */ c.lt.s $f10, $f0
-.L800733F0:
-/* AEA590 800733F0 00000000 */ nop
-/* AEA594 800733F4 45000003 */ bc1f .L80073404
-/* AEA598 800733F8 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEA59C 800733FC 44810000 */ mtc1 $at, $f0
-/* AEA5A0 80073400 00000000 */ nop
-.L80073404:
-/* AEA5A4 80073404 3C014296 */ li $at, 0x42960000 # 0.000000
-/* AEA5A8 80073408 44812000 */ mtc1 $at, $f4
-/* AEA5AC 8007340C 240B0001 */ li $t3, 1
-/* AEA5B0 80073410 8E0302C0 */ lw $v1, 0x2c0($s0)
-/* AEA5B4 80073414 46040182 */ mul.s $f6, $f0, $f4
-/* AEA5B8 80073418 3C09FA00 */ lui $t1, 0xfa00
-/* AEA5BC 8007341C 24790008 */ addiu $t9, $v1, 8
-/* AEA5C0 80073420 AE1902C0 */ sw $t9, 0x2c0($s0)
-/* AEA5C4 80073424 3C05FF00 */ lui $a1, 0xff00
-/* AEA5C8 80073428 AC690000 */ sw $t1, ($v1)
-/* AEA5CC 8007342C 444AF800 */ cfc1 $t2, $31
-/* AEA5D0 80073430 44CBF800 */ ctc1 $t3, $31
-/* AEA5D4 80073434 00000000 */ nop
-/* AEA5D8 80073438 46003224 */ cvt.w.s $f8, $f6
-/* AEA5DC 8007343C 444BF800 */ cfc1 $t3, $31
-/* AEA5E0 80073440 00000000 */ nop
-/* AEA5E4 80073444 316B0078 */ andi $t3, $t3, 0x78
-/* AEA5E8 80073448 11600012 */ beqz $t3, .L80073494
-/* AEA5EC 8007344C 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEA5F0 80073450 44814000 */ mtc1 $at, $f8
-/* AEA5F4 80073454 240B0001 */ li $t3, 1
-/* AEA5F8 80073458 46083201 */ sub.s $f8, $f6, $f8
-/* AEA5FC 8007345C 44CBF800 */ ctc1 $t3, $31
-/* AEA600 80073460 00000000 */ nop
-/* AEA604 80073464 46004224 */ cvt.w.s $f8, $f8
-/* AEA608 80073468 444BF800 */ cfc1 $t3, $31
-/* AEA60C 8007346C 00000000 */ nop
-/* AEA610 80073470 316B0078 */ andi $t3, $t3, 0x78
-/* AEA614 80073474 15600005 */ bnez $t3, .L8007348C
-/* AEA618 80073478 00000000 */ nop
-/* AEA61C 8007347C 440B4000 */ mfc1 $t3, $f8
-/* AEA620 80073480 3C018000 */ lui $at, 0x8000
-/* AEA624 80073484 10000007 */ b .L800734A4
-/* AEA628 80073488 01615825 */ or $t3, $t3, $at
-.L8007348C:
-/* AEA62C 8007348C 10000005 */ b .L800734A4
-/* AEA630 80073490 240BFFFF */ li $t3, -1
-.L80073494:
-/* AEA634 80073494 440B4000 */ mfc1 $t3, $f8
-/* AEA638 80073498 00000000 */ nop
-/* AEA63C 8007349C 0560FFFB */ bltz $t3, .L8007348C
-/* AEA640 800734A0 00000000 */ nop
-.L800734A4:
-/* AEA644 800734A4 3C01431B */ li $at, 0x431B0000 # 0.000000
-/* AEA648 800734A8 44CAF800 */ ctc1 $t2, $31
-/* AEA64C 800734AC 44815000 */ mtc1 $at, $f10
-/* AEA650 800734B0 24090001 */ li $t1, 1
-/* AEA654 800734B4 256D00B4 */ addiu $t5, $t3, 0xb4
-/* AEA658 800734B8 460A0102 */ mul.s $f4, $f0, $f10
-/* AEA65C 800734BC 31AE00FF */ andi $t6, $t5, 0xff
-/* AEA660 800734C0 000E7C00 */ sll $t7, $t6, 0x10
-/* AEA664 800734C4 01E5C025 */ or $t8, $t7, $a1
-/* AEA668 800734C8 4459F800 */ cfc1 $t9, $31
-/* AEA66C 800734CC 44C9F800 */ ctc1 $t1, $31
-/* AEA670 800734D0 00000000 */ nop
-/* AEA674 800734D4 460021A4 */ cvt.w.s $f6, $f4
-/* AEA678 800734D8 4449F800 */ cfc1 $t1, $31
-/* AEA67C 800734DC 00000000 */ nop
-/* AEA680 800734E0 31290078 */ andi $t1, $t1, 0x78
-/* AEA684 800734E4 11200012 */ beqz $t1, .L80073530
-/* AEA688 800734E8 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEA68C 800734EC 44813000 */ mtc1 $at, $f6
-/* AEA690 800734F0 24090001 */ li $t1, 1
-/* AEA694 800734F4 46062181 */ sub.s $f6, $f4, $f6
-/* AEA698 800734F8 44C9F800 */ ctc1 $t1, $31
-/* AEA69C 800734FC 00000000 */ nop
-/* AEA6A0 80073500 460031A4 */ cvt.w.s $f6, $f6
-/* AEA6A4 80073504 4449F800 */ cfc1 $t1, $31
-/* AEA6A8 80073508 00000000 */ nop
-/* AEA6AC 8007350C 31290078 */ andi $t1, $t1, 0x78
-/* AEA6B0 80073510 15200005 */ bnez $t1, .L80073528
-/* AEA6B4 80073514 00000000 */ nop
-/* AEA6B8 80073518 44093000 */ mfc1 $t1, $f6
-/* AEA6BC 8007351C 3C018000 */ lui $at, 0x8000
-/* AEA6C0 80073520 10000007 */ b .L80073540
-/* AEA6C4 80073524 01214825 */ or $t1, $t1, $at
-.L80073528:
-/* AEA6C8 80073528 10000005 */ b .L80073540
-/* AEA6CC 8007352C 2409FFFF */ li $t1, -1
-.L80073530:
-/* AEA6D0 80073530 44093000 */ mfc1 $t1, $f6
-/* AEA6D4 80073534 00000000 */ nop
-/* AEA6D8 80073538 0520FFFB */ bltz $t1, .L80073528
-/* AEA6DC 8007353C 00000000 */ nop
-.L80073540:
-/* AEA6E0 80073540 44D9F800 */ ctc1 $t9, $31
-/* AEA6E4 80073544 01205025 */ move $t2, $t1
-/* AEA6E8 80073548 254B0064 */ addiu $t3, $t2, 0x64
-/* AEA6EC 8007354C 46100202 */ mul.s $f8, $f0, $f16
-/* AEA6F0 80073550 24040001 */ li $a0, 1
-/* AEA6F4 80073554 316C00FF */ andi $t4, $t3, 0xff
-/* AEA6F8 80073558 000C6A00 */ sll $t5, $t4, 8
-/* AEA6FC 8007355C 030D7025 */ or $t6, $t8, $t5
-/* AEA700 80073560 35CF00FF */ ori $t7, $t6, 0xff
-/* AEA704 80073564 AC6F0004 */ sw $t7, 4($v1)
-/* AEA708 80073568 444AF800 */ cfc1 $t2, $31
-/* AEA70C 8007356C 44C4F800 */ ctc1 $a0, $31
-/* AEA710 80073570 8E0302C0 */ lw $v1, 0x2c0($s0)
-/* AEA714 80073574 3C09FB00 */ lui $t1, 0xfb00
-/* AEA718 80073578 460042A4 */ cvt.w.s $f10, $f8
-/* AEA71C 8007357C 24790008 */ addiu $t9, $v1, 8
-/* AEA720 80073580 AE1902C0 */ sw $t9, 0x2c0($s0)
-/* AEA724 80073584 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEA728 80073588 4444F800 */ cfc1 $a0, $31
-/* AEA72C 8007358C AC690000 */ sw $t1, ($v1)
-/* AEA730 80073590 30840078 */ andi $a0, $a0, 0x78
-/* AEA734 80073594 50800013 */ beql $a0, $zero, .L800735E4
-/* AEA738 80073598 44045000 */ mfc1 $a0, $f10
-/* AEA73C 8007359C 44815000 */ mtc1 $at, $f10
-/* AEA740 800735A0 24040001 */ li $a0, 1
-/* AEA744 800735A4 460A4281 */ sub.s $f10, $f8, $f10
-/* AEA748 800735A8 44C4F800 */ ctc1 $a0, $31
-/* AEA74C 800735AC 00000000 */ nop
-/* AEA750 800735B0 460052A4 */ cvt.w.s $f10, $f10
-/* AEA754 800735B4 4444F800 */ cfc1 $a0, $31
-/* AEA758 800735B8 00000000 */ nop
-/* AEA75C 800735BC 30840078 */ andi $a0, $a0, 0x78
-/* AEA760 800735C0 14800005 */ bnez $a0, .L800735D8
-/* AEA764 800735C4 00000000 */ nop
-/* AEA768 800735C8 44045000 */ mfc1 $a0, $f10
-/* AEA76C 800735CC 3C018000 */ lui $at, 0x8000
-/* AEA770 800735D0 10000007 */ b .L800735F0
-/* AEA774 800735D4 00812025 */ or $a0, $a0, $at
-.L800735D8:
-/* AEA778 800735D8 10000005 */ b .L800735F0
-/* AEA77C 800735DC 2404FFFF */ li $a0, -1
-/* AEA780 800735E0 44045000 */ mfc1 $a0, $f10
-.L800735E4:
-/* AEA784 800735E4 00000000 */ nop
-/* AEA788 800735E8 0480FFFB */ bltz $a0, .L800735D8
-/* AEA78C 800735EC 00000000 */ nop
-.L800735F0:
-/* AEA790 800735F0 44CAF800 */ ctc1 $t2, $31
-/* AEA794 800735F4 240F0001 */ li $t7, 1
-/* AEA798 800735F8 308400FF */ andi $a0, $a0, 0xff
-/* AEA79C 800735FC 00045C00 */ sll $t3, $a0, 0x10
-/* AEA7A0 80073600 444EF800 */ cfc1 $t6, $31
-/* AEA7A4 80073604 44CFF800 */ ctc1 $t7, $31
-/* AEA7A8 80073608 01656025 */ or $t4, $t3, $a1
-/* AEA7AC 8007360C 0004C200 */ sll $t8, $a0, 8
-/* AEA7B0 80073610 46006124 */ cvt.w.s $f4, $f12
-/* AEA7B4 80073614 01986825 */ or $t5, $t4, $t8
-/* AEA7B8 80073618 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEA7BC 8007361C 444FF800 */ cfc1 $t7, $31
-/* AEA7C0 80073620 00000000 */ nop
-/* AEA7C4 80073624 31EF0078 */ andi $t7, $t7, 0x78
-/* AEA7C8 80073628 51E00013 */ beql $t7, $zero, .L80073678
-/* AEA7CC 8007362C 440F2000 */ mfc1 $t7, $f4
-/* AEA7D0 80073630 44812000 */ mtc1 $at, $f4
-/* AEA7D4 80073634 240F0001 */ li $t7, 1
-/* AEA7D8 80073638 46046101 */ sub.s $f4, $f12, $f4
-/* AEA7DC 8007363C 44CFF800 */ ctc1 $t7, $31
-/* AEA7E0 80073640 00000000 */ nop
-/* AEA7E4 80073644 46002124 */ cvt.w.s $f4, $f4
-/* AEA7E8 80073648 444FF800 */ cfc1 $t7, $31
-/* AEA7EC 8007364C 00000000 */ nop
-/* AEA7F0 80073650 31EF0078 */ andi $t7, $t7, 0x78
-/* AEA7F4 80073654 15E00005 */ bnez $t7, .L8007366C
-/* AEA7F8 80073658 00000000 */ nop
-/* AEA7FC 8007365C 440F2000 */ mfc1 $t7, $f4
-/* AEA800 80073660 3C018000 */ lui $at, 0x8000
-/* AEA804 80073664 10000007 */ b .L80073684
-/* AEA808 80073668 01E17825 */ or $t7, $t7, $at
-.L8007366C:
-/* AEA80C 8007366C 10000005 */ b .L80073684
-/* AEA810 80073670 240FFFFF */ li $t7, -1
-/* AEA814 80073674 440F2000 */ mfc1 $t7, $f4
-.L80073678:
-/* AEA818 80073678 00000000 */ nop
-/* AEA81C 8007367C 05E0FFFB */ bltz $t7, .L8007366C
-/* AEA820 80073680 00000000 */ nop
-.L80073684:
-/* AEA824 80073684 44CEF800 */ ctc1 $t6, $31
-/* AEA828 80073688 3C014120 */ li $at, 0x41200000 # 0.000000
-/* AEA82C 8007368C 44814000 */ mtc1 $at, $f8
-/* AEA830 80073690 46000180 */ add.s $f6, $f0, $f0
-/* AEA834 80073694 31F900FF */ andi $t9, $t7, 0xff
-/* AEA838 80073698 01B94825 */ or $t1, $t5, $t9
-/* AEA83C 8007369C AC690004 */ sw $t1, 4($v1)
-/* AEA840 800736A0 46083300 */ add.s $f12, $f6, $f8
-/* AEA844 800736A4 AFA80030 */ sw $t0, 0x30($sp)
-/* AEA848 800736A8 24070001 */ li $a3, 1
-/* AEA84C 800736AC 44066000 */ mfc1 $a2, $f12
-/* AEA850 800736B0 0C0342A3 */ jal Matrix_Scale
-/* AEA854 800736B4 46006386 */ mov.s $f14, $f12
-/* AEA858 800736B8 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AEA85C 800736BC 8FA80030 */ lw $t0, 0x30($sp)
-/* AEA860 800736C0 3C0BDA38 */ lui $t3, (0xDA380003 >> 16) # lui $t3, 0xda38
-/* AEA864 800736C4 244A0008 */ addiu $t2, $v0, 8
-/* AEA868 800736C8 AE0A02C0 */ sw $t2, 0x2c0($s0)
-/* AEA86C 800736CC 356B0003 */ ori $t3, (0xDA380003 & 0xFFFF) # ori $t3, $t3, 3
-/* AEA870 800736D0 AC4B0000 */ sw $t3, ($v0)
-/* AEA874 800736D4 8E240000 */ lw $a0, ($s1)
-/* AEA878 800736D8 3C058014 */ lui $a1, %hi(D_8013C56C) # $a1, 0x8014
-/* AEA87C 800736DC 24A5C56C */ addiu $a1, %lo(D_8013C56C) # addiu $a1, $a1, -0x3a94
-/* AEA880 800736E0 2406093C */ li $a2, 2364
-/* AEA884 800736E4 AFA20054 */ sw $v0, 0x54($sp)
-/* AEA888 800736E8 0C0346A2 */ jal Matrix_NewMtx
-/* AEA88C 800736EC AFA80030 */ sw $t0, 0x30($sp)
-/* AEA890 800736F0 8FA30054 */ lw $v1, 0x54($sp)
-/* AEA894 800736F4 8FA80030 */ lw $t0, 0x30($sp)
-/* AEA898 800736F8 AC620004 */ sw $v0, 4($v1)
-/* AEA89C 800736FC 8E240000 */ lw $a0, ($s1)
-/* AEA8A0 80073700 0C024EB4 */ jal func_80093AD0
-/* AEA8A4 80073704 AFA80030 */ sw $t0, 0x30($sp)
-/* AEA8A8 80073708 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AEA8AC 8007370C 8FA80030 */ lw $t0, 0x30($sp)
-/* AEA8B0 80073710 3C0E0405 */ li $t6, 0x04050000 # 0.000000
-/* AEA8B4 80073714 244C0008 */ addiu $t4, $v0, 8
-/* AEA8B8 80073718 AE0C02C0 */ sw $t4, 0x2c0($s0)
-/* AEA8BC 8007371C 25CED1C0 */ addiu $t6, %lo(gSunDL) # addiu $t6, $t6, -0x2e40
-/* AEA8C0 80073720 3C18DE00 */ li $t8, 0xDE000000 # 0.000000
-/* AEA8C4 80073724 AC580000 */ sw $t8, ($v0)
-/* AEA8C8 80073728 AC4E0004 */ sw $t6, 4($v0)
-/* AEA8CC 8007372C C62A00E0 */ lwc1 $f10, 0xe0($s1)
-/* AEA8D0 80073730 C5040A28 */ lwc1 $f4, 0xa28($t0)
-/* AEA8D4 80073734 C62600E4 */ lwc1 $f6, 0xe4($s1)
-/* AEA8D8 80073738 C5080A2C */ lwc1 $f8, 0xa2c($t0)
-/* AEA8DC 8007373C 46045301 */ sub.s $f12, $f10, $f4
-/* AEA8E0 80073740 C62A00E8 */ lwc1 $f10, 0xe8($s1)
-/* AEA8E4 80073744 C5040A30 */ lwc1 $f4, 0xa30($t0)
-/* AEA8E8 80073748 46083381 */ sub.s $f14, $f6, $f8
-/* AEA8EC 8007374C 00003825 */ move $a3, $zero
-/* AEA8F0 80073750 46045181 */ sub.s $f6, $f10, $f4
-/* AEA8F4 80073754 44063000 */ mfc1 $a2, $f6
-/* AEA8F8 80073758 0C034261 */ jal Matrix_Translate
-/* AEA8FC 8007375C 00000000 */ nop
-/* AEA900 80073760 C7B0007C */ lwc1 $f16, 0x7c($sp)
-/* AEA904 80073764 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AEA908 80073768 44814000 */ mtc1 $at, $f8
-/* AEA90C 8007376C 46008407 */ neg.s $f16, $f16
-/* AEA910 80073770 44809000 */ mtc1 $zero, $f18
-/* AEA914 80073774 46088003 */ div.s $f0, $f16, $f8
-/* AEA918 80073778 3C01C170 */ li $at, 0xC1700000 # 0.000000
-/* AEA91C 8007377C 44815000 */ mtc1 $at, $f10
-/* AEA920 80073780 4612003C */ c.lt.s $f0, $f18
-/* AEA924 80073784 00000000 */ nop
-/* AEA928 80073788 45000002 */ bc1f .L80073794
-/* AEA92C 8007378C 00000000 */ nop
-/* AEA930 80073790 46009006 */ mov.s $f0, $f18
-.L80073794:
-/* AEA934 80073794 46005102 */ mul.s $f4, $f10, $f0
-/* AEA938 80073798 3C0141C8 */ li $at, 0x41C80000 # 0.000000
-/* AEA93C 8007379C 44813000 */ mtc1 $at, $f6
-/* AEA940 800737A0 24070001 */ li $a3, 1
-/* AEA944 800737A4 E7B00030 */ swc1 $f16, 0x30($sp)
-/* AEA948 800737A8 46062300 */ add.s $f12, $f4, $f6
-/* AEA94C 800737AC 44066000 */ mfc1 $a2, $f12
-/* AEA950 800737B0 0C0342A3 */ jal Matrix_Scale
-/* AEA954 800737B4 46006386 */ mov.s $f14, $f12
-/* AEA958 800737B8 3C0142A0 */ li $at, 0x42A00000 # 0.000000
-/* AEA95C 800737BC C7B00030 */ lwc1 $f16, 0x30($sp)
-/* AEA960 800737C0 44814000 */ mtc1 $at, $f8
-/* AEA964 800737C4 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEA968 800737C8 44815000 */ mtc1 $at, $f10
-/* AEA96C 800737CC 46088083 */ div.s $f2, $f16, $f8
-/* AEA970 800737D0 44809000 */ mtc1 $zero, $f18
-/* AEA974 800737D4 3C0DDA38 */ lui $t5, (0xDA380003 >> 16) # lui $t5, 0xda38
-/* AEA978 800737D8 3C013F80 */ lui $at, 0x3f80
-/* AEA97C 800737DC 35AD0003 */ ori $t5, (0xDA380003 & 0xFFFF) # ori $t5, $t5, 3
-/* AEA980 800737E0 3C058014 */ lui $a1, %hi(D_8013C57C) # $a1, 0x8014
-/* AEA984 800737E4 4602503C */ c.lt.s $f10, $f2
-/* AEA988 800737E8 00000000 */ nop
-/* AEA98C 800737EC 45020004 */ bc1fl .L80073800
-/* AEA990 800737F0 3C01437F */ li $at, 0x437F0000 # 0.000000
-/* AEA994 800737F4 44811000 */ mtc1 $at, $f2
-/* AEA998 800737F8 00000000 */ nop
-/* AEA99C 800737FC 3C01437F */ li $at, 0x437F0000 # 0.000000
-.L80073800:
-/* AEA9A0 80073800 44812000 */ mtc1 $at, $f4
-/* AEA9A4 80073804 00000000 */ nop
-/* AEA9A8 80073808 46041002 */ mul.s $f0, $f2, $f4
-/* AEA9AC 8007380C 4600903C */ c.lt.s $f18, $f0
-/* AEA9B0 80073810 00000000 */ nop
-/* AEA9B4 80073814 45000051 */ bc1f .L8007395C
-/* AEA9B8 80073818 00000000 */ nop
-/* AEA9BC 8007381C 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AEA9C0 80073820 24A5C57C */ addiu $a1, %lo(D_8013C57C) # addiu $a1, $a1, -0x3a84
-/* AEA9C4 80073824 24060966 */ li $a2, 2406
-/* AEA9C8 80073828 244F0008 */ addiu $t7, $v0, 8
-/* AEA9CC 8007382C AE0F02C0 */ sw $t7, 0x2c0($s0)
-/* AEA9D0 80073830 AC4D0000 */ sw $t5, ($v0)
-/* AEA9D4 80073834 8E240000 */ lw $a0, ($s1)
-/* AEA9D8 80073838 E7A00030 */ swc1 $f0, 0x30($sp)
-/* AEA9DC 8007383C 0C0346A2 */ jal Matrix_NewMtx
-/* AEA9E0 80073840 AFA2004C */ sw $v0, 0x4c($sp)
-/* AEA9E4 80073844 8FA3004C */ lw $v1, 0x4c($sp)
-/* AEA9E8 80073848 C7A00030 */ lwc1 $f0, 0x30($sp)
-/* AEA9EC 8007384C AC620004 */ sw $v0, 4($v1)
-/* AEA9F0 80073850 8E240000 */ lw $a0, ($s1)
-/* AEA9F4 80073854 0C024E63 */ jal func_8009398C
-/* AEA9F8 80073858 E7A00030 */ swc1 $f0, 0x30($sp)
-/* AEA9FC 8007385C 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AEAA00 80073860 444CF800 */ cfc1 $t4, $31
-/* AEAA04 80073864 24040001 */ li $a0, 1
-/* AEAA08 80073868 44C4F800 */ ctc1 $a0, $31
-/* AEAA0C 8007386C C7A00030 */ lwc1 $f0, 0x30($sp)
-/* AEAA10 80073870 24590008 */ addiu $t9, $v0, 8
-/* AEAA14 80073874 AE1902C0 */ sw $t9, 0x2c0($s0)
-/* AEAA18 80073878 460001A4 */ cvt.w.s $f6, $f0
-/* AEAA1C 8007387C 3C09E700 */ lui $t1, 0xe700
-/* AEAA20 80073880 AC490000 */ sw $t1, ($v0)
-/* AEAA24 80073884 AC400004 */ sw $zero, 4($v0)
-/* AEAA28 80073888 8E0302C0 */ lw $v1, 0x2c0($s0)
-/* AEAA2C 8007388C 4444F800 */ cfc1 $a0, $31
-/* AEAA30 80073890 3C0BFA00 */ lui $t3, 0xfa00
-/* AEAA34 80073894 246A0008 */ addiu $t2, $v1, 8
-/* AEAA38 80073898 AE0A02C0 */ sw $t2, 0x2c0($s0)
-/* AEAA3C 8007389C 30840078 */ andi $a0, $a0, 0x78
-/* AEAA40 800738A0 10800013 */ beqz $a0, .L800738F0
-/* AEAA44 800738A4 AC6B0000 */ sw $t3, ($v1)
-/* AEAA48 800738A8 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEAA4C 800738AC 44813000 */ mtc1 $at, $f6
-/* AEAA50 800738B0 24040001 */ li $a0, 1
-/* AEAA54 800738B4 46060181 */ sub.s $f6, $f0, $f6
-/* AEAA58 800738B8 44C4F800 */ ctc1 $a0, $31
-/* AEAA5C 800738BC 00000000 */ nop
-/* AEAA60 800738C0 460031A4 */ cvt.w.s $f6, $f6
-/* AEAA64 800738C4 4444F800 */ cfc1 $a0, $31
-/* AEAA68 800738C8 00000000 */ nop
-/* AEAA6C 800738CC 30840078 */ andi $a0, $a0, 0x78
-/* AEAA70 800738D0 14800005 */ bnez $a0, .L800738E8
-/* AEAA74 800738D4 00000000 */ nop
-/* AEAA78 800738D8 44043000 */ mfc1 $a0, $f6
-/* AEAA7C 800738DC 3C018000 */ lui $at, 0x8000
-/* AEAA80 800738E0 10000007 */ b .L80073900
-/* AEAA84 800738E4 00812025 */ or $a0, $a0, $at
-.L800738E8:
-/* AEAA88 800738E8 10000005 */ b .L80073900
-/* AEAA8C 800738EC 2404FFFF */ li $a0, -1
-.L800738F0:
-/* AEAA90 800738F0 44043000 */ mfc1 $a0, $f6
-/* AEAA94 800738F4 00000000 */ nop
-/* AEAA98 800738F8 0480FFFB */ bltz $a0, .L800738E8
-/* AEAA9C 800738FC 00000000 */ nop
-.L80073900:
-/* AEAAA0 80073900 3C01F0FF */ lui $at, (0xF0FFB400 >> 16) # lui $at, 0xf0ff
-/* AEAAA4 80073904 3421B400 */ ori $at, (0xF0FFB400 & 0xFFFF) # ori $at, $at, 0xb400
-/* AEAAA8 80073908 308400FF */ andi $a0, $a0, 0xff
-/* AEAAAC 8007390C 0081C025 */ or $t8, $a0, $at
-/* AEAAB0 80073910 AC780004 */ sw $t8, 4($v1)
-/* AEAAB4 80073914 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AEAAB8 80073918 3C015046 */ lui $at, (0x50461400 >> 16) # lui $at, 0x5046
-/* AEAABC 8007391C 34211400 */ ori $at, (0x50461400 & 0xFFFF) # ori $at, $at, 0x1400
-/* AEAAC0 80073920 244E0008 */ addiu $t6, $v0, 8
-/* AEAAC4 80073924 AE0E02C0 */ sw $t6, 0x2c0($s0)
-/* AEAAC8 80073928 00816825 */ or $t5, $a0, $at
-/* AEAACC 8007392C 3C0FFB00 */ lui $t7, 0xfb00
-/* AEAAD0 80073930 AC4F0000 */ sw $t7, ($v0)
-/* AEAAD4 80073934 AC4D0004 */ sw $t5, 4($v0)
-/* AEAAD8 80073938 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AEAADC 8007393C 3C0A0404 */ lui $t2, %hi(gMoonDL) # $t2, 0x404
-/* AEAAE0 80073940 44CCF800 */ ctc1 $t4, $31
-/* AEAAE4 80073944 24590008 */ addiu $t9, $v0, 8
-/* AEAAE8 80073948 AE1902C0 */ sw $t9, 0x2c0($s0)
-/* AEAAEC 8007394C 254A8F00 */ addiu $t2, %lo(gMoonDL) # addiu $t2, $t2, -0x7100
-/* AEAAF0 80073950 3C09DE00 */ lui $t1, 0xde00
-/* AEAAF4 80073954 AC490000 */ sw $t1, ($v0)
-/* AEAAF8 80073958 AC4A0004 */ sw $t2, 4($v0)
-.L8007395C:
-/* AEAAFC 8007395C 3C068014 */ lui $a2, %hi(D_8013C58C) # $a2, 0x8014
-/* AEAB00 80073960 24C6C58C */ addiu $a2, %lo(D_8013C58C) # addiu $a2, $a2, -0x3a74
-/* AEAB04 80073964 27A40060 */ addiu $a0, $sp, 0x60
-/* AEAB08 80073968 8E250000 */ lw $a1, ($s1)
-/* AEAB0C 8007396C 0C031AD5 */ jal Graph_CloseDisps
-/* AEAB10 80073970 2407097D */ li $a3, 2429
-/* AEAB14 80073974 8FBF0024 */ lw $ra, 0x24($sp)
-/* AEAB18 80073978 8FB0001C */ lw $s0, 0x1c($sp)
-/* AEAB1C 8007397C 8FB10020 */ lw $s1, 0x20($sp)
-/* AEAB20 80073980 03E00008 */ jr $ra
-/* AEAB24 80073984 27BD0088 */ addiu $sp, $sp, 0x88
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80073988.s b/asm/non_matchings/code/z_kankyo/func_80073988.s
deleted file mode 100644
index 823ed52cb4..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80073988.s
+++ /dev/null
@@ -1,56 +0,0 @@
-glabel func_80073988
-/* AEAB28 80073988 27BDFFC0 */ addiu $sp, $sp, -0x40
-/* AEAB2C 8007398C 3C010001 */ lui $at, 1
-/* AEAB30 80073990 AFBF003C */ sw $ra, 0x3c($sp)
-/* AEAB34 80073994 AFB00038 */ sw $s0, 0x38($sp)
-/* AEAB38 80073998 AFA50044 */ sw $a1, 0x44($sp)
-/* AEAB3C 8007399C AFA60048 */ sw $a2, 0x48($sp)
-/* AEAB40 800739A0 AFA7004C */ sw $a3, 0x4c($sp)
-/* AEAB44 800739A4 00811021 */ addu $v0, $a0, $at
-/* AEAB48 800739A8 904E0B13 */ lbu $t6, 0xb13($v0)
-/* AEAB4C 800739AC 00808025 */ move $s0, $a0
-/* AEAB50 800739B0 55C00026 */ bnezl $t6, .L80073A4C
-/* AEAB54 800739B4 8FBF003C */ lw $ra, 0x3c($sp)
-/* AEAB58 800739B8 904F0A3B */ lbu $t7, 0xa3b($v0)
-/* AEAB5C 800739BC 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AEAB60 800739C0 55E00022 */ bnezl $t7, .L80073A4C
-/* AEAB64 800739C4 8FBF003C */ lw $ra, 0x3c($sp)
-/* AEAB68 800739C8 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AEAB6C 800739CC 24018000 */ li $at, -32768
-/* AEAB70 800739D0 00412021 */ addu $a0, $v0, $at
-/* AEAB74 800739D4 00042400 */ sll $a0, $a0, 0x10
-/* AEAB78 800739D8 0C01DE0D */ jal Math_CosS
-/* AEAB7C 800739DC 00042403 */ sra $a0, $a0, 0x10
-/* AEAB80 800739E0 27B80050 */ addiu $t8, $sp, 0x50
-/* AEAB84 800739E4 8F080000 */ lw $t0, ($t8)
-/* AEAB88 800739E8 3C010001 */ lui $at, (0x00010A24 >> 16) # lui $at, 1
-/* AEAB8C 800739EC 34210A24 */ ori $at, (0x00010A24 & 0xFFFF) # ori $at, $at, 0xa24
-/* AEAB90 800739F0 02012821 */ addu $a1, $s0, $at
-/* AEAB94 800739F4 8E070000 */ lw $a3, ($s0)
-/* AEAB98 800739F8 3C0142F0 */ li $at, 0x42F00000 # 0.000000
-/* AEAB9C 800739FC AFA80010 */ sw $t0, 0x10($sp)
-/* AEABA0 80073A00 8F190004 */ lw $t9, 4($t8)
-/* AEABA4 80073A04 44812000 */ mtc1 $at, $f4
-/* AEABA8 80073A08 240907D0 */ li $t1, 2000
-/* AEABAC 80073A0C AFB90014 */ sw $t9, 0x14($sp)
-/* AEABB0 80073A10 46040182 */ mul.s $f6, $f0, $f4
-/* AEABB4 80073A14 8F080008 */ lw $t0, 8($t8)
-/* AEABB8 80073A18 240A0172 */ li $t2, 370
-/* AEABBC 80073A1C 240B0190 */ li $t3, 400
-/* AEABC0 80073A20 240C0001 */ li $t4, 1
-/* AEABC4 80073A24 AFAC002C */ sw $t4, 0x2c($sp)
-/* AEABC8 80073A28 AFAB0028 */ sw $t3, 0x28($sp)
-/* AEABCC 80073A2C AFAA0020 */ sw $t2, 0x20($sp)
-/* AEABD0 80073A30 E7A60024 */ swc1 $f6, 0x24($sp)
-/* AEABD4 80073A34 AFA9001C */ sw $t1, 0x1c($sp)
-/* AEABD8 80073A38 02002025 */ move $a0, $s0
-/* AEABDC 80073A3C 260600B8 */ addiu $a2, $s0, 0xb8
-/* AEABE0 80073A40 0C01CE97 */ jal func_80073A5C
-/* AEABE4 80073A44 AFA80018 */ sw $t0, 0x18($sp)
-/* AEABE8 80073A48 8FBF003C */ lw $ra, 0x3c($sp)
-.L80073A4C:
-/* AEABEC 80073A4C 8FB00038 */ lw $s0, 0x38($sp)
-/* AEABF0 80073A50 27BD0040 */ addiu $sp, $sp, 0x40
-/* AEABF4 80073A54 03E00008 */ jr $ra
-/* AEABF8 80073A58 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80074CE8.s b/asm/non_matchings/code/z_kankyo/func_80074CE8.s
deleted file mode 100644
index 7204b339b5..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80074CE8.s
+++ /dev/null
@@ -1,37 +0,0 @@
-glabel func_80074CE8
-/* AEBE88 80074CE8 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEBE8C 80074CEC 00811021 */ addu $v0, $a0, $at
-/* AEBE90 80074CF0 904E0AE1 */ lbu $t6, 0xae1($v0)
-/* AEBE94 80074CF4 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEBE98 80074CF8 10AE001A */ beq $a1, $t6, .L80074D64
-/* AEBE9C 80074CFC 00000000 */ nop
-/* AEBEA0 80074D00 C4440AFC */ lwc1 $f4, 0xafc($v0)
-/* AEBEA4 80074D04 44813000 */ mtc1 $at, $f6
-/* AEBEA8 80074D08 00000000 */ nop
-/* AEBEAC 80074D0C 4604303E */ c.le.s $f6, $f4
-/* AEBEB0 80074D10 00000000 */ nop
-/* AEBEB4 80074D14 45000013 */ bc1f .L80074D64
-/* AEBEB8 80074D18 00000000 */ nop
-/* AEBEBC 80074D1C 904F0AE3 */ lbu $t7, 0xae3($v0)
-/* AEBEC0 80074D20 240100FF */ li $at, 255
-/* AEBEC4 80074D24 15E1000F */ bne $t7, $at, .L80074D64
-/* AEBEC8 80074D28 2CA1001F */ sltiu $at, $a1, 0x1f
-/* AEBECC 80074D2C 54200003 */ bnezl $at, .L80074D3C
-/* AEBED0 80074D30 44804000 */ mtc1 $zero, $f8
-/* AEBED4 80074D34 00002825 */ move $a1, $zero
-/* AEBED8 80074D38 44804000 */ mtc1 $zero, $f8
-.L80074D3C:
-/* AEBEDC 80074D3C 3C010001 */ lui $at, 1
-/* AEBEE0 80074D40 00240821 */ addu $at, $at, $a0
-/* AEBEE4 80074D44 E4280AFC */ swc1 $f8, 0xafc($at)
-/* AEBEE8 80074D48 90580AE1 */ lbu $t8, 0xae1($v0)
-/* AEBEEC 80074D4C 3C010001 */ lui $at, 1
-/* AEBEF0 80074D50 00240821 */ addu $at, $at, $a0
-/* AEBEF4 80074D54 A0380AE2 */ sb $t8, 0xae2($at)
-/* AEBEF8 80074D58 3C010001 */ lui $at, 1
-/* AEBEFC 80074D5C 00240821 */ addu $at, $at, $a0
-/* AEBF00 80074D60 A0250AE1 */ sb $a1, 0xae1($at)
-.L80074D64:
-/* AEBF04 80074D64 03E00008 */ jr $ra
-/* AEBF08 80074D68 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80074D6C.s b/asm/non_matchings/code/z_kankyo/func_80074D6C.s
deleted file mode 100644
index 3d554658e2..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80074D6C.s
+++ /dev/null
@@ -1,195 +0,0 @@
-.rdata
-glabel D_8013C60C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C61C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C62C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C63C
- .asciz "../z_kankyo.c"
- .balign 4
-
-.late_rodata
-glabel D_8013C7F4
- .float 0.02
-
-.text
-glabel func_80074D6C
-/* AEBF0C 80074D6C 27BDFF98 */ addiu $sp, $sp, -0x68
-/* AEBF10 80074D70 3C010001 */ lui $at, 1
-/* AEBF14 80074D74 AFBF001C */ sw $ra, 0x1c($sp)
-/* AEBF18 80074D78 AFB00018 */ sw $s0, 0x18($sp)
-/* AEBF1C 80074D7C 00814821 */ addu $t1, $a0, $at
-/* AEBF20 80074D80 91221E14 */ lbu $v0, 0x1e14($t1)
-/* AEBF24 80074D84 00808025 */ move $s0, $a0
-/* AEBF28 80074D88 50400005 */ beql $v0, $zero, .L80074DA0
-/* AEBF2C 80074D8C 2401001D */ li $at, 29
-/* AEBF30 80074D90 848E07B2 */ lh $t6, 0x7b2($a0)
-/* AEBF34 80074D94 29C103D4 */ slti $at, $t6, 0x3d4
-/* AEBF38 80074D98 14200003 */ bnez $at, .L80074DA8
-/* AEBF3C 80074D9C 2401001D */ li $at, 29
-.L80074DA0:
-/* AEBF40 80074DA0 54410065 */ bnel $v0, $at, .L80074F38
-/* AEBF44 80074DA4 912E0B0D */ lbu $t6, 0xb0d($t1)
-.L80074DA8:
-/* AEBF48 80074DA8 8E050000 */ lw $a1, ($s0)
-/* AEBF4C 80074DAC 3C068014 */ lui $a2, %hi(D_8013C60C) # $a2, 0x8014
-/* AEBF50 80074DB0 24C6C60C */ addiu $a2, %lo(D_8013C60C) # addiu $a2, $a2, -0x39f4
-/* AEBF54 80074DB4 AFA90028 */ sw $t1, 0x28($sp)
-/* AEBF58 80074DB8 27A40050 */ addiu $a0, $sp, 0x50
-/* AEBF5C 80074DBC 24070BD8 */ li $a3, 3032
-/* AEBF60 80074DC0 0C031AB1 */ jal Graph_OpenDisps
-/* AEBF64 80074DC4 AFA50060 */ sw $a1, 0x60($sp)
-/* AEBF68 80074DC8 0C024E2D */ jal func_800938B4
-/* AEBF6C 80074DCC 8E040000 */ lw $a0, ($s0)
-/* AEBF70 80074DD0 860F07B2 */ lh $t7, 0x7b2($s0)
-/* AEBF74 80074DD4 241803E8 */ li $t8, 1000
-/* AEBF78 80074DD8 8FA90028 */ lw $t1, 0x28($sp)
-/* AEBF7C 80074DDC 030FC823 */ subu $t9, $t8, $t7
-/* AEBF80 80074DE0 44992000 */ mtc1 $t9, $f4
-/* AEBF84 80074DE4 3C018014 */ lui $at, %hi(D_8013C7F4)
-/* AEBF88 80074DE8 C428C7F4 */ lwc1 $f8, %lo(D_8013C7F4)($at)
-/* AEBF8C 80074DEC 468021A0 */ cvt.s.w $f6, $f4
-/* AEBF90 80074DF0 912A1E14 */ lbu $t2, 0x1e14($t1)
-/* AEBF94 80074DF4 2401001D */ li $at, 29
-/* AEBF98 80074DF8 8FA80060 */ lw $t0, 0x60($sp)
-/* AEBF9C 80074DFC 3C0CFA00 */ lui $t4, 0xfa00
-/* AEBFA0 80074E00 27A40050 */ addiu $a0, $sp, 0x50
-/* AEBFA4 80074E04 46083002 */ mul.s $f0, $f6, $f8
-/* AEBFA8 80074E08 15410004 */ bne $t2, $at, .L80074E1C
-/* AEBFAC 80074E0C 3C068014 */ lui $a2, %hi(D_8013C61C) # $a2, 0x8014
-/* AEBFB0 80074E10 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEBFB4 80074E14 44810000 */ mtc1 $at, $f0
-/* AEBFB8 80074E18 00000000 */ nop
-.L80074E1C:
-/* AEBFBC 80074E1C 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEBFC0 80074E20 44811000 */ mtc1 $at, $f2
-/* AEBFC4 80074E24 24C6C61C */ addiu $a2, %lo(D_8013C61C) # addiu $a2, $a2, -0x39e4
-/* AEBFC8 80074E28 24070BE3 */ li $a3, 3043
-/* AEBFCC 80074E2C 4600103C */ c.lt.s $f2, $f0
-/* AEBFD0 80074E30 00000000 */ nop
-/* AEBFD4 80074E34 45020003 */ bc1fl .L80074E44
-/* AEBFD8 80074E38 8D0202C0 */ lw $v0, 0x2c0($t0)
-/* AEBFDC 80074E3C 46001006 */ mov.s $f0, $f2
-/* AEBFE0 80074E40 8D0202C0 */ lw $v0, 0x2c0($t0)
-.L80074E44:
-/* AEBFE4 80074E44 3C01437F */ li $at, 0x437F0000 # 0.000000
-/* AEBFE8 80074E48 44815000 */ mtc1 $at, $f10
-/* AEBFEC 80074E4C 244B0008 */ addiu $t3, $v0, 8
-/* AEBFF0 80074E50 AD0B02C0 */ sw $t3, 0x2c0($t0)
-/* AEBFF4 80074E54 46005402 */ mul.s $f16, $f10, $f0
-/* AEBFF8 80074E58 AC4C0000 */ sw $t4, ($v0)
-/* AEBFFC 80074E5C 921907AF */ lbu $t9, 0x7af($s0)
-/* AEC000 80074E60 920E07B1 */ lbu $t6, 0x7b1($s0)
-/* AEC004 80074E64 920D07B0 */ lbu $t5, 0x7b0($s0)
-/* AEC008 80074E68 00195600 */ sll $t2, $t9, 0x18
-/* AEC00C 80074E6C 000EC200 */ sll $t8, $t6, 8
-/* AEC010 80074E70 030A5825 */ or $t3, $t8, $t2
-/* AEC014 80074E74 24180001 */ li $t8, 1
-/* AEC018 80074E78 4459F800 */ cfc1 $t9, $31
-/* AEC01C 80074E7C 44D8F800 */ ctc1 $t8, $31
-/* AEC020 80074E80 000D7400 */ sll $t6, $t5, 0x10
-/* AEC024 80074E84 016E7825 */ or $t7, $t3, $t6
-/* AEC028 80074E88 460084A4 */ cvt.w.s $f18, $f16
-/* AEC02C 80074E8C 3C014F00 */ lui $at, 0x4f00
-/* AEC030 80074E90 3C0BF64F */ li $t3, 0xF64F0000 # 0.000000
-/* AEC034 80074E94 4458F800 */ cfc1 $t8, $31
-/* AEC038 80074E98 00000000 */ nop
-/* AEC03C 80074E9C 33180078 */ andi $t8, $t8, 0x78
-/* AEC040 80074EA0 53000013 */ beql $t8, $zero, .L80074EF0
-/* AEC044 80074EA4 44189000 */ mfc1 $t8, $f18
-/* AEC048 80074EA8 44819000 */ mtc1 $at, $f18
-/* AEC04C 80074EAC 24180001 */ li $t8, 1
-/* AEC050 80074EB0 46128481 */ sub.s $f18, $f16, $f18
-/* AEC054 80074EB4 44D8F800 */ ctc1 $t8, $31
-/* AEC058 80074EB8 00000000 */ nop
-/* AEC05C 80074EBC 460094A4 */ cvt.w.s $f18, $f18
-/* AEC060 80074EC0 4458F800 */ cfc1 $t8, $31
-/* AEC064 80074EC4 00000000 */ nop
-/* AEC068 80074EC8 33180078 */ andi $t8, $t8, 0x78
-/* AEC06C 80074ECC 17000005 */ bnez $t8, .L80074EE4
-/* AEC070 80074ED0 00000000 */ nop
-/* AEC074 80074ED4 44189000 */ mfc1 $t8, $f18
-/* AEC078 80074ED8 3C018000 */ lui $at, 0x8000
-/* AEC07C 80074EDC 10000007 */ b .L80074EFC
-/* AEC080 80074EE0 0301C025 */ or $t8, $t8, $at
-.L80074EE4:
-/* AEC084 80074EE4 10000005 */ b .L80074EFC
-/* AEC088 80074EE8 2418FFFF */ li $t8, -1
-/* AEC08C 80074EEC 44189000 */ mfc1 $t8, $f18
-.L80074EF0:
-/* AEC090 80074EF0 00000000 */ nop
-/* AEC094 80074EF4 0700FFFB */ bltz $t8, .L80074EE4
-/* AEC098 80074EF8 00000000 */ nop
-.L80074EFC:
-/* AEC09C 80074EFC 330A00FF */ andi $t2, $t8, 0xff
-/* AEC0A0 80074F00 01EA6025 */ or $t4, $t7, $t2
-/* AEC0A4 80074F04 AC4C0004 */ sw $t4, 4($v0)
-/* AEC0A8 80074F08 8D0302C0 */ lw $v1, 0x2c0($t0)
-/* AEC0AC 80074F0C 356BC3BC */ ori $t3, $t3, 0xc3bc
-/* AEC0B0 80074F10 44D9F800 */ ctc1 $t9, $31
-/* AEC0B4 80074F14 246D0008 */ addiu $t5, $v1, 8
-/* AEC0B8 80074F18 AD0D02C0 */ sw $t5, 0x2c0($t0)
-/* AEC0BC 80074F1C AC600004 */ sw $zero, 4($v1)
-/* AEC0C0 80074F20 AC6B0000 */ sw $t3, ($v1)
-/* AEC0C4 80074F24 8E050000 */ lw $a1, ($s0)
-/* AEC0C8 80074F28 0C031AD5 */ jal Graph_CloseDisps
-/* AEC0CC 80074F2C AFA90028 */ sw $t1, 0x28($sp)
-/* AEC0D0 80074F30 8FA90028 */ lw $t1, 0x28($sp)
-/* AEC0D4 80074F34 912E0B0D */ lbu $t6, 0xb0d($t1)
-.L80074F38:
-/* AEC0D8 80074F38 3C068014 */ lui $a2, %hi(D_8013C62C) # $a2, 0x8014
-/* AEC0DC 80074F3C 24C6C62C */ addiu $a2, %lo(D_8013C62C) # addiu $a2, $a2, -0x39d4
-/* AEC0E0 80074F40 11C00027 */ beqz $t6, .L80074FE0
-/* AEC0E4 80074F44 27A40034 */ addiu $a0, $sp, 0x34
-/* AEC0E8 80074F48 8E050000 */ lw $a1, ($s0)
-/* AEC0EC 80074F4C AFA90028 */ sw $t1, 0x28($sp)
-/* AEC0F0 80074F50 24070BE8 */ li $a3, 3048
-/* AEC0F4 80074F54 0C031AB1 */ jal Graph_OpenDisps
-/* AEC0F8 80074F58 AFA50044 */ sw $a1, 0x44($sp)
-/* AEC0FC 80074F5C 0C024E2D */ jal func_800938B4
-/* AEC100 80074F60 8E040000 */ lw $a0, ($s0)
-/* AEC104 80074F64 8FA80044 */ lw $t0, 0x44($sp)
-/* AEC108 80074F68 8FA90028 */ lw $t1, 0x28($sp)
-/* AEC10C 80074F6C 3C18FA00 */ lui $t8, 0xfa00
-/* AEC110 80074F70 8D0302C0 */ lw $v1, 0x2c0($t0)
-/* AEC114 80074F74 3C068014 */ lui $a2, %hi(D_8013C63C) # $a2, 0x8014
-/* AEC118 80074F78 24C6C63C */ addiu $a2, %lo(D_8013C63C) # addiu $a2, $a2, -0x39c4
-/* AEC11C 80074F7C 24790008 */ addiu $t9, $v1, 8
-/* AEC120 80074F80 AD1902C0 */ sw $t9, 0x2c0($t0)
-/* AEC124 80074F84 AC780000 */ sw $t8, ($v1)
-/* AEC128 80074F88 912D0B0E */ lbu $t5, 0xb0e($t1)
-/* AEC12C 80074F8C 912A0B11 */ lbu $t2, 0xb11($t1)
-/* AEC130 80074F90 91380B0F */ lbu $t8, 0xb0f($t1)
-/* AEC134 80074F94 000D5E00 */ sll $t3, $t5, 0x18
-/* AEC138 80074F98 014B7025 */ or $t6, $t2, $t3
-/* AEC13C 80074F9C 912A0B10 */ lbu $t2, 0xb10($t1)
-/* AEC140 80074FA0 00187C00 */ sll $t7, $t8, 0x10
-/* AEC144 80074FA4 01CF6025 */ or $t4, $t6, $t7
-/* AEC148 80074FA8 000A5A00 */ sll $t3, $t2, 8
-/* AEC14C 80074FAC 018BC825 */ or $t9, $t4, $t3
-/* AEC150 80074FB0 AC790004 */ sw $t9, 4($v1)
-/* AEC154 80074FB4 8D0302C0 */ lw $v1, 0x2c0($t0)
-/* AEC158 80074FB8 3C0EF64F */ lui $t6, (0xF64FC3BC >> 16) # lui $t6, 0xf64f
-/* AEC15C 80074FBC 35CEC3BC */ ori $t6, (0xF64FC3BC & 0xFFFF) # ori $t6, $t6, 0xc3bc
-/* AEC160 80074FC0 24780008 */ addiu $t8, $v1, 8
-/* AEC164 80074FC4 AD1802C0 */ sw $t8, 0x2c0($t0)
-/* AEC168 80074FC8 AC600004 */ sw $zero, 4($v1)
-/* AEC16C 80074FCC AC6E0000 */ sw $t6, ($v1)
-/* AEC170 80074FD0 8E050000 */ lw $a1, ($s0)
-/* AEC174 80074FD4 27A40034 */ addiu $a0, $sp, 0x34
-/* AEC178 80074FD8 0C031AD5 */ jal Graph_CloseDisps
-/* AEC17C 80074FDC 24070BF0 */ li $a3, 3056
-.L80074FE0:
-/* AEC180 80074FE0 8FBF001C */ lw $ra, 0x1c($sp)
-/* AEC184 80074FE4 8FB00018 */ lw $s0, 0x18($sp)
-/* AEC188 80074FE8 27BD0068 */ addiu $sp, $sp, 0x68
-/* AEC18C 80074FEC 03E00008 */ jr $ra
-/* AEC190 80074FF0 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80074FF4.s b/asm/non_matchings/code/z_kankyo/func_80074FF4.s
deleted file mode 100644
index 475c93f93c..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80074FF4.s
+++ /dev/null
@@ -1,63 +0,0 @@
-.rdata
-glabel D_8013C64C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C65C
- .asciz "../z_kankyo.c"
- .balign 4
-
-.text
-glabel func_80074FF4
-/* AEC194 80074FF4 27BDFFC8 */ addiu $sp, $sp, -0x38
-/* AEC198 80074FF8 AFBF0014 */ sw $ra, 0x14($sp)
-/* AEC19C 80074FFC AFA40038 */ sw $a0, 0x38($sp)
-/* AEC1A0 80075000 AFA5003C */ sw $a1, 0x3c($sp)
-/* AEC1A4 80075004 AFA60040 */ sw $a2, 0x40($sp)
-/* AEC1A8 80075008 AFA70044 */ sw $a3, 0x44($sp)
-/* AEC1AC 8007500C 8C850000 */ lw $a1, ($a0)
-/* AEC1B0 80075010 3C068014 */ lui $a2, %hi(D_8013C64C) # $a2, 0x8014
-/* AEC1B4 80075014 24C6C64C */ addiu $a2, %lo(D_8013C64C) # addiu $a2, $a2, -0x39b4
-/* AEC1B8 80075018 27A40024 */ addiu $a0, $sp, 0x24
-/* AEC1BC 8007501C 24070BFD */ li $a3, 3069
-/* AEC1C0 80075020 0C031AB1 */ jal Graph_OpenDisps
-/* AEC1C4 80075024 AFA50034 */ sw $a1, 0x34($sp)
-/* AEC1C8 80075028 8FAF0038 */ lw $t7, 0x38($sp)
-/* AEC1CC 8007502C 0C024E2D */ jal func_800938B4
-/* AEC1D0 80075030 8DE40000 */ lw $a0, ($t7)
-/* AEC1D4 80075034 8FA80034 */ lw $t0, 0x34($sp)
-/* AEC1D8 80075038 3C19FA00 */ lui $t9, 0xfa00
-/* AEC1DC 8007503C 3C068014 */ lui $a2, %hi(D_8013C65C) # $a2, 0x8014
-/* AEC1E0 80075040 8D0302C0 */ lw $v1, 0x2c0($t0)
-/* AEC1E4 80075044 24C6C65C */ addiu $a2, %lo(D_8013C65C) # addiu $a2, $a2, -0x39a4
-/* AEC1E8 80075048 27A40024 */ addiu $a0, $sp, 0x24
-/* AEC1EC 8007504C 24780008 */ addiu $t8, $v1, 8
-/* AEC1F0 80075050 AD1802C0 */ sw $t8, 0x2c0($t0)
-/* AEC1F4 80075054 AC790000 */ sw $t9, ($v1)
-/* AEC1F8 80075058 93AD0043 */ lbu $t5, 0x43($sp)
-/* AEC1FC 8007505C 93AA003F */ lbu $t2, 0x3f($sp)
-/* AEC200 80075060 93B90047 */ lbu $t9, 0x47($sp)
-/* AEC204 80075064 000D7400 */ sll $t6, $t5, 0x10
-/* AEC208 80075068 93AD004B */ lbu $t5, 0x4b($sp)
-/* AEC20C 8007506C 000A5E00 */ sll $t3, $t2, 0x18
-/* AEC210 80075070 016E7825 */ or $t7, $t3, $t6
-/* AEC214 80075074 00194A00 */ sll $t1, $t9, 8
-/* AEC218 80075078 01E95025 */ or $t2, $t7, $t1
-/* AEC21C 8007507C 014D5825 */ or $t3, $t2, $t5
-/* AEC220 80075080 AC6B0004 */ sw $t3, 4($v1)
-/* AEC224 80075084 8D0302C0 */ lw $v1, 0x2c0($t0)
-/* AEC228 80075088 3C18F64F */ lui $t8, (0xF64FC3BC >> 16) # lui $t8, 0xf64f
-/* AEC22C 8007508C 3718C3BC */ ori $t8, (0xF64FC3BC & 0xFFFF) # ori $t8, $t8, 0xc3bc
-/* AEC230 80075090 246E0008 */ addiu $t6, $v1, 8
-/* AEC234 80075094 AD0E02C0 */ sw $t6, 0x2c0($t0)
-/* AEC238 80075098 AC600004 */ sw $zero, 4($v1)
-/* AEC23C 8007509C AC780000 */ sw $t8, ($v1)
-/* AEC240 800750A0 8FB90038 */ lw $t9, 0x38($sp)
-/* AEC244 800750A4 24070C07 */ li $a3, 3079
-/* AEC248 800750A8 0C031AD5 */ jal Graph_CloseDisps
-/* AEC24C 800750AC 8F250000 */ lw $a1, ($t9)
-/* AEC250 800750B0 8FBF0014 */ lw $ra, 0x14($sp)
-/* AEC254 800750B4 27BD0038 */ addiu $sp, $sp, 0x38
-/* AEC258 800750B8 03E00008 */ jr $ra
-/* AEC25C 800750BC 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800750C0.s b/asm/non_matchings/code/z_kankyo/func_800750C0.s
deleted file mode 100644
index 6093ab05e7..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800750C0.s
+++ /dev/null
@@ -1,215 +0,0 @@
-.late_rodata
-glabel D_8013C7F8
- .float 0.1
-
-glabel D_8013C7FC
- .float 2.9
-
-.text
-glabel func_800750C0
-/* AEC260 800750C0 27BDFFE0 */ addiu $sp, $sp, -0x20
-/* AEC264 800750C4 3C010001 */ lui $at, 1
-/* AEC268 800750C8 AFBF001C */ sw $ra, 0x1c($sp)
-/* AEC26C 800750CC AFA40020 */ sw $a0, 0x20($sp)
-/* AEC270 800750D0 00811021 */ addu $v0, $a0, $at
-/* AEC274 800750D4 904E0B03 */ lbu $t6, 0xb03($v0)
-/* AEC278 800750D8 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016
-/* AEC27C 800750DC 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AEC280 800750E0 11C000A6 */ beqz $t6, .L8007537C
-/* AEC284 800750E4 00000000 */ nop
-/* AEC288 800750E8 90640000 */ lbu $a0, ($v1)
-/* AEC28C 800750EC 24010001 */ li $at, 1
-/* AEC290 800750F0 10800008 */ beqz $a0, .L80075114
-/* AEC294 800750F4 00000000 */ nop
-/* AEC298 800750F8 1081005E */ beq $a0, $at, .L80075274
-/* AEC29C 800750FC 3C088016 */ lui $t0, %hi(D_8015FD7C)
-/* AEC2A0 80075100 24050002 */ li $a1, 2
-/* AEC2A4 80075104 5085007E */ beql $a0, $a1, .L80075300
-/* AEC2A8 80075108 84440AB0 */ lh $a0, 0xab0($v0)
-/* AEC2AC 8007510C 1000009B */ b .L8007537C
-/* AEC2B0 80075110 00000000 */ nop
-.L80075114:
-/* AEC2B4 80075114 0C03F66B */ jal Rand_ZeroOne
-/* AEC2B8 80075118 00000000 */ nop
-/* AEC2BC 8007511C 3C018014 */ lui $at, %hi(D_8013C7F8)
-/* AEC2C0 80075120 C424C7F8 */ lwc1 $f4, %lo(D_8013C7F8)($at)
-/* AEC2C4 80075124 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016
-/* AEC2C8 80075128 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AEC2CC 8007512C 4604003C */ c.lt.s $f0, $f4
-/* AEC2D0 80075130 3C014248 */ li $at, 0x42480000 # 0.000000
-/* AEC2D4 80075134 45000006 */ bc1f .L80075150
-/* AEC2D8 80075138 00000000 */ nop
-/* AEC2DC 8007513C C4660008 */ lwc1 $f6, 8($v1)
-/* AEC2E0 80075140 44814000 */ mtc1 $at, $f8
-/* AEC2E4 80075144 00000000 */ nop
-/* AEC2E8 80075148 46083280 */ add.s $f10, $f6, $f8
-/* AEC2EC 8007514C E46A0008 */ swc1 $f10, 8($v1)
-.L80075150:
-/* AEC2F0 80075150 0C03F66B */ jal Rand_ZeroOne
-/* AEC2F4 80075154 00000000 */ nop
-/* AEC2F8 80075158 3C038016 */ lui $v1, %hi(D_8015FD70)
-/* AEC2FC 8007515C 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AEC300 80075160 C4700008 */ lwc1 $f16, 8($v1)
-/* AEC304 80075164 3C0143FA */ li $at, 0x43FA0000 # 0.000000
-/* AEC308 80075168 44812000 */ mtc1 $at, $f4
-/* AEC30C 8007516C 46008480 */ add.s $f18, $f16, $f0
-/* AEC310 80075170 240400C8 */ li $a0, 200
-/* AEC314 80075174 240F00FF */ li $t7, 255
-/* AEC318 80075178 E4720008 */ swc1 $f18, 8($v1)
-/* AEC31C 8007517C C4660008 */ lwc1 $f6, 8($v1)
-/* AEC320 80075180 4606203C */ c.lt.s $f4, $f6
-/* AEC324 80075184 00000000 */ nop
-/* AEC328 80075188 45000038 */ bc1f .L8007526C
-/* AEC32C 8007518C 00000000 */ nop
-/* AEC330 80075190 44804000 */ mtc1 $zero, $f8
-/* AEC334 80075194 A0640001 */ sb $a0, 1($v1)
-/* AEC338 80075198 A0640002 */ sb $a0, 2($v1)
-/* AEC33C 8007519C A06F0003 */ sb $t7, 3($v1)
-/* AEC340 800751A0 A0640004 */ sb $a0, 4($v1)
-/* AEC344 800751A4 0C03F66B */ jal Rand_ZeroOne
-/* AEC348 800751A8 E4680008 */ swc1 $f8, 8($v1)
-/* AEC34C 800751AC 3C018014 */ lui $at, %hi(D_8013C7FC)
-/* AEC350 800751B0 C42AC7FC */ lwc1 $f10, %lo(D_8013C7FC)($at)
-/* AEC354 800751B4 24050001 */ li $a1, 1
-/* AEC358 800751B8 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEC35C 800751BC 460A0402 */ mul.s $f16, $f0, $f10
-/* AEC360 800751C0 8FA40020 */ lw $a0, 0x20($sp)
-/* AEC364 800751C4 4458F800 */ cfc1 $t8, $31
-/* AEC368 800751C8 44C5F800 */ ctc1 $a1, $31
-/* AEC36C 800751CC 00000000 */ nop
-/* AEC370 800751D0 460084A4 */ cvt.w.s $f18, $f16
-/* AEC374 800751D4 4445F800 */ cfc1 $a1, $31
-/* AEC378 800751D8 00000000 */ nop
-/* AEC37C 800751DC 30A50078 */ andi $a1, $a1, 0x78
-/* AEC380 800751E0 50A00013 */ beql $a1, $zero, .L80075230
-/* AEC384 800751E4 44059000 */ mfc1 $a1, $f18
-/* AEC388 800751E8 44819000 */ mtc1 $at, $f18
-/* AEC38C 800751EC 24050001 */ li $a1, 1
-/* AEC390 800751F0 46128481 */ sub.s $f18, $f16, $f18
-/* AEC394 800751F4 44C5F800 */ ctc1 $a1, $31
-/* AEC398 800751F8 00000000 */ nop
-/* AEC39C 800751FC 460094A4 */ cvt.w.s $f18, $f18
-/* AEC3A0 80075200 4445F800 */ cfc1 $a1, $31
-/* AEC3A4 80075204 00000000 */ nop
-/* AEC3A8 80075208 30A50078 */ andi $a1, $a1, 0x78
-/* AEC3AC 8007520C 14A00005 */ bnez $a1, .L80075224
-/* AEC3B0 80075210 00000000 */ nop
-/* AEC3B4 80075214 44059000 */ mfc1 $a1, $f18
-/* AEC3B8 80075218 3C018000 */ lui $at, 0x8000
-/* AEC3BC 8007521C 10000007 */ b .L8007523C
-/* AEC3C0 80075220 00A12825 */ or $a1, $a1, $at
-.L80075224:
-/* AEC3C4 80075224 10000005 */ b .L8007523C
-/* AEC3C8 80075228 2405FFFF */ li $a1, -1
-/* AEC3CC 8007522C 44059000 */ mfc1 $a1, $f18
-.L80075230:
-/* AEC3D0 80075230 00000000 */ nop
-/* AEC3D4 80075234 04A0FFFB */ bltz $a1, .L80075224
-/* AEC3D8 80075238 00000000 */ nop
-.L8007523C:
-/* AEC3DC 8007523C 44D8F800 */ ctc1 $t8, $31
-/* AEC3E0 80075240 24A50001 */ addiu $a1, $a1, 1
-/* AEC3E4 80075244 0C01D4F1 */ jal func_800753C4
-/* AEC3E8 80075248 30A500FF */ andi $a1, $a1, 0xff
-/* AEC3EC 8007524C 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016
-/* AEC3F0 80075250 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AEC3F4 80075254 90790000 */ lbu $t9, ($v1)
-/* AEC3F8 80075258 3C088016 */ lui $t0, %hi(D_8015FD7C) # $t0, 0x8016
-/* AEC3FC 8007525C 2508FD7C */ addiu $t0, %lo(D_8015FD7C) # addiu $t0, $t0, -0x284
-/* AEC400 80075260 27290001 */ addiu $t1, $t9, 1
-/* AEC404 80075264 A5000000 */ sh $zero, ($t0)
-/* AEC408 80075268 A0690000 */ sb $t1, ($v1)
-.L8007526C:
-/* AEC40C 8007526C 10000043 */ b .L8007537C
-/* AEC410 80075270 00000000 */ nop
-.L80075274:
-/* AEC414 80075274 240400C8 */ li $a0, 200
-/* AEC418 80075278 240A00FF */ li $t2, 255
-/* AEC41C 8007527C A0640001 */ sb $a0, 1($v1)
-/* AEC420 80075280 A0640002 */ sb $a0, 2($v1)
-/* AEC424 80075284 A06A0003 */ sb $t2, 3($v1)
-/* AEC428 80075288 844B0AB0 */ lh $t3, 0xab0($v0)
-/* AEC42C 8007528C 844D0AB2 */ lh $t5, 0xab2($v0)
-/* AEC430 80075290 844F0AB4 */ lh $t7, 0xab4($v0)
-/* AEC434 80075294 256C0050 */ addiu $t4, $t3, 0x50
-/* AEC438 80075298 25AE0050 */ addiu $t6, $t5, 0x50
-/* AEC43C 8007529C 25F80064 */ addiu $t8, $t7, 0x64
-/* AEC440 800752A0 2508FD7C */ addiu $t0, %lo(D_8015FD7C)
-/* AEC444 800752A4 A44C0AB0 */ sh $t4, 0xab0($v0)
-/* AEC448 800752A8 A44E0AB2 */ sh $t6, 0xab2($v0)
-/* AEC44C 800752AC A4580AB4 */ sh $t8, 0xab4($v0)
-/* AEC450 800752B0 85190000 */ lh $t9, ($t0)
-/* AEC454 800752B4 906B0004 */ lbu $t3, 4($v1)
-/* AEC458 800752B8 2404000F */ li $a0, 15
-/* AEC45C 800752BC 27290064 */ addiu $t1, $t9, 0x64
-/* AEC460 800752C0 A5090000 */ sh $t1, ($t0)
-/* AEC464 800752C4 850A0000 */ lh $t2, ($t0)
-/* AEC468 800752C8 00002825 */ move $a1, $zero
-/* AEC46C 800752CC 014B082A */ slt $at, $t2, $t3
-/* AEC470 800752D0 1420002A */ bnez $at, .L8007537C
-/* AEC474 800752D4 00000000 */ nop
-/* AEC478 800752D8 0C03DB56 */ jal func_800F6D58
-/* AEC47C 800752DC 00003025 */ move $a2, $zero
-/* AEC480 800752E0 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016
-/* AEC484 800752E4 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AEC488 800752E8 906C0000 */ lbu $t4, ($v1)
-/* AEC48C 800752EC A0600004 */ sb $zero, 4($v1)
-/* AEC490 800752F0 258D0001 */ addiu $t5, $t4, 1
-/* AEC494 800752F4 10000021 */ b .L8007537C
-/* AEC498 800752F8 A06D0000 */ sb $t5, ($v1)
-/* AEC49C 800752FC 84440AB0 */ lh $a0, 0xab0($v0)
-.L80075300:
-/* AEC4A0 80075300 3C088016 */ lui $t0, %hi(D_8015FD7C) # $t0, 0x8016
-/* AEC4A4 80075304 2508FD7C */ addiu $t0, %lo(D_8015FD7C) # addiu $t0, $t0, -0x284
-/* AEC4A8 80075308 58800007 */ blezl $a0, .L80075328
-/* AEC4AC 8007530C 84440AB4 */ lh $a0, 0xab4($v0)
-/* AEC4B0 80075310 844F0AB2 */ lh $t7, 0xab2($v0)
-/* AEC4B4 80075314 248EFFF6 */ addiu $t6, $a0, -0xa
-/* AEC4B8 80075318 A44E0AB0 */ sh $t6, 0xab0($v0)
-/* AEC4BC 8007531C 25F8FFF6 */ addiu $t8, $t7, -0xa
-/* AEC4C0 80075320 A4580AB2 */ sh $t8, 0xab2($v0)
-/* AEC4C4 80075324 84440AB4 */ lh $a0, 0xab4($v0)
-.L80075328:
-/* AEC4C8 80075328 18800002 */ blez $a0, .L80075334
-/* AEC4CC 8007532C 2499FFF6 */ addiu $t9, $a0, -0xa
-/* AEC4D0 80075330 A4590AB4 */ sh $t9, 0xab4($v0)
-.L80075334:
-/* AEC4D4 80075334 85090000 */ lh $t1, ($t0)
-/* AEC4D8 80075338 906B0004 */ lbu $t3, 4($v1)
-/* AEC4DC 8007533C 252AFFF6 */ addiu $t2, $t1, -0xa
-/* AEC4E0 80075340 A50A0000 */ sh $t2, ($t0)
-/* AEC4E4 80075344 850C0000 */ lh $t4, ($t0)
-/* AEC4E8 80075348 016C082A */ slt $at, $t3, $t4
-/* AEC4EC 8007534C 1420000B */ bnez $at, .L8007537C
-/* AEC4F0 80075350 00000000 */ nop
-/* AEC4F4 80075354 A4400AB0 */ sh $zero, 0xab0($v0)
-/* AEC4F8 80075358 A4400AB2 */ sh $zero, 0xab2($v0)
-/* AEC4FC 8007535C A4400AB4 */ sh $zero, 0xab4($v0)
-/* AEC500 80075360 A0600000 */ sb $zero, ($v1)
-/* AEC504 80075364 904D0B03 */ lbu $t5, 0xb03($v0)
-/* AEC508 80075368 8FAE0020 */ lw $t6, 0x20($sp)
-/* AEC50C 8007536C 3C010001 */ lui $at, 1
-/* AEC510 80075370 14AD0002 */ bne $a1, $t5, .L8007537C
-/* AEC514 80075374 002E0821 */ addu $at, $at, $t6
-/* AEC518 80075378 A0200B03 */ sb $zero, 0xb03($at)
-.L8007537C:
-/* AEC51C 8007537C 3C038016 */ lui $v1, %hi(D_8015FD70) # $v1, 0x8016
-/* AEC520 80075380 2463FD70 */ addiu $v1, %lo(D_8015FD70) # addiu $v1, $v1, -0x290
-/* AEC524 80075384 906F0000 */ lbu $t7, ($v1)
-/* AEC528 80075388 3C088016 */ lui $t0, %hi(D_8015FD7C) # $t0, 0x8016
-/* AEC52C 8007538C 2508FD7C */ addiu $t0, %lo(D_8015FD7C) # addiu $t0, $t0, -0x284
-/* AEC530 80075390 51E00009 */ beql $t7, $zero, .L800753B8
-/* AEC534 80075394 8FBF001C */ lw $ra, 0x1c($sp)
-/* AEC538 80075398 85180000 */ lh $t8, ($t0)
-/* AEC53C 8007539C 8FA40020 */ lw $a0, 0x20($sp)
-/* AEC540 800753A0 90650001 */ lbu $a1, 1($v1)
-/* AEC544 800753A4 90660002 */ lbu $a2, 2($v1)
-/* AEC548 800753A8 90670003 */ lbu $a3, 3($v1)
-/* AEC54C 800753AC 0C01D3FD */ jal func_80074FF4
-/* AEC550 800753B0 AFB80010 */ sw $t8, 0x10($sp)
-/* AEC554 800753B4 8FBF001C */ lw $ra, 0x1c($sp)
-.L800753B8:
-/* AEC558 800753B8 27BD0020 */ addiu $sp, $sp, 0x20
-/* AEC55C 800753BC 03E00008 */ jr $ra
-/* AEC560 800753C0 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800753C4.s b/asm/non_matchings/code/z_kankyo/func_800753C4.s
deleted file mode 100644
index 2aab62e480..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800753C4.s
+++ /dev/null
@@ -1,31 +0,0 @@
-glabel func_800753C4
-/* AEC564 800753C4 AFA50004 */ sw $a1, 4($sp)
-/* AEC568 800753C8 3C078016 */ lui $a3, %hi(D_8015FD10) # $a3, 0x8016
-/* AEC56C 800753CC 30A500FF */ andi $a1, $a1, 0xff
-/* AEC570 800753D0 AFA40000 */ sw $a0, ($sp)
-/* AEC574 800753D4 00001025 */ move $v0, $zero
-/* AEC578 800753D8 24E7FD10 */ addiu $a3, %lo(D_8015FD10) # addiu $a3, $a3, -0x2f0
-/* AEC57C 800753DC 00001825 */ move $v1, $zero
-/* AEC580 800753E0 240600FF */ li $a2, 255
-/* AEC584 800753E4 00037140 */ sll $t6, $v1, 5
-.L800753E8:
-/* AEC588 800753E8 00EE2021 */ addu $a0, $a3, $t6
-/* AEC58C 800753EC 908F0000 */ lbu $t7, ($a0)
-/* AEC590 800753F0 24630001 */ addiu $v1, $v1, 1
-/* AEC594 800753F4 00031C00 */ sll $v1, $v1, 0x10
-/* AEC598 800753F8 14CF0007 */ bne $a2, $t7, .L80075418
-/* AEC59C 800753FC 00031C03 */ sra $v1, $v1, 0x10
-/* AEC5A0 80075400 24420001 */ addiu $v0, $v0, 1
-/* AEC5A4 80075404 00021400 */ sll $v0, $v0, 0x10
-/* AEC5A8 80075408 00021403 */ sra $v0, $v0, 0x10
-/* AEC5AC 8007540C 0045082A */ slt $at, $v0, $a1
-/* AEC5B0 80075410 10200004 */ beqz $at, .L80075424
-/* AEC5B4 80075414 A0800000 */ sb $zero, ($a0)
-.L80075418:
-/* AEC5B8 80075418 28610003 */ slti $at, $v1, 3
-/* AEC5BC 8007541C 5420FFF2 */ bnezl $at, .L800753E8
-/* AEC5C0 80075420 00037140 */ sll $t6, $v1, 5
-.L80075424:
-/* AEC5C4 80075424 03E00008 */ jr $ra
-/* AEC5C8 80075428 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8007542C.s b/asm/non_matchings/code/z_kankyo/func_8007542C.s
deleted file mode 100644
index 846c6af305..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8007542C.s
+++ /dev/null
@@ -1,323 +0,0 @@
-.rdata
-glabel D_8013C66C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C67C
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C68C
- .asciz "../z_kankyo.c"
- .balign 4
-
-.late_rodata
-glabel D_8013C800
- .float 5000
-
-glabel D_8013C804
- .float 9500
-
-glabel D_8013C808
- .float 0.017453292
-
-.text
-glabel func_8007542C
-/* AEC5CC 8007542C 27BDFF20 */ addiu $sp, $sp, -0xe0
-/* AEC5D0 80075430 3C0F8012 */ lui $t7, %hi(D_8011FE88) # $t7, 0x8012
-/* AEC5D4 80075434 AFBF0064 */ sw $ra, 0x64($sp)
-/* AEC5D8 80075438 AFB70060 */ sw $s7, 0x60($sp)
-/* AEC5DC 8007543C AFB6005C */ sw $s6, 0x5c($sp)
-/* AEC5E0 80075440 AFB50058 */ sw $s5, 0x58($sp)
-/* AEC5E4 80075444 AFB40054 */ sw $s4, 0x54($sp)
-/* AEC5E8 80075448 AFB30050 */ sw $s3, 0x50($sp)
-/* AEC5EC 8007544C AFB2004C */ sw $s2, 0x4c($sp)
-/* AEC5F0 80075450 AFB10048 */ sw $s1, 0x48($sp)
-/* AEC5F4 80075454 AFB00044 */ sw $s0, 0x44($sp)
-/* AEC5F8 80075458 F7BE0038 */ sdc1 $f30, 0x38($sp)
-/* AEC5FC 8007545C F7BC0030 */ sdc1 $f28, 0x30($sp)
-/* AEC600 80075460 F7BA0028 */ sdc1 $f26, 0x28($sp)
-/* AEC604 80075464 F7B80020 */ sdc1 $f24, 0x20($sp)
-/* AEC608 80075468 F7B60018 */ sdc1 $f22, 0x18($sp)
-/* AEC60C 8007546C F7B40010 */ sdc1 $f20, 0x10($sp)
-/* AEC610 80075470 AFA500E4 */ sw $a1, 0xe4($sp)
-/* AEC614 80075474 25EFFE88 */ addiu $t7, %lo(D_8011FE88) # addiu $t7, $t7, -0x178
-/* AEC618 80075478 8DF90000 */ lw $t9, ($t7)
-/* AEC61C 8007547C 27AE00B8 */ addiu $t6, $sp, 0xb8
-/* AEC620 80075480 8DF80004 */ lw $t8, 4($t7)
-/* AEC624 80075484 ADD90000 */ sw $t9, ($t6)
-/* AEC628 80075488 8DF90008 */ lw $t9, 8($t7)
-/* AEC62C 8007548C 3C098012 */ lui $t1, %hi(D_8011FE94) # $t1, 0x8012
-/* AEC630 80075490 2529FE94 */ addiu $t1, %lo(D_8011FE94) # addiu $t1, $t1, -0x16c
-/* AEC634 80075494 ADD80004 */ sw $t8, 4($t6)
-/* AEC638 80075498 ADD90008 */ sw $t9, 8($t6)
-/* AEC63C 8007549C 8D2B0000 */ lw $t3, ($t1)
-/* AEC640 800754A0 27A800AC */ addiu $t0, $sp, 0xac
-/* AEC644 800754A4 8D2A0004 */ lw $t2, 4($t1)
-/* AEC648 800754A8 AD0B0000 */ sw $t3, ($t0)
-/* AEC64C 800754AC 8D2B0008 */ lw $t3, 8($t1)
-/* AEC650 800754B0 AD0A0004 */ sw $t2, 4($t0)
-/* AEC654 800754B4 00809825 */ move $s3, $a0
-/* AEC658 800754B8 AD0B0008 */ sw $t3, 8($t0)
-/* AEC65C 800754BC 8C850000 */ lw $a1, ($a0)
-/* AEC660 800754C0 3C068014 */ lui $a2, %hi(D_8013C66C) # $a2, 0x8014
-/* AEC664 800754C4 24C6C66C */ addiu $a2, %lo(D_8013C66C) # addiu $a2, $a2, -0x3994
-/* AEC668 800754C8 27A40098 */ addiu $a0, $sp, 0x98
-/* AEC66C 800754CC 24070CB5 */ li $a3, 3253
-/* AEC670 800754D0 0C031AB1 */ jal Graph_OpenDisps
-/* AEC674 800754D4 00A09025 */ move $s2, $a1
-/* AEC678 800754D8 3C018014 */ lui $at, %hi(D_8013C800)
-/* AEC67C 800754DC C43EC800 */ lwc1 $f30, %lo(D_8013C800)($at)
-/* AEC680 800754E0 3C018014 */ lui $at, %hi(D_8013C804)
-/* AEC684 800754E4 C43CC804 */ lwc1 $f28, %lo(D_8013C804)($at)
-/* AEC688 800754E8 3C0141B0 */ li $at, 0x41B00000 # 0.000000
-/* AEC68C 800754EC 4481D000 */ mtc1 $at, $f26
-/* AEC690 800754F0 3C018014 */ lui $at, %hi(D_8013C808)
-/* AEC694 800754F4 C438C808 */ lwc1 $f24, %lo(D_8013C808)($at)
-/* AEC698 800754F8 3C013F00 */ li $at, 0x3F000000 # 0.000000
-/* AEC69C 800754FC 4481B000 */ mtc1 $at, $f22
-/* AEC6A0 80075500 0000A025 */ move $s4, $zero
-/* AEC6A4 80075504 24170002 */ li $s7, 2
-.L80075508:
-/* AEC6A8 80075508 3C0D8016 */ lui $t5, %hi(D_8015FD10)
-/* AEC6AC 8007550C 25ADFD10 */ addiu $t5, %lo(D_8015FD10) # addiu $t5, $t5, -0x2f0
-/* AEC6B0 80075510 00146140 */ sll $t4, $s4, 5
-/* AEC6B4 80075514 018D8021 */ addu $s0, $t4, $t5
-/* AEC6B8 80075518 92030000 */ lbu $v1, ($s0)
-/* AEC6BC 8007551C 24010001 */ li $at, 1
-/* AEC6C0 80075520 50600008 */ beql $v1, $zero, .L80075544
-/* AEC6C4 80075524 C66E00E0 */ lwc1 $f14, 0xe0($s3)
-/* AEC6C8 80075528 50610047 */ beql $v1, $at, .L80075648
-/* AEC6CC 8007552C 920C001F */ lbu $t4, 0x1f($s0)
-/* AEC6D0 80075530 5077004F */ beql $v1, $s7, .L80075670
-/* AEC6D4 80075534 9202001E */ lbu $v0, 0x1e($s0)
-/* AEC6D8 80075538 10000055 */ b .L80075690
-/* AEC6DC 8007553C 00000000 */ nop
-/* AEC6E0 80075540 C66E00E0 */ lwc1 $f14, 0xe0($s3)
-.L80075544:
-/* AEC6E4 80075544 C66400EC */ lwc1 $f4, 0xec($s3)
-/* AEC6E8 80075548 C66600F4 */ lwc1 $f6, 0xf4($s3)
-/* AEC6EC 8007554C C66800E8 */ lwc1 $f8, 0xe8($s3)
-/* AEC6F0 80075550 460E2081 */ sub.s $f2, $f4, $f14
-/* AEC6F4 80075554 46083301 */ sub.s $f12, $f6, $f8
-/* AEC6F8 80075558 46021282 */ mul.s $f10, $f2, $f2
-/* AEC6FC 8007555C 00000000 */ nop
-/* AEC700 80075560 460C6402 */ mul.s $f16, $f12, $f12
-/* AEC704 80075564 46105000 */ add.s $f0, $f10, $f16
-/* AEC708 80075568 46000004 */ sqrt.s $f0, $f0
-/* AEC70C 8007556C 46001483 */ div.s $f18, $f2, $f0
-/* AEC710 80075570 46006503 */ div.s $f20, $f12, $f0
-/* AEC714 80075574 461C9102 */ mul.s $f4, $f18, $f28
-/* AEC718 80075578 46047180 */ add.s $f6, $f14, $f4
-/* AEC71C 8007557C 0C03F66B */ jal Rand_ZeroOne
-/* AEC720 80075580 E6060010 */ swc1 $f6, 0x10($s0)
-/* AEC724 80075584 3C01447A */ li $at, 0x447A0000 # 0.000000
-/* AEC728 80075588 44814000 */ mtc1 $at, $f8
-/* AEC72C 8007558C 3C01457A */ li $at, 0x457A0000 # 0.000000
-/* AEC730 80075590 44818000 */ mtc1 $at, $f16
-/* AEC734 80075594 46080282 */ mul.s $f10, $f0, $f8
-/* AEC738 80075598 46105480 */ add.s $f18, $f10, $f16
-/* AEC73C 8007559C 461CA182 */ mul.s $f6, $f20, $f28
-/* AEC740 800755A0 E6120014 */ swc1 $f18, 0x14($s0)
-/* AEC744 800755A4 C66400E8 */ lwc1 $f4, 0xe8($s3)
-/* AEC748 800755A8 46062200 */ add.s $f8, $f4, $f6
-/* AEC74C 800755AC 0C03F66B */ jal Rand_ZeroOne
-/* AEC750 800755B0 E6080018 */ swc1 $f8, 0x18($s0)
-/* AEC754 800755B4 46160281 */ sub.s $f10, $f0, $f22
-/* AEC758 800755B8 44809000 */ mtc1 $zero, $f18
-/* AEC75C 800755BC 461E5402 */ mul.s $f16, $f10, $f30
-/* AEC760 800755C0 E6120008 */ swc1 $f18, 8($s0)
-/* AEC764 800755C4 0C03F66B */ jal Rand_ZeroOne
-/* AEC768 800755C8 E6100004 */ swc1 $f16, 4($s0)
-/* AEC76C 800755CC 46160101 */ sub.s $f4, $f0, $f22
-/* AEC770 800755D0 A200001E */ sb $zero, 0x1e($s0)
-/* AEC774 800755D4 461E2182 */ mul.s $f6, $f4, $f30
-/* AEC778 800755D8 0C03F66B */ jal Rand_ZeroOne
-/* AEC77C 800755DC E606000C */ swc1 $f6, 0xc($s0)
-/* AEC780 800755E0 46160201 */ sub.s $f8, $f0, $f22
-/* AEC784 800755E4 3C014220 */ li $at, 0x42200000 # 0.000000
-/* AEC788 800755E8 44815000 */ mtc1 $at, $f10
-/* AEC78C 800755EC 00000000 */ nop
-/* AEC790 800755F0 460A4402 */ mul.s $f16, $f8, $f10
-/* AEC794 800755F4 4600848D */ trunc.w.s $f18, $f16
-/* AEC798 800755F8 440F9000 */ mfc1 $t7, $f18
-/* AEC79C 800755FC 0C03F66B */ jal Rand_ZeroOne
-/* AEC7A0 80075600 A20F001C */ sb $t7, 0x1c($s0)
-/* AEC7A4 80075604 46160101 */ sub.s $f4, $f0, $f22
-/* AEC7A8 80075608 3C014220 */ li $at, 0x42200000 # 0.000000
-/* AEC7AC 8007560C 44813000 */ mtc1 $at, $f6
-/* AEC7B0 80075610 920A0000 */ lbu $t2, ($s0)
-/* AEC7B4 80075614 00144080 */ sll $t0, $s4, 2
-/* AEC7B8 80075618 46062202 */ mul.s $f8, $f4, $f6
-/* AEC7BC 8007561C 01144023 */ subu $t0, $t0, $s4
-/* AEC7C0 80075620 25090003 */ addiu $t1, $t0, 3
-/* AEC7C4 80075624 254B0001 */ addiu $t3, $t2, 1
-/* AEC7C8 80075628 A209001F */ sb $t1, 0x1f($s0)
-/* AEC7CC 8007562C A20B0000 */ sb $t3, ($s0)
-/* AEC7D0 80075630 316300FF */ andi $v1, $t3, 0xff
-/* AEC7D4 80075634 4600428D */ trunc.w.s $f10, $f8
-/* AEC7D8 80075638 44195000 */ mfc1 $t9, $f10
-/* AEC7DC 8007563C 10000014 */ b .L80075690
-/* AEC7E0 80075640 A219001D */ sb $t9, 0x1d($s0)
-/* AEC7E4 80075644 920C001F */ lbu $t4, 0x1f($s0)
-.L80075648:
-/* AEC7E8 80075648 258DFFFF */ addiu $t5, $t4, -1
-/* AEC7EC 8007564C 31AE00FF */ andi $t6, $t5, 0xff
-/* AEC7F0 80075650 1DC00004 */ bgtz $t6, .L80075664
-/* AEC7F4 80075654 A20D001F */ sb $t5, 0x1f($s0)
-/* AEC7F8 80075658 920F0000 */ lbu $t7, ($s0)
-/* AEC7FC 8007565C 25F80001 */ addiu $t8, $t7, 1
-/* AEC800 80075660 A2180000 */ sb $t8, ($s0)
-.L80075664:
-/* AEC804 80075664 1000000A */ b .L80075690
-/* AEC808 80075668 92030000 */ lbu $v1, ($s0)
-/* AEC80C 8007566C 9202001E */ lbu $v0, 0x1e($s0)
-.L80075670:
-/* AEC810 80075670 240800FF */ li $t0, 255
-/* AEC814 80075674 28410007 */ slti $at, $v0, 7
-/* AEC818 80075678 10200003 */ beqz $at, .L80075688
-/* AEC81C 8007567C 24590001 */ addiu $t9, $v0, 1
-/* AEC820 80075680 10000002 */ b .L8007568C
-/* AEC824 80075684 A219001E */ sb $t9, 0x1e($s0)
-.L80075688:
-/* AEC828 80075688 A2080000 */ sb $t0, ($s0)
-.L8007568C:
-/* AEC82C 8007568C 92030000 */ lbu $v1, ($s0)
-.L80075690:
-/* AEC830 80075690 16E30069 */ bne $s7, $v1, .L80075838
-/* AEC834 80075694 00003825 */ move $a3, $zero
-/* AEC838 80075698 C6100004 */ lwc1 $f16, 4($s0)
-/* AEC83C 8007569C C6120010 */ lwc1 $f18, 0x10($s0)
-/* AEC840 800756A0 C608000C */ lwc1 $f8, 0xc($s0)
-/* AEC844 800756A4 C60A0018 */ lwc1 $f10, 0x18($s0)
-/* AEC848 800756A8 46128300 */ add.s $f12, $f16, $f18
-/* AEC84C 800756AC C6040008 */ lwc1 $f4, 8($s0)
-/* AEC850 800756B0 C6060014 */ lwc1 $f6, 0x14($s0)
-/* AEC854 800756B4 460A4400 */ add.s $f16, $f8, $f10
-/* AEC858 800756B8 3C150100 */ lui $s5, 0x100
-/* AEC85C 800756BC 3C160403 */ lui $s6, %hi(gEffLightningDL) # $s6, 0x403
-/* AEC860 800756C0 26D6CF30 */ addiu $s6, %lo(gEffLightningDL) # addiu $s6, $s6, -0x30d0
-/* AEC864 800756C4 44068000 */ mfc1 $a2, $f16
-/* AEC868 800756C8 26B50000 */ addiu $s5, $s5, 0
-/* AEC86C 800756CC 0C034261 */ jal Matrix_Translate
-/* AEC870 800756D0 46062380 */ add.s $f14, $f4, $f6
-/* AEC874 800756D4 8209001C */ lb $t1, 0x1c($s0)
-/* AEC878 800756D8 24050001 */ li $a1, 1
-/* AEC87C 800756DC 44899000 */ mtc1 $t1, $f18
-/* AEC880 800756E0 00000000 */ nop
-/* AEC884 800756E4 46809120 */ cvt.s.w $f4, $f18
-/* AEC888 800756E8 46182302 */ mul.s $f12, $f4, $f24
-/* AEC88C 800756EC 0C0342DC */ jal Matrix_RotateX
-/* AEC890 800756F0 00000000 */ nop
-/* AEC894 800756F4 820A001D */ lb $t2, 0x1d($s0)
-/* AEC898 800756F8 24050001 */ li $a1, 1
-/* AEC89C 800756FC 448A3000 */ mtc1 $t2, $f6
-/* AEC8A0 80075700 00000000 */ nop
-/* AEC8A4 80075704 46803220 */ cvt.s.w $f8, $f6
-/* AEC8A8 80075708 46184302 */ mul.s $f12, $f8, $f24
-/* AEC8AC 8007570C 0C0343B5 */ jal Matrix_RotateZ
-/* AEC8B0 80075710 00000000 */ nop
-/* AEC8B4 80075714 3C0142C8 */ li $at, 0x42C80000 # 0.000000
-/* AEC8B8 80075718 44817000 */ mtc1 $at, $f14
-/* AEC8BC 8007571C 4406D000 */ mfc1 $a2, $f26
-/* AEC8C0 80075720 4600D306 */ mov.s $f12, $f26
-/* AEC8C4 80075724 0C0342A3 */ jal Matrix_Scale
-/* AEC8C8 80075728 24070001 */ li $a3, 1
-/* AEC8CC 8007572C 8E4202D0 */ lw $v0, 0x2d0($s2)
-/* AEC8D0 80075730 3C0CFA00 */ lui $t4, 0xfa00
-/* AEC8D4 80075734 240DFF80 */ li $t5, -128
-/* AEC8D8 80075738 244B0008 */ addiu $t3, $v0, 8
-/* AEC8DC 8007573C AE4B02D0 */ sw $t3, 0x2d0($s2)
-/* AEC8E0 80075740 AC4C0000 */ sw $t4, ($v0)
-/* AEC8E4 80075744 AC4D0004 */ sw $t5, 4($v0)
-/* AEC8E8 80075748 8E4202D0 */ lw $v0, 0x2d0($s2)
-/* AEC8EC 8007574C 3C1800FF */ lui $t8, (0x00FFFF80 >> 16) # lui $t8, 0xff
-/* AEC8F0 80075750 3718FF80 */ ori $t8, (0x00FFFF80 & 0xFFFF) # ori $t8, $t8, 0xff80
-/* AEC8F4 80075754 244E0008 */ addiu $t6, $v0, 8
-/* AEC8F8 80075758 AE4E02D0 */ sw $t6, 0x2d0($s2)
-/* AEC8FC 8007575C 3C0FFB00 */ lui $t7, 0xfb00
-/* AEC900 80075760 AC4F0000 */ sw $t7, ($v0)
-/* AEC904 80075764 AC580004 */ sw $t8, 4($v0)
-/* AEC908 80075768 8E4202D0 */ lw $v0, 0x2d0($s2)
-/* AEC90C 8007576C 3C08DA38 */ lui $t0, (0xDA380003 >> 16) # lui $t0, 0xda38
-/* AEC910 80075770 35080003 */ ori $t0, (0xDA380003 & 0xFFFF) # ori $t0, $t0, 3
-/* AEC914 80075774 24590008 */ addiu $t9, $v0, 8
-/* AEC918 80075778 AE5902D0 */ sw $t9, 0x2d0($s2)
-/* AEC91C 8007577C 3C058014 */ lui $a1, %hi(D_8013C67C) # $a1, 0x8014
-/* AEC920 80075780 AC480000 */ sw $t0, ($v0)
-/* AEC924 80075784 8E640000 */ lw $a0, ($s3)
-/* AEC928 80075788 24A5C67C */ addiu $a1, %lo(D_8013C67C) # addiu $a1, $a1, -0x3984
-/* AEC92C 8007578C 24060D05 */ li $a2, 3333
-/* AEC930 80075790 0C0346A2 */ jal Matrix_NewMtx
-/* AEC934 80075794 00408825 */ move $s1, $v0
-/* AEC938 80075798 AE220004 */ sw $v0, 4($s1)
-/* AEC93C 8007579C 8E4202D0 */ lw $v0, 0x2d0($s2)
-/* AEC940 800757A0 3C0ADB06 */ lui $t2, (0xDB060020 >> 16) # lui $t2, 0xdb06
-/* AEC944 800757A4 354A0020 */ ori $t2, (0xDB060020 & 0xFFFF) # ori $t2, $t2, 0x20
-/* AEC948 800757A8 24490008 */ addiu $t1, $v0, 8
-/* AEC94C 800757AC AE4902D0 */ sw $t1, 0x2d0($s2)
-/* AEC950 800757B0 AC4A0000 */ sw $t2, ($v0)
-/* AEC954 800757B4 920B001E */ lbu $t3, 0x1e($s0)
-/* AEC958 800757B8 3C048012 */ lui $a0, %hi(D_8011FEA0)
-/* AEC95C 800757BC 3C198016 */ lui $t9, %hi(gSegments)
-/* AEC960 800757C0 000B6080 */ sll $t4, $t3, 2
-/* AEC964 800757C4 008C2021 */ addu $a0, $a0, $t4
-/* AEC968 800757C8 8C84FEA0 */ lw $a0, %lo(D_8011FEA0)($a0)
-/* AEC96C 800757CC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
-/* AEC970 800757D0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
-/* AEC974 800757D4 00047100 */ sll $t6, $a0, 4
-/* AEC978 800757D8 000E7F02 */ srl $t7, $t6, 0x1c
-/* AEC97C 800757DC 000FC080 */ sll $t8, $t7, 2
-/* AEC980 800757E0 0338C821 */ addu $t9, $t9, $t8
-/* AEC984 800757E4 8F396FA8 */ lw $t9, %lo(gSegments)($t9)
-/* AEC988 800757E8 00816824 */ and $t5, $a0, $at
-/* AEC98C 800757EC 3C018000 */ lui $at, 0x8000
-/* AEC990 800757F0 01B94021 */ addu $t0, $t5, $t9
-/* AEC994 800757F4 01014821 */ addu $t1, $t0, $at
-/* AEC998 800757F8 AC490004 */ sw $t1, 4($v0)
-/* AEC99C 800757FC 0C025314 */ jal func_80094C50
-/* AEC9A0 80075800 8E640000 */ lw $a0, ($s3)
-/* AEC9A4 80075804 8E4202D0 */ lw $v0, 0x2d0($s2)
-/* AEC9A8 80075808 3C0BDA38 */ lui $t3, (0xDA380001 >> 16) # lui $t3, 0xda38
-/* AEC9AC 8007580C 356B0001 */ ori $t3, (0xDA380001 & 0xFFFF) # ori $t3, $t3, 1
-/* AEC9B0 80075810 244A0008 */ addiu $t2, $v0, 8
-/* AEC9B4 80075814 AE4A02D0 */ sw $t2, 0x2d0($s2)
-/* AEC9B8 80075818 AC550004 */ sw $s5, 4($v0)
-/* AEC9BC 8007581C AC4B0000 */ sw $t3, ($v0)
-/* AEC9C0 80075820 8E4202D0 */ lw $v0, 0x2d0($s2)
-/* AEC9C4 80075824 3C0EDE00 */ lui $t6, 0xde00
-/* AEC9C8 80075828 244C0008 */ addiu $t4, $v0, 8
-/* AEC9CC 8007582C AE4C02D0 */ sw $t4, 0x2d0($s2)
-/* AEC9D0 80075830 AC560004 */ sw $s6, 4($v0)
-/* AEC9D4 80075834 AC4E0000 */ sw $t6, ($v0)
-.L80075838:
-/* AEC9D8 80075838 26940001 */ addiu $s4, $s4, 1
-/* AEC9DC 8007583C 0014A400 */ sll $s4, $s4, 0x10
-/* AEC9E0 80075840 0014A403 */ sra $s4, $s4, 0x10
-/* AEC9E4 80075844 2A810003 */ slti $at, $s4, 3
-/* AEC9E8 80075848 1420FF2F */ bnez $at, .L80075508
-/* AEC9EC 8007584C 00000000 */ nop
-/* AEC9F0 80075850 3C068014 */ lui $a2, %hi(D_8013C68C) # $a2, 0x8014
-/* AEC9F4 80075854 24C6C68C */ addiu $a2, %lo(D_8013C68C) # addiu $a2, $a2, -0x3974
-/* AEC9F8 80075858 27A40098 */ addiu $a0, $sp, 0x98
-/* AEC9FC 8007585C 8E650000 */ lw $a1, ($s3)
-/* AECA00 80075860 0C031AD5 */ jal Graph_CloseDisps
-/* AECA04 80075864 24070D19 */ li $a3, 3353
-/* AECA08 80075868 8FBF0064 */ lw $ra, 0x64($sp)
-/* AECA0C 8007586C D7B40010 */ ldc1 $f20, 0x10($sp)
-/* AECA10 80075870 D7B60018 */ ldc1 $f22, 0x18($sp)
-/* AECA14 80075874 D7B80020 */ ldc1 $f24, 0x20($sp)
-/* AECA18 80075878 D7BA0028 */ ldc1 $f26, 0x28($sp)
-/* AECA1C 8007587C D7BC0030 */ ldc1 $f28, 0x30($sp)
-/* AECA20 80075880 D7BE0038 */ ldc1 $f30, 0x38($sp)
-/* AECA24 80075884 8FB00044 */ lw $s0, 0x44($sp)
-/* AECA28 80075888 8FB10048 */ lw $s1, 0x48($sp)
-/* AECA2C 8007588C 8FB2004C */ lw $s2, 0x4c($sp)
-/* AECA30 80075890 8FB30050 */ lw $s3, 0x50($sp)
-/* AECA34 80075894 8FB40054 */ lw $s4, 0x54($sp)
-/* AECA38 80075898 8FB50058 */ lw $s5, 0x58($sp)
-/* AECA3C 8007589C 8FB6005C */ lw $s6, 0x5c($sp)
-/* AECA40 800758A0 8FB70060 */ lw $s7, 0x60($sp)
-/* AECA44 800758A4 03E00008 */ jr $ra
-/* AECA48 800758A8 27BD00E0 */ addiu $sp, $sp, 0xe0
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800758AC.s b/asm/non_matchings/code/z_kankyo/func_800758AC.s
deleted file mode 100644
index 734c32d4ba..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800758AC.s
+++ /dev/null
@@ -1,214 +0,0 @@
-.rdata
-glabel D_8013C69C
- .asciz "\n\n\nBGM設定game_play->sound_info.BGM=[%d] old_bgm=[%d]\n\n"
- # EUC-JP: 設定 | Configuration
- .balign 4
-
-glabel D_8013C6D4
- .asciz "\n-----------------\n"
- .balign 4
-
-glabel D_8013C6E8
- .asciz "\n 強制BGM=[%d]"
- # EUC-JP: 強制BGM | Forced BGM
- .balign 4
-
-glabel D_8013C6FC
- .asciz "\n BGM=[%d]"
- # EUC-JP: BGM
- .balign 4
-
-glabel D_8013C710
- .asciz "\n エンブ=[%d]"
- # EUC-JP: エンブ | Emblem?
- .balign 4
-
-glabel D_8013C724
- .asciz "\n status=[%d]"
- .balign 4
-
-.text
-glabel func_800758AC
-/* AECA4C 800758AC 27BDFFE0 */ addiu $sp, $sp, -0x20
-/* AECA50 800758B0 3C010001 */ lui $at, 1
-/* AECA54 800758B4 AFBF0014 */ sw $ra, 0x14($sp)
-/* AECA58 800758B8 AFA40020 */ sw $a0, 0x20($sp)
-/* AECA5C 800758BC 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AECA60 800758C0 00240821 */ addu $at, $at, $a0
-/* AECA64 800758C4 240E00FF */ li $t6, 255
-/* AECA68 800758C8 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AECA6C 800758CC A02E0B04 */ sb $t6, 0xb04($at)
-/* AECA70 800758D0 8D020000 */ lw $v0, ($t0)
-/* AECA74 800758D4 240104DE */ li $at, 1246
-/* AECA78 800758D8 10410003 */ beq $v0, $at, .L800758E8
-/* AECA7C 800758DC 240105E0 */ li $at, 1504
-/* AECA80 800758E0 54410007 */ bnel $v0, $at, .L80075900
-/* AECA84 800758E4 9503140E */ lhu $v1, 0x140e($t0)
-.L800758E8:
-/* AECA88 800758E8 0C03DBED */ jal func_800F6FB4
-/* AECA8C 800758EC 24040004 */ li $a0, 4
-/* AECA90 800758F0 3C038016 */ lui $v1, %hi(gSaveContext+0x140e) # $v1, 0x8016
-/* AECA94 800758F4 10000071 */ b .L80075ABC
-/* AECA98 800758F8 9463FA6E */ lhu $v1, %lo(gSaveContext+0x140e)($v1)
-/* AECA9C 800758FC 9503140E */ lhu $v1, 0x140e($t0)
-.L80075900:
-/* AECAA0 80075900 8FB80020 */ lw $t8, 0x20($sp)
-/* AECAA4 80075904 5060000C */ beql $v1, $zero, .L80075938
-/* AECAA8 80075908 930407A4 */ lbu $a0, 0x7a4($t8)
-/* AECAAC 8007590C 0C01DD80 */ jal func_80077600
-/* AECAB0 80075910 00000000 */ nop
-/* AECAB4 80075914 14400003 */ bnez $v0, .L80075924
-/* AECAB8 80075918 3C028016 */ lui $v0, %hi(gSaveContext+0x140e) # $v0, 0x8016
-/* AECABC 8007591C 0C03E803 */ jal Audio_QueueSeqCmd
-/* AECAC0 80075920 9444FA6E */ lhu $a0, %lo(gSaveContext+0x140e)($v0)
-.L80075924:
-/* AECAC4 80075924 3C018016 */ lui $at, %hi(gSaveContext+0x140e) # $at, 0x8016
-/* AECAC8 80075928 A420FA6E */ sh $zero, %lo(gSaveContext+0x140e)($at)
-/* AECACC 8007592C 10000063 */ b .L80075ABC
-/* AECAD0 80075930 00001825 */ move $v1, $zero
-/* AECAD4 80075934 930407A4 */ lbu $a0, 0x7a4($t8)
-.L80075938:
-/* AECAD8 80075938 2401007F */ li $at, 127
-/* AECADC 8007593C 8FA90020 */ lw $t1, 0x20($sp)
-/* AECAE0 80075940 1481000D */ bne $a0, $at, .L80075978
-/* AECAE4 80075944 00803825 */ move $a3, $a0
-/* AECAE8 80075948 930507A5 */ lbu $a1, 0x7a5($t8)
-/* AECAEC 8007594C 24010013 */ li $at, 19
-/* AECAF0 80075950 50A10079 */ beql $a1, $at, .L80075B38
-/* AECAF4 80075954 8FBF0014 */ lw $ra, 0x14($sp)
-/* AECAF8 80075958 911913E1 */ lbu $t9, 0x13e1($t0)
-/* AECAFC 8007595C 10B90057 */ beq $a1, $t9, .L80075ABC
-/* AECB00 80075960 00000000 */ nop
-/* AECB04 80075964 0C03DBED */ jal func_800F6FB4
-/* AECB08 80075968 30A400FF */ andi $a0, $a1, 0xff
-/* AECB0C 8007596C 3C038016 */ lui $v1, %hi(gSaveContext+0x140e) # $v1, 0x8016
-/* AECB10 80075970 10000052 */ b .L80075ABC
-/* AECB14 80075974 9463FA6E */ lhu $v1, %lo(gSaveContext+0x140e)($v1)
-.L80075978:
-/* AECB18 80075978 912507A5 */ lbu $a1, 0x7a5($t1)
-/* AECB1C 8007597C 24010013 */ li $at, 19
-/* AECB20 80075980 14A10011 */ bne $a1, $at, .L800759C8
-/* AECB24 80075984 00A03025 */ move $a2, $a1
-/* AECB28 80075988 3C048014 */ lui $a0, %hi(D_8013C69C) # $a0, 0x8014
-/* AECB2C 8007598C 2484C69C */ addiu $a0, %lo(D_8013C69C) # addiu $a0, $a0, -0x3964
-/* AECB30 80075990 910613E0 */ lbu $a2, 0x13e0($t0)
-/* AECB34 80075994 0C00084C */ jal osSyncPrintf
-/* AECB38 80075998 00E02825 */ move $a1, $a3
-/* AECB3C 8007599C 8FAA0020 */ lw $t2, 0x20($sp)
-/* AECB40 800759A0 3C0B8016 */ lui $t3, %hi(gSaveContext+0x13e0) # $t3, 0x8016
-/* AECB44 800759A4 916BFA40 */ lbu $t3, %lo(gSaveContext+0x13e0)($t3)
-/* AECB48 800759A8 914407A4 */ lbu $a0, 0x7a4($t2)
-/* AECB4C 800759AC 108B0003 */ beq $a0, $t3, .L800759BC
-/* AECB50 800759B0 00000000 */ nop
-/* AECB54 800759B4 0C03D554 */ jal func_800F5550
-/* AECB58 800759B8 00000000 */ nop
-.L800759BC:
-/* AECB5C 800759BC 3C038016 */ lui $v1, %hi(gSaveContext+0x140e) # $v1, 0x8016
-/* AECB60 800759C0 1000003E */ b .L80075ABC
-/* AECB64 800759C4 9463FA6E */ lhu $v1, %lo(gSaveContext+0x140e)($v1)
-.L800759C8:
-/* AECB68 800759C8 9502000C */ lhu $v0, 0xc($t0)
-/* AECB6C 800759CC 28414AAB */ slti $at, $v0, 0x4aab
-/* AECB70 800759D0 14200012 */ bnez $at, .L80075A1C
-/* AECB74 800759D4 3401B71D */ li $at, 46877
-/* AECB78 800759D8 0041082A */ slt $at, $v0, $at
-/* AECB7C 800759DC 50200010 */ beql $at, $zero, .L80075A20
-/* AECB80 800759E0 910F13E1 */ lbu $t7, 0x13e1($t0)
-/* AECB84 800759E4 910C13E0 */ lbu $t4, 0x13e0($t0)
-/* AECB88 800759E8 50EC0006 */ beql $a3, $t4, .L80075A04
-/* AECB8C 800759EC 8FAE0020 */ lw $t6, 0x20($sp)
-/* AECB90 800759F0 0C03D554 */ jal func_800F5550
-/* AECB94 800759F4 00000000 */ nop
-/* AECB98 800759F8 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AECB9C 800759FC 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AECBA0 80075A00 8FAE0020 */ lw $t6, 0x20($sp)
-.L80075A04:
-/* AECBA4 80075A04 3C010001 */ lui $at, 1
-/* AECBA8 80075A08 240D0001 */ li $t5, 1
-/* AECBAC 80075A0C 002E0821 */ addu $at, $at, $t6
-/* AECBB0 80075A10 A02D0B04 */ sb $t5, 0xb04($at)
-/* AECBB4 80075A14 10000029 */ b .L80075ABC
-/* AECBB8 80075A18 9503140E */ lhu $v1, 0x140e($t0)
-.L80075A1C:
-/* AECBBC 80075A1C 910F13E1 */ lbu $t7, 0x13e1($t0)
-.L80075A20:
-/* AECBC0 80075A20 50CF0008 */ beql $a2, $t7, .L80075A44
-/* AECBC4 80075A24 3401B71D */ li $at, 46877
-/* AECBC8 80075A28 0C03DBED */ jal func_800F6FB4
-/* AECBCC 80075A2C 30A400FF */ andi $a0, $a1, 0xff
-/* AECBD0 80075A30 3C028016 */ lui $v0, %hi(gSaveContext+0xc) # $v0, 0x8016
-/* AECBD4 80075A34 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
-/* AECBD8 80075A38 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0
-/* AECBDC 80075A3C 9442E66C */ lhu $v0, %lo(gSaveContext+0xc)($v0)
-/* AECBE0 80075A40 3401B71D */ li $at, 46877
-.L80075A44:
-/* AECBE4 80075A44 0041082A */ slt $at, $v0, $at
-/* AECBE8 80075A48 1420000A */ bnez $at, .L80075A74
-/* AECBEC 80075A4C 3401CAAC */ li $at, 51884
-/* AECBF0 80075A50 0041082A */ slt $at, $v0, $at
-/* AECBF4 80075A54 10200007 */ beqz $at, .L80075A74
-/* AECBF8 80075A58 8FB90020 */ lw $t9, 0x20($sp)
-/* AECBFC 80075A5C 3C010001 */ lui $at, 1
-/* AECC00 80075A60 00390821 */ addu $at, $at, $t9
-/* AECC04 80075A64 24180003 */ li $t8, 3
-/* AECC08 80075A68 A0380B04 */ sb $t8, 0xb04($at)
-/* AECC0C 80075A6C 10000013 */ b .L80075ABC
-/* AECC10 80075A70 9503140E */ lhu $v1, 0x140e($t0)
-.L80075A74:
-/* AECC14 80075A74 3401CAAD */ li $at, 51885
-/* AECC18 80075A78 0041082A */ slt $at, $v0, $at
-/* AECC1C 80075A7C 10200004 */ beqz $at, .L80075A90
-/* AECC20 80075A80 8FAA0020 */ lw $t2, 0x20($sp)
-/* AECC24 80075A84 28414555 */ slti $at, $v0, 0x4555
-/* AECC28 80075A88 10200007 */ beqz $at, .L80075AA8
-/* AECC2C 80075A8C 8FAC0020 */ lw $t4, 0x20($sp)
-.L80075A90:
-/* AECC30 80075A90 3C010001 */ lui $at, 1
-/* AECC34 80075A94 002A0821 */ addu $at, $at, $t2
-/* AECC38 80075A98 24090005 */ li $t1, 5
-/* AECC3C 80075A9C A0290B04 */ sb $t1, 0xb04($at)
-/* AECC40 80075AA0 10000006 */ b .L80075ABC
-/* AECC44 80075AA4 9503140E */ lhu $v1, 0x140e($t0)
-.L80075AA8:
-/* AECC48 80075AA8 3C010001 */ lui $at, 1
-/* AECC4C 80075AAC 002C0821 */ addu $at, $at, $t4
-/* AECC50 80075AB0 240B0007 */ li $t3, 7
-/* AECC54 80075AB4 A02B0B04 */ sb $t3, 0xb04($at)
-/* AECC58 80075AB8 9503140E */ lhu $v1, 0x140e($t0)
-.L80075ABC:
-/* AECC5C 80075ABC 3C048014 */ lui $a0, %hi(D_8013C6D4) # $a0, 0x8014
-/* AECC60 80075AC0 2484C6D4 */ addiu $a0, %lo(D_8013C6D4) # addiu $a0, $a0, -0x392c
-/* AECC64 80075AC4 0C00084C */ jal osSyncPrintf
-/* AECC68 80075AC8 3065FFFF */ andi $a1, $v1, 0xffff
-/* AECC6C 80075ACC 3C028016 */ lui $v0, %hi(gSaveContext+0x140e) # $v0, 0x8016
-/* AECC70 80075AD0 3C048014 */ lui $a0, %hi(D_8013C6E8) # $a0, 0x8014
-/* AECC74 80075AD4 2484C6E8 */ addiu $a0, %lo(D_8013C6E8) # addiu $a0, $a0, -0x3918
-/* AECC78 80075AD8 0C00084C */ jal osSyncPrintf
-/* AECC7C 80075ADC 9445FA6E */ lhu $a1, %lo(gSaveContext+0x140e)($v0)
-/* AECC80 80075AE0 8FAD0020 */ lw $t5, 0x20($sp)
-/* AECC84 80075AE4 3C048014 */ lui $a0, %hi(D_8013C6FC) # $a0, 0x8014
-/* AECC88 80075AE8 2484C6FC */ addiu $a0, %lo(D_8013C6FC) # addiu $a0, $a0, -0x3904
-/* AECC8C 80075AEC 0C00084C */ jal osSyncPrintf
-/* AECC90 80075AF0 91A507A4 */ lbu $a1, 0x7a4($t5)
-/* AECC94 80075AF4 8FAE0020 */ lw $t6, 0x20($sp)
-/* AECC98 80075AF8 3C048014 */ lui $a0, %hi(D_8013C710) # $a0, 0x8014
-/* AECC9C 80075AFC 2484C710 */ addiu $a0, %lo(D_8013C710) # addiu $a0, $a0, -0x38f0
-/* AECCA0 80075B00 0C00084C */ jal osSyncPrintf
-/* AECCA4 80075B04 91C507A5 */ lbu $a1, 0x7a5($t6)
-/* AECCA8 80075B08 8FA20020 */ lw $v0, 0x20($sp)
-/* AECCAC 80075B0C 3C010001 */ lui $at, 1
-/* AECCB0 80075B10 3C048014 */ lui $a0, %hi(D_8013C724) # $a0, 0x8014
-/* AECCB4 80075B14 00411021 */ addu $v0, $v0, $at
-/* AECCB8 80075B18 90450B04 */ lbu $a1, 0xb04($v0)
-/* AECCBC 80075B1C AFA20018 */ sw $v0, 0x18($sp)
-/* AECCC0 80075B20 0C00084C */ jal osSyncPrintf
-/* AECCC4 80075B24 2484C724 */ addiu $a0, %lo(D_8013C724) # addiu $a0, $a0, -0x38dc
-/* AECCC8 80075B28 8FA20018 */ lw $v0, 0x18($sp)
-/* AECCCC 80075B2C 0C03D9B0 */ jal Audio_SetEnvReverb
-/* AECCD0 80075B30 80441CC0 */ lb $a0, 0x1cc0($v0)
-/* AECCD4 80075B34 8FBF0014 */ lw $ra, 0x14($sp)
-.L80075B38:
-/* AECCD8 80075B38 27BD0020 */ addiu $sp, $sp, 0x20
-/* AECCDC 80075B3C 03E00008 */ jr $ra
-/* AECCE0 80075B40 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80075B44.s b/asm/non_matchings/code/z_kankyo/func_80075B44.s
deleted file mode 100644
index 61ae2c47bc..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80075B44.s
+++ /dev/null
@@ -1,240 +0,0 @@
-.rdata
-glabel D_8013C738
- .asciz "\n\n\nNa_StartMorinigBgm\n\n"
- .balign 4
-
-.late_rodata
-glabel jtbl_8013C80C
- .word L80075B84
- .word L80075BD8
- .word L80075C30
- .word L80075C6C
- .word L80075CB4
- .word L80075CE0
- .word L80075D30
- .word L80075DE4
- .word L80075E34
-
-.text
-glabel func_80075B44
-/* AECCE4 80075B44 27BDFFE0 */ addiu $sp, $sp, -0x20
-/* AECCE8 80075B48 AFB00014 */ sw $s0, 0x14($sp)
-/* AECCEC 80075B4C 3C010001 */ lui $at, 1
-/* AECCF0 80075B50 AFBF001C */ sw $ra, 0x1c($sp)
-/* AECCF4 80075B54 AFB10018 */ sw $s1, 0x18($sp)
-/* AECCF8 80075B58 00818021 */ addu $s0, $a0, $at
-/* AECCFC 80075B5C 92020B04 */ lbu $v0, 0xb04($s0)
-/* AECD00 80075B60 00808825 */ move $s1, $a0
-/* AECD04 80075B64 2C410009 */ sltiu $at, $v0, 9
-/* AECD08 80075B68 102000BA */ beqz $at, .L80075E54
-/* AECD0C 80075B6C 00027080 */ sll $t6, $v0, 2
-/* AECD10 80075B70 3C018014 */ lui $at, %hi(jtbl_8013C80C)
-/* AECD14 80075B74 002E0821 */ addu $at, $at, $t6
-/* AECD18 80075B78 8C2EC80C */ lw $t6, %lo(jtbl_8013C80C)($at)
-/* AECD1C 80075B7C 01C00008 */ jr $t6
-/* AECD20 80075B80 00000000 */ nop
-glabel L80075B84
-/* AECD24 80075B84 24040056 */ li $a0, 86
-/* AECD28 80075B88 24050001 */ li $a1, 1
-/* AECD2C 80075B8C 0C03DB56 */ jal func_800F6D58
-/* AECD30 80075B90 00003025 */ move $a2, $zero
-/* AECD34 80075B94 920F0B12 */ lbu $t7, 0xb12($s0)
-/* AECD38 80075B98 55E0000A */ bnezl $t7, .L80075BC4
-/* AECD3C 80075B9C 92190B04 */ lbu $t9, 0xb04($s0)
-/* AECD40 80075BA0 92180B16 */ lbu $t8, 0xb16($s0)
-/* AECD44 80075BA4 3C048014 */ lui $a0, %hi(D_8013C738) # $a0, 0x8014
-/* AECD48 80075BA8 57000006 */ bnezl $t8, .L80075BC4
-/* AECD4C 80075BAC 92190B04 */ lbu $t9, 0xb04($s0)
-/* AECD50 80075BB0 0C00084C */ jal osSyncPrintf
-/* AECD54 80075BB4 2484C738 */ addiu $a0, %lo(D_8013C738) # addiu $a0, $a0, -0x38c8
-/* AECD58 80075BB8 0C03D544 */ jal func_800F5510
-/* AECD5C 80075BBC 922407A4 */ lbu $a0, 0x7a4($s1)
-/* AECD60 80075BC0 92190B04 */ lbu $t9, 0xb04($s0)
-.L80075BC4:
-/* AECD64 80075BC4 3C010001 */ lui $at, 1
-/* AECD68 80075BC8 00310821 */ addu $at, $at, $s1
-/* AECD6C 80075BCC 27280001 */ addiu $t0, $t9, 1
-/* AECD70 80075BD0 100000A0 */ b .L80075E54
-/* AECD74 80075BD4 A0280B04 */ sb $t0, 0xb04($at)
-glabel L80075BD8
-/* AECD78 80075BD8 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
-/* AECD7C 80075BDC 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
-/* AECD80 80075BE0 9469000C */ lhu $t1, 0xc($v1)
-/* AECD84 80075BE4 3401B71D */ li $at, 46877
-/* AECD88 80075BE8 0121082A */ slt $at, $t1, $at
-/* AECD8C 80075BEC 5420009A */ bnezl $at, .L80075E58
-/* AECD90 80075BF0 8FBF001C */ lw $ra, 0x1c($sp)
-/* AECD94 80075BF4 920A0B12 */ lbu $t2, 0xb12($s0)
-/* AECD98 80075BF8 55400009 */ bnezl $t2, .L80075C20
-/* AECD9C 80075BFC 3C010001 */ lui $at, 1
-/* AECDA0 80075C00 920B0B16 */ lbu $t3, 0xb16($s0)
-/* AECDA4 80075C04 3C0410F0 */ lui $a0, (0x10F000FF >> 16) # lui $a0, 0x10f0
-/* AECDA8 80075C08 55600005 */ bnezl $t3, .L80075C20
-/* AECDAC 80075C0C 3C010001 */ lui $at, 1
-/* AECDB0 80075C10 0C03E803 */ jal Audio_QueueSeqCmd
-/* AECDB4 80075C14 348400FF */ ori $a0, (0x10F000FF & 0xFFFF) # ori $a0, $a0, 0xff
-/* AECDB8 80075C18 92020B04 */ lbu $v0, 0xb04($s0)
-/* AECDBC 80075C1C 3C010001 */ lui $at, 1
-.L80075C20:
-/* AECDC0 80075C20 00310821 */ addu $at, $at, $s1
-/* AECDC4 80075C24 244C0001 */ addiu $t4, $v0, 1
-/* AECDC8 80075C28 1000008A */ b .L80075E54
-/* AECDCC 80075C2C A02C0B04 */ sb $t4, 0xb04($at)
-glabel L80075C30
-/* AECDD0 80075C30 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
-/* AECDD4 80075C34 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
-/* AECDD8 80075C38 946D000C */ lhu $t5, 0xc($v1)
-/* AECDDC 80075C3C 3401C001 */ li $at, 49153
-/* AECDE0 80075C40 01A1082A */ slt $at, $t5, $at
-/* AECDE4 80075C44 54200084 */ bnezl $at, .L80075E58
-/* AECDE8 80075C48 8FBF001C */ lw $ra, 0x1c($sp)
-/* AECDEC 80075C4C 0C01E233 */ jal func_800788CC
-/* AECDF0 80075C50 240428AE */ li $a0, 10414
-/* AECDF4 80075C54 920E0B04 */ lbu $t6, 0xb04($s0)
-/* AECDF8 80075C58 3C010001 */ lui $at, 1
-/* AECDFC 80075C5C 00310821 */ addu $at, $at, $s1
-/* AECE00 80075C60 25CF0001 */ addiu $t7, $t6, 1
-/* AECE04 80075C64 1000007B */ b .L80075E54
-/* AECE08 80075C68 A02F0B04 */ sb $t7, 0xb04($at)
-glabel L80075C6C
-/* AECE0C 80075C6C 92180B12 */ lbu $t8, 0xb12($s0)
-/* AECE10 80075C70 5700000C */ bnezl $t8, .L80075CA4
-/* AECE14 80075C74 3C010001 */ lui $at, 1
-/* AECE18 80075C78 92190B16 */ lbu $t9, 0xb16($s0)
-/* AECE1C 80075C7C 57200009 */ bnezl $t9, .L80075CA4
-/* AECE20 80075C80 3C010001 */ lui $at, 1
-/* AECE24 80075C84 0C03DBED */ jal func_800F6FB4
-/* AECE28 80075C88 922407A5 */ lbu $a0, 0x7a5($s1)
-/* AECE2C 80075C8C 24040001 */ li $a0, 1
-/* AECE30 80075C90 24050001 */ li $a1, 1
-/* AECE34 80075C94 0C03DB56 */ jal func_800F6D58
-/* AECE38 80075C98 24060001 */ li $a2, 1
-/* AECE3C 80075C9C 92020B04 */ lbu $v0, 0xb04($s0)
-/* AECE40 80075CA0 3C010001 */ lui $at, 1
-.L80075CA4:
-/* AECE44 80075CA4 00310821 */ addu $at, $at, $s1
-/* AECE48 80075CA8 24480001 */ addiu $t0, $v0, 1
-/* AECE4C 80075CAC 10000069 */ b .L80075E54
-/* AECE50 80075CB0 A0280B04 */ sb $t0, 0xb04($at)
-glabel L80075CB4
-/* AECE54 80075CB4 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
-/* AECE58 80075CB8 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
-/* AECE5C 80075CBC 9469000C */ lhu $t1, 0xc($v1)
-/* AECE60 80075CC0 3401CAAC */ li $at, 51884
-/* AECE64 80075CC4 244A0001 */ addiu $t2, $v0, 1
-/* AECE68 80075CC8 0121082A */ slt $at, $t1, $at
-/* AECE6C 80075CCC 14200061 */ bnez $at, .L80075E54
-/* AECE70 80075CD0 3C010001 */ lui $at, 1
-/* AECE74 80075CD4 00310821 */ addu $at, $at, $s1
-/* AECE78 80075CD8 1000005E */ b .L80075E54
-/* AECE7C 80075CDC A02A0B04 */ sb $t2, 0xb04($at)
-glabel L80075CE0
-/* AECE80 80075CE0 24040001 */ li $a0, 1
-/* AECE84 80075CE4 24050001 */ li $a1, 1
-/* AECE88 80075CE8 0C03DB56 */ jal func_800F6D58
-/* AECE8C 80075CEC 00003025 */ move $a2, $zero
-/* AECE90 80075CF0 920B0B12 */ lbu $t3, 0xb12($s0)
-/* AECE94 80075CF4 55600009 */ bnezl $t3, .L80075D1C
-/* AECE98 80075CF8 920D0B04 */ lbu $t5, 0xb04($s0)
-/* AECE9C 80075CFC 920C0B16 */ lbu $t4, 0xb16($s0)
-/* AECEA0 80075D00 24040024 */ li $a0, 36
-/* AECEA4 80075D04 24050001 */ li $a1, 1
-/* AECEA8 80075D08 55800004 */ bnezl $t4, .L80075D1C
-/* AECEAC 80075D0C 920D0B04 */ lbu $t5, 0xb04($s0)
-/* AECEB0 80075D10 0C03DB56 */ jal func_800F6D58
-/* AECEB4 80075D14 24060001 */ li $a2, 1
-/* AECEB8 80075D18 920D0B04 */ lbu $t5, 0xb04($s0)
-.L80075D1C:
-/* AECEBC 80075D1C 3C010001 */ lui $at, 1
-/* AECEC0 80075D20 00310821 */ addu $at, $at, $s1
-/* AECEC4 80075D24 25AE0001 */ addiu $t6, $t5, 1
-/* AECEC8 80075D28 1000004A */ b .L80075E54
-/* AECECC 80075D2C A02E0B04 */ sb $t6, 0xb04($at)
-glabel L80075D30
-/* AECED0 80075D30 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
-/* AECED4 80075D34 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
-/* AECED8 80075D38 9462000C */ lhu $v0, 0xc($v1)
-/* AECEDC 80075D3C 3401CAAC */ li $at, 51884
-/* AECEE0 80075D40 0041082A */ slt $at, $v0, $at
-/* AECEE4 80075D44 10200043 */ beqz $at, .L80075E54
-/* AECEE8 80075D48 28414556 */ slti $at, $v0, 0x4556
-/* AECEEC 80075D4C 14200041 */ bnez $at, .L80075E54
-/* AECEF0 80075D50 24090001 */ li $t1, 1
-/* AECEF4 80075D54 8C6F0014 */ lw $t7, 0x14($v1)
-/* AECEF8 80075D58 8C790018 */ lw $t9, 0x18($v1)
-/* AECEFC 80075D5C A069141C */ sb $t1, 0x141c($v1)
-/* AECF00 80075D60 25F80001 */ addiu $t8, $t7, 1
-/* AECF04 80075D64 27280001 */ addiu $t0, $t9, 1
-/* AECF08 80075D68 AC780014 */ sw $t8, 0x14($v1)
-/* AECF0C 80075D6C AC680018 */ sw $t0, 0x18($v1)
-/* AECF10 80075D70 0C01E221 */ jal func_80078884
-/* AECF14 80075D74 24042813 */ li $a0, 10259
-/* AECF18 80075D78 02202025 */ move $a0, $s1
-/* AECF1C 80075D7C 24050021 */ li $a1, 33
-/* AECF20 80075D80 0C021A79 */ jal Inventory_ReplaceItem
-/* AECF24 80075D84 24060022 */ li $a2, 34
-/* AECF28 80075D88 14400006 */ bnez $v0, .L80075DA4
-/* AECF2C 80075D8C 02202025 */ move $a0, $s1
-/* AECF30 80075D90 2405002D */ li $a1, 45
-/* AECF34 80075D94 0C021A79 */ jal Inventory_ReplaceItem
-/* AECF38 80075D98 2406002E */ li $a2, 46
-/* AECF3C 80075D9C 5040000C */ beql $v0, $zero, .L80075DD0
-/* AECF40 80075DA0 920B0B04 */ lbu $t3, 0xb04($s0)
-.L80075DA4:
-/* AECF44 80075DA4 922A1D6C */ lbu $t2, 0x1d6c($s1)
-/* AECF48 80075DA8 55400009 */ bnezl $t2, .L80075DD0
-/* AECF4C 80075DAC 920B0B04 */ lbu $t3, 0xb04($s0)
-/* AECF50 80075DB0 0C023A62 */ jal Player_InCsMode
-/* AECF54 80075DB4 02202025 */ move $a0, $s1
-/* AECF58 80075DB8 14400004 */ bnez $v0, .L80075DCC
-/* AECF5C 80075DBC 02202025 */ move $a0, $s1
-/* AECF60 80075DC0 24053066 */ li $a1, 12390
-/* AECF64 80075DC4 0C042DA0 */ jal func_8010B680
-/* AECF68 80075DC8 00003025 */ move $a2, $zero
-.L80075DCC:
-/* AECF6C 80075DCC 920B0B04 */ lbu $t3, 0xb04($s0)
-.L80075DD0:
-/* AECF70 80075DD0 3C010001 */ lui $at, 1
-/* AECF74 80075DD4 00310821 */ addu $at, $at, $s1
-/* AECF78 80075DD8 256C0001 */ addiu $t4, $t3, 1
-/* AECF7C 80075DDC 1000001D */ b .L80075E54
-/* AECF80 80075DE0 A02C0B04 */ sb $t4, 0xb04($at)
-glabel L80075DE4
-/* AECF84 80075DE4 24040024 */ li $a0, 36
-/* AECF88 80075DE8 24050001 */ li $a1, 1
-/* AECF8C 80075DEC 0C03DB56 */ jal func_800F6D58
-/* AECF90 80075DF0 00003025 */ move $a2, $zero
-/* AECF94 80075DF4 920D0B12 */ lbu $t5, 0xb12($s0)
-/* AECF98 80075DF8 55A00009 */ bnezl $t5, .L80075E20
-/* AECF9C 80075DFC 920F0B04 */ lbu $t7, 0xb04($s0)
-/* AECFA0 80075E00 920E0B16 */ lbu $t6, 0xb16($s0)
-/* AECFA4 80075E04 24040056 */ li $a0, 86
-/* AECFA8 80075E08 24050001 */ li $a1, 1
-/* AECFAC 80075E0C 55C00004 */ bnezl $t6, .L80075E20
-/* AECFB0 80075E10 920F0B04 */ lbu $t7, 0xb04($s0)
-/* AECFB4 80075E14 0C03DB56 */ jal func_800F6D58
-/* AECFB8 80075E18 24060001 */ li $a2, 1
-/* AECFBC 80075E1C 920F0B04 */ lbu $t7, 0xb04($s0)
-.L80075E20:
-/* AECFC0 80075E20 3C010001 */ lui $at, 1
-/* AECFC4 80075E24 00310821 */ addu $at, $at, $s1
-/* AECFC8 80075E28 25F80001 */ addiu $t8, $t7, 1
-/* AECFCC 80075E2C 10000009 */ b .L80075E54
-/* AECFD0 80075E30 A0380B04 */ sb $t8, 0xb04($at)
-glabel L80075E34
-/* AECFD4 80075E34 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
-/* AECFD8 80075E38 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
-/* AECFDC 80075E3C 9479000C */ lhu $t9, 0xc($v1)
-/* AECFE0 80075E40 2B214AAC */ slti $at, $t9, 0x4aac
-/* AECFE4 80075E44 14200003 */ bnez $at, .L80075E54
-/* AECFE8 80075E48 3C010001 */ lui $at, 1
-/* AECFEC 80075E4C 00310821 */ addu $at, $at, $s1
-/* AECFF0 80075E50 A0200B04 */ sb $zero, 0xb04($at)
-.L80075E54:
-/* AECFF4 80075E54 8FBF001C */ lw $ra, 0x1c($sp)
-.L80075E58:
-/* AECFF8 80075E58 8FB00014 */ lw $s0, 0x14($sp)
-/* AECFFC 80075E5C 8FB10018 */ lw $s1, 0x18($sp)
-/* AED000 80075E60 03E00008 */ jr $ra
-/* AED004 80075E64 27BD0020 */ addiu $sp, $sp, 0x20
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80075E68.s b/asm/non_matchings/code/z_kankyo/func_80075E68.s
deleted file mode 100644
index 121fd0aad8..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80075E68.s
+++ /dev/null
@@ -1,46 +0,0 @@
-glabel func_80075E68
-/* AED008 80075E68 3C0E8016 */ lui $t6, %hi(D_8015FCF0) # $t6, 0x8016
-/* AED00C 80075E6C 91CEFCF0 */ lbu $t6, %lo(D_8015FCF0)($t6)
-/* AED010 80075E70 27BDFFB8 */ addiu $sp, $sp, -0x48
-/* AED014 80075E74 AFBF0034 */ sw $ra, 0x34($sp)
-/* AED018 80075E78 11C00022 */ beqz $t6, .L80075F04
-/* AED01C 80075E7C 3C028016 */ lui $v0, %hi(D_8015FCF8) # $v0, 0x8016
-/* AED020 80075E80 2442FCF8 */ addiu $v0, %lo(D_8015FCF8) # addiu $v0, $v0, -0x308
-/* AED024 80075E84 C4440000 */ lwc1 $f4, ($v0)
-/* AED028 80075E88 C4460004 */ lwc1 $f6, 4($v0)
-/* AED02C 80075E8C C4480008 */ lwc1 $f8, 8($v0)
-/* AED030 80075E90 27AF003C */ addiu $t7, $sp, 0x3c
-/* AED034 80075E94 E7A4003C */ swc1 $f4, 0x3c($sp)
-/* AED038 80075E98 E7A60040 */ swc1 $f6, 0x40($sp)
-/* AED03C 80075E9C E7A80044 */ swc1 $f8, 0x44($sp)
-/* AED040 80075EA0 8DF90000 */ lw $t9, ($t7)
-/* AED044 80075EA4 8C870000 */ lw $a3, ($a0)
-/* AED048 80075EA8 3C010001 */ lui $at, (0x00010A24 >> 16) # lui $at, 1
-/* AED04C 80075EAC AFB90010 */ sw $t9, 0x10($sp)
-/* AED050 80075EB0 8DF80004 */ lw $t8, 4($t7)
-/* AED054 80075EB4 34210A24 */ ori $at, (0x00010A24 & 0xFFFF) # ori $at, $at, 0xa24
-/* AED058 80075EB8 00812821 */ addu $a1, $a0, $at
-/* AED05C 80075EBC AFB80014 */ sw $t8, 0x14($sp)
-/* AED060 80075EC0 8DF90008 */ lw $t9, 8($t7)
-/* AED064 80075EC4 3C018016 */ lui $at, %hi(D_8015FD08)
-/* AED068 80075EC8 3C088016 */ lui $t0, %hi(D_8015FD04) # $t0, 0x8016
-/* AED06C 80075ECC 3C098016 */ lui $t1, %hi(D_8015FD06) # $t1, 0x8016
-/* AED070 80075ED0 3C0A8016 */ lui $t2, %hi(D_8015FD0C) # $t2, 0x8016
-/* AED074 80075ED4 854AFD0C */ lh $t2, %lo(D_8015FD0C)($t2)
-/* AED078 80075ED8 8529FD06 */ lh $t1, %lo(D_8015FD06)($t1)
-/* AED07C 80075EDC 8508FD04 */ lh $t0, %lo(D_8015FD04)($t0)
-/* AED080 80075EE0 C42AFD08 */ lwc1 $f10, %lo(D_8015FD08)($at)
-/* AED084 80075EE4 AFA0002C */ sw $zero, 0x2c($sp)
-/* AED088 80075EE8 248600B8 */ addiu $a2, $a0, 0xb8
-/* AED08C 80075EEC AFB90018 */ sw $t9, 0x18($sp)
-/* AED090 80075EF0 AFAA0028 */ sw $t2, 0x28($sp)
-/* AED094 80075EF4 AFA90020 */ sw $t1, 0x20($sp)
-/* AED098 80075EF8 AFA8001C */ sw $t0, 0x1c($sp)
-/* AED09C 80075EFC 0C01CE97 */ jal func_80073A5C
-/* AED0A0 80075F00 E7AA0024 */ swc1 $f10, 0x24($sp)
-.L80075F04:
-/* AED0A4 80075F04 8FBF0034 */ lw $ra, 0x34($sp)
-/* AED0A8 80075F08 27BD0048 */ addiu $sp, $sp, 0x48
-/* AED0AC 80075F0C 03E00008 */ jr $ra
-/* AED0B0 80075F10 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800766C4.s b/asm/non_matchings/code/z_kankyo/func_800766C4.s
deleted file mode 100644
index 8e2251421d..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800766C4.s
+++ /dev/null
@@ -1,32 +0,0 @@
-glabel func_800766C4
-/* AED864 800766C4 3C010001 */ lui $at, 1
-/* AED868 800766C8 00811021 */ addu $v0, $a0, $at
-/* AED86C 800766CC 90430B16 */ lbu $v1, 0xb16($v0)
-/* AED870 800766D0 90450B12 */ lbu $a1, 0xb12($v0)
-/* AED874 800766D4 306600FF */ andi $a2, $v1, 0xff
-/* AED878 800766D8 0065082A */ slt $at, $v1, $a1
-/* AED87C 800766DC 10200003 */ beqz $at, .L800766EC
-/* AED880 800766E0 00000000 */ nop
-/* AED884 800766E4 10000001 */ b .L800766EC
-/* AED888 800766E8 30A600FF */ andi $a2, $a1, 0xff
-.L800766EC:
-/* AED88C 800766EC 90450B13 */ lbu $a1, 0xb13($v0)
-/* AED890 800766F0 10C5000C */ beq $a2, $a1, .L80076724
-/* AED894 800766F4 00000000 */ nop
-/* AED898 800766F8 8C8E009C */ lw $t6, 0x9c($a0)
-/* AED89C 800766FC 00A6082A */ slt $at, $a1, $a2
-/* AED8A0 80076700 31CF0007 */ andi $t7, $t6, 7
-/* AED8A4 80076704 15E00007 */ bnez $t7, .L80076724
-/* AED8A8 80076708 00000000 */ nop
-/* AED8AC 8007670C 10200004 */ beqz $at, .L80076720
-/* AED8B0 80076710 24B9FFFE */ addiu $t9, $a1, -2
-/* AED8B4 80076714 24B80002 */ addiu $t8, $a1, 2
-/* AED8B8 80076718 03E00008 */ jr $ra
-/* AED8BC 8007671C A0580B13 */ sb $t8, 0xb13($v0)
-
-.L80076720:
-/* AED8C0 80076720 A0590B13 */ sb $t9, 0xb13($v0)
-.L80076724:
-/* AED8C4 80076724 03E00008 */ jr $ra
-/* AED8C8 80076728 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_8007672C.s b/asm/non_matchings/code/z_kankyo/func_8007672C.s
deleted file mode 100644
index 29fa3e46c5..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_8007672C.s
+++ /dev/null
@@ -1,146 +0,0 @@
-.rdata
-glabel D_8013C750
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C760
- .asciz "../z_kankyo.c"
- .balign 4
-
-.text
-glabel func_8007672C
-/* AED8CC 8007672C 27BDFFA0 */ addiu $sp, $sp, -0x60
-/* AED8D0 80076730 93AE0073 */ lbu $t6, 0x73($sp)
-/* AED8D4 80076734 AFB00018 */ sw $s0, 0x18($sp)
-/* AED8D8 80076738 00808025 */ move $s0, $a0
-/* AED8DC 8007673C AFBF001C */ sw $ra, 0x1c($sp)
-/* AED8E0 80076740 AFA50064 */ sw $a1, 0x64($sp)
-/* AED8E4 80076744 AFA60068 */ sw $a2, 0x68($sp)
-/* AED8E8 80076748 11C00075 */ beqz $t6, .L80076920
-/* AED8EC 8007674C AFA7006C */ sw $a3, 0x6c($sp)
-/* AED8F0 80076750 3C068014 */ lui $a2, %hi(D_8013C750) # $a2, 0x8014
-/* AED8F4 80076754 24C6C750 */ addiu $a2, %lo(D_8013C750) # addiu $a2, $a2, -0x38b0
-/* AED8F8 80076758 27A4004C */ addiu $a0, $sp, 0x4c
-/* AED8FC 8007675C 02002825 */ move $a1, $s0
-/* AED900 80076760 0C031AB1 */ jal Graph_OpenDisps
-/* AED904 80076764 24070EFB */ li $a3, 3835
-/* AED908 80076768 93A50077 */ lbu $a1, 0x77($sp)
-/* AED90C 8007676C 30AF0001 */ andi $t7, $a1, 1
-/* AED910 80076770 51E0002D */ beql $t7, $zero, .L80076828
-/* AED914 80076774 30AB0002 */ andi $t3, $a1, 2
-/* AED918 80076778 8E0402C0 */ lw $a0, 0x2c0($s0)
-/* AED91C 8007677C 0C024DF0 */ jal func_800937C0
-/* AED920 80076780 AFA50024 */ sw $a1, 0x24($sp)
-/* AED924 80076784 8FA50024 */ lw $a1, 0x24($sp)
-/* AED928 80076788 AE0202C0 */ sw $v0, 0x2c0($s0)
-/* AED92C 8007678C 24580008 */ addiu $t8, $v0, 8
-/* AED930 80076790 AE1802C0 */ sw $t8, 0x2c0($s0)
-/* AED934 80076794 3C19FA00 */ lui $t9, 0xfa00
-/* AED938 80076798 AC590000 */ sw $t9, ($v0)
-/* AED93C 8007679C 93AC006B */ lbu $t4, 0x6b($sp)
-/* AED940 800767A0 93A90067 */ lbu $t1, 0x67($sp)
-/* AED944 800767A4 93B8006F */ lbu $t8, 0x6f($sp)
-/* AED948 800767A8 93AB0073 */ lbu $t3, 0x73($sp)
-/* AED94C 800767AC 000C6C00 */ sll $t5, $t4, 0x10
-/* AED950 800767B0 00095600 */ sll $t2, $t1, 0x18
-/* AED954 800767B4 014D7025 */ or $t6, $t2, $t5
-/* AED958 800767B8 0018CA00 */ sll $t9, $t8, 8
-/* AED95C 800767BC 01D94025 */ or $t0, $t6, $t9
-/* AED960 800767C0 010B6025 */ or $t4, $t0, $t3
-/* AED964 800767C4 AC4C0004 */ sw $t4, 4($v0)
-/* AED968 800767C8 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AED96C 800767CC 3C0DE300 */ lui $t5, (0xE3001A01 >> 16) # lui $t5, 0xe300
-/* AED970 800767D0 35AD1A01 */ ori $t5, (0xE3001A01 & 0xFFFF) # ori $t5, $t5, 0x1a01
-/* AED974 800767D4 244A0008 */ addiu $t2, $v0, 8
-/* AED978 800767D8 AE0A02C0 */ sw $t2, 0x2c0($s0)
-/* AED97C 800767DC 240F0030 */ li $t7, 48
-/* AED980 800767E0 AC4F0004 */ sw $t7, 4($v0)
-/* AED984 800767E4 AC4D0000 */ sw $t5, ($v0)
-/* AED988 800767E8 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AED98C 800767EC 3C0EE300 */ lui $t6, (0xE3001801 >> 16) # lui $t6, 0xe300
-/* AED990 800767F0 35CE1801 */ ori $t6, (0xE3001801 & 0xFFFF) # ori $t6, $t6, 0x1801
-/* AED994 800767F4 24580008 */ addiu $t8, $v0, 8
-/* AED998 800767F8 AE1802C0 */ sw $t8, 0x2c0($s0)
-/* AED99C 800767FC 241900C0 */ li $t9, 192
-/* AED9A0 80076800 AC590004 */ sw $t9, 4($v0)
-/* AED9A4 80076804 AC4E0000 */ sw $t6, ($v0)
-/* AED9A8 80076808 8E0202C0 */ lw $v0, 0x2c0($s0)
-/* AED9AC 8007680C 3C08F64F */ lui $t0, (0xF64FC3BC >> 16) # lui $t0, 0xf64f
-/* AED9B0 80076810 3508C3BC */ ori $t0, (0xF64FC3BC & 0xFFFF) # ori $t0, $t0, 0xc3bc
-/* AED9B4 80076814 24490008 */ addiu $t1, $v0, 8
-/* AED9B8 80076818 AE0902C0 */ sw $t1, 0x2c0($s0)
-/* AED9BC 8007681C AC400004 */ sw $zero, 4($v0)
-/* AED9C0 80076820 AC480000 */ sw $t0, ($v0)
-/* AED9C4 80076824 30AB0002 */ andi $t3, $a1, 2
-.L80076828:
-/* AED9C8 80076828 11600037 */ beqz $t3, .L80076908
-/* AED9CC 8007682C 93AA0067 */ lbu $t2, 0x67($sp)
-/* AED9D0 80076830 93B8006B */ lbu $t8, 0x6b($sp)
-/* AED9D4 80076834 93A8006F */ lbu $t0, 0x6f($sp)
-/* AED9D8 80076838 93AF0073 */ lbu $t7, 0x73($sp)
-/* AED9DC 8007683C 000A6E00 */ sll $t5, $t2, 0x18
-/* AED9E0 80076840 00187400 */ sll $t6, $t8, 0x10
-/* AED9E4 80076844 01AEC825 */ or $t9, $t5, $t6
-/* AED9E8 80076848 00085A00 */ sll $t3, $t0, 8
-/* AED9EC 8007684C 032B6025 */ or $t4, $t9, $t3
-/* AED9F0 80076850 8E0402D0 */ lw $a0, 0x2d0($s0)
-/* AED9F4 80076854 018FC025 */ or $t8, $t4, $t7
-/* AED9F8 80076858 0C024DF0 */ jal func_800937C0
-/* AED9FC 8007685C AFB80024 */ sw $t8, 0x24($sp)
-/* AEDA00 80076860 AE0202D0 */ sw $v0, 0x2d0($s0)
-/* AEDA04 80076864 244D0008 */ addiu $t5, $v0, 8
-/* AEDA08 80076868 AE0D02D0 */ sw $t5, 0x2d0($s0)
-/* AEDA0C 8007686C 3C0EFA00 */ lui $t6, 0xfa00
-/* AEDA10 80076870 AC4E0000 */ sw $t6, ($v0)
-/* AEDA14 80076874 8FA90024 */ lw $t1, 0x24($sp)
-/* AEDA18 80076878 240100FF */ li $at, 255
-/* AEDA1C 8007687C 3C0BE200 */ lui $t3, (0xE200001C >> 16) # lui $t3, 0xe200
-/* AEDA20 80076880 AC490004 */ sw $t1, 4($v0)
-/* AEDA24 80076884 93A80073 */ lbu $t0, 0x73($sp)
-/* AEDA28 80076888 3C0FE300 */ lui $t7, (0xE3001A01 >> 16) # lui $t7, 0xe300
-/* AEDA2C 8007688C 356B001C */ ori $t3, (0xE200001C & 0xFFFF) # ori $t3, $t3, 0x1c
-/* AEDA30 80076890 15010008 */ bne $t0, $at, .L800768B4
-/* AEDA34 80076894 35EF1A01 */ ori $t7, (0xE3001A01 & 0xFFFF) # ori $t7, $t7, 0x1a01
-/* AEDA38 80076898 8E0202D0 */ lw $v0, 0x2d0($s0)
-/* AEDA3C 8007689C 3C0A0F0A */ lui $t2, (0x0F0A4000 >> 16) # lui $t2, 0xf0a
-/* AEDA40 800768A0 354A4000 */ ori $t2, (0x0F0A4000 & 0xFFFF) # ori $t2, $t2, 0x4000
-/* AEDA44 800768A4 24590008 */ addiu $t9, $v0, 8
-/* AEDA48 800768A8 AE1902D0 */ sw $t9, 0x2d0($s0)
-/* AEDA4C 800768AC AC4A0004 */ sw $t2, 4($v0)
-/* AEDA50 800768B0 AC4B0000 */ sw $t3, ($v0)
-.L800768B4:
-/* AEDA54 800768B4 8E0202D0 */ lw $v0, 0x2d0($s0)
-/* AEDA58 800768B8 24180030 */ li $t8, 48
-/* AEDA5C 800768BC 3C0EE300 */ lui $t6, (0xE3001801 >> 16) # lui $t6, 0xe300
-/* AEDA60 800768C0 244C0008 */ addiu $t4, $v0, 8
-/* AEDA64 800768C4 AE0C02D0 */ sw $t4, 0x2d0($s0)
-/* AEDA68 800768C8 AC580004 */ sw $t8, 4($v0)
-/* AEDA6C 800768CC AC4F0000 */ sw $t7, ($v0)
-/* AEDA70 800768D0 8E0202D0 */ lw $v0, 0x2d0($s0)
-/* AEDA74 800768D4 35CE1801 */ ori $t6, (0xE3001801 & 0xFFFF) # ori $t6, $t6, 0x1801
-/* AEDA78 800768D8 240900C0 */ li $t1, 192
-/* AEDA7C 800768DC 244D0008 */ addiu $t5, $v0, 8
-/* AEDA80 800768E0 AE0D02D0 */ sw $t5, 0x2d0($s0)
-/* AEDA84 800768E4 AC490004 */ sw $t1, 4($v0)
-/* AEDA88 800768E8 AC4E0000 */ sw $t6, ($v0)
-/* AEDA8C 800768EC 8E0202D0 */ lw $v0, 0x2d0($s0)
-/* AEDA90 800768F0 3C19F64F */ lui $t9, (0xF64FC3BC >> 16) # lui $t9, 0xf64f
-/* AEDA94 800768F4 3739C3BC */ ori $t9, (0xF64FC3BC & 0xFFFF) # ori $t9, $t9, 0xc3bc
-/* AEDA98 800768F8 24480008 */ addiu $t0, $v0, 8
-/* AEDA9C 800768FC AE0802D0 */ sw $t0, 0x2d0($s0)
-/* AEDAA0 80076900 AC400004 */ sw $zero, 4($v0)
-/* AEDAA4 80076904 AC590000 */ sw $t9, ($v0)
-.L80076908:
-/* AEDAA8 80076908 3C068014 */ lui $a2, %hi(D_8013C760) # $a2, 0x8014
-/* AEDAAC 8007690C 24C6C760 */ addiu $a2, %lo(D_8013C760) # addiu $a2, $a2, -0x38a0
-/* AEDAB0 80076910 27A4004C */ addiu $a0, $sp, 0x4c
-/* AEDAB4 80076914 02002825 */ move $a1, $s0
-/* AEDAB8 80076918 0C031AD5 */ jal Graph_CloseDisps
-/* AEDABC 8007691C 24070F17 */ li $a3, 3863
-.L80076920:
-/* AEDAC0 80076920 8FBF001C */ lw $ra, 0x1c($sp)
-/* AEDAC4 80076924 8FB00018 */ lw $s0, 0x18($sp)
-/* AEDAC8 80076928 27BD0060 */ addiu $sp, $sp, 0x60
-/* AEDACC 8007692C 03E00008 */ jr $ra
-/* AEDAD0 80076930 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80076934.s b/asm/non_matchings/code/z_kankyo/func_80076934.s
deleted file mode 100644
index 16f522e35e..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80076934.s
+++ /dev/null
@@ -1,742 +0,0 @@
-.rdata
-glabel D_8013C770
- .asciz "../z_kankyo.c"
- .balign 4
-
-glabel D_8013C780
- .asciz "../z_kankyo.c"
- .balign 4
-
-.late_rodata
-glabel D_8013C830
- .float 0.16666667
-
-glabel D_8013C834
- .float 1.8333334
-
-.text
-glabel func_80076934
-/* AEDAD4 80076934 27BDFF48 */ addiu $sp, $sp, -0xb8
-/* AEDAD8 80076938 3C010001 */ lui $at, 1
-/* AEDADC 8007693C AFBF0034 */ sw $ra, 0x34($sp)
-/* AEDAE0 80076940 AFA400B8 */ sw $a0, 0xb8($sp)
-/* AEDAE4 80076944 AFA500BC */ sw $a1, 0xbc($sp)
-/* AEDAE8 80076948 00816021 */ addu $t4, $a0, $at
-/* AEDAEC 8007694C 91870B0B */ lbu $a3, 0xb0b($t4)
-/* AEDAF0 80076950 91860B0C */ lbu $a2, 0xb0c($t4)
-/* AEDAF4 80076954 30A500FF */ andi $a1, $a1, 0xff
-/* AEDAF8 80076958 24010001 */ li $at, 1
-/* AEDAFC 8007695C 00E04025 */ move $t0, $a3
-/* AEDB00 80076960 10A10023 */ beq $a1, $at, .L800769F0
-/* AEDB04 80076964 00C04825 */ move $t1, $a2
-/* AEDB08 80076968 24010002 */ li $at, 2
-/* AEDB0C 8007696C 10A10027 */ beq $a1, $at, .L80076A0C
-/* AEDB10 80076970 24010003 */ li $at, 3
-/* AEDB14 80076974 10A10006 */ beq $a1, $at, .L80076990
-/* AEDB18 80076978 8FAE00B8 */ lw $t6, 0xb8($sp)
-/* AEDB1C 8007697C 24010004 */ li $at, 4
-/* AEDB20 80076980 10A1003A */ beq $a1, $at, .L80076A6C
-/* AEDB24 80076984 8FA300B4 */ lw $v1, 0xb4($sp)
-/* AEDB28 80076988 10000043 */ b .L80076A98
-/* AEDB2C 8007698C 8FA500B0 */ lw $a1, 0xb0($sp)
-.L80076990:
-/* AEDB30 80076990 85CF00A4 */ lh $t7, 0xa4($t6)
-/* AEDB34 80076994 2401005E */ li $at, 94
-/* AEDB38 80076998 8FB900B8 */ lw $t9, 0xb8($sp)
-/* AEDB3C 8007699C 15E1000B */ bne $t7, $at, .L800769CC
-/* AEDB40 800769A0 24050080 */ li $a1, 128
-/* AEDB44 800769A4 81981CBC */ lb $t8, 0x1cbc($t4)
-/* AEDB48 800769A8 28C10081 */ slti $at, $a2, 0x81
-/* AEDB4C 800769AC 57000008 */ bnezl $t8, .L800769D0
-/* AEDB50 800769B0 8F23009C */ lw $v1, 0x9c($t9)
-/* AEDB54 800769B4 14200003 */ bnez $at, .L800769C4
-/* AEDB58 800769B8 00002825 */ move $a1, $zero
-/* AEDB5C 800769BC 10000036 */ b .L80076A98
-/* AEDB60 800769C0 240300FF */ li $v1, 255
-.L800769C4:
-/* AEDB64 800769C4 10000034 */ b .L80076A98
-/* AEDB68 800769C8 00061843 */ sra $v1, $a2, 1
-.L800769CC:
-/* AEDB6C 800769CC 8F23009C */ lw $v1, 0x9c($t9)
-.L800769D0:
-/* AEDB70 800769D0 240E0080 */ li $t6, 128
-/* AEDB74 800769D4 3063007F */ andi $v1, $v1, 0x7f
-/* AEDB78 800769D8 28610041 */ slti $at, $v1, 0x41
-/* AEDB7C 800769DC 14200002 */ bnez $at, .L800769E8
-/* AEDB80 800769E0 00000000 */ nop
-/* AEDB84 800769E4 01C31823 */ subu $v1, $t6, $v1
-.L800769E8:
-/* AEDB88 800769E8 1000002B */ b .L80076A98
-/* AEDB8C 800769EC 24630049 */ addiu $v1, $v1, 0x49
-.L800769F0:
-/* AEDB90 800769F0 28E100FF */ slti $at, $a3, 0xff
-/* AEDB94 800769F4 14200003 */ bnez $at, .L80076A04
-/* AEDB98 800769F8 240300FF */ li $v1, 255
-/* AEDB9C 800769FC 10000026 */ b .L80076A98
-/* AEDBA0 80076A00 240500FF */ li $a1, 255
-.L80076A04:
-/* AEDBA4 80076A04 10000024 */ b .L80076A98
-/* AEDBA8 80076A08 24050080 */ li $a1, 128
-.L80076A0C:
-/* AEDBAC 80076A0C 28C10081 */ slti $at, $a2, 0x81
-/* AEDBB0 80076A10 14200003 */ bnez $at, .L80076A20
-/* AEDBB4 80076A14 24050080 */ li $a1, 128
-/* AEDBB8 80076A18 1000000A */ b .L80076A44
-/* AEDBBC 80076A1C 240300FF */ li $v1, 255
-.L80076A20:
-/* AEDBC0 80076A20 8FAF00B8 */ lw $t7, 0xb8($sp)
-/* AEDBC4 80076A24 24180080 */ li $t8, 128
-/* AEDBC8 80076A28 8DE3009C */ lw $v1, 0x9c($t7)
-/* AEDBCC 80076A2C 3063007F */ andi $v1, $v1, 0x7f
-/* AEDBD0 80076A30 28610041 */ slti $at, $v1, 0x41
-/* AEDBD4 80076A34 54200003 */ bnezl $at, .L80076A44
-/* AEDBD8 80076A38 24630049 */ addiu $v1, $v1, 0x49
-/* AEDBDC 80076A3C 03031823 */ subu $v1, $t8, $v1
-/* AEDBE0 80076A40 24630049 */ addiu $v1, $v1, 0x49
-.L80076A44:
-/* AEDBE4 80076A44 0068082A */ slt $at, $v1, $t0
-/* AEDBE8 80076A48 14200013 */ bnez $at, .L80076A98
-/* AEDBEC 80076A4C 240100FF */ li $at, 255
-/* AEDBF0 80076A50 10610011 */ beq $v1, $at, .L80076A98
-/* AEDBF4 80076A54 8FAE00B8 */ lw $t6, 0xb8($sp)
-/* AEDBF8 80076A58 3C010001 */ lui $at, 1
-/* AEDBFC 80076A5C 002E0821 */ addu $at, $at, $t6
-/* AEDC00 80076A60 24190003 */ li $t9, 3
-/* AEDC04 80076A64 1000000C */ b .L80076A98
-/* AEDC08 80076A68 A0390B0A */ sb $t9, 0xb0a($at)
-.L80076A6C:
-/* AEDC0C 80076A6C 28C10081 */ slti $at, $a2, 0x81
-/* AEDC10 80076A70 14200003 */ bnez $at, .L80076A80
-/* AEDC14 80076A74 00002825 */ move $a1, $zero
-/* AEDC18 80076A78 10000002 */ b .L80076A84
-/* AEDC1C 80076A7C 240300FF */ li $v1, 255
-.L80076A80:
-/* AEDC20 80076A80 00061843 */ sra $v1, $a2, 1
-.L80076A84:
-/* AEDC24 80076A84 15000004 */ bnez $t0, .L80076A98
-/* AEDC28 80076A88 8FAF00B8 */ lw $t7, 0xb8($sp)
-/* AEDC2C 80076A8C 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEDC30 80076A90 002F0821 */ addu $at, $at, $t7
-/* AEDC34 80076A94 A0200B0A */ sb $zero, 0xb0a($at)
-.L80076A98:
-/* AEDC38 80076A98 01032023 */ subu $a0, $t0, $v1
-/* AEDC3C 80076A9C 04800003 */ bltz $a0, .L80076AAC
-/* AEDC40 80076AA0 8FB800B8 */ lw $t8, 0xb8($sp)
-/* AEDC44 80076AA4 10000002 */ b .L80076AB0
-/* AEDC48 80076AA8 00801025 */ move $v0, $a0
-.L80076AAC:
-/* AEDC4C 80076AAC 00041023 */ negu $v0, $a0
-.L80076AB0:
-/* AEDC50 80076AB0 28410009 */ slti $at, $v0, 9
-/* AEDC54 80076AB4 50200004 */ beql $at, $zero, .L80076AC8
-/* AEDC58 80076AB8 0068082A */ slt $at, $v1, $t0
-/* AEDC5C 80076ABC 10000007 */ b .L80076ADC
-/* AEDC60 80076AC0 00604025 */ move $t0, $v1
-/* AEDC64 80076AC4 0068082A */ slt $at, $v1, $t0
-.L80076AC8:
-/* AEDC68 80076AC8 50200004 */ beql $at, $zero, .L80076ADC
-/* AEDC6C 80076ACC 25080009 */ addiu $t0, $t0, 9
-/* AEDC70 80076AD0 10000002 */ b .L80076ADC
-/* AEDC74 80076AD4 2508FFF7 */ addiu $t0, $t0, -9
-/* AEDC78 80076AD8 25080009 */ addiu $t0, $t0, 9
-.L80076ADC:
-/* AEDC7C 80076ADC 01251823 */ subu $v1, $t1, $a1
-/* AEDC80 80076AE0 04600003 */ bltz $v1, .L80076AF0
-/* AEDC84 80076AE4 00031023 */ negu $v0, $v1
-/* AEDC88 80076AE8 10000001 */ b .L80076AF0
-/* AEDC8C 80076AEC 00601025 */ move $v0, $v1
-.L80076AF0:
-/* AEDC90 80076AF0 28410009 */ slti $at, $v0, 9
-/* AEDC94 80076AF4 10200003 */ beqz $at, .L80076B04
-/* AEDC98 80076AF8 3C0D8012 */ lui $t5, %hi(D_8011FEC4)
-/* AEDC9C 80076AFC 10000007 */ b .L80076B1C
-/* AEDCA0 80076B00 00A04825 */ move $t1, $a1
-.L80076B04:
-/* AEDCA4 80076B04 00A9082A */ slt $at, $a1, $t1
-/* AEDCA8 80076B08 50200004 */ beql $at, $zero, .L80076B1C
-/* AEDCAC 80076B0C 25290009 */ addiu $t1, $t1, 9
-/* AEDCB0 80076B10 10000002 */ b .L80076B1C
-/* AEDCB4 80076B14 2529FFF7 */ addiu $t1, $t1, -9
-/* AEDCB8 80076B18 25290009 */ addiu $t1, $t1, 9
-.L80076B1C:
-/* AEDCBC 80076B1C 3C0140C0 */ li $at, 0x40C00000 # 0.000000
-/* AEDCC0 80076B20 44818000 */ mtc1 $at, $f16
-/* AEDCC4 80076B24 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEDCC8 80076B28 00380821 */ addu $at, $at, $t8
-/* AEDCCC 80076B2C A0280B0B */ sb $t0, 0xb0b($at)
-/* AEDCD0 80076B30 01097021 */ addu $t6, $t0, $t1
-/* AEDCD4 80076B34 8FB900B8 */ lw $t9, 0xb8($sp)
-/* AEDCD8 80076B38 448E3000 */ mtc1 $t6, $f6
-/* AEDCDC 80076B3C 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEDCE0 80076B40 00390821 */ addu $at, $at, $t9
-/* AEDCE4 80076B44 46803220 */ cvt.s.w $f8, $f6
-/* AEDCE8 80076B48 A0290B0C */ sb $t1, 0xb0c($at)
-/* AEDCEC 80076B4C 3C014400 */ li $at, 0x44000000 # 0.000000
-/* AEDCF0 80076B50 44812000 */ mtc1 $at, $f4
-/* AEDCF4 80076B54 3C013CC0 */ li $at, 0x3CC00000 # 0.000000
-/* AEDCF8 80076B58 44819000 */ mtc1 $at, $f18
-/* AEDCFC 80076B5C 46082281 */ sub.s $f10, $f4, $f8
-/* AEDD00 80076B60 3C1F8012 */ lui $ra, %hi(D_8011FED0)
-/* AEDD04 80076B64 27FFFED0 */ addiu $ra, %lo(D_8011FED0) # addiu $ra, $ra, -0x130
-/* AEDD08 80076B68 25ADFEC4 */ addiu $t5, %lo(D_8011FEC4) # addiu $t5, $t5, -0x13c
-/* AEDD0C 80076B6C 46125382 */ mul.s $f14, $f10, $f18
-/* AEDD10 80076B70 460E803C */ c.lt.s $f16, $f14
-/* AEDD14 80076B74 00000000 */ nop
-/* AEDD18 80076B78 45020003 */ bc1fl .L80076B88
-/* AEDD1C 80076B7C 918F0A42 */ lbu $t7, 0xa42($t4)
-/* AEDD20 80076B80 46008386 */ mov.s $f14, $f16
-/* AEDD24 80076B84 918F0A42 */ lbu $t7, 0xa42($t4)
-.L80076B88:
-/* AEDD28 80076B88 55E00006 */ bnezl $t7, .L80076BA4
-/* AEDD2C 80076B8C 91B90003 */ lbu $t9, 3($t5)
-/* AEDD30 80076B90 91980AE3 */ lbu $t8, 0xae3($t4)
-/* AEDD34 80076B94 240100FF */ li $at, 255
-/* AEDD38 80076B98 5301000D */ beql $t8, $at, .L80076BD0
-/* AEDD3C 80076B9C AFAC0058 */ sw $t4, 0x58($sp)
-/* AEDD40 80076BA0 91B90003 */ lbu $t9, 3($t5)
-.L80076BA4:
-/* AEDD44 80076BA4 91AE0004 */ lbu $t6, 4($t5)
-/* AEDD48 80076BA8 91AF0005 */ lbu $t7, 5($t5)
-/* AEDD4C 80076BAC 93E90003 */ lbu $t1, 3($ra)
-/* AEDD50 80076BB0 93EA0004 */ lbu $t2, 4($ra)
-/* AEDD54 80076BB4 93EB0005 */ lbu $t3, 5($ra)
-/* AEDD58 80076BB8 AFAC0058 */ sw $t4, 0x58($sp)
-/* AEDD5C 80076BBC A3B900A4 */ sb $t9, 0xa4($sp)
-/* AEDD60 80076BC0 A3AE00A5 */ sb $t6, 0xa5($sp)
-/* AEDD64 80076BC4 100000AF */ b .L80076E84
-/* AEDD68 80076BC8 A3AF00A6 */ sb $t7, 0xa6($sp)
-/* AEDD6C 80076BCC AFAC0058 */ sw $t4, 0x58($sp)
-.L80076BD0:
-/* AEDD70 80076BD0 3C0C8012 */ lui $t4, %hi(D_8011FDD0)
-/* AEDD74 80076BD4 3C088012 */ lui $t0, %hi(D_8011FDCC)
-/* AEDD78 80076BD8 9108FDCC */ lbu $t0, %lo(D_8011FDCC)($t0)
-/* AEDD7C 80076BDC 918CFDD0 */ lbu $t4, %lo(D_8011FDD0)($t4)
-/* AEDD80 80076BE0 15880012 */ bne $t4, $t0, .L80076C2C
-/* AEDD84 80076BE4 3C0D8012 */ lui $t5, %hi(D_8011FEC4)
-/* AEDD88 80076BE8 00083080 */ sll $a2, $t0, 2
-/* AEDD8C 80076BEC 25ADFEC4 */ addiu $t5, %lo(D_8011FEC4) # addiu $t5, $t5, -0x13c
-/* AEDD90 80076BF0 00C83023 */ subu $a2, $a2, $t0
-/* AEDD94 80076BF4 01A61021 */ addu $v0, $t5, $a2
-/* AEDD98 80076BF8 3C1F8012 */ lui $ra, %hi(D_8011FED0)
-/* AEDD9C 80076BFC 27FFFED0 */ addiu $ra, %lo(D_8011FED0) # addiu $ra, $ra, -0x130
-/* AEDDA0 80076C00 90580000 */ lbu $t8, ($v0)
-/* AEDDA4 80076C04 90590001 */ lbu $t9, 1($v0)
-/* AEDDA8 80076C08 904E0002 */ lbu $t6, 2($v0)
-/* AEDDAC 80076C0C 03E61821 */ addu $v1, $ra, $a2
-/* AEDDB0 80076C10 90690000 */ lbu $t1, ($v1)
-/* AEDDB4 80076C14 906A0001 */ lbu $t2, 1($v1)
-/* AEDDB8 80076C18 906B0002 */ lbu $t3, 2($v1)
-/* AEDDBC 80076C1C A3B800A4 */ sb $t8, 0xa4($sp)
-/* AEDDC0 80076C20 A3B900A5 */ sb $t9, 0xa5($sp)
-/* AEDDC4 80076C24 10000097 */ b .L80076E84
-/* AEDDC8 80076C28 A3AE00A6 */ sb $t6, 0xa6($sp)
-.L80076C2C:
-/* AEDDCC 80076C2C 3C0D8012 */ lui $t5, %hi(D_8011FEC4)
-/* AEDDD0 80076C30 25ADFEC4 */ addiu $t5, %lo(D_8011FEC4) # addiu $t5, $t5, -0x13c
-/* AEDDD4 80076C34 000C3880 */ sll $a3, $t4, 2
-/* AEDDD8 80076C38 00EC3823 */ subu $a3, $a3, $t4
-/* AEDDDC 80076C3C 01A72021 */ addu $a0, $t5, $a3
-/* AEDDE0 80076C40 908F0000 */ lbu $t7, ($a0)
-/* AEDDE4 80076C44 3C018012 */ lui $at, %hi(D_8011FDD4)
-/* AEDDE8 80076C48 C420FDD4 */ lwc1 $f0, %lo(D_8011FDD4)($at)
-/* AEDDEC 80076C4C 448F9000 */ mtc1 $t7, $f18
-/* AEDDF0 80076C50 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEDDF4 80076C54 44816000 */ mtc1 $at, $f12
-/* AEDDF8 80076C58 46809220 */ cvt.s.w $f8, $f18
-/* AEDDFC 80076C5C 00083080 */ sll $a2, $t0, 2
-/* AEDE00 80076C60 3C1F8012 */ lui $ra, %hi(D_8011FED0)
-/* AEDE04 80076C64 00C83023 */ subu $a2, $a2, $t0
-/* AEDE08 80076C68 27FFFED0 */ addiu $ra, %lo(D_8011FED0) # addiu $ra, $ra, -0x130
-/* AEDE0C 80076C6C 46006081 */ sub.s $f2, $f12, $f0
-/* AEDE10 80076C70 05E10005 */ bgez $t7, .L80076C88
-/* AEDE14 80076C74 01A61021 */ addu $v0, $t5, $a2
-/* AEDE18 80076C78 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDE1C 80076C7C 44815000 */ mtc1 $at, $f10
-/* AEDE20 80076C80 00000000 */ nop
-/* AEDE24 80076C84 460A4200 */ add.s $f8, $f8, $f10
-.L80076C88:
-/* AEDE28 80076C88 90580000 */ lbu $t8, ($v0)
-/* AEDE2C 80076C8C 46004482 */ mul.s $f18, $f8, $f0
-/* AEDE30 80076C90 44983000 */ mtc1 $t8, $f6
-/* AEDE34 80076C94 07010005 */ bgez $t8, .L80076CAC
-/* AEDE38 80076C98 46803120 */ cvt.s.w $f4, $f6
-/* AEDE3C 80076C9C 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDE40 80076CA0 44815000 */ mtc1 $at, $f10
-/* AEDE44 80076CA4 00000000 */ nop
-/* AEDE48 80076CA8 460A2100 */ add.s $f4, $f4, $f10
-.L80076CAC:
-/* AEDE4C 80076CAC 46022202 */ mul.s $f8, $f4, $f2
-/* AEDE50 80076CB0 908F0001 */ lbu $t7, 1($a0)
-/* AEDE54 80076CB4 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDE58 80076CB8 448F2000 */ mtc1 $t7, $f4
-/* AEDE5C 80076CBC 46089180 */ add.s $f6, $f18, $f8
-/* AEDE60 80076CC0 468024A0 */ cvt.s.w $f18, $f4
-/* AEDE64 80076CC4 4600328D */ trunc.w.s $f10, $f6
-/* AEDE68 80076CC8 440E5000 */ mfc1 $t6, $f10
-/* AEDE6C 80076CCC 05E10004 */ bgez $t7, .L80076CE0
-/* AEDE70 80076CD0 A3AE00A4 */ sb $t6, 0xa4($sp)
-/* AEDE74 80076CD4 44814000 */ mtc1 $at, $f8
-/* AEDE78 80076CD8 00000000 */ nop
-/* AEDE7C 80076CDC 46089480 */ add.s $f18, $f18, $f8
-.L80076CE0:
-/* AEDE80 80076CE0 90580001 */ lbu $t8, 1($v0)
-/* AEDE84 80076CE4 46009182 */ mul.s $f6, $f18, $f0
-/* AEDE88 80076CE8 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDE8C 80076CEC 44985000 */ mtc1 $t8, $f10
-/* AEDE90 80076CF0 07010004 */ bgez $t8, .L80076D04
-/* AEDE94 80076CF4 46805120 */ cvt.s.w $f4, $f10
-/* AEDE98 80076CF8 44814000 */ mtc1 $at, $f8
-/* AEDE9C 80076CFC 00000000 */ nop
-/* AEDEA0 80076D00 46082100 */ add.s $f4, $f4, $f8
-.L80076D04:
-/* AEDEA4 80076D04 46022482 */ mul.s $f18, $f4, $f2
-/* AEDEA8 80076D08 908F0002 */ lbu $t7, 2($a0)
-/* AEDEAC 80076D0C 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDEB0 80076D10 448F2000 */ mtc1 $t7, $f4
-/* AEDEB4 80076D14 46123280 */ add.s $f10, $f6, $f18
-/* AEDEB8 80076D18 468021A0 */ cvt.s.w $f6, $f4
-/* AEDEBC 80076D1C 4600520D */ trunc.w.s $f8, $f10
-/* AEDEC0 80076D20 440E4000 */ mfc1 $t6, $f8
-/* AEDEC4 80076D24 05E10004 */ bgez $t7, .L80076D38
-/* AEDEC8 80076D28 A3AE00A5 */ sb $t6, 0xa5($sp)
-/* AEDECC 80076D2C 44819000 */ mtc1 $at, $f18
-/* AEDED0 80076D30 00000000 */ nop
-/* AEDED4 80076D34 46123180 */ add.s $f6, $f6, $f18
-.L80076D38:
-/* AEDED8 80076D38 90580002 */ lbu $t8, 2($v0)
-/* AEDEDC 80076D3C 46003282 */ mul.s $f10, $f6, $f0
-/* AEDEE0 80076D40 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDEE4 80076D44 44984000 */ mtc1 $t8, $f8
-/* AEDEE8 80076D48 07010004 */ bgez $t8, .L80076D5C
-/* AEDEEC 80076D4C 46804120 */ cvt.s.w $f4, $f8
-/* AEDEF0 80076D50 44819000 */ mtc1 $at, $f18
-/* AEDEF4 80076D54 00000000 */ nop
-/* AEDEF8 80076D58 46122100 */ add.s $f4, $f4, $f18
-.L80076D5C:
-/* AEDEFC 80076D5C 46022182 */ mul.s $f6, $f4, $f2
-/* AEDF00 80076D60 03E72821 */ addu $a1, $ra, $a3
-/* AEDF04 80076D64 90AF0000 */ lbu $t7, ($a1)
-/* AEDF08 80076D68 03E61821 */ addu $v1, $ra, $a2
-/* AEDF0C 80076D6C 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDF10 80076D70 448F2000 */ mtc1 $t7, $f4
-/* AEDF14 80076D74 46065200 */ add.s $f8, $f10, $f6
-/* AEDF18 80076D78 468022A0 */ cvt.s.w $f10, $f4
-/* AEDF1C 80076D7C 4600448D */ trunc.w.s $f18, $f8
-/* AEDF20 80076D80 440E9000 */ mfc1 $t6, $f18
-/* AEDF24 80076D84 05E10004 */ bgez $t7, .L80076D98
-/* AEDF28 80076D88 A3AE00A6 */ sb $t6, 0xa6($sp)
-/* AEDF2C 80076D8C 44813000 */ mtc1 $at, $f6
-/* AEDF30 80076D90 00000000 */ nop
-/* AEDF34 80076D94 46065280 */ add.s $f10, $f10, $f6
-.L80076D98:
-/* AEDF38 80076D98 90780000 */ lbu $t8, ($v1)
-/* AEDF3C 80076D9C 46005202 */ mul.s $f8, $f10, $f0
-/* AEDF40 80076DA0 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDF44 80076DA4 44989000 */ mtc1 $t8, $f18
-/* AEDF48 80076DA8 07010004 */ bgez $t8, .L80076DBC
-/* AEDF4C 80076DAC 46809120 */ cvt.s.w $f4, $f18
-/* AEDF50 80076DB0 44813000 */ mtc1 $at, $f6
-/* AEDF54 80076DB4 00000000 */ nop
-/* AEDF58 80076DB8 46062100 */ add.s $f4, $f4, $f6
-.L80076DBC:
-/* AEDF5C 80076DBC 46022282 */ mul.s $f10, $f4, $f2
-/* AEDF60 80076DC0 90AE0001 */ lbu $t6, 1($a1)
-/* AEDF64 80076DC4 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDF68 80076DC8 448E2000 */ mtc1 $t6, $f4
-/* AEDF6C 80076DCC 460A4480 */ add.s $f18, $f8, $f10
-/* AEDF70 80076DD0 46802220 */ cvt.s.w $f8, $f4
-/* AEDF74 80076DD4 4600918D */ trunc.w.s $f6, $f18
-/* AEDF78 80076DD8 44093000 */ mfc1 $t1, $f6
-/* AEDF7C 80076DDC 05C10004 */ bgez $t6, .L80076DF0
-/* AEDF80 80076DE0 312900FF */ andi $t1, $t1, 0xff
-/* AEDF84 80076DE4 44815000 */ mtc1 $at, $f10
-/* AEDF88 80076DE8 00000000 */ nop
-/* AEDF8C 80076DEC 460A4200 */ add.s $f8, $f8, $f10
-.L80076DF0:
-/* AEDF90 80076DF0 906F0001 */ lbu $t7, 1($v1)
-/* AEDF94 80076DF4 46004482 */ mul.s $f18, $f8, $f0
-/* AEDF98 80076DF8 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDF9C 80076DFC 448F3000 */ mtc1 $t7, $f6
-/* AEDFA0 80076E00 05E10004 */ bgez $t7, .L80076E14
-/* AEDFA4 80076E04 46803120 */ cvt.s.w $f4, $f6
-/* AEDFA8 80076E08 44815000 */ mtc1 $at, $f10
-/* AEDFAC 80076E0C 00000000 */ nop
-/* AEDFB0 80076E10 460A2100 */ add.s $f4, $f4, $f10
-.L80076E14:
-/* AEDFB4 80076E14 46022202 */ mul.s $f8, $f4, $f2
-/* AEDFB8 80076E18 90B90002 */ lbu $t9, 2($a1)
-/* AEDFBC 80076E1C 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDFC0 80076E20 44992000 */ mtc1 $t9, $f4
-/* AEDFC4 80076E24 46089180 */ add.s $f6, $f18, $f8
-/* AEDFC8 80076E28 468024A0 */ cvt.s.w $f18, $f4
-/* AEDFCC 80076E2C 4600328D */ trunc.w.s $f10, $f6
-/* AEDFD0 80076E30 440A5000 */ mfc1 $t2, $f10
-/* AEDFD4 80076E34 07210004 */ bgez $t9, .L80076E48
-/* AEDFD8 80076E38 314A00FF */ andi $t2, $t2, 0xff
-/* AEDFDC 80076E3C 44814000 */ mtc1 $at, $f8
-/* AEDFE0 80076E40 00000000 */ nop
-/* AEDFE4 80076E44 46089480 */ add.s $f18, $f18, $f8
-.L80076E48:
-/* AEDFE8 80076E48 906E0002 */ lbu $t6, 2($v1)
-/* AEDFEC 80076E4C 46009182 */ mul.s $f6, $f18, $f0
-/* AEDFF0 80076E50 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEDFF4 80076E54 448E5000 */ mtc1 $t6, $f10
-/* AEDFF8 80076E58 05C10004 */ bgez $t6, .L80076E6C
-/* AEDFFC 80076E5C 46805120 */ cvt.s.w $f4, $f10
-/* AEE000 80076E60 44814000 */ mtc1 $at, $f8
-/* AEE004 80076E64 00000000 */ nop
-/* AEE008 80076E68 46082100 */ add.s $f4, $f4, $f8
-.L80076E6C:
-/* AEE00C 80076E6C 46022482 */ mul.s $f18, $f4, $f2
-/* AEE010 80076E70 46123280 */ add.s $f10, $f6, $f18
-/* AEE014 80076E74 4600520D */ trunc.w.s $f8, $f10
-/* AEE018 80076E78 440B4000 */ mfc1 $t3, $f8
-/* AEE01C 80076E7C 00000000 */ nop
-/* AEE020 80076E80 316B00FF */ andi $t3, $t3, 0xff
-.L80076E84:
-/* AEE024 80076E84 44892000 */ mtc1 $t1, $f4
-/* AEE028 80076E88 3C018014 */ lui $at, %hi(D_8013C830)
-/* AEE02C 80076E8C C42CC830 */ lwc1 $f12, %lo(D_8013C830)($at)
-/* AEE030 80076E90 460E8001 */ sub.s $f0, $f16, $f14
-/* AEE034 80076E94 05210005 */ bgez $t1, .L80076EAC
-/* AEE038 80076E98 468021A0 */ cvt.s.w $f6, $f4
-/* AEE03C 80076E9C 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE040 80076EA0 44819000 */ mtc1 $at, $f18
-/* AEE044 80076EA4 00000000 */ nop
-/* AEE048 80076EA8 46123180 */ add.s $f6, $f6, $f18
-.L80076EAC:
-/* AEE04C 80076EAC 93B800A4 */ lbu $t8, 0xa4($sp)
-/* AEE050 80076EB0 460E3282 */ mul.s $f10, $f6, $f14
-/* AEE054 80076EB4 44984000 */ mtc1 $t8, $f8
-/* AEE058 80076EB8 07010005 */ bgez $t8, .L80076ED0
-/* AEE05C 80076EBC 46804120 */ cvt.s.w $f4, $f8
-/* AEE060 80076EC0 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE064 80076EC4 44819000 */ mtc1 $at, $f18
-/* AEE068 80076EC8 00000000 */ nop
-/* AEE06C 80076ECC 46122100 */ add.s $f4, $f4, $f18
-.L80076ED0:
-/* AEE070 80076ED0 46040182 */ mul.s $f6, $f0, $f4
-/* AEE074 80076ED4 24090001 */ li $t1, 1
-/* AEE078 80076ED8 46065200 */ add.s $f8, $f10, $f6
-/* AEE07C 80076EDC 460C4482 */ mul.s $f18, $f8, $f12
-/* AEE080 80076EE0 4459F800 */ cfc1 $t9, $31
-/* AEE084 80076EE4 44C9F800 */ ctc1 $t1, $31
-/* AEE088 80076EE8 00000000 */ nop
-/* AEE08C 80076EEC 46009124 */ cvt.w.s $f4, $f18
-/* AEE090 80076EF0 4449F800 */ cfc1 $t1, $31
-/* AEE094 80076EF4 00000000 */ nop
-/* AEE098 80076EF8 31290078 */ andi $t1, $t1, 0x78
-/* AEE09C 80076EFC 11200012 */ beqz $t1, .L80076F48
-/* AEE0A0 80076F00 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEE0A4 80076F04 44812000 */ mtc1 $at, $f4
-/* AEE0A8 80076F08 24090001 */ li $t1, 1
-/* AEE0AC 80076F0C 46049101 */ sub.s $f4, $f18, $f4
-/* AEE0B0 80076F10 44C9F800 */ ctc1 $t1, $31
-/* AEE0B4 80076F14 00000000 */ nop
-/* AEE0B8 80076F18 46002124 */ cvt.w.s $f4, $f4
-/* AEE0BC 80076F1C 4449F800 */ cfc1 $t1, $31
-/* AEE0C0 80076F20 00000000 */ nop
-/* AEE0C4 80076F24 31290078 */ andi $t1, $t1, 0x78
-/* AEE0C8 80076F28 15200005 */ bnez $t1, .L80076F40
-/* AEE0CC 80076F2C 00000000 */ nop
-/* AEE0D0 80076F30 44092000 */ mfc1 $t1, $f4
-/* AEE0D4 80076F34 3C018000 */ li $at, 0x80000000 # 0.000000
-/* AEE0D8 80076F38 10000007 */ b .L80076F58
-/* AEE0DC 80076F3C 01214825 */ or $t1, $t1, $at
-.L80076F40:
-/* AEE0E0 80076F40 10000005 */ b .L80076F58
-/* AEE0E4 80076F44 2409FFFF */ li $t1, -1
-.L80076F48:
-/* AEE0E8 80076F48 44092000 */ mfc1 $t1, $f4
-/* AEE0EC 80076F4C 00000000 */ nop
-/* AEE0F0 80076F50 0520FFFB */ bltz $t1, .L80076F40
-/* AEE0F4 80076F54 00000000 */ nop
-.L80076F58:
-/* AEE0F8 80076F58 44D9F800 */ ctc1 $t9, $31
-/* AEE0FC 80076F5C 448A5000 */ mtc1 $t2, $f10
-/* AEE100 80076F60 312900FF */ andi $t1, $t1, 0xff
-/* AEE104 80076F64 05410005 */ bgez $t2, .L80076F7C
-/* AEE108 80076F68 468051A0 */ cvt.s.w $f6, $f10
-/* AEE10C 80076F6C 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE110 80076F70 44814000 */ mtc1 $at, $f8
-/* AEE114 80076F74 00000000 */ nop
-/* AEE118 80076F78 46083180 */ add.s $f6, $f6, $f8
-.L80076F7C:
-/* AEE11C 80076F7C 93AE00A5 */ lbu $t6, 0xa5($sp)
-/* AEE120 80076F80 460E3482 */ mul.s $f18, $f6, $f14
-/* AEE124 80076F84 448E2000 */ mtc1 $t6, $f4
-/* AEE128 80076F88 05C10005 */ bgez $t6, .L80076FA0
-/* AEE12C 80076F8C 468022A0 */ cvt.s.w $f10, $f4
-/* AEE130 80076F90 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE134 80076F94 44814000 */ mtc1 $at, $f8
-/* AEE138 80076F98 00000000 */ nop
-/* AEE13C 80076F9C 46085280 */ add.s $f10, $f10, $f8
-.L80076FA0:
-/* AEE140 80076FA0 460A0182 */ mul.s $f6, $f0, $f10
-/* AEE144 80076FA4 240A0001 */ li $t2, 1
-/* AEE148 80076FA8 3C0E8016 */ lui $t6, %hi(D_8015FDB0) # $t6, 0x8016
-/* AEE14C 80076FAC 46069100 */ add.s $f4, $f18, $f6
-/* AEE150 80076FB0 460C2202 */ mul.s $f8, $f4, $f12
-/* AEE154 80076FB4 444FF800 */ cfc1 $t7, $31
-/* AEE158 80076FB8 44CAF800 */ ctc1 $t2, $31
-/* AEE15C 80076FBC 00000000 */ nop
-/* AEE160 80076FC0 460042A4 */ cvt.w.s $f10, $f8
-/* AEE164 80076FC4 444AF800 */ cfc1 $t2, $31
-/* AEE168 80076FC8 00000000 */ nop
-/* AEE16C 80076FCC 314A0078 */ andi $t2, $t2, 0x78
-/* AEE170 80076FD0 11400012 */ beqz $t2, .L8007701C
-/* AEE174 80076FD4 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEE178 80076FD8 44815000 */ mtc1 $at, $f10
-/* AEE17C 80076FDC 240A0001 */ li $t2, 1
-/* AEE180 80076FE0 460A4281 */ sub.s $f10, $f8, $f10
-/* AEE184 80076FE4 44CAF800 */ ctc1 $t2, $31
-/* AEE188 80076FE8 00000000 */ nop
-/* AEE18C 80076FEC 460052A4 */ cvt.w.s $f10, $f10
-/* AEE190 80076FF0 444AF800 */ cfc1 $t2, $31
-/* AEE194 80076FF4 00000000 */ nop
-/* AEE198 80076FF8 314A0078 */ andi $t2, $t2, 0x78
-/* AEE19C 80076FFC 15400005 */ bnez $t2, .L80077014
-/* AEE1A0 80077000 00000000 */ nop
-/* AEE1A4 80077004 440A5000 */ mfc1 $t2, $f10
-/* AEE1A8 80077008 3C018000 */ li $at, 0x80000000 # 0.000000
-/* AEE1AC 8007700C 10000007 */ b .L8007702C
-/* AEE1B0 80077010 01415025 */ or $t2, $t2, $at
-.L80077014:
-/* AEE1B4 80077014 10000005 */ b .L8007702C
-/* AEE1B8 80077018 240AFFFF */ li $t2, -1
-.L8007701C:
-/* AEE1BC 8007701C 440A5000 */ mfc1 $t2, $f10
-/* AEE1C0 80077020 00000000 */ nop
-/* AEE1C4 80077024 0540FFFB */ bltz $t2, .L80077014
-/* AEE1C8 80077028 00000000 */ nop
-.L8007702C:
-/* AEE1CC 8007702C 44CFF800 */ ctc1 $t7, $31
-/* AEE1D0 80077030 448B9000 */ mtc1 $t3, $f18
-/* AEE1D4 80077034 314A00FF */ andi $t2, $t2, 0xff
-/* AEE1D8 80077038 05610005 */ bgez $t3, .L80077050
-/* AEE1DC 8007703C 468091A0 */ cvt.s.w $f6, $f18
-/* AEE1E0 80077040 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE1E4 80077044 44812000 */ mtc1 $at, $f4
-/* AEE1E8 80077048 00000000 */ nop
-/* AEE1EC 8007704C 46043180 */ add.s $f6, $f6, $f4
-.L80077050:
-/* AEE1F0 80077050 93B800A6 */ lbu $t8, 0xa6($sp)
-/* AEE1F4 80077054 460E3202 */ mul.s $f8, $f6, $f14
-/* AEE1F8 80077058 44985000 */ mtc1 $t8, $f10
-/* AEE1FC 8007705C 07010005 */ bgez $t8, .L80077074
-/* AEE200 80077060 468054A0 */ cvt.s.w $f18, $f10
-/* AEE204 80077064 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE208 80077068 44812000 */ mtc1 $at, $f4
-/* AEE20C 8007706C 00000000 */ nop
-/* AEE210 80077070 46049480 */ add.s $f18, $f18, $f4
-.L80077074:
-/* AEE214 80077074 46120182 */ mul.s $f6, $f0, $f18
-/* AEE218 80077078 240B0001 */ li $t3, 1
-/* AEE21C 8007707C 46064280 */ add.s $f10, $f8, $f6
-/* AEE220 80077080 460C5102 */ mul.s $f4, $f10, $f12
-/* AEE224 80077084 4459F800 */ cfc1 $t9, $31
-/* AEE228 80077088 44CBF800 */ ctc1 $t3, $31
-/* AEE22C 8007708C 00000000 */ nop
-/* AEE230 80077090 460024A4 */ cvt.w.s $f18, $f4
-/* AEE234 80077094 444BF800 */ cfc1 $t3, $31
-/* AEE238 80077098 00000000 */ nop
-/* AEE23C 8007709C 316B0078 */ andi $t3, $t3, 0x78
-/* AEE240 800770A0 11600012 */ beqz $t3, .L800770EC
-/* AEE244 800770A4 3C014F00 */ li $at, 0x4F000000 # 0.000000
-/* AEE248 800770A8 44819000 */ mtc1 $at, $f18
-/* AEE24C 800770AC 240B0001 */ li $t3, 1
-/* AEE250 800770B0 46122481 */ sub.s $f18, $f4, $f18
-/* AEE254 800770B4 44CBF800 */ ctc1 $t3, $31
-/* AEE258 800770B8 00000000 */ nop
-/* AEE25C 800770BC 460094A4 */ cvt.w.s $f18, $f18
-/* AEE260 800770C0 444BF800 */ cfc1 $t3, $31
-/* AEE264 800770C4 00000000 */ nop
-/* AEE268 800770C8 316B0078 */ andi $t3, $t3, 0x78
-/* AEE26C 800770CC 15600005 */ bnez $t3, .L800770E4
-/* AEE270 800770D0 00000000 */ nop
-/* AEE274 800770D4 440B9000 */ mfc1 $t3, $f18
-/* AEE278 800770D8 3C018000 */ lui $at, 0x8000
-/* AEE27C 800770DC 10000007 */ b .L800770FC
-/* AEE280 800770E0 01615825 */ or $t3, $t3, $at
-.L800770E4:
-/* AEE284 800770E4 10000005 */ b .L800770FC
-/* AEE288 800770E8 240BFFFF */ li $t3, -1
-.L800770EC:
-/* AEE28C 800770EC 440B9000 */ mfc1 $t3, $f18
-/* AEE290 800770F0 00000000 */ nop
-/* AEE294 800770F4 0560FFFB */ bltz $t3, .L800770E4
-/* AEE298 800770F8 00000000 */ nop
-.L800770FC:
-/* AEE29C 800770FC 95CEFDB0 */ lhu $t6, %lo(D_8015FDB0)($t6)
-/* AEE2A0 80077100 44D9F800 */ ctc1 $t9, $31
-/* AEE2A4 80077104 316B00FF */ andi $t3, $t3, 0xff
-/* AEE2A8 80077108 448E4000 */ mtc1 $t6, $f8
-/* AEE2AC 8007710C 05C10005 */ bgez $t6, .L80077124
-/* AEE2B0 80077110 468040A0 */ cvt.s.w $f2, $f8
-/* AEE2B4 80077114 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE2B8 80077118 44813000 */ mtc1 $at, $f6
-/* AEE2BC 8007711C 00000000 */ nop
-/* AEE2C0 80077120 46061080 */ add.s $f2, $f2, $f6
-.L80077124:
-/* AEE2C4 80077124 3C018014 */ lui $at, %hi(D_8013C834)
-/* AEE2C8 80077128 C42AC834 */ lwc1 $f10, %lo(D_8013C834)($at)
-/* AEE2CC 8007712C 3C013FC0 */ li $at, 0x3FC00000 # 0.000000
-/* AEE2D0 80077130 44814000 */ mtc1 $at, $f8
-/* AEE2D4 80077134 460A1102 */ mul.s $f4, $f2, $f10
-/* AEE2D8 80077138 3C013F80 */ lui $at, 0x3f80
-/* AEE2DC 8007713C 8FB900B8 */ lw $t9, 0xb8($sp)
-/* AEE2E0 80077140 46081182 */ mul.s $f6, $f2, $f8
-/* AEE2E4 80077144 3C068014 */ lui $a2, %hi(D_8013C770)
-/* AEE2E8 80077148 24C6C770 */ addiu $a2, %lo(D_8013C770) # addiu $a2, $a2, -0x3890
-/* AEE2EC 8007714C 27A4007C */ addiu $a0, $sp, 0x7c
-/* AEE2F0 80077150 24070FCC */ li $a3, 4044
-/* AEE2F4 80077154 4600248D */ trunc.w.s $f18, $f4
-/* AEE2F8 80077158 44812000 */ mtc1 $at, $f4
-/* AEE2FC 8007715C 4600328D */ trunc.w.s $f10, $f6
-/* AEE300 80077160 44189000 */ mfc1 $t8, $f18
-/* AEE304 80077164 46041482 */ mul.s $f18, $f2, $f4
-/* AEE308 80077168 A7B80096 */ sh $t8, 0x96($sp)
-/* AEE30C 8007716C 440E5000 */ mfc1 $t6, $f10
-/* AEE310 80077170 00000000 */ nop
-/* AEE314 80077174 A7AE0094 */ sh $t6, 0x94($sp)
-/* AEE318 80077178 4600920D */ trunc.w.s $f8, $f18
-/* AEE31C 8007717C 44184000 */ mfc1 $t8, $f8
-/* AEE320 80077180 00000000 */ nop
-/* AEE324 80077184 A7B80092 */ sh $t8, 0x92($sp)
-/* AEE328 80077188 8F250000 */ lw $a1, ($t9)
-/* AEE32C 8007718C E7AE0098 */ swc1 $f14, 0x98($sp)
-/* AEE330 80077190 A3AB00A2 */ sb $t3, 0xa2($sp)
-/* AEE334 80077194 A3AA00A1 */ sb $t2, 0xa1($sp)
-/* AEE338 80077198 A3A900A0 */ sb $t1, 0xa0($sp)
-/* AEE33C 8007719C 0C031AB1 */ jal Graph_OpenDisps
-/* AEE340 800771A0 AFA5008C */ sw $a1, 0x8c($sp)
-/* AEE344 800771A4 8FA3008C */ lw $v1, 0x8c($sp)
-/* AEE348 800771A8 0C024FCD */ jal func_80093F34
-/* AEE34C 800771AC 8C6402D0 */ lw $a0, 0x2d0($v1)
-/* AEE350 800771B0 8FA3008C */ lw $v1, 0x8c($sp)
-/* AEE354 800771B4 93A900A0 */ lbu $t1, 0xa0($sp)
-/* AEE358 800771B8 93AA00A1 */ lbu $t2, 0xa1($sp)
-/* AEE35C 800771BC 93AB00A2 */ lbu $t3, 0xa2($sp)
-/* AEE360 800771C0 C7AE0098 */ lwc1 $f14, 0x98($sp)
-/* AEE364 800771C4 244E0008 */ addiu $t6, $v0, 8
-/* AEE368 800771C8 AC6202D0 */ sw $v0, 0x2d0($v1)
-/* AEE36C 800771CC 3C0FE300 */ lui $t7, (0xE3001A01 >> 16) # lui $t7, 0xe300
-/* AEE370 800771D0 AC6E02D0 */ sw $t6, 0x2d0($v1)
-/* AEE374 800771D4 35EF1A01 */ ori $t7, (0xE3001A01 & 0xFFFF) # ori $t7, $t7, 0x1a01
-/* AEE378 800771D8 24180020 */ li $t8, 32
-/* AEE37C 800771DC AC580004 */ sw $t8, 4($v0)
-/* AEE380 800771E0 AC4F0000 */ sw $t7, ($v0)
-/* AEE384 800771E4 8C6202D0 */ lw $v0, 0x2d0($v1)
-/* AEE388 800771E8 3C0EE300 */ lui $t6, (0xE3001801 >> 16) # lui $t6, 0xe300
-/* AEE38C 800771EC 35CE1801 */ ori $t6, (0xE3001801 & 0xFFFF) # ori $t6, $t6, 0x1801
-/* AEE390 800771F0 24590008 */ addiu $t9, $v0, 8
-/* AEE394 800771F4 AC7902D0 */ sw $t9, 0x2d0($v1)
-/* AEE398 800771F8 240F0080 */ li $t7, 128
-/* AEE39C 800771FC AC4F0004 */ sw $t7, 4($v0)
-/* AEE3A0 80077200 AC4E0000 */ sw $t6, ($v0)
-/* AEE3A4 80077204 8C6202D0 */ lw $v0, 0x2d0($v1)
-/* AEE3A8 80077208 3C19FA00 */ lui $t9, (0xFA000080 >> 16) # lui $t9, 0xfa00
-/* AEE3AC 8007720C 37390080 */ ori $t9, (0xFA000080 & 0xFFFF) # ori $t9, $t9, 0x80
-/* AEE3B0 80077210 24580008 */ addiu $t8, $v0, 8
-/* AEE3B4 80077214 AC7802D0 */ sw $t8, 0x2d0($v1)
-/* AEE3B8 80077218 AC590000 */ sw $t9, ($v0)
-/* AEE3BC 8007721C 93AF00A4 */ lbu $t7, 0xa4($sp)
-/* AEE3C0 80077220 93AE00A5 */ lbu $t6, 0xa5($sp)
-/* AEE3C4 80077224 00002825 */ move $a1, $zero
-/* AEE3C8 80077228 000FC600 */ sll $t8, $t7, 0x18
-/* AEE3CC 8007722C 000E7C00 */ sll $t7, $t6, 0x10
-/* AEE3D0 80077230 030FC825 */ or $t9, $t8, $t7
-/* AEE3D4 80077234 93B800A6 */ lbu $t8, 0xa6($sp)
-/* AEE3D8 80077238 00003825 */ move $a3, $zero
-/* AEE3DC 8007723C 00187A00 */ sll $t7, $t8, 8
-/* AEE3E0 80077240 8FB80058 */ lw $t8, 0x58($sp)
-/* AEE3E4 80077244 032F7025 */ or $t6, $t9, $t7
-/* AEE3E8 80077248 930F0B0B */ lbu $t7, 0xb0b($t8)
-/* AEE3EC 8007724C 01CFC025 */ or $t8, $t6, $t7
-/* AEE3F0 80077250 AC580004 */ sw $t8, 4($v0)
-/* AEE3F4 80077254 8C6202D0 */ lw $v0, 0x2d0($v1)
-/* AEE3F8 80077258 3C0EFB00 */ lui $t6, 0xfb00
-/* AEE3FC 8007725C 0009C600 */ sll $t8, $t1, 0x18
-/* AEE400 80077260 24590008 */ addiu $t9, $v0, 8
-/* AEE404 80077264 AC7902D0 */ sw $t9, 0x2d0($v1)
-/* AEE408 80077268 AC4E0000 */ sw $t6, ($v0)
-/* AEE40C 8007726C 000A7400 */ sll $t6, $t2, 0x10
-/* AEE410 80077270 8FB90058 */ lw $t9, 0x58($sp)
-/* AEE414 80077274 030E7825 */ or $t7, $t8, $t6
-/* AEE418 80077278 000BC200 */ sll $t8, $t3, 8
-/* AEE41C 8007727C 01F87025 */ or $t6, $t7, $t8
-/* AEE420 80077280 93380B0C */ lbu $t8, 0xb0c($t9)
-/* AEE424 80077284 01D8C825 */ or $t9, $t6, $t8
-/* AEE428 80077288 AC590004 */ sw $t9, 4($v0)
-/* AEE42C 8007728C 8C6202D0 */ lw $v0, 0x2d0($v1)
-/* AEE430 80077290 3C0EDB06 */ lui $t6, (0xDB060020 >> 16) # lui $t6, 0xdb06
-/* AEE434 80077294 35CE0020 */ ori $t6, (0xDB060020 & 0xFFFF) # ori $t6, $t6, 0x20
-/* AEE438 80077298 244F0008 */ addiu $t7, $v0, 8
-/* AEE43C 8007729C AC6F02D0 */ sw $t7, 0x2d0($v1)
-/* AEE440 800772A0 AC4E0000 */ sw $t6, ($v0)
-/* AEE444 800772A4 8FB800B8 */ lw $t8, 0xb8($sp)
-/* AEE448 800772A8 240F0020 */ li $t7, 32
-/* AEE44C 800772AC 24190200 */ li $t9, 512
-/* AEE450 800772B0 8F040000 */ lw $a0, ($t8)
-/* AEE454 800772B4 97B80094 */ lhu $t8, 0x94($sp)
-/* AEE458 800772B8 AFAF0014 */ sw $t7, 0x14($sp)
-/* AEE45C 800772BC 97AF0092 */ lhu $t7, 0x92($sp)
-/* AEE460 800772C0 AFB90010 */ sw $t9, 0x10($sp)
-/* AEE464 800772C4 240E0001 */ li $t6, 1
-/* AEE468 800772C8 33190FFF */ andi $t9, $t8, 0xfff
-/* AEE46C 800772CC AFAE0018 */ sw $t6, 0x18($sp)
-/* AEE470 800772D0 AFB9001C */ sw $t9, 0x1c($sp)
-/* AEE474 800772D4 24180FFF */ li $t8, 4095
-/* AEE478 800772D8 31EE0FFF */ andi $t6, $t7, 0xfff
-/* AEE47C 800772DC 97A60096 */ lhu $a2, 0x96($sp)
-/* AEE480 800772E0 030EC823 */ subu $t9, $t8, $t6
-/* AEE484 800772E4 24180040 */ li $t8, 64
-/* AEE488 800772E8 240F0100 */ li $t7, 256
-/* AEE48C 800772EC AFAF0024 */ sw $t7, 0x24($sp)
-/* AEE490 800772F0 AFB80028 */ sw $t8, 0x28($sp)
-/* AEE494 800772F4 AFB90020 */ sw $t9, 0x20($sp)
-/* AEE498 800772F8 AFA3008C */ sw $v1, 0x8c($sp)
-/* AEE49C 800772FC E7AE0098 */ swc1 $f14, 0x98($sp)
-/* AEE4A0 80077300 AFA20068 */ sw $v0, 0x68($sp)
-/* AEE4A4 80077304 0C0253D0 */ jal Gfx_TwoTexScroll
-/* AEE4A8 80077308 30C60FFF */ andi $a2, $a2, 0xfff
-/* AEE4AC 8007730C 8FA80068 */ lw $t0, 0x68($sp)
-/* AEE4B0 80077310 8FA3008C */ lw $v1, 0x8c($sp)
-/* AEE4B4 80077314 C7AE0098 */ lwc1 $f14, 0x98($sp)
-/* AEE4B8 80077318 AD020004 */ sw $v0, 4($t0)
-/* AEE4BC 8007731C 8C6202D0 */ lw $v0, 0x2d0($v1)
-/* AEE4C0 80077320 3C19E300 */ lui $t9, (0xE3001001 >> 16) # lui $t9, 0xe300
-/* AEE4C4 80077324 37391001 */ ori $t9, (0xE3001001 & 0xFFFF) # ori $t9, $t9, 0x1001
-/* AEE4C8 80077328 244E0008 */ addiu $t6, $v0, 8
-/* AEE4CC 8007732C AC6E02D0 */ sw $t6, 0x2d0($v1)
-/* AEE4D0 80077330 AC400004 */ sw $zero, 4($v0)
-/* AEE4D4 80077334 AC590000 */ sw $t9, ($v0)
-/* AEE4D8 80077338 8C6202D0 */ lw $v0, 0x2d0($v1)
-/* AEE4DC 8007733C 3C0E0501 */ lui $t6, %hi(gFieldDL_00CA70) # $t6, 0x501
-/* AEE4E0 80077340 25CECA70 */ addiu $t6, %lo(gFieldDL_00CA70) # addiu $t6, $t6, -0x3590
-/* AEE4E4 80077344 244F0008 */ addiu $t7, $v0, 8
-/* AEE4E8 80077348 AC6F02D0 */ sw $t7, 0x2d0($v1)
-/* AEE4EC 8007734C 3C18DE00 */ lui $t8, 0xde00
-/* AEE4F0 80077350 AC580000 */ sw $t8, ($v0)
-/* AEE4F4 80077354 AC4E0004 */ sw $t6, 4($v0)
-/* AEE4F8 80077358 8FB900B8 */ lw $t9, 0xb8($sp)
-/* AEE4FC 8007735C 3C068014 */ lui $a2, %hi(D_8013C780) # $a2, 0x8014
-/* AEE500 80077360 24C6C780 */ addiu $a2, %lo(D_8013C780) # addiu $a2, $a2, -0x3880
-/* AEE504 80077364 8F250000 */ lw $a1, ($t9)
-/* AEE508 80077368 27A4007C */ addiu $a0, $sp, 0x7c
-/* AEE50C 8007736C 24070FE4 */ li $a3, 4068
-/* AEE510 80077370 0C031AD5 */ jal Graph_CloseDisps
-/* AEE514 80077374 E7AE0098 */ swc1 $f14, 0x98($sp)
-/* AEE518 80077378 C7AE0098 */ lwc1 $f14, 0x98($sp)
-/* AEE51C 8007737C 3C028016 */ lui $v0, %hi(D_8015FDB0) # $v0, 0x8016
-/* AEE520 80077380 2442FDB0 */ addiu $v0, %lo(D_8015FDB0) # addiu $v0, $v0, -0x250
-/* AEE524 80077384 4600718D */ trunc.w.s $f6, $f14
-/* AEE528 80077388 944F0000 */ lhu $t7, ($v0)
-/* AEE52C 8007738C 8FBF0034 */ lw $ra, 0x34($sp)
-/* AEE530 80077390 27BD00B8 */ addiu $sp, $sp, 0xb8
-/* AEE534 80077394 440E3000 */ mfc1 $t6, $f6
-/* AEE538 80077398 00000000 */ nop
-/* AEE53C 8007739C 01EEC821 */ addu $t9, $t7, $t6
-/* AEE540 800773A0 03E00008 */ jr $ra
-/* AEE544 800773A4 A4590000 */ sh $t9, ($v0)
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800773A8.s b/asm/non_matchings/code/z_kankyo/func_800773A8.s
deleted file mode 100644
index 9360508444..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800773A8.s
+++ /dev/null
@@ -1,152 +0,0 @@
-glabel func_800773A8
-/* AEE548 800773A8 27BDFFD8 */ addiu $sp, $sp, -0x28
-/* AEE54C 800773AC 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEE550 800773B0 AFBF0014 */ sw $ra, 0x14($sp)
-/* AEE554 800773B4 AFA40028 */ sw $a0, 0x28($sp)
-/* AEE558 800773B8 AFA60030 */ sw $a2, 0x30($sp)
-/* AEE55C 800773BC AFA70034 */ sw $a3, 0x34($sp)
-/* AEE560 800773C0 00811821 */ addu $v1, $a0, $at
-/* AEE564 800773C4 906E1CBF */ lbu $t6, 0x1cbf($v1)
-/* AEE568 800773C8 44856000 */ mtc1 $a1, $f12
-/* AEE56C 800773CC 24010005 */ li $at, 5
-/* AEE570 800773D0 11C1007A */ beq $t6, $at, .L800775BC
-/* AEE574 800773D4 00803025 */ move $a2, $a0
-/* AEE578 800773D8 AFA3001C */ sw $v1, 0x1c($sp)
-/* AEE57C 800773DC AFA60028 */ sw $a2, 0x28($sp)
-/* AEE580 800773E0 0C03032E */ jal func_800C0CB8
-/* AEE584 800773E4 E7AC002C */ swc1 $f12, 0x2c($sp)
-/* AEE588 800773E8 8FA3001C */ lw $v1, 0x1c($sp)
-/* AEE58C 800773EC 8FA60028 */ lw $a2, 0x28($sp)
-/* AEE590 800773F0 C7A20034 */ lwc1 $f2, 0x34($sp)
-/* AEE594 800773F4 10400071 */ beqz $v0, .L800775BC
-/* AEE598 800773F8 C7AC002C */ lwc1 $f12, 0x2c($sp)
-/* AEE59C 800773FC 44808000 */ mtc1 $zero, $f16
-/* AEE5A0 80077400 3C013F80 */ li $at, 0x3F800000 # 0.000000
-/* AEE5A4 80077404 44817000 */ mtc1 $at, $f14
-/* AEE5A8 80077408 4610603C */ c.lt.s $f12, $f16
-/* AEE5AC 8007740C 00002025 */ move $a0, $zero
-/* AEE5B0 80077410 24050003 */ li $a1, 3
-/* AEE5B4 80077414 45020003 */ bc1fl .L80077424
-/* AEE5B8 80077418 460C703C */ c.lt.s $f14, $f12
-/* AEE5BC 8007741C 46008306 */ mov.s $f12, $f16
-/* AEE5C0 80077420 460C703C */ c.lt.s $f14, $f12
-.L80077424:
-/* AEE5C4 80077424 00000000 */ nop
-/* AEE5C8 80077428 45020003 */ bc1fl .L80077438
-/* AEE5CC 8007742C 4602603C */ c.lt.s $f12, $f2
-/* AEE5D0 80077430 46007306 */ mov.s $f12, $f14
-/* AEE5D4 80077434 4602603C */ c.lt.s $f12, $f2
-.L80077438:
-/* AEE5D8 80077438 46026001 */ sub.s $f0, $f12, $f2
-/* AEE5DC 8007743C 45020003 */ bc1fl .L8007744C
-/* AEE5E0 80077440 846F0AF6 */ lh $t7, 0xaf6($v1)
-/* AEE5E4 80077444 46008006 */ mov.s $f0, $f16
-/* AEE5E8 80077448 846F0AF6 */ lh $t7, 0xaf6($v1)
-.L8007744C:
-/* AEE5EC 8007744C C7A40030 */ lwc1 $f4, 0x30($sp)
-/* AEE5F0 80077450 46106032 */ c.eq.s $f12, $f16
-/* AEE5F4 80077454 448F3000 */ mtc1 $t7, $f6
-/* AEE5F8 80077458 3C010001 */ lui $at, 1
-/* AEE5FC 8007745C 00260821 */ addu $at, $at, $a2
-/* AEE600 80077460 46803220 */ cvt.s.w $f8, $f6
-/* AEE604 80077464 46082281 */ sub.s $f10, $f4, $f8
-/* AEE608 80077468 46005482 */ mul.s $f18, $f10, $f0
-/* AEE60C 8007746C 4600918D */ trunc.w.s $f6, $f18
-/* AEE610 80077470 44193000 */ mfc1 $t9, $f6
-/* AEE614 80077474 4500000B */ bc1f .L800774A4
-/* AEE618 80077478 A4390AC2 */ sh $t9, 0xac2($at)
-/* AEE61C 8007747C 3C010001 */ lui $at, 1
-/* AEE620 80077480 00C11821 */ addu $v1, $a2, $at
-/* AEE624 80077484 00002025 */ move $a0, $zero
-/* AEE628 80077488 24050003 */ li $a1, 3
-.L8007748C:
-/* AEE62C 8007748C 24840001 */ addiu $a0, $a0, 1
-/* AEE630 80077490 24630002 */ addiu $v1, $v1, 2
-/* AEE634 80077494 1485FFFD */ bne $a0, $a1, .L8007748C
-/* AEE638 80077498 A4600ABA */ sh $zero, 0xaba($v1)
-/* AEE63C 8007749C 1000001F */ b .L8007751C
-/* AEE640 800774A0 C7A00038 */ lwc1 $f0, 0x38($sp)
-.L800774A4:
-/* AEE644 800774A4 3C0140A0 */ li $at, 0x40A00000 # 0.000000
-/* AEE648 800774A8 44812000 */ mtc1 $at, $f4
-/* AEE64C 800774AC 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEE650 800774B0 00C11821 */ addu $v1, $a2, $at
-/* AEE654 800774B4 46046002 */ mul.s $f0, $f12, $f4
-/* AEE658 800774B8 00C11021 */ addu $v0, $a2, $at
-/* AEE65C 800774BC 4600703C */ c.lt.s $f14, $f0
-/* AEE660 800774C0 00000000 */ nop
-/* AEE664 800774C4 45000002 */ bc1f .L800774D0
-/* AEE668 800774C8 00000000 */ nop
-/* AEE66C 800774CC 46007006 */ mov.s $f0, $f14
-.L800774D0:
-/* AEE670 800774D0 90480AF3 */ lbu $t0, 0xaf3($v0)
-/* AEE674 800774D4 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE678 800774D8 44884000 */ mtc1 $t0, $f8
-/* AEE67C 800774DC 05010004 */ bgez $t0, .L800774F0
-/* AEE680 800774E0 468042A0 */ cvt.s.w $f10, $f8
-/* AEE684 800774E4 44819000 */ mtc1 $at, $f18
-/* AEE688 800774E8 00000000 */ nop
-/* AEE68C 800774EC 46125280 */ add.s $f10, $f10, $f18
-.L800774F0:
-/* AEE690 800774F0 46005182 */ mul.s $f6, $f10, $f0
-/* AEE694 800774F4 24840001 */ addiu $a0, $a0, 1
-/* AEE698 800774F8 24630002 */ addiu $v1, $v1, 2
-/* AEE69C 800774FC 24420001 */ addiu $v0, $v0, 1
-/* AEE6A0 80077500 4600310D */ trunc.w.s $f4, $f6
-/* AEE6A4 80077504 440C2000 */ mfc1 $t4, $f4
-/* AEE6A8 80077508 00000000 */ nop
-/* AEE6AC 8007750C 000C6823 */ negu $t5, $t4
-/* AEE6B0 80077510 1485FFEF */ bne $a0, $a1, .L800774D0
-/* AEE6B4 80077514 A46D0ABA */ sh $t5, 0xaba($v1)
-/* AEE6B8 80077518 C7A00038 */ lwc1 $f0, 0x38($sp)
-.L8007751C:
-/* AEE6BC 8007751C 3C010001 */ li $at, 0x00010000 # 0.000000
-/* AEE6C0 80077520 00C11821 */ addu $v1, $a2, $at
-/* AEE6C4 80077524 4610003E */ c.le.s $f0, $f16
-/* AEE6C8 80077528 00002025 */ move $a0, $zero
-/* AEE6CC 8007752C 45030024 */ bc1tl .L800775C0
-/* AEE6D0 80077530 8FBF0014 */ lw $ra, 0x14($sp)
-/* AEE6D4 80077534 46006302 */ mul.s $f12, $f12, $f0
-/* AEE6D8 80077538 00C11021 */ addu $v0, $a2, $at
-.L8007753C:
-/* AEE6DC 8007753C 904E0AE4 */ lbu $t6, 0xae4($v0)
-/* AEE6E0 80077540 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE6E4 80077544 448E4000 */ mtc1 $t6, $f8
-/* AEE6E8 80077548 05C10004 */ bgez $t6, .L8007755C
-/* AEE6EC 8007754C 468044A0 */ cvt.s.w $f18, $f8
-/* AEE6F0 80077550 44815000 */ mtc1 $at, $f10
-/* AEE6F4 80077554 00000000 */ nop
-/* AEE6F8 80077558 460A9480 */ add.s $f18, $f18, $f10
-.L8007755C:
-/* AEE6FC 8007755C 460C9182 */ mul.s $f6, $f18, $f12
-/* AEE700 80077560 3C014F80 */ li $at, 0x4F800000 # 0.000000
-/* AEE704 80077564 4600310D */ trunc.w.s $f4, $f6
-/* AEE708 80077568 44082000 */ mfc1 $t0, $f4
-/* AEE70C 8007756C 00000000 */ nop
-/* AEE710 80077570 00084823 */ negu $t1, $t0
-/* AEE714 80077574 A4690AB0 */ sh $t1, 0xab0($v1)
-/* AEE718 80077578 904A0AEA */ lbu $t2, 0xaea($v0)
-/* AEE71C 8007757C 448A4000 */ mtc1 $t2, $f8
-/* AEE720 80077580 05410004 */ bgez $t2, .L80077594
-/* AEE724 80077584 468042A0 */ cvt.s.w $f10, $f8
-/* AEE728 80077588 44819000 */ mtc1 $at, $f18
-/* AEE72C 8007758C 00000000 */ nop
-/* AEE730 80077590 46125280 */ add.s $f10, $f10, $f18
-.L80077594:
-/* AEE734 80077594 460C5182 */ mul.s $f6, $f10, $f12
-/* AEE738 80077598 24840001 */ addiu $a0, $a0, 1
-/* AEE73C 8007759C 24630002 */ addiu $v1, $v1, 2
-/* AEE740 800775A0 24420001 */ addiu $v0, $v0, 1
-/* AEE744 800775A4 4600310D */ trunc.w.s $f4, $f6
-/* AEE748 800775A8 440E2000 */ mfc1 $t6, $f4
-/* AEE74C 800775AC 00000000 */ nop
-/* AEE750 800775B0 000E7823 */ negu $t7, $t6
-/* AEE754 800775B4 1485FFE1 */ bne $a0, $a1, .L8007753C
-/* AEE758 800775B8 A46F0AB4 */ sh $t7, 0xab4($v1)
-.L800775BC:
-/* AEE75C 800775BC 8FBF0014 */ lw $ra, 0x14($sp)
-.L800775C0:
-/* AEE760 800775C0 27BD0028 */ addiu $sp, $sp, 0x28
-/* AEE764 800775C4 03E00008 */ jr $ra
-/* AEE768 800775C8 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80077600.s b/asm/non_matchings/code/z_kankyo/func_80077600.s
deleted file mode 100644
index 755c20bc92..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80077600.s
+++ /dev/null
@@ -1,12 +0,0 @@
-glabel func_80077600
-/* AEE7A0 80077600 3C0E8016 */ lui $t6, %hi(gSaveContext+0x140e) # $t6, 0x8016
-/* AEE7A4 80077604 95CEFA6E */ lhu $t6, %lo(gSaveContext+0x140e)($t6)
-/* AEE7A8 80077608 3401FFFF */ li $at, 65535
-/* AEE7AC 8007760C 00001825 */ move $v1, $zero
-/* AEE7B0 80077610 15C10002 */ bne $t6, $at, .L8007761C
-/* AEE7B4 80077614 00000000 */ nop
-/* AEE7B8 80077618 24030001 */ li $v1, 1
-.L8007761C:
-/* AEE7BC 8007761C 03E00008 */ jr $ra
-/* AEE7C0 80077620 00601025 */ move $v0, $v1
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80077624.s b/asm/non_matchings/code/z_kankyo/func_80077624.s
deleted file mode 100644
index 18661be1dc..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80077624.s
+++ /dev/null
@@ -1,28 +0,0 @@
-glabel func_80077624
-/* AEE7C4 80077624 27BDFFE8 */ addiu $sp, $sp, -0x18
-/* AEE7C8 80077628 AFBF0014 */ sw $ra, 0x14($sp)
-/* AEE7CC 8007762C 908507A5 */ lbu $a1, 0x7a5($a0)
-/* AEE7D0 80077630 24010013 */ li $at, 19
-/* AEE7D4 80077634 14A10005 */ bne $a1, $at, .L8007764C
-/* AEE7D8 80077638 00000000 */ nop
-/* AEE7DC 8007763C 0C03DBED */ jal func_800F6FB4
-/* AEE7E0 80077640 24040005 */ li $a0, 5
-/* AEE7E4 80077644 10000004 */ b .L80077658
-/* AEE7E8 80077648 2404000E */ li $a0, 14
-.L8007764C:
-/* AEE7EC 8007764C 0C03DBED */ jal func_800F6FB4
-/* AEE7F0 80077650 30A400FF */ andi $a0, $a1, 0xff
-/* AEE7F4 80077654 2404000E */ li $a0, 14
-.L80077658:
-/* AEE7F8 80077658 24050001 */ li $a1, 1
-/* AEE7FC 8007765C 0C03DB56 */ jal func_800F6D58
-/* AEE800 80077660 24060001 */ li $a2, 1
-/* AEE804 80077664 2404000F */ li $a0, 15
-/* AEE808 80077668 24050001 */ li $a1, 1
-/* AEE80C 8007766C 0C03DB56 */ jal func_800F6D58
-/* AEE810 80077670 24060001 */ li $a2, 1
-/* AEE814 80077674 8FBF0014 */ lw $ra, 0x14($sp)
-/* AEE818 80077678 27BD0018 */ addiu $sp, $sp, 0x18
-/* AEE81C 8007767C 03E00008 */ jr $ra
-/* AEE820 80077680 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_80077684.s b/asm/non_matchings/code/z_kankyo/func_80077684.s
deleted file mode 100644
index 0fd7c48486..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_80077684.s
+++ /dev/null
@@ -1,27 +0,0 @@
-glabel func_80077684
-/* AEE824 80077684 27BDFFE8 */ addiu $sp, $sp, -0x18
-/* AEE828 80077688 AFBF0014 */ sw $ra, 0x14($sp)
-/* AEE82C 8007768C AFA40018 */ sw $a0, 0x18($sp)
-/* AEE830 80077690 2404000E */ li $a0, 14
-/* AEE834 80077694 24050001 */ li $a1, 1
-/* AEE838 80077698 0C03DB56 */ jal func_800F6D58
-/* AEE83C 8007769C 00003025 */ move $a2, $zero
-/* AEE840 800776A0 2404000F */ li $a0, 15
-/* AEE844 800776A4 24050001 */ li $a1, 1
-/* AEE848 800776A8 0C03DB56 */ jal func_800F6D58
-/* AEE84C 800776AC 00003025 */ move $a2, $zero
-/* AEE850 800776B0 0C03E82D */ jal func_800FA0B4
-/* AEE854 800776B4 00002025 */ move $a0, $zero
-/* AEE858 800776B8 24010001 */ li $at, 1
-/* AEE85C 800776BC 14410005 */ bne $v0, $at, .L800776D4
-/* AEE860 800776C0 240E0080 */ li $t6, 128
-/* AEE864 800776C4 3C018016 */ lui $at, %hi(gSaveContext+0x13e0) # $at, 0x8016
-/* AEE868 800776C8 A02EFA40 */ sb $t6, %lo(gSaveContext+0x13e0)($at)
-/* AEE86C 800776CC 0C01D62B */ jal func_800758AC
-/* AEE870 800776D0 8FA40018 */ lw $a0, 0x18($sp)
-.L800776D4:
-/* AEE874 800776D4 8FBF0014 */ lw $ra, 0x14($sp)
-/* AEE878 800776D8 27BD0018 */ addiu $sp, $sp, 0x18
-/* AEE87C 800776DC 03E00008 */ jr $ra
-/* AEE880 800776E0 00000000 */ nop
-
diff --git a/asm/non_matchings/code/z_kankyo/func_800776E4.s b/asm/non_matchings/code/z_kankyo/func_800776E4.s
deleted file mode 100644
index 198fc1fde0..0000000000
--- a/asm/non_matchings/code/z_kankyo/func_800776E4.s
+++ /dev/null
@@ -1,67 +0,0 @@
-glabel func_800776E4
-/* AEE884 800776E4 3C018012 */ lui $at, %hi(D_8011FB30) # $at, 0x8012
-/* AEE888 800776E8 3C028016 */ lui $v0, %hi(gSaveContext) # $v0, 0x8016
-/* AEE88C 800776EC A020FB30 */ sb $zero, %lo(D_8011FB30)($at)
-/* AEE890 800776F0 2442E660 */ addiu $v0, %lo(gSaveContext) # addiu $v0, $v0, -0x19a0
-/* AEE894 800776F4 844F1394 */ lh $t7, 0x1394($v0)
-/* AEE898 800776F8 27BDFFE8 */ addiu $sp, $sp, -0x18
-/* AEE89C 800776FC 240EFFFD */ li $t6, -3
-/* AEE8A0 80077700 3C010001 */ lui $at, 1
-/* AEE8A4 80077704 AFBF0014 */ sw $ra, 0x14($sp)
-/* AEE8A8 80077708 AC400008 */ sw $zero, 8($v0)
-/* AEE8AC 8007770C AC4E1364 */ sw $t6, 0x1364($v0)
-/* AEE8B0 80077710 00240821 */ addu $at, $at, $a0
-/* AEE8B4 80077714 A42F1E1A */ sh $t7, 0x1e1a($at)
-/* AEE8B8 80077718 3C010001 */ lui $at, 1
-/* AEE8BC 8007771C 00240821 */ addu $at, $at, $a0
-/* AEE8C0 80077720 24180014 */ li $t8, 20
-/* AEE8C4 80077724 A0381E15 */ sb $t8, 0x1e15($at)
-/* AEE8C8 80077728 3C010001 */ lui $at, 1
-/* AEE8CC 8007772C 24050003 */ li $a1, 3
-/* AEE8D0 80077730 00240821 */ addu $at, $at, $a0
-/* AEE8D4 80077734 A0251E5E */ sb $a1, 0x1e5e($at)
-/* AEE8D8 80077738 3C030001 */ lui $v1, 1
-/* AEE8DC 8007773C A045141D */ sb $a1, 0x141d($v0)
-/* AEE8E0 80077740 00641821 */ addu $v1, $v1, $a0
-/* AEE8E4 80077744 84631E1A */ lh $v1, 0x1e1a($v1)
-/* AEE8E8 80077748 24010053 */ li $at, 83
-/* AEE8EC 8007774C 1061001B */ beq $v1, $at, .L800777BC
-/* AEE8F0 80077750 240100E4 */ li $at, 228
-/* AEE8F4 80077754 10610015 */ beq $v1, $at, .L800777AC
-/* AEE8F8 80077758 240100FC */ li $at, 252
-/* AEE8FC 8007775C 10610019 */ beq $v1, $at, .L800777C4
-/* AEE900 80077760 24010102 */ li $at, 258
-/* AEE904 80077764 10610009 */ beq $v1, $at, .L8007778C
-/* AEE908 80077768 24010123 */ li $at, 291
-/* AEE90C 8007776C 1061000B */ beq $v1, $at, .L8007779C
-/* AEE910 80077770 24010147 */ li $at, 327
-/* AEE914 80077774 54610014 */ bnel $v1, $at, .L800777C8
-/* AEE918 80077778 8FBF0014 */ lw $ra, 0x14($sp)
-/* AEE91C 8007777C 0C00D6DD */ jal Flags_SetEventChkInf
-/* AEE920 80077780 240400B9 */ li $a0, 185
-/* AEE924 80077784 10000010 */ b .L800777C8
-/* AEE928 80077788 8FBF0014 */ lw $ra, 0x14($sp)
-.L8007778C:
-/* AEE92C 8007778C 0C00D6DD */ jal Flags_SetEventChkInf
-/* AEE930 80077790 240400B1 */ li $a0, 177
-/* AEE934 80077794 1000000C */ b .L800777C8
-/* AEE938 80077798 8FBF0014 */ lw $ra, 0x14($sp)
-.L8007779C:
-/* AEE93C 8007779C 0C00D6DD */ jal Flags_SetEventChkInf
-/* AEE940 800777A0 240400B8 */ li $a0, 184
-/* AEE944 800777A4 10000008 */ b .L800777C8
-/* AEE948 800777A8 8FBF0014 */ lw $ra, 0x14($sp)
-.L800777AC:
-/* AEE94C 800777AC 0C00D6DD */ jal Flags_SetEventChkInf
-/* AEE950 800777B0 240400B6 */ li $a0, 182
-/* AEE954 800777B4 10000004 */ b .L800777C8
-/* AEE958 800777B8 8FBF0014 */ lw $ra, 0x14($sp)
-.L800777BC:
-/* AEE95C 800777BC 0C00D6DD */ jal Flags_SetEventChkInf
-/* AEE960 800777C0 240400A7 */ li $a0, 167
-.L800777C4:
-/* AEE964 800777C4 8FBF0014 */ lw $ra, 0x14($sp)
-.L800777C8:
-/* AEE968 800777C8 27BD0018 */ addiu $sp, $sp, 0x18
-/* AEE96C 800777CC 03E00008 */ jr $ra
-/* AEE970 800777D0 00000000 */ nop
diff --git a/asm/non_matchings/code/z_vr_box/Skybox_Setup.s b/asm/non_matchings/code/z_vr_box/Skybox_Setup.s
index b94c8b1f11..d60fd0ff01 100644
--- a/asm/non_matchings/code/z_vr_box/Skybox_Setup.s
+++ b/asm/non_matchings/code/z_vr_box/Skybox_Setup.s
@@ -984,11 +984,11 @@ glabel L800AF25C
/* B26410 800AF270 11E0000C */ beqz $t7, .L800AF2A4
/* B26414 800AF274 2529FC1C */ addiu $t1, %lo(D_8011FC1C) # addiu $t1, $t1, -0x3e4
/* B26418 800AF278 8D181360 */ lw $t8, 0x1360($t0)
-/* B2641C 800AF27C 3C028012 */ lui $v0, %hi(D_8011FB30) # $v0, 0x8012
+/* B2641C 800AF27C 3C028012 */ lui $v0, %hi(gWeatherMode) # $v0, 0x8012
/* B26420 800AF280 2B010004 */ slti $at, $t8, 4
/* B26424 800AF284 50200008 */ beql $at, $zero, .L800AF2A8
/* B26428 800AF288 0003C8C0 */ sll $t9, $v1, 3
-/* B2642C 800AF28C 9042FB30 */ lbu $v0, %lo(D_8011FB30)($v0)
+/* B2642C 800AF28C 9042FB30 */ lbu $v0, %lo(gWeatherMode)($v0)
/* B26430 800AF290 18400004 */ blez $v0, .L800AF2A4
/* B26434 800AF294 28410006 */ slti $at, $v0, 6
/* B26438 800AF298 50200003 */ beql $at, $zero, .L800AF2A8
@@ -1038,7 +1038,7 @@ glabel L800AF25C
/* B264D8 800AF338 002D0821 */ addu $at, $at, $t5
/* B264DC 800AF33C 9506141A */ lhu $a2, 0x141a($t0)
/* B264E0 800AF340 94E40002 */ lhu $a0, 2($a3)
-/* B264E4 800AF344 0C01BE4F */ jal func_8006F93C
+/* B264E4 800AF344 0C01BE4F */ jal Environment_LerpWeight
/* B264E8 800AF348 94E50000 */ lhu $a1, ($a3)
/* B264EC 800AF34C 3C01437F */ li $at, 0x437F0000 # 0.000000
/* B264F0 800AF350 44812000 */ mtc1 $at, $f4
@@ -1094,8 +1094,8 @@ glabel L800AF25C
/* B265A0 800AF400 000250C0 */ sll $t2, $v0, 3
.L800AF404:
/* B265A4 800AF404 93AE0041 */ lbu $t6, 0x41($sp)
-/* B265A8 800AF408 3C188012 */ lui $t8, %hi(D_8011FD3C) # $t8, 0x8012
-/* B265AC 800AF40C 2718FD3C */ addiu $t8, %lo(D_8011FD3C) # addiu $t8, $t8, -0x2c4
+/* B265A8 800AF408 3C188012 */ lui $t8, %hi(gSkyboxFiles) # $t8, 0x8012
+/* B265AC 800AF40C 2718FD3C */ addiu $t8, %lo(gSkyboxFiles) # addiu $t8, $t8, -0x2c4
/* B265B0 800AF410 000E7900 */ sll $t7, $t6, 4
/* B265B4 800AF414 01F81021 */ addu $v0, $t7, $t8
/* B265B8 800AF418 8C590004 */ lw $t9, 4($v0)
@@ -1127,8 +1127,8 @@ glabel L800AF25C
/* B2661C 800AF47C 0C0006A8 */ jal DmaMgr_SendRequest1
/* B26620 800AF480 8FA60044 */ lw $a2, 0x44($sp)
/* B26624 800AF484 93AC0040 */ lbu $t4, 0x40($sp)
-/* B26628 800AF488 3C0E8012 */ lui $t6, %hi(D_8011FD3C) # $t6, 0x8012
-/* B2662C 800AF48C 25CEFD3C */ addiu $t6, %lo(D_8011FD3C) # addiu $t6, $t6, -0x2c4
+/* B26628 800AF488 3C0E8012 */ lui $t6, %hi(gSkyboxFiles) # $t6, 0x8012
+/* B2662C 800AF48C 25CEFD3C */ addiu $t6, %lo(gSkyboxFiles) # addiu $t6, $t6, -0x2c4
/* B26630 800AF490 000C6900 */ sll $t5, $t4, 4
/* B26634 800AF494 01AE1821 */ addu $v1, $t5, $t6
/* B26638 800AF498 8C6F0004 */ lw $t7, 4($v1)
diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s
index be262c52a7..d09ce5e5ed 100644
--- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s
+++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Draw.s
@@ -91,7 +91,7 @@ glabel BossGanon_Draw
/* 0A59C 808E0E0C E61002F4 */ swc1 $f16, 0x02F4($s0) ## 000002F4
/* 0A5A0 808E0E10 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0A5A4 808E0E14 E60A02F0 */ swc1 $f10, 0x02F0($s0) ## 000002F0
-/* 0A5A8 808E0E18 0C02F228 */ jal func_800BC8A0
+/* 0A5A8 808E0E18 0C02F228 */ jal Gameplay_SetFog
/* 0A5AC 808E0E1C 8E4502C0 */ lw $a1, 0x02C0($s2) ## 000002C0
/* 0A5B0 808E0E20 AE4202C0 */ sw $v0, 0x02C0($s2) ## 000002C0
/* 0A5B4 808E0E24 0C238F61 */ jal func_808E3D84
diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s
index 3fd4f6ab3f..e3c7ac7e49 100644
--- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s
+++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/BossGanon_Update.s
@@ -1204,18 +1204,18 @@ glabel L808DE3B0
/* 07D14 808DE584 92AE066C */ lbu $t6, 0x066C($s5) ## 0000066C
.L808DE588:
/* 07D18 808DE588 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
-/* 07D1C 808DE58C 3C018016 */ lui $at, %hi(D_8015FCF0)
+/* 07D1C 808DE58C 3C018016 */ lui $at, %hi(gCustomLensFlareOn)
/* 07D20 808DE590 11C0001C */ beq $t6, $zero, .L808DE604
/* 07D24 808DE594 00000000 */ nop
-/* 07D28 808DE598 3C018016 */ lui $at, %hi(D_8015FCF0)
-/* 07D2C 808DE59C A02FFCF0 */ sb $t7, %lo(D_8015FCF0)($at)
+/* 07D28 808DE598 3C018016 */ lui $at, %hi(gCustomLensFlareOn)
+/* 07D2C 808DE59C A02FFCF0 */ sb $t7, %lo(gCustomLensFlareOn)($at)
/* 07D30 808DE5A0 92B8066C */ lbu $t8, 0x066C($s5) ## 0000066C
/* 07D34 808DE5A4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 07D38 808DE5A8 5701000A */ bnel $t8, $at, .L808DE5D4
/* 07D3C 808DE5AC C6A60670 */ lwc1 $f6, 0x0670($s5) ## 00000670
/* 07D40 808DE5B0 8EA90024 */ lw $t1, 0x0024($s5) ## 00000024
-/* 07D44 808DE5B4 3C198016 */ lui $t9, %hi(D_8015FCF8)
-/* 07D48 808DE5B8 2739FCF8 */ addiu $t9, %lo(D_8015FCF8)
+/* 07D44 808DE5B4 3C198016 */ lui $t9, %hi(gCustomLensFlarePos)
+/* 07D48 808DE5B8 2739FCF8 */ addiu $t9, %lo(gCustomLensFlarePos)
/* 07D4C 808DE5BC AF290000 */ sw $t1, 0x0000($t9) ## 8015FCF8
/* 07D50 808DE5C0 8EA80028 */ lw $t0, 0x0028($s5) ## 00000028
/* 07D54 808DE5C4 AF280004 */ sw $t0, 0x0004($t9) ## 8015FCFC
@@ -1236,7 +1236,7 @@ glabel L808DE3B0
/* 07D8C 808DE5FC 10000002 */ beq $zero, $zero, .L808DE608
/* 07D90 808DE600 A420FD0C */ sh $zero, %lo(D_8015FD0C)($at)
.L808DE604:
-/* 07D94 808DE604 A020FCF0 */ sb $zero, %lo(D_8015FCF0)($at)
+/* 07D94 808DE604 A020FCF0 */ sb $zero, %lo(gCustomLensFlareOn)($at)
.L808DE608:
/* 07D98 808DE608 92A20274 */ lbu $v0, 0x0274($s5) ## 00000274
/* 07D9C 808DE60C 3C014248 */ lui $at, 0x4248 ## $at = 42480000
diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s
index f9c1227b77..e097e2d58f 100644
--- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s
+++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DB2E8.s
@@ -305,10 +305,10 @@ glabel L808DB498
/* 04E78 808DB6E8 8E2B0278 */ lw $t3, 0x0278($s1) ## 00000278
/* 04E7C 808DB6EC 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 04E80 808DB6F0 24080002 */ addiu $t0, $zero, 0x0002 ## $t0 = 00000002
-/* 04E84 808DB6F4 3C098016 */ lui $t1, %hi(D_8015FCF8)
+/* 04E84 808DB6F4 3C098016 */ lui $t1, %hi(gCustomLensFlarePos)
/* 04E88 808DB6F8 A639066E */ sh $t9, 0x066E($s1) ## 0000066E
/* 04E8C 808DB6FC A228066C */ sb $t0, 0x066C($s1) ## 0000066C
-/* 04E90 808DB700 2529FCF8 */ addiu $t1, %lo(D_8015FCF8)
+/* 04E90 808DB700 2529FCF8 */ addiu $t1, %lo(gCustomLensFlarePos)
/* 04E94 808DB704 AD2B0000 */ sw $t3, 0x0000($t1) ## 8015FCF8
/* 04E98 808DB708 8E2A027C */ lw $t2, 0x027C($s1) ## 0000027C
/* 04E9C 808DB70C AD2A0004 */ sw $t2, 0x0004($t1) ## 8015FCFC
diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s
index 953db3d2be..217f27f1cd 100644
--- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s
+++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808DC14C.s
@@ -44,12 +44,12 @@ glabel func_808DC14C
/* 05960 808DC1D0 3C014140 */ lui $at, 0x4140 ## $at = 41400000
/* 05964 808DC1D4 44810000 */ mtc1 $at, $f0 ## $f0 = 12.00
/* 05968 808DC1D8 C6040168 */ lwc1 $f4, 0x0168($s0) ## 00000168
-/* 0596C 808DC1DC 3C088016 */ lui $t0, %hi(D_8015FCF8)
+/* 0596C 808DC1DC 3C088016 */ lui $t0, %hi(gCustomLensFlarePos)
/* 05970 808DC1E0 44050000 */ mfc1 $a1, $f0
/* 05974 808DC1E4 4600203E */ c.le.s $f4, $f0
/* 05978 808DC1E8 24180002 */ addiu $t8, $zero, 0x0002 ## $t8 = 00000002
/* 0597C 808DC1EC 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002
-/* 05980 808DC1F0 2508FCF8 */ addiu $t0, %lo(D_8015FCF8)
+/* 05980 808DC1F0 2508FCF8 */ addiu $t0, %lo(gCustomLensFlarePos)
/* 05984 808DC1F4 45000009 */ bc1f .L808DC21C
/* 05988 808DC1F8 00000000 */ nop
/* 0598C 808DC1FC 8E0A0260 */ lw $t2, 0x0260($s0) ## 00000260
diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s
index 8cb04a6d6c..690abd032d 100644
--- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s
+++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E1034.s
@@ -68,8 +68,8 @@ glabel func_808E1034
/* 0A840 808E10B0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L808E10B4:
/* 0A844 808E10B4 862900B6 */ lh $t1, 0x00B6($s1) ## 000000B6
-/* 0A848 808E10B8 3C0B8016 */ lui $t3, %hi(D_8015FCF8)
-/* 0A84C 808E10BC 256BFCF8 */ addiu $t3, %lo(D_8015FCF8)
+/* 0A848 808E10B8 3C0B8016 */ lui $t3, %hi(gCustomLensFlarePos)
+/* 0A84C 808E10BC 256BFCF8 */ addiu $t3, %lo(gCustomLensFlarePos)
/* 0A850 808E10C0 252A1000 */ addiu $t2, $t1, 0x1000 ## $t2 = 00001000
/* 0A854 808E10C4 A62A00B6 */ sh $t2, 0x00B6($s1) ## 000000B6
/* 0A858 808E10C8 A467066E */ sh $a3, 0x066E($v1) ## 0000066E
diff --git a/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s b/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s
index 6449d1db45..b9008a2e60 100644
--- a/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s
+++ b/asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s
@@ -124,7 +124,7 @@ glabel func_80BA4D7C
/* 02454 80BA4EF4 E7B20074 */ swc1 $f18, 0x0074($sp)
/* 02458 80BA4EF8 E7B00070 */ swc1 $f16, 0x0070($sp)
/* 0245C 80BA4EFC E7A2006C */ swc1 $f2, 0x006C($sp)
-/* 02460 80BA4F00 0C01BE4F */ jal func_8006F93C
+/* 02460 80BA4F00 0C01BE4F */ jal Environment_LerpWeight
/* 02464 80BA4F04 AFA80058 */ sw $t0, 0x0058($sp)
/* 02468 80BA4F08 C7A2006C */ lwc1 $f2, 0x006C($sp)
/* 0246C 80BA4F0C C7AA0060 */ lwc1 $f10, 0x0060($sp)
diff --git a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s
index efcd77f2c1..9d7a6815dd 100644
--- a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s
+++ b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_8080F560.s
@@ -97,7 +97,7 @@ glabel func_8080F560
/* 0B98C 8080F6CC 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 0B990 8080F6D0 018D7021 */ addu $t6, $t4, $t5
/* 0B994 8080F6D4 A44E07AA */ sh $t6, 0x07AA($v0) ## 801607AA
-/* 0B998 8080F6D8 0C01BF22 */ jal func_8006FC88
+/* 0B998 8080F6D8 0C01BF22 */ jal Environment_UpdateSkybox
/* 0B99C 8080F6DC 8FA60044 */ lw $a2, 0x0044($sp)
/* 0B9A0 8080F6E0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 0B9A4 8080F6E4 3C18E700 */ lui $t8, 0xE700 ## $t8 = E7000000
diff --git a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s
index a4ff6135bc..360b20c8ce 100644
--- a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s
+++ b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808109B8.s
@@ -97,7 +97,7 @@ glabel func_808109B8
/* 0CDE4 80810B24 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 0CDE8 80810B28 018D7021 */ addu $t6, $t4, $t5
/* 0CDEC 80810B2C A44E07AA */ sh $t6, 0x07AA($v0) ## 801607AA
-/* 0CDF0 80810B30 0C01BF22 */ jal func_8006FC88
+/* 0CDF0 80810B30 0C01BF22 */ jal Environment_UpdateSkybox
/* 0CDF4 80810B34 8FA60038 */ lw $a2, 0x0038($sp)
/* 0CDF8 80810B38 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 0CDFC 80810B3C 3C18E700 */ lui $t8, 0xE700 ## $t8 = E7000000
diff --git a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s
index 281b2b31b8..a9e4537f30 100644
--- a/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s
+++ b/asm/non_matchings/overlays/gamestates/ovl_file_choose/func_808113A8.s
@@ -351,9 +351,9 @@ glabel func_808113A8
/* 0DBDC 8081191C 3C080001 */ lui $t0, 0x0001 ## $t0 = 00010000
/* 0DBE0 80811920 3508C8E8 */ ori $t0, $t0, 0xC8E8 ## $t0 = 0001C8E8
/* 0DBE4 80811924 2419000A */ addiu $t9, $zero, 0x000A ## $t9 = 0000000A
-/* 0DBE8 80811928 3C018012 */ lui $at, %hi(D_8011FB40)
+/* 0DBE8 80811928 3C018012 */ lui $at, %hi(gTimeIncrement)
/* 0DBEC 8081192C 8FA6002C */ lw $a2, 0x002C($sp)
-/* 0DBF0 80811930 A439FB40 */ sh $t9, %lo(D_8011FB40)($at)
+/* 0DBF0 80811930 A439FB40 */ sh $t9, %lo(gTimeIncrement)($at)
/* 0DBF4 80811934 02081021 */ addu $v0, $s0, $t0
/* 0DBF8 80811938 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0DBFC 8081193C 24090063 */ addiu $t1, $zero, 0x0063 ## $t1 = 00000063
@@ -374,7 +374,7 @@ glabel func_808113A8
/* 0DC38 80811978 02082821 */ addu $a1, $s0, $t0
/* 0DC3C 8081197C 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 0DC40 80811980 E4400084 */ swc1 $f0, 0x0084($v0) ## 00000084
-/* 0DC44 80811984 0C01BF22 */ jal func_8006FC88
+/* 0DC44 80811984 0C01BF22 */ jal Environment_UpdateSkybox
/* 0DC48 80811988 E4400088 */ swc1 $f0, 0x0088($v0) ## 00000088
/* 0DC4C 8081198C 8FA30030 */ lw $v1, 0x0030($sp)
/* 0DC50 80811990 A22013E6 */ sb $zero, 0x13E6($s1) ## 8015FA46
diff --git a/assets/xml/objects/gameplay_field_keep.xml b/assets/xml/objects/gameplay_field_keep.xml
index c9a2378cbb..63dbdfa040 100644
--- a/assets/xml/objects/gameplay_field_keep.xml
+++ b/assets/xml/objects/gameplay_field_keep.xml
@@ -53,8 +53,9 @@
-
-
+
+
+
diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml
index ce960a3765..41dac9a41a 100644
--- a/assets/xml/objects/gameplay_keep.xml
+++ b/assets/xml/objects/gameplay_keep.xml
@@ -843,10 +843,10 @@
-
-
-
-
+
+
+
+
diff --git a/data/z_kankyo.bss.s b/data/z_kankyo.bss.s
deleted file mode 100644
index 37c15ab9b3..0000000000
--- a/data/z_kankyo.bss.s
+++ /dev/null
@@ -1,61 +0,0 @@
-.include "macro.inc"
-
-# assembler directives
-.set noat # allow manual use of $at
-.set noreorder # don't insert nops after branches
-.set gp=64 # allow use of 64-bit general purpose registers
-
-.section .bss
-
-.balign 16
-
-glabel D_8015FCF0
- .space 0x8
-
-glabel D_8015FCF8
- .space 0xC
-
-glabel D_8015FD04
- .space 0x2
-
-glabel D_8015FD06
- .space 0x2
-
-glabel D_8015FD08
- .space 0x4
-
-glabel D_8015FD0C
- .space 0x4
-
-glabel D_8015FD10
- .space 0x60
-
-glabel D_8015FD70
- .space 0xC
-
-glabel D_8015FD7C
- .space 0x2
-
-glabel D_8015FD7E
- .space 0x2
-
-glabel D_8015FD80
- .space 0x4
-
-glabel D_8015FD84
- .space 0x4
-
-glabel D_8015FD88
- .space 0x10
-
-glabel D_8015FD98
- .space 0x8
-
-glabel D_8015FDA0
- .space 0xE
-
-glabel D_8015FDAE
- .space 0x2
-
-glabel D_8015FDB0
- .space 0x10
diff --git a/data/z_kankyo.data.s b/data/z_kankyo.data.s
deleted file mode 100644
index 27a94266e5..0000000000
--- a/data/z_kankyo.data.s
+++ /dev/null
@@ -1,117 +0,0 @@
-.include "macro.inc"
-
-# assembler directives
-.set noat # allow manual use of $at
-.set noreorder # don't insert nops after branches
-.set gp=64 # allow use of 64-bit general purpose registers
-
-.section .data
-
-.balign 16
-
-glabel D_8011FAF0
- .incbin "baserom.z64", 0xB96C90, 0x40
-
-glabel D_8011FB30
- .incbin "baserom.z64", 0xB96CD0, 0x4
-
-glabel D_8011FB34
- .incbin "baserom.z64", 0xB96CD4, 0x4
-
-glabel D_8011FB38
- .incbin "baserom.z64", 0xB96CD8, 0x4
-
-glabel D_8011FB3C
- .incbin "baserom.z64", 0xB96CDC, 0x4
-
-glabel D_8011FB40
- .incbin "baserom.z64", 0xB96CE0, 0x4
-
-glabel D_8011FB44
- .incbin "baserom.z64", 0xB96CE4, 0x4
-
-glabel D_8011FB48
- .incbin "baserom.z64", 0xB96CE8, 0xD4
-
-glabel D_8011FC1C
- .incbin "baserom.z64", 0xB96DBC, 0x120
-
-glabel D_8011FD3C
- .word _vr_fine0_staticSegmentRomStart
- .word _vr_fine0_staticSegmentRomEnd
- .word _vr_fine0_pal_staticSegmentRomStart
- .word _vr_fine0_pal_staticSegmentRomEnd
- .word _vr_fine1_staticSegmentRomStart
- .word _vr_fine1_staticSegmentRomEnd
- .word _vr_fine1_pal_staticSegmentRomStart
- .word _vr_fine1_pal_staticSegmentRomEnd
- .word _vr_fine2_staticSegmentRomStart
- .word _vr_fine2_staticSegmentRomEnd
- .word _vr_fine2_pal_staticSegmentRomStart
- .word _vr_fine2_pal_staticSegmentRomEnd
- .word _vr_fine3_staticSegmentRomStart
- .word _vr_fine3_staticSegmentRomEnd
- .word _vr_fine3_pal_staticSegmentRomStart
- .word _vr_fine3_pal_staticSegmentRomEnd
- .word _vr_cloud0_staticSegmentRomStart
- .word _vr_cloud0_staticSegmentRomEnd
- .word _vr_cloud0_pal_staticSegmentRomStart
- .word _vr_cloud0_pal_staticSegmentRomEnd
- .word _vr_cloud1_staticSegmentRomStart
- .word _vr_cloud1_staticSegmentRomEnd
- .word _vr_cloud1_pal_staticSegmentRomStart
- .word _vr_cloud1_pal_staticSegmentRomEnd
- .word _vr_cloud2_staticSegmentRomStart
- .word _vr_cloud2_staticSegmentRomEnd
- .word _vr_cloud2_pal_staticSegmentRomStart
- .word _vr_cloud2_pal_staticSegmentRomEnd
- .word _vr_cloud3_staticSegmentRomStart
- .word _vr_cloud3_staticSegmentRomEnd
- .word _vr_cloud3_pal_staticSegmentRomStart
- .word _vr_cloud3_pal_staticSegmentRomEnd
- .word _vr_holy0_staticSegmentRomStart
- .word _vr_holy0_staticSegmentRomEnd
- .word _vr_holy0_pal_staticSegmentRomStart
- .word _vr_holy0_pal_staticSegmentRomEnd
-
-glabel D_8011FDCC
- .incbin "baserom.z64", 0xB96F6C, 0x4
-
-glabel D_8011FDD0
- .incbin "baserom.z64", 0xB96F70, 0x4
-
-glabel D_8011FDD4
- .incbin "baserom.z64", 0xB96F74, 0x4
-
-glabel D_8011FDD8
- .incbin "baserom.z64", 0xB96F78, 0x28
-
-glabel D_8011FE00
- .incbin "baserom.z64", 0xB96FA0, 0x20
-
-glabel D_8011FE20
- .incbin "baserom.z64", 0xB96FC0, 0x28
-
-glabel D_8011FE48
- .incbin "baserom.z64", 0xB96FE8, 0x28
-
-glabel D_8011FE70
- .incbin "baserom.z64", 0xB97010, 0xC
-
-glabel D_8011FE7C
- .incbin "baserom.z64", 0xB9701C, 0xC
-
-glabel D_8011FE88
- .incbin "baserom.z64", 0xB97028, 0xC
-
-glabel D_8011FE94
- .incbin "baserom.z64", 0xB97034, 0xC
-
-glabel D_8011FEA0
- .incbin "baserom.z64", 0xB97040, 0x24
-
-glabel D_8011FEC4
- .incbin "baserom.z64", 0xB97064, 0xC
-
-glabel D_8011FED0
- .incbin "baserom.z64", 0xB97070, 0x10
diff --git a/include/functions.h b/include/functions.h
index 880efeb5dd..8d9b0fd6fb 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -871,47 +871,44 @@ void Font_LoadChar(Font* font, u8 character, u16 codePointIndex);
void Font_LoadMessageBoxEndIcon(Font* font, u16 icon);
void Font_LoadOrderedFont(Font* font);
s32 func_8006F0A0(s32 arg0);
-// ? func_8006F0D4(?);
-// ? func_8006F0FC(?);
-u8 func_8006F140(GlobalContext*, EnvironmentContext*, UNK_TYPE);
-f32 func_8006F93C(u16, u16, u16);
-f32 func_8006F9BC(u16 endFrame, u16 startFrame, u16 frames, u16, u16);
-// ? func_8006FB94(?);
-void func_8006FC88(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx);
-void func_80070600(GlobalContext* globalCtx, s32 waterboxProperties);
-void func_800706A0(GlobalContext* globalCtx);
-// ? func_80070718(?);
-void func_80070C24(GlobalContext* globalCtx, EnvironmentContext* envCtx, LightContext* lightCtx, PauseContext* pauseCtx,
- MessageContext* msgCtx, GameOverContext* gameOverCtx, GraphicsContext* gfxCtx);
-void func_800730DC(GlobalContext*);
-void func_80073988(GlobalContext*, EnvironmentContext*, View*, GraphicsContext*, Vec3f, UNK_TYPE);
-// ? func_80073A5C(?);
-f32 func_800746DC();
-void func_80074704(GlobalContext*, View*, GraphicsContext*);
-void func_80074CE8(GlobalContext* globalCtx, s32 arg1);
-void func_80074D6C(GlobalContext*);
-// ? func_80074FF4(?);
-void func_800750C0(GlobalContext*);
-void func_800753C4(GlobalContext*, u8);
-void func_8007542C(GlobalContext*, u8);
+u16 Environment_GetPixelDepth(s32 x, s32 y);
+void Environment_GraphCallback(GraphicsContext* gfxCtx, void* param);
+void Environment_Init(GlobalContext* globalCtx, EnvironmentContext* envCtx, s32 unused);
+u8 Environment_SmoothStepToU8(u8* pvalue, u8 target, u8 scale, u8 step, u8 minStep);
+u8 Environment_SmoothStepToS8(s8* pvalue, s8 target, u8 scale, u8 step, u8 minStep);
+f32 Environment_LerpWeight(u16 max, u16 min, u16 val);
+f32 Environment_LerpWeightAccelDecel(u16 endFrame, u16 startFrame, u16 curFrame, u16 accelDuration, u16 decelDuration);
+void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx);
+void Environment_EnableUnderwaterLights(GlobalContext* globalCtx, s32 waterLightsIndex);
+void Environment_DisableUnderwaterLights(GlobalContext* globalCtx);
+void Environment_Update(GlobalContext* globalCtx, EnvironmentContext* envCtx, LightContext* lightCtx,
+ PauseContext* pauseCtx, MessageContext* msgCtx, GameOverContext* gameOverCtx,
+ GraphicsContext* gfxCtx);
+void Environment_DrawSunAndMoon(GlobalContext* globalCtx);
+void Environment_DrawSunLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view,
+ GraphicsContext* gfxCtx, Vec3f pos, s32 unused);
+void Environment_DrawLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view,
+ GraphicsContext* gfxCtx, Vec3f pos, s32 unused, s16 arg6, f32 arg7, s16 arg8, u8 arg9);
+void Environment_DrawRain(GlobalContext* globalCtx, View* view, GraphicsContext* gfxCtx);
+void func_80074CE8(GlobalContext* globalCtx, u32 arg1);
+void Environment_DrawSkyboxFilters(GlobalContext* globalCtx);
+void Environment_UpdateLightningStrike(GlobalContext* globalCtx);
+void Environment_AddLightningBolts(GlobalContext* globalCtx, u8 num);
+void Environment_DrawLightning(GlobalContext* globalCtx, s32 unused);
void func_800758AC(GlobalContext* globalCtx);
-// ? func_80075B44(?);
-void func_80075E68(GlobalContext* globalCtx);
-void Kankyo_InitGameOverLights(GlobalContext* globalCtx);
-void Kankyo_FadeInGameOverLights(GlobalContext* globalCtx);
-void Kankyo_FadeOutGameOverLights(GlobalContext* globalCtx);
-// ? func_800766C4(?);
-void func_8007672C(GraphicsContext*, u8, u8, u8, u8, UNK_TYPE);
-void func_80076934(GlobalContext* globalCtx, u8);
-void func_800773A8(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
-s32 func_800775CC();
-void func_800775D8();
-s32 func_800775E4();
+void Environment_DrawCustomLensFlare(GlobalContext* globalCtx);
+void Environment_InitGameOverLights(GlobalContext* globalCtx);
+void Environment_FadeInGameOverLights(GlobalContext* globalCtx);
+void Environment_FadeOutGameOverLights(GlobalContext* globalCtx);
+void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, u8 alpha, u8 drawFlags);
+void Environment_DrawSandstorm(GlobalContext* globalCtx, u8 sandstormState);
+void Environment_AdjustLights(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
+s32 Environment_GetBgsDayCount(void);
+void Environment_ClearBgsDayCount(void);
+s32 Environment_GetTotalDays(void);
void func_800775F0(u16);
s32 func_80077600(void);
-void func_80077624(GlobalContext* globalCtx);
-void func_80077684(GlobalContext* globalCtx);
-void func_800776E4(GlobalContext* globalCtx);
+void Environment_WarpSongLeave(GlobalContext* globalCtx);
void Lib_MemSet(u8* dest, size_t size, u8 val);
f32 Math_CosS(s16 angle);
f32 Math_SinS(s16 angle);
@@ -962,7 +959,7 @@ void Lights_Draw(Lights* lights, GraphicsContext* gfxCtx);
void Lights_BindAll(Lights* lights, LightNode* listHead, Vec3f* vec);
void LightContext_Init(GlobalContext* globalCtx, LightContext* lightCtx);
void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b);
-void func_8007A698(LightContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 numLights, s16 arg5);
+void LightContext_SetFog(LightContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 numLights, s16 arg5);
Lights* LightContext_NewLights(LightContext* lightCtx, GraphicsContext* gfxCtx);
void LightContext_InitList(GlobalContext* globalCtx, LightContext* lightCtx);
void LightContext_DestroyList(GlobalContext* globalCtx, LightContext* lightCtx);
@@ -1128,9 +1125,9 @@ void Quake_Init(void);
s16 Quake_Add(Camera* cam, u32 callbackIdx);
u32 Quake_RemoveFromIdx(s16 idx);
s16 Quake_Calc(Camera* camera, QuakeCamCalc* camData);
-Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
-Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
-Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
+Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far);
+Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far);
+Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far);
Gfx* Gfx_CallSetupDL(Gfx* gfx, u32 i);
Gfx* func_800937C0(Gfx* gfx);
Gfx* func_80093808(Gfx* gfx);
@@ -1392,7 +1389,7 @@ void func_800AD950(struct_80166500* this);
void func_800AD958(struct_80166500* this, Gfx** gfxp);
void Skybox_Init(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skyboxId);
Mtx* SkyboxDraw_UpdateMatrix(SkyboxContext* skyboxCtx, f32 x, f32 y, f32 z);
-void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 alpha, f32 x, f32 y, f32 z);
+void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z);
void SkyboxDraw_Update(SkyboxContext* skyboxCtx);
void PlayerCall_InitFuncPtrs(void);
void TransitionUnk_InitGraphics(TransitionUnk* this);
@@ -1499,7 +1496,7 @@ void func_800BC490(GlobalContext* globalCtx, s16 point);
s32 func_800BC56C(GlobalContext* globalCtx, s16 arg1);
void func_800BC590(GlobalContext* globalCtx);
void func_800BC5E0(GlobalContext* globalCtx, s32 arg1);
-Gfx* func_800BC8A0(GlobalContext* globalCtx, Gfx* gfx);
+Gfx* Gameplay_SetFog(GlobalContext* globalCtx, Gfx* gfx);
void Gameplay_Destroy(GameState* thisx);
void Gameplay_Init(GameState* thisx);
void Gameplay_Main(GameState* thisx);
@@ -2125,8 +2122,6 @@ void func_800F89A0(u8, Vec3f*);
void func_800F89E8(Vec3f*);
void func_800F9280(u8 seqIdx, u8 seqId, u8 arg2, u16 fadeTimer);
void Audio_QueueSeqCmd(u32 bgmID);
-u16 func_800FA0B4(u8 a0);
-s32 func_800FA11C(u32, u32);
void func_800F8A44(Vec3f* pos, u16 sfxId);
void func_800F8BA0(u8, u16);
void Audio_StopSfx(u32 sfxId);
@@ -2137,8 +2132,11 @@ void func_800F8F88(void);
u8 Audio_IsSfxPlaying(u32 sfxId);
void func_800F905C(void);
void func_800F9474(u8, u16);
+void func_800F94FC(u32);
void Audio_ProcessSeqCmd(u32);
void Audio_ProcessSeqCmds(void);
+u16 func_800FA0B4(u8 a0);
+s32 func_800FA11C(u32 arg0, u32 arg1);
void func_800FA174(u8);
void func_800FA18C(u8, u8);
void Audio_SetVolScale(u8 seqIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer);
diff --git a/include/regs.h b/include/regs.h
index 7b30363079..a282977bda 100644
--- a/include/regs.h
+++ b/include/regs.h
@@ -38,6 +38,14 @@
#define kREG(r) BASE_REG(27, r)
#define bREG(r) BASE_REG(28, r)
+#define R_ENV_AMBIENT_COLOR(i) REG(0 + i)
+#define R_ENV_LIGHT1_COLOR(i) REG(3 + i)
+#define R_ENV_LIGHT2_COLOR(i) REG(6 + i)
+#define R_ENV_DISABLE_DBG REG(9)
+#define R_ENV_FOG_COLOR(i) REG(10 + i)
+#define R_ENV_FOG_FAR REG(13)
+#define R_ENV_FOG_NEAR REG(14)
+#define R_ENV_TIME_INCREMENT REG(15)
#define R_RUN_SPEED_LIMIT REG(45)
#define R_ENABLE_ARENA_DBG SREG(0)
#define R_UPDATE_RATE SREG(30)
@@ -55,7 +63,7 @@
#define R_CAM_MIN_PHI2 OREG(35)
#define R_AT_LERP_MIN OREG(41)
#define R_AT_LERP_SCALE OREG(42)
-#define R_CAM_YOFFSET_NORM OREG(46)
+#define R_CAM_YOFFSET_NORM OREG(46)
#define R_CAM_FIXED3_FOV PREG(7)
#define R_DBG_CAM_UPDATE PREG(80)
#define R_DBG_REG_UPDATE PREG(82)
@@ -78,6 +86,8 @@
#define R_ITEM_ICON_X(i) ZREG(82 + i)
#define R_ITEM_ICON_Y(i) ZREG(86 + i)
#define R_ITEM_ICON_DD(i) ZREG(90 + i)
+#define R_ENV_WIND_DIR(i) CREG(16 + i)
+#define R_ENV_WIND_SPEED CREG(19)
#define R_A_BTN_Y XREG(16)
#define R_A_BTN_X XREG(17)
#define R_A_ICON_Y XREG(19)
@@ -87,6 +97,8 @@
#define R_MAGIC_BAR_X XREG(49)
#define R_MAGIC_BAR_LARGE_Y XREG(50)
#define R_MAGIC_FILL_X XREG(51)
+#define R_ENV_LIGHT1_DIR(i) cREG(3 + i)
+#define R_ENV_LIGHT2_DIR(i) cREG(6 + i)
#define R_B_LABEL_DD WREG(0)
#define R_OW_MINIMAP_X WREG(29)
#define R_OW_MINIMAP_Y WREG(30)
diff --git a/include/variables.h b/include/variables.h
index bf552a29b3..3fa5077b93 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -4,6 +4,7 @@
#include "z64.h"
#include "segment_symbols.h"
+extern Mtx D_01000000;
extern Gfx D_06025218[];
extern Gfx D_060252D8[];
extern Gfx D_06025438[];
@@ -158,27 +159,13 @@ extern s32 gDbgCamEnabled;
extern s16 D_8011E0B0;
//extern ? D_8011E0D4;
extern GameStateOverlay gGameStateOverlayTable[6];
-//extern ? D_8011FAF0;
-extern u8 D_8011FB30;
+extern u8 gWeatherMode;
extern u8 D_8011FB34;
extern u8 D_8011FB38;
-extern u8 D_8011FB3C;
-extern u16 D_8011FB40;
-//extern ? D_8011FB44;
-//extern ? D_8011FB48;
-//extern ? D_8011FC1C;
-//extern ? D_8011FD3C;
-//extern ? D_8011FDCC;
-//extern ? D_8011FDD0;
-//extern ? D_8011FE00;
-//extern ? D_8011FE20;
-//extern ? D_8011FE48;
-//extern ? D_8011FE70;
-//extern ? D_8011FE7C;
-//extern ? D_8011FE88;
-//extern ? D_8011FE94;
-//extern ? D_8011FEC4;
-//extern ? D_8011FED0;
+extern u8 gSkyboxBlendingEnabled;
+extern u16 gTimeIncrement;
+extern struct_8011FC1C D_8011FC1C[][9];
+extern SkyboxFile gSkyboxFiles[];
extern s32 gZeldaArenaLogSeverity;
extern MapData gMapDataTable;
extern s16 gSpoilingItems[3];
@@ -2948,23 +2935,12 @@ extern u16 D_8015FCC4;
//extern ? D_8015FCC6;
extern u8 D_8015FCC8;
//extern ? D_8015FCCA;
-extern u8 D_8015FCF0;
-extern Vec3f D_8015FCF8;
-extern s16 D_8015FD04;
+extern u8 gCustomLensFlareOn;
+extern Vec3f gCustomLensFlarePos;
extern s16 D_8015FD06;
extern f32 D_8015FD08;
extern s16 D_8015FD0C;
-//extern ? D_8015FD10;
-extern u8 D_8015FD70;
-//extern ? D_8015FD7C;
-//extern ? D_8015FD7E;
-//extern ? D_8015FD80;
-//extern ? D_8015FD84;
-//extern ? D_8015FD88;
-//extern ? D_8015FD98;
-//extern ? D_8015FDA0;
-//extern ? D_8015FDAE;
-//extern ? D_8015FDB0;
+extern LightningStrike gLightningStrike;
//extern ? D_8015FDF8;
extern MapData* gMapData;
//extern ? D_80160020;
diff --git a/include/z64.h b/include/z64.h
index 24f404df2f..060ca295ee 100644
--- a/include/z64.h
+++ b/include/z64.h
@@ -11,6 +11,7 @@
#include "z64audio.h"
#include "z64object.h"
#include "z64camera.h"
+#include "z64environment.h"
#include "z64cutscene.h"
#include "z64collision_check.h"
#include "z64scene.h"
@@ -130,16 +131,16 @@ typedef struct GraphicsContext {
/* 0x01C4 */ char unk_01C4[0xC0];
/* 0x0284 */ OSViMode* viMode;
/* 0x0288 */ char unk_0288[0x20]; // Unused, could this be Zelda 2/3 ?
- /* 0x02A8 */ TwoHeadGfxArena overlay; // "Zelda 4"
- /* 0x02B8 */ TwoHeadGfxArena polyOpa; // "Zelda 0"
- /* 0x02C8 */ TwoHeadGfxArena polyXlu; // "Zelda 1"
+ /* 0x02A8 */ TwoHeadGfxArena overlay; // "Zelda 4"
+ /* 0x02B8 */ TwoHeadGfxArena polyOpa; // "Zelda 0"
+ /* 0x02C8 */ TwoHeadGfxArena polyXlu; // "Zelda 1"
/* 0x02D8 */ u32 gfxPoolIdx;
/* 0x02DC */ u16* curFrameBuffer;
/* 0x02E0 */ char unk_2E0[0x04];
/* 0x02E4 */ u32 viFeatures;
/* 0x02E8 */ s32 fbIdx;
- /* 0x02EC */ void (*callback)(struct GraphicsContext*, u32);
- /* 0x02F0 */ u32 callbackParam;
+ /* 0x02EC */ void (*callback)(struct GraphicsContext*, void*);
+ /* 0x02F0 */ void* callbackParam;
/* 0x02F4 */ f32 xScale;
/* 0x02F8 */ f32 yScale;
/* 0x02FC */ char unk_2FC[0x04];
@@ -575,71 +576,7 @@ typedef enum {
typedef struct {
/* 0x00 */ u16 state;
-} GameOverContext; // size = 0x02
-
-typedef struct {
- /* 0x00 */ char unk_00[0x02];
- /* 0x02 */ u16 unk_02;
- /* 0x04 */ Vec3f unk_04;
- /* 0x10 */ u8 unk_10;
- /* 0x11 */ u8 unk_11;
- /* 0x12 */ char unk_12[0x1];
- /* 0x13 */ u8 unk_13;
- /* 0x14 */ char unk_14[0x01];
- /* 0x15 */ u8 skyDisabled;
- /* 0x16 */ u8 sunMoonDisabled;
- /* 0x17 */ u8 gloomySky;
- /* 0x18 */ u8 unk_18;
- /* 0x19 */ u8 unk_19;
- /* 0x1A */ u16 unk_1A;
- /* 0x1C */ char unk_1C[0x02];
- /* 0x1E */ u8 unk_1E;
- /* 0x1F */ u8 unk_1F;
- /* 0x20 */ u8 unk_20;
- /* 0x21 */ u8 unk_21;
- /* 0x22 */ u16 unk_22;
- /* 0x24 */ u16 unk_24;
- /* 0x26 */ char unk_26[0x04];
- /* 0x2A */ s8 unk_2A;
- /* 0x2B */ s8 unk_2B;
- /* 0x2C */ s8 unk_2C;
- /* 0x2D */ char unk_2D[0x5E];
- /* 0x8C */ s16 unk_8C[3][3];
- /* 0x9E */ s16 unk_9E;
- /* 0xA0 */ s16 unk_A0;
- /* 0xA2 */ char unk_A2[0x06];
- /* 0xA8 */ s16 unk_A8;
- /* 0xAA */ s16 unk_AA;
- /* 0xAC */ s16 unk_AC;
- /* 0xB0 */ f32 unk_B0;
- /* 0xB4 */ u8 numLightSettings;
- /* 0xB8 */ UNK_PTR lightSettingsList;
- /* 0xBC */ u8 unk_BC;
- /* 0xBD */ u8 unk_BD;
- /* 0xBE */ u8 unk_BE;
- /* 0xBF */ u8 unk_BF;
- /* 0xC0 */ char unk_C0[0x0F];
- /* 0xCF */ u8 unk_CF[3];
- /* 0xD2 */ s16 unk_D2;
- /* 0xD4 */ char unk_D4[0x02];
- /* 0xD6 */ u16 unk_D6;
- /* 0xD8 */ f32 unk_D8;
- /* 0xDC */ u8 unk_DC;
- /* 0xDD */ u8 gloomySkyEvent;
- /* 0xDE */ u8 unk_DE;
- /* 0xDF */ u8 lightning;
- /* 0xE0 */ u8 unk_E0;
- /* 0xE1 */ u8 unk_E1;
- /* 0xE2 */ u8 unk_E2[4];
- /* 0xE6 */ u8 unk_E6;
- /* 0xE7 */ u8 unk_E7;
- /* 0xE8 */ u8 unk_E8;
- /* 0xE9 */ u8 unk_E9;
- /* 0xEA */ u8 unk_EA[4];
- /* 0xEE */ u8 unk_EE[4];
- /* 0xF2 */ u8 unk_F2[4];
- /* 0xF6 */ char unk_F6[0x06];
-} EnvironmentContext; // size = 0xFC
+} GameOverContext; // size = 0x2
typedef struct {
/* 0x00 */ s16 id;
@@ -1837,4 +1774,16 @@ typedef struct {
/* 0x04 */ const char* name;
} FlagSetEntry; // size = 0x08
+typedef struct {
+ /* 0x00 */ RomFile file;
+ /* 0x08 */ RomFile pallete;
+} SkyboxFile; // size = 0x10
+
+#define ROM_FILE(name) \
+ { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomEnd }
+#define ROM_FILE_EMPTY(name) \
+ { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomStart }
+#define ROM_FILE_UNSET \
+ { 0 }
+
#endif
diff --git a/include/z64environment.h b/include/z64environment.h
new file mode 100644
index 0000000000..6369b95750
--- /dev/null
+++ b/include/z64environment.h
@@ -0,0 +1,129 @@
+#ifndef _Z64ENVIRONMENT_H_
+#define _Z64ENVIRONMENT_H_
+
+#include "z64math.h"
+#include "z64light.h"
+#include "z64dma.h"
+
+#define FILL_SCREEN_OPA (1 << 0)
+#define FILL_SCREEN_XLU (1 << 1)
+
+typedef enum {
+ /* 0 */ LIGHTNING_MODE_OFF, // no lightning
+ /* 1 */ LIGHTNING_MODE_ON, // request ligtning strikes at random intervals
+ /* 2 */ LIGHTNING_MODE_LAST // request one lightning strike before turning off
+} LightningMode;
+
+typedef enum {
+ /* 0 */ LIGHTNING_STRIKE_WAIT, // wait between lightning strikes. request bolts when timer hits 0
+ /* 1 */ LIGHTNING_STRIKE_START, // fade in the flash. note: bolts are requested in the previous state
+ /* 2 */ LIGHTNING_STRIKE_END // fade out the flash and go back to wait
+} LightningStrikeState;
+
+typedef enum {
+ /* 0 */ SKYBOX_DMA_INACTIVE,
+ /* 1 */ SKYBOX_DMA_FILE1_START,
+ /* 2 */ SKYBOX_DMA_FILE1_DONE,
+ /* 3 */ SKYBOX_DMA_PAL1_START,
+ /* 11 */ SKYBOX_DMA_FILE2_START = 11,
+ /* 12 */ SKYBOX_DMA_FILE2_DONE,
+ /* 13 */ SKYBOX_DMA_PAL2_START
+} SkyboxDmaState;
+
+typedef struct {
+ /* 0x00 */ u8 state;
+ /* 0x01 */ u8 flashRed;
+ /* 0x02 */ u8 flashGreen;
+ /* 0x03 */ u8 flashBlue;
+ /* 0x04 */ u8 flashAlphaTarget;
+ /* 0x08 */ f32 delayTimer;
+} LightningStrike; // size = 0xC
+
+// describes what skybox files and blending modes to use depending on time of day
+typedef struct {
+ /* 0x00 */ u16 startTime;
+ /* 0x02 */ u16 endTime;
+ /* 0x04 */ u8 blend; // if true, blend between.. skyboxes? palletes?
+ /* 0x05 */ u8 skybox1Index; // whats the difference between _pal and non _pal files?
+ /* 0x06 */ u8 skybox2Index;
+} struct_8011FC1C; // size = 0x8
+
+typedef struct {
+ /* 0x00 */ u8 ambientColor[3];
+ /* 0x03 */ s8 light1Dir[3];
+ /* 0x06 */ u8 light1Color[3];
+ /* 0x09 */ s8 light2Dir[3];
+ /* 0x0C */ u8 light2Color[3];
+ /* 0x0F */ u8 fogColor[3];
+ /* 0x12 */ s16 fogNear;
+ /* 0x14 */ s16 fogFar;
+} EnvLightSettings; // size = 0x16
+
+// 1.0: 801D8EC4
+// dbg: 80222A44
+typedef struct {
+ /* 0x00 */ char unk_00[0x02];
+ /* 0x02 */ u16 timeIncrement; // how many units of time that pass every update
+ /* 0x04 */ Vec3f sunPos; // moon position can be found by negating the sun position
+ /* 0x10 */ u8 skybox1Index;
+ /* 0x11 */ u8 skybox2Index;
+ /* 0x12 */ char unk_12[0x01];
+ /* 0x13 */ u8 skyboxBlend;
+ /* 0x14 */ char unk_14[0x01];
+ /* 0x15 */ u8 skyboxDisabled;
+ /* 0x16 */ u8 sunMoonDisabled;
+ /* 0x17 */ u8 unk_17; // currentWeatherMode for skybox? (prev called gloomySky)
+ /* 0x18 */ u8 unk_18; // nextWeatherMode for skybox?
+ /* 0x19 */ u8 unk_19;
+ /* 0x1A */ u16 unk_1A;
+ /* 0x1C */ char unk_1C[0x02];
+ /* 0x1E */ u8 indoors; // when set, day time has no effect on lighting
+ /* 0x1F */ u8 unk_1F; // outdoor light index
+ /* 0x20 */ u8 unk_20; // prev outdoor light index?
+ /* 0x21 */ u8 unk_21;
+ /* 0x22 */ u16 unk_22;
+ /* 0x24 */ u16 unk_24;
+ /* 0x26 */ char unk_26[0x02];
+ /* 0x28 */ LightInfo dirLight1; // used for sunlight outdoors
+ /* 0x36 */ LightInfo dirLight2; // used for moonlight outdoors
+ /* 0x44 */ s8 skyboxDmaState;
+ /* 0x48 */ DmaRequest dmaRequest;
+ /* 0x68 */ OSMesgQueue loadQueue;
+ /* 0x80 */ OSMesg loadMsg;
+ /* 0x84 */ f32 unk_84;
+ /* 0x88 */ f32 unk_88;
+ /* 0x8C */ s16 adjAmbientColor[3];
+ /* 0x92 */ s16 adjLight1Color[3];
+ /* 0x98 */ s16 adjFogColor[3];
+ /* 0x9E */ s16 adjFogNear;
+ /* 0xA0 */ s16 adjFogFar;
+ /* 0xA2 */ char unk_A2[0x06];
+ /* 0xA8 */ Vec3s windDirection;
+ /* 0xB0 */ f32 windSpeed;
+ /* 0xB4 */ u8 numLightSettings;
+ /* 0xB8 */ EnvLightSettings* lightSettingsList; // list of light settings from the scene file
+ /* 0xBC */ u8 blendIndoorLights; // when true, blend between indoor light settings when switching
+ /* 0xBD */ u8 unk_BD; // indoor light index
+ /* 0xBE */ u8 unk_BE; // prev indoor light index?
+ /* 0xBF */ u8 unk_BF;
+ /* 0xC0 */ EnvLightSettings lightSettings;
+ /* 0xD6 */ u16 unk_D6;
+ /* 0xD8 */ f32 unk_D8; // indoor light blend weight?
+ /* 0xDC */ u8 unk_DC;
+ /* 0xDD */ u8 gloomySkyMode;
+ /* 0xDE */ u8 unk_DE; // gloomy sky state
+ /* 0xDF */ u8 lightningMode;
+ /* 0xE0 */ u8 unk_E0; // env sounds state
+ /* 0xE1 */ u8 fillScreen;
+ /* 0xE2 */ u8 screenFillColor[4];
+ /* 0xE6 */ u8 sandstormState;
+ /* 0xE7 */ u8 sandstormPrimA;
+ /* 0xE8 */ u8 sandstormEnvA;
+ /* 0xE9 */ u8 customSkyboxFilter;
+ /* 0xEA */ u8 skyboxFilterColor[4];
+ /* 0xEE */ u8 unk_EE[4];
+ /* 0xF2 */ u8 unk_F2[4];
+ /* 0xF6 */ char unk_F6[0x06];
+} EnvironmentContext; // size = 0xFC
+
+#endif
diff --git a/include/z64light.h b/include/z64light.h
index 079418d883..639490022a 100644
--- a/include/z64light.h
+++ b/include/z64light.h
@@ -45,12 +45,10 @@ typedef struct LightNode {
typedef struct {
/* 0x0 */ LightNode* listHead;
- /* 0x4 */ Color_RGB8 ambient;
- /* 0x7 */ u8 unk_07;
- /* 0x8 */ u8 unk_08;
- /* 0x9 */ u8 unk_09;
- /* 0xA */ s16 unk_0A;
- /* 0xC */ s16 unk_0C;
+ /* 0x4 */ u8 ambientColor[3];
+ /* 0x7 */ u8 fogColor[3];
+ /* 0xA */ s16 fogNear; // how close until fog starts taking effect. range 0 - 1000
+ /* 0xC */ s16 fogFar; // how far until fog starts to saturate. range 0 - 1000
} LightContext; // size = 0x10
typedef enum {
diff --git a/include/z64math.h b/include/z64math.h
index 2b4ae68d31..5d6227d4c5 100644
--- a/include/z64math.h
+++ b/include/z64math.h
@@ -76,7 +76,9 @@ typedef struct {
/* 0x06 */ s16 yaw; // azimuthal angle
} VecSph; // size = 0x08
-#define F32_LERP(v0,v1,t) ((1.0f - (t)) * (v0) + (t) * (v1))
+#define LERP(x, y, scale) (((y) - (x)) * (scale) + (x))
+#define LERP32(x, y, scale) ((s32)(((y) - (x)) * (scale)) + (x))
+#define F32_LERP(v0,v1,t) ((v0) * (1.0f - (t)) + (v1) * (t))
#define F32_LERPIMP(v0, v1, t) (v0 + ((v1 - v0) * t))
#define F32_LERPIMPINV(v0, v1, t) ((v0) + (((v1) - (v0)) / (t)))
#define BINANG_LERPIMP(v0, v1, t) ((v0) + (s16)(BINANG_SUB((v1), (v0)) * (t)))
diff --git a/include/z64save.h b/include/z64save.h
index 5771d6ffba..ea97d93b5a 100644
--- a/include/z64save.h
+++ b/include/z64save.h
@@ -66,8 +66,8 @@ typedef struct {
/* 0x0008 */ s32 cutsceneIndex;
/* 0x000C */ u16 dayTime; // "zelda_time"
/* 0x0010 */ s32 nightFlag;
- /* 0x0014 */ s32 numDays;
- /* 0x0018 */ s32 unk_18; // increments with numDays, gets reset by goron for bgs and one other use
+ /* 0x0014 */ s32 totalDays;
+ /* 0x0018 */ s32 bgsDayCount; // increments with totalDays, can be cleared with `Environment_ClearBgsDayCount`
/* 0x001C */ char newf[6]; // string "ZELDAZ". start of `info` substruct, originally called "information"
/* 0x0022 */ u16 deaths;
/* 0x0024 */ char playerName[8];
@@ -166,12 +166,12 @@ typedef struct {
/* 0x1416 */ u16 nextDayTime; // "next_zelda_time"
/* 0x1418 */ u8 fadeDuration;
/* 0x1419 */ u8 unk_1419; // transition related
- /* 0x141A */ u16 environmentTime;
+ /* 0x141A */ u16 skyboxTime;
/* 0x141C */ u8 dogIsLost;
/* 0x141D */ u8 nextTransition;
/* 0x141E */ char unk_141E[0x0002];
/* 0x1420 */ s16 worldMapArea;
- /* 0x1422 */ s16 unk_1422; // day time related
+ /* 0x1422 */ s16 sunsSongState; // controls the effects of suns song
/* 0x1424 */ s16 healthAccumulator;
} SaveContext; // size = 0x1428
@@ -205,4 +205,11 @@ typedef enum {
/* 0x06 */ HS_DAMPE_RACE
} HighScores;
+typedef enum {
+ /* 0 */ SUNSSONG_INACTIVE,
+ /* 1 */ SUNSSONG_START, // the suns ocarina effect signals that the song has finished playing
+ /* 2 */ SUNSSONG_SPEED_TIME, // suns was played where time passes, speed up the advancement of time
+ /* 3 */ SUNSSONG_SPECIAL // time does not advance, but signals the song was played. used for freezing redeads
+} SunsSongState;
+
#endif
diff --git a/include/z64scene.h b/include/z64scene.h
index 3ffac37e7a..8d3f0802e2 100644
--- a/include/z64scene.h
+++ b/include/z64scene.h
@@ -57,9 +57,9 @@ typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ char pad[2];
- /* 0x04 */ s8 unk_04;
- /* 0x05 */ s8 unk_05;
- /* 0x06 */ s8 unk_06;
+ /* 0x04 */ u8 x;
+ /* 0x05 */ u8 y;
+ /* 0x06 */ u8 z;
/* 0x07 */ u8 unk_07;
} SCmdWindSettings;
diff --git a/spec b/spec
index e48f433cb2..5ac03d6dda 100644
--- a/spec
+++ b/spec
@@ -320,8 +320,6 @@ beginseg
include "build/src/code/z_kaleido_setup.o"
include "build/src/code/z_kanfont.o"
include "build/src/code/z_kankyo.o"
- include "build/data/z_kankyo.data.o"
- include "build/data/z_kankyo.bss.o"
include "build/src/code/z_lib.o"
include "build/src/code/z_lifemeter.o"
include "build/src/code/z_lights.o"
diff --git a/src/boot/is_debug.c b/src/boot/is_debug.c
index 1c8e49e5d5..2b4fb87d86 100644
--- a/src/boot/is_debug.c
+++ b/src/boot/is_debug.c
@@ -26,7 +26,7 @@ void osSyncPrintf(const char* fmt, ...) {
va_start(args, fmt);
_Printf(is_proutSyncPrintf, NULL, fmt, args);
-
+
va_end(args);
}
@@ -36,7 +36,7 @@ void rmonPrintf(const char* fmt, ...) {
va_start(args, fmt);
_Printf(is_proutSyncPrintf, NULL, fmt, args);
-
+
va_end(args);
}
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 87686f8520..83ccc2dd29 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -1355,9 +1355,9 @@ void func_8002EBCC(Actor* actor, GlobalContext* globalCtx, s32 flag) {
Gfx* displayListHead;
Gfx* displayList;
- lightDir.x = globalCtx->envCtx.unk_2A;
- lightDir.y = globalCtx->envCtx.unk_2B;
- lightDir.z = globalCtx->envCtx.unk_2C;
+ lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x;
+ lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y;
+ lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z;
if (HREG(80) == 6) {
osSyncPrintf("z_actor.c 3637 game_play->view.eye=[%f(%f) %f %f]\n", globalCtx->view.eye.x,
@@ -1386,9 +1386,9 @@ void func_8002ED80(Actor* actor, GlobalContext* globalCtx, s32 flag) {
Gfx* displayListHead;
Gfx* displayList;
- lightDir.x = globalCtx->envCtx.unk_2A;
- lightDir.y = globalCtx->envCtx.unk_2B;
- lightDir.z = globalCtx->envCtx.unk_2C;
+ lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x;
+ lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y;
+ lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z;
hilite = func_8002EB44(&actor->world.pos, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx);
@@ -3568,9 +3568,9 @@ void Actor_SetColorFilter(Actor* actor, s16 colorFlag, s16 colorIntensityMax, s1
Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx) {
Vec3f lightDir;
- lightDir.x = globalCtx->envCtx.unk_2A;
- lightDir.y = globalCtx->envCtx.unk_2B;
- lightDir.z = globalCtx->envCtx.unk_2C;
+ lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x;
+ lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y;
+ lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z;
return func_8002EABC(object, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx);
}
@@ -3578,9 +3578,9 @@ Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx) {
Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx) {
Vec3f lightDir;
- lightDir.x = globalCtx->envCtx.unk_2A;
- lightDir.y = globalCtx->envCtx.unk_2B;
- lightDir.z = globalCtx->envCtx.unk_2C;
+ lightDir.x = globalCtx->envCtx.dirLight1.params.dir.x;
+ lightDir.y = globalCtx->envCtx.dirLight1.params.dir.y;
+ lightDir.z = globalCtx->envCtx.dirLight1.params.dir.z;
return func_8002EB44(object, &globalCtx->view.eye, &lightDir, globalCtx->state.gfxCtx);
}
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index 77197662e8..ece32d45a9 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -547,7 +547,7 @@ f32 Camera_GetWaterSurface(Camera* camera, Vec3f* chkPos, s32* envProp) {
if (waterY < chkPos->y) {
// the water's y position is below the check position
- // the aka the position is NOT in the water.
+ // meaning the position is NOT in the water.
return BGCHECK_Y_MIN;
}
@@ -1778,7 +1778,7 @@ s32 Camera_Normal2(Camera* camera) {
if (camera->status == CAM_STAT_ACTIVE) {
bgChk.pos = *eyeNext;
- if ((camera->globalCtx->envCtx.skyDisabled == 0) || norm2->interfaceFlags & 0x10) {
+ if (!camera->globalCtx->envCtx.skyboxDisabled || norm2->interfaceFlags & 0x10) {
Camera_BGCheckInfo(camera, at, &bgChk);
*eye = bgChk.pos;
} else {
@@ -2110,7 +2110,7 @@ s32 Camera_Parallel1(Camera* camera) {
Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spA8);
if (camera->status == CAM_STAT_ACTIVE) {
sp6C.pos = *eyeNext;
- if (camera->globalCtx->envCtx.skyDisabled == 0 || para1->interfaceFlags & 0x10) {
+ if (!camera->globalCtx->envCtx.skyboxDisabled || para1->interfaceFlags & 0x10) {
Camera_BGCheckInfo(camera, at, &sp6C);
*eye = sp6C.pos;
} else {
@@ -2903,7 +2903,7 @@ s32 Camera_Battle1(Camera* camera) {
Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spB4);
spBC.pos = *eyeNext;
if (camera->status == CAM_STAT_ACTIVE) {
- if (camera->globalCtx->envCtx.skyDisabled == 0 || batt1->flags & 1) {
+ if (!camera->globalCtx->envCtx.skyboxDisabled || batt1->flags & 1) {
Camera_BGCheckInfo(camera, at, &spBC);
} else if (batt1->flags & 2) {
func_80043F94(camera, at, &spBC);
@@ -3225,7 +3225,7 @@ s32 Camera_KeepOn1(Camera* camera) {
Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spD8);
sp8C.pos = *eyeNext;
if (camera->status == CAM_STAT_ACTIVE) {
- if ((camera->globalCtx->envCtx.skyDisabled == 0) || keep1->interfaceFlags & 1) {
+ if (!camera->globalCtx->envCtx.skyboxDisabled || keep1->interfaceFlags & 1) {
Camera_BGCheckInfo(camera, at, &sp8C);
} else if (keep1->interfaceFlags & 2) {
func_80043F94(camera, at, &sp8C);
@@ -4205,7 +4205,7 @@ s32 Camera_Subj3(Camera* camera) {
*eye = *eyeNext;
anim->animTimer--;
- if (camera->globalCtx->envCtx.skyDisabled == 0) {
+ if (!camera->globalCtx->envCtx.skyboxDisabled) {
Camera_BGCheck(camera, at, eye);
} else {
func_80044340(camera, at, eye);
@@ -7047,7 +7047,7 @@ void Camera_PrintSettings(Camera* camera) {
s32 Camera_CheckWater(Camera* camera) {
f32 waterY;
s16 newQuakeId;
- s32 waterBoxProp;
+ s32 waterLightsIndex;
s32* waterPrevCamSetting = &camera->waterPrevCamSetting;
s16 waterCamIdx;
s16* quakeId = (s16*)&camera->waterQuakeId;
@@ -7115,12 +7115,12 @@ s32 Camera_CheckWater(Camera* camera) {
}
}
- if (waterY = Camera_GetWaterSurface(camera, &camera->eye, &waterBoxProp), waterY != BGCHECK_Y_MIN) {
+ if (waterY = Camera_GetWaterSurface(camera, &camera->eye, &waterLightsIndex), waterY != BGCHECK_Y_MIN) {
camera->waterYPos = waterY;
if (!(camera->unk_14C & 0x100)) {
camera->unk_14C |= 0x100;
osSyncPrintf("kankyo changed water, sound on\n");
- func_80070600(camera->globalCtx, waterBoxProp);
+ Environment_EnableUnderwaterLights(camera->globalCtx, waterLightsIndex);
camera->unk_150 = 0x50;
}
@@ -7152,7 +7152,7 @@ s32 Camera_CheckWater(Camera* camera) {
if (camera->unk_14C & 0x100) {
camera->unk_14C &= ~0x100;
osSyncPrintf("kankyo changed water off, sound off\n");
- func_800706A0(camera->globalCtx);
+ Environment_DisableUnderwaterLights(camera->globalCtx);
if (*quakeId != 0) {
Quake_RemoveFromIdx(*quakeId);
}
@@ -7567,7 +7567,7 @@ void Camera_Finish(Camera* camera) {
camera->childCamIdx = camera->parentCamIdx = SUBCAM_FREE;
camera->timer = -1;
- camera->globalCtx->envCtx.unk_E1 = 0;
+ camera->globalCtx->envCtx.fillScreen = false;
Gameplay_ClearCamera(camera->globalCtx, camera->thisIdx);
}
diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c
index 4923e56f17..43611d9d05 100644
--- a/src/code/z_common_data.c
+++ b/src/code/z_common_data.c
@@ -15,7 +15,7 @@ void SaveContext_Init(void) {
gSaveContext.cutsceneTrigger = 0;
gSaveContext.chamberCutsceneNum = 0;
gSaveContext.nextDayTime = 0xFFFF;
- gSaveContext.environmentTime = 0;
+ gSaveContext.skyboxTime = 0;
gSaveContext.dogIsLost = true;
gSaveContext.nextTransition = 0xFF;
gSaveContext.unk_13EE = 50;
diff --git a/src/code/z_construct.c b/src/code/z_construct.c
index 1d14c7c629..fb2241d2fc 100644
--- a/src/code/z_construct.c
+++ b/src/code/z_construct.c
@@ -10,7 +10,7 @@ void func_801109B0(GlobalContext* globalCtx) {
u16 doActionOffset;
u8 temp;
- gSaveContext.unk_1422 = 0;
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
gSaveContext.unk_13E8 = gSaveContext.unk_13EA = 0;
View_Init(&interfaceCtx->view, globalCtx->state.gfxCtx);
diff --git a/src/code/z_demo.c b/src/code/z_demo.c
index 09ada34433..8b750641f8 100644
--- a/src/code/z_demo.c
+++ b/src/code/z_demo.c
@@ -170,7 +170,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
return;
}
- temp = func_8006F93C(cmd->endFrame - 1, cmd->startFrame, csCtx->frames);
+ temp = Environment_LerpWeight(cmd->endFrame - 1, cmd->startFrame, csCtx->frames);
if (csCtx->frames == cmd->startFrame) {
sp3F = 1;
@@ -187,9 +187,9 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
case 2:
if (sp3F != 0) {
func_800F6D58(0xF, 0, 0);
- func_800753C4(globalCtx, 3);
+ Environment_AddLightningBolts(globalCtx, 3);
if (1) {}
- D_8015FD70 = 1;
+ gLightningStrike.state = LIGHTNING_STRIKE_START;
}
break;
case 3:
@@ -201,14 +201,14 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
}
break;
case 6:
- if (globalCtx->envCtx.unk_A0 < 0x3200) {
- globalCtx->envCtx.unk_A0 += 0x23;
+ if (globalCtx->envCtx.adjFogFar < 12800) {
+ globalCtx->envCtx.adjFogFar += 35;
}
break;
case 7:
if (sp3F != 0) {
globalCtx->envCtx.unk_19 = 1;
- globalCtx->envCtx.gloomySky = 1;
+ globalCtx->envCtx.unk_17 = 1;
globalCtx->envCtx.unk_18 = 0;
globalCtx->envCtx.unk_1A = 0x3C;
globalCtx->envCtx.unk_21 = 1;
@@ -279,12 +279,12 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 18:
globalCtx->envCtx.unk_EE[0] = 0;
- globalCtx->envCtx.gloomySkyEvent = 2;
+ globalCtx->envCtx.gloomySkyMode = 2;
if (gSaveContext.dayTime < 0x4AAB) {
gSaveContext.dayTime += 30;
}
if (globalCtx->envCtx.unk_EE[1] == 0) {
- D_8011FB30 = 0;
+ gWeatherMode = 0;
func_800F6D58(14, 1, 0);
}
break;
@@ -331,16 +331,16 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 27:
if (globalCtx->state.frames & 8) {
- if (globalCtx->envCtx.unk_8C[0][0] < 40) {
- globalCtx->envCtx.unk_8C[0][0] += 2;
- globalCtx->envCtx.unk_8C[1][1] -= 3;
- globalCtx->envCtx.unk_8C[1][2] -= 3;
+ if (globalCtx->envCtx.adjAmbientColor[0] < 40) {
+ globalCtx->envCtx.adjAmbientColor[0] += 2;
+ globalCtx->envCtx.adjLight1Color[1] -= 3;
+ globalCtx->envCtx.adjLight1Color[2] -= 3;
}
} else {
- if (globalCtx->envCtx.unk_8C[0][0] > 2) {
- globalCtx->envCtx.unk_8C[0][0] -= 2;
- globalCtx->envCtx.unk_8C[1][1] += 3;
- globalCtx->envCtx.unk_8C[1][2] += 3;
+ if (globalCtx->envCtx.adjAmbientColor[0] > 2) {
+ globalCtx->envCtx.adjAmbientColor[0] -= 2;
+ globalCtx->envCtx.adjLight1Color[1] += 3;
+ globalCtx->envCtx.adjLight1Color[2] += 3;
}
}
break;
@@ -358,18 +358,18 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 32:
if (sp3F != 0) {
- globalCtx->envCtx.unk_E6 = 1;
+ globalCtx->envCtx.sandstormState = 1;
}
func_800788CC(NA_SE_EV_SAND_STORM - SFX_FLAG);
break;
case 33:
- gSaveContext.unk_1422 = 1;
+ gSaveContext.sunsSongState = SUNSSONG_START;
break;
case 34:
if (IS_DAY) {
- gSaveContext.dayTime -= D_8011FB40;
+ gSaveContext.dayTime -= gTimeIncrement;
} else {
- gSaveContext.dayTime -= D_8011FB40 * 2;
+ gSaveContext.dayTime -= gTimeIncrement * 2;
}
break;
case 35:
@@ -433,7 +433,7 @@ void func_80065134(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdDayTim
temp2 = (cmd->minute + 1) / (360.0f / 0x4000);
gSaveContext.dayTime = temp1 + temp2;
- gSaveContext.environmentTime = temp1 + temp2;
+ gSaveContext.skyboxTime = temp1 + temp2;
}
}
@@ -1174,7 +1174,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
break;
case 119:
gSaveContext.dayTime = 0x8000;
- gSaveContext.environmentTime = 0x8000;
+ gSaveContext.skyboxTime = 0x8000;
globalCtx->nextEntranceIndex = 0x05F0;
globalCtx->sceneLoadFlag = 0x14;
globalCtx->fadeTransition = 3;
@@ -1188,17 +1188,17 @@ void Cutscene_Command_TransitionFX(GlobalContext* globalCtx, CutsceneContext* cs
f32 temp;
if ((csCtx->frames >= cmd->startFrame) && (csCtx->frames <= cmd->endFrame)) {
- globalCtx->envCtx.unk_E1 = 1;
- temp = func_8006F93C(cmd->endFrame, cmd->startFrame, csCtx->frames);
+ globalCtx->envCtx.fillScreen = true;
+ temp = Environment_LerpWeight(cmd->endFrame, cmd->startFrame, csCtx->frames);
switch (cmd->base) {
case 1:
case 5:
- globalCtx->envCtx.unk_E2[0] = 0xA0;
- globalCtx->envCtx.unk_E2[1] = 0xA0;
- globalCtx->envCtx.unk_E2[2] = 0xA0;
+ globalCtx->envCtx.screenFillColor[0] = 160;
+ globalCtx->envCtx.screenFillColor[1] = 160;
+ globalCtx->envCtx.screenFillColor[2] = 160;
if (cmd->base == 1) {
- globalCtx->envCtx.unk_E2[3] = 255.0f * temp;
+ globalCtx->envCtx.screenFillColor[3] = 255.0f * temp;
if ((temp == 0.0f) && (gSaveContext.entranceIndex == 0x006B)) {
Audio_PlaySoundGeneral(NA_SE_SY_WHITE_OUT_S, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
@@ -1211,40 +1211,40 @@ void Cutscene_Command_TransitionFX(GlobalContext* globalCtx, CutsceneContext* cs
func_800788CC(NA_SE_EV_WHITE_OUT);
}
} else {
- globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f;
}
break;
case 2:
case 6:
- globalCtx->envCtx.unk_E2[0] = 0;
- globalCtx->envCtx.unk_E2[1] = 0;
- globalCtx->envCtx.unk_E2[2] = 0xFF;
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 255;
if (cmd->base == 2) {
- globalCtx->envCtx.unk_E2[3] = 255.0f * temp;
+ globalCtx->envCtx.screenFillColor[3] = 255.0f * temp;
} else {
- globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f;
}
break;
case 3:
case 7:
- globalCtx->envCtx.unk_E2[0] = 0xFF;
- globalCtx->envCtx.unk_E2[1] = 0;
- globalCtx->envCtx.unk_E2[2] = 0;
+ globalCtx->envCtx.screenFillColor[0] = 255;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 0;
if (cmd->base == 3) {
- globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f;
} else {
- globalCtx->envCtx.unk_E2[3] = 255.0f * temp;
+ globalCtx->envCtx.screenFillColor[3] = 255.0f * temp;
}
break;
case 4:
case 8:
- globalCtx->envCtx.unk_E2[0] = 0;
- globalCtx->envCtx.unk_E2[1] = 0xFF;
- globalCtx->envCtx.unk_E2[2] = 0;
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 255;
+ globalCtx->envCtx.screenFillColor[2] = 0;
if (cmd->base == 4) {
- globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f;
} else {
- globalCtx->envCtx.unk_E2[3] = 255.0f * temp;
+ globalCtx->envCtx.screenFillColor[3] = 255.0f * temp;
}
break;
case 9:
@@ -1252,23 +1252,23 @@ void Cutscene_Command_TransitionFX(GlobalContext* globalCtx, CutsceneContext* cs
break;
case 10:
case 11:
- globalCtx->envCtx.unk_E2[0] = 0;
- globalCtx->envCtx.unk_E2[1] = 0;
- globalCtx->envCtx.unk_E2[2] = 0;
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 0;
if (cmd->base == 10) {
- globalCtx->envCtx.unk_E2[3] = (1.0f - temp) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f;
} else {
- globalCtx->envCtx.unk_E2[3] = 255.0f * temp;
+ globalCtx->envCtx.screenFillColor[3] = 255.0f * temp;
}
break;
case 12:
gSaveContext.unk_1410 = 255.0f - (155.0f * temp);
break;
case 13:
- globalCtx->envCtx.unk_E2[0] = 0;
- globalCtx->envCtx.unk_E2[1] = 0;
- globalCtx->envCtx.unk_E2[2] = 0;
- globalCtx->envCtx.unk_E2[3] = 255.0f - ((1.0f - temp) * 155.0f);
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 0;
+ globalCtx->envCtx.screenFillColor[3] = 255.0f - ((1.0f - temp) * 155.0f);
break;
}
}
diff --git a/src/code/z_eff_ss_dead.c b/src/code/z_eff_ss_dead.c
index aebee67b38..b3978547be 100644
--- a/src/code/z_eff_ss_dead.c
+++ b/src/code/z_eff_ss_dead.c
@@ -56,7 +56,7 @@ void func_80026608(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 159);
gDPPipeSync(POLY_OPA_DISP++);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 164);
}
@@ -115,7 +115,7 @@ void func_80026A6C(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 217);
gDPPipeSync(POLY_XLU_DISP++);
- POLY_XLU_DISP = func_800BC8A0(globalCtx, POLY_XLU_DISP);
+ POLY_XLU_DISP = Gameplay_SetFog(globalCtx, POLY_XLU_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead.c", 222);
}
diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c
index 35fd673871..f83bb8456b 100644
--- a/src/code/z_en_item00.c
+++ b/src/code/z_en_item00.c
@@ -1036,7 +1036,7 @@ void EnItem00_DrawCollectible(EnItem00* this, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_item00.c", 1594);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
if (this->actor.params == ITEM00_BOMBS_SPECIAL) {
texIndex = 1;
diff --git a/src/code/z_frame_advance.c b/src/code/z_frame_advance.c
index c8a2c64ff2..930db59b32 100644
--- a/src/code/z_frame_advance.c
+++ b/src/code/z_frame_advance.c
@@ -7,7 +7,7 @@ void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx) {
/**
* Frame advance allows you to advance through the game one frame at a time on command.
- * To enable, hold R and press Dpad Down on the provided controller.
+ * To enable, hold R and press Dpad Down on the specified controller.
* To advance a frame, hold Z and press R.
* Holding Z and R will advance a frame every half second.
*
diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c
index c978b69cfe..c41a8e5b8d 100644
--- a/src/code/z_game_over.c
+++ b/src/code/z_game_over.c
@@ -9,7 +9,7 @@ void GameOver_FadeInLights(GlobalContext* globalCtx) {
if ((gameOverCtx->state >= GAMEOVER_DEATH_WAIT_GROUND && gameOverCtx->state < GAMEOVER_REVIVE_START) ||
(gameOverCtx->state >= GAMEOVER_REVIVE_RUMBLE && gameOverCtx->state < GAMEOVER_REVIVE_FADE_OUT)) {
- Kankyo_FadeInGameOverLights(globalCtx);
+ Environment_FadeInGameOverLights(globalCtx);
}
}
@@ -74,7 +74,7 @@ void GameOver_Update(GlobalContext* globalCtx) {
gSaveContext.buttonStatus[3] = gSaveContext.buttonStatus[4] = BTN_ENABLED;
gSaveContext.unk_13E7 = gSaveContext.unk_13E8 = gSaveContext.unk_13EA = gSaveContext.unk_13EC = 0;
- Kankyo_InitGameOverLights(globalCtx);
+ Environment_InitGameOverLights(globalCtx);
D_80153D80 = 20;
if (1) {}
v90 = VREG(90);
@@ -103,7 +103,7 @@ void GameOver_Update(GlobalContext* globalCtx) {
case GAMEOVER_REVIVE_START:
gameOverCtx->state++;
D_80153D80 = 0;
- Kankyo_InitGameOverLights(globalCtx);
+ Environment_InitGameOverLights(globalCtx);
ShrinkWindow_SetVal(0x20);
return;
@@ -139,7 +139,7 @@ void GameOver_Update(GlobalContext* globalCtx) {
break;
case GAMEOVER_REVIVE_FADE_OUT:
- Kankyo_FadeOutGameOverLights(globalCtx);
+ Environment_FadeOutGameOverLights(globalCtx);
D_80153D80--;
if (D_80153D80 == 0) {
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 61e9b2f78c..ee0ab613be 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -1,94 +1,2499 @@
#include "global.h"
+#include "ultra64.h"
+#include "vt.h"
+#include "objects/gameplay_keep/gameplay_keep.h"
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0A0.s")
+typedef enum {
+ /* 0 */ LENS_FLARE_CIRCLE0,
+ /* 1 */ LENS_FLARE_CIRCLE1,
+ /* 2 */ LENS_FLARE_RING
+} LensFlareType;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0D4.s")
+typedef enum {
+ /* 0x00 */ LIGHTNING_BOLT_START,
+ /* 0x01 */ LIGHTNING_BOLT_WAIT,
+ /* 0x02 */ LIGHTNING_BOLT_DRAW,
+ /* 0xFF */ LIGHTNING_BOLT_INACTIVE = 0xFF
+} LightningBoltState;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0FC.s")
+typedef struct {
+ /* 0x00 */ u16 startTime;
+ /* 0x02 */ u16 endTime;
+ /* 0x04 */ u8 unk_04;
+ /* 0x05 */ u8 unk_05;
+} struct_8011FB48; // size = 0x6
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F140.s")
+typedef struct {
+ /* 0x00 */ u8 state;
+ /* 0x04 */ Vec3f offset;
+ /* 0x10 */ Vec3f pos;
+ /* 0x1C */ s8 pitch;
+ /* 0x1D */ s8 roll;
+ /* 0x1E */ u8 textureIndex;
+ /* 0x1F */ u8 delayTimer;
+} LightningBolt; // size = 0x20
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F93C.s")
+typedef struct {
+ /* 0x00 */ s32 unk0;
+ /* 0x04 */ s32 unk1;
+} Struct_8011FAF0; // size = 0x8
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F9BC.s")
+Struct_8011FAF0 D_8011FAF0[] = {
+ { 6, 0x00000000 }, { 5, 0x00020000 }, { 4, 0x00030000 }, { 3, 0x00038000 },
+ { 2, 0x0003C000 }, { 1, 0x0003E000 }, { 0, 0x0003F000 }, { 0, 0x0003F800 },
+};
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006FB94.s")
+u8 gWeatherMode = 0; // "E_wether_flg"
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006FC88.s")
+u8 D_8011FB34 = 0;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80070600.s")
+u8 D_8011FB38 = 0;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800706A0.s")
+u8 gSkyboxBlendingEnabled = false;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80070718.s")
+u16 gTimeIncrement = 0;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80070C24.s")
+u16 D_8011FB44 = 0xFFFC;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800730DC.s")
+struct_8011FB48 D_8011FB48[][7] = {
+ {
+ { 0x0000, 0x2AAC, 3, 3 },
+ { 0x2AAC, 0x4000, 3, 0 },
+ { 0x4000, 0x5556, 0, 1 },
+ { 0x5556, 0xAAAB, 1, 1 },
+ { 0xAAAB, 0xB556, 1, 2 },
+ { 0xB556, 0xCAAC, 2, 3 },
+ { 0xCAAC, 0xFFFF, 3, 3 },
+ },
+ {
+ { 0x0000, 0x2AAC, 7, 7 },
+ { 0x2AAC, 0x4000, 7, 4 },
+ { 0x4000, 0x5556, 4, 5 },
+ { 0x5556, 0xAAAB, 5, 5 },
+ { 0xAAAB, 0xB556, 5, 6 },
+ { 0xB556, 0xCAAC, 6, 7 },
+ { 0xCAAC, 0xFFFF, 7, 7 },
+ },
+ {
+ { 0x0000, 0x2AAC, 11, 11 },
+ { 0x2AAC, 0x4000, 11, 8 },
+ { 0x4000, 0x5556, 8, 9 },
+ { 0x5556, 0xAAAB, 9, 9 },
+ { 0xAAAB, 0xB556, 9, 10 },
+ { 0xB556, 0xCAAC, 10, 11 },
+ { 0xCAAC, 0xFFFF, 11, 11 },
+ },
+ {
+ { 0x0000, 0x2AAC, 15, 15 },
+ { 0x2AAC, 0x4000, 15, 12 },
+ { 0x4000, 0x5556, 12, 13 },
+ { 0x5556, 0xAAAB, 13, 13 },
+ { 0xAAAB, 0xB556, 13, 14 },
+ { 0xB556, 0xCAAC, 14, 15 },
+ { 0xCAAC, 0xFFFF, 15, 15 },
+ },
+ {
+ { 0x0000, 0x2AAC, 23, 23 },
+ { 0x2AAC, 0x4000, 23, 20 },
+ { 0x4000, 0x5556, 20, 21 },
+ { 0x5556, 0xAAAB, 21, 21 },
+ { 0xAAAB, 0xB556, 21, 22 },
+ { 0xB556, 0xCAAC, 22, 23 },
+ { 0xCAAC, 0xFFFF, 23, 23 },
+ },
+};
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80073988.s")
+struct_8011FC1C D_8011FC1C[][9] = {
+ {
+ { 0x0000, 0x2AAC, 0, 3, 3 },
+ { 0x2AAC, 0x3556, 1, 3, 0 },
+ { 0x3556, 0x4000, 0, 0, 0 },
+ { 0x4000, 0x5556, 1, 0, 1 },
+ { 0x5556, 0xAAAB, 0, 1, 1 },
+ { 0xAAAB, 0xB556, 1, 1, 2 },
+ { 0xB556, 0xC001, 0, 2, 2 },
+ { 0xC001, 0xCAAC, 1, 2, 3 },
+ { 0xCAAC, 0xFFFF, 0, 3, 3 },
+ },
+ {
+ { 0x0000, 0x2AAC, 0, 7, 7 },
+ { 0x2AAC, 0x3556, 1, 7, 4 },
+ { 0x3556, 0x4000, 0, 4, 4 },
+ { 0x4000, 0x5556, 1, 4, 5 },
+ { 0x5556, 0xAAAB, 0, 5, 5 },
+ { 0xAAAB, 0xB556, 1, 5, 6 },
+ { 0xB556, 0xC001, 0, 6, 6 },
+ { 0xC001, 0xCAAC, 1, 6, 7 },
+ { 0xCAAC, 0xFFFF, 0, 7, 7 },
+ },
+ {
+ { 0x0000, 0x1556, 0, 3, 3 },
+ { 0x1556, 0x2AAC, 1, 3, 0 },
+ { 0x2AAC, 0x5556, 0, 0, 0 },
+ { 0x5556, 0x6AAB, 1, 0, 1 },
+ { 0x6AAB, 0x9556, 0, 1, 1 },
+ { 0x9556, 0xAAAB, 1, 1, 2 },
+ { 0xAAAB, 0xD556, 0, 2, 2 },
+ { 0xD556, 0xEAAB, 1, 2, 3 },
+ { 0xEAAB, 0xFFFF, 0, 3, 3 },
+ },
+ {
+ { 0x0000, 0x3556, 0, 11, 11 },
+ { 0x3556, 0x4000, 1, 11, 8 },
+ { 0x4000, 0x4AAB, 0, 8, 8 },
+ { 0x4AAB, 0x5556, 1, 8, 9 },
+ { 0x5556, 0xAAAB, 0, 9, 9 },
+ { 0xAAAB, 0xB556, 1, 9, 10 },
+ { 0xB556, 0xC001, 0, 10, 10 },
+ { 0xC001, 0xCAAC, 1, 10, 11 },
+ { 0xCAAC, 0xFFFF, 0, 11, 11 },
+ },
+};
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80073A5C.s")
+SkyboxFile gSkyboxFiles[] = {
+ {
+ ROM_FILE(vr_fine0_static),
+ ROM_FILE(vr_fine0_pal_static),
+ },
+ {
+ ROM_FILE(vr_fine1_static),
+ ROM_FILE(vr_fine1_pal_static),
+ },
+ {
+ ROM_FILE(vr_fine2_static),
+ ROM_FILE(vr_fine2_pal_static),
+ },
+ {
+ ROM_FILE(vr_fine3_static),
+ ROM_FILE(vr_fine3_pal_static),
+ },
+ {
+ ROM_FILE(vr_cloud0_static),
+ ROM_FILE(vr_cloud0_pal_static),
+ },
+ {
+ ROM_FILE(vr_cloud1_static),
+ ROM_FILE(vr_cloud1_pal_static),
+ },
+ {
+ ROM_FILE(vr_cloud2_static),
+ ROM_FILE(vr_cloud2_pal_static),
+ },
+ {
+ ROM_FILE(vr_cloud3_static),
+ ROM_FILE(vr_cloud3_pal_static),
+ },
+ {
+ ROM_FILE(vr_holy0_static),
+ ROM_FILE(vr_holy0_pal_static),
+ },
+};
-f32 func_800746DC() {
+u8 D_8011FDCC = 0;
+u8 D_8011FDD0 = 0;
+f32 D_8011FDD4 = 0.0f;
+
+u8 gCustomLensFlareOn;
+Vec3f gCustomLensFlarePos;
+s16 D_8015FD04;
+s16 D_8015FD06;
+f32 D_8015FD08;
+s16 D_8015FD0C;
+LightningBolt sLightningBolts[3];
+LightningStrike gLightningStrike;
+s16 sLightningFlashAlpha;
+s16 D_8015FD7E;
+s16 D_8015FD80;
+LightNode* sNGameOverLightNode;
+LightInfo sNGameOverLightInfo;
+LightNode* sSGameOverLightNode;
+LightInfo sSGameOverLightInfo;
+u8 sGameOverLightsIntensity;
+u16 D_8015FDB0;
+
+s32 func_8006F0A0(s32 a0) {
+ s32 ret = ((a0 >> 4 & 0x7FF) << D_8011FAF0[a0 >> 15 & 7].unk0) + D_8011FAF0[a0 >> 15 & 7].unk1;
+
+ return ret;
+}
+
+u16 Environment_GetPixelDepth(s32 x, s32 y) {
+ s32 pixelDepth = gZBuffer[y][x];
+
+ return pixelDepth;
+}
+
+void Environment_GraphCallback(GraphicsContext* gfxCtx, void* param) {
+ GlobalContext* globalCtx = (GlobalContext*)param;
+
+ D_8011FB44 = Environment_GetPixelDepth(D_8015FD7E, D_8015FD80);
+ Lights_GlowCheck(globalCtx);
+}
+
+void Environment_Init(GlobalContext* globalCtx2, EnvironmentContext* envCtx, s32 unused) {
+ u8 i;
+ GlobalContext* globalCtx = globalCtx2;
+
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
+
+ if (((void)0, gSaveContext.dayTime) > 0xC000 || ((void)0, gSaveContext.dayTime) < 0x4555) {
+ ((void)0, gSaveContext.nightFlag = true);
+ } else {
+ ((void)0, gSaveContext.nightFlag = false);
+ }
+
+ globalCtx->state.gfxCtx->callback = Environment_GraphCallback;
+ globalCtx->state.gfxCtx->callbackParam = globalCtx;
+
+ Lights_DirectionalSetInfo(&envCtx->dirLight1, 80, 80, 80, 80, 80, 80);
+ LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &envCtx->dirLight1);
+
+ Lights_DirectionalSetInfo(&envCtx->dirLight2, 80, 80, 80, 80, 80, 80);
+ LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &envCtx->dirLight2);
+
+ envCtx->skybox1Index = 99;
+ envCtx->skybox2Index = 99;
+ envCtx->unk_19 = 0;
+ envCtx->unk_1A = 0;
+ envCtx->unk_21 = 0;
+ envCtx->unk_22 = 0;
+ envCtx->skyboxDmaState = SKYBOX_DMA_INACTIVE;
+ envCtx->unk_1F = 0;
+ envCtx->unk_20 = 0;
+ envCtx->unk_84 = 0.0f;
+ envCtx->unk_88 = 0.0f;
+ envCtx->unk_BD = 0;
+ envCtx->unk_BE = 0;
+ envCtx->unk_D8 = 1.0f;
+ envCtx->unk_DC = 0;
+ envCtx->gloomySkyMode = 0;
+ envCtx->unk_DE = 0;
+ envCtx->lightningMode = LIGHTNING_MODE_OFF;
+ envCtx->unk_E0 = 0;
+ envCtx->fillScreen = false;
+ envCtx->screenFillColor[0] = 0;
+ envCtx->screenFillColor[1] = 0;
+ envCtx->screenFillColor[2] = 0;
+ envCtx->screenFillColor[3] = 0;
+ envCtx->customSkyboxFilter = false;
+ envCtx->skyboxFilterColor[0] = 0;
+ envCtx->skyboxFilterColor[1] = 0;
+ envCtx->skyboxFilterColor[2] = 0;
+ envCtx->skyboxFilterColor[3] = 0;
+ envCtx->sandstormState = 0;
+ envCtx->sandstormPrimA = 0;
+ envCtx->sandstormEnvA = 0;
+
+ gLightningStrike.state = LIGHTNING_STRIKE_WAIT;
+ gLightningStrike.flashRed = 0;
+ gLightningStrike.flashGreen = 0;
+ gLightningStrike.flashBlue = 0;
+
+ sLightningFlashAlpha = 0;
+
+ gSaveContext.unk_1410 = 0;
+
+ envCtx->adjAmbientColor[0] = envCtx->adjAmbientColor[1] = envCtx->adjAmbientColor[2] = envCtx->adjLight1Color[0] =
+ envCtx->adjLight1Color[1] = envCtx->adjLight1Color[2] = envCtx->adjFogColor[0] = envCtx->adjFogColor[1] =
+ envCtx->adjFogColor[2] = envCtx->adjFogNear = envCtx->adjFogFar = 0;
+
+ envCtx->sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
+ envCtx->sunPos.y = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
+ envCtx->sunPos.z = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f;
+
+ envCtx->windDirection.x = 80;
+ envCtx->windDirection.y = 80;
+ envCtx->windDirection.z = 80;
+
+ envCtx->blendIndoorLights = false;
+ envCtx->unk_BF = 0xFF;
+ envCtx->unk_D6 = 0xFFFF;
+ R_ENV_TIME_INCREMENT = gTimeIncrement = envCtx->timeIncrement = 0;
+ R_ENV_DISABLE_DBG = true;
+
+ if (CREG(3) != 0) {
+ gSaveContext.chamberCutsceneNum = CREG(3) - 1;
+ }
+
+ globalCtx->envCtx.unk_EE[0] = 0;
+ globalCtx->envCtx.unk_EE[1] = 0;
+ globalCtx->envCtx.unk_EE[2] = 0;
+ globalCtx->envCtx.unk_EE[3] = 0;
+
+ globalCtx->envCtx.unk_F2[0] = 0;
+
+ if (gSaveContext.unk_13C3 != 0) {
+ if (((void)0, gSaveContext.sceneSetupIndex) < 4) {
+ switch (gWeatherMode) {
+ case 1:
+ envCtx->unk_17 = 1;
+ envCtx->unk_18 = 1;
+ envCtx->unk_1F = 3;
+ envCtx->unk_20 = 3;
+ globalCtx->envCtx.unk_EE[3] = 0;
+ globalCtx->envCtx.unk_EE[2] = 0;
+ break;
+ case 2:
+ case 3:
+ case 4:
+ envCtx->unk_17 = 1;
+ envCtx->unk_18 = 1;
+ envCtx->unk_1F = 2;
+ envCtx->unk_20 = 2;
+ globalCtx->envCtx.unk_EE[3] = 0;
+ globalCtx->envCtx.unk_EE[2] = 0;
+ break;
+ case 5:
+ envCtx->unk_17 = 1;
+ envCtx->unk_18 = 1;
+ envCtx->unk_1F = 4;
+ envCtx->unk_20 = 4;
+ globalCtx->envCtx.unk_EE[3] = 0;
+ globalCtx->envCtx.unk_EE[2] = 0;
+ break;
+ default:
+ break;
+ }
+
+ if (globalCtx->skyboxId == SKYBOX_NORMAL_SKY) {
+ if (gWeatherMode == 3) {
+ globalCtx->envCtx.unk_EE[2] = globalCtx->envCtx.unk_EE[3] = 0x40;
+ } else if (gWeatherMode == 4) {
+ globalCtx->envCtx.unk_EE[0] = 0x14;
+ globalCtx->envCtx.unk_EE[1] = 0x14;
+ } else if (gWeatherMode == 5) {
+ globalCtx->envCtx.unk_EE[0] = 0x1E;
+ globalCtx->envCtx.unk_EE[1] = 0x1E;
+ }
+ }
+ }
+ } else {
+ gWeatherMode = 0;
+ }
+
+ D_8011FB38 = 0;
+ D_8011FB34 = 0;
+ gSkyboxBlendingEnabled = false;
+ gSaveContext.unk_13C3 = 0;
+ R_ENV_LIGHT1_DIR(0) = 80;
+ R_ENV_LIGHT1_DIR(1) = 80;
+ R_ENV_LIGHT1_DIR(2) = 80;
+ R_ENV_LIGHT2_DIR(0) = -80;
+ R_ENV_LIGHT2_DIR(1) = -80;
+ R_ENV_LIGHT2_DIR(2) = -80;
+ cREG(9) = 10;
+ cREG(10) = 0;
+ cREG(11) = 0;
+ cREG(12) = 0;
+ cREG(13) = 0;
+ cREG(14) = 0;
+ D_8015FCC8 = 1;
+
+ for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) {
+ sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE;
+ }
+
+ globalCtx->roomCtx.unk_74[0] = 0;
+ globalCtx->roomCtx.unk_74[1] = 0;
+
+ for (i = 0; i < ARRAY_COUNT(globalCtx->csCtx.npcActions); i++) {
+ globalCtx->csCtx.npcActions[i] = 0;
+ }
+
+ if (Object_GetIndex(&globalCtx->objectCtx, OBJECT_GAMEPLAY_FIELD_KEEP) < 0 && !globalCtx->envCtx.sunMoonDisabled) {
+ globalCtx->envCtx.sunMoonDisabled = true;
+ // "Sun setting other than field keep! So forced release!"
+ osSyncPrintf(VT_COL(YELLOW, BLACK) "\n\nフィールド常駐以外、太陽設定!よって強制解除!\n" VT_RST);
+ }
+
+ gCustomLensFlareOn = false;
+ func_800AA15C();
+}
+
+u8 Environment_SmoothStepToU8(u8* pvalue, u8 target, u8 scale, u8 step, u8 minStep) {
+ s16 stepSize = 0;
+ s16 diff = target - *pvalue;
+
+ if (target != *pvalue) {
+ stepSize = diff / scale;
+ if ((stepSize >= (s16)minStep) || ((s16)-minStep >= stepSize)) {
+ if ((s16)step < stepSize) {
+ stepSize = step;
+ }
+ if ((s16)-step > stepSize) {
+ stepSize = -step;
+ }
+ *pvalue += (u8)stepSize;
+ } else {
+ if (stepSize < (s16)minStep) {
+ stepSize = minStep;
+ *pvalue += (u8)stepSize;
+ if (target < *pvalue) {
+ *pvalue = target;
+ }
+ }
+ if ((s16)-minStep < stepSize) {
+ stepSize = -minStep;
+ *pvalue += (u8)stepSize;
+ if (*pvalue < target) {
+ *pvalue = target;
+ }
+ }
+ }
+ }
+ return diff;
+}
+
+u8 Environment_SmoothStepToS8(s8* pvalue, s8 target, u8 scale, u8 step, u8 minStep) {
+ s16 stepSize = 0;
+ s16 diff = target - *pvalue;
+
+ if (target != *pvalue) {
+ stepSize = diff / scale;
+ if ((stepSize >= (s16)minStep) || ((s16)-minStep >= stepSize)) {
+ if ((s16)step < stepSize) {
+ stepSize = step;
+ }
+ if ((s16)-step > stepSize) {
+ stepSize = -step;
+ }
+ *pvalue += (s8)stepSize;
+ } else {
+ if (stepSize < (s16)minStep) {
+ stepSize = minStep;
+ *pvalue += (s8)stepSize;
+ if (target < *pvalue) {
+ *pvalue = target;
+ }
+ }
+ if ((s16)-minStep < stepSize) {
+ stepSize = -minStep;
+ *pvalue += (s8)stepSize;
+ if (*pvalue < target) {
+ *pvalue = target;
+ }
+ }
+ }
+ }
+ return diff;
+}
+
+f32 Environment_LerpWeight(u16 max, u16 min, u16 val) {
+ f32 diff = max - min;
+ f32 ret;
+
+ if (diff != 0.0f) {
+ ret = 1.0f - (max - val) / diff;
+
+ if (!(ret >= 1.0f)) {
+ return ret;
+ }
+ }
+
+ return 1.0f;
+}
+
+f32 Environment_LerpWeightAccelDecel(u16 endFrame, u16 startFrame, u16 curFrame, u16 accelDuration, u16 decelDuration) {
+ f32 endFrameF;
+ f32 startFrameF;
+ f32 curFrameF;
+ f32 accelDurationF;
+ f32 decelDurationF;
+ f32 totalFrames;
+ f32 temp;
+ f32 framesElapsed;
+ f32 ret;
+
+ if (curFrame <= startFrame) {
+ return 0.0f;
+ }
+
+ if (curFrame >= endFrame) {
+ return 1.0f;
+ }
+
+ endFrameF = (s32)endFrame;
+ startFrameF = (s32)startFrame;
+ curFrameF = (s32)curFrame;
+ totalFrames = endFrameF - startFrameF;
+ framesElapsed = curFrameF - startFrameF;
+ accelDurationF = (s32)accelDuration;
+ decelDurationF = (s32)decelDuration;
+
+ if ((startFrameF >= endFrameF) || (accelDurationF + decelDurationF > totalFrames)) {
+ // "The frame relation between end_frame and start_frame is wrong!!!"
+ osSyncPrintf(VT_COL(RED, WHITE) "\nend_frameとstart_frameのフレーム関係がおかしい!!!" VT_RST);
+ osSyncPrintf(VT_COL(RED, WHITE) "\nby get_parcent_forAccelBrake!!!!!!!!!" VT_RST);
+
+ return 0.0f;
+ }
+
+ temp = 1.0f / ((totalFrames * 2.0f) - accelDurationF - decelDurationF);
+
+ if (accelDurationF != 0.0f) {
+ if (framesElapsed <= accelDurationF) {
+ return temp * framesElapsed * framesElapsed / accelDurationF;
+ }
+ ret = temp * accelDurationF;
+ } else {
+ ret = 0.0f;
+ }
+
+ if (framesElapsed <= totalFrames - decelDurationF) {
+ ret += 2.0f * temp * (framesElapsed - accelDurationF);
+ return ret;
+ }
+
+ ret += 2.0f * temp * (totalFrames - accelDurationF - decelDurationF);
+
+ if (decelDurationF != 0.0f) {
+ ret += temp * decelDurationF;
+ if (framesElapsed < totalFrames) {
+ ret -= temp * (totalFrames - framesElapsed) * (totalFrames - framesElapsed) / decelDurationF;
+ }
+ }
+
+ return ret;
+}
+
+void func_8006FB94(EnvironmentContext* envCtx, u8 unused) {
+ if (envCtx->gloomySkyMode != 0) {
+ switch (envCtx->unk_DE) {
+ case 0:
+ if ((envCtx->gloomySkyMode == 1) && !gSkyboxBlendingEnabled) {
+ envCtx->unk_19 = 1;
+ envCtx->unk_17 = 0;
+ envCtx->unk_18 = 1;
+ envCtx->unk_1A = 100;
+ envCtx->unk_21 = 1;
+ envCtx->unk_1F = 0;
+ envCtx->unk_20 = 2;
+ D_8011FB34 = 2;
+ envCtx->unk_22 = envCtx->unk_24 = 100;
+ envCtx->unk_DE++;
+ }
+ break;
+ case 1:
+ if (!gSkyboxBlendingEnabled && (envCtx->gloomySkyMode == 2)) {
+ gWeatherMode = 0;
+ envCtx->unk_19 = 1;
+ envCtx->unk_17 = 1;
+ envCtx->unk_18 = 0;
+ envCtx->unk_1A = 100;
+ envCtx->unk_21 = 1;
+ envCtx->unk_1F = 2;
+ envCtx->unk_20 = 0;
+ D_8011FB34 = 0;
+ envCtx->unk_22 = envCtx->unk_24 = 100;
+ envCtx->unk_EE[0] = 0;
+ envCtx->gloomySkyMode = 0;
+ envCtx->unk_DE = 0;
+ }
+ break;
+ }
+ }
+}
+
+#ifdef NON_MATCHING
+void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxContext* skyboxCtx) {
+ u32 size;
+ u8 i;
+ u8 newSkybox1Index = 0xFF;
+ u8 newSkybox2Index = 0xFF;
+ u8 skyboxBlend = 0;
+ struct_8011FC1C* entry;
+
+ if (skyboxId == SKYBOX_CUTSCENE_MAP) { // C18
+ envCtx->unk_17 = 3;
+
+ for (i = 0; i < ARRAY_COUNT(D_8011FC1C[envCtx->unk_17]); i++) {
+ entry = &D_8011FC1C[envCtx->unk_17][i];
+ if (((void)0, gSaveContext.skyboxTime) >= entry->startTime &&
+ (((void)0, gSaveContext.skyboxTime) < entry->endTime || entry->endTime == 0xFFFF)) {
+ if (entry->blend) {
+ envCtx->skyboxBlend =
+ Environment_LerpWeight(entry->endTime, entry->startTime, ((void)0, gSaveContext.skyboxTime)) *
+ 255;
+ } else {
+ envCtx->skyboxBlend = 0;
+ }
+ break;
+ }
+ }
+ } else if (skyboxId == SKYBOX_NORMAL_SKY && !envCtx->skyboxDisabled) { // d60 && d74
+ for (i = 0; i < ARRAY_COUNT(D_8011FC1C[envCtx->unk_17]); i++) {
+ entry = D_8011FC1C[envCtx->unk_17] + i;
+
+ if (((void)0, gSaveContext.skyboxTime) >= entry->startTime &&
+ (((void)0, gSaveContext.skyboxTime) < entry->endTime || entry->endTime == 0xFFFF)) {
+ gSkyboxBlendingEnabled = entry->blend;
+ newSkybox1Index = entry->skybox1Index;
+ newSkybox2Index = entry->skybox2Index;
+
+ if (entry->blend) {
+ entry = &D_8011FC1C[envCtx->unk_17][i];
+
+ skyboxBlend =
+ Environment_LerpWeight(entry->endTime, entry->startTime, ((void)0, gSaveContext.skyboxTime)) *
+ 255;
+ } else {
+ entry = &D_8011FC1C[envCtx->unk_17][i];
+ skyboxBlend =
+ Environment_LerpWeight(entry->endTime, entry->startTime, ((void)0, gSaveContext.skyboxTime)) *
+ 255;
+
+ skyboxBlend = (skyboxBlend < 0x80) ? 0xFF : 0;
+
+ if ((envCtx->unk_19 != 0) && (envCtx->unk_19 < 3)) {
+ envCtx->unk_19++;
+ skyboxBlend = 0;
+ }
+ }
+ break;
+ }
+ }
+
+ func_8006FB94(envCtx, skyboxBlend);
+
+ if (envCtx->unk_19 >= 3) {
+ newSkybox1Index = D_8011FC1C[envCtx->unk_17][i].skybox1Index;
+ newSkybox2Index = D_8011FC1C[envCtx->unk_18][i].skybox2Index;
+
+ skyboxBlend = ((f32)envCtx->unk_24 - envCtx->unk_1A--) / (f32)envCtx->unk_24 * 255;
+
+ if (envCtx->unk_1A <= 0) {
+ envCtx->unk_19 = 0;
+ envCtx->unk_17 = envCtx->unk_18;
+ }
+ }
+
+ if (newSkybox1Index == 0xFF) {
+ // "Environment VR data acquisition failed! Report to Sasaki!"
+ osSyncPrintf(VT_COL(RED, WHITE) "\n環境VRデータ取得失敗! ささきまでご報告を!" VT_RST);
+ }
+
+ if ((envCtx->skybox1Index != newSkybox1Index) && (envCtx->skyboxDmaState == SKYBOX_DMA_INACTIVE)) {
+ envCtx->skyboxDmaState = SKYBOX_DMA_FILE1_START;
+ size = gSkyboxFiles[newSkybox1Index].file.vromEnd - gSkyboxFiles[newSkybox1Index].file.vromStart;
+
+ osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[0],
+ gSkyboxFiles[newSkybox1Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ "../z_kankyo.c", 1264);
+ envCtx->skybox1Index = newSkybox1Index;
+ }
+
+ if ((envCtx->skybox2Index != newSkybox2Index) && (envCtx->skyboxDmaState == SKYBOX_DMA_INACTIVE)) {
+ envCtx->skyboxDmaState = SKYBOX_DMA_FILE2_START;
+ size = gSkyboxFiles[newSkybox2Index].file.vromEnd - gSkyboxFiles[newSkybox2Index].file.vromStart;
+
+ osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[1],
+ gSkyboxFiles[newSkybox2Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ "../z_kankyo.c", 1281);
+ envCtx->skybox2Index = newSkybox2Index;
+ }
+
+ if (envCtx->skyboxDmaState == SKYBOX_DMA_FILE1_DONE) {
+ envCtx->skyboxDmaState = SKYBOX_DMA_PAL1_START;
+
+ if (((newSkybox1Index & 4) >> 2) != (newSkybox1Index & 1)) { // & 1 at 12e8
+ size = gSkyboxFiles[newSkybox1Index].pallete.vromEnd - gSkyboxFiles[newSkybox1Index].pallete.vromStart;
+ osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2],
+ gSkyboxFiles[newSkybox1Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ "../z_kankyo.c", 1307);
+ } else {
+ size = gSkyboxFiles[newSkybox1Index].pallete.vromEnd - gSkyboxFiles[newSkybox1Index].pallete.vromStart;
+ osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2] + size,
+ gSkyboxFiles[newSkybox1Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ "../z_kankyo.c", 1320);
+ }
+ }
+
+ if (envCtx->skyboxDmaState == SKYBOX_DMA_FILE2_DONE) {
+ envCtx->skyboxDmaState = SKYBOX_DMA_PAL2_START;
+
+ if (((newSkybox2Index & 4) >> 2) != (newSkybox2Index & 1)) {
+ size = gSkyboxFiles[newSkybox2Index].pallete.vromEnd - gSkyboxFiles[newSkybox2Index].pallete.vromStart;
+ osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2],
+ gSkyboxFiles[newSkybox2Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ "../z_kankyo.c", 1342);
+ } else {
+ size = gSkyboxFiles[newSkybox2Index].pallete.vromEnd - gSkyboxFiles[newSkybox2Index].pallete.vromStart;
+ osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2] + size,
+ gSkyboxFiles[newSkybox2Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ "../z_kankyo.c", 1355);
+ }
+ }
+
+ if ((envCtx->skyboxDmaState == SKYBOX_DMA_FILE1_START) || (envCtx->skyboxDmaState == SKYBOX_DMA_FILE2_START)) {
+ if (osRecvMesg(&envCtx->loadQueue, 0, OS_MESG_NOBLOCK) == 0) {
+ envCtx->skyboxDmaState++;
+ }
+ } else if (envCtx->skyboxDmaState >= SKYBOX_DMA_FILE1_DONE) {
+ if (osRecvMesg(&envCtx->loadQueue, 0, OS_MESG_NOBLOCK) == 0) {
+ envCtx->skyboxDmaState = SKYBOX_DMA_INACTIVE;
+ }
+ }
+
+ envCtx->skyboxBlend = skyboxBlend;
+ }
+}
+#else
+#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s")
+#endif
+
+void Environment_EnableUnderwaterLights(GlobalContext* globalCtx, s32 waterLightsIndex) {
+ if (waterLightsIndex == 0x1F) {
+ waterLightsIndex = 0;
+ // "Underwater color is not set in the water poly data!"
+ osSyncPrintf(VT_COL(YELLOW, BLACK) "\n水ポリゴンデータに水中カラーが設定されておりません!" VT_RST);
+ }
+
+ if (!globalCtx->envCtx.indoors) {
+ D_8011FB34 = globalCtx->envCtx.unk_20;
+
+ if (globalCtx->envCtx.unk_1F != waterLightsIndex) {
+ globalCtx->envCtx.unk_1F = waterLightsIndex;
+ globalCtx->envCtx.unk_20 = waterLightsIndex;
+ }
+ } else {
+ globalCtx->envCtx.blendIndoorLights = false; // instantly switch to water lights
+ globalCtx->envCtx.unk_BF = waterLightsIndex;
+ }
+}
+
+void Environment_DisableUnderwaterLights(GlobalContext* globalCtx) {
+ if (!globalCtx->envCtx.indoors) {
+ globalCtx->envCtx.unk_1F = D_8011FB34;
+ globalCtx->envCtx.unk_20 = D_8011FB34;
+ } else {
+ globalCtx->envCtx.blendIndoorLights = false; // instantly switch to previous lights
+ globalCtx->envCtx.unk_BF = 0xFF;
+ globalCtx->envCtx.unk_D8 = 1.0f;
+ }
+}
+
+void Environment_PrintDebugInfo(GlobalContext* globalCtx, Gfx** gfx) {
+ GfxPrint printer;
+ u32 time;
+ s32 pad;
+
+ GfxPrint_Init(&printer);
+ GfxPrint_Open(&printer, *gfx);
+
+ GfxPrint_SetPos(&printer, 22, 7);
+ GfxPrint_SetColor(&printer, 155, 155, 255, 64);
+ GfxPrint_Printf(&printer, "T%03d ", ((void)0, gSaveContext.totalDays));
+ GfxPrint_Printf(&printer, "E%03d", ((void)0, gSaveContext.bgsDayCount));
+
+ GfxPrint_SetColor(&printer, 255, 255, 55, 64);
+ GfxPrint_SetPos(&printer, 22, 8);
+ GfxPrint_Printf(&printer, "%s", "ZELDATIME ");
+
+ GfxPrint_SetColor(&printer, 255, 255, 255, 64);
+ time = gSaveContext.dayTime;
+ GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * time / 60.0f));
+
+ if ((gSaveContext.dayTime & 0x1F) >= 0x10 || gTimeIncrement >= 6) {
+ GfxPrint_Printf(&printer, "%s", ":");
+ } else {
+ GfxPrint_Printf(&printer, "%s", " ");
+ }
+
+ time = gSaveContext.dayTime;
+ GfxPrint_Printf(&printer, "%02d", (s16)(24 * 60 / (f32)0x10000 * time) % 60);
+
+ GfxPrint_SetColor(&printer, 255, 255, 55, 64);
+ GfxPrint_SetPos(&printer, 22, 9);
+ GfxPrint_Printf(&printer, "%s", "VRBOXTIME ");
+
+ GfxPrint_SetColor(&printer, 255, 255, 255, 64);
+ time = ((void)0, gSaveContext.skyboxTime);
+ GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * time / 60.0f));
+
+ if ((((void)0, gSaveContext.skyboxTime) & 0x1F) >= 0x10 || gTimeIncrement >= 6) {
+ GfxPrint_Printf(&printer, "%s", ":");
+ } else {
+ GfxPrint_Printf(&printer, "%s", " ");
+ }
+
+ time = ((void)0, gSaveContext.skyboxTime);
+ GfxPrint_Printf(&printer, "%02d", (s16)(45.0f / 2048.0f * time) % 60);
+
+ GfxPrint_SetColor(&printer, 55, 255, 255, 64);
+ GfxPrint_SetPos(&printer, 22, 6);
+
+ if (gSaveContext.nightFlag) {
+ GfxPrint_Printf(&printer, "%s", "YORU"); // "night"
+ } else {
+ GfxPrint_Printf(&printer, "%s", "HIRU"); // "day"
+ }
+
+ *gfx = GfxPrint_Close(&printer);
+ GfxPrint_Destroy(&printer);
+}
+
+#define TIME_ENTRY_1F_1 (D_8011FB48[envCtx->unk_1F] + i)
+#define TIME_ENTRY_1F_2 (&D_8011FB48[envCtx->unk_1F][i])
+#define TIME_ENTRY_20 (&D_8011FB48[envCtx->unk_20][i])
+
+void func_80075B44(GlobalContext* globalCtx);
+void func_800766C4(GlobalContext* globalCtx);
+
+#ifdef NON_MATCHING
+// Reordering in light color and fog near and far blends
+void Environment_Update(GlobalContext* globalCtx, EnvironmentContext* envCtx, LightContext* lightCtx,
+ PauseContext* pauseCtx, MessageContext* msgCtx, GameOverContext* gameOverCtx,
+ GraphicsContext* gfxCtx) {
+ f32 sp8C;
+ f32 sp88 = 0.0f;
+ u16 i;
+ u16 j;
+ s16 lightAdj;
+ u16 time;
+ EnvLightSettings* lightSettingsList = globalCtx->envCtx.lightSettingsList; // 7C
+ s32 adjustment;
+
+ if ((((void)0, gSaveContext.gameMode) != 0) && (((void)0, gSaveContext.gameMode) != 3)) {
+ func_800AA16C(globalCtx);
+ }
+
+ if (pauseCtx->state == 0) {
+ if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.debugState == 0)) {
+ if (globalCtx->skyboxId == SKYBOX_NORMAL_SKY) {
+ globalCtx->skyboxCtx.rot.y -= 0.001f;
+ } else if (globalCtx->skyboxId == SKYBOX_CUTSCENE_MAP) {
+ globalCtx->skyboxCtx.rot.y -= 0.005f;
+ }
+ }
+
+ func_800766C4(globalCtx); // increments or decrements unk_EE[1] depending on some condition
+ func_80075B44(globalCtx); // updates bgm/sfx and other things as the day progresses
+
+ if (((void)0, gSaveContext.nextDayTime) >= 0xFF00 && ((void)0, gSaveContext.nextDayTime) != 0xFFFF) {
+ gSaveContext.nextDayTime -= 0x10;
+ osSyncPrintf("\nnext_zelda_time=[%x]", ((void)0, gSaveContext.nextDayTime));
+
+ if (((void)0, gSaveContext.nextDayTime) == 0xFF0E) {
+ func_80078884(NA_SE_EV_CHICKEN_CRY_M);
+ gSaveContext.nextDayTime = 0xFFFF;
+ } else if (((void)0, gSaveContext.nextDayTime) == 0xFF0D) {
+ func_800788CC(NA_SE_EV_DOG_CRY_EVENING);
+ gSaveContext.nextDayTime = 0xFFFF;
+ }
+ }
+
+ if ((pauseCtx->state == 0) && (gameOverCtx->state == GAMEOVER_INACTIVE)) {
+ if (((msgCtx->unk_E300 == 0) && (msgCtx->msgMode == 0)) || (((void)0, gSaveContext.gameMode) == 3)) {
+ if ((envCtx->unk_1A == 0) && !FrameAdvance_IsEnabled(globalCtx) &&
+ (globalCtx->transitionMode == 0 || ((void)0, gSaveContext.gameMode) != 0)) {
+
+ if (!((void)0, gSaveContext.nightFlag) || gTimeIncrement >= 0x190) {
+ gSaveContext.dayTime += gTimeIncrement;
+ } else {
+ gSaveContext.dayTime += gTimeIncrement * 2; // time moves twice as fast at night
+ }
+ }
+ }
+ }
+
+ //! @bug `gTimeIncrement` is unsigned, it can't be negative
+ if (((((void)0, gSaveContext.sceneSetupIndex) >= 5 || gTimeIncrement != 0) &&
+ ((void)0, gSaveContext.dayTime) > ((void)0, gSaveContext.skyboxTime)) ||
+ (((void)0, gSaveContext.dayTime) < 0xAAB || gTimeIncrement < 0)) {
+
+ gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime);
+ }
+ time = gSaveContext.dayTime;
+
+ if (time > 0xC000 || time < 0x4555) {
+ gSaveContext.nightFlag = true;
+ } else {
+ gSaveContext.nightFlag = false;
+ }
+
+ if (SREG(0) != 0 || CREG(2) != 0) {
+ Gfx* displayList;
+ Gfx* prevDisplayList;
+
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 1682);
+
+ prevDisplayList = POLY_OPA_DISP;
+ displayList = Graph_GfxPlusOne(POLY_OPA_DISP);
+ gSPDisplayList(OVERLAY_DISP++, displayList);
+ Environment_PrintDebugInfo(globalCtx, &displayList);
+ gSPEndDisplayList(displayList++);
+ Graph_BranchDlist(prevDisplayList, displayList);
+ POLY_OPA_DISP = displayList;
+ if (1) {}
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 1690);
+ }
+
+ if ((envCtx->unk_BF != 0xFF) && (envCtx->unk_DC != 2) && (envCtx->unk_BD != envCtx->unk_BF) &&
+ (envCtx->unk_D8 >= 1.0f) && (envCtx->unk_BF < 0x20)) {
+ envCtx->unk_BE = envCtx->unk_BD;
+ envCtx->unk_BD = envCtx->unk_BF;
+ envCtx->unk_D8 = 0.0f;
+ }
+
+ if (envCtx->unk_BF != 0xFE) {
+ if (!envCtx->indoors && (envCtx->unk_BF == 0xFF)) {
+ for (i = 0; i < ARRAY_COUNT(D_8011FB48[envCtx->unk_1F]); i++) {
+ if ((((void)0, gSaveContext.skyboxTime) >= TIME_ENTRY_1F_1->startTime) &&
+ ((((void)0, gSaveContext.skyboxTime) < TIME_ENTRY_1F_1->endTime) ||
+ TIME_ENTRY_1F_1->endTime == 0xFFFF)) {
+ u8 blend8[2];
+ s16 blend16[2];
+
+ sp8C = Environment_LerpWeight(TIME_ENTRY_1F_1->endTime, TIME_ENTRY_1F_1->startTime,
+ ((void)0, gSaveContext.skyboxTime));
+
+ D_8011FDCC = TIME_ENTRY_1F_2->unk_04 & 3;
+ D_8011FDD0 = TIME_ENTRY_1F_2->unk_05 & 3;
+ D_8011FDD4 = sp8C;
+
+ if (envCtx->unk_21) {
+ sp88 = ((f32)envCtx->unk_24 - envCtx->unk_22) / envCtx->unk_24;
+ envCtx->unk_22--;
+
+ if (envCtx->unk_22 <= 0) {
+ envCtx->unk_21 = 0;
+ envCtx->unk_1F = envCtx->unk_20;
+ }
+ }
+
+ for (j = 0; j < 3; j++) {
+ // blend ambient color
+ blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].ambientColor[j],
+ lightSettingsList[TIME_ENTRY_1F_2->unk_05].ambientColor[j], sp8C);
+ blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].ambientColor[j],
+ lightSettingsList[TIME_ENTRY_20->unk_05].ambientColor[j], sp8C);
+ envCtx->lightSettings.ambientColor[j] = LERP(blend8[0], blend8[1], sp88);
+ }
+
+ // set light1 direction for the sun
+ envCtx->lightSettings.light1Dir[0] =
+ -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f);
+ envCtx->lightSettings.light1Dir[1] =
+ Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f;
+ envCtx->lightSettings.light1Dir[2] =
+ (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f);
+
+ // set light2 direction for the moon
+ envCtx->lightSettings.light2Dir[0] = -envCtx->lightSettings.light1Dir[0];
+ envCtx->lightSettings.light2Dir[1] = -envCtx->lightSettings.light1Dir[1];
+ envCtx->lightSettings.light2Dir[2] = -envCtx->lightSettings.light1Dir[2];
+
+ for (j = 0; j < 3; j++) {
+ // blend light1Color
+ blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].light1Color[j],
+ lightSettingsList[TIME_ENTRY_1F_2->unk_05].light1Color[j], sp8C);
+ blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].light1Color[j],
+ lightSettingsList[TIME_ENTRY_20->unk_05].light1Color[j], sp8C);
+ envCtx->lightSettings.light1Color[j] = LERP(blend8[0], blend8[1], sp88);
+
+ // blend light2Color
+ blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].light2Color[j],
+ lightSettingsList[TIME_ENTRY_1F_2->unk_05].light2Color[j], sp8C);
+ blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].light2Color[j],
+ lightSettingsList[TIME_ENTRY_20->unk_05].light2Color[j], sp8C);
+ envCtx->lightSettings.light2Color[j] = LERP(blend8[0], blend8[1], sp88);
+ }
+
+ // blend fogColor
+ for (j = 0; j < 3; j++) {
+ blend8[0] = LERP(lightSettingsList[TIME_ENTRY_1F_2->unk_04].fogColor[j],
+ lightSettingsList[TIME_ENTRY_1F_2->unk_05].fogColor[j], sp8C);
+ blend8[1] = LERP(lightSettingsList[TIME_ENTRY_20->unk_04].fogColor[j],
+ lightSettingsList[TIME_ENTRY_20->unk_05].fogColor[j], sp8C);
+ envCtx->lightSettings.fogColor[j] = LERP(blend8[0], blend8[1], sp88);
+ }
+
+ blend16[0] = LERP32(lightSettingsList[TIME_ENTRY_1F_2->unk_04].fogNear & 0x3FF,
+ lightSettingsList[TIME_ENTRY_1F_2->unk_05].fogNear & 0x3FF, sp8C);
+ blend16[1] = LERP32(lightSettingsList[TIME_ENTRY_20->unk_04].fogNear & 0x3FF,
+ lightSettingsList[TIME_ENTRY_20->unk_05].fogNear & 0x3FF, sp8C);
+
+ envCtx->lightSettings.fogNear = LERP32(blend16[0], blend16[1], sp88);
+
+ blend16[0] = LERP32(lightSettingsList[TIME_ENTRY_1F_2->unk_04].fogFar,
+ lightSettingsList[TIME_ENTRY_1F_2->unk_05].fogFar, sp8C);
+ blend16[1] = LERP32(lightSettingsList[TIME_ENTRY_20->unk_04].fogFar,
+ lightSettingsList[TIME_ENTRY_20->unk_05].fogFar, sp8C);
+
+ envCtx->lightSettings.fogFar = LERP32(blend16[0], blend16[1], sp88);
+
+ if (TIME_ENTRY_20->unk_05 >= envCtx->numLightSettings) {
+ // "The color palette setting seems to be wrong!"
+ osSyncPrintf(VT_COL(RED, WHITE) "\nカラーパレットの設定がおかしいようです!" VT_RST);
+
+ // "Palette setting = [] Last palette number = []"
+ osSyncPrintf(VT_COL(RED, WHITE) "\n設定パレット=[%d] 最後パレット番号=[%d]\n" VT_RST,
+ TIME_ENTRY_20->unk_05, envCtx->numLightSettings - 1);
+ }
+ break;
+ }
+ }
+ } else {
+ // 3200 (l 1608)
+ if (!envCtx->blendIndoorLights) {
+ for (i = 0; i < 3; i++) {
+ envCtx->lightSettings.ambientColor[i] = lightSettingsList[envCtx->unk_BD].ambientColor[i];
+ envCtx->lightSettings.light1Dir[i] = lightSettingsList[envCtx->unk_BD].light1Dir[i];
+ envCtx->lightSettings.light1Color[i] = lightSettingsList[envCtx->unk_BD].light1Color[i];
+ envCtx->lightSettings.light2Dir[i] = lightSettingsList[envCtx->unk_BD].light2Dir[i];
+ envCtx->lightSettings.light2Color[i] = lightSettingsList[envCtx->unk_BD].light2Color[i];
+ envCtx->lightSettings.fogColor[i] = lightSettingsList[envCtx->unk_BD].fogColor[i];
+ }
+
+ envCtx->lightSettings.fogNear = lightSettingsList[envCtx->unk_BD].fogNear & 0x3FF;
+ envCtx->lightSettings.fogFar = lightSettingsList[envCtx->unk_BD].fogFar;
+ envCtx->unk_D8 = 1.0f;
+ } else {
+ // 3344 (l 1689)
+ u8 blendRate = (lightSettingsList[envCtx->unk_BD].fogNear >> 0xA) * 4;
+
+ if (blendRate == 0) {
+ blendRate++;
+ }
+
+ if (envCtx->unk_D6 != 0xFFFF) {
+ blendRate = envCtx->unk_D6;
+ }
+
+ if (envCtx->unk_DC == 0) {
+ envCtx->unk_D8 += blendRate / 255.0f;
+ }
+
+ if (envCtx->unk_D8 > 1.0f) {
+ envCtx->unk_D8 = 1.0f;
+ }
+
+ for (j = 0; j < 3; j++) {
+ envCtx->lightSettings.ambientColor[j] =
+ LERP(lightSettingsList[envCtx->unk_BE].ambientColor[j],
+ lightSettingsList[envCtx->unk_BD].ambientColor[j], envCtx->unk_D8);
+ envCtx->lightSettings.light1Dir[j] =
+ LERP32(lightSettingsList[envCtx->unk_BE].light1Dir[j],
+ lightSettingsList[envCtx->unk_BD].light1Dir[j], envCtx->unk_D8);
+ envCtx->lightSettings.light1Color[j] =
+ LERP(lightSettingsList[envCtx->unk_BE].light1Color[j],
+ lightSettingsList[envCtx->unk_BD].light1Color[j], envCtx->unk_D8);
+ envCtx->lightSettings.light2Dir[j] =
+ LERP32(lightSettingsList[envCtx->unk_BE].light2Dir[j],
+ lightSettingsList[envCtx->unk_BD].light2Dir[j], envCtx->unk_D8);
+ envCtx->lightSettings.light2Color[j] =
+ LERP(lightSettingsList[envCtx->unk_BE].light2Color[j],
+ lightSettingsList[envCtx->unk_BD].light2Color[j], envCtx->unk_D8);
+ envCtx->lightSettings.fogColor[j] =
+ LERP(lightSettingsList[envCtx->unk_BE].fogColor[j],
+ lightSettingsList[envCtx->unk_BD].fogColor[j], envCtx->unk_D8);
+ }
+ envCtx->lightSettings.fogNear =
+ LERP32(lightSettingsList[envCtx->unk_BE].fogNear & 0x3FF,
+ lightSettingsList[envCtx->unk_BD].fogNear & 0x3FF, envCtx->unk_D8);
+ envCtx->lightSettings.fogFar = LERP32(lightSettingsList[envCtx->unk_BE].fogFar,
+ lightSettingsList[envCtx->unk_BD].fogFar, envCtx->unk_D8);
+ }
+
+ if (envCtx->unk_BD >= envCtx->numLightSettings) {
+ // "The color palette seems to be wrong!"
+ osSyncPrintf(VT_FGCOL(RED) "\nカラーパレットがおかしいようです!");
+
+ // "Palette setting = [] Last palette number = []"
+ osSyncPrintf(VT_FGCOL(YELLOW) "\n設定パレット=[%d] パレット数=[%d]\n" VT_RST, envCtx->unk_BD,
+ envCtx->numLightSettings);
+ }
+ }
+ }
+
+ envCtx->blendIndoorLights = true;
+
+ // Apply lighting adjustments
+ for (i = 0; i < 3; i++) {
+ lightAdj = envCtx->lightSettings.ambientColor[i] + envCtx->adjAmbientColor[i];
+
+ if (lightAdj > 255) {
+ lightCtx->ambientColor[i] = 255;
+ } else if (lightAdj < 0) {
+ lightCtx->ambientColor[i] = 0;
+ } else {
+ lightCtx->ambientColor[i] = lightAdj;
+ }
+
+ lightAdj = envCtx->lightSettings.light1Color[i] + envCtx->adjLight1Color[i];
+
+ if (lightAdj > 255) {
+ envCtx->dirLight1.params.dir.color[i] = 255;
+ } else if (lightAdj < 0) {
+ envCtx->dirLight1.params.dir.color[i] = 0;
+ } else {
+ envCtx->dirLight1.params.dir.color[i] = lightAdj;
+ }
+
+ lightAdj = envCtx->lightSettings.light2Color[i] + envCtx->adjLight1Color[i];
+
+ if (lightAdj > 255) {
+ envCtx->dirLight2.params.dir.color[i] = 255;
+ } else if (lightAdj < 0) {
+ envCtx->dirLight2.params.dir.color[i] = 0;
+ } else {
+ envCtx->dirLight2.params.dir.color[i] = lightAdj;
+ }
+
+ lightAdj = envCtx->lightSettings.fogColor[i] + envCtx->adjFogColor[i];
+
+ if (lightAdj > 255) {
+ lightCtx->fogColor[i] = 255;
+ } else if (lightAdj < 0) {
+ lightCtx->fogColor[i] = 0;
+ } else {
+ lightCtx->fogColor[i] = lightAdj;
+ }
+ }
+
+ // Set both directional light directions
+ envCtx->dirLight1.params.dir.x = envCtx->lightSettings.light1Dir[0];
+ envCtx->dirLight1.params.dir.y = envCtx->lightSettings.light1Dir[1];
+ envCtx->dirLight1.params.dir.z = envCtx->lightSettings.light1Dir[2];
+
+ envCtx->dirLight2.params.dir.x = envCtx->lightSettings.light2Dir[0];
+ envCtx->dirLight2.params.dir.y = envCtx->lightSettings.light2Dir[1];
+ envCtx->dirLight2.params.dir.z = envCtx->lightSettings.light2Dir[2];
+
+ // Adjust fog near and far if necessary
+ adjustment = envCtx->lightSettings.fogNear + envCtx->adjFogNear;
+
+ if (adjustment <= 996) {
+ lightCtx->fogNear = adjustment;
+ } else {
+ lightCtx->fogNear = 996;
+ }
+
+ adjustment = envCtx->lightSettings.fogFar + envCtx->adjFogFar;
+
+ if (adjustment <= 12800) {
+ lightCtx->fogFar = adjustment;
+ } else {
+ lightCtx->fogFar = 12800;
+ }
+
+ // When environment debug is enabled, various environment related variables can be configured via the reg editor
+ if (R_ENV_DISABLE_DBG) {
+ R_ENV_AMBIENT_COLOR(0) = lightCtx->ambientColor[0];
+ R_ENV_AMBIENT_COLOR(1) = lightCtx->ambientColor[1];
+ R_ENV_AMBIENT_COLOR(2) = lightCtx->ambientColor[2];
+
+ R_ENV_LIGHT1_COLOR(0) = envCtx->dirLight1.params.dir.color[0];
+ R_ENV_LIGHT1_COLOR(1) = envCtx->dirLight1.params.dir.color[1];
+ R_ENV_LIGHT1_COLOR(2) = envCtx->dirLight1.params.dir.color[2];
+
+ R_ENV_LIGHT2_COLOR(0) = envCtx->dirLight2.params.dir.color[0];
+ R_ENV_LIGHT2_COLOR(1) = envCtx->dirLight2.params.dir.color[1];
+ R_ENV_LIGHT2_COLOR(2) = envCtx->dirLight2.params.dir.color[2];
+
+ R_ENV_FOG_COLOR(0) = lightCtx->fogColor[0];
+ R_ENV_FOG_COLOR(1) = lightCtx->fogColor[1];
+ R_ENV_FOG_COLOR(2) = lightCtx->fogColor[2];
+
+ R_ENV_FOG_FAR = lightCtx->fogFar;
+ R_ENV_FOG_NEAR = lightCtx->fogNear;
+
+ R_ENV_LIGHT1_DIR(0) = envCtx->dirLight1.params.dir.x;
+ R_ENV_LIGHT1_DIR(1) = envCtx->dirLight1.params.dir.y;
+ R_ENV_LIGHT1_DIR(2) = envCtx->dirLight1.params.dir.z;
+
+ R_ENV_LIGHT2_DIR(0) = envCtx->dirLight2.params.dir.x;
+ R_ENV_LIGHT2_DIR(1) = envCtx->dirLight2.params.dir.y;
+ R_ENV_LIGHT2_DIR(2) = envCtx->dirLight2.params.dir.z;
+
+ R_ENV_WIND_DIR(0) = envCtx->windDirection.x;
+ R_ENV_WIND_DIR(1) = envCtx->windDirection.y;
+ R_ENV_WIND_DIR(2) = envCtx->windDirection.z;
+ R_ENV_WIND_SPEED = envCtx->windSpeed;
+ } else {
+ lightCtx->ambientColor[0] = R_ENV_AMBIENT_COLOR(0);
+ lightCtx->ambientColor[1] = R_ENV_AMBIENT_COLOR(1);
+ lightCtx->ambientColor[2] = R_ENV_AMBIENT_COLOR(2);
+
+ envCtx->dirLight1.params.dir.color[0] = R_ENV_LIGHT1_COLOR(0);
+ envCtx->dirLight1.params.dir.color[1] = R_ENV_LIGHT1_COLOR(1);
+ envCtx->dirLight1.params.dir.color[2] = R_ENV_LIGHT1_COLOR(2);
+
+ envCtx->dirLight2.params.dir.color[0] = R_ENV_LIGHT2_COLOR(0);
+ envCtx->dirLight2.params.dir.color[1] = R_ENV_LIGHT2_COLOR(1);
+ envCtx->dirLight2.params.dir.color[2] = R_ENV_LIGHT2_COLOR(2);
+ lightCtx->fogColor[0] = R_ENV_FOG_COLOR(0);
+ lightCtx->fogColor[1] = R_ENV_FOG_COLOR(1);
+ lightCtx->fogColor[2] = R_ENV_FOG_COLOR(2);
+ lightCtx->fogNear = R_ENV_FOG_NEAR;
+ lightCtx->fogFar = R_ENV_FOG_FAR;
+
+ if (cREG(14)) {
+ R_ENV_LIGHT1_DIR(0) = Math_CosS(cREG(10)) * Math_CosS(cREG(11)) * 120.0f;
+ envCtx->dirLight1.params.dir.x = R_ENV_LIGHT1_DIR(0);
+ R_ENV_LIGHT1_DIR(1) = Math_CosS(cREG(10)) * Math_SinS(cREG(11)) * 120.0f;
+ envCtx->dirLight1.params.dir.y = R_ENV_LIGHT1_DIR(1);
+ R_ENV_LIGHT1_DIR(2) = Math_SinS(cREG(11)) * 120.0f;
+ envCtx->dirLight1.params.dir.z = R_ENV_LIGHT1_DIR(2);
+
+ R_ENV_LIGHT2_DIR(0) = Math_CosS(cREG(12)) * Math_CosS(cREG(13)) * 120.0f;
+ envCtx->dirLight2.params.dir.x = R_ENV_LIGHT2_DIR(0);
+ R_ENV_LIGHT2_DIR(1) = Math_CosS(cREG(12)) * Math_SinS(cREG(13)) * 120.0f;
+ envCtx->dirLight2.params.dir.y = R_ENV_LIGHT2_DIR(1);
+ R_ENV_LIGHT2_DIR(2) = Math_SinS(cREG(13)) * 120.0f;
+ envCtx->dirLight2.params.dir.z = R_ENV_LIGHT2_DIR(2);
+ } else {
+ envCtx->dirLight1.params.dir.x = R_ENV_LIGHT1_DIR(0);
+ envCtx->dirLight1.params.dir.y = R_ENV_LIGHT1_DIR(1);
+ envCtx->dirLight1.params.dir.z = R_ENV_LIGHT1_DIR(2);
+
+ envCtx->dirLight2.params.dir.x = R_ENV_LIGHT2_DIR(0);
+ envCtx->dirLight2.params.dir.y = R_ENV_LIGHT2_DIR(1);
+ envCtx->dirLight2.params.dir.z = R_ENV_LIGHT2_DIR(2);
+ }
+
+ envCtx->windDirection.x = R_ENV_WIND_DIR(0);
+ envCtx->windDirection.y = R_ENV_WIND_DIR(1);
+ envCtx->windDirection.z = R_ENV_WIND_DIR(2);
+ envCtx->windSpeed = R_ENV_WIND_SPEED;
+ }
+
+ if ((envCtx->dirLight1.params.dir.x == 0) && (envCtx->dirLight1.params.dir.y == 0) &&
+ (envCtx->dirLight1.params.dir.z == 0)) {
+ envCtx->dirLight1.params.dir.x = 1;
+ }
+
+ if ((envCtx->dirLight2.params.dir.x == 0) && (envCtx->dirLight2.params.dir.y == 0) &&
+ (envCtx->dirLight2.params.dir.z == 0)) {
+ envCtx->dirLight2.params.dir.x = 1;
+ }
+ }
+}
+#else
+#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_Update.s")
+#endif
+
+void Environment_DrawSunAndMoon(GlobalContext* globalCtx) {
+ f32 alpha;
+ f32 color;
+ f32 y;
+ f32 scale;
+ f32 temp;
+
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 2266);
+
+ if (globalCtx->csCtx.state != 0) {
+ Math_SmoothStepToF(&globalCtx->envCtx.sunPos.x,
+ -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f, 1.0f, 0.8f, 0.8f);
+ Math_SmoothStepToF(&globalCtx->envCtx.sunPos.y,
+ (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f, 1.0f, 0.8f, 0.8f);
+ //! @bug This should be z.
+ Math_SmoothStepToF(&globalCtx->envCtx.sunPos.y,
+ (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f, 1.0f, 0.8f, 0.8f);
+ } else {
+ globalCtx->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
+ globalCtx->envCtx.sunPos.y = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
+ globalCtx->envCtx.sunPos.z = +(Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f;
+ }
+
+ if (gSaveContext.entranceIndex != 0xCD || ((void)0, gSaveContext.sceneSetupIndex) != 5) {
+ Matrix_Translate(globalCtx->view.eye.x + globalCtx->envCtx.sunPos.x,
+ globalCtx->view.eye.y + globalCtx->envCtx.sunPos.y,
+ globalCtx->view.eye.z + globalCtx->envCtx.sunPos.z, MTXMODE_NEW);
+
+ y = globalCtx->envCtx.sunPos.y / 25.0f;
+ temp = y / 80.0f;
+
+ alpha = temp * 255.0f;
+ if (alpha < 0.0f) {
+ alpha = 0.0f;
+ }
+ if (alpha > 255.0f) {
+ alpha = 255.0f;
+ }
+
+ alpha = 255.0f - alpha;
+
+ color = temp;
+ if (color < 0.0f) {
+ color = 0.0f;
+ }
+
+ if (color > 1.0f) {
+ color = 1.0f;
+ }
+
+ gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, (u8)(color * 75.0f) + 180, (u8)(color * 155.0f) + 100, 255);
+ gDPSetEnvColor(POLY_OPA_DISP++, 255, (u8)(color * 255.0f), (u8)(color * 255.0f), alpha);
+
+ scale = (color * 2.0f) + 10.0f;
+ Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_kankyo.c", 2364), G_MTX_LOAD);
+ func_80093AD0(globalCtx->state.gfxCtx);
+ gSPDisplayList(POLY_OPA_DISP++, gSunDL);
+
+ Matrix_Translate(globalCtx->view.eye.x - globalCtx->envCtx.sunPos.x,
+ globalCtx->view.eye.y - globalCtx->envCtx.sunPos.y,
+ globalCtx->view.eye.z - globalCtx->envCtx.sunPos.z, MTXMODE_NEW);
+
+ color = -y / 120.0f;
+ color = CLAMP_MIN(color, 0.0f);
+
+ scale = -15.0f * color + 25.0f;
+ Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
+
+ temp = -y / 80.0f;
+ temp = CLAMP_MAX(temp, 1.0f);
+
+ alpha = temp * 255.0f;
+
+ if (alpha > 0.0f) {
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_kankyo.c", 2406), G_MTX_LOAD);
+ func_8009398C(globalCtx->state.gfxCtx);
+ gDPPipeSync(POLY_OPA_DISP++);
+ gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 240, 255, 180, alpha);
+ gDPSetEnvColor(POLY_OPA_DISP++, 80, 70, 20, alpha);
+ gSPDisplayList(POLY_OPA_DISP++, gMoonDL);
+ }
+ }
+
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 2429);
+}
+
+void Environment_DrawSunLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view,
+ GraphicsContext* gfxCtx, Vec3f pos, s32 unused) {
+ if ((globalCtx->envCtx.unk_EE[1] == 0) && (globalCtx->envCtx.unk_17 == 0)) {
+ Environment_DrawLensFlare(globalCtx, &globalCtx->envCtx, &globalCtx->view, globalCtx->state.gfxCtx, pos, 2000,
+ 370, Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f, 400, 1);
+ }
+}
+
+#ifdef NON_MATCHING
+// isOffScreen shouldn't be on the stack
+void Environment_DrawLensFlare(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* view,
+ GraphicsContext* gfxCtx, Vec3f pos, s32 unused, s16 arg6, f32 arg7, s16 arg8, u8 arg9) {
+ static f32 lensFlareScales[] = { 23.0f, 12.0f, 7.0f, 5.0f, 3.0f, 10.0f, 6.0f, 2.0f, 3.0f, 1.0f };
+
+ s16 i;
+ f32 tempX;
+ f32 tempY;
+ f32 tempZ; // 1A0 //
+ f32 lookDirX; // 19C
+ f32 lookDirY; // 198
+ f32 lookDirZ;
+ f32 tempX2; // 190 //
+ f32 tempY2;
+ f32 tempZ2;
+ f32 posDirX; // 184
+ f32 posDirY; // 180
+ f32 posDirZ; // 17C
+ f32 length;
+ f32 dist;
+ f32 halfPosX; // 170
+ f32 halfPosY; // 16C
+ f32 halfPosZ; // 168
+ f32 cosAngle; // 164
+ f32 pad160; // 160 //
+ f32 unk88Target; // 15C
+ u32 isOffScreen = false;
+ f32 alpha;
+ f32 scale; // 150 //
+ Vec3f screenPos; // 144
+ f32 fogInfluence; // 140 //
+ f32 temp; // 13C
+ f32 alphaScale;
+ Color_RGB8 lensFlareColors[] = {
+ // 118
+ { 155, 205, 255 }, // blue
+ { 255, 255, 205 }, // yellow
+ { 255, 255, 205 }, // yellow
+ { 255, 255, 205 }, // yellow
+ { 155, 255, 205 }, // green
+ { 205, 255, 255 }, // light blue
+ { 155, 155, 255 }, // dark blue
+ { 205, 175, 255 }, // purple
+ { 175, 255, 205 }, // light green
+ { 255, 155, 235 }, // pink
+ };
+ u32 lensFlareAlphas[] = {
+ // F0
+ 50, 10, 25, 40, 70, 30, 50, 70, 50, 40,
+ };
+ u32 lensFlareTypes[] = {
+ // C8
+ LENS_FLARE_RING, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1,
+ LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1, LENS_FLARE_CIRCLE1,
+ };
+
+ OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2516); // C4
+
+ dist = Math3D_Vec3f_DistXYZ(&pos, &view->eye) / 12.0f;
+
+ // compute a unit vector in the look direction
+ tempX = view->lookAt.x - view->eye.x;
+ tempY = view->lookAt.y - view->eye.y;
+ tempZ = view->lookAt.z - view->eye.z;
+
+ length = sqrtf(SQ(tempX) + SQ(tempY) + SQ(tempZ));
+
+ lookDirX = tempX / length;
+ lookDirY = tempY / length;
+ lookDirZ = tempZ / length;
+
+ // compute a position along the look vector half as far as pos
+ halfPosX = view->eye.x + lookDirX * (dist * 6.0f);
+ halfPosY = view->eye.y + lookDirY * (dist * 6.0f);
+ halfPosZ = view->eye.z + lookDirZ * (dist * 6.0f);
+
+ // compute a unit vector in the direction from halfPos to pos
+ tempX2 = pos.x - halfPosX;
+ tempY2 = pos.y - halfPosY;
+ tempZ2 = pos.z - halfPosZ;
+
+ length = sqrtf(SQ(tempX2) + SQ(tempY2) + SQ(tempZ2));
+
+ posDirX = tempX2 / length;
+ posDirY = tempY2 / length;
+ posDirZ = tempZ2 / length;
+
+ // compute the cosine of the angle between lookDir and posDir
+ cosAngle = (lookDirX * posDirX + lookDirY * posDirY + lookDirZ * posDirZ) /
+ sqrtf((SQ(lookDirX) + SQ(lookDirY) + SQ(lookDirZ)) * (SQ(posDirX) + SQ(posDirY) + SQ(posDirZ)));
+
+ unk88Target = cosAngle * 3.5f;
+ unk88Target = CLAMP_MAX(unk88Target, 1.0f);
+
+ if (arg9 == 0) {
+ unk88Target = cosAngle;
+ }
+
+ if (cosAngle < 0.0f) {
+
+ } else {
+ if (arg9) {
+ func_800C016C(globalCtx, &pos, &screenPos);
+ D_8015FD7E = (s16)screenPos.x;
+ D_8015FD80 = (s16)screenPos.y - 5.0f;
+ if (D_8011FB44 != 0xFFFC || screenPos.x < 0.0f || screenPos.y < 0.0f || screenPos.x > SCREEN_WIDTH ||
+ screenPos.y > SCREEN_HEIGHT) {
+ isOffScreen = true;
+ }
+ }
+
+ for (i = 0; i < ARRAY_COUNT(lensFlareTypes); i++) {
+ Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_NEW);
+
+ if (arg9) {
+ temp = Environment_LerpWeight(60, 15, globalCtx->view.fovy);
+ }
+
+ Matrix_Translate(-posDirX * i * dist, -posDirY * i * dist, -posDirZ * i * dist, MTXMODE_APPLY);
+ scale = lensFlareScales[i] * cosAngle;
+
+ if (arg9) {
+ scale *= 0.001 * (arg6 + 630.0f * temp);
+ } else {
+ scale *= 0.0001f * arg6 * (2.0f * dist);
+ }
+
+ Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
+
+ alpha = arg7 / 10.0f;
+ alpha = CLAMP_MAX(alpha, 1.0f);
+ alpha = alpha * lensFlareAlphas[i];
+ alpha = CLAMP_MIN(alpha, 0.0f);
+
+ fogInfluence = (996 - globalCtx->lightCtx.fogNear) / 50.0f;
+
+ fogInfluence = CLAMP_MAX(fogInfluence, 1.0f);
+
+ alpha *= 1.0f - fogInfluence;
+
+ if (!isOffScreen) { // 5088
+ Math_SmoothStepToF(&envCtx->unk_88, unk88Target, 0.5f, 0.05f, 0.001f);
+ } else {
+ Math_SmoothStepToF(&envCtx->unk_88, 0.0f, 0.5f, 0.05f, 0.001f);
+ }
+
+ POLY_XLU_DISP = func_800947AC(POLY_XLU_DISP++);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, lensFlareColors[i].r, lensFlareColors[i].g, lensFlareColors[i].b,
+ alpha * envCtx->unk_88);
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_kankyo.c", 2662),
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0,
+ 0, PRIMITIVE, 0);
+ gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE);
+ gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE);
+ gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
+
+ switch (lensFlareTypes[i]) {
+ case LENS_FLARE_CIRCLE0:
+ case LENS_FLARE_CIRCLE1:
+ gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL);
+ break;
+ case LENS_FLARE_RING:
+ gSPDisplayList(POLY_XLU_DISP++, gLensFlareRingDL);
+ break;
+ }
+ }
+
+ alphaScale = cosAngle - (1.5f - cosAngle);
+
+ if (arg8) {
+ if (alphaScale > 0.0f) {
+ POLY_XLU_DISP = func_800937C0(POLY_XLU_DISP);
+
+ alpha = arg7 / 10.0f;
+ alpha = CLAMP_MAX(alpha, 1.0f);
+ alpha = alpha * arg8;
+ alpha = CLAMP_MIN(alpha, 0.0f);
+
+ fogInfluence = (996 - globalCtx->lightCtx.fogNear) / 50.0f;
+
+ fogInfluence = CLAMP_MAX(fogInfluence, 1.0f);
+
+ alpha *= 1.0f - fogInfluence;
+
+ gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE);
+ gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE);
+
+ if (!isOffScreen) {
+ Math_SmoothStepToF(&envCtx->unk_84, alpha * alphaScale, 0.5f, 50.0f, 0.1f);
+ } else {
+ Math_SmoothStepToF(&envCtx->unk_84, 0.0f, 0.5f, 50.0f, 0.1f);
+ }
+
+ temp = arg7 / 120.0f;
+ temp = CLAMP_MIN(temp, 0.0f);
+
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, (u8)(temp * 75.0f) + 180, (u8)(temp * 155.0f) + 100,
+ envCtx->unk_84);
+ gDPFillRectangle(POLY_XLU_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
+ } else {
+ envCtx->unk_84 = 0.0f;
+ }
+ }
+ }
+
+ CLOSE_DISPS(gfxCtx, "../z_kankyo.c", 2750);
+}
+#else
+f32 D_8011FDD8[] = { 23.0f, 12.0f, 7.0f, 5.0f, 3.0f, 10.0f, 6.0f, 2.0f, 3.0f, 1.0f };
+Color_RGB8 D_8011FE00[] = {
+ { 155, 205, 255 }, { 255, 255, 205 }, { 255, 255, 205 }, { 255, 255, 205 }, { 155, 255, 205 },
+ { 205, 255, 255 }, { 155, 155, 255 }, { 205, 175, 255 }, { 175, 255, 205 }, { 255, 155, 235 },
+};
+u32 D_8011FE20[] = { 0x32, 0xA, 0x19, 0x28, 0x46, 0x1E, 0x32, 0x46, 0x32, 0x28 };
+u32 D_8011FE48[] = { 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawLensFlare.s")
+#endif
+
+f32 func_800746DC(void) {
return Rand_ZeroOne() - 0.5f;
}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074704.s")
+#ifdef NON_MATCHING
+// float regalloc, but appears to be equivalent
+void Environment_DrawRain(GlobalContext* globalCtx, View* view, GraphicsContext* gfxCtx) {
+ s16 i;
+ Vec3f vec;
+ f32 length;
+ Vec3f norm;
+ f32 rotX;
+ f32 rotY;
+ f32 tempY;
+ f32 x50;
+ f32 y50;
+ f32 z50;
+ f32 x280;
+ f32 z280;
+ f32 temp;
+ f32 temp2;
+ Vec3f unused = { 0.0f, 0.0f, 0.0f };
+ Vec3f windDirection = { 0.0f, 0.0f, 0.0f };
+ Player* player = GET_PLAYER(globalCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074CE8.s")
+ if (!(globalCtx->cameraPtrs[0]->unk_14C & 0x100) && (globalCtx->envCtx.unk_EE[2] == 0)) {
+ OPEN_DISPS(gfxCtx, "../z_kankyo.c", 2799);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074D6C.s")
+ vec.x = view->lookAt.x - view->eye.x;
+ vec.y = view->lookAt.y - view->eye.y;
+ vec.z = view->lookAt.z - view->eye.z;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80074FF4.s")
+ length = sqrtf(SQXYZ(vec));
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800750C0.s")
+ norm.x = vec.x / length;
+ norm.y = vec.y / length;
+ norm.z = vec.z / length;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800753C4.s")
+ x50 = view->eye.x + norm.x * 50.0f;
+ y50 = view->eye.y + norm.y * 50.0f;
+ z50 = view->eye.z + norm.z * 50.0f;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8007542C.s")
+ x280 = view->eye.x + norm.x * 280.0f;
+ z280 = view->eye.z + norm.z * 280.0f;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800758AC.s")
+ if (globalCtx->envCtx.unk_EE[1]) {
+ gDPPipeSync(POLY_XLU_DISP++);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 150, 255, 255, 30);
+ POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 20);
+ }
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80075B44.s")
+ // draw rain drops
+ for (i = 0; i < globalCtx->envCtx.unk_EE[1]; i++) {
+ vec.x = Rand_ZeroOne();
+ vec.y = Rand_ZeroOne();
+ vec.z = Rand_ZeroOne();
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80075E68.s")
+ Matrix_Translate((vec.x - 0.7f) * 100.0f + x50, (vec.y - 0.7f) * 100.0f + y50,
+ (vec.z - 0.7f) * 100.0f + z50, MTXMODE_NEW);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_InitGameOverLights.s")
+ temp = windDirection.x = globalCtx->envCtx.windDirection.x;
+ windDirection.y = globalCtx->envCtx.windDirection.y;
+ temp2 = windDirection.z = globalCtx->envCtx.windDirection.z;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_FadeInGameOverLights.s")
+ tempY = windDirection.y + 500.0f + Rand_ZeroOne() * 200.0f;
+ // float regalloc is bad around here.
+ z50 = temp2;
+ length = sqrtf(SQ(temp) + SQ(z50));
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Kankyo_FadeOutGameOverLights.s")
+ gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
+ rotX = Math_Atan2F(length, -tempY);
+ rotY = Math_Atan2F(z50, temp);
+ Matrix_RotateY(-rotY, MTXMODE_APPLY);
+ Matrix_RotateX(M_PI / 2 - rotX, MTXMODE_APPLY);
+ Matrix_Scale(0.4f, 1.2f, 0.4f, MTXMODE_APPLY);
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_kankyo.c", 2887),
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, gRaindropDL);
+ }
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800766C4.s")
+ // draw droplet rings on the ground
+ if (player->actor.world.pos.y < view->eye.y) {
+ u8 firstDone = false;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8007672C.s")
+ for (i = 0; i < globalCtx->envCtx.unk_EE[1]; i++) {
+ if (!firstDone) {
+ func_80093D84(gfxCtx);
+ gDPSetEnvColor(POLY_XLU_DISP++, 155, 155, 155, 0);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 120);
+ firstDone++;
+ }
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80076934.s")
+ Matrix_Translate(func_800746DC() * 280.0f + x280, player->actor.world.pos.y + 2.0f,
+ func_800746DC() * 280.0f + z280, MTXMODE_NEW);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800773A8.s")
+ if ((LINK_IS_ADULT && ((player->actor.world.pos.y + 2.0f - view->eye.y) > -48.0f)) ||
+ (!LINK_IS_ADULT && ((player->actor.world.pos.y + 2.0f - view->eye.y) > -30.0f))) {
+ Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY);
+ } else {
+ Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY);
+ }
-s32 func_800775CC() {
- return gSaveContext.unk_18;
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_kankyo.c", 2940),
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, gEffShockwaveDL);
+ }
+ }
+
+ CLOSE_DISPS(gfxCtx, "../z_kankyo.c", 2946);
+ }
+}
+#else
+Vec3f D_8011FE70 = { 0.0f, 0.0f, 0.0f };
+Vec3f D_8011FE7C = { 0.0f, 0.0f, 0.0f };
+#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_DrawRain.s")
+#endif
+
+void func_80074CE8(GlobalContext* globalCtx, u32 arg1) {
+ if ((globalCtx->envCtx.unk_BD != arg1) && (globalCtx->envCtx.unk_D8 >= 1.0f) &&
+ (globalCtx->envCtx.unk_BF == 0xFF)) {
+ if (arg1 > 30) {
+ arg1 = 0;
+ }
+
+ globalCtx->envCtx.unk_D8 = 0.0f;
+ globalCtx->envCtx.unk_BE = globalCtx->envCtx.unk_BD;
+ globalCtx->envCtx.unk_BD = arg1;
+ }
}
-void func_800775D8() {
- gSaveContext.unk_18 = 0;
+/**
+ * Draw color filters over the skybox. There are two filters.
+ * The first uses the global fog color, and an alpha calculated with `fogNear`.
+ * This filter draws unconditionally for skybox 29 at full alpha.
+ * (note: skybox 29 is unused in the original game)
+ * For the rest of the skyboxes it will draw if fogNear is less than 980.
+ *
+ * The second filter uses a custom color specified in `skyboxFilterColor`
+ * and can be enabled with `customSkyboxFilter`.
+ *
+ * An example usage of a filter is to dim the skybox in cloudy conditions.
+ */
+void Environment_DrawSkyboxFilters(GlobalContext* globalCtx) {
+ if (((globalCtx->skyboxId != SKYBOX_NONE) && (globalCtx->lightCtx.fogNear < 980)) ||
+ (globalCtx->skyboxId == SKYBOX_UNSET_1D)) {
+ f32 alpha;
+
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3032);
+
+ func_800938B4(globalCtx->state.gfxCtx);
+
+ alpha = (1000 - globalCtx->lightCtx.fogNear) * 0.02f;
+
+ if (globalCtx->skyboxId == SKYBOX_UNSET_1D) {
+ alpha = 1.0f;
+ }
+
+ if (alpha > 1.0f) {
+ alpha = 1.0f;
+ }
+
+ gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, globalCtx->lightCtx.fogColor[0], globalCtx->lightCtx.fogColor[1],
+ globalCtx->lightCtx.fogColor[2], 255.0f * alpha);
+ gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
+
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3043);
+ }
+
+ if (globalCtx->envCtx.customSkyboxFilter) {
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3048);
+
+ func_800938B4(globalCtx->state.gfxCtx);
+ gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, globalCtx->envCtx.skyboxFilterColor[0],
+ globalCtx->envCtx.skyboxFilterColor[1], globalCtx->envCtx.skyboxFilterColor[2],
+ globalCtx->envCtx.skyboxFilterColor[3]);
+ gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
+
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3056);
+ }
}
-s32 func_800775E4() {
- return gSaveContext.numDays;
+void Environment_DrawLightningFlash(GlobalContext* globalCtx, u8 red, u8 green, u8 blue, u8 alpha) {
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3069);
+
+ func_800938B4(globalCtx->state.gfxCtx);
+ gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, red, green, blue, alpha);
+ gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
+
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3079);
+}
+
+void Environment_UpdateLightningStrike(GlobalContext* globalCtx) {
+ if (globalCtx->envCtx.lightningMode != LIGHTNING_MODE_OFF) {
+ switch (gLightningStrike.state) {
+ case LIGHTNING_STRIKE_WAIT:
+ // every frame theres a 10% chance of the timer advancing 50 units
+ if (Rand_ZeroOne() < 0.1f) {
+ gLightningStrike.delayTimer += 50.0f;
+ }
+
+ gLightningStrike.delayTimer += Rand_ZeroOne();
+
+ if (gLightningStrike.delayTimer > 500.0f) {
+ gLightningStrike.flashRed = 200;
+ gLightningStrike.flashGreen = 200;
+ gLightningStrike.flashBlue = 255;
+ gLightningStrike.flashAlphaTarget = 200;
+
+ gLightningStrike.delayTimer = 0.0f;
+ Environment_AddLightningBolts(globalCtx,
+ (u8)(Rand_ZeroOne() * (ARRAY_COUNT(sLightningBolts) - 0.1f)) + 1);
+ sLightningFlashAlpha = 0;
+ gLightningStrike.state++;
+ }
+ break;
+ case LIGHTNING_STRIKE_START:
+ gLightningStrike.flashRed = 200;
+ gLightningStrike.flashGreen = 200;
+ gLightningStrike.flashBlue = 255;
+
+ globalCtx->envCtx.adjAmbientColor[0] += 80;
+ globalCtx->envCtx.adjAmbientColor[1] += 80;
+ globalCtx->envCtx.adjAmbientColor[2] += 100;
+
+ sLightningFlashAlpha += 100;
+
+ if (sLightningFlashAlpha >= gLightningStrike.flashAlphaTarget) {
+ func_800F6D58(15, 0, 0);
+ gLightningStrike.state++;
+ gLightningStrike.flashAlphaTarget = 0;
+ }
+ break;
+ case LIGHTNING_STRIKE_END:
+ if (globalCtx->envCtx.adjAmbientColor[0] > 0) {
+ globalCtx->envCtx.adjAmbientColor[0] -= 10;
+ globalCtx->envCtx.adjAmbientColor[1] -= 10;
+ }
+
+ if (globalCtx->envCtx.adjAmbientColor[2] > 0) {
+ globalCtx->envCtx.adjAmbientColor[2] -= 10;
+ }
+
+ sLightningFlashAlpha -= 10;
+
+ if (sLightningFlashAlpha <= gLightningStrike.flashAlphaTarget) {
+ globalCtx->envCtx.adjAmbientColor[0] = 0;
+ globalCtx->envCtx.adjAmbientColor[1] = 0;
+ globalCtx->envCtx.adjAmbientColor[2] = 0;
+
+ gLightningStrike.state = LIGHTNING_STRIKE_WAIT;
+
+ if (globalCtx->envCtx.lightningMode == LIGHTNING_MODE_LAST) {
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_OFF;
+ }
+ }
+ break;
+ }
+ }
+
+ if (gLightningStrike.state != LIGHTNING_STRIKE_WAIT) {
+ Environment_DrawLightningFlash(globalCtx, gLightningStrike.flashRed, gLightningStrike.flashGreen,
+ gLightningStrike.flashBlue, sLightningFlashAlpha);
+ }
+}
+
+/**
+ * Request the number of lightning bolts specified by `num`
+ * Note: only 3 lightning bolts can be active at the same time.
+ */
+void Environment_AddLightningBolts(GlobalContext* globalCtx, u8 num) {
+ s16 boltsAdded = 0;
+ s16 i;
+
+ for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) {
+ if (sLightningBolts[i].state == LIGHTNING_BOLT_INACTIVE) {
+ sLightningBolts[i].state = LIGHTNING_BOLT_START;
+ boltsAdded++;
+
+ if (boltsAdded >= num) {
+ break;
+ }
+ }
+ }
+}
+
+/**
+ * Draw any active lightning bolt entries contained in `sLightningBolts`
+ */
+void Environment_DrawLightning(GlobalContext* globalCtx, s32 unused) {
+ static void* lightningTextures[] = {
+ gEffLightning1Tex, gEffLightning2Tex, gEffLightning3Tex,
+ gEffLightning4Tex, gEffLightning5Tex, gEffLightning6Tex,
+ gEffLightning7Tex, gEffLightning8Tex, NULL,
+ };
+ s16 i;
+ f32 dx;
+ f32 dz;
+ f32 x;
+ f32 z;
+ s32 pad[2];
+ Vec3f unused1 = { 0.0f, 0.0f, 0.0f };
+ Vec3f unused2 = { 0.0f, 0.0f, 0.0f };
+
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3253);
+
+ for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) {
+ switch (sLightningBolts[i].state) {
+ case LIGHTNING_BOLT_START:
+ dx = globalCtx->view.lookAt.x - globalCtx->view.eye.x;
+ dz = globalCtx->view.lookAt.z - globalCtx->view.eye.z;
+
+ x = dx / sqrtf(SQ(dx) + SQ(dz));
+ z = dz / sqrtf(SQ(dx) + SQ(dz));
+
+ sLightningBolts[i].pos.x = globalCtx->view.eye.x + x * 9500.0f;
+ sLightningBolts[i].pos.y = Rand_ZeroOne() * 1000.0f + 4000.0f;
+ sLightningBolts[i].pos.z = globalCtx->view.eye.z + z * 9500.0f;
+
+ sLightningBolts[i].offset.x = (Rand_ZeroOne() - 0.5f) * 5000.0f;
+ sLightningBolts[i].offset.y = 0.0f;
+ sLightningBolts[i].offset.z = (Rand_ZeroOne() - 0.5f) * 5000.0f;
+
+ sLightningBolts[i].textureIndex = 0;
+ sLightningBolts[i].pitch = (Rand_ZeroOne() - 0.5f) * 40.0f;
+ sLightningBolts[i].roll = (Rand_ZeroOne() - 0.5f) * 40.0f;
+ sLightningBolts[i].delayTimer = 3 * (i + 1);
+ sLightningBolts[i].state++;
+ break;
+ case LIGHTNING_BOLT_WAIT:
+ sLightningBolts[i].delayTimer--;
+
+ if (sLightningBolts[i].delayTimer <= 0) {
+ sLightningBolts[i].state++;
+ }
+ break;
+ case LIGHTNING_BOLT_DRAW:
+ if (sLightningBolts[i].textureIndex < 7) {
+ sLightningBolts[i].textureIndex++;
+ } else {
+ sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE;
+ }
+ break;
+ }
+
+ if (sLightningBolts[i].state == LIGHTNING_BOLT_DRAW) {
+ Matrix_Translate(sLightningBolts[i].pos.x + sLightningBolts[i].offset.x,
+ sLightningBolts[i].pos.y + sLightningBolts[i].offset.y,
+ sLightningBolts[i].pos.z + sLightningBolts[i].offset.z, MTXMODE_NEW);
+ Matrix_RotateX(sLightningBolts[i].pitch * (M_PI / 180.0f), MTXMODE_APPLY);
+ Matrix_RotateZ(sLightningBolts[i].roll * (M_PI / 180.0f), MTXMODE_APPLY);
+ Matrix_Scale(22.0f, 100.0f, 22.0f, MTXMODE_APPLY);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 128);
+ gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 255, 128);
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_kankyo.c", 3333),
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(lightningTextures[sLightningBolts[i].textureIndex]));
+ func_80094C50(globalCtx->state.gfxCtx);
+ gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, gEffLightningDL);
+ }
+ }
+
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 3353);
+}
+
+void func_800758AC(GlobalContext* globalCtx) {
+ globalCtx->envCtx.unk_E0 = 0xFF;
+
+ // both lost woods exits on the bridge from kokiri to hyrule field
+ if (((void)0, gSaveContext.entranceIndex) == 0x4DE || ((void)0, gSaveContext.entranceIndex) == 0x5E0) {
+ func_800F6FB4(4);
+ } else if (((void)0, gSaveContext.unk_140E) != 0) {
+ if (!func_80077600()) {
+ Audio_QueueSeqCmd((s32)((void)0, gSaveContext.unk_140E));
+ }
+ gSaveContext.unk_140E = 0;
+ } else if (globalCtx->soundCtx.seqIndex == 0x7F) {
+ if (globalCtx->soundCtx.nightSeqIndex == 0x13) {
+ return;
+ }
+ if (((void)0, gSaveContext.nightSeqIndex) != globalCtx->soundCtx.nightSeqIndex) {
+ func_800F6FB4(globalCtx->soundCtx.nightSeqIndex);
+ }
+ } else if (globalCtx->soundCtx.nightSeqIndex == 0x13) {
+ // "BGM Configuration"
+ osSyncPrintf("\n\n\nBGM設定game_play->sound_info.BGM=[%d] old_bgm=[%d]\n\n", globalCtx->soundCtx.seqIndex,
+ ((void)0, gSaveContext.seqIndex));
+ if (((void)0, gSaveContext.seqIndex) != globalCtx->soundCtx.seqIndex) {
+ func_800F5550(globalCtx->soundCtx.seqIndex);
+ }
+ } else if (((void)0, gSaveContext.dayTime) > 0x4AAA && ((void)0, gSaveContext.dayTime) < 0xB71D) {
+ if (((void)0, gSaveContext.seqIndex) != globalCtx->soundCtx.seqIndex) {
+ func_800F5550(globalCtx->soundCtx.seqIndex);
+ }
+
+ globalCtx->envCtx.unk_E0 = 1;
+ } else {
+ if (((void)0, gSaveContext.nightSeqIndex) != globalCtx->soundCtx.nightSeqIndex) {
+ func_800F6FB4(globalCtx->soundCtx.nightSeqIndex);
+ }
+
+ if (((void)0, gSaveContext.dayTime) > 0xB71C && ((void)0, gSaveContext.dayTime) < 0xCAAC) {
+ globalCtx->envCtx.unk_E0 = 3;
+ } else if (((void)0, gSaveContext.dayTime) > 0xCAAC || ((void)0, gSaveContext.dayTime) < 0x4555) {
+ globalCtx->envCtx.unk_E0 = 5;
+ } else {
+ globalCtx->envCtx.unk_E0 = 7;
+ }
+ }
+
+ osSyncPrintf("\n-----------------\n", ((void)0, gSaveContext.unk_140E));
+ osSyncPrintf("\n 強制BGM=[%d]", ((void)0, gSaveContext.unk_140E)); // "Forced BGM"
+ osSyncPrintf("\n BGM=[%d]", globalCtx->soundCtx.seqIndex);
+ osSyncPrintf("\n エンブ=[%d]", globalCtx->soundCtx.nightSeqIndex);
+ osSyncPrintf("\n status=[%d]", globalCtx->envCtx.unk_E0);
+
+ Audio_SetEnvReverb(globalCtx->roomCtx.curRoom.echo);
+}
+
+// updates bgm/sfx and other things as the day progresses
+void func_80075B44(GlobalContext* globalCtx) {
+ switch (globalCtx->envCtx.unk_E0) {
+ case 0:
+ func_800F6D58(86, 1, 0);
+ if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) {
+ osSyncPrintf("\n\n\nNa_StartMorinigBgm\n\n");
+ func_800F5510(globalCtx->soundCtx.seqIndex);
+ }
+ globalCtx->envCtx.unk_E0++;
+ break;
+ case 1:
+ if (gSaveContext.dayTime > 0xB71C) {
+ if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) {
+ Audio_QueueSeqCmd(0x10F000FF);
+ }
+ globalCtx->envCtx.unk_E0++;
+ }
+ break;
+ case 2:
+ if (gSaveContext.dayTime > 0xC000) {
+ func_800788CC(NA_SE_EV_DOG_CRY_EVENING);
+ globalCtx->envCtx.unk_E0++;
+ }
+ break;
+ case 3:
+ if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) {
+ func_800F6FB4(globalCtx->soundCtx.nightSeqIndex);
+ func_800F6D58(1, 1, 1);
+ }
+ globalCtx->envCtx.unk_E0++;
+ break;
+ case 4:
+ if (gSaveContext.dayTime > 0xCAAB) {
+ globalCtx->envCtx.unk_E0++;
+ }
+ break;
+ case 5:
+ func_800F6D58(1, 1, 0);
+ if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) {
+ func_800F6D58(36, 1, 1);
+ }
+ globalCtx->envCtx.unk_E0++;
+ break;
+ case 6:
+ if ((gSaveContext.dayTime < 0xCAAC) && (gSaveContext.dayTime > 0x4555)) {
+ gSaveContext.totalDays++;
+ gSaveContext.bgsDayCount++;
+ gSaveContext.dogIsLost = true;
+ func_80078884(NA_SE_EV_CHICKEN_CRY_M);
+ if ((Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) ||
+ Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) &&
+ globalCtx->csCtx.state == 0 && !Player_InCsMode(globalCtx)) {
+ func_8010B680(globalCtx, 0x3066, NULL);
+ }
+ globalCtx->envCtx.unk_E0++;
+ }
+ break;
+ case 7:
+ func_800F6D58(36, 1, 0);
+ if (globalCtx->envCtx.unk_EE[0] == 0 && globalCtx->envCtx.unk_F2[0] == 0) {
+ func_800F6D58(86, 1, 1);
+ }
+ globalCtx->envCtx.unk_E0++;
+ break;
+ case 8:
+ if (gSaveContext.dayTime > 0x4AAB) {
+ globalCtx->envCtx.unk_E0 = 0;
+ }
+ break;
+ }
+}
+
+void Environment_DrawCustomLensFlare(GlobalContext* globalCtx) {
+ Vec3f pos;
+
+ if (gCustomLensFlareOn) {
+ pos.x = gCustomLensFlarePos.x;
+ pos.y = gCustomLensFlarePos.y;
+ pos.z = gCustomLensFlarePos.z;
+
+ Environment_DrawLensFlare(globalCtx, &globalCtx->envCtx, &globalCtx->view, globalCtx->state.gfxCtx, pos,
+ D_8015FD04, D_8015FD06, D_8015FD08, D_8015FD0C, 0);
+ }
+}
+
+void Environment_InitGameOverLights(GlobalContext* globalCtx) {
+ s32 pad;
+ Player* player = GET_PLAYER(globalCtx);
+
+ sGameOverLightsIntensity = 0;
+
+ Lights_PointNoGlowSetInfo(&sNGameOverLightInfo, (s16)player->actor.world.pos.x - 10.0f,
+ (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z - 10.0f, 0, 0, 0,
+ 255);
+ sNGameOverLightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &sNGameOverLightInfo);
+
+ Lights_PointNoGlowSetInfo(&sSGameOverLightInfo, (s16)player->actor.world.pos.x + 10.0f,
+ (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f, 0, 0, 0,
+ 255);
+ sSGameOverLightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &sSGameOverLightInfo);
+}
+
+void Environment_FadeInGameOverLights(GlobalContext* globalCtx) {
+ Player* player = GET_PLAYER(globalCtx);
+ s16 i;
+
+ Lights_PointNoGlowSetInfo(&sNGameOverLightInfo, (s16)player->actor.world.pos.x - 10.0f,
+ (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z - 10.0f,
+ sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255);
+ Lights_PointNoGlowSetInfo(&sSGameOverLightInfo, (s16)player->actor.world.pos.x + 10.0f,
+ (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f,
+ sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255);
+
+ if (sGameOverLightsIntensity < 254) {
+ sGameOverLightsIntensity += 2;
+ }
+
+ if (func_800C0CB8(globalCtx)) {
+ for (i = 0; i < 3; i++) {
+ if (globalCtx->envCtx.adjAmbientColor[i] > -255) {
+ globalCtx->envCtx.adjAmbientColor[i] -= 12;
+ globalCtx->envCtx.adjLight1Color[i] -= 12;
+ }
+ globalCtx->envCtx.adjFogColor[i] = -255;
+ }
+
+ if (globalCtx->envCtx.lightSettings.fogFar + globalCtx->envCtx.adjFogFar > 900) {
+ globalCtx->envCtx.adjFogFar -= 100;
+ }
+
+ if (globalCtx->envCtx.lightSettings.fogNear + globalCtx->envCtx.adjFogNear > 950) {
+ globalCtx->envCtx.adjFogNear -= 10;
+ }
+ } else {
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 0;
+ globalCtx->envCtx.screenFillColor[3] = sGameOverLightsIntensity;
+ }
+}
+
+void Environment_FadeOutGameOverLights(GlobalContext* globalCtx) {
+ Player* player = GET_PLAYER(globalCtx);
+ s16 i;
+
+ if (sGameOverLightsIntensity >= 3) {
+ sGameOverLightsIntensity -= 3;
+ } else {
+ sGameOverLightsIntensity = 0;
+ }
+
+ if (sGameOverLightsIntensity == 1) {
+ LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, sNGameOverLightNode);
+ LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, sSGameOverLightNode);
+ } else if (sGameOverLightsIntensity >= 2) {
+ Lights_PointNoGlowSetInfo(&sNGameOverLightInfo, (s16)player->actor.world.pos.x - 10.0f,
+ (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z - 10.0f,
+ sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255);
+ Lights_PointNoGlowSetInfo(&sSGameOverLightInfo, (s16)player->actor.world.pos.x + 10.0f,
+ (s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f,
+ sGameOverLightsIntensity, sGameOverLightsIntensity, sGameOverLightsIntensity, 255);
+ }
+
+ if (func_800C0CB8(globalCtx)) {
+ for (i = 0; i < 3; i++) {
+ Math_SmoothStepToS(&globalCtx->envCtx.adjAmbientColor[i], 0, 5, 12, 1);
+ Math_SmoothStepToS(&globalCtx->envCtx.adjLight1Color[i], 0, 5, 12, 1);
+ globalCtx->envCtx.adjFogColor[i] = 0;
+ }
+ globalCtx->envCtx.adjFogFar = 0;
+ globalCtx->envCtx.adjFogNear = 0;
+ } else {
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 0;
+ globalCtx->envCtx.screenFillColor[3] = sGameOverLightsIntensity;
+ if (sGameOverLightsIntensity == 0) {
+ globalCtx->envCtx.fillScreen = false;
+ }
+ }
+}
+
+void func_800766C4(GlobalContext* globalCtx) {
+ u8 max = MAX(globalCtx->envCtx.unk_EE[0], globalCtx->envCtx.unk_F2[0]);
+
+ if (globalCtx->envCtx.unk_EE[1] != max && ((globalCtx->state.frames % 8) == 0)) {
+ if (globalCtx->envCtx.unk_EE[1] < max) {
+ globalCtx->envCtx.unk_EE[1] += 2;
+ } else {
+ globalCtx->envCtx.unk_EE[1] -= 2;
+ }
+ }
+}
+
+void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, u8 alpha, u8 drawFlags) {
+ if (alpha != 0) {
+ OPEN_DISPS(gfxCtx, "../z_kankyo.c", 3835);
+
+ if (drawFlags & FILL_SCREEN_OPA) {
+ POLY_OPA_DISP = func_800937C0(POLY_OPA_DISP);
+ gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, red, green, blue, alpha);
+ gDPSetAlphaDither(POLY_OPA_DISP++, G_AD_DISABLE);
+ gDPSetColorDither(POLY_OPA_DISP++, G_CD_DISABLE);
+ gDPFillRectangle(POLY_OPA_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
+ }
+
+ if (drawFlags & FILL_SCREEN_XLU) {
+ POLY_XLU_DISP = func_800937C0(POLY_XLU_DISP);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, red, green, blue, alpha);
+
+ if ((u32)alpha == 255) {
+ gDPSetRenderMode(POLY_XLU_DISP++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
+ }
+
+ gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_DISABLE);
+ gDPSetColorDither(POLY_XLU_DISP++, G_CD_DISABLE);
+ gDPFillRectangle(POLY_XLU_DISP++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
+ }
+
+ CLOSE_DISPS(gfxCtx, "../z_kankyo.c", 3863);
+ }
+}
+
+Color_RGB8 sSandstormPrimColors[] = {
+ { 210, 156, 85 },
+ { 255, 200, 100 },
+ { 225, 160, 50 },
+ { 105, 90, 40 },
+};
+
+Color_RGB8 sSandstormEnvColors[] = {
+ { 155, 106, 35 },
+ { 200, 150, 50 },
+ { 170, 110, 0 },
+ { 50, 40, 0 },
+};
+
+void Environment_DrawSandstorm(GlobalContext* globalCtx, u8 sandstormState) {
+ s32 primA1;
+ s32 envA1;
+ s32 primA = globalCtx->envCtx.sandstormPrimA;
+ s32 envA = globalCtx->envCtx.sandstormEnvA;
+ Color_RGBA8 primColor;
+ Color_RGBA8 envColor;
+ s32 pad;
+ f32 sp98;
+ u16 sp96;
+ u16 sp94;
+ u16 sp92;
+
+ switch (sandstormState) {
+ case 3:
+ if ((globalCtx->sceneNum == SCENE_SPOT13) && (globalCtx->roomCtx.curRoom.num == 0)) {
+ envA1 = 0;
+ primA1 = (globalCtx->envCtx.sandstormEnvA > 128) ? 255 : globalCtx->envCtx.sandstormEnvA >> 1;
+ } else {
+ primA1 = globalCtx->state.frames % 128;
+ if (primA1 > 64) {
+ primA1 = 128 - primA1;
+ }
+ primA1 += 73;
+ envA1 = 128;
+ }
+ break;
+ case 1:
+ primA1 = 255;
+ envA1 = (globalCtx->envCtx.sandstormPrimA >= 255) ? 255 : 128;
+ break;
+ case 2:
+ envA1 = 128;
+ if (globalCtx->envCtx.sandstormEnvA > 128) {
+ primA1 = 0xFF;
+ } else {
+ primA1 = globalCtx->state.frames % 128;
+ if (primA1 > 64) {
+ primA1 = 128 - primA1;
+ }
+ primA1 += 73;
+ }
+ if ((primA1 >= primA) && (primA1 != 255)) {
+ globalCtx->envCtx.sandstormState = 3;
+ }
+ break;
+ case 4:
+ envA1 = 0;
+ primA1 = (globalCtx->envCtx.sandstormEnvA > 128) ? 255 : globalCtx->envCtx.sandstormEnvA >> 1;
+
+ if (primA == 0) {
+ globalCtx->envCtx.sandstormState = 0;
+ }
+ break;
+ }
+
+ if (ABS(primA - primA1) < 9) {
+ primA = primA1;
+ } else if (primA1 < primA) {
+ primA = primA - 9;
+ } else {
+ primA = primA + 9;
+ }
+ if (ABS(envA - envA1) < 9) {
+ envA = envA1;
+ } else if (envA1 < envA) {
+ envA = envA - 9;
+ } else {
+ envA = envA + 9;
+ }
+ globalCtx->envCtx.sandstormPrimA = primA;
+ globalCtx->envCtx.sandstormEnvA = envA;
+
+ sp98 = (512.0f - (primA + envA)) * (3.0f / 128.0f);
+ if (sp98 > 6.0f) {
+ sp98 = 6.0f;
+ }
+ if (globalCtx->envCtx.indoors || (globalCtx->envCtx.unk_BF != 0xFF)) {
+ primColor.r = sSandstormPrimColors[1].r;
+ primColor.g = sSandstormPrimColors[1].g;
+ primColor.b = sSandstormPrimColors[1].b;
+ envColor.r = sSandstormEnvColors[1].r;
+ envColor.g = sSandstormEnvColors[1].g;
+ envColor.b = sSandstormEnvColors[1].b;
+ } else if (D_8011FDCC == D_8011FDD0) {
+ primColor.r = sSandstormPrimColors[D_8011FDCC].r;
+ primColor.g = sSandstormPrimColors[D_8011FDCC].g;
+ primColor.b = sSandstormPrimColors[D_8011FDCC].b;
+ envColor.r = sSandstormEnvColors[D_8011FDCC].r;
+ envColor.g = sSandstormEnvColors[D_8011FDCC].g;
+ envColor.b = sSandstormEnvColors[D_8011FDCC].b;
+ } else {
+ primColor.r = (s32)F32_LERP(sSandstormPrimColors[D_8011FDCC].r, sSandstormPrimColors[D_8011FDD0].r, D_8011FDD4);
+ primColor.g = (s32)F32_LERP(sSandstormPrimColors[D_8011FDCC].g, sSandstormPrimColors[D_8011FDD0].g, D_8011FDD4);
+ primColor.b = (s32)F32_LERP(sSandstormPrimColors[D_8011FDCC].b, sSandstormPrimColors[D_8011FDD0].b, D_8011FDD4);
+ envColor.r = (s32)F32_LERP(sSandstormEnvColors[D_8011FDCC].r, sSandstormEnvColors[D_8011FDD0].r, D_8011FDD4);
+ envColor.g = (s32)F32_LERP(sSandstormEnvColors[D_8011FDCC].g, sSandstormEnvColors[D_8011FDD0].g, D_8011FDD4);
+ envColor.b = (s32)F32_LERP(sSandstormEnvColors[D_8011FDCC].b, sSandstormEnvColors[D_8011FDD0].b, D_8011FDD4);
+ }
+
+ envColor.r = ((envColor.r * sp98) + ((6.0f - sp98) * primColor.r)) * (1.0f / 6.0f);
+ envColor.g = ((envColor.g * sp98) + ((6.0f - sp98) * primColor.g)) * (1.0f / 6.0f);
+ envColor.b = ((envColor.b * sp98) + ((6.0f - sp98) * primColor.b)) * (1.0f / 6.0f);
+
+ sp96 = (s32)(D_8015FDB0 * (11.0f / 6.0f));
+ sp94 = (s32)(D_8015FDB0 * (9.0f / 6.0f));
+ sp92 = (s32)(D_8015FDB0 * (6.0f / 6.0f));
+
+ OPEN_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 4044);
+
+ POLY_XLU_DISP = func_80093F34(POLY_XLU_DISP);
+ gDPSetAlphaDither(POLY_XLU_DISP++, G_AD_NOISE);
+ gDPSetColorDither(POLY_XLU_DISP++, G_CD_NOISE);
+ gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, primColor.r, primColor.g, primColor.b, globalCtx->envCtx.sandstormPrimA);
+ gDPSetEnvColor(POLY_XLU_DISP++, envColor.r, envColor.g, envColor.b, globalCtx->envCtx.sandstormEnvA);
+ gSPSegment(POLY_XLU_DISP++, 0x08,
+ Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (u32)sp96 % 0x1000, 0, 0x200, 0x20, 1, (u32)sp94 % 0x1000,
+ 0xFFF - ((u32)sp92 % 0x1000), 0x100, 0x40));
+ gDPSetTextureLUT(POLY_XLU_DISP++, G_TT_NONE);
+ gSPDisplayList(POLY_XLU_DISP++, gFieldSandstormDL);
+
+ CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_kankyo.c", 4068);
+
+ D_8015FDB0 += (s32)sp98;
+}
+
+void Environment_AdjustLights(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
+ f32 temp;
+ s32 i;
+
+ if (globalCtx->roomCtx.curRoom.unk_03 != 5 && func_800C0CB8(globalCtx)) {
+ arg1 = CLAMP_MIN(arg1, 0.0f);
+ arg1 = CLAMP_MAX(arg1, 1.0f);
+
+ temp = arg1 - arg3;
+ if (arg1 < arg3) {
+ temp = 0.0f;
+ }
+
+ globalCtx->envCtx.adjFogNear = (arg2 - globalCtx->envCtx.lightSettings.fogNear) * temp;
+
+ if (arg1 == 0.0f) {
+ for (i = 0; i < 3; i++) {
+ globalCtx->envCtx.adjFogColor[i] = 0;
+ }
+ } else {
+ temp = arg1 * 5.0f;
+ temp = CLAMP_MAX(temp, 1.0f);
+
+ for (i = 0; i < 3; i++) {
+ globalCtx->envCtx.adjFogColor[i] = -(s16)(globalCtx->envCtx.lightSettings.fogColor[i] * temp);
+ }
+ }
+
+ if (arg4 <= 0.0f) {
+ return;
+ }
+
+ arg1 *= arg4;
+
+ for (i = 0; i < 3; i++) {
+ globalCtx->envCtx.adjAmbientColor[i] = -(s16)(globalCtx->envCtx.lightSettings.ambientColor[i] * arg1);
+ globalCtx->envCtx.adjLight1Color[i] = -(s16)(globalCtx->envCtx.lightSettings.light1Color[i] * arg1);
+ }
+ }
+}
+
+s32 Environment_GetBgsDayCount(void) {
+ return gSaveContext.bgsDayCount;
+}
+
+void Environment_ClearBgsDayCount(void) {
+ gSaveContext.bgsDayCount = 0;
+}
+
+s32 Environment_GetTotalDays(void) {
+ return gSaveContext.totalDays;
}
void func_800775F0(u16 arg0) {
gSaveContext.unk_140E = arg0;
}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80077600.s")
+s32 func_80077600(void) {
+ s32 ret = false;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80077624.s")
+ if (gSaveContext.unk_140E == 0xFFFF) {
+ ret = true;
+ }
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_80077684.s")
+ return ret;
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800776E4.s")
+void func_80077624(GlobalContext* globalCtx) {
+ if (globalCtx->soundCtx.nightSeqIndex == 19) {
+ func_800F6FB4(5);
+ } else {
+ func_800F6FB4(globalCtx->soundCtx.nightSeqIndex);
+ }
+
+ func_800F6D58(14, 1, 1);
+ func_800F6D58(15, 1, 1);
+}
+
+void func_80077684(GlobalContext* globalCtx) {
+ func_800F6D58(14, 1, 0);
+ func_800F6D58(15, 1, 0);
+
+ if (func_800FA0B4(0) == 1) {
+ gSaveContext.seqIndex = 0x80;
+ func_800758AC(globalCtx);
+ }
+}
+
+void Environment_WarpSongLeave(GlobalContext* globalCtx) {
+ gWeatherMode = 0;
+ gSaveContext.cutsceneIndex = 0;
+ gSaveContext.respawnFlag = -3;
+ globalCtx->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex;
+ globalCtx->sceneLoadFlag = 0x14;
+ globalCtx->fadeTransition = 3;
+ gSaveContext.nextTransition = 3;
+
+ switch (globalCtx->nextEntranceIndex) {
+ case 0x147:
+ Flags_SetEventChkInf(0xB9);
+ break;
+ case 0x0102:
+ Flags_SetEventChkInf(0xB1);
+ break;
+ case 0x0123:
+ Flags_SetEventChkInf(0xB8);
+ break;
+ case 0x00E4:
+ Flags_SetEventChkInf(0xB6);
+ break;
+ case 0x0053:
+ Flags_SetEventChkInf(0xA7);
+ break;
+ case 0x00FC:
+ break;
+ }
+}
diff --git a/src/code/z_lights.c b/src/code/z_lights.c
index 8ea2955240..3067b712b1 100644
--- a/src/code/z_lights.c
+++ b/src/code/z_lights.c
@@ -198,29 +198,29 @@ s32 Lights_FreeNode(LightNode* light) {
void LightContext_Init(GlobalContext* globalCtx, LightContext* lightCtx) {
LightContext_InitList(globalCtx, lightCtx);
LightContext_SetAmbientColor(lightCtx, 80, 80, 80);
- func_8007A698(lightCtx, 0, 0, 0, 0x3E4, 0x3200);
+ LightContext_SetFog(lightCtx, 0, 0, 0, 996, 12800);
bzero(&sLightsBuffer, sizeof(sLightsBuffer));
}
void LightContext_SetAmbientColor(LightContext* lightCtx, u8 r, u8 g, u8 b) {
- lightCtx->ambient.r = r;
- lightCtx->ambient.g = g;
- lightCtx->ambient.b = b;
+ lightCtx->ambientColor[0] = r;
+ lightCtx->ambientColor[1] = g;
+ lightCtx->ambientColor[2] = b;
}
-void func_8007A698(LightContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 numLights, s16 arg5) {
- lightCtx->unk_07 = arg1;
- lightCtx->unk_08 = arg2;
- lightCtx->unk_09 = arg3;
- lightCtx->unk_0A = numLights;
- lightCtx->unk_0C = arg5;
+void LightContext_SetFog(LightContext* lightCtx, u8 r, u8 g, u8 b, s16 fogNear, s16 fogFar) {
+ lightCtx->fogColor[0] = r;
+ lightCtx->fogColor[1] = g;
+ lightCtx->fogColor[2] = b;
+ lightCtx->fogNear = fogNear;
+ lightCtx->fogFar = fogFar;
}
/**
* Allocate a new Lights group and initilize the ambient color with that provided by LightContext
*/
Lights* LightContext_NewLights(LightContext* lightCtx, GraphicsContext* gfxCtx) {
- return Lights_New(gfxCtx, lightCtx->ambient.r, lightCtx->ambient.g, lightCtx->ambient.b);
+ return Lights_New(gfxCtx, lightCtx->ambientColor[0], lightCtx->ambientColor[1], lightCtx->ambientColor[2]);
}
void LightContext_InitList(GlobalContext* globalCtx, LightContext* lightCtx) {
diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c
index fe13ea7675..0aedbe8cd2 100644
--- a/src/code/z_map_exp.c
+++ b/src/code/z_map_exp.c
@@ -212,8 +212,8 @@ void Map_InitRoomData(GlobalContext* globalCtx, s16 room) {
interfaceCtx->mapRoomNum = 0;
}
- if (gSaveContext.unk_1422 != 2) {
- gSaveContext.unk_1422 = 0;
+ if (gSaveContext.sunsSongState != SUNSSONG_SPEED_TIME) {
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
}
}
@@ -559,7 +559,7 @@ void Map_Update(GlobalContext* globalCtx) {
osSyncPrintf("階層切替=%x\n", interfaceCtx->mapRoomNum);
osSyncPrintf(VT_RST);
Map_InitData(globalCtx, interfaceCtx->mapRoomNum);
- gSaveContext.unk_1422 = 0;
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
Map_SavePlayerInitialInfo(globalCtx);
}
}
diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c
index 8e3dda4c8d..e896cddccc 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -3789,7 +3789,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
void Interface_Update(GlobalContext* globalCtx) {
static u8 D_80125B60 = 0;
- static s16 D_80125B64 = 0;
+ static s16 sPrevTimeIncrement = 0;
MessageContext* msgCtx = &globalCtx->msgCtx;
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
Player* player = GET_PLAYER(globalCtx);
@@ -4098,30 +4098,32 @@ void Interface_Update(GlobalContext* globalCtx) {
}
}
- if (gSaveContext.unk_1422 != 0) {
- if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.unk_1422 == 1)) {
+ if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) {
+ // exit out of ocarina mode after suns song finishes playing
+ if ((msgCtx->unk_E3F0 != 0x31) && (gSaveContext.sunsSongState == SUNSSONG_START)) {
globalCtx->msgCtx.unk_E3EE = 4;
}
- if (globalCtx->envCtx.unk_02 != 0) {
- if (gSaveContext.unk_1422 != 2) {
+ // handle suns song in areas where time moves
+ if (globalCtx->envCtx.timeIncrement != 0) {
+ if (gSaveContext.sunsSongState != SUNSSONG_SPEED_TIME) {
D_80125B60 = 0;
if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) {
D_80125B60 = 1;
}
- gSaveContext.unk_1422 = 2;
- D_80125B64 = D_8011FB40;
- D_8011FB40 = 400;
+ gSaveContext.sunsSongState = SUNSSONG_SPEED_TIME;
+ sPrevTimeIncrement = gTimeIncrement;
+ gTimeIncrement = 400;
} else if (D_80125B60 == 0) {
if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) {
- gSaveContext.unk_1422 = 0;
- D_8011FB40 = D_80125B64;
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
+ gTimeIncrement = sPrevTimeIncrement;
globalCtx->msgCtx.unk_E3EE = 4;
}
} else if (gSaveContext.dayTime > 0xC001) {
- gSaveContext.unk_1422 = 0;
- D_8011FB40 = D_80125B64;
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
+ gTimeIncrement = sPrevTimeIncrement;
globalCtx->msgCtx.unk_E3EE = 4;
}
} else if ((globalCtx->roomCtx.curRoom.unk_03 != 1) && (interfaceCtx->restrictions.sunsSong != 3)) {
@@ -4145,12 +4147,12 @@ void Interface_Update(GlobalContext* globalCtx) {
gSaveContext.respawnFlag = -2;
globalCtx->nextEntranceIndex = gSaveContext.entranceIndex;
globalCtx->sceneLoadFlag = 0x14;
- gSaveContext.unk_1422 = 0;
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
func_800F6964(30);
gSaveContext.seqIndex = 0xFF;
gSaveContext.nightSeqIndex = 0xFF;
} else {
- gSaveContext.unk_1422 = 3;
+ gSaveContext.sunsSongState = SUNSSONG_SPECIAL;
}
}
}
diff --git a/src/code/z_play.c b/src/code/z_play.c
index 52f72c83da..6d45532ae4 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -135,9 +135,9 @@ void func_800BC88C(GlobalContext* globalCtx) {
globalCtx->transitionCtx.transitionType = -1;
}
-Gfx* func_800BC8A0(GlobalContext* globalCtx, Gfx* gfx) {
- return Gfx_SetFog2(gfx, globalCtx->lightCtx.unk_07, globalCtx->lightCtx.unk_08, globalCtx->lightCtx.unk_09, 0,
- globalCtx->lightCtx.unk_0A, 1000);
+Gfx* Gameplay_SetFog(GlobalContext* globalCtx, Gfx* gfx) {
+ return Gfx_SetFog2(gfx, globalCtx->lightCtx.fogColor[0], globalCtx->lightCtx.fogColor[1],
+ globalCtx->lightCtx.fogColor[2], 0, globalCtx->lightCtx.fogNear, 1000);
}
void Gameplay_Destroy(GameState* thisx) {
@@ -246,7 +246,7 @@ void Gameplay_Init(GameState* thisx) {
if (gSaveContext.nextDayTime != 0xFFFFU) {
gSaveContext.dayTime = gSaveContext.nextDayTime;
- gSaveContext.environmentTime = gSaveContext.nextDayTime;
+ gSaveContext.skyboxTime = gSaveContext.nextDayTime;
}
if (gSaveContext.dayTime > 0xC000 || gSaveContext.dayTime < 0x4555) {
@@ -306,8 +306,8 @@ void Gameplay_Init(GameState* thisx) {
if (gSaveContext.nextDayTime != 0xFFFF) {
if (gSaveContext.nextDayTime == 0x8001) {
- gSaveContext.numDays++;
- gSaveContext.unk_18++;
+ gSaveContext.totalDays++;
+ gSaveContext.bgsDayCount++;
gSaveContext.dogIsLost = true;
if (Inventory_ReplaceItem(globalCtx, ITEM_WEIRD_EGG, ITEM_CHICKEN) ||
Inventory_ReplaceItem(globalCtx, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO)) {
@@ -606,21 +606,21 @@ void Gameplay_Update(GlobalContext* globalCtx) {
switch (globalCtx->transitionMode) {
case 4:
D_801614C8 = 0;
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[0] = 0xA0;
- globalCtx->envCtx.unk_E2[1] = 0xA0;
- globalCtx->envCtx.unk_E2[2] = 0xA0;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = 160;
+ globalCtx->envCtx.screenFillColor[1] = 160;
+ globalCtx->envCtx.screenFillColor[2] = 160;
if (globalCtx->sceneLoadFlag != -0x14) {
- globalCtx->envCtx.unk_E2[3] = 0;
+ globalCtx->envCtx.screenFillColor[3] = 0;
globalCtx->transitionMode = 5;
} else {
- globalCtx->envCtx.unk_E2[3] = 0xFF;
+ globalCtx->envCtx.screenFillColor[3] = 255;
globalCtx->transitionMode = 6;
}
break;
case 5:
- globalCtx->envCtx.unk_E2[3] = (D_801614C8 / 20.0f) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (D_801614C8 / 20.0f) * 255.0f;
if (D_801614C8 >= 20 && 1) {
globalCtx->state.running = 0;
SET_NEXT_GAMESTATE(&globalCtx->state, Gameplay_Init, GlobalContext);
@@ -633,13 +633,13 @@ void Gameplay_Update(GlobalContext* globalCtx) {
break;
case 6:
- globalCtx->envCtx.unk_E2[3] = (1 - D_801614C8 / 20.0f) * 255.0f;
+ globalCtx->envCtx.screenFillColor[3] = (1 - D_801614C8 / 20.0f) * 255.0f;
if (D_801614C8 >= 20 && 1) {
gTrnsnUnkState = 0;
R_UPDATE_RATE = 3;
globalCtx->sceneLoadFlag = 0;
globalCtx->transitionMode = 0;
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.fillScreen = false;
} else {
D_801614C8++;
}
@@ -647,15 +647,15 @@ void Gameplay_Update(GlobalContext* globalCtx) {
case 7:
D_801614C8 = 0;
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[0] = 0xAA;
- globalCtx->envCtx.unk_E2[1] = 0xA0;
- globalCtx->envCtx.unk_E2[2] = 0x96;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = 170;
+ globalCtx->envCtx.screenFillColor[1] = 160;
+ globalCtx->envCtx.screenFillColor[2] = 150;
if (globalCtx->sceneLoadFlag != -0x14) {
- globalCtx->envCtx.unk_E2[3] = 0;
+ globalCtx->envCtx.screenFillColor[3] = 0;
globalCtx->transitionMode = 5;
} else {
- globalCtx->envCtx.unk_E2[3] = 0xFF;
+ globalCtx->envCtx.screenFillColor[3] = 255;
globalCtx->transitionMode = 6;
}
break;
@@ -683,12 +683,12 @@ void Gameplay_Update(GlobalContext* globalCtx) {
case 12:
if (globalCtx->sceneLoadFlag != -0x14) {
- globalCtx->envCtx.unk_E6 = 1;
+ globalCtx->envCtx.sandstormState = 1;
globalCtx->transitionMode = 13;
} else {
- globalCtx->envCtx.unk_E6 = 2;
- globalCtx->envCtx.unk_E7 = 0xFF;
- globalCtx->envCtx.unk_E8 = 0xFF;
+ globalCtx->envCtx.sandstormState = 2;
+ globalCtx->envCtx.sandstormPrimA = 255;
+ globalCtx->envCtx.sandstormEnvA = 255;
globalCtx->transitionMode = 13;
}
break;
@@ -697,14 +697,14 @@ void Gameplay_Update(GlobalContext* globalCtx) {
Audio_PlaySoundGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
if (globalCtx->sceneLoadFlag == -0x14) {
- if (globalCtx->envCtx.unk_E7 < 0x6E) {
+ if (globalCtx->envCtx.sandstormPrimA < 110) {
gTrnsnUnkState = 0;
R_UPDATE_RATE = 3;
globalCtx->sceneLoadFlag = 0;
globalCtx->transitionMode = 0;
}
} else {
- if (globalCtx->envCtx.unk_E8 == 0xFF) {
+ if (globalCtx->envCtx.sandstormEnvA == 255) {
globalCtx->state.running = 0;
SET_NEXT_GAMESTATE(&globalCtx->state, Gameplay_Init, GlobalContext);
gSaveContext.entranceIndex = globalCtx->nextEntranceIndex;
@@ -716,9 +716,9 @@ void Gameplay_Update(GlobalContext* globalCtx) {
case 14:
if (globalCtx->sceneLoadFlag == -0x14) {
- globalCtx->envCtx.unk_E6 = 4;
- globalCtx->envCtx.unk_E7 = 0xFF;
- globalCtx->envCtx.unk_E8 = 0xFF;
+ globalCtx->envCtx.sandstormState = 4;
+ globalCtx->envCtx.sandstormPrimA = 255;
+ globalCtx->envCtx.sandstormEnvA = 255;
// "It's here!!!!!!!!!"
LOG_STRING("来た!!!!!!!!!!!!!!!!!!!!!", "../z_play.c", 3471);
globalCtx->transitionMode = 15;
@@ -731,7 +731,7 @@ void Gameplay_Update(GlobalContext* globalCtx) {
Audio_PlaySoundGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
if (globalCtx->sceneLoadFlag == -0x14) {
- if (globalCtx->envCtx.unk_E7 <= 0) {
+ if (globalCtx->envCtx.sandstormPrimA <= 0) {
gTrnsnUnkState = 0;
R_UPDATE_RATE = 3;
globalCtx->sceneLoadFlag = 0;
@@ -742,17 +742,17 @@ void Gameplay_Update(GlobalContext* globalCtx) {
case 16:
D_801614C8 = 0;
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[0] = 0;
- globalCtx->envCtx.unk_E2[1] = 0;
- globalCtx->envCtx.unk_E2[2] = 0;
- globalCtx->envCtx.unk_E2[3] = 0xFF;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = 0;
+ globalCtx->envCtx.screenFillColor[1] = 0;
+ globalCtx->envCtx.screenFillColor[2] = 0;
+ globalCtx->envCtx.screenFillColor[3] = 255;
globalCtx->transitionMode = 17;
break;
case 17:
if (gSaveContext.unk_1410 != 0) {
- globalCtx->envCtx.unk_E2[3] = gSaveContext.unk_1410;
+ globalCtx->envCtx.screenFillColor[3] = gSaveContext.unk_1410;
if (gSaveContext.unk_1410 < 0x65) {
gTrnsnUnkState = 0;
R_UPDATE_RATE = 3;
@@ -813,11 +813,12 @@ void Gameplay_Update(GlobalContext* globalCtx) {
osSyncPrintf("FINISH=%d\n", globalCtx->actorCtx.freezeFlashTimer);
if ((globalCtx->actorCtx.freezeFlashTimer > 0) &&
((globalCtx->actorCtx.freezeFlashTimer % 2) != 0)) {
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 150;
- globalCtx->envCtx.unk_E2[3] = 80;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] =
+ globalCtx->envCtx.screenFillColor[2] = 150;
+ globalCtx->envCtx.screenFillColor[3] = 80;
} else {
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.fillScreen = false;
}
} else {
if (1 && HREG(63)) {
@@ -1031,8 +1032,8 @@ skip:
LOG_NUM("1", 1, "../z_play.c", 3816);
}
- func_80070C24(globalCtx, &globalCtx->envCtx, &globalCtx->lightCtx, &globalCtx->pauseCtx, &globalCtx->msgCtx,
- &globalCtx->gameOverCtx, globalCtx->state.gfxCtx);
+ Environment_Update(globalCtx, &globalCtx->envCtx, &globalCtx->lightCtx, &globalCtx->pauseCtx, &globalCtx->msgCtx,
+ &globalCtx->gameOverCtx, globalCtx->state.gfxCtx);
}
void Gameplay_DrawOverlayElements(GlobalContext* globalCtx) {
@@ -1081,10 +1082,10 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
func_80095248(gfxCtx, 0, 0, 0);
if ((HREG(80) != 10) || (HREG(82) != 0)) {
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
- POLY_XLU_DISP = func_800BC8A0(globalCtx, POLY_XLU_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
+ POLY_XLU_DISP = Gameplay_SetFog(globalCtx, POLY_XLU_DISP);
- func_800AA460(&globalCtx->view, globalCtx->view.fovy, globalCtx->view.zNear, globalCtx->lightCtx.unk_0C);
+ func_800AA460(&globalCtx->view, globalCtx->view.fovy, globalCtx->view.zNear, globalCtx->lightCtx.fogFar);
func_800AAA50(&globalCtx->view, 15);
Matrix_MtxToMtxF(&globalCtx->view.viewing, &globalCtx->mf_11DA0);
@@ -1092,12 +1093,8 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
Matrix_Mult(&globalCtx->mf_11D60, MTXMODE_NEW);
Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
Matrix_Get(&globalCtx->mf_11D60);
- globalCtx->mf_11DA0.mf[3][2] = 0.0f;
- globalCtx->mf_11DA0.mf[3][1] = 0.0f;
- globalCtx->mf_11DA0.mf[3][0] = 0.0f;
- globalCtx->mf_11DA0.mf[2][3] = 0.0f;
- globalCtx->mf_11DA0.mf[1][3] = 0.0f;
- globalCtx->mf_11DA0.mf[0][3] = 0.0f;
+ globalCtx->mf_11DA0.mf[0][3] = globalCtx->mf_11DA0.mf[1][3] = globalCtx->mf_11DA0.mf[2][3] =
+ globalCtx->mf_11DA0.mf[3][0] = globalCtx->mf_11DA0.mf[3][1] = globalCtx->mf_11DA0.mf[3][2] = 0.0f;
Matrix_Transpose(&globalCtx->mf_11DA0);
globalCtx->unk_11DE0 = Matrix_MtxFToMtx(Matrix_CheckFloats(&globalCtx->mf_11DA0, "../z_play.c", 4005),
Graph_Alloc(gfxCtx, sizeof(Mtx)));
@@ -1165,12 +1162,12 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
if ((HREG(80) != 10) || (HREG(83) != 0)) {
if (globalCtx->skyboxId && (globalCtx->skyboxId != SKYBOX_UNSET_1D) &&
- !globalCtx->envCtx.skyDisabled) {
+ !globalCtx->envCtx.skyboxDisabled) {
if ((globalCtx->skyboxId == SKYBOX_NORMAL_SKY) ||
(globalCtx->skyboxId == SKYBOX_CUTSCENE_MAP)) {
- func_8006FC88(globalCtx->skyboxId, &globalCtx->envCtx, &globalCtx->skyboxCtx);
+ Environment_UpdateSkybox(globalCtx->skyboxId, &globalCtx->envCtx, &globalCtx->skyboxCtx);
SkyboxDraw_Draw(&globalCtx->skyboxCtx, gfxCtx, globalCtx->skyboxId,
- globalCtx->envCtx.unk_13, globalCtx->view.eye.x, globalCtx->view.eye.y,
+ globalCtx->envCtx.skyboxBlend, globalCtx->view.eye.x, globalCtx->view.eye.y,
globalCtx->view.eye.z);
} else if (globalCtx->skyboxCtx.unk_140 == 0) {
SkyboxDraw_Draw(&globalCtx->skyboxCtx, gfxCtx, globalCtx->skyboxId, 0,
@@ -1181,17 +1178,17 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
if ((HREG(80) != 10) || (HREG(90) & 2)) {
if (!globalCtx->envCtx.sunMoonDisabled) {
- func_800730DC(globalCtx);
+ Environment_DrawSunAndMoon(globalCtx);
}
}
if ((HREG(80) != 10) || (HREG(90) & 1)) {
- func_80074D6C(globalCtx);
+ Environment_DrawSkyboxFilters(globalCtx);
}
if ((HREG(80) != 10) || (HREG(90) & 4)) {
- func_800750C0(globalCtx);
- func_8007542C(globalCtx, 0);
+ Environment_UpdateLightningStrike(globalCtx);
+ Environment_DrawLightning(globalCtx, 0);
}
if ((HREG(80) != 10) || (HREG(90) & 8)) {
@@ -1226,11 +1223,11 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
}
if (globalCtx->envCtx.unk_EE[1] != 0) {
- func_80074704(globalCtx, &globalCtx->view, gfxCtx);
+ Environment_DrawRain(globalCtx, &globalCtx->view, gfxCtx);
}
if ((HREG(80) != 10) || (HREG(84) != 0)) {
- func_8007672C(gfxCtx, 0, 0, 0, globalCtx->unk_11E18, 1);
+ Environment_FillScreen(gfxCtx, 0, 0, 0, globalCtx->unk_11E18, FILL_SCREEN_OPA);
}
if ((HREG(80) != 10) || (HREG(85) != 0)) {
@@ -1239,23 +1236,26 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
if ((HREG(80) != 10) || (HREG(86) != 0)) {
if (!globalCtx->envCtx.sunMoonDisabled) {
- sp21C.x = globalCtx->view.eye.x + globalCtx->envCtx.unk_04.x;
- sp21C.y = globalCtx->view.eye.y + globalCtx->envCtx.unk_04.y;
- sp21C.z = globalCtx->view.eye.z + globalCtx->envCtx.unk_04.z;
- func_80073988(globalCtx, &globalCtx->envCtx, &globalCtx->view, gfxCtx, sp21C, 0);
+ sp21C.x = globalCtx->view.eye.x + globalCtx->envCtx.sunPos.x;
+ sp21C.y = globalCtx->view.eye.y + globalCtx->envCtx.sunPos.y;
+ sp21C.z = globalCtx->view.eye.z + globalCtx->envCtx.sunPos.z;
+ Environment_DrawSunLensFlare(globalCtx, &globalCtx->envCtx, &globalCtx->view, gfxCtx, sp21C, 0);
}
- func_80075E68(globalCtx);
+ Environment_DrawCustomLensFlare(globalCtx);
}
if ((HREG(80) != 10) || (HREG(87) != 0)) {
if (MREG(64) != 0) {
- func_8007672C(gfxCtx, MREG(65), MREG(66), MREG(67), MREG(68), 3);
+ Environment_FillScreen(gfxCtx, MREG(65), MREG(66), MREG(67), MREG(68),
+ FILL_SCREEN_OPA | FILL_SCREEN_XLU);
}
- switch (globalCtx->envCtx.unk_E1) {
+ switch (globalCtx->envCtx.fillScreen) {
case 1:
- func_8007672C(gfxCtx, globalCtx->envCtx.unk_E2[0], globalCtx->envCtx.unk_E2[1],
- globalCtx->envCtx.unk_E2[2], globalCtx->envCtx.unk_E2[3], 3);
+ Environment_FillScreen(
+ gfxCtx, globalCtx->envCtx.screenFillColor[0], globalCtx->envCtx.screenFillColor[1],
+ globalCtx->envCtx.screenFillColor[2], globalCtx->envCtx.screenFillColor[3],
+ FILL_SCREEN_OPA | FILL_SCREEN_XLU);
break;
default:
break;
@@ -1263,8 +1263,8 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
}
if ((HREG(80) != 10) || (HREG(88) != 0)) {
- if (globalCtx->envCtx.unk_E6 != 0) {
- func_80076934(globalCtx, globalCtx->envCtx.unk_E6);
+ if (globalCtx->envCtx.sandstormState != 0) {
+ Environment_DrawSandstorm(globalCtx, globalCtx->envCtx.sandstormState);
}
}
@@ -1274,7 +1274,6 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
if ((R_PAUSE_MENU_MODE == 1) || (gTrnsnUnkState == 1)) {
Gfx* sp70 = OVERLAY_DISP;
- s32 pad[4];
globalCtx->pauseBgPreRender.fbuf = gfxCtx->curFrameBuffer;
globalCtx->pauseBgPreRender.fbufSave = (u16*)gZBuffer;
@@ -1303,7 +1302,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
Camera_Update(GET_ACTIVE_CAM(globalCtx));
func_800AB944(&globalCtx->view);
globalCtx->view.unk_124 = 0;
- if (globalCtx->skyboxId && (globalCtx->skyboxId != SKYBOX_UNSET_1D) && !globalCtx->envCtx.skyDisabled) {
+ if (globalCtx->skyboxId && (globalCtx->skyboxId != SKYBOX_UNSET_1D) && !globalCtx->envCtx.skyboxDisabled) {
SkyboxDraw_UpdateMatrix(&globalCtx->skyboxCtx, globalCtx->view.eye.x, globalCtx->view.eye.y,
globalCtx->view.eye.z);
}
@@ -1439,9 +1438,9 @@ void* Gameplay_LoadFile(GlobalContext* globalCtx, RomFile* file) {
return allocp;
}
-void Gameplay_InitSkybox(GlobalContext* globalCtx, s16 skyboxId) {
+void Gameplay_InitEnvironment(GlobalContext* globalCtx, s16 skyboxId) {
Skybox_Init(globalCtx, &globalCtx->skyboxCtx, skyboxId);
- func_8006F140(globalCtx, &globalCtx->envCtx, 0);
+ Environment_Init(globalCtx, &globalCtx->envCtx, 0);
}
void Gameplay_InitScene(GlobalContext* globalCtx, s32 spawn) {
@@ -1460,7 +1459,7 @@ void Gameplay_InitScene(GlobalContext* globalCtx, s32 spawn) {
YREG(15) = 0;
gSaveContext.worldMapArea = 0;
Scene_ExecuteCommands(globalCtx, globalCtx->sceneSegment);
- Gameplay_InitSkybox(globalCtx, globalCtx->skyboxId);
+ Gameplay_InitEnvironment(globalCtx, globalCtx->skyboxId);
}
void Gameplay_SpawnScene(GlobalContext* globalCtx, s32 sceneNum, s32 spawn) {
diff --git a/src/code/z_rcp.c b/src/code/z_rcp.c
index d0709b44fc..c2410f5631 100644
--- a/src/code/z_rcp.c
+++ b/src/code/z_rcp.c
@@ -847,51 +847,52 @@ Gfx gEmptyDL[] = {
gsSPEndDisplayList(),
};
-Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) {
- if (f == n) {
- f++;
+Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
+ if (far == near) {
+ far++;
}
- ASSERT(n != f, "n != f", "../z_rcp.c", 1155);
+
+ ASSERT(near != far, "n != f", "../z_rcp.c", 1155);
gDPSetFogColor(gfx++, r, g, b, a);
- if (n >= 1000) {
+ if (near >= 1000) {
gSPFogFactor(gfx++, 0, 0);
- } else if (n >= 997) {
+ } else if (near >= 997) {
gSPFogFactor(gfx++, 0x7FFF, 0x8100);
- } else if (n < 0) {
+ } else if (near < 0) {
gSPFogFactor(gfx++, 0, 255);
} else {
- gSPFogPosition(gfx++, n, f);
+ gSPFogPosition(gfx++, near, far);
}
return gfx;
}
-Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) {
- if (f == n) {
- f++;
+Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
+ if (far == near) {
+ far++;
}
- ASSERT(n != f, "n != f", "../z_rcp.c", 1187);
+ ASSERT(near != far, "n != f", "../z_rcp.c", 1187);
gDPPipeSync(gfx++);
gDPSetFogColor(gfx++, r, g, b, a);
- if (n >= 1000) {
+ if (near >= 1000) {
gSPFogFactor(gfx++, 0, 0);
- } else if (n >= 997) {
+ } else if (near >= 997) {
gSPFogFactor(gfx++, 0x7FFF, 0x8100);
- } else if (n < 0) {
+ } else if (near < 0) {
gSPFogFactor(gfx++, 0, 255);
} else {
- gSPFogPosition(gfx++, n, f);
+ gSPFogPosition(gfx++, near, far);
}
return gfx;
}
-Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f) {
- return Gfx_SetFog(gfx, r, g, b, a, n, f);
+Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
+ return Gfx_SetFog(gfx, r, g, b, a, near, far);
}
Gfx* Gfx_CallSetupDLImpl(Gfx* gfx, u32 i) {
diff --git a/src/code/z_room.c b/src/code/z_room.c
index acad1905a5..80e724368a 100644
--- a/src/code/z_room.c
+++ b/src/code/z_room.c
@@ -131,7 +131,7 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, &sp90, &sp84, &sp80);
if (-(f32)polygonDlist->unk_06 < sp84.z) {
temp_f2 = sp84.z - polygonDlist->unk_06;
- if (temp_f2 < globalCtx->lightCtx.unk_0C) {
+ if (temp_f2 < globalCtx->lightCtx.fogFar) {
phi_v0 = spB4;
spA4->unk_00 = polygonDlist;
spA4->unk_04 = temp_f2;
diff --git a/src/code/z_scene.c b/src/code/z_scene.c
index 370a0eb0bc..572cb488cb 100644
--- a/src/code/z_scene.c
+++ b/src/code/z_scene.c
@@ -343,67 +343,63 @@ void func_80098CC8(GlobalContext* globalCtx, SceneCmd* cmd) {
// Scene Command 0x11: Skybox Settings
void func_80098D1C(GlobalContext* globalCtx, SceneCmd* cmd) {
globalCtx->skyboxId = cmd->skyboxSettings.skyboxId;
- globalCtx->envCtx.gloomySky = globalCtx->envCtx.unk_18 = cmd->skyboxSettings.unk_05;
- globalCtx->envCtx.unk_1E = cmd->skyboxSettings.unk_06;
+ globalCtx->envCtx.unk_17 = globalCtx->envCtx.unk_18 = cmd->skyboxSettings.unk_05;
+ globalCtx->envCtx.indoors = cmd->skyboxSettings.unk_06;
}
// Scene Command 0x12: Skybox Disables
void func_80098D5C(GlobalContext* globalCtx, SceneCmd* cmd) {
- globalCtx->envCtx.skyDisabled = cmd->skyboxDisables.unk_04;
+ globalCtx->envCtx.skyboxDisabled = cmd->skyboxDisables.unk_04;
globalCtx->envCtx.sunMoonDisabled = cmd->skyboxDisables.unk_05;
}
// Scene Command 0x10: Time Settings
void func_80098D80(GlobalContext* globalCtx, SceneCmd* cmd) {
- u32 dayTime;
-
if ((cmd->timeSettings.hour != 0xFF) && (cmd->timeSettings.min != 0xFF)) {
- gSaveContext.environmentTime = gSaveContext.dayTime =
- ((cmd->timeSettings.hour + (cmd->timeSettings.min / 60.0f)) * 60.0f) / (360.0f / 0x4000);
+ gSaveContext.skyboxTime = gSaveContext.dayTime =
+ ((cmd->timeSettings.hour + (cmd->timeSettings.min / 60.0f)) * 60.0f) / ((f32)(24 * 60) / 0x10000);
}
if (cmd->timeSettings.unk_06 != 0xFF) {
- globalCtx->envCtx.unk_02 = cmd->timeSettings.unk_06;
+ globalCtx->envCtx.timeIncrement = cmd->timeSettings.unk_06;
} else {
- globalCtx->envCtx.unk_02 = 0;
+ globalCtx->envCtx.timeIncrement = 0;
}
- if (gSaveContext.unk_1422 == 0) {
- D_8011FB40 = globalCtx->envCtx.unk_02;
+ if (gSaveContext.sunsSongState == SUNSSONG_INACTIVE) {
+ gTimeIncrement = globalCtx->envCtx.timeIncrement;
}
- dayTime = gSaveContext.dayTime;
- globalCtx->envCtx.unk_04.x = -(Math_SinS(dayTime - 0x8000) * 120.0f) * 25.0f;
- dayTime = gSaveContext.dayTime;
- globalCtx->envCtx.unk_04.y = (Math_CosS(dayTime - 0x8000) * 120.0f) * 25.0f;
- dayTime = gSaveContext.dayTime;
- globalCtx->envCtx.unk_04.z = (Math_CosS(dayTime - 0x8000) * 20.0f) * 25.0f;
+ globalCtx->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
+ globalCtx->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f;
+ globalCtx->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.dayTime) - 0x8000) * 20.0f) * 25.0f;
- if (((globalCtx->envCtx.unk_02 == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) ||
+ if (((globalCtx->envCtx.timeIncrement == 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) ||
(gSaveContext.entranceIndex == 0x0604)) {
- gSaveContext.environmentTime = gSaveContext.dayTime;
- if ((gSaveContext.environmentTime >= 0x2AAC) && (gSaveContext.environmentTime < 0x4555)) {
- gSaveContext.environmentTime = 0x3556;
- } else if ((gSaveContext.environmentTime >= 0x4555) && (gSaveContext.environmentTime < 0x5556)) {
- gSaveContext.environmentTime = 0x5556;
- } else if ((gSaveContext.environmentTime >= 0xAAAB) && (gSaveContext.environmentTime < 0xB556)) {
- gSaveContext.environmentTime = 0xB556;
- } else if ((gSaveContext.environmentTime >= 0xC001) && (gSaveContext.environmentTime < 0xCAAC)) {
- gSaveContext.environmentTime = 0xCAAC;
+ gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime);
+ if ((gSaveContext.skyboxTime >= 0x2AAC) && (gSaveContext.skyboxTime < 0x4555)) {
+ gSaveContext.skyboxTime = 0x3556;
+ } else if ((gSaveContext.skyboxTime >= 0x4555) && (gSaveContext.skyboxTime < 0x5556)) {
+ gSaveContext.skyboxTime = 0x5556;
+ } else if ((gSaveContext.skyboxTime >= 0xAAAB) && (gSaveContext.skyboxTime < 0xB556)) {
+ gSaveContext.skyboxTime = 0xB556;
+ } else if ((gSaveContext.skyboxTime >= 0xC001) && (gSaveContext.skyboxTime < 0xCAAC)) {
+ gSaveContext.skyboxTime = 0xCAAC;
}
}
}
// Scene Command 0x05: Wind Settings
void func_80099090(GlobalContext* globalCtx, SceneCmd* cmd) {
- s8 temp1 = cmd->windSettings.unk_04;
- s8 temp2 = cmd->windSettings.unk_05;
- s8 temp3 = cmd->windSettings.unk_06;
+ s8 x = cmd->windSettings.x;
+ s8 y = cmd->windSettings.y;
+ s8 z = cmd->windSettings.z;
- globalCtx->envCtx.unk_A8 = temp1;
- globalCtx->envCtx.unk_AA = temp2;
- globalCtx->envCtx.unk_AC = temp3;
- globalCtx->envCtx.unk_B0 = cmd->windSettings.unk_07;
+ globalCtx->envCtx.windDirection.x = x;
+ globalCtx->envCtx.windDirection.y = y;
+ globalCtx->envCtx.windDirection.z = z;
+
+ globalCtx->envCtx.windSpeed = cmd->windSettings.unk_07;
}
// Scene Command 0x13: Exit List
@@ -501,13 +497,6 @@ void (*gSceneCmdHandlers[])(GlobalContext*, SceneCmd*) = {
func_80099140, func_8009918C, func_8009934C, func_800991A0, func_800993C0,
};
-#define ROM_FILE(name) \
- { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomEnd }
-#define ROM_FILE_EMPTY(name) \
- { (u32) _##name##SegmentRomStart, (u32)_##name##SegmentRomStart }
-#define ROM_FILE_UNSET \
- { 0 }
-
RomFile sNaviMsgFiles[] = {
ROM_FILE(elf_message_field),
ROM_FILE(elf_message_ydan),
diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c
index 38fe6c95ab..44bb75e2b4 100644
--- a/src/code/z_scene_table.c
+++ b/src/code/z_scene_table.c
@@ -1088,10 +1088,10 @@ void func_80099BD8(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_scene_table.c", 5145);
if (gSaveContext.sceneSetupIndex == 5) {
- D_8015FCF0 = 1;
- D_8015FCF8.x = -20.0f;
- D_8015FCF8.y = 1220.0f;
- D_8015FCF8.z = -684.0f;
+ gCustomLensFlareOn = true;
+ gCustomLensFlarePos.x = -20.0f;
+ gCustomLensFlarePos.y = 1220.0f;
+ gCustomLensFlarePos.z = -684.0f;
D_8015FD06 = 10;
D_8015FD08 = 8.0f;
D_8015FD0C = 200;
diff --git a/src/code/z_sram.c b/src/code/z_sram.c
index a9312c0617..356ffee17e 100644
--- a/src/code/z_sram.c
+++ b/src/code/z_sram.c
@@ -63,8 +63,8 @@ typedef struct {
/* 0x08 */ s32 cutsceneIndex;
/* 0x0C */ u16 dayTime; // "zelda_time"
/* 0x10 */ s32 nightFlag;
- /* 0x14 */ s32 numDays;
- /* 0x18 */ s32 unk_18; // increments with numDays, gets reset by goron for bgs and one other use
+ /* 0x14 */ s32 totalDays;
+ /* 0x18 */ s32 unk_18; // increments with totalDays, gets reset by goron for bgs and one other use
/* 0x1C */ SaveInfo info; // "information"
} Save; // size = 0x1354
@@ -161,8 +161,8 @@ void Sram_InitNewSave(void) {
SaveContext* temp = &gSaveContext;
bzero(&SAVE_INFO, sizeof(SaveInfo));
- gSaveContext.numDays = 0;
- gSaveContext.unk_18 = 0;
+ gSaveContext.totalDays = 0;
+ gSaveContext.bgsDayCount = 0;
SAVE_PLAYER_DATA = sNewSavePlayerData;
gSaveContext.equips = sNewSaveEquips;
@@ -250,8 +250,8 @@ void Sram_InitDebugSave(void) {
SaveContext* temp = &gSaveContext;
bzero(&SAVE_INFO, sizeof(SaveInfo));
- gSaveContext.numDays = 0;
- gSaveContext.unk_18 = 0;
+ gSaveContext.totalDays = 0;
+ gSaveContext.bgsDayCount = 0;
SAVE_PLAYER_DATA = sDebugSavePlayerData;
gSaveContext.equips = sDebugSaveEquips;
@@ -561,8 +561,8 @@ void Sram_VerifyAndLoadAllSaves(FileChooseContext* fileChooseCtx, SramContext* s
// note that gSaveContext.dayTime is not actually the sizeof(s32)
bzero(&gSaveContext.dayTime, sizeof(s32));
bzero(&gSaveContext.nightFlag, sizeof(s32));
- bzero(&gSaveContext.numDays, sizeof(s32));
- bzero(&gSaveContext.unk_18, sizeof(s32));
+ bzero(&gSaveContext.totalDays, sizeof(s32));
+ bzero(&gSaveContext.bgsDayCount, sizeof(s32));
if (!slotNum) {
Sram_InitDebugSave();
diff --git a/src/code/z_vr_box.c b/src/code/z_vr_box.c
index 2400152f77..b1755f2b67 100644
--- a/src/code/z_vr_box.c
+++ b/src/code/z_vr_box.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "vt.h"
+#include "z64environment.h"
typedef struct {
/* 0x000 */ s32 unk_0;
@@ -11,17 +12,7 @@ typedef struct {
extern Struct_8012AF0C D_8012AF0C[6];
extern Struct_8012AF0C D_8012AEBC[4];
-
-typedef struct {
- /* 0x00 */ u16 unk_0; // start
- /* 0x02 */ u16 unk_2; // end
- /* 0x04 */ u8 unk_4;
- /* 0x05 */ u8 unk_5; // img idx 1
- /* 0x06 */ u8 unk_6; // img idx 2
- /* 0x07 */ char unk_7[0x1];
-} Struct_8011FC1C; // size = 0x8
-
-extern Struct_8011FC1C D_8011FC1C[8][9];
+extern struct_8011FC1C D_8011FC1C[][9];
typedef struct {
/* 0x00 */ u32 unk_0; // start
@@ -30,8 +21,6 @@ typedef struct {
/* 0x0C */ u32 unk_C; // pal end
} Struct_8011FD3C; // size = 0x10
-extern Struct_8011FD3C D_8011FD3C[];
-
s32 func_800ADBB0(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, s32,
s32);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vr_box/func_800ADBB0.s")
@@ -85,64 +74,69 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
switch (skyboxId) {
case SKYBOX_NORMAL_SKY:
phi_v1 = 0;
- if (gSaveContext.unk_13C3 != 0 && gSaveContext.sceneSetupIndex < 4 && D_8011FB30 > 0 && D_8011FB30 < 6) {
+ if (gSaveContext.unk_13C3 != 0 && gSaveContext.sceneSetupIndex < 4 && gWeatherMode > 0 &&
+ gWeatherMode < 6) {
phi_v1 = 1;
}
for (i = 0; i < 9; i++) {
- if (gSaveContext.environmentTime >= D_8011FC1C[phi_v1][i].unk_0 &&
- (gSaveContext.environmentTime < D_8011FC1C[phi_v1][i].unk_2 ||
- D_8011FC1C[phi_v1][i].unk_2 == 0xFFFF)) {
- globalCtx->envCtx.unk_10 = sp41 = D_8011FC1C[phi_v1][i].unk_5;
- globalCtx->envCtx.unk_11 = sp40 = D_8011FC1C[phi_v1][i].unk_6;
- if (D_8011FC1C[phi_v1][i].unk_4 != 0) {
- globalCtx->envCtx.unk_13 =
- func_8006F93C(D_8011FC1C[phi_v1][i].unk_2, D_8011FC1C[phi_v1][i].unk_0,
- ((void)0, gSaveContext.environmentTime)) *
+ if (gSaveContext.skyboxTime >= D_8011FC1C[phi_v1][i].startTime &&
+ (gSaveContext.skyboxTime < D_8011FC1C[phi_v1][i].endTime ||
+ D_8011FC1C[phi_v1][i].endTime == 0xFFFF)) {
+ globalCtx->envCtx.skybox1Index = sp41 = D_8011FC1C[phi_v1][i].skybox1Index;
+ globalCtx->envCtx.skybox2Index = sp40 = D_8011FC1C[phi_v1][i].skybox2Index;
+ if (D_8011FC1C[phi_v1][i].blend != 0) {
+ globalCtx->envCtx.skyboxBlend =
+ Environment_LerpWeight(D_8011FC1C[phi_v1][i].endTime, D_8011FC1C[phi_v1][i].startTime,
+ ((void)0, gSaveContext.skyboxTime)) *
255.0f;
} else {
- globalCtx->envCtx.unk_13 = 0;
+ globalCtx->envCtx.skyboxBlend = 0;
}
break;
}
}
- size = D_8011FD3C[sp41].unk_4 - D_8011FD3C[sp41].unk_0;
+ size = gSkyboxFiles[sp41].file.vromEnd - gSkyboxFiles[sp41].file.vromStart;
skyboxCtx->staticSegments[0] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1054);
ASSERT(skyboxCtx->staticSegments[0] != NULL, "vr_box->vr_box_staticSegment[0] != NULL", "../z_vr_box.c",
1055);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[0], D_8011FD3C[sp41].unk_0, size, "../z_vr_box.c", 1058);
+ DmaMgr_SendRequest1(skyboxCtx->staticSegments[0], gSkyboxFiles[sp41].file.vromStart, size, "../z_vr_box.c",
+ 1058);
- size = D_8011FD3C[sp40].unk_4 - D_8011FD3C[sp40].unk_0;
+ size = gSkyboxFiles[sp40].file.vromEnd - gSkyboxFiles[sp40].file.vromStart;
skyboxCtx->staticSegments[1] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1060);
ASSERT(skyboxCtx->staticSegments[1] != NULL, "vr_box->vr_box_staticSegment[1] != NULL", "../z_vr_box.c",
1061);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[1], D_8011FD3C[sp40].unk_0, size, "../z_vr_box.c", 1064);
+ DmaMgr_SendRequest1(skyboxCtx->staticSegments[1], gSkyboxFiles[sp40].file.vromStart, size, "../z_vr_box.c",
+ 1064);
// reorderings in the rest of this case
if (((u8)(sp41 & 4) >> 2) != (sp41 & 1)) {
- size = D_8011FD3C[sp41].unk_C - D_8011FD3C[sp41].unk_8;
+ size = gSkyboxFiles[sp41].pallete.vromEnd - gSkyboxFiles[sp41].pallete.vromStart;
skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1072);
ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1073);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], D_8011FD3C[sp41].unk_8, size, "../z_vr_box.c", 1075);
- DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, D_8011FD3C[sp40].unk_8, size,
- "../z_vr_box.c", 1077);
+ DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], gSkyboxFiles[sp41].pallete.vromStart, size,
+ "../z_vr_box.c", 1075);
+ DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, gSkyboxFiles[sp40].pallete.vromStart,
+ size, "../z_vr_box.c", 1077);
} else {
- size = D_8011FD3C[sp41].unk_C - D_8011FD3C[sp41].unk_8;
+ size = gSkyboxFiles[sp41].pallete.vromEnd - gSkyboxFiles[sp41].pallete.vromStart;
skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1085);
ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1086);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], D_8011FD3C[sp40].unk_8, size, "../z_vr_box.c", 1088);
- DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, D_8011FD3C[sp41].unk_8, size,
- "../z_vr_box.c", 1090);
+ DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], gSkyboxFiles[sp40].pallete.vromStart, size,
+ "../z_vr_box.c", 1088);
+ DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, gSkyboxFiles[sp41].pallete.vromStart,
+ size, "../z_vr_box.c", 1090);
}
break;
diff --git a/src/code/z_vr_box_draw.c b/src/code/z_vr_box_draw.c
index b1f1c1bc39..14ad03d662 100644
--- a/src/code/z_vr_box_draw.c
+++ b/src/code/z_vr_box_draw.c
@@ -11,7 +11,7 @@ Mtx* SkyboxDraw_UpdateMatrix(SkyboxContext* skyboxCtx, f32 x, f32 y, f32 z) {
return Matrix_ToMtx(sSkyboxDrawMatrix, "../z_vr_box_draw.c", 42);
}
-void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 alpha, f32 x, f32 y, f32 z) {
+void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y, f32 z) {
OPEN_DISPS(gfxCtx, "../z_vr_box_draw.c", 52);
func_800945A0(gfxCtx);
@@ -20,7 +20,7 @@ void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyb
gSPSegment(POLY_OPA_DISP++, 0x8, skyboxCtx->staticSegments[1]);
gSPSegment(POLY_OPA_DISP++, 0x9, skyboxCtx->staticSegments[2]);
- gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 0, 0, 0, alpha);
+ gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 0, 0, 0, blend);
gSPTexture(POLY_OPA_DISP++, 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON);
sSkyboxDrawMatrix = Graph_Alloc(gfxCtx, sizeof(Mtx));
diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c
index 46eb5fff1d..caf583f503 100644
--- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c
+++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c
@@ -229,7 +229,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, GlobalContext* globalCtx) {
globalCtx->sceneLoadFlag = 0x14;
globalCtx->fadeTransition = 4;
} else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 3000.0f, 0x7530)) {
- globalCtx->envCtx.gloomySkyEvent = 1;
+ globalCtx->envCtx.gloomySkyMode = 1;
}
}
}
@@ -238,20 +238,20 @@ void BgSpot00Hanebasi_Update(Actor* thisx, GlobalContext* globalCtx) {
u16 dayTime;
s32 tmp;
- if (D_8011FB40 == 50) {
+ if (gTimeIncrement == 50) {
tmp = 0xD556;
if (gSaveContext.dayTime >= 0xD557) {
tmp = 0x1D556;
}
- D_8011FB40 = (tmp - gSaveContext.dayTime) * (1.0f / 350.0f);
+ gTimeIncrement = (tmp - gSaveContext.dayTime) * (1.0f / 350.0f);
}
dayTime = gSaveContext.dayTime;
if ((dayTime >= 0x2AAC) && (dayTime < 0x3000) && (gSaveContext.sceneSetupIndex == 5)) {
- D_8011FB40 = 0;
+ gTimeIncrement = 0;
}
}
}
diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c
index 6207a92cda..a56ce91ee4 100644
--- a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c
+++ b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c
@@ -199,7 +199,7 @@ s32 func_808AB29C(BgSpot01Idohashira* this, GlobalContext* globalCtx) {
npcAction = BgSpot01Idohashira_GetNpcAction(globalCtx, 2);
if (npcAction != NULL) {
- temp_f0 = func_8006F93C(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames);
+ temp_f0 = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames);
initPos = this->dyna.actor.home.pos;
endX = npcAction->endPos.x;
tempY = ((kREG(10) + 1100.0f) / 10.0f) + npcAction->endPos.y;
diff --git a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c
index 63355a8136..98723f1163 100644
--- a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c
+++ b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c
@@ -298,8 +298,8 @@ void func_808AD450(Actor* thisx, GlobalContext* globalCtx) {
}
}
- lerp = func_8006F93C(globalCtx->csCtx.npcActions[2]->endFrame, globalCtx->csCtx.npcActions[2]->startFrame,
- globalCtx->csCtx.frames);
+ lerp = Environment_LerpWeight(globalCtx->csCtx.npcActions[2]->endFrame,
+ globalCtx->csCtx.npcActions[2]->startFrame, globalCtx->csCtx.frames);
// should be able to remove & 0xFFFF with some other change
if ((globalCtx->csCtx.npcActions[2]->action & 0xFFFF) == 2) {
diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c
index efb3c2bb03..514916291f 100644
--- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c
+++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c
@@ -894,11 +894,11 @@ void BossDodongo_Update(Actor* thisx, GlobalContext* globalCtx2) {
Math_SmoothStepToF(&this->unk_240, 0.0f, 1, 10.0f, 0.0);
}
- if ((globalCtx->envCtx.unk_8C[1][2] == 0) && (globalCtx->envCtx.unk_8C[0][2] == 0)) {
- globalCtx->envCtx.unk_8C[1][0] = (u8)this->unk_240;
- globalCtx->envCtx.unk_8C[1][1] = (u8)(this->unk_240 * 0.1f);
- globalCtx->envCtx.unk_8C[0][0] = (u8)this->unk_240;
- globalCtx->envCtx.unk_8C[0][1] = (u8)(this->unk_240 * 0.1f);
+ if ((globalCtx->envCtx.adjLight1Color[2] == 0) && (globalCtx->envCtx.adjAmbientColor[2] == 0)) {
+ globalCtx->envCtx.adjLight1Color[0] = (u8)this->unk_240;
+ globalCtx->envCtx.adjLight1Color[1] = (u8)(this->unk_240 * 0.1f);
+ globalCtx->envCtx.adjAmbientColor[0] = (u8)this->unk_240;
+ globalCtx->envCtx.adjAmbientColor[1] = (u8)(this->unk_240 * 0.1f);
}
}
@@ -916,10 +916,10 @@ void BossDodongo_Update(Actor* thisx, GlobalContext* globalCtx2) {
Math_SmoothStepToF(&this->colorFilterMin, 900.0f, 1, 10.0f, 0.0);
Math_SmoothStepToF(&this->colorFilterMax, 1099.0f, 1, 10.0f, 0.0);
} else {
- Math_SmoothStepToF(&this->colorFilterR, globalCtx->lightCtx.unk_07, 1, 5.0f, 0.0);
- Math_SmoothStepToF(&this->colorFilterG, globalCtx->lightCtx.unk_08, 1.0f, 5.0f, 0.0);
- Math_SmoothStepToF(&this->colorFilterB, globalCtx->lightCtx.unk_09, 1.0f, 5.0f, 0.0);
- Math_SmoothStepToF(&this->colorFilterMin, globalCtx->lightCtx.unk_0A, 1.0, 5.0f, 0.0);
+ Math_SmoothStepToF(&this->colorFilterR, globalCtx->lightCtx.fogColor[0], 1, 5.0f, 0.0);
+ Math_SmoothStepToF(&this->colorFilterG, globalCtx->lightCtx.fogColor[1], 1.0f, 5.0f, 0.0);
+ Math_SmoothStepToF(&this->colorFilterB, globalCtx->lightCtx.fogColor[2], 1.0f, 5.0f, 0.0);
+ Math_SmoothStepToF(&this->colorFilterMin, globalCtx->lightCtx.fogNear, 1.0, 5.0f, 0.0);
Math_SmoothStepToF(&this->colorFilterMax, 1000.0f, 1, 5.0f, 0.0);
}
@@ -1137,7 +1137,7 @@ void BossDodongo_Draw(Actor* thisx, GlobalContext* globalCtx) {
SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, BossDodongo_OverrideLimbDraw,
BossDodongo_PostLimbDraw, this);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_dodongo.c", 3981);
diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
index fe2b9f7173..6ca2592906 100644
--- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
+++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
@@ -1644,7 +1644,7 @@ void BossFd_Draw(Actor* thisx, GlobalContext* globalCtx) {
}
BossFd_DrawBody(globalCtx, this);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_fd.c", 4243);
}
diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c
index f56ad12833..abf0750a51 100644
--- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c
+++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c
@@ -1213,7 +1213,7 @@ void BossFd2_Draw(Actor* thisx, GlobalContext* globalCtx) {
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, BossFd2_OverrideLimbDraw, BossFd2_PostLimbDraw, &this->actor);
BossFd2_DrawMane(this, globalCtx);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_fd2.c", 2688);
}
diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
index af09ff6b80..b7b4df40ce 100644
--- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
+++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c
@@ -712,11 +712,12 @@ void func_808FD5F4(BossGanon2* this, GlobalContext* globalCtx) {
func_800A9F6C(0.0f, 0xFF, 0xA, 0x32);
}
if (this->unk_398 >= 229) {
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 0xFF;
- globalCtx->envCtx.unk_E2[3] = 0x64;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] =
+ globalCtx->envCtx.screenFillColor[2] = 255;
+ globalCtx->envCtx.screenFillColor[3] = 100;
if (this->unk_398 == 234) {
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.fillScreen = false;
this->unk_39C = 24;
this->unk_398 = 0;
sp68 = player->actor.world.pos;
@@ -2078,13 +2079,13 @@ void BossGanon2_Update(Actor* thisx, GlobalContext* globalCtx) {
this->unk_332--;
}
if ((globalCtx->envCtx.unk_D8 > 0.0f) && (this->unk_336 != 0)) {
- globalCtx->envCtx.unk_E9 = 1;
- globalCtx->envCtx.unk_EA[0] = 0xFF;
- globalCtx->envCtx.unk_EA[1] = 0xFF;
- globalCtx->envCtx.unk_EA[2] = 0xFF;
- globalCtx->envCtx.unk_EA[3] = (s16)(globalCtx->envCtx.unk_D8 * 200.0f);
+ globalCtx->envCtx.customSkyboxFilter = 1;
+ globalCtx->envCtx.skyboxFilterColor[0] = 255;
+ globalCtx->envCtx.skyboxFilterColor[1] = 255;
+ globalCtx->envCtx.skyboxFilterColor[2] = 255;
+ globalCtx->envCtx.skyboxFilterColor[3] = (s16)(globalCtx->envCtx.unk_D8 * 200.0f);
} else {
- globalCtx->envCtx.unk_E9 = 0;
+ globalCtx->envCtx.customSkyboxFilter = 0;
}
globalCtx->envCtx.unk_BF = 0;
globalCtx->envCtx.unk_DC = 2;
@@ -2749,7 +2750,7 @@ void BossGanon2_Draw(Actor* thisx, GlobalContext* globalCtx) {
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, BossGanon2_OverrideLimbDraw, BossGanon2_PostLimbDraw,
this);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
BossGanon2_GenShadowTexture(shadowTexture, this, globalCtx);
BossGanon2_DrawShadowTexture(shadowTexture, this, globalCtx);
break;
@@ -2872,9 +2873,9 @@ void func_809060E8(GlobalContext* globalCtx) {
f32 angle;
func_80093D84(globalCtx->state.gfxCtx);
- spA0.x = globalCtx->envCtx.unk_2A;
- spA0.y = globalCtx->envCtx.unk_2B;
- spA0.z = globalCtx->envCtx.unk_2C;
+ spA0.x = globalCtx->envCtx.dirLight1.params.dir.x;
+ spA0.y = globalCtx->envCtx.dirLight1.params.dir.y;
+ spA0.z = globalCtx->envCtx.dirLight1.params.dir.z;
func_8002EABC(&effect->position, &globalCtx->view.eye, &spA0, globalCtx->state.gfxCtx);
Matrix_Translate(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW);
Matrix_Scale(0.03f, 0.03f, 0.03f, MTXMODE_APPLY);
diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
index d766a0ccfe..c9d34c1084 100644
--- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
+++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
@@ -1519,7 +1519,7 @@ void BossGanondrof_Draw(Actor* thisx, GlobalContext* globalCtx) {
SkelAnime_DrawOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, BossGanondrof_OverrideLimbDraw,
BossGanondrof_PostLimbDraw, this);
osSyncPrintf("DRAW 22\n");
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_boss_ganondrof.c", 3814);
osSyncPrintf("DRAW END %d\n", this->actor.params);
}
diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
index d892e3cd8d..3ef8766825 100644
--- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
+++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
@@ -1198,57 +1198,57 @@ void BossGoma_Defeated(BossGoma* this, GlobalContext* globalCtx) {
if (this->blinkTimer != 0) {
this->blinkTimer--;
- globalCtx->envCtx.unk_8C[0][0] += 40;
- globalCtx->envCtx.unk_8C[0][1] += 40;
- globalCtx->envCtx.unk_8C[0][2] += 80;
- globalCtx->envCtx.unk_8C[2][0] += 10;
- globalCtx->envCtx.unk_8C[2][1] += 10;
- globalCtx->envCtx.unk_8C[2][2] += 20;
+ globalCtx->envCtx.adjAmbientColor[0] += 40;
+ globalCtx->envCtx.adjAmbientColor[1] += 40;
+ globalCtx->envCtx.adjAmbientColor[2] += 80;
+ globalCtx->envCtx.adjFogColor[0] += 10;
+ globalCtx->envCtx.adjFogColor[1] += 10;
+ globalCtx->envCtx.adjFogColor[2] += 20;
} else {
- globalCtx->envCtx.unk_8C[0][0] -= 20;
- globalCtx->envCtx.unk_8C[0][1] -= 20;
- globalCtx->envCtx.unk_8C[0][2] -= 40;
- globalCtx->envCtx.unk_8C[2][0] -= 5;
- globalCtx->envCtx.unk_8C[2][1] -= 5;
- globalCtx->envCtx.unk_8C[2][2] -= 10;
+ globalCtx->envCtx.adjAmbientColor[0] -= 20;
+ globalCtx->envCtx.adjAmbientColor[1] -= 20;
+ globalCtx->envCtx.adjAmbientColor[2] -= 40;
+ globalCtx->envCtx.adjFogColor[0] -= 5;
+ globalCtx->envCtx.adjFogColor[1] -= 5;
+ globalCtx->envCtx.adjFogColor[2] -= 10;
}
- if (globalCtx->envCtx.unk_8C[0][0] > 200) {
- globalCtx->envCtx.unk_8C[0][0] = 200;
+ if (globalCtx->envCtx.adjAmbientColor[0] > 200) {
+ globalCtx->envCtx.adjAmbientColor[0] = 200;
}
- if (globalCtx->envCtx.unk_8C[0][1] > 200) {
- globalCtx->envCtx.unk_8C[0][1] = 200;
+ if (globalCtx->envCtx.adjAmbientColor[1] > 200) {
+ globalCtx->envCtx.adjAmbientColor[1] = 200;
}
- if (globalCtx->envCtx.unk_8C[0][2] > 200) {
- globalCtx->envCtx.unk_8C[0][2] = 200;
+ if (globalCtx->envCtx.adjAmbientColor[2] > 200) {
+ globalCtx->envCtx.adjAmbientColor[2] = 200;
}
- if (globalCtx->envCtx.unk_8C[2][0] > 70) {
- globalCtx->envCtx.unk_8C[2][0] = 70;
+ if (globalCtx->envCtx.adjFogColor[0] > 70) {
+ globalCtx->envCtx.adjFogColor[0] = 70;
}
- if (globalCtx->envCtx.unk_8C[2][1] > 70) {
- globalCtx->envCtx.unk_8C[2][1] = 70;
+ if (globalCtx->envCtx.adjFogColor[1] > 70) {
+ globalCtx->envCtx.adjFogColor[1] = 70;
}
- if (globalCtx->envCtx.unk_8C[2][2] > 140) {
- globalCtx->envCtx.unk_8C[2][2] = 140;
+ if (globalCtx->envCtx.adjFogColor[2] > 140) {
+ globalCtx->envCtx.adjFogColor[2] = 140;
}
- if (globalCtx->envCtx.unk_8C[0][0] < 0) {
- globalCtx->envCtx.unk_8C[0][0] = 0;
+ if (globalCtx->envCtx.adjAmbientColor[0] < 0) {
+ globalCtx->envCtx.adjAmbientColor[0] = 0;
}
- if (globalCtx->envCtx.unk_8C[0][1] < 0) {
- globalCtx->envCtx.unk_8C[0][1] = 0;
+ if (globalCtx->envCtx.adjAmbientColor[1] < 0) {
+ globalCtx->envCtx.adjAmbientColor[1] = 0;
}
- if (globalCtx->envCtx.unk_8C[0][2] < 0) {
- globalCtx->envCtx.unk_8C[0][2] = 0;
+ if (globalCtx->envCtx.adjAmbientColor[2] < 0) {
+ globalCtx->envCtx.adjAmbientColor[2] = 0;
}
- if (globalCtx->envCtx.unk_8C[2][0] < 0) {
- globalCtx->envCtx.unk_8C[2][0] = 0;
+ if (globalCtx->envCtx.adjFogColor[0] < 0) {
+ globalCtx->envCtx.adjFogColor[0] = 0;
}
- if (globalCtx->envCtx.unk_8C[2][1] < 0) {
- globalCtx->envCtx.unk_8C[2][1] = 0;
+ if (globalCtx->envCtx.adjFogColor[1] < 0) {
+ globalCtx->envCtx.adjFogColor[1] = 0;
}
- if (globalCtx->envCtx.unk_8C[2][2] < 0) {
- globalCtx->envCtx.unk_8C[2][2] = 0;
+ if (globalCtx->envCtx.adjFogColor[2] < 0) {
+ globalCtx->envCtx.adjFogColor[2] = 0;
}
}
diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
index ba07ad4dbe..da926a8b78 100644
--- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
+++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
@@ -1100,7 +1100,8 @@ void BossMo_Tentacle(BossMo* this, GlobalContext* globalCtx) {
((300 - indS1) * .0015f) + 0.13f);
}
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1,
- this->actor.world.pos.x, -280.0f, this->actor.world.pos.z, 0, 0, 0, WARP_DUNGEON_ADULT);
+ this->actor.world.pos.x, -280.0f, this->actor.world.pos.z, 0, 0, 0,
+ WARP_DUNGEON_ADULT);
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_B_HEART, this->actor.world.pos.x + 200.0f,
-280.0f, this->actor.world.pos.z, 0, 0, 0, 0);
Audio_QueueSeqCmd(0x21);
@@ -2437,9 +2438,9 @@ void BossMo_DrawTentacle(BossMo* this, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_boss_mo.c", 6366);
- sp110.x = globalCtx->envCtx.unk_2A;
- sp110.y = globalCtx->envCtx.unk_2B;
- sp110.z = globalCtx->envCtx.unk_2C;
+ sp110.x = globalCtx->envCtx.dirLight1.params.dir.x;
+ sp110.y = globalCtx->envCtx.dirLight1.params.dir.y;
+ sp110.z = globalCtx->envCtx.dirLight1.params.dir.z;
Matrix_Push();
diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
index d16263860a..df630315c9 100644
--- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
+++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
@@ -585,10 +585,10 @@ void BossTw_Init(Actor* thisx, GlobalContext* globalCtx2) {
}
}
- this->fogR = globalCtx->lightCtx.unk_07;
- this->fogG = globalCtx->lightCtx.unk_08;
- this->fogB = globalCtx->lightCtx.unk_09;
- this->fogNear = globalCtx->lightCtx.unk_0A;
+ this->fogR = globalCtx->lightCtx.fogColor[0];
+ this->fogG = globalCtx->lightCtx.fogColor[1];
+ this->fogB = globalCtx->lightCtx.fogColor[2];
+ this->fogNear = globalCtx->lightCtx.fogNear;
this->fogFar = 1000.0f;
}
@@ -2852,10 +2852,10 @@ void BossTw_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
this->collider.base.colType = COLTYPE_HIT3;
- Math_ApproachF(&this->fogR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
- Math_ApproachF(&this->fogG, globalCtx->lightCtx.unk_08, 1.0f, 10.0f);
- Math_ApproachF(&this->fogB, globalCtx->lightCtx.unk_09, 1.0f, 10.0f);
- Math_ApproachF(&this->fogNear, globalCtx->lightCtx.unk_0A, 1.0f, 10.0f);
+ Math_ApproachF(&this->fogR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
+ Math_ApproachF(&this->fogG, globalCtx->lightCtx.fogColor[1], 1.0f, 10.0f);
+ Math_ApproachF(&this->fogB, globalCtx->lightCtx.fogColor[2], 1.0f, 10.0f);
+ Math_ApproachF(&this->fogNear, globalCtx->lightCtx.fogNear, 1.0f, 10.0f);
Math_ApproachF(&this->fogFar, 1000.0f, 1.0f, 10.0f);
this->work[CS_TIMER_1]++;
this->work[CS_TIMER_2]++;
@@ -2979,10 +2979,10 @@ void BossTw_TwinrovaUpdate(Actor* thisx, GlobalContext* globalCtx2) {
this->unk_5F8 = 0;
this->collider.base.colType = COLTYPE_HIT3;
- Math_ApproachF(&this->fogR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
- Math_ApproachF(&this->fogG, globalCtx->lightCtx.unk_08, 1.0f, 10.0f);
- Math_ApproachF(&this->fogB, globalCtx->lightCtx.unk_09, 1.0f, 10.0f);
- Math_ApproachF(&this->fogNear, globalCtx->lightCtx.unk_0A, 1.0f, 10.0f);
+ Math_ApproachF(&this->fogR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
+ Math_ApproachF(&this->fogG, globalCtx->lightCtx.fogColor[1], 1.0f, 10.0f);
+ Math_ApproachF(&this->fogB, globalCtx->lightCtx.fogColor[2], 1.0f, 10.0f);
+ Math_ApproachF(&this->fogNear, globalCtx->lightCtx.fogNear, 1.0f, 10.0f);
Math_ApproachF(&this->fogFar, 1000.0f, 1.0f, 10.0f);
this->work[CS_TIMER_1]++;
@@ -3529,7 +3529,7 @@ void BossTw_Draw(Actor* thisx, GlobalContext* globalCtx2) {
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
this->skelAnime.dListCount, BossTw_OverrideLimbDraw, BossTw_PostLimbDraw, this);
Matrix_Pop();
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
}
if (this->actor.params == TW_KOTAKE) {
@@ -3888,8 +3888,8 @@ void BossTw_TwinrovaDraw(Actor* thisx, GlobalContext* globalCtx2) {
Matrix_Pop();
Matrix_MultVec3f(&D_8094A9EC, &this->beamOrigin);
- POLY_OPA_DISP = Gfx_SetFog2(POLY_OPA_DISP, globalCtx->lightCtx.unk_07, globalCtx->lightCtx.unk_08,
- globalCtx->lightCtx.unk_09, 0, globalCtx->lightCtx.unk_0A, 1000);
+ POLY_OPA_DISP = Gfx_SetFog2(POLY_OPA_DISP, globalCtx->lightCtx.fogColor[0], globalCtx->lightCtx.fogColor[1],
+ globalCtx->lightCtx.fogColor[2], 0, globalCtx->lightCtx.fogNear, 1000);
}
BossTw_DrawEffects(globalCtx);
diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
index 43115ab545..550a150170 100644
--- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
+++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
@@ -508,33 +508,33 @@ void BossVa_Tumor(GlobalContext* globalCtx, BossVa* this, s32 count, s16 scale,
}
void BossVa_SetSparkEnv(GlobalContext* globalCtx) {
- globalCtx->envCtx.unk_8C[0][0] = 0xA;
- globalCtx->envCtx.unk_8C[0][1] = 0xA;
- globalCtx->envCtx.unk_8C[0][2] = 0xA;
- globalCtx->envCtx.unk_8C[1][0] = 0x73;
- globalCtx->envCtx.unk_8C[1][1] = 0x41;
- globalCtx->envCtx.unk_8C[1][2] = 0x64;
- globalCtx->envCtx.unk_8C[2][0] = 0x78;
- globalCtx->envCtx.unk_8C[2][1] = 0x78;
- globalCtx->envCtx.unk_8C[2][2] = 0x46;
+ globalCtx->envCtx.adjAmbientColor[0] = 0xA;
+ globalCtx->envCtx.adjAmbientColor[1] = 0xA;
+ globalCtx->envCtx.adjAmbientColor[2] = 0xA;
+ globalCtx->envCtx.adjLight1Color[0] = 0x73;
+ globalCtx->envCtx.adjLight1Color[1] = 0x41;
+ globalCtx->envCtx.adjLight1Color[2] = 0x64;
+ globalCtx->envCtx.adjFogColor[0] = 0x78;
+ globalCtx->envCtx.adjFogColor[1] = 0x78;
+ globalCtx->envCtx.adjFogColor[2] = 0x46;
}
void BossVa_SetDeathEnv(GlobalContext* globalCtx) {
- globalCtx->envCtx.unk_8C[2][0] = 0xDC;
- globalCtx->envCtx.unk_8C[2][1] = 0xDC;
- globalCtx->envCtx.unk_8C[2][2] = 0x96;
- globalCtx->envCtx.unk_9E = -0x3E8;
- globalCtx->envCtx.unk_A0 = -0x384;
- globalCtx->envCtx.unk_8C[0][0] = 0xC8;
- globalCtx->envCtx.unk_8C[0][1] = 0xC8;
- globalCtx->envCtx.unk_8C[0][2] = 0xC8;
- globalCtx->envCtx.unk_8C[1][0] = 0xD7;
- globalCtx->envCtx.unk_8C[1][1] = 0xA5;
- globalCtx->envCtx.unk_8C[1][2] = 0xC8;
- globalCtx->envCtx.unk_E2[0] = 0xDC;
- globalCtx->envCtx.unk_E2[1] = 0xDC;
- globalCtx->envCtx.unk_E2[2] = 0x96;
- globalCtx->envCtx.unk_E2[3] = 0x64;
+ globalCtx->envCtx.adjFogColor[0] = 0xDC;
+ globalCtx->envCtx.adjFogColor[1] = 0xDC;
+ globalCtx->envCtx.adjFogColor[2] = 0x96;
+ globalCtx->envCtx.adjFogNear = -0x3E8;
+ globalCtx->envCtx.adjFogFar = -0x384;
+ globalCtx->envCtx.adjAmbientColor[0] = 0xC8;
+ globalCtx->envCtx.adjAmbientColor[1] = 0xC8;
+ globalCtx->envCtx.adjAmbientColor[2] = 0xC8;
+ globalCtx->envCtx.adjLight1Color[0] = 0xD7;
+ globalCtx->envCtx.adjLight1Color[1] = 0xA5;
+ globalCtx->envCtx.adjLight1Color[2] = 0xC8;
+ globalCtx->envCtx.screenFillColor[0] = 0xDC;
+ globalCtx->envCtx.screenFillColor[1] = 0xDC;
+ globalCtx->envCtx.screenFillColor[2] = 0x96;
+ globalCtx->envCtx.screenFillColor[3] = 0x64;
}
EnBoom* BossVa_FindBoomerang(GlobalContext* globalCtx) {
@@ -630,7 +630,8 @@ void BossVa_Init(Actor* thisx, GlobalContext* globalCtx2) {
warpId = ACTOR_DOOR_WARP1;
}
Actor_Spawn(&globalCtx->actorCtx, globalCtx, warpId, this->actor.world.pos.x, this->actor.world.pos.y,
- this->actor.world.pos.z, 0, 0, 0, 0); //! params could be WARP_DUNGEON_CHILD however this can also spawn Ru1
+ this->actor.world.pos.z, 0, 0, 0,
+ 0); //! params could be WARP_DUNGEON_CHILD however this can also spawn Ru1
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_ITEM_B_HEART, this->actor.world.pos.x + 160.0f,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0);
sDoorState = 100;
@@ -642,10 +643,10 @@ void BossVa_Init(Actor* thisx, GlobalContext* globalCtx2) {
sCsState = INTRO_CALL_BARI;
sDoorState = 100;
func_8002DF54(globalCtx, &this->actor, 1);
- globalCtx->envCtx.unk_E2[0] = 0xDC;
- globalCtx->envCtx.unk_E2[1] = 0xDC;
- globalCtx->envCtx.unk_E2[2] = 0xBE;
- globalCtx->envCtx.unk_E2[3] = 0xD2;
+ globalCtx->envCtx.screenFillColor[0] = 0xDC;
+ globalCtx->envCtx.screenFillColor[1] = 0xDC;
+ globalCtx->envCtx.screenFillColor[2] = 0xBE;
+ globalCtx->envCtx.screenFillColor[3] = 0xD2;
func_80064520(globalCtx, &globalCtx->csCtx);
sCsCamera = Gameplay_CreateSubCamera(globalCtx);
Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_WAIT);
@@ -778,10 +779,10 @@ void BossVa_BodyIntro(BossVa* this, GlobalContext* globalCtx) {
}
break;
case INTRO_START:
- globalCtx->envCtx.unk_E2[0] = 0xDC;
- globalCtx->envCtx.unk_E2[1] = 0xDC;
- globalCtx->envCtx.unk_E2[2] = 0xBE;
- globalCtx->envCtx.unk_E2[3] = 0xD2;
+ globalCtx->envCtx.screenFillColor[0] = 0xDC;
+ globalCtx->envCtx.screenFillColor[1] = 0xDC;
+ globalCtx->envCtx.screenFillColor[2] = 0xBE;
+ globalCtx->envCtx.screenFillColor[3] = 0xD2;
func_8002DF54(globalCtx, &this->actor, 8);
player->actor.world.rot.y = player->actor.shape.rot.y = 0x7FFF;
sCsState++;
@@ -1552,9 +1553,10 @@ void BossVa_BodyDeath(BossVa* this, GlobalContext* globalCtx) {
this->unk_1AC = Math_Vec3f_Yaw(&sCameraEye, &sCameraNextAt) - 0x100;
this->unk_1B0 = 15;
- globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 0xFF;
- globalCtx->envCtx.unk_E2[3] = 0;
- globalCtx->envCtx.unk_E1 = 1;
+ globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] =
+ globalCtx->envCtx.screenFillColor[2] = 0xFF;
+ globalCtx->envCtx.screenFillColor[3] = 0;
+ globalCtx->envCtx.fillScreen = true;
sCsState++;
case DEATH_BODY_TUMORS:
this->unk_1AC += 0x100;
@@ -1652,7 +1654,7 @@ void BossVa_BodyDeath(BossVa* this, GlobalContext* globalCtx) {
}
case DEATH_FINISH:
Rand_CenteredFloat(0.5f);
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.fillScreen = false;
break;
}
@@ -1671,8 +1673,8 @@ void BossVa_BodyDeath(BossVa* this, GlobalContext* globalCtx) {
Math_SmoothStepToS(&this->vaBodySpinRate, 0, 1, 0xC8, 0);
Math_SmoothStepToS(&this->vaCamRotMod, 0, 1, 0xC8, 0);
Math_SmoothStepToS(&this->bodyGlow, 200, 1, 10, 0);
- if (globalCtx->envCtx.unk_E2[3] != 0) {
- globalCtx->envCtx.unk_E2[3] -= 50;
+ if (globalCtx->envCtx.screenFillColor[3] != 0) {
+ globalCtx->envCtx.screenFillColor[3] -= 50;
}
Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f);
@@ -2818,22 +2820,22 @@ void BossVa_Update(Actor* thisx, GlobalContext* globalCtx2) {
BossVa_UpdateEffects(globalCtx);
for (i = 2; i >= 0; i--) {
- if ((globalCtx->envCtx.unk_8C[0][i] - 1) > 0) {
- globalCtx->envCtx.unk_8C[0][i] -= 1;
+ if ((globalCtx->envCtx.adjAmbientColor[i] - 1) > 0) {
+ globalCtx->envCtx.adjAmbientColor[i] -= 1;
} else {
- globalCtx->envCtx.unk_8C[0][i] = 0;
+ globalCtx->envCtx.adjAmbientColor[i] = 0;
}
- if ((globalCtx->envCtx.unk_8C[1][i] - 10) > 0) {
- globalCtx->envCtx.unk_8C[1][i] -= 10;
+ if ((globalCtx->envCtx.adjLight1Color[i] - 10) > 0) {
+ globalCtx->envCtx.adjLight1Color[i] -= 10;
} else {
- globalCtx->envCtx.unk_8C[1][i] = 0;
+ globalCtx->envCtx.adjLight1Color[i] = 0;
}
- if ((globalCtx->envCtx.unk_8C[2][i] - 10) > 0) {
- globalCtx->envCtx.unk_8C[2][i] -= 10;
+ if ((globalCtx->envCtx.adjFogColor[i] - 10) > 0) {
+ globalCtx->envCtx.adjFogColor[i] -= 10;
} else {
- globalCtx->envCtx.unk_8C[2][i] = 0;
+ globalCtx->envCtx.adjFogColor[i] = 0;
}
}
@@ -3187,17 +3189,17 @@ void BossVa_Draw(Actor* thisx, GlobalContext* globalCtx) {
switch (this->actor.params) {
case BOSSVA_BODY:
- if (globalCtx->envCtx.unk_9E != 0) {
- globalCtx->envCtx.unk_9E += 0x15E;
- if (globalCtx->envCtx.unk_9E > 0) {
- globalCtx->envCtx.unk_9E = 0;
+ if (globalCtx->envCtx.adjFogNear != 0) {
+ globalCtx->envCtx.adjFogNear += 0x15E;
+ if (globalCtx->envCtx.adjFogNear > 0) {
+ globalCtx->envCtx.adjFogNear = 0;
}
}
- if (globalCtx->envCtx.unk_A0 != 0) {
- globalCtx->envCtx.unk_A0 += 0x15E;
- if (globalCtx->envCtx.unk_A0 > 0) {
- globalCtx->envCtx.unk_A0 = 0;
+ if (globalCtx->envCtx.adjFogFar != 0) {
+ globalCtx->envCtx.adjFogFar += 0x15E;
+ if (globalCtx->envCtx.adjFogFar > 0) {
+ globalCtx->envCtx.adjFogFar = 0;
}
}
diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c
index d99d0da5b0..ac04a78843 100644
--- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c
+++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c
@@ -811,7 +811,7 @@ void func_809691BC(Demo6K* this, GlobalContext* globalCtx, s32 params) {
endPos.y = csAction->endPos.y;
endPos.z = csAction->endPos.z;
- temp = func_8006F93C(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames);
+ temp = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames);
this->actor.world.pos.x = (((endPos.x - startPos.x) * temp) + startPos.x);
this->actor.world.pos.y = (((endPos.y - startPos.y) * temp) + startPos.y);
diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c
index 80c9229780..a60de41bfd 100644
--- a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c
+++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c
@@ -172,7 +172,8 @@ void DemoDu_CsFireMedallion_SpawnDoorWarp(DemoDu* this, GlobalContext* globalCtx
f32 posY = this->actor.world.pos.y;
f32 posZ = this->actor.world.pos.z;
- Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES);
+ Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0,
+ WARP_SAGES);
}
// Gives the Fire Medallion to Link.
@@ -445,7 +446,7 @@ void DemoDu_CsGoronsRuby_DaruniaFalling(DemoDu* this, GlobalContext* globalCtx)
Vec3f* pos = &this->actor.world.pos;
if (npcAction != NULL) {
- f32 traveledPercent = func_8006F93C(npcAction->endFrame, npcAction->startFrame, csCtx->frames);
+ f32 traveledPercent = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames);
startPos.x = npcAction->startPos.x;
startPos.y = npcAction->startPos.y;
diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c
index c774f60a2a..07dbbca9d8 100644
--- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c
+++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c
@@ -128,8 +128,9 @@ void DemoEffect_SetupUpdate(DemoEffect* this, DemoEffectFunc updateFunc) {
* Gives a number on the range of 0.0f - 1.0f representing current cutscene action completion percentage.
*/
f32 DemoEffect_InterpolateCsFrames(GlobalContext* globalCtx, s32 csActionId) {
- f32 interpolated = func_8006F93C(globalCtx->csCtx.npcActions[csActionId]->endFrame,
- globalCtx->csCtx.npcActions[csActionId]->startFrame, globalCtx->csCtx.frames);
+ f32 interpolated =
+ Environment_LerpWeight(globalCtx->csCtx.npcActions[csActionId]->endFrame,
+ globalCtx->csCtx.npcActions[csActionId]->startFrame, globalCtx->csCtx.frames);
if (interpolated > 1.0f) {
interpolated = 1.0f;
}
diff --git a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c
index d6dcd182be..f050b65d30 100644
--- a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c
+++ b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c
@@ -136,7 +136,7 @@ void func_8097CB0C(DemoGo* this, GlobalContext* globalCtx) {
if (globalCtx->csCtx.state != CS_STATE_IDLE) {
npcAction = csCtx->npcActions[func_8097C870(this)];
if (npcAction != NULL) {
- temp_ret = func_8006F93C(npcAction->endFrame, npcAction->startFrame, csCtx->frames);
+ temp_ret = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames);
startPos.x = npcAction->startPos.x;
startPos.y = npcAction->startPos.y;
startPos.z = npcAction->startPos.z;
diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c
index 8a8635340f..2685623422 100644
--- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c
+++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c
@@ -334,7 +334,8 @@ void func_8097E744(DemoGt* this, GlobalContext* globalCtx, u32 actionIdx) {
f32 someFloat;
if (npcAction != NULL) {
- someFloat = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 0);
+ someFloat =
+ Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 0);
startX = npcAction->startPos.x;
startY = npcAction->startPos.y;
startZ = npcAction->startPos.z;
@@ -579,7 +580,7 @@ void func_8097F280(DemoGt* this, GlobalContext* globalCtx) {
unk198[0]++;
unk198[1]--;
} else if (globalCtx->csCtx.frames < 170) {
- temp_f0 = func_8006F9BC(170, 160, globalCtx->csCtx.frames, 0, 0);
+ temp_f0 = Environment_LerpWeightAccelDecel(170, 160, globalCtx->csCtx.frames, 0, 0);
unk178[0] = (temp_f0 * -63.0f) + 163.0f;
unk178[1] = (temp_f0 * -155.0f) + 255.0f;
@@ -817,7 +818,7 @@ void func_8097FDDC(DemoGt* this, GlobalContext* globalCtx) {
unk198[0]++;
unk198[1]--;
} else if (globalCtx->csCtx.frames < 620) {
- f32 temp_f0 = func_8006F9BC(620, 610, globalCtx->csCtx.frames, 0, 0);
+ f32 temp_f0 = Environment_LerpWeightAccelDecel(620, 610, globalCtx->csCtx.frames, 0, 0);
unk178[0] = (temp_f0 * (-13.0f)) + 163.0f;
unk178[1] = (temp_f0 * (-43.0f)) + 193.0f;
diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
index 41f53b8583..122b9d8659 100644
--- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
+++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
@@ -305,7 +305,8 @@ void func_80985358(DemoIm* this, GlobalContext* globalCtx) {
f32 posY = this->actor.world.pos.y;
f32 posZ = this->actor.world.pos.z;
- Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES);
+ Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0,
+ WARP_SAGES);
}
void func_809853B4(DemoIm* this, GlobalContext* globalCtx) {
diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c
index f0eb882d7f..1d826e92d5 100644
--- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c
+++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c
@@ -174,8 +174,6 @@ static s16 D_8098CF80;
static s16 sRainScale;
static s16 D_8098CF84;
-extern Mtx D_01000000; // perspective mtx
-
extern Gfx D_06000080[]; // rain DL
extern Gfx D_06000DE0[]; // rocks DL
extern Gfx D_06007440[]; // DoT DL left
@@ -305,19 +303,19 @@ void DemoKankyo_SetupType(DemoKankyo* this, GlobalContext* globalCtx) {
}
break;
case DEMOKANKYO_WARP_OUT:
- globalCtx->envCtx.unk_E2[0] = 0xFF;
- globalCtx->envCtx.unk_E2[1] = 0xFF;
- globalCtx->envCtx.unk_E2[2] = 0xFF;
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.screenFillColor[0] = 0xFF;
+ globalCtx->envCtx.screenFillColor[1] = 0xFF;
+ globalCtx->envCtx.screenFillColor[2] = 0xFF;
+ globalCtx->envCtx.fillScreen = false;
if (this->warpTimer < 21 && this->warpTimer >= 15) {
temp = (this->warpTimer - 15.0f) / 5.0f;
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[3] = 255 - 255 * temp;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[3] = 255 - 255 * temp;
}
if (this->warpTimer < 15 && this->warpTimer >= 4) {
temp = (this->warpTimer - 4.0f) / 10.0f;
- globalCtx->envCtx.unk_E1 = 1;
- globalCtx->envCtx.unk_E2[3] = 255 * temp;
+ globalCtx->envCtx.fillScreen = true;
+ globalCtx->envCtx.screenFillColor[3] = 255 * temp;
}
if (this->warpTimer == 15) {
player->actor.draw = NULL;
@@ -390,7 +388,7 @@ void DemoKankyo_SetRockPos(DemoKankyo* this, GlobalContext* globalCtx, s32 param
endPos.x = csAction->endPos.x;
endPos.y = csAction->endPos.y;
endPos.z = csAction->endPos.z;
- temp_f0 = func_8006F93C(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames);
+ temp_f0 = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames);
this->actor.world.pos.x = ((endPos.x - startPos.x) * temp_f0) + startPos.x;
this->actor.world.pos.y = ((endPos.y - startPos.y) * temp_f0) + startPos.y;
this->actor.world.pos.z = ((endPos.z - startPos.z) * temp_f0) + startPos.z;
@@ -822,7 +820,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, GlobalContext* globalCtx) {
case 2:
if (this->actor.params == DEMOKANKYO_WARP_OUT) {
if (i == 0) {
- func_800776E4(globalCtx);
+ Environment_WarpSongLeave(globalCtx);
this->unk_150[i].unk_22++;
}
} else if (i + 1 == this->sparkleCounter && globalCtx->csCtx.state == CS_STATE_IDLE) {
diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c
index 677bcccbf3..36a268d1a3 100644
--- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c
+++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c
@@ -229,7 +229,8 @@ void func_8098E86C(DemoSa* this, GlobalContext* globalCtx) {
f32 posY = world->y;
f32 posZ = world->z;
- Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES);
+ Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0,
+ WARP_SAGES);
}
void func_8098E8C8(DemoSa* this, GlobalContext* globalCtx) {
diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
index 74e4a526fe..48d0a4545c 100644
--- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
+++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
@@ -91,7 +91,8 @@ void DoorWarp1_Destroy(Actor* thisx, GlobalContext* globalCtx) {
LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, this->lowerLight);
for (i = 0; i < 3; i++) {
- globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] = globalCtx->envCtx.unk_8C[1][i] = 0;
+ globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = globalCtx->envCtx.adjLight1Color[i] =
+ 0;
}
//! @bug SkelAnime_Free is not called for crystal variants
}
@@ -204,10 +205,10 @@ void DoorWarp1_SetupAdultDungeonWarp(DoorWarp1* this, GlobalContext* globalCtx)
this->crystalAlpha = 0.0f;
this->unk_19C = 0.0f;
- Lights_PointNoGlowSetInfo(&this->upperLightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
- 200, 255, 255, 255);
- Lights_PointNoGlowSetInfo(&this->lowerLightInfo, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
- 200, 255, 255, 255);
+ Lights_PointNoGlowSetInfo(&this->upperLightInfo, this->actor.world.pos.x, this->actor.world.pos.y,
+ this->actor.world.pos.z, 200, 255, 255, 255);
+ Lights_PointNoGlowSetInfo(&this->lowerLightInfo, this->actor.world.pos.x, this->actor.world.pos.y,
+ this->actor.world.pos.z, 200, 255, 255, 255);
DoorWarp1_SetupAction(this, func_8099A3A4);
}
@@ -234,10 +235,11 @@ void DoorWarp1_SetupBlueCrystal(DoorWarp1* this, GlobalContext* globalCtx) {
this->actor.shape.yOffset = 800.0f;
for (i = 0; i < 3; i++) {
- globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] = globalCtx->envCtx.unk_8C[1][i] = -255;
+ globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = globalCtx->envCtx.adjLight1Color[i] =
+ -255;
}
- globalCtx->envCtx.unk_9E = -500;
+ globalCtx->envCtx.adjFogNear = -500;
this->warpTimer = 30;
this->unk_1B8 = 4000;
DoorWarp1_SetupAction(this, DoorWarp1_BlueCrystal);
@@ -294,22 +296,22 @@ void DoorWarp1_BlueCrystal(DoorWarp1* this, GlobalContext* globalCtx) {
void func_80999214(DoorWarp1* this, GlobalContext* globalCtx) {
s32 temp_f4;
- f32 phi_f0;
+ f32 darkness;
s16 i;
Math_SmoothStepToF(&this->crystalAlpha, 255.0f, 0.2f, 5.0f, 0.1f);
- phi_f0 = (f32)(40 - this->warpTimer) / 40.0f;
- phi_f0 = CLAMP_MIN(phi_f0, 0);
+ darkness = (f32)(40 - this->warpTimer) / 40.0f;
+ darkness = CLAMP_MIN(darkness, 0);
for (i = 0; i < 3; i++) {
- globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] =
- globalCtx->envCtx.unk_8C[1][i] = -255.0f * phi_f0;
+ globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] = globalCtx->envCtx.adjLight1Color[i] =
+ -255 * darkness;
}
- globalCtx->envCtx.unk_9E = -500.0f * phi_f0;
+ globalCtx->envCtx.adjFogNear = -500.0f * darkness;
this->warpTimer++;
- if (phi_f0 <= 0) {
+ if (darkness <= 0) {
DoorWarp1_SetupAction(this, func_80999348);
}
this->actor.shape.rot.y += 0x320;
@@ -780,20 +782,20 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, GlobalContext* globalCtx) {
gSaveContext.nextTransition = 7;
}
if (this->warpTimer >= 141) {
- f32 phi_f0;
+ f32 screenFillAlpha;
- globalCtx->envCtx.unk_E1 = 1;
- phi_f0 = (f32)(this->warpTimer - 140) / 20.0f;
+ globalCtx->envCtx.fillScreen = true;
+ screenFillAlpha = (f32)(this->warpTimer - 140) / 20.0f;
- if (phi_f0 > 1.0f) {
- phi_f0 = 1.0f;
+ if (screenFillAlpha > 1.0f) {
+ screenFillAlpha = 1.0f;
}
- globalCtx->envCtx.unk_E2[0] = 160;
- globalCtx->envCtx.unk_E2[1] = 160;
- globalCtx->envCtx.unk_E2[2] = 160;
- globalCtx->envCtx.unk_E2[3] = (u32)(255.0f * phi_f0);
+ globalCtx->envCtx.screenFillColor[0] = 160;
+ globalCtx->envCtx.screenFillColor[1] = 160;
+ globalCtx->envCtx.screenFillColor[2] = 160;
+ globalCtx->envCtx.screenFillColor[3] = (u32)(255.0f * screenFillAlpha);
- osSyncPrintf("\nparcent=[%f]", phi_f0);
+ osSyncPrintf("\nparcent=[%f]", screenFillAlpha);
}
Lights_PointNoGlowSetInfo(&this->upperLightInfo, (s16)player->actor.world.pos.x + 10.0f,
(s16)player->actor.world.pos.y + 10.0f, (s16)player->actor.world.pos.z + 10.0f, 235, 255,
@@ -817,12 +819,12 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, GlobalContext* globalCtx) {
s16 i;
for (i = 0; i < 3; i++) {
- globalCtx->envCtx.unk_8C[0][i] = globalCtx->envCtx.unk_8C[2][i] =
- globalCtx->envCtx.unk_8C[1][i] = -255.0f * temp_f0_2;
+ globalCtx->envCtx.adjAmbientColor[i] = globalCtx->envCtx.adjFogColor[i] =
+ globalCtx->envCtx.adjLight1Color[i] = -255.0f * temp_f0_2;
}
- globalCtx->envCtx.unk_9E = -500.0f * temp_f0_2;
- if (globalCtx->envCtx.unk_9E < -300) {
+ globalCtx->envCtx.adjFogNear = -500.0f * temp_f0_2;
+ if (globalCtx->envCtx.adjFogNear < -300) {
globalCtx->roomCtx.curRoom.segment = NULL;
}
}
@@ -928,8 +930,8 @@ void DoorWarp1_DrawWarp(DoorWarp1* this, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_door_warp1.c", 2173);
temp_f0 = 1.0f - (2.0f - this->unk_194) / 1.7f;
- if (this->actor.params != WARP_YELLOW && this->actor.params != WARP_DESTINATION && this->actor.params != WARP_ORANGE &&
- this->actor.params != WARP_GREEN && this->actor.params != WARP_RED) {
+ if (this->actor.params != WARP_YELLOW && this->actor.params != WARP_DESTINATION &&
+ this->actor.params != WARP_ORANGE && this->actor.params != WARP_GREEN && this->actor.params != WARP_RED) {
this->unk_19C += (s16)(temp_f0 * 15.0f);
}
if (this->actor.params == WARP_DESTINATION) {
diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c
index 39f5ed8cd5..81cc71bf19 100644
--- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c
+++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c
@@ -181,28 +181,28 @@ void EnBom_Explode(EnBom* this, GlobalContext* globalCtx) {
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->explosionCollider.base);
}
- if (globalCtx->envCtx.unk_8C[1][0] != 0) {
- globalCtx->envCtx.unk_8C[1][0] -= 0x19;
+ if (globalCtx->envCtx.adjLight1Color[0] != 0) {
+ globalCtx->envCtx.adjLight1Color[0] -= 25;
}
- if (globalCtx->envCtx.unk_8C[1][1] != 0) {
- globalCtx->envCtx.unk_8C[1][1] -= 0x19;
+ if (globalCtx->envCtx.adjLight1Color[1] != 0) {
+ globalCtx->envCtx.adjLight1Color[1] -= 25;
}
- if (globalCtx->envCtx.unk_8C[1][2] != 0) {
- globalCtx->envCtx.unk_8C[1][2] -= 0x19;
+ if (globalCtx->envCtx.adjLight1Color[2] != 0) {
+ globalCtx->envCtx.adjLight1Color[2] -= 25;
}
- if (globalCtx->envCtx.unk_8C[0][0] != 0) {
- globalCtx->envCtx.unk_8C[0][0] -= 0x19;
+ if (globalCtx->envCtx.adjAmbientColor[0] != 0) {
+ globalCtx->envCtx.adjAmbientColor[0] -= 25;
}
- if (globalCtx->envCtx.unk_8C[0][1] != 0) {
- globalCtx->envCtx.unk_8C[0][1] -= 0x19;
+ if (globalCtx->envCtx.adjAmbientColor[1] != 0) {
+ globalCtx->envCtx.adjAmbientColor[1] -= 25;
}
- if (globalCtx->envCtx.unk_8C[0][2] != 0) {
- globalCtx->envCtx.unk_8C[0][2] -= 0x19;
+ if (globalCtx->envCtx.adjAmbientColor[2] != 0) {
+ globalCtx->envCtx.adjAmbientColor[2] -= 25;
}
if (this->timer == 0) {
@@ -315,8 +315,13 @@ void EnBom_Update(Actor* thisx, GlobalContext* globalCtx2) {
}
Audio_PlayActorSound2(thisx, NA_SE_IT_BOMB_EXPLOSION);
- globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = 0xFA;
- globalCtx->envCtx.unk_8C[0][0] = globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = 0xFA;
+
+ globalCtx->envCtx.adjLight1Color[0] = globalCtx->envCtx.adjLight1Color[1] =
+ globalCtx->envCtx.adjLight1Color[2] = 250;
+
+ globalCtx->envCtx.adjAmbientColor[0] = globalCtx->envCtx.adjAmbientColor[1] =
+ globalCtx->envCtx.adjAmbientColor[2] = 250;
+
Camera_AddQuake(&globalCtx->mainCamera, 2, 0xB, 8);
thisx->params = BOMB_EXPLOSION;
this->timer = 10;
diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c
index 258ca8d403..aaf9ef69e5 100644
--- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c
+++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c
@@ -276,28 +276,28 @@ void EnBombf_Explode(EnBombf* this, GlobalContext* globalCtx) {
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->explosionCollider.base);
}
- if (globalCtx->envCtx.unk_8C[1][0] != 0) {
- globalCtx->envCtx.unk_8C[1][0] -= 0x19;
+ if (globalCtx->envCtx.adjLight1Color[0] != 0) {
+ globalCtx->envCtx.adjLight1Color[0] -= 25;
}
- if (globalCtx->envCtx.unk_8C[1][1] != 0) {
- globalCtx->envCtx.unk_8C[1][1] -= 0x19;
+ if (globalCtx->envCtx.adjLight1Color[1] != 0) {
+ globalCtx->envCtx.adjLight1Color[1] -= 25;
}
- if (globalCtx->envCtx.unk_8C[1][2] != 0) {
- globalCtx->envCtx.unk_8C[1][2] -= 0x19;
+ if (globalCtx->envCtx.adjLight1Color[2] != 0) {
+ globalCtx->envCtx.adjLight1Color[2] -= 25;
}
- if (globalCtx->envCtx.unk_8C[0][0] != 0) {
- globalCtx->envCtx.unk_8C[0][0] -= 0x19;
+ if (globalCtx->envCtx.adjAmbientColor[0] != 0) {
+ globalCtx->envCtx.adjAmbientColor[0] -= 25;
}
- if (globalCtx->envCtx.unk_8C[0][1] != 0) {
- globalCtx->envCtx.unk_8C[0][1] -= 0x19;
+ if (globalCtx->envCtx.adjAmbientColor[1] != 0) {
+ globalCtx->envCtx.adjAmbientColor[1] -= 25;
}
- if (globalCtx->envCtx.unk_8C[0][2] != 0) {
- globalCtx->envCtx.unk_8C[0][2] -= 0x19;
+ if (globalCtx->envCtx.adjAmbientColor[2] != 0) {
+ globalCtx->envCtx.adjAmbientColor[2] -= 25;
}
if (this->timer == 0) {
@@ -425,8 +425,10 @@ void EnBombf_Update(Actor* thisx, GlobalContext* globalCtx) {
}
Audio_PlayActorSound2(thisx, NA_SE_IT_BOMB_EXPLOSION);
- globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = 0xFA;
- globalCtx->envCtx.unk_8C[0][0] = globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = 0xFA;
+ globalCtx->envCtx.adjLight1Color[0] = globalCtx->envCtx.adjLight1Color[1] =
+ globalCtx->envCtx.adjLight1Color[2] = 250;
+ globalCtx->envCtx.adjAmbientColor[0] = globalCtx->envCtx.adjAmbientColor[1] =
+ globalCtx->envCtx.adjAmbientColor[2] = 250;
Camera_AddQuake(&globalCtx->mainCamera, 2, 0xB, 8);
thisx->params = BOMBFLOWER_EXPLOSION;
this->timer = 10;
diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c
index b2a0d7cb27..e12208b697 100644
--- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c
+++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c
@@ -113,7 +113,7 @@ void EnDs_BrewOddPotion3(EnDs* this, GlobalContext* globalCtx) {
}
Math_StepToF(&this->unk_1E4, 0, 0.03f);
- func_800773A8(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f);
+ Environment_AdjustLights(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f);
}
void EnDs_BrewOddPotion2(EnDs* this, GlobalContext* globalCtx) {
@@ -135,7 +135,7 @@ void EnDs_BrewOddPotion1(EnDs* this, GlobalContext* globalCtx) {
}
Math_StepToF(&this->unk_1E4, 1.0f, 0.01f);
- func_800773A8(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f);
+ Environment_AdjustLights(globalCtx, this->unk_1E4 * (2.0f - this->unk_1E4), 0.0f, 0.1f, 1.0f);
}
void EnDs_OfferOddPotion(EnDs* this, GlobalContext* globalCtx) {
diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c
index f5c1c216fa..93b118b454 100644
--- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c
+++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c
@@ -1248,7 +1248,7 @@ void func_80A04F94(EnElf* this, GlobalContext* globalCtx) {
Math_SmoothStepToS(&this->actor.shape.rot.y, this->unk_2BC, 5, 0x1000, 0x400);
this->timer++;
Math_StepToF(&this->unk_2A4, 1.0f, 0.05f);
- func_800773A8(globalCtx, SQ(this->unk_2A4), player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f);
+ Environment_AdjustLights(globalCtx, SQ(this->unk_2A4), player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f);
}
// ask to talk to saria again
@@ -1429,7 +1429,8 @@ void func_80A053F0(Actor* thisx, GlobalContext* globalCtx) {
if (this->unk_2A4 > 0.0f) {
Math_StepToF(&this->unk_2A4, 0.0f, 0.05f);
- func_800773A8(globalCtx, SQ(this->unk_2A4) * this->unk_2A4, player->actor.projectedPos.z + 780.0f, 0.2f, 0.5f);
+ Environment_AdjustLights(globalCtx, SQ(this->unk_2A4) * this->unk_2A4, player->actor.projectedPos.z + 780.0f,
+ 0.2f, 0.5f);
}
// temp probably fake match
@@ -1547,7 +1548,7 @@ void EnElf_GetCutsceneNextPos(Vec3f* vec, GlobalContext* globalCtx, s32 action)
endPos.y = npcAction->endPos.y;
endPos.z = npcAction->endPos.z;
- lerp = func_8006F93C(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames);
+ lerp = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames);
vec->x = ((endPos.x - startPos.x) * lerp) + startPos.x;
vec->y = ((endPos.y - startPos.y) * lerp) + startPos.y;
diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c
index 350965ba25..26fa50fde9 100644
--- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c
+++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c
@@ -269,16 +269,16 @@ void EnEncount2_Update(Actor* thisx, GlobalContext* globalCtx2) {
if (!this->isNotDeathMountain) {
this->unk17C = this->envEffectsTimer / 60.0f;
this->unk160 = this->unk17C * -50.0f;
- globalCtx->envCtx.unk_8C[0][0] = (s16)this->unk160 * -1.5f;
- globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = this->unk160;
+ globalCtx->envCtx.adjAmbientColor[0] = (s16)this->unk160 * -1.5f;
+ globalCtx->envCtx.adjAmbientColor[1] = globalCtx->envCtx.adjAmbientColor[2] = this->unk160;
this->unk168 = this->unk17C * -20.0f;
- globalCtx->envCtx.unk_8C[1][0] = (s16)this->unk168 * -1.5f;
- globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = this->unk168;
+ globalCtx->envCtx.adjLight1Color[0] = (s16)this->unk168 * -1.5f;
+ globalCtx->envCtx.adjLight1Color[1] = globalCtx->envCtx.adjLight1Color[2] = this->unk168;
this->unk170 = this->unk17C * -50.0f;
- globalCtx->envCtx.unk_9E = this->unk170;
- globalCtx->envCtx.unk_8C[2][0] = (u8)((160.0f - globalCtx->envCtx.unk_CF[0]) * this->unk17C);
- globalCtx->envCtx.unk_8C[2][1] = (u8)((160.0f - globalCtx->envCtx.unk_CF[1]) * this->unk17C);
- globalCtx->envCtx.unk_8C[2][2] = (u8)((150.0f - globalCtx->envCtx.unk_CF[2]) * this->unk17C);
+ globalCtx->envCtx.adjFogNear = this->unk170;
+ globalCtx->envCtx.adjFogColor[0] = (u8)((160.0f - globalCtx->envCtx.lightSettings.fogColor[0]) * this->unk17C);
+ globalCtx->envCtx.adjFogColor[1] = (u8)((160.0f - globalCtx->envCtx.lightSettings.fogColor[1]) * this->unk17C);
+ globalCtx->envCtx.adjFogColor[2] = (u8)((150.0f - globalCtx->envCtx.lightSettings.fogColor[2]) * this->unk17C);
}
}
diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c
index 9c97f060cd..b6199f5d26 100644
--- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c
+++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c
@@ -312,7 +312,7 @@ void EnFhgFire_LightningShock(EnFhgFire* this, GlobalContext* globalCtx) {
void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) {
Player* player = GET_PLAYER(globalCtx);
- globalCtx->envCtx.unk_E1 = 0x01;
+ globalCtx->envCtx.fillScreen = true;
this->actor.shape.rot.y += 0x1000;
if (this->work[FHGFIRE_FX_TIMER] == 49) {
@@ -324,15 +324,16 @@ void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) {
globalCtx->envCtx.unk_D6 = 0x14;
}
if (this->work[FHGFIRE_FX_TIMER] >= 48) {
- globalCtx->envCtx.unk_E2[0] = globalCtx->envCtx.unk_E2[1] = globalCtx->envCtx.unk_E2[2] = 0xFF;
+ globalCtx->envCtx.screenFillColor[0] = globalCtx->envCtx.screenFillColor[1] =
+ globalCtx->envCtx.screenFillColor[2] = 255;
if ((this->work[FHGFIRE_TIMER] % 2) != 0) {
- globalCtx->envCtx.unk_E2[3] = 0x46;
+ globalCtx->envCtx.screenFillColor[3] = 70;
} else {
- globalCtx->envCtx.unk_E2[3] = 0x00;
+ globalCtx->envCtx.screenFillColor[3] = 0;
}
} else {
- globalCtx->envCtx.unk_E2[3] = 0x00;
+ globalCtx->envCtx.screenFillColor[3] = 0;
}
if (this->work[FHGFIRE_TIMER] <= 20) {
@@ -352,7 +353,7 @@ void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) {
if (this->work[FHGFIRE_TIMER] == 0) {
Actor_Kill(&this->actor);
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.fillScreen = false;
}
if (this->lensFlareTimer != 0) {
@@ -366,8 +367,10 @@ void EnFhgFire_LightningBurst(EnFhgFire* this, GlobalContext* globalCtx) {
}
}
- D_8015FCF0 = this->lensFlareOn;
- D_8015FCF8 = this->actor.world.pos;
+ // Related to scene draw config 30, only used in BossGanon_Update and
+ // loaded in z_kankyo
+ gCustomLensFlareOn = this->lensFlareOn;
+ gCustomLensFlarePos = this->actor.world.pos;
D_8015FD06 = this->lensFlareScale;
D_8015FD08 = 10.0f;
D_8015FD0C = 0;
diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c
index a36993704f..f447aa2776 100644
--- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c
+++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c
@@ -665,7 +665,7 @@ void EnFish_UpdateCutscene(EnFish* this, GlobalContext* globalCtx) {
endPos.y = csAction->endPos.y;
endPos.z = csAction->endPos.z;
- progress = func_8006F93C(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames);
+ progress = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, globalCtx->csCtx.frames);
this->actor.world.pos.x = (endPos.x - startPos.x) * progress + startPos.x;
this->actor.world.pos.y = (endPos.y - startPos.y) * progress + startPos.y + D_80A17014;
diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c
index c1926e707f..f42eb5d8b3 100644
--- a/src/overlays/actors/ovl_En_Go/z_en_go.c
+++ b/src/overlays/actors/ovl_En_Go/z_en_go.c
@@ -97,7 +97,7 @@ u16 EnGo_GetTextID(GlobalContext* globalCtx, Actor* thisx) {
if (gSaveContext.bgsFlag) {
return 0x305E;
} else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_CLAIM_CHECK) {
- if (func_800775CC(globalCtx) >= 3) {
+ if (Environment_GetBgsDayCount() >= 3) {
return 0x305E;
} else {
return 0x305D;
@@ -992,7 +992,7 @@ void func_80A40C78(EnGo* this, GlobalContext* globalCtx) {
this->actor.textId = 0x305C;
func_8010B720(globalCtx, this->actor.textId);
this->unk_1E0.unk_00 = 1;
- func_800775D8();
+ Environment_ClearBgsDayCount();
}
}
}
diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c
index dbed3614e4..d7eccc3d2b 100644
--- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c
+++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c
@@ -1004,14 +1004,14 @@ void EnGo2_BiggoronSetTextId(EnGo2* this, GlobalContext* globalCtx, Player* play
} else if (!gSaveContext.bgsFlag && (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK)) {
if (func_8002F368(globalCtx) == EXCH_ITEM_CLAIM_CHECK) {
- if (func_800775CC() >= 3) {
+ if (Environment_GetBgsDayCount() >= 3) {
textId = 0x305E;
} else {
textId = 0x305D;
}
this->actor.textId = textId;
} else {
- if (func_800775CC() >= 3) {
+ if (Environment_GetBgsDayCount() >= 3) {
textId = 0x3002;
} else {
textId = 0x305D;
@@ -1760,7 +1760,7 @@ void EnGo2_SetGetItem(EnGo2* this, GlobalContext* globalCtx) {
this->unk_194.unk_00 = 0;
switch (this->getItemId) {
case GI_CLAIM_CHECK:
- func_800775D8();
+ Environment_ClearBgsDayCount();
EnGo2_GetItemAnimation(this, globalCtx);
return;
case GI_TUNIC_GORON:
diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c
index 3f75b6bc05..897d223dec 100644
--- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c
+++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c
@@ -88,19 +88,18 @@ void EnHata_Update(Actor* thisx, GlobalContext* globalCtx2) {
f32 sin;
SkelAnime_Update(&this->skelAnime);
-
// Rotate to hang down by default
this->limbs[FLAGPOLE_LIMB_FLAG_1_BASE].y = this->limbs[FLAGPOLE_LIMB_FLAG_2_BASE].y = -0x4000;
- windVec.x = globalCtx->envCtx.unk_A8;
- windVec.y = globalCtx->envCtx.unk_AA;
- windVec.z = globalCtx->envCtx.unk_AC;
+ windVec.x = globalCtx->envCtx.windDirection.x;
+ windVec.y = globalCtx->envCtx.windDirection.y;
+ windVec.z = globalCtx->envCtx.windDirection.z;
- if (globalCtx->envCtx.unk_B0 > 255.0f) {
- globalCtx->envCtx.unk_B0 = 255.0f;
+ if (globalCtx->envCtx.windSpeed > 255.0f) {
+ globalCtx->envCtx.windSpeed = 255.0f;
}
- if (globalCtx->envCtx.unk_B0 < 0.0f) {
- globalCtx->envCtx.unk_B0 = 0.0f;
+ if (globalCtx->envCtx.windSpeed < 0.0f) {
+ globalCtx->envCtx.windSpeed = 0.0f;
}
if (Rand_ZeroOne() > 0.5f) {
@@ -112,13 +111,13 @@ void EnHata_Update(Actor* thisx, GlobalContext* globalCtx2) {
// Mimic varying wind gusts
sin = Math_SinS(this->unk_278) * 80.0f;
pitch = -Math_Vec3f_Pitch(&zeroVec, &windVec);
- pitch = ((s32)((15000 - pitch) * (1.0f - (globalCtx->envCtx.unk_B0 / (255.0f - sin))))) + pitch;
+ pitch = ((s32)((15000 - pitch) * (1.0f - (globalCtx->envCtx.windSpeed / (255.0f - sin))))) + pitch;
Math_SmoothStepToS(&this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].y, pitch, this->invScale, this->maxStep,
this->minStep);
this->limbs[FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE].y = this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].y;
this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].z = -Math_Vec3f_Yaw(&zeroVec, &windVec);
this->limbs[FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE].z = this->limbs[FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE].z;
- this->skelAnime.playSpeed = (Rand_ZeroFloat(1.25f) + 2.75f) * (globalCtx->envCtx.unk_B0 / 255.0f);
+ this->skelAnime.playSpeed = (Rand_ZeroFloat(1.25f) + 2.75f) * (globalCtx->envCtx.windSpeed / 255.0f);
}
s32 EnHata_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c
index 7465dd3273..eb3e19cf56 100644
--- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c
+++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c
@@ -126,7 +126,7 @@ void EnMThunder_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
void func_80A9F314(GlobalContext* globalCtx, f32 arg1) {
- func_800773A8(globalCtx, arg1, 850.0f, 0.2f, 0.0f);
+ Environment_AdjustLights(globalCtx, arg1, 850.0f, 0.2f, 0.0f);
}
void func_80A9F350(EnMThunder* this, GlobalContext* globalCtx) {
diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c
index 6686c4a912..394132f421 100644
--- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c
+++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c
@@ -313,7 +313,8 @@ void EnNb_SpawnBlueWarp(EnNb* this, GlobalContext* globalCtx) {
f32 posY = this->actor.world.pos.y;
f32 posZ = this->actor.world.pos.z;
- Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES);
+ Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0,
+ WARP_SAGES);
}
void EnNb_GiveMedallion(EnNb* this, GlobalContext* globalCtx) {
@@ -588,7 +589,8 @@ void EnNb_SetPosInPortal(EnNb* this, GlobalContext* globalCtx) {
Vec3f endPos;
if (csCmdNPCAction != NULL) {
- f0 = func_8006F9BC(csCmdNPCAction->endFrame, csCmdNPCAction->startFrame, globalCtx->csCtx.frames, 4, 4);
+ f0 = Environment_LerpWeightAccelDecel(csCmdNPCAction->endFrame, csCmdNPCAction->startFrame,
+ globalCtx->csCtx.frames, 4, 4);
startPos.x = csCmdNPCAction->startPos.x;
startPos.y = csCmdNPCAction->startPos.y;
startPos.z = csCmdNPCAction->startPos.z;
@@ -1134,7 +1136,7 @@ void func_80AB359C(EnNb* this) {
temp_t1 += 25;
if (temp_t1 >= this->movementTimer) {
- f0 = func_8006F9BC(temp_t1, 0, this->movementTimer, 3, 3);
+ f0 = Environment_LerpWeightAccelDecel(temp_t1, 0, this->movementTimer, 3, 3);
world->pos.x = initialPos->x + (f0 * (finalPos->x - initialPos->x));
world->pos.y = initialPos->y + (f0 * (finalPos->y - initialPos->y));
world->pos.z = initialPos->z + (f0 * (finalPos->z - initialPos->z));
diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c
index 377598bca3..16d074095b 100644
--- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c
+++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c
@@ -38,11 +38,11 @@ void EnOkarinaEffect_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnOkarinaEffect* this = THIS;
globalCtx->envCtx.unk_F2[0] = 0;
- if ((D_8011FB30 != 4) && (D_8011FB30 != 5) && (globalCtx->envCtx.gloomySkyEvent == 1)) {
- globalCtx->envCtx.gloomySkyEvent = 2; // end gloomy sky
+ if ((gWeatherMode != 4) && (gWeatherMode != 5) && (globalCtx->envCtx.gloomySkyMode == 1)) {
+ globalCtx->envCtx.gloomySkyMode = 2; // end gloomy sky
func_80077684(globalCtx);
}
- globalCtx->envCtx.lightning = 2; // end lightning
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST;
}
void EnOkarinaEffect_Init(Actor* thisx, GlobalContext* globalCtx) {
@@ -53,19 +53,19 @@ void EnOkarinaEffect_Init(Actor* thisx, GlobalContext* globalCtx) {
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ オカリナあらし効果ビカビカビカ〜 ☆☆☆☆☆ \n" VT_RST);
osSyncPrintf("\n\n");
if (globalCtx->envCtx.unk_EE[1] != 0) {
- Actor_Kill(&this->actor); // kill if an instance is already spawned
+ Actor_Kill(&this->actor);
}
EnOkarinaEffect_SetupAction(this, EnOkarinaEffect_TriggerStorm);
}
void EnOkarinaEffect_TriggerStorm(EnOkarinaEffect* this, GlobalContext* globalCtx) {
- this->timer = 400; // 20 seconds
- globalCtx->envCtx.unk_F2[0] = 20; // rain intensity target
- globalCtx->envCtx.gloomySkyEvent = 1; // start gloomy sky
- if ((D_8011FB30 != 0) || globalCtx->envCtx.gloomySky != 0) {
+ this->timer = 400; // 20 seconds
+ globalCtx->envCtx.unk_F2[0] = 20; // rain intensity target
+ globalCtx->envCtx.gloomySkyMode = 1; // start gloomy sky
+ if ((gWeatherMode != 0) || globalCtx->envCtx.unk_17 != 0) {
globalCtx->envCtx.unk_DE = 1;
}
- globalCtx->envCtx.lightning = 1; // start lightning
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_ON;
func_80077624(globalCtx);
EnOkarinaEffect_SetupAction(this, EnOkarinaEffect_ManageStorm);
}
@@ -76,7 +76,7 @@ void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, GlobalContext* globalCtx
(globalCtx->msgCtx.unk_E300 == 0) && (!FrameAdvance_IsEnabled(globalCtx)) &&
((globalCtx->transitionMode == 0) || (gSaveContext.gameMode != 0))) ||
(this->timer >= 250)) {
- if (globalCtx->envCtx.unk_1E != 0 || globalCtx->envCtx.unk_1F != 1) {
+ if (globalCtx->envCtx.indoors || globalCtx->envCtx.unk_1F != 1) {
this->timer--;
}
osSyncPrintf("\nthis->timer=[%d]", this->timer);
@@ -98,15 +98,15 @@ void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, GlobalContext* globalCtx
func_800F6D58(0xF, 1, 0);
func_800F6D58(0xE, 1, 0);
}
- osSyncPrintf("\n\n\nE_wether_flg=[%d]", D_8011FB30);
- osSyncPrintf("\nrain_evt_trg=[%d]\n\n", globalCtx->envCtx.gloomySkyEvent);
- if (D_8011FB30 == 0 && (globalCtx->envCtx.gloomySkyEvent == 1)) {
- globalCtx->envCtx.gloomySkyEvent = 2; // end gloomy sky
+ osSyncPrintf("\n\n\nE_wether_flg=[%d]", gWeatherMode);
+ osSyncPrintf("\nrain_evt_trg=[%d]\n\n", globalCtx->envCtx.gloomySkyMode);
+ if (gWeatherMode == 0 && (globalCtx->envCtx.gloomySkyMode == 1)) {
+ globalCtx->envCtx.gloomySkyMode = 2; // end gloomy sky
} else {
- globalCtx->envCtx.gloomySkyEvent = 0;
+ globalCtx->envCtx.gloomySkyMode = 0;
globalCtx->envCtx.unk_DE = 0;
}
- globalCtx->envCtx.lightning = 2; // end lightning
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST;
Actor_Kill(&this->actor);
}
}
diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c
index 79069ddac6..451033c02c 100644
--- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c
+++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c
@@ -958,7 +958,7 @@ void func_80ACC00C(EnOwl* this, GlobalContext* globalCtx) {
this->actionFunc = EnOwl_WaitDefault;
this->unk_40A = 0;
this->actionFlags |= 0x80;
- D_8011FB40 = 0;
+ gTimeIncrement = 0;
}
}
@@ -1348,8 +1348,8 @@ void func_80ACD130(EnOwl* this, GlobalContext* globalCtx, s32 idx) {
}
f32 func_80ACD1C4(GlobalContext* globalCtx, s32 idx) {
- f32 ret = func_8006F93C(globalCtx->csCtx.npcActions[idx]->endFrame, globalCtx->csCtx.npcActions[idx]->startFrame,
- globalCtx->csCtx.frames);
+ f32 ret = Environment_LerpWeight(globalCtx->csCtx.npcActions[idx]->endFrame,
+ globalCtx->csCtx.npcActions[idx]->startFrame, globalCtx->csCtx.frames);
ret = CLAMP_MAX(ret, 1.0f);
return ret;
diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c
index 362ecc831d..46aa62227c 100644
--- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c
+++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c
@@ -172,8 +172,8 @@ void EnRd_Init(Actor* thisx, GlobalContext* globalCtx) {
void EnRd_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnRd* this = THIS;
- if (gSaveContext.unk_1422 != 0) {
- gSaveContext.unk_1422 = 0;
+ if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) {
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
}
Collider_DestroyCylinder(globalCtx, &this->collider);
}
@@ -676,7 +676,7 @@ void func_80AE3DE4(EnRd* this) {
this->unk_31B = 1;
this->actor.speedXZ = 0.0f;
this->actor.world.rot.y = this->actor.shape.rot.y;
- if (gSaveContext.unk_1422 != 0) {
+ if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) {
this->unk_318 = 1;
this->unk_316 = 0x258;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_LIGHT_ARROW_HIT);
@@ -698,7 +698,7 @@ void func_80AE3ECC(EnRd* this, GlobalContext* globalCtx) {
}
if (this->unk_316 == 0) {
this->unk_318 = 0;
- gSaveContext.unk_1422 = 0;
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
}
}
@@ -740,7 +740,7 @@ void func_80AE4114(EnRd* this, GlobalContext* globalCtx) {
s32 pad;
Player* player = GET_PLAYER(globalCtx);
- if ((gSaveContext.unk_1422 != 0) && (this->actor.shape.rot.x == 0) && (this->unk_318 == 0) &&
+ if ((gSaveContext.sunsSongState != SUNSSONG_INACTIVE) && (this->actor.shape.rot.x == 0) && (this->unk_318 == 0) &&
(this->unk_31B != 9) && (this->unk_31B != 10) && (this->unk_31B != 1)) {
func_80AE3DE4(this);
return;
@@ -794,8 +794,8 @@ void EnRd_Update(Actor* thisx, GlobalContext* globalCtx) {
func_80AE4114(this, globalCtx);
- if (gSaveContext.unk_1422 != 0 && this->unk_318 == 0) {
- gSaveContext.unk_1422 = 0;
+ if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE && this->unk_318 == 0) {
+ gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
}
if (this->unk_31C != 6 && ((this->unk_31B != 11) || (this->unk_31C != 14))) {
diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
index 62a1185c93..7a5428c044 100644
--- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
+++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
@@ -248,7 +248,8 @@ void func_80AF29DC(EnRu2* this, GlobalContext* globalCtx) {
f32 posY = thisx->world.pos.y;
f32 posZ = thisx->world.pos.z;
- Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0, WARP_SAGES);
+ Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, posX, posY, posZ, 0, 0, 0,
+ WARP_SAGES);
}
void func_80AF2A38(EnRu2* this, GlobalContext* globalCtx) {
@@ -616,7 +617,7 @@ void func_80AF37CC(EnRu2* this) {
f32 funcFloat;
this->unk_2C0++;
- funcFloat = func_8006F9BC((kREG(2) + 0x96) & 0xFFFF, 0, this->unk_2C0, 8, 0);
+ funcFloat = Environment_LerpWeightAccelDecel((kREG(2) + 0x96) & 0xFFFF, 0, this->unk_2C0, 8, 0);
this->actor.world.pos.y = this->actor.home.pos.y + (300.0f * funcFloat);
}
diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c
index a3af338a22..ad04148ce4 100644
--- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c
+++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c
@@ -999,7 +999,7 @@ void EnSkj_WaitForSong(EnSkj* this, GlobalContext* globalCtx) {
player->stateFlags2 |= 0x800000;
} else {
if (globalCtx->msgCtx.unk_E3EE >= 5) {
- gSaveContext.unk_1422 = 0;
+ gSaveContext.sunsSongState = 0;
if (gSaveContext.itemGetInf[1] & 0x40) {
globalCtx->msgCtx.unk_E3EE = 4;
player->unk_6A8 = &this->actor;
diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c
index d1b1ec21b8..34f5c0b8d3 100644
--- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c
+++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c
@@ -984,7 +984,7 @@ void func_80B0EEA4(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_sw.c", 2205);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_sw.c", 2207);
}
diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.c b/src/overlays/actors/ovl_En_Tr/z_en_tr.c
index be8b7d1ca5..328f1f23a8 100644
--- a/src/overlays/actors/ovl_En_Tr/z_en_tr.c
+++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.c
@@ -449,8 +449,8 @@ void EnTr_Draw(Actor* thisx, GlobalContext* globalCtx) {
}
f32 func_80B23FDC(GlobalContext* globalCtx, s32 actionIndex) {
- f32 phi_f2 = func_8006F93C(globalCtx->csCtx.npcActions[actionIndex]->endFrame,
- globalCtx->csCtx.npcActions[actionIndex]->startFrame, globalCtx->csCtx.frames);
+ f32 phi_f2 = Environment_LerpWeight(globalCtx->csCtx.npcActions[actionIndex]->endFrame,
+ globalCtx->csCtx.npcActions[actionIndex]->startFrame, globalCtx->csCtx.frames);
phi_f2 = CLAMP_MAX(phi_f2, 1.0f);
return phi_f2;
}
diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
index a7ea06ad89..63b9381233 100644
--- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
+++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
@@ -41,8 +41,6 @@ void func_80B2B8FC(EnViewer* this, GlobalContext* globalCtx);
void func_80B2BA38(EnViewer* this, GlobalContext* globalCtx);
void func_80B2C130(EnViewer* this, GlobalContext* globalCtx);
-extern Mtx D_01000000;
-
static u8 D_80B2CEC0 = false;
const ActorInit En_Viewer_InitVars = {
@@ -710,8 +708,8 @@ void EnViewer_GetCutsceneNextPos(EnViewer* this, GlobalContext* globalCtx) {
endPos.x = globalCtx->csCtx.npcActions[0]->endPos.x;
endPos.y = globalCtx->csCtx.npcActions[0]->endPos.y;
endPos.z = globalCtx->csCtx.npcActions[0]->endPos.z;
- interpolated = func_8006F93C(globalCtx->csCtx.npcActions[0]->endFrame,
- globalCtx->csCtx.npcActions[0]->startFrame, globalCtx->csCtx.frames);
+ interpolated = Environment_LerpWeight(globalCtx->csCtx.npcActions[0]->endFrame,
+ globalCtx->csCtx.npcActions[0]->startFrame, globalCtx->csCtx.frames);
this->actor.world.pos.x = ((endPos.x - startPos.x) * interpolated) + startPos.x;
this->actor.world.pos.y = ((endPos.y - startPos.y) * interpolated) + startPos.y;
this->actor.world.pos.z = ((endPos.z - startPos.z) * interpolated) + startPos.z;
@@ -725,8 +723,8 @@ void EnViewer_GetCutsceneNextPos(EnViewer* this, GlobalContext* globalCtx) {
endPos.x = globalCtx->csCtx.npcActions[1]->endPos.x;
endPos.y = globalCtx->csCtx.npcActions[1]->endPos.y;
endPos.z = globalCtx->csCtx.npcActions[1]->endPos.z;
- interpolated = func_8006F93C(globalCtx->csCtx.npcActions[1]->endFrame,
- globalCtx->csCtx.npcActions[1]->startFrame, globalCtx->csCtx.frames);
+ interpolated = Environment_LerpWeight(globalCtx->csCtx.npcActions[1]->endFrame,
+ globalCtx->csCtx.npcActions[1]->startFrame, globalCtx->csCtx.frames);
this->actor.world.pos.x = ((endPos.x - startPos.x) * interpolated) + startPos.x;
this->actor.world.pos.y = ((endPos.y - startPos.y) * interpolated) + startPos.y;
this->actor.world.pos.z = ((endPos.z - startPos.z) * interpolated) + startPos.z;
diff --git a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c
index e07a2e04d3..eae2c4f006 100644
--- a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c
+++ b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c
@@ -136,17 +136,17 @@ u8 WeatherTag_CheckEnableWeatherEffect(EnWeatherTag* this, GlobalContext* global
Player* player = GET_PLAYER(globalCtx);
if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) {
- if ((globalCtx->envCtx.unk_1E != 0) || !D_8011FB3C ||
+ if ((globalCtx->envCtx.indoors != 0) || !gSkyboxBlendingEnabled ||
(globalCtx->skyboxId != SKYBOX_NORMAL_SKY && globalCtx->envCtx.unk_1F == globalCtx->envCtx.unk_20)) {
D_8011FB38 = 1;
- if (globalCtx->envCtx.gloomySkyEvent == 0 &&
- (globalCtx->envCtx.unk_1E != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) {
+ if (globalCtx->envCtx.gloomySkyMode == 0 &&
+ (globalCtx->envCtx.indoors != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) {
D_8011FB38 = 0;
- if (D_8011FB30 != weatherMode) {
- D_8011FB30 = weatherMode;
- if (globalCtx->envCtx.gloomySkyEvent == 0) {
+ if (gWeatherMode != weatherMode) {
+ gWeatherMode = weatherMode;
+ if (globalCtx->envCtx.gloomySkyMode == 0) {
globalCtx->envCtx.unk_19 = 1;
- globalCtx->envCtx.gloomySky = arg2;
+ globalCtx->envCtx.unk_17 = arg2;
globalCtx->envCtx.unk_18 = arg3;
globalCtx->envCtx.unk_1A = arg6;
globalCtx->envCtx.unk_21 = 1;
@@ -160,7 +160,7 @@ u8 WeatherTag_CheckEnableWeatherEffect(EnWeatherTag* this, GlobalContext* global
ret = true;
}
} else {
- if (D_8011FB40 != 0) {
+ if (gTimeIncrement != 0) {
gSaveContext.dayTime += 0x14;
}
}
@@ -176,15 +176,15 @@ u8 WeatherTag_CheckRestoreWeather(EnWeatherTag* this, GlobalContext* globalCtx,
Player* player = GET_PLAYER(globalCtx);
if ((WEATHER_TAG_RANGE100(this->actor.params) + 100.0f) < Actor_WorldDistXZToActor(&player->actor, &this->actor)) {
- if (globalCtx->envCtx.unk_1E != 0 || !D_8011FB3C ||
+ if (globalCtx->envCtx.indoors != 0 || !gSkyboxBlendingEnabled ||
(globalCtx->skyboxId != SKYBOX_NORMAL_SKY && globalCtx->envCtx.unk_1F == globalCtx->envCtx.unk_20)) {
D_8011FB38 = 1;
- if ((globalCtx->envCtx.gloomySkyEvent == 0) &&
- (globalCtx->envCtx.unk_1E != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) {
+ if ((globalCtx->envCtx.gloomySkyMode == 0) &&
+ (globalCtx->envCtx.indoors != 0 || (globalCtx->envCtx.unk_1F != 1 && globalCtx->envCtx.unk_21 == 0))) {
D_8011FB38 = 0;
- D_8011FB30 = 0;
+ gWeatherMode = 0;
globalCtx->envCtx.unk_19 = 1;
- globalCtx->envCtx.gloomySky = arg2;
+ globalCtx->envCtx.unk_17 = arg2;
globalCtx->envCtx.unk_18 = arg3;
globalCtx->envCtx.unk_1A = arg6;
globalCtx->envCtx.unk_21 = 1;
@@ -196,7 +196,7 @@ u8 WeatherTag_CheckRestoreWeather(EnWeatherTag* this, GlobalContext* globalCtx,
ret = true;
}
- } else if (D_8011FB40 != 0) {
+ } else if (gTimeIncrement != 0) {
gSaveContext.dayTime += 0x14;
}
}
@@ -272,7 +272,7 @@ void EnWeatherTag_EnabledRainLakeHylia(EnWeatherTag* this, GlobalContext* global
void EnWeatherTag_DisabledCloudyRainThunderKakariko(EnWeatherTag* this, GlobalContext* globalCtx) {
if (WeatherTag_CheckEnableWeatherEffect(this, globalCtx, 0, 1, 0, 4, 100, 5)) {
func_80077624(globalCtx);
- globalCtx->envCtx.lightning = 1;
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_ON;
globalCtx->envCtx.unk_EE[0] = 30;
EnWeatherTag_SetupAction(this, EnWeatherTag_EnabledCloudyRainThunderKakariko);
}
@@ -281,7 +281,7 @@ void EnWeatherTag_DisabledCloudyRainThunderKakariko(EnWeatherTag* this, GlobalCo
void EnWeatherTag_EnabledCloudyRainThunderKakariko(EnWeatherTag* this, GlobalContext* globalCtx) {
if (WeatherTag_CheckRestoreWeather(this, globalCtx, 1, 0, 4, 0, 100)) {
func_80077684(globalCtx);
- globalCtx->envCtx.lightning = 2;
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST;
globalCtx->envCtx.unk_EE[0] = 0;
EnWeatherTag_SetupAction(this, EnWeatherTag_DisabledCloudyRainThunderKakariko);
}
@@ -291,11 +291,11 @@ void EnWeatherTag_SetSandstormIntensity(EnWeatherTag* this, GlobalContext* globa
Player* player = GET_PLAYER(globalCtx);
if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) {
- Math_SmoothStepToS(&globalCtx->envCtx.unk_9E, -0x50, 1, 2, 1);
- Math_SmoothStepToS(&globalCtx->envCtx.unk_A0, -0x7D0, 1, 50, 1);
+ Math_SmoothStepToS(&globalCtx->envCtx.adjFogNear, -0x50, 1, 2, 1);
+ Math_SmoothStepToS(&globalCtx->envCtx.adjFogFar, -0x7D0, 1, 50, 1);
} else {
- Math_SmoothStepToS(&globalCtx->envCtx.unk_9E, 0, 1, 1, 1);
- Math_SmoothStepToS(&globalCtx->envCtx.unk_A0, 0, 1, 25, 1);
+ Math_SmoothStepToS(&globalCtx->envCtx.adjFogNear, 0, 1, 1, 1);
+ Math_SmoothStepToS(&globalCtx->envCtx.adjFogFar, 0, 1, 25, 1);
}
}
@@ -304,7 +304,7 @@ void EnWeatherTag_DisabledRainThunder(EnWeatherTag* this, GlobalContext* globalC
if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) {
func_80077624(globalCtx);
- globalCtx->envCtx.lightning = 1;
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_ON;
globalCtx->envCtx.unk_EE[0] = 25;
EnWeatherTag_SetupAction(this, EnWeatherTag_EnabledRainThunder);
}
@@ -315,7 +315,7 @@ void EnWeatherTag_EnabledRainThunder(EnWeatherTag* this, GlobalContext* globalCt
if ((WEATHER_TAG_RANGE100(this->actor.params) + 10.0f) < Actor_WorldDistXZToActor(&player->actor, &this->actor)) {
func_80077684(globalCtx);
- globalCtx->envCtx.lightning = 2;
+ globalCtx->envCtx.lightningMode = LIGHTNING_MODE_LAST;
globalCtx->envCtx.unk_EE[0] = 0;
globalCtx->envCtx.unk_EE[1] = 10;
EnWeatherTag_SetupAction(this, EnWeatherTag_DisabledRainThunder);
diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
index fa361556fd..52bc37aa39 100644
--- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c
+++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
@@ -173,7 +173,8 @@ void func_80B3C620(EnXc* this, GlobalContext* globalCtx, s32 npcActionIdx) {
f32 unk;
if (npcAction != NULL) {
- unk = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 0);
+ unk =
+ Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 0);
startX = npcAction->startPos.x;
startY = npcAction->startPos.y;
startZ = npcAction->startPos.z;
@@ -1392,7 +1393,8 @@ void func_80B3F534(GlobalContext* globalCtx) {
u16 frameCount = csCtx->frames;
if (frameCount == 310) {
- Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DOOR_WARP1, -1044.0f, -1243.0f, 7458.0f, 0, 0, 0, WARP_DESTINATION);
+ Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DOOR_WARP1, -1044.0f, -1243.0f, 7458.0f, 0, 0, 0,
+ WARP_DESTINATION);
}
}
diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c
index ba15be52f0..66208697fb 100644
--- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c
+++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c
@@ -377,11 +377,11 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) {
Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_WAIT);
Gameplay_ChangeCameraStatus(globalCtx, this->unk_1E8, CAM_STAT_ACTIVE);
func_800C0808(globalCtx, this->unk_1E8, player, CAM_SET_FREE0);
- globalCtx->envCtx.unk_E2[0] = 0xFF;
- globalCtx->envCtx.unk_E2[1] = 0xFF;
- globalCtx->envCtx.unk_E2[2] = 0xFF;
- globalCtx->envCtx.unk_E2[3] = 0x18;
- globalCtx->envCtx.unk_E1 = 1;
+ globalCtx->envCtx.screenFillColor[0] = 255;
+ globalCtx->envCtx.screenFillColor[1] = 255;
+ globalCtx->envCtx.screenFillColor[2] = 255;
+ globalCtx->envCtx.screenFillColor[3] = 24;
+ globalCtx->envCtx.fillScreen = true;
Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &vec1, &vec2);
Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 30.0f);
ShrinkWindow_SetVal(0x20);
@@ -435,7 +435,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
break;
case 1:
if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
- globalCtx->envCtx.unk_E1 = 0;
+ globalCtx->envCtx.fillScreen = false;
Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &sp74, &sp68);
Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 25.0f);
player->actor.world.pos = sp58;
diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c
index bb7b11f0a3..dc46a05687 100644
--- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c
+++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c
@@ -692,7 +692,8 @@ void func_80B500E0(EnZl2* this, GlobalContext* globalCtx) {
f32 someFloat;
if (npcAction != NULL) {
- someFloat = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 8);
+ someFloat =
+ Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 8, 8);
startX = npcAction->startPos.x;
startY = npcAction->startPos.y;
startZ = npcAction->startPos.z;
@@ -716,7 +717,8 @@ void func_80B501E8(EnZl2* this, GlobalContext* globalCtx) {
if (npcAction != NULL) {
this->actor.shape.shadowAlpha = this->alpha =
- (1.0f - func_8006F93C(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames)) * 255.0f;
+ (1.0f - Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames)) *
+ 255.0f;
func_80B501C4(this, this->alpha);
}
}
@@ -1457,7 +1459,8 @@ void func_80B51DA4(EnZl2* this, GlobalContext* globalCtx) {
f32 someFloat;
if (npcAction != NULL) {
- someFloat = func_8006F9BC(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 8);
+ someFloat =
+ Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, globalCtx->csCtx.frames, 0, 8);
startX = npcAction->startPos.x;
startY = npcAction->startPos.y;
startZ = npcAction->startPos.z;
diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
index 6fd915525a..cb494edba3 100644
--- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
+++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
@@ -1045,8 +1045,8 @@ void func_80B559C4(EnZl3* this) {
Vec3f* thisPos = &this->actor.world.pos;
Vec3f* unk_32C = &this->unk_32C;
Vec3f* unk_338 = &this->unk_338;
- f32 temp_f0 =
- func_8006F9BC(Animation_GetLastFrame(&gZelda2Anime2Anim_005248), 0, (s32)this->skelAnime.curFrame, 3, 3);
+ f32 temp_f0 = Environment_LerpWeightAccelDecel(Animation_GetLastFrame(&gZelda2Anime2Anim_005248), 0,
+ (s32)this->skelAnime.curFrame, 3, 3);
thisPos->x = unk_32C->x + (temp_f0 * (unk_338->x - unk_32C->x));
thisPos->z = unk_32C->z + (temp_f0 * (unk_338->z - unk_32C->z));
@@ -1959,7 +1959,7 @@ void func_80B57CB4(EnZl3* this, GlobalContext* globalCtx) {
f32 temp_f0;
this->unk_344 += 1;
- temp_f0 = func_8006F9BC(this->unk_346, 0, this->unk_344, 3, 3);
+ temp_f0 = Environment_LerpWeightAccelDecel(this->unk_346, 0, this->unk_344, 3, 3);
thisPos->x = unk_348->x + (temp_f0 * (unk_354->x - unk_348->x));
thisPos->y = (unk_348->y + (temp_f0 * (unk_354->y - unk_348->y))) + this->unk_360;
thisPos->z = unk_348->z + (temp_f0 * (unk_354->z - unk_348->z));
@@ -2262,7 +2262,7 @@ void func_80B58C08(EnZl3* this, GlobalContext* globalCtx) {
unk_344 = this->unk_344;
unk_346 = this->unk_346;
sp28 = unk_346 - kREG(11) - 2;
- temp_f0 = func_8006F9BC(unk_346, 0, unk_344, 3, 0);
+ temp_f0 = Environment_LerpWeightAccelDecel(unk_346, 0, unk_344, 3, 0);
thisPos->x = unk_348->x + (temp_f0 * (unk_354->x - unk_348->x));
thisPos->y = (unk_348->y + (temp_f0 * (unk_354->y - unk_348->y))) + this->unk_360;
diff --git a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c
index 4fd344207c..47a2df7d63 100644
--- a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c
+++ b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c
@@ -451,9 +451,9 @@ void EnfHG_SetupApproach(EnfHG* this, GlobalContext* globalCtx, s16 paintingInde
this->actor.scale.z = 0.001f;
this->approachRate = 0.0f;
- this->warpColorFilterR = globalCtx->lightCtx.unk_07;
- this->warpColorFilterG = globalCtx->lightCtx.unk_08;
- this->warpColorFilterB = globalCtx->lightCtx.unk_09;
+ this->warpColorFilterR = globalCtx->lightCtx.fogColor[0];
+ this->warpColorFilterG = globalCtx->lightCtx.fogColor[1];
+ this->warpColorFilterB = globalCtx->lightCtx.fogColor[2];
this->warpColorFilterUnk1 = 0.0f;
this->warpColorFilterUnk2 = 0.0f;
this->turnRot = 0;
@@ -513,9 +513,9 @@ void EnfHG_Attack(EnfHG* this, GlobalContext* globalCtx) {
Math_ApproachF(&this->warpColorFilterB, 255.0f, 1.0f, 10.0f);
Math_ApproachF(&this->warpColorFilterUnk1, -60.0f, 1.0f, 5.0f);
} else {
- Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
- Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
- Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
+ Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
+ Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
+ Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
Math_ApproachF(&this->warpColorFilterUnk1, 0.0f, 1.0f, 5.0f);
if (this->timers[1] == 29) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FANTOM_MASIC2);
@@ -586,9 +586,9 @@ void EnfHG_Damage(EnfHG* this, GlobalContext* globalCtx) {
osSyncPrintf("REVISE !!\n");
SkelAnime_Update(&this->skin.skelAnime);
- Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
- Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
- Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.unk_07, 1.0f, 10.0f);
+ Math_ApproachF(&this->warpColorFilterR, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
+ Math_ApproachF(&this->warpColorFilterG, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
+ Math_ApproachF(&this->warpColorFilterB, globalCtx->lightCtx.fogColor[0], 1.0f, 10.0f);
Math_ApproachF(&this->warpColorFilterUnk1, 0.0f, 1.0f, 5.0f);
Math_ApproachF(&this->actor.scale.z, 0.011499999f, 1.0f, 0.002f);
if (this->timers[0] != 0) {
@@ -727,6 +727,6 @@ void EnfHG_Draw(Actor* thisx, GlobalContext* globalCtx) {
(u32)this->warpColorFilterB, 0, (s32)this->warpColorFilterUnk1 + 995,
(s32)this->warpColorFilterUnk2 + 1000);
func_800A6330(&this->actor, globalCtx, &this->skin, EnfHG_Noop, 0x23);
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_fhg.c", 2480);
}
diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c
index ad844044ba..ad43689443 100644
--- a/src/overlays/actors/ovl_Fishing/z_fishing.c
+++ b/src/overlays/actors/ovl_Fishing/z_fishing.c
@@ -865,7 +865,7 @@ void Fishing_Init(Actor* thisx, GlobalContext* globalCtx2) {
D_80B7A684 = 20;
globalCtx->specialEffects = sFishingEffects;
- D_8011FB40 = 1;
+ gTimeIncrement = 1;
D_80B7E0AC = 0;
D_80B7E0A6 = 10;
@@ -5347,8 +5347,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
func_80064534(globalCtx, &globalCtx->csCtx);
D_80B7A6CC = 0;
sCameraId = 0;
- func_80070600(globalCtx, 0);
- globalCtx->envCtx.unk_9E = 0;
+ Environment_EnableUnderwaterLights(globalCtx, 0);
+ globalCtx->envCtx.adjFogNear = 0;
player->unk_860 = -5;
D_80B7E0B0 = 5;
break;
@@ -5391,8 +5391,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
D_80B7A6CC = 0;
sCameraId = 0;
D_80B7A6D0 = 30;
- func_80070600(globalCtx, 0);
- globalCtx->envCtx.unk_9E = 0;
+ Environment_EnableUnderwaterLights(globalCtx, 0);
+ globalCtx->envCtx.adjFogNear = 0;
}
break;
@@ -5497,8 +5497,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
D_80B7E0B0 = 5;
D_80B7A6D4 = 0;
D_80B7E0A6 = 20;
- func_80070600(globalCtx, 0);
- globalCtx->envCtx.unk_9E = 0;
+ Environment_EnableUnderwaterLights(globalCtx, 0);
+ globalCtx->envCtx.adjFogNear = 0;
}
}
}
@@ -5513,15 +5513,15 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
Math_ApproachF(&D_80B7FECC, 1.0f, 1.0f, 0.02f);
if (sCameraEye.y <= (WATER_SURFACE_Y(globalCtx) + 1.0f)) {
- func_80070600(globalCtx, 1);
+ Environment_EnableUnderwaterLights(globalCtx, 1);
if (D_80B7E076 != 0) {
- globalCtx->envCtx.unk_9E = -0xB2;
+ globalCtx->envCtx.adjFogNear = -0xB2;
} else {
- globalCtx->envCtx.unk_9E = -0x2E;
+ globalCtx->envCtx.adjFogNear = -0x2E;
}
} else {
- func_80070600(globalCtx, 0);
- globalCtx->envCtx.unk_9E = 0;
+ Environment_EnableUnderwaterLights(globalCtx, 0);
+ globalCtx->envCtx.adjFogNear = 0;
}
}
@@ -5565,9 +5565,9 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
if (sREG(15) != 0) {
if (D_80B7A654 != (sREG(15) - 1)) {
if (D_80B7A654 == 0) {
- globalCtx->envCtx.gloomySkyEvent = 1;
+ globalCtx->envCtx.gloomySkyMode = 1;
} else {
- globalCtx->envCtx.gloomySkyEvent = 2;
+ globalCtx->envCtx.gloomySkyMode = 2;
}
}
@@ -5575,10 +5575,10 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
}
if (sREG(14) == 1) {
- globalCtx->envCtx.gloomySkyEvent = 1;
+ globalCtx->envCtx.gloomySkyMode = 1;
}
if (sREG(14) == -1) {
- globalCtx->envCtx.gloomySkyEvent = 2;
+ globalCtx->envCtx.gloomySkyMode = 2;
}
sREG(14) = 0;
@@ -5596,10 +5596,10 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
if (Rand_ZeroOne() < 0.5f) {
D_80B7A654 = (u8)Rand_ZeroFloat(10.0f) + 5;
- globalCtx->envCtx.gloomySkyEvent = 1;
+ globalCtx->envCtx.gloomySkyMode = 1;
} else {
D_80B7A654 = 0;
- globalCtx->envCtx.gloomySkyEvent = 2;
+ globalCtx->envCtx.gloomySkyMode = 2;
}
}
@@ -5631,7 +5631,8 @@ void Fishing_UpdateOwner(Actor* thisx, GlobalContext* globalCtx2) {
Math_ApproachZeroF(&D_80B7A658, 1.0f, 2.0f);
}
- globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = D_80B7A658;
+ globalCtx->envCtx.adjLight1Color[0] = globalCtx->envCtx.adjLight1Color[1] = globalCtx->envCtx.adjLight1Color[2] =
+ D_80B7A658;
if ((u8)D_80B7A650 > 0) {
s32 pad;
diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
index 740aa8e412..c0f305bda5 100644
--- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
+++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c
@@ -137,29 +137,33 @@ void MagicDark_DiamondUpdate(Actor* thisx, GlobalContext* globalCtx) {
void MagicDark_DimLighting(GlobalContext* globalCtx, f32 intensity) {
s32 i;
- f32 temp_f0;
- f32 phi_f0;
+ f32 colorScale;
+ f32 fogScale;
if (globalCtx->roomCtx.curRoom.unk_03 != 5) {
intensity = CLAMP_MIN(intensity, 0.0f);
intensity = CLAMP_MAX(intensity, 1.0f);
- phi_f0 = intensity - 0.2f;
+ fogScale = intensity - 0.2f;
+
if (intensity < 0.2f) {
- phi_f0 = 0.0f;
+ fogScale = 0.0f;
}
- globalCtx->envCtx.unk_9E = (850.0f - globalCtx->envCtx.unk_D2) * phi_f0;
+
+ globalCtx->envCtx.adjFogNear = (850.0f - globalCtx->envCtx.lightSettings.fogNear) * fogScale;
+
if (intensity == 0.0f) {
- for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.unk_8C[2]); i++) {
- globalCtx->envCtx.unk_8C[2][i] = 0;
+ for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.adjFogColor); i++) {
+ globalCtx->envCtx.adjFogColor[i] = 0;
}
} else {
- temp_f0 = intensity * 5.0f;
- if (temp_f0 > 1.0f) {
- temp_f0 = 1.0f;
+ colorScale = intensity * 5.0f;
+
+ if (colorScale > 1.0f) {
+ colorScale = 1.0f;
}
- for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.unk_8C[2]); i++) {
- globalCtx->envCtx.unk_8C[2][i] = -(s16)(globalCtx->envCtx.unk_CF[i] * temp_f0);
+ for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.adjFogColor); i++) {
+ globalCtx->envCtx.adjFogColor[i] = -(s16)(globalCtx->envCtx.lightSettings.fogColor[i] * colorScale);
}
}
}
diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c
index 85f9fbbc12..2fafc23510 100644
--- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c
+++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c
@@ -17,7 +17,6 @@ void ObjectKankyo_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjectKankyo_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjectKankyo_Draw(Actor* thisx, GlobalContext* globalCtx);
-extern UNK_TYPE D_01000000;
extern UNK_TYPE D_06009620;
/*
diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c
index d0f5215e61..aab9ed06ee 100644
--- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c
+++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c
@@ -82,9 +82,9 @@ void OceffSpot_End(OceffSpot* this, GlobalContext* globalCtx) {
this->unk_174 -= 0.05f;
} else {
Actor_Kill(&this->actor);
- if (D_8011FB40 != 400 && globalCtx->msgCtx.unk_E40E == 0 && (gSaveContext.eventInf[0] & 0xF) != 1) {
+ if (gTimeIncrement != 400 && globalCtx->msgCtx.unk_E40E == 0 && (gSaveContext.eventInf[0] & 0xF) != 1) {
if (globalCtx->msgCtx.unk_E3F0 != 0x31 || globalCtx->msgCtx.unk_E3EE != 8) {
- gSaveContext.unk_1422 = 1;
+ gSaveContext.sunsSongState = SUNSSONG_START;
osSyncPrintf(VT_FGCOL(YELLOW));
// Sun's Song Flag
osSyncPrintf("z_oceff_spot 太陽の歌フラグ\n");
@@ -133,7 +133,7 @@ void OceffSpot_Update(Actor* thisx, GlobalContext* globalCtx) {
this->actor.world.pos.y += 5.0f;
temp = (2.0f - this->unk_174) * this->unk_174;
- func_800773A8(globalCtx, temp * 0.5F, 880.0f, 0.2f, 0.9f);
+ Environment_AdjustLights(globalCtx, temp * 0.5F, 880.0f, 0.2f, 0.9f);
Lights_PointNoGlowSetInfo(&this->lightInfo1, (s16)this->actor.world.pos.x, (s16)this->actor.world.pos.y + 55.0f,
(s16)this->actor.world.pos.z, (s32)(255.0f * temp), (s32)(255.0f * temp),
diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
index 211e921492..c6e3fd2eb7 100644
--- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
+++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
@@ -182,9 +182,9 @@ void ShotSun_UpdateHyliaSun(ShotSun* this, GlobalContext* globalCtx) {
Actor_Kill(&this->actor);
} else {
if (!(this->actor.xzDistToPlayer > 120.0f) && gSaveContext.dayTime >= 0x4555 && gSaveContext.dayTime < 0x5000) {
- cylinderPos.x = player->bodyPartsPos[7].x + globalCtx->envCtx.unk_04.x * (1.0f / 6.0f);
- cylinderPos.y = player->bodyPartsPos[7].y - 30.0f + globalCtx->envCtx.unk_04.y * (1.0f / 6.0f);
- cylinderPos.z = player->bodyPartsPos[7].z + globalCtx->envCtx.unk_04.z * (1.0f / 6.0f);
+ cylinderPos.x = player->bodyPartsPos[7].x + globalCtx->envCtx.sunPos.x * (1.0f / 6.0f);
+ cylinderPos.y = player->bodyPartsPos[7].y - 30.0f + globalCtx->envCtx.sunPos.y * (1.0f / 6.0f);
+ cylinderPos.z = player->bodyPartsPos[7].z + globalCtx->envCtx.sunPos.z * (1.0f / 6.0f);
this->hitboxPos = cylinderPos;
diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c
index 3e61579468..d6b037a267 100644
--- a/src/overlays/actors/ovl_player_actor/z_player.c
+++ b/src/overlays/actors/ovl_player_actor/z_player.c
@@ -3912,11 +3912,26 @@ s32 func_80838FB8(GlobalContext* globalCtx, Player* this) {
return 0;
}
-s32 func_80839034(GlobalContext* globalCtx, Player* this, CollisionPoly* poly, s32 bgId) {
- static s16 D_808544F8[] = {
- 0x045B, 0x0482, 0x0340, 0x044B, 0x02A2, 0x0201, 0x03B8, 0x04EE, 0x03C0, 0x0463, 0x01CD, 0x0394, 0x0340, 0x057C,
- };
- static u8 D_80854514[] = { 11, 9, 3, 5, 7, 0 };
+s16 D_808544F8[] = {
+ 0x045B, // DMT from Magic Fairy Fountain
+ 0x0482, // DMC from Double Defense Fairy Fountain
+ 0x0340, // Hyrule Castle from Dins Fire Fairy Fountain
+ 0x044B, // Kakariko from Potion Shop
+ 0x02A2, // Market (child day) from Potion Shop
+ 0x0201, // Kakariko from Bazaar
+ 0x03B8, // Market (child day) from Bazaar
+ 0x04EE, // Kakariko from House of Skulltulas
+ 0x03C0, // Back Alley (day) from Bombchu Shop
+ 0x0463, // Kakariko from Shooting Gallery
+ 0x01CD, // Market (child day) from Shooting Gallery
+ 0x0394, // Zoras Fountain from Farores Wind Fairy Fountain
+ 0x0340, // Hyrule Castle from Dins Fire Fairy Fountain
+ 0x057C, // Desert Colossus from Nayrus Love Fairy Fountain
+};
+
+u8 D_80854514[] = { 11, 9, 3, 5, 7, 0 };
+
+s32 func_80839034(GlobalContext* globalCtx, Player* this, CollisionPoly* poly, u32 bgId) {
s32 sp3C;
s32 temp;
s32 sp34;
@@ -10444,7 +10459,7 @@ void Player_Draw(Actor* thisx, GlobalContext* globalCtx2) {
func_8084A0E8(globalCtx, this, lod, gCullBackDList, overrideLimbDraw);
if (this->invincibilityTimer > 0) {
- POLY_OPA_DISP = func_800BC8A0(globalCtx, POLY_OPA_DISP);
+ POLY_OPA_DISP = Gameplay_SetFog(globalCtx, POLY_OPA_DISP);
}
if (this->stateFlags2 & 0x4000) {
@@ -11901,7 +11916,7 @@ void func_8084E3C4(Player* this, GlobalContext* globalCtx) {
this->stateFlags2 |= 0x8000000;
if (Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DEMO_KANKYO, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0xF) == NULL) {
- func_800776E4(globalCtx);
+ Environment_WarpSongLeave(globalCtx);
}
gSaveContext.seqIndex = 0xFF;
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c
index 6e3cb0aff5..c484ffc98e 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c
@@ -28,8 +28,6 @@ EffectSsInit Effect_Ss_Dead_Dd_InitVars = {
EffectSsDeadDd_Init,
};
-extern Mtx D_01000000;
-
u32 EffectSsDeadDd_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx) {
s32 i;
EffectSsDeadDdInitParams* initParams = (EffectSsDeadDdInitParams*)initParamsx;
@@ -116,7 +114,7 @@ void EffectSsDeadDd_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0,
PRIMITIVE, 0);
- gSPDisplayList(POLY_XLU_DISP++, gEffBurnMark1DL);
+ gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL);
}
CLOSE_DISPS(gfxCtx, "../z_eff_ss_dead_dd.c", 259);
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c
index b4a647fbee..c03e3067e3 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c
@@ -103,7 +103,7 @@ void EffectSsDeadDs_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) {
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetCombineLERP(POLY_XLU_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0,
PRIMITIVE, 0);
- gSPDisplayList(POLY_XLU_DISP++, gEffBurnMark1DL);
+ gSPDisplayList(POLY_XLU_DISP++, gLensFlareCircleDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_eff_ss_dead_ds.c", 255);
}
diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c
index 74b5e3b0e6..fe006f299f 100644
--- a/src/overlays/gamestates/ovl_select/z_select.c
+++ b/src/overlays/gamestates/ovl_select/z_select.c
@@ -38,7 +38,7 @@ void Select_LoadGame(SelectContext* this, s32 entranceIndex) {
gSaveContext.seqIndex = 0xFF;
gSaveContext.nightSeqIndex = 0xFF;
gSaveContext.showTitleCard = true;
- D_8011FB30 = 0;
+ gWeatherMode = 0;
this->state.running = false;
SET_NEXT_GAMESTATE(&this->state, Gameplay_Init, GlobalContext);
}
@@ -500,7 +500,7 @@ void Select_PrintCutsceneSetting(SelectContext* this, GfxPrint* printer, u16 csI
break;
};
- gSaveContext.environmentTime = gSaveContext.dayTime;
+ gSaveContext.skyboxTime = gSaveContext.dayTime;
GfxPrint_Printf(printer, "Stage:\x8C%s", label);
}
diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c
index 8784c83d52..df8f0d7689 100644
--- a/src/overlays/gamestates/ovl_title/z_title.c
+++ b/src/overlays/gamestates/ovl_title/z_title.c
@@ -109,7 +109,7 @@ void Title_Draw(TitleContext* this) {
gSPTextureRectangle(POLY_OPA_DISP++, 388, y << 2, 1156, (y + 2) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
}
- func_8007672C(this->state.gfxCtx, 0, 0, 0, (s16)this->coverAlpha, 2);
+ Environment_FillScreen(this->state.gfxCtx, 0, 0, 0, (s16)this->coverAlpha, FILL_SCREEN_XLU);
sTitleRotY += 300;