mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
match: func_800BEFC4 & improve partial match for func_800B82B4 (#463)
* match: func_800BEFC4 & improve partial match for func_800B82B4 * match: func_800BEFC4 & delete non-matching asm
This commit is contained in:
@@ -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
|
||||
|
||||
+56
-64
@@ -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;
|
||||
|
||||
+3
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user