diff --git a/asm/non_matchings/waves/func_800BEFC4.s b/asm/non_matchings/waves/func_800BEFC4.s deleted file mode 100644 index 39c5e166..00000000 --- a/asm/non_matchings/waves/func_800BEFC4.s +++ /dev/null @@ -1,277 +0,0 @@ -glabel func_800BEFC4 -/* 0BFBC4 800BEFC4 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0BFBC8 800BEFC8 3C0E800E */ lui $t6, %hi(D_800E3188) # $t6, 0x800e -/* 0BFBCC 800BEFCC 44801000 */ mtc1 $zero, $f2 -/* 0BFBD0 800BEFD0 8DCE3188 */ lw $t6, %lo(D_800E3188)($t6) -/* 0BFBD4 800BEFD4 AFB10048 */ sw $s1, 0x48($sp) -/* 0BFBD8 800BEFD8 AFB00044 */ sw $s0, 0x44($sp) -/* 0BFBDC 800BEFDC E7BD0030 */ swc1 $f29, 0x30($sp) -/* 0BFBE0 800BEFE0 E7BC0034 */ swc1 $f28, 0x34($sp) -/* 0BFBE4 800BEFE4 00A08025 */ move $s0, $a1 -/* 0BFBE8 800BEFE8 00C08825 */ move $s1, $a2 -/* 0BFBEC 800BEFEC AFBF005C */ sw $ra, 0x5c($sp) -/* 0BFBF0 800BEFF0 AFB50058 */ sw $s5, 0x58($sp) -/* 0BFBF4 800BEFF4 AFB40054 */ sw $s4, 0x54($sp) -/* 0BFBF8 800BEFF8 AFB30050 */ sw $s3, 0x50($sp) -/* 0BFBFC 800BEFFC AFB2004C */ sw $s2, 0x4c($sp) -/* 0BFC00 800BF000 E7BF0038 */ swc1 $f31, 0x38($sp) -/* 0BFC04 800BF004 E7BE003C */ swc1 $f30, 0x3c($sp) -/* 0BFC08 800BF008 E7BB0028 */ swc1 $f27, 0x28($sp) -/* 0BFC0C 800BF00C E7BA002C */ swc1 $f26, 0x2c($sp) -/* 0BFC10 800BF010 E7B90020 */ swc1 $f25, 0x20($sp) -/* 0BFC14 800BF014 E7B80024 */ swc1 $f24, 0x24($sp) -/* 0BFC18 800BF018 E7B70018 */ swc1 $f23, 0x18($sp) -/* 0BFC1C 800BF01C E7B6001C */ swc1 $f22, 0x1c($sp) -/* 0BFC20 800BF020 E7B50010 */ swc1 $f21, 0x10($sp) -/* 0BFC24 800BF024 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0BFC28 800BF028 1DC00003 */ bgtz $t6, .L800BF038 -/* 0BFC2C 800BF02C 46001706 */ mov.s $f28, $f2 -/* 0BFC30 800BF030 100000D7 */ b .L800BF390 -/* 0BFC34 800BF034 46001006 */ mov.s $f0, $f2 -.L800BF038: -/* 0BFC38 800BF038 3C028013 */ lui $v0, %hi(D_80129FC8) # $v0, 0x8013 -/* 0BFC3C 800BF03C 3C018013 */ lui $at, %hi(D_8012A0B8) # $at, 0x8013 -/* 0BFC40 800BF040 24429FC8 */ addiu $v0, %lo(D_80129FC8) # addiu $v0, $v0, -0x6038 -/* 0BFC44 800BF044 C420A0B8 */ lwc1 $f0, %lo(D_8012A0B8)($at) -/* 0BFC48 800BF048 8C4F0028 */ lw $t7, 0x28($v0) -/* 0BFC4C 800BF04C 3C018013 */ lui $at, %hi(D_8012A0BC) # $at, 0x8013 -/* 0BFC50 800BF050 8C430000 */ lw $v1, ($v0) -/* 0BFC54 800BF054 C422A0BC */ lwc1 $f2, %lo(D_8012A0BC)($at) -/* 0BFC58 800BF058 11E00008 */ beqz $t7, .L800BF07C -/* 0BFC5C 800BF05C 3C19800E */ lui $t9, %hi(D_800E30D8) # $t9, 0x800e -/* 0BFC60 800BF060 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0BFC64 800BF064 44816000 */ mtc1 $at, $f12 -/* 0BFC68 800BF068 0003C040 */ sll $t8, $v1, 1 -/* 0BFC6C 800BF06C 460C0002 */ mul.s $f0, $f0, $f12 -/* 0BFC70 800BF070 03001825 */ move $v1, $t8 -/* 0BFC74 800BF074 460C1082 */ mul.s $f2, $f2, $f12 -/* 0BFC78 800BF078 00000000 */ nop -.L800BF07C: -/* 0BFC7C 800BF07C 000440C0 */ sll $t0, $a0, 3 -/* 0BFC80 800BF080 8F3930D8 */ lw $t9, %lo(D_800E30D8)($t9) -/* 0BFC84 800BF084 01044023 */ subu $t0, $t0, $a0 -/* 0BFC88 800BF088 00084080 */ sll $t0, $t0, 2 -/* 0BFC8C 800BF08C 03283021 */ addu $a2, $t9, $t0 -/* 0BFC90 800BF090 90C9000A */ lbu $t1, 0xa($a2) -/* 0BFC94 800BF094 3C0C800E */ lui $t4, %hi(D_800E3184) # $t4, 0x800e -/* 0BFC98 800BF098 01230019 */ multu $t1, $v1 -/* 0BFC9C 800BF09C 8D8C3184 */ lw $t4, %lo(D_800E3184)($t4) -/* 0BFCA0 800BF0A0 241500FF */ li $s5, 255 -/* 0BFCA4 800BF0A4 00005012 */ mflo $t2 -/* 0BFCA8 800BF0A8 01502821 */ addu $a1, $t2, $s0 -/* 0BFCAC 800BF0AC 000558C0 */ sll $t3, $a1, 3 -/* 0BFCB0 800BF0B0 016C3821 */ addu $a3, $t3, $t4 -/* 0BFCB4 800BF0B4 90ED0000 */ lbu $t5, ($a3) -/* 0BFCB8 800BF0B8 00000000 */ nop -/* 0BFCBC 800BF0BC 12AD00B3 */ beq $s5, $t5, .L800BF38C -/* 0BFCC0 800BF0C0 00000000 */ nop -/* 0BFCC4 800BF0C4 90CE000B */ lbu $t6, 0xb($a2) -/* 0BFCC8 800BF0C8 44854000 */ mtc1 $a1, $f8 -/* 0BFCCC 800BF0CC 01C30019 */ multu $t6, $v1 -/* 0BFCD0 800BF0D0 3C188013 */ lui $t8, %hi(D_8012A0D0) # $t8, 0x8013 -/* 0BFCD4 800BF0D4 468042A0 */ cvt.s.w $f10, $f8 -/* 0BFCD8 800BF0D8 8F18A0D0 */ lw $t8, %lo(D_8012A0D0)($t8) -/* 0BFCDC 800BF0DC 3C198013 */ lui $t9, %hi(D_8012A0D4) # $t9, 0x8013 -/* 0BFCE0 800BF0E0 44982000 */ mtc1 $t8, $f4 -/* 0BFCE4 800BF0E4 46005402 */ mul.s $f16, $f10, $f0 -/* 0BFCE8 800BF0E8 8F39A0D4 */ lw $t9, %lo(D_8012A0D4)($t9) -/* 0BFCEC 800BF0EC 3C14800E */ lui $s4, %hi(D_800E3190) # $s4, 0x800e -/* 0BFCF0 800BF0F0 44999000 */ mtc1 $t9, $f18 -/* 0BFCF4 800BF0F4 468021A0 */ cvt.s.w $f6, $f4 -/* 0BFCF8 800BF0F8 4480D000 */ mtc1 $zero, $f26 -/* 0BFCFC 800BF0FC 00007812 */ mflo $t7 -/* 0BFD00 800BF100 01F12021 */ addu $a0, $t7, $s1 -/* 0BFD04 800BF104 44844000 */ mtc1 $a0, $f8 -/* 0BFD08 800BF108 46103780 */ add.s $f30, $f6, $f16 -/* 0BFD0C 800BF10C 00009825 */ move $s3, $zero -/* 0BFD10 800BF110 468042A0 */ cvt.s.w $f10, $f8 -/* 0BFD14 800BF114 26943190 */ addiu $s4, %lo(D_800E3190) # addiu $s4, $s4, 0x3190 -/* 0BFD18 800BF118 00E09025 */ move $s2, $a3 -/* 0BFD1C 800BF11C 46025182 */ mul.s $f6, $f10, $f2 -/* 0BFD20 800BF120 31A200FF */ andi $v0, $t5, 0xff -/* 0BFD24 800BF124 46809120 */ cvt.s.w $f4, $f18 -/* 0BFD28 800BF128 46062600 */ add.s $f24, $f4, $f6 -.L800BF12C: -/* 0BFD2C 800BF12C 8E890000 */ lw $t1, ($s4) -/* 0BFD30 800BF130 00024180 */ sll $t0, $v0, 6 -/* 0BFD34 800BF134 01098821 */ addu $s1, $t0, $t1 -/* 0BFD38 800BF138 C6300000 */ lwc1 $f16, ($s1) -/* 0BFD3C 800BF13C 00000000 */ nop -/* 0BFD40 800BF140 4618803E */ c.le.s $f16, $f24 -/* 0BFD44 800BF144 00000000 */ nop -/* 0BFD48 800BF148 45000088 */ bc1f .L800BF36C -/* 0BFD4C 800BF14C 00000000 */ nop -/* 0BFD50 800BF150 C6320004 */ lwc1 $f18, 4($s1) -/* 0BFD54 800BF154 00000000 */ nop -/* 0BFD58 800BF158 4612C03E */ c.le.s $f24, $f18 -/* 0BFD5C 800BF15C 00000000 */ nop -/* 0BFD60 800BF160 45000082 */ bc1f .L800BF36C -/* 0BFD64 800BF164 00000000 */ nop -/* 0BFD68 800BF168 C6280008 */ lwc1 $f8, 8($s1) -/* 0BFD6C 800BF16C C62A000C */ lwc1 $f10, 0xc($s1) -/* 0BFD70 800BF170 4608F501 */ sub.s $f20, $f30, $f8 -/* 0BFD74 800BF174 C6300014 */ lwc1 $f16, 0x14($s1) -/* 0BFD78 800BF178 4614A102 */ mul.s $f4, $f20, $f20 -/* 0BFD7C 800BF17C 460AC581 */ sub.s $f22, $f24, $f10 -/* 0BFD80 800BF180 4616B182 */ mul.s $f6, $f22, $f22 -/* 0BFD84 800BF184 46062300 */ add.s $f12, $f4, $f6 -/* 0BFD88 800BF188 4610603C */ c.lt.s $f12, $f16 -/* 0BFD8C 800BF18C 00000000 */ nop -/* 0BFD90 800BF190 45000076 */ bc1f .L800BF36C -/* 0BFD94 800BF194 00000000 */ nop -/* 0BFD98 800BF198 0C0326B4 */ jal sqrtf -/* 0BFD9C 800BF19C 00000000 */ nop -/* 0BFDA0 800BF1A0 922A0030 */ lbu $t2, 0x30($s1) -/* 0BFDA4 800BF1A4 9630001A */ lhu $s0, 0x1a($s1) -/* 0BFDA8 800BF1A8 11400021 */ beqz $t2, .L800BF230 -/* 0BFDAC 800BF1AC 46000086 */ mov.s $f2, $f0 -/* 0BFDB0 800BF1B0 461AA03C */ c.lt.s $f20, $f26 -/* 0BFDB4 800BF1B4 00000000 */ nop -/* 0BFDB8 800BF1B8 4500000F */ bc1f .L800BF1F8 -/* 0BFDBC 800BF1BC 00000000 */ nop -/* 0BFDC0 800BF1C0 C6320020 */ lwc1 $f18, 0x20($s1) -/* 0BFDC4 800BF1C4 00000000 */ nop -/* 0BFDC8 800BF1C8 4612A202 */ mul.s $f8, $f20, $f18 -/* 0BFDCC 800BF1CC 444BF800 */ cfc1 $t3, $31 -/* 0BFDD0 800BF1D0 00000000 */ nop -/* 0BFDD4 800BF1D4 35610003 */ ori $at, $t3, 3 -/* 0BFDD8 800BF1D8 38210002 */ xori $at, $at, 2 -/* 0BFDDC 800BF1DC 44C1F800 */ ctc1 $at, $31 -/* 0BFDE0 800BF1E0 00000000 */ nop -/* 0BFDE4 800BF1E4 460042A4 */ cvt.w.s $f10, $f8 -/* 0BFDE8 800BF1E8 440C5000 */ mfc1 $t4, $f10 -/* 0BFDEC 800BF1EC 44CBF800 */ ctc1 $t3, $31 -/* 0BFDF0 800BF1F0 10000041 */ b .L800BF2F8 -/* 0BFDF4 800BF1F4 020C8023 */ subu $s0, $s0, $t4 -.L800BF1F8: -/* 0BFDF8 800BF1F8 C6240020 */ lwc1 $f4, 0x20($s1) -/* 0BFDFC 800BF1FC 00000000 */ nop -/* 0BFE00 800BF200 4604A182 */ mul.s $f6, $f20, $f4 -/* 0BFE04 800BF204 444DF800 */ cfc1 $t5, $31 -/* 0BFE08 800BF208 00000000 */ nop -/* 0BFE0C 800BF20C 35A10003 */ ori $at, $t5, 3 -/* 0BFE10 800BF210 38210002 */ xori $at, $at, 2 -/* 0BFE14 800BF214 44C1F800 */ ctc1 $at, $31 -/* 0BFE18 800BF218 00000000 */ nop -/* 0BFE1C 800BF21C 46003424 */ cvt.w.s $f16, $f6 -/* 0BFE20 800BF220 440E8000 */ mfc1 $t6, $f16 -/* 0BFE24 800BF224 44CDF800 */ ctc1 $t5, $31 -/* 0BFE28 800BF228 10000033 */ b .L800BF2F8 -/* 0BFE2C 800BF22C 020E8021 */ addu $s0, $s0, $t6 -.L800BF230: -/* 0BFE30 800BF230 922F0031 */ lbu $t7, 0x31($s1) -/* 0BFE34 800BF234 00000000 */ nop -/* 0BFE38 800BF238 11E00021 */ beqz $t7, .L800BF2C0 -/* 0BFE3C 800BF23C 00000000 */ nop -/* 0BFE40 800BF240 461AA03C */ c.lt.s $f20, $f26 -/* 0BFE44 800BF244 00000000 */ nop -/* 0BFE48 800BF248 4500000F */ bc1f .L800BF288 -/* 0BFE4C 800BF24C 00000000 */ nop -/* 0BFE50 800BF250 C6320020 */ lwc1 $f18, 0x20($s1) -/* 0BFE54 800BF254 00000000 */ nop -/* 0BFE58 800BF258 4612B202 */ mul.s $f8, $f22, $f18 -/* 0BFE5C 800BF25C 4458F800 */ cfc1 $t8, $31 -/* 0BFE60 800BF260 00000000 */ nop -/* 0BFE64 800BF264 37010003 */ ori $at, $t8, 3 -/* 0BFE68 800BF268 38210002 */ xori $at, $at, 2 -/* 0BFE6C 800BF26C 44C1F800 */ ctc1 $at, $31 -/* 0BFE70 800BF270 00000000 */ nop -/* 0BFE74 800BF274 460042A4 */ cvt.w.s $f10, $f8 -/* 0BFE78 800BF278 44195000 */ mfc1 $t9, $f10 -/* 0BFE7C 800BF27C 44D8F800 */ ctc1 $t8, $31 -/* 0BFE80 800BF280 1000001D */ b .L800BF2F8 -/* 0BFE84 800BF284 02198023 */ subu $s0, $s0, $t9 -.L800BF288: -/* 0BFE88 800BF288 C6240020 */ lwc1 $f4, 0x20($s1) -/* 0BFE8C 800BF28C 00000000 */ nop -/* 0BFE90 800BF290 4604B182 */ mul.s $f6, $f22, $f4 -/* 0BFE94 800BF294 4448F800 */ cfc1 $t0, $31 -/* 0BFE98 800BF298 00000000 */ nop -/* 0BFE9C 800BF29C 35010003 */ ori $at, $t0, 3 -/* 0BFEA0 800BF2A0 38210002 */ xori $at, $at, 2 -/* 0BFEA4 800BF2A4 44C1F800 */ ctc1 $at, $31 -/* 0BFEA8 800BF2A8 00000000 */ nop -/* 0BFEAC 800BF2AC 46003424 */ cvt.w.s $f16, $f6 -/* 0BFEB0 800BF2B0 44098000 */ mfc1 $t1, $f16 -/* 0BFEB4 800BF2B4 44C8F800 */ ctc1 $t0, $31 -/* 0BFEB8 800BF2B8 1000000F */ b .L800BF2F8 -/* 0BFEBC 800BF2BC 02098021 */ addu $s0, $s0, $t1 -.L800BF2C0: -/* 0BFEC0 800BF2C0 C6320020 */ lwc1 $f18, 0x20($s1) -/* 0BFEC4 800BF2C4 00000000 */ nop -/* 0BFEC8 800BF2C8 46120202 */ mul.s $f8, $f0, $f18 -/* 0BFECC 800BF2CC 444AF800 */ cfc1 $t2, $31 -/* 0BFED0 800BF2D0 00000000 */ nop -/* 0BFED4 800BF2D4 35410003 */ ori $at, $t2, 3 -/* 0BFED8 800BF2D8 38210002 */ xori $at, $at, 2 -/* 0BFEDC 800BF2DC 44C1F800 */ ctc1 $at, $31 -/* 0BFEE0 800BF2E0 00000000 */ nop -/* 0BFEE4 800BF2E4 460042A4 */ cvt.w.s $f10, $f8 -/* 0BFEE8 800BF2E8 440B5000 */ mfc1 $t3, $f10 -/* 0BFEEC 800BF2EC 44CAF800 */ ctc1 $t2, $31 -/* 0BFEF0 800BF2F0 020B8021 */ addu $s0, $s0, $t3 -/* 0BFEF4 800BF2F4 00000000 */ nop -.L800BF2F8: -/* 0BFEF8 800BF2F8 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0BFEFC 800BF2FC 44812000 */ mtc1 $at, $f4 -/* 0BFF00 800BF300 C6300010 */ lwc1 $f16, 0x10($s1) -/* 0BFF04 800BF304 46041182 */ mul.s $f6, $f2, $f4 -/* 0BFF08 800BF308 00000000 */ nop -/* 0BFF0C 800BF30C 46103483 */ div.s $f18, $f6, $f16 -/* 0BFF10 800BF310 444CF800 */ cfc1 $t4, $31 -/* 0BFF14 800BF314 00000000 */ nop -/* 0BFF18 800BF318 35810003 */ ori $at, $t4, 3 -/* 0BFF1C 800BF31C 38210002 */ xori $at, $at, 2 -/* 0BFF20 800BF320 44C1F800 */ ctc1 $at, $31 -/* 0BFF24 800BF324 00000000 */ nop -/* 0BFF28 800BF328 46009224 */ cvt.w.s $f8, $f18 -/* 0BFF2C 800BF32C 44044000 */ mfc1 $a0, $f8 -/* 0BFF30 800BF330 44CCF800 */ ctc1 $t4, $31 -/* 0BFF34 800BF334 00046C00 */ sll $t5, $a0, 0x10 -/* 0BFF38 800BF338 0C01C1FE */ jal coss_f -/* 0BFF3C 800BF33C 000D2403 */ sra $a0, $t5, 0x10 -/* 0BFF40 800BF340 00102400 */ sll $a0, $s0, 0x10 -/* 0BFF44 800BF344 00047C03 */ sra $t7, $a0, 0x10 -/* 0BFF48 800BF348 46000506 */ mov.s $f20, $f0 -/* 0BFF4C 800BF34C 0C01C1F1 */ jal sins_f -/* 0BFF50 800BF350 01E02025 */ move $a0, $t7 -/* 0BFF54 800BF354 C62A0024 */ lwc1 $f10, 0x24($s1) -/* 0BFF58 800BF358 00000000 */ nop -/* 0BFF5C 800BF35C 46005102 */ mul.s $f4, $f10, $f0 -/* 0BFF60 800BF360 00000000 */ nop -/* 0BFF64 800BF364 46142182 */ mul.s $f6, $f4, $f20 -/* 0BFF68 800BF368 4606E700 */ add.s $f28, $f28, $f6 -.L800BF36C: -/* 0BFF6C 800BF36C 26730001 */ addiu $s3, $s3, 1 -/* 0BFF70 800BF370 2A610008 */ slti $at, $s3, 8 -/* 0BFF74 800BF374 10200005 */ beqz $at, .L800BF38C -/* 0BFF78 800BF378 26520001 */ addiu $s2, $s2, 1 -/* 0BFF7C 800BF37C 92420000 */ lbu $v0, ($s2) -/* 0BFF80 800BF380 00000000 */ nop -/* 0BFF84 800BF384 16A2FF69 */ bne $s5, $v0, .L800BF12C -/* 0BFF88 800BF388 00000000 */ nop -.L800BF38C: -/* 0BFF8C 800BF38C 4600E006 */ mov.s $f0, $f28 -.L800BF390: -/* 0BFF90 800BF390 8FBF005C */ lw $ra, 0x5c($sp) -/* 0BFF94 800BF394 C7B50010 */ lwc1 $f21, 0x10($sp) -/* 0BFF98 800BF398 C7B40014 */ lwc1 $f20, 0x14($sp) -/* 0BFF9C 800BF39C C7B70018 */ lwc1 $f23, 0x18($sp) -/* 0BFFA0 800BF3A0 C7B6001C */ lwc1 $f22, 0x1c($sp) -/* 0BFFA4 800BF3A4 C7B90020 */ lwc1 $f25, 0x20($sp) -/* 0BFFA8 800BF3A8 C7B80024 */ lwc1 $f24, 0x24($sp) -/* 0BFFAC 800BF3AC C7BB0028 */ lwc1 $f27, 0x28($sp) -/* 0BFFB0 800BF3B0 C7BA002C */ lwc1 $f26, 0x2c($sp) -/* 0BFFB4 800BF3B4 C7BD0030 */ lwc1 $f29, 0x30($sp) -/* 0BFFB8 800BF3B8 C7BC0034 */ lwc1 $f28, 0x34($sp) -/* 0BFFBC 800BF3BC C7BF0038 */ lwc1 $f31, 0x38($sp) -/* 0BFFC0 800BF3C0 C7BE003C */ lwc1 $f30, 0x3c($sp) -/* 0BFFC4 800BF3C4 8FB00044 */ lw $s0, 0x44($sp) -/* 0BFFC8 800BF3C8 8FB10048 */ lw $s1, 0x48($sp) -/* 0BFFCC 800BF3CC 8FB2004C */ lw $s2, 0x4c($sp) -/* 0BFFD0 800BF3D0 8FB30050 */ lw $s3, 0x50($sp) -/* 0BFFD4 800BF3D4 8FB40054 */ lw $s4, 0x54($sp) -/* 0BFFD8 800BF3D8 8FB50058 */ lw $s5, 0x58($sp) -/* 0BFFDC 800BF3DC 03E00008 */ jr $ra -/* 0BFFE0 800BF3E0 27BD0060 */ addiu $sp, $sp, 0x60 - diff --git a/src/waves.c b/src/waves.c index 869a431b..57e6bb8e 100644 --- a/src/waves.c +++ b/src/waves.c @@ -226,22 +226,18 @@ void func_800B8134(LevelHeader *header) { #ifdef NON_EQUIVALENT void func_800B82B4(LevelModel *arg0, LevelHeader *arg1, s32 arg2) { - s32 sp54; - s32 sp4C; s32 temp_lo; s32 var_a0; - s32 var_a0_2; - s32 var_a2; s32 var_fp; s32 var_s0; - s32 var_s0_3; s32 var_s3; s32 var_s5; s32 var_s6; - s32 var_s7; - s8 var_s0_4; - s32 i; s32 j; + s32 sp54; + s32 var_s7; + s32 sp4C; + s32 i; D_8012A078 = arg2; func_800B8134(arg1); @@ -259,75 +255,72 @@ void func_800B82B4(LevelModel *arg0, LevelHeader *arg1, s32 arg2) { D_8012A098 = (gWaveTexture->height * 32) - 1; D_8012A09C = 0; var_s6 = D_80129FC8.unk10; - var_fp = D_80129FC8.unk1C; sp54 = (D_80129FC8.unk8 << 16) / D_80129FC8.unk20; + var_fp = D_80129FC8.unk1C; sp4C = (D_80129FC8.unk14 << 16) / D_80129FC8.unk20; D_8012A01C = 10000.0f; D_8012A020 = -10000.0f; - var_s7 = 0; - for (var_s0 = 0; var_s0 < D_80129FC8.unk20; var_s0++) { - D_800E3040[var_s0] = (sins_f(var_s6) * D_80129FC8.unkC) + (sins_f(var_fp) * D_80129FC8.unk18); + for (i = 0; i < D_80129FC8.unk20; i++) { + D_800E3040[i] = (sins_f(var_s6) * D_80129FC8.unkC) + (sins_f(var_fp) * D_80129FC8.unk18); if (D_80129FC8.unk28 != 0) { - D_800E3040[var_s0] *= 2.0f; + D_800E3040[i] *= 2.0f; } - if (D_800E3040[var_s0] < D_8012A01C) { - D_8012A01C = D_800E3040[var_s0]; + if (D_800E3040[i] < D_8012A01C) { + D_8012A01C = D_800E3040[i]; } - if (D_8012A020 < D_800E3040[var_s0]) { - D_8012A020 = D_800E3040[var_s0]; + if (D_8012A020 < D_800E3040[i]) { + D_8012A020 = D_800E3040[i]; } var_s6 += sp54; var_fp += sp4C; } save_rng_seed(); set_rng_seed(0x57415646); - var_s5 = 0; - for (; var_s7 < D_80129FC8.unk4; var_s7++) { + + if (D_80129FC8.unk4 > 0) { + for (i = 0; i < D_80129FC8.unk4; i++) { for (var_s0 = 0; var_s0 < D_80129FC8.unk4; var_s0++) { - D_800E3044[(var_s5 * 2)] = get_random_number_from_range(0, D_80129FC8.unk20 - 1); - D_800E3044[(var_s5 * 2) + 1] = get_random_number_from_range(0, D_80129FC8.unk20 - 1); - var_s5++; + D_800E3044[(var_s0 * 2)] = get_random_number_from_range(0, D_80129FC8.unk20 - 1); + D_800E3044[(var_s0 * 2) + 1] = get_random_number_from_range(0, D_80129FC8.unk20 - 1); } } + } load_rng_seed(); if (arg2 != 2) { var_s3 = 2; } else { var_s3 = 4; } - var_a2 = 0; - var_s5 = 0; - do { + for (arg2 = 0; arg2 < 25; arg2++) { for (var_s7 = 0; (D_80129FC8.unk0 >= var_s7); var_s7++) { - for (var_s0_3 = 0; D_80129FC8.unk0 >= var_s0_3; var_s0_3++) { + for (var_s0 = 0; D_80129FC8.unk0 >= var_s0; var_s0++) { for (var_a0 = 0; var_a0 < var_s3; var_a0++) { - D_800E3070[var_a0][var_s5].x = (var_s0_3 * D_8012A0B8) + 0.5; - D_800E3070[var_a0][var_s5].z = (var_s7 * D_8012A0BC) + 0.5; + D_800E3070[var_a0][var_s0].x = (var_s0 * D_8012A0B8) + 0.5; + D_800E3070[var_a0][var_s0].z = (var_s7 * D_8012A0BC) + 0.5; if (D_80129FC8.unk4C == 0) { - D_800E3070[var_a0][var_s5].r = 255; - D_800E3070[var_a0][var_s5].g = 255; - D_800E3070[var_a0][var_s5].b = 255; + D_800E3070[var_a0][var_s0].r = 255; + D_800E3070[var_a0][var_s0].g = 255; + D_800E3070[var_a0][var_s0].b = 255; } else { - D_800E3070[var_a0][var_s5].r = 0; - D_800E3070[var_a0][var_s5].g = 0; - D_800E3070[var_a0][var_s5].b = 0; + D_800E3070[var_a0][var_s0].r = 0; + D_800E3070[var_a0][var_s0].g = 0; + D_800E3070[var_a0][var_s0].b = 0; } - D_800E3070[var_a0][var_s5].a = 255; + D_800E3070[var_a0][var_s0].a = 255; } - var_s5++; + var_s0++; } } - var_a2++; - } while (var_a2 < 25); - + } + var_s5 = 0; for (var_s7 = 0; var_s7 < D_80129FC8.unk0; var_s7++) { - for (var_s0_4 = 0; var_s0_4 < D_80129FC8.unk0; var_s0_4++) { - for (var_a0_2 = 0; var_a0_2 < var_s3; var_a0_2++) { - D_800E3080[var_s5 * 16][var_a0_2] = 0x40; + for (var_s0 = 0; var_s0 < D_80129FC8.unk0; var_s0++) { + for (var_a0 = 0; var_a0 < var_s3; var_a0++) { + D_800E3080[var_s7 * 16][var_a0] = 0x40; } - var_s5 += 2; } + var_s7++; } func_800BC6C8(); temp_lo = D_80129FC8.unk0 * (D_80129FC8.unk0 + 1); @@ -534,6 +527,7 @@ GLOBAL_ASM("asm/non_matchings/waves/func_800BBF78.s") GLOBAL_ASM("asm/non_matchings/waves/func_800BC6C8.s") GLOBAL_ASM("asm/non_matchings/waves/func_800BCC70.s") GLOBAL_ASM("asm/non_matchings/waves/func_800BDC80.s") +// https://decomp.me/scratch/2RF3k GLOBAL_ASM("asm/non_matchings/waves/func_800BE654.s") /** @@ -568,28 +562,28 @@ f32 log_wave_height(Object_Log *log, s32 updateRate) { return y; } -#ifdef NON_EQUIVALENT f32 func_800BEFC4(s32 arg0, s32 arg1, s32 arg2) { f32 temp_f0; f32 temp_f12; f32 temp_f20; f32 temp_f22; f32 temp_f24; + f32 temp_f26; f32 temp_f30; f32 var_f0; f32 var_f28; f32 var_f2; + u32 var_s0; s32 temp_a1; s32 var_s3; s32 var_v1; - s32 temp_s0; - u8 temp_t5; + s32 temp_0; unk800E3184 *temp_a3; unk800E3190 *temp_s1; var_f28 = 0.0f; if (D_800E3188 <= 0) { - return 0.0f; + return var_f28; } var_f0 = D_8012A0B8; var_v1 = D_80129FC8.unk0; @@ -599,12 +593,13 @@ f32 func_800BEFC4(s32 arg0, s32 arg1, s32 arg2) { var_v1 *= 2; var_f2 *= 0.5f; } - temp_a1 = (D_800E30D8[arg0].unkA * var_v1) + arg1; + temp_a1 = ((&D_800E30D8[arg0])->unkA * var_v1) + arg1; temp_a3 = &D_800E3184[temp_a1]; - temp_t5 = temp_a3->unk0[0]; - if (temp_t5 != 0xFF) { + if (temp_a3->unk0[0] != 0xFF) { + temp_0 = (arg2) + (var_v1 * (&D_800E30D8[arg0])->unkB); temp_f30 = D_8012A0D0 + (temp_a1 * var_f0); - temp_f24 = D_8012A0D4 + (((D_800E30D8[arg0].unkB * var_v1) + arg2) * var_f2); + temp_f24 = D_8012A0D4 + (temp_0 * var_f2); + temp_f26 = 0; var_s3 = 0; do { temp_s1 = &D_800E3190[temp_a3->unk0[var_s3]]; @@ -614,24 +609,24 @@ f32 func_800BEFC4(s32 arg0, s32 arg1, s32 arg2) { temp_f12 = (temp_f20 * temp_f20) + (temp_f22 * temp_f22); if (temp_f12 < temp_s1->unk14) { temp_f0 = sqrtf(temp_f12); - temp_s0 = temp_s1->unk1A; + var_s0 = (u16)temp_s1->unk1A; if (temp_s1->unk31 != 0) { - if (temp_f20 < 0.0f) { - temp_s0 -= (s32) (temp_f20 * temp_s1->unk20); + if (temp_f20 < temp_f26) { + var_s0 -= (s32) (temp_f20 * temp_s1->unk20); } else { - temp_s0 += (s32) (temp_f20 * temp_s1->unk20); + var_s0 += (s32) (temp_f20 * temp_s1->unk20); } } else if (temp_s1->unk32 != 0) { - if (temp_f20 < 0.0f) { - temp_s0 -= (s32) (temp_f22 * temp_s1->unk20); + if (temp_f20 < temp_f26) { + var_s0 -= (s32) (temp_f22 * temp_s1->unk20); } else { - temp_s0 += (s32) (temp_f22 * temp_s1->unk20); + var_s0 += (s32) (temp_f22 * temp_s1->unk20); } } else { - temp_s0 += (s32) (temp_f0 * temp_s1->unk20); + var_s0 += (s32) (temp_f0 * temp_s1->unk20); } - temp_f0 = coss_f((temp_f0 * 65536.0f) / temp_s1->unk10); - var_f28 += temp_s1->unk24 * sins_f(temp_s0) * temp_f0; + temp_f20 = coss_f((s16) (s32) ((temp_f0 * 65536.0f) / temp_s1->unk10)); + var_f28 += temp_s1->unk24 * sins_f(var_s0) * temp_f20; } } var_s3++; @@ -639,9 +634,6 @@ f32 func_800BEFC4(s32 arg0, s32 arg1, s32 arg2) { } return var_f28; } -#else -GLOBAL_ASM("asm/non_matchings/waves/func_800BEFC4.s") -#endif void func_800BF3E4(Object *obj) { s32 i; diff --git a/src/waves.h b/src/waves.h index 73dc872e..d93b3a58 100644 --- a/src/waves.h +++ b/src/waves.h @@ -9,7 +9,9 @@ typedef struct { } LevelModelSubArray; typedef struct { LevelModelSegment *unk00; - u8 pad04[0x6]; + s16 unk4; + s16 unk6; // used as playerIndex + s16 unk8; u8 unkA; u8 unkB; u32 unkC;