assorted matches (#399)

* assorted matches
This commit is contained in:
MegaMech 2023-09-05 15:00:15 -06:00 committed by GitHub
parent 67fbcac9ec
commit 7f7ecc5854
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 53 additions and 600 deletions

View File

@ -6,7 +6,7 @@
[![Build Status](https://ci.valandil.ca/buildStatus/icon?job=mk64%2Fmaster&config=m2c)](https://ci.valandil.ca/job/mk64/job/master/)
[![Build Status](https://ci.valandil.ca/buildStatus/icon?job=mk64%2Fmaster&config=nonmatching)](https://ci.valandil.ca/job/mk64/job/master/)
C files left: ~11 out of 40 (not counting audio)
C files left: ~7 out of 40 (not counting audio)
# Mario Kart 64
This repo contains a work-in-progress decompilation of Mario Kart 64 (U). The project pursues historical and educational elements within the game found via taking it apart and putting it back together. Inspiration to do so not only emanates from the game's hardware and technology but also its immensely positive effects on the cultures and families of nearly every nationality. See [progress](#Progress) for more information.

View File

@ -1,111 +0,0 @@
glabel func_80042B5C
/* 04375C 80042B5C 27BDFF88 */ addiu $sp, $sp, -0x78
/* 043760 80042B60 AFBF0024 */ sw $ra, 0x24($sp)
/* 043764 80042B64 AFB00020 */ sw $s0, 0x20($sp)
/* 043768 80042B68 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 04376C 80042B6C AFA40078 */ sw $a0, 0x78($sp)
/* 043770 80042B70 AFA5007C */ sw $a1, 0x7c($sp)
/* 043774 80042B74 00C08025 */ move $s0, $a2
/* 043778 80042B78 0C0AE006 */ jal sins
/* 04377C 80042B7C 94C40000 */ lhu $a0, ($a2)
/* 043780 80042B80 E7A00050 */ swc1 $f0, 0x50($sp)
/* 043784 80042B84 0C0AE00E */ jal coss
/* 043788 80042B88 96040000 */ lhu $a0, ($s0)
/* 04378C 80042B8C 46000506 */ mov.s $f20, $f0
/* 043790 80042B90 0C0AE006 */ jal sins
/* 043794 80042B94 96040002 */ lhu $a0, 2($s0)
/* 043798 80042B98 96040002 */ lhu $a0, 2($s0)
/* 04379C 80042B9C 0C0AE00E */ jal coss
/* 0437A0 80042BA0 E7A00048 */ swc1 $f0, 0x48($sp)
/* 0437A4 80042BA4 96040004 */ lhu $a0, 4($s0)
/* 0437A8 80042BA8 0C0AE006 */ jal sins
/* 0437AC 80042BAC E7A00044 */ swc1 $f0, 0x44($sp)
/* 0437B0 80042BB0 96040004 */ lhu $a0, 4($s0)
/* 0437B4 80042BB4 0C0AE00E */ jal coss
/* 0437B8 80042BB8 E7A00040 */ swc1 $f0, 0x40($sp)
/* 0437BC 80042BBC C7AE0048 */ lwc1 $f14, 0x48($sp)
/* 0437C0 80042BC0 C7A80050 */ lwc1 $f8, 0x50($sp)
/* 0437C4 80042BC4 C7B00044 */ lwc1 $f16, 0x44($sp)
/* 0437C8 80042BC8 C7A20040 */ lwc1 $f2, 0x40($sp)
/* 0437CC 80042BCC 460E4302 */ mul.s $f12, $f8, $f14
/* 0437D0 80042BD0 8FA2007C */ lw $v0, 0x7c($sp)
/* 0437D4 80042BD4 46008282 */ mul.s $f10, $f16, $f0
/* 0437D8 80042BD8 C4520000 */ lwc1 $f18, ($v0)
/* 0437DC 80042BDC 46026102 */ mul.s $f4, $f12, $f2
/* 0437E0 80042BE0 46045180 */ add.s $f6, $f10, $f4
/* 0437E4 80042BE4 46069282 */ mul.s $f10, $f18, $f6
/* 0437E8 80042BE8 46008187 */ neg.s $f6, $f16
/* 0437EC 80042BEC E7AA0074 */ swc1 $f10, 0x74($sp)
/* 0437F0 80042BF0 C4440004 */ lwc1 $f4, 4($v0)
/* 0437F4 80042BF4 46023282 */ mul.s $f10, $f6, $f2
/* 0437F8 80042BF8 E7A40034 */ swc1 $f4, 0x34($sp)
/* 0437FC 80042BFC 46006102 */ mul.s $f4, $f12, $f0
/* 043800 80042C00 46045180 */ add.s $f6, $f10, $f4
/* 043804 80042C04 C7AA0034 */ lwc1 $f10, 0x34($sp)
/* 043808 80042C08 46065102 */ mul.s $f4, $f10, $f6
/* 04380C 80042C0C E7A40068 */ swc1 $f4, 0x68($sp)
/* 043810 80042C10 C4460008 */ lwc1 $f6, 8($v0)
/* 043814 80042C14 E7A80028 */ swc1 $f8, 0x28($sp)
/* 043818 80042C18 460EA202 */ mul.s $f8, $f20, $f14
/* 04381C 80042C1C E7A60030 */ swc1 $f6, 0x30($sp)
/* 043820 80042C20 C7A60030 */ lwc1 $f6, 0x30($sp)
/* 043824 80042C24 E7AA002C */ swc1 $f10, 0x2c($sp)
/* 043828 80042C28 8FA20078 */ lw $v0, 0x78($sp)
/* 04382C 80042C2C 46083202 */ mul.s $f8, $f6, $f8
/* 043830 80042C30 00000000 */ nop
/* 043834 80042C34 4602A282 */ mul.s $f10, $f20, $f2
/* 043838 80042C38 E7A8005C */ swc1 $f8, 0x5c($sp)
/* 04383C 80042C3C 460A9282 */ mul.s $f10, $f18, $f10
/* 043840 80042C40 E7AA0070 */ swc1 $f10, 0x70($sp)
/* 043844 80042C44 C7AA002C */ lwc1 $f10, 0x2c($sp)
/* 043848 80042C48 E7A4002C */ swc1 $f4, 0x2c($sp)
/* 04384C 80042C4C 4600A102 */ mul.s $f4, $f20, $f0
/* 043850 80042C50 00000000 */ nop
/* 043854 80042C54 46045102 */ mul.s $f4, $f10, $f4
/* 043858 80042C58 E7A40064 */ swc1 $f4, 0x64($sp)
/* 04385C 80042C5C C7A40028 */ lwc1 $f4, 0x28($sp)
/* 043860 80042C60 E7A80028 */ swc1 $f8, 0x28($sp)
/* 043864 80042C64 46002207 */ neg.s $f8, $f4
/* 043868 80042C68 46083202 */ mul.s $f8, $f6, $f8
/* 04386C 80042C6C E7A80058 */ swc1 $f8, 0x58($sp)
/* 043870 80042C70 46102302 */ mul.s $f12, $f4, $f16
/* 043874 80042C74 46007207 */ neg.s $f8, $f14
/* 043878 80042C78 46004102 */ mul.s $f4, $f8, $f0
/* 04387C 80042C7C 00000000 */ nop
/* 043880 80042C80 46026202 */ mul.s $f8, $f12, $f2
/* 043884 80042C84 46082100 */ add.s $f4, $f4, $f8
/* 043888 80042C88 46049202 */ mul.s $f8, $f18, $f4
/* 04388C 80042C8C E7A8006C */ swc1 $f8, 0x6c($sp)
/* 043890 80042C90 46027102 */ mul.s $f4, $f14, $f2
/* 043894 80042C94 00000000 */ nop
/* 043898 80042C98 46006202 */ mul.s $f8, $f12, $f0
/* 04389C 80042C9C 46082100 */ add.s $f4, $f4, $f8
/* 0438A0 80042CA0 46045202 */ mul.s $f8, $f10, $f4
/* 0438A4 80042CA4 00000000 */ nop
/* 0438A8 80042CA8 4610A282 */ mul.s $f10, $f20, $f16
/* 0438AC 80042CAC E7A80060 */ swc1 $f8, 0x60($sp)
/* 0438B0 80042CB0 C7A8002C */ lwc1 $f8, 0x2c($sp)
/* 0438B4 80042CB4 460A3102 */ mul.s $f4, $f6, $f10
/* 0438B8 80042CB8 C7A60074 */ lwc1 $f6, 0x74($sp)
/* 0438BC 80042CBC 46083280 */ add.s $f10, $f6, $f8
/* 0438C0 80042CC0 E7A40054 */ swc1 $f4, 0x54($sp)
/* 0438C4 80042CC4 C7A40028 */ lwc1 $f4, 0x28($sp)
/* 0438C8 80042CC8 46045180 */ add.s $f6, $f10, $f4
/* 0438CC 80042CCC E4460000 */ swc1 $f6, ($v0)
/* 0438D0 80042CD0 C7AA0064 */ lwc1 $f10, 0x64($sp)
/* 0438D4 80042CD4 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 0438D8 80042CD8 C7A60058 */ lwc1 $f6, 0x58($sp)
/* 0438DC 80042CDC 460A4100 */ add.s $f4, $f8, $f10
/* 0438E0 80042CE0 46062200 */ add.s $f8, $f4, $f6
/* 0438E4 80042CE4 E4480004 */ swc1 $f8, 4($v0)
/* 0438E8 80042CE8 C7A40060 */ lwc1 $f4, 0x60($sp)
/* 0438EC 80042CEC C7AA006C */ lwc1 $f10, 0x6c($sp)
/* 0438F0 80042CF0 C7A80054 */ lwc1 $f8, 0x54($sp)
/* 0438F4 80042CF4 46045180 */ add.s $f6, $f10, $f4
/* 0438F8 80042CF8 46083280 */ add.s $f10, $f6, $f8
/* 0438FC 80042CFC E44A0008 */ swc1 $f10, 8($v0)
/* 043900 80042D00 8FBF0024 */ lw $ra, 0x24($sp)
/* 043904 80042D04 8FB00020 */ lw $s0, 0x20($sp)
/* 043908 80042D08 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 04390C 80042D0C 03E00008 */ jr $ra
/* 043910 80042D10 27BD0078 */ addiu $sp, $sp, 0x78

View File

@ -1,124 +0,0 @@
.section .late_rodata
glabel D_800EF508
.double 10000.0
glabel D_800EF510
.double 10000.0
.section .text
glabel func_8008B478
/* 08C078 8008B478 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 08C07C 8008B47C AFBF001C */ sw $ra, 0x1c($sp)
/* 08C080 8008B480 AFB00018 */ sw $s0, 0x18($sp)
/* 08C084 8008B484 00808025 */ move $s0, $a0
/* 08C088 8008B488 0C022CF9 */ jal func_8008B3E4
/* 08C08C 8008B48C AFA5003C */ sw $a1, 0x3c($sp)
/* 08C090 8008B490 8FAE003C */ lw $t6, 0x3c($sp)
/* 08C094 8008B494 11C00005 */ beqz $t6, .L8008B4AC
/* 08C098 8008B498 00000000 */ nop
/* 08C09C 8008B49C 0C022CA1 */ jal func_8008B284
/* 08C0A0 8008B4A0 02002025 */ move $a0, $s0
/* 08C0A4 8008B4A4 10000004 */ b .L8008B4B8
/* 08C0A8 8008B4A8 001078C0 */ sll $t7, $s0, 3
.L8008B4AC:
/* 08C0AC 8008B4AC 0C022C75 */ jal func_8008B1D4
/* 08C0B0 8008B4B0 02002025 */ move $a0, $s0
/* 08C0B4 8008B4B4 001078C0 */ sll $t7, $s0, 3
.L8008B4B8:
/* 08C0B8 8008B4B8 01F07823 */ subu $t7, $t7, $s0
/* 08C0BC 8008B4BC 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016
/* 08C0C0 8008B4C0 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18
/* 08C0C4 8008B4C4 000F7940 */ sll $t7, $t7, 5
/* 08C0C8 8008B4C8 01F81821 */ addu $v1, $t7, $t8
/* 08C0CC 8008B4CC 94790098 */ lhu $t9, 0x98($v1)
/* 08C0D0 8008B4D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 08C0D4 8008B4D4 44992000 */ mtc1 $t9, $f4
/* 08C0D8 8008B4D8 07210004 */ bgez $t9, .L8008B4EC
/* 08C0DC 8008B4DC 468021A0 */ cvt.s.w $f6, $f4
/* 08C0E0 8008B4E0 44814000 */ mtc1 $at, $f8
/* 08C0E4 8008B4E4 00000000 */ nop
/* 08C0E8 8008B4E8 46083180 */ add.s $f6, $f6, $f8
.L8008B4EC:
/* 08C0EC 8008B4EC 3C01800F */ lui $at, %hi(D_800EF508)
/* 08C0F0 8008B4F0 D430F508 */ ldc1 $f16, %lo(D_800EF508)($at)
/* 08C0F4 8008B4F4 460032A1 */ cvt.d.s $f10, $f6
/* 08C0F8 8008B4F8 02002025 */ move $a0, $s0
/* 08C0FC 8008B4FC 46305483 */ div.d $f18, $f10, $f16
/* 08C100 8008B500 AFA30024 */ sw $v1, 0x24($sp)
/* 08C104 8008B504 46209020 */ cvt.s.d $f0, $f18
/* 08C108 8008B508 44050000 */ mfc1 $a1, $f0
/* 08C10C 8008B50C 0C022C5F */ jal func_8008B17C
/* 08C110 8008B510 E7A00034 */ swc1 $f0, 0x34($sp)
/* 08C114 8008B514 02002025 */ move $a0, $s0
/* 08C118 8008B518 0C01C88F */ jal func_8007223C
/* 08C11C 8008B51C 24050800 */ li $a1, 2048
/* 08C120 8008B520 10400006 */ beqz $v0, .L8008B53C
/* 08C124 8008B524 8FA30024 */ lw $v1, 0x24($sp)
/* 08C128 8008B528 02002025 */ move $a0, $s0
/* 08C12C 8008B52C 8FA50034 */ lw $a1, 0x34($sp)
/* 08C130 8008B530 0C022BF8 */ jal func_8008AFE0
/* 08C134 8008B534 AFA30024 */ sw $v1, 0x24($sp)
/* 08C138 8008B538 8FA30024 */ lw $v1, 0x24($sp)
.L8008B53C:
/* 08C13C 8008B53C 8C62007C */ lw $v0, 0x7c($v1)
/* 08C140 8008B540 C7AA0034 */ lwc1 $f10, 0x34($sp)
/* 08C144 8008B544 3C01800F */ lui $at, %hi(D_800EF510)
/* 08C148 8008B548 84480006 */ lh $t0, 6($v0)
/* 08C14C 8008B54C 8449000E */ lh $t1, 0xe($v0)
/* 08C150 8008B550 240B0001 */ li $t3, 1
/* 08C154 8008B554 44882000 */ mtc1 $t0, $f4
/* 08C158 8008B558 44894000 */ mtc1 $t1, $f8
/* 08C15C 8008B55C 46802020 */ cvt.s.w $f0, $f4
/* 08C160 8008B560 468040A0 */ cvt.s.w $f2, $f8
/* 08C164 8008B564 D428F510 */ ldc1 $f8, %lo(D_800EF510)($at)
/* 08C168 8008B568 3C0141E0 */ li $at, 0x41E00000 # 28.000000
/* 08C16C 8008B56C 46001181 */ sub.s $f6, $f2, $f0
/* 08C170 8008B570 460A3402 */ mul.s $f16, $f6, $f10
/* 08C174 8008B574 46008480 */ add.s $f18, $f16, $f0
/* 08C178 8008B578 46009121 */ cvt.d.s $f4, $f18
/* 08C17C 8008B57C 46244183 */ div.d $f6, $f8, $f4
/* 08C180 8008B580 444AF800 */ cfc1 $t2, $31
/* 08C184 8008B584 44CBF800 */ ctc1 $t3, $31
/* 08C188 8008B588 00000000 */ nop
/* 08C18C 8008B58C 462032A4 */ cvt.w.d $f10, $f6
/* 08C190 8008B590 444BF800 */ cfc1 $t3, $31
/* 08C194 8008B594 00000000 */ nop
/* 08C198 8008B598 316B0078 */ andi $t3, $t3, 0x78
/* 08C19C 8008B59C 51600014 */ beql $t3, $zero, .L8008B5F0
/* 08C1A0 8008B5A0 440B5000 */ mfc1 $t3, $f10
/* 08C1A4 8008B5A4 44815800 */ mtc1 $at, $f11
/* 08C1A8 8008B5A8 44805000 */ mtc1 $zero, $f10
/* 08C1AC 8008B5AC 240B0001 */ li $t3, 1
/* 08C1B0 8008B5B0 462A3281 */ sub.d $f10, $f6, $f10
/* 08C1B4 8008B5B4 44CBF800 */ ctc1 $t3, $31
/* 08C1B8 8008B5B8 00000000 */ nop
/* 08C1BC 8008B5BC 462052A4 */ cvt.w.d $f10, $f10
/* 08C1C0 8008B5C0 444BF800 */ cfc1 $t3, $31
/* 08C1C4 8008B5C4 00000000 */ nop
/* 08C1C8 8008B5C8 316B0078 */ andi $t3, $t3, 0x78
/* 08C1CC 8008B5CC 15600005 */ bnez $t3, .L8008B5E4
/* 08C1D0 8008B5D0 00000000 */ nop
/* 08C1D4 8008B5D4 440B5000 */ mfc1 $t3, $f10
/* 08C1D8 8008B5D8 3C018000 */ lui $at, 0x8000
/* 08C1DC 8008B5DC 10000007 */ b .L8008B5FC
/* 08C1E0 8008B5E0 01615825 */ or $t3, $t3, $at
.L8008B5E4:
/* 08C1E4 8008B5E4 10000005 */ b .L8008B5FC
/* 08C1E8 8008B5E8 240BFFFF */ li $t3, -1
/* 08C1EC 8008B5EC 440B5000 */ mfc1 $t3, $f10
.L8008B5F0:
/* 08C1F0 8008B5F0 00000000 */ nop
/* 08C1F4 8008B5F4 0560FFFB */ bltz $t3, .L8008B5E4
/* 08C1F8 8008B5F8 00000000 */ nop
.L8008B5FC:
/* 08C1FC 8008B5FC 946C0098 */ lhu $t4, 0x98($v1)
/* 08C200 8008B600 8FBF001C */ lw $ra, 0x1c($sp)
/* 08C204 8008B604 44CAF800 */ ctc1 $t2, $31
/* 08C208 8008B608 8FB00018 */ lw $s0, 0x18($sp)
/* 08C20C 8008B60C 018B7021 */ addu $t6, $t4, $t3
/* 08C210 8008B610 A46B009A */ sh $t3, 0x9a($v1)
/* 08C214 8008B614 A46E0098 */ sh $t6, 0x98($v1)
/* 08C218 8008B618 03E00008 */ jr $ra
/* 08C21C 8008B61C 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,129 +0,0 @@
.section .data
glabel D_800E3C98
# Due to this data being included via a GLOBAL_ASM macro,
# it gets passed through asm_processor instead of, I presume, the MIPS assembler
# asm_process seemingly does not support .hword, only .half
.hword 0x0000, 0x00b6, 0x016c, 0x0222, 0x02d8, 0x038e, 0x0444, 0x04fa
.hword 0x05b0, 0x0666
.section .text
glabel func_8002BB9C
/* 02C79C 8002BB9C 27BDFF78 */ addiu $sp, $sp, -0x88
/* 02C7A0 8002BBA0 3C0F800E */ lui $t7, %hi(D_800E3C98) # $t7, 0x800e
/* 02C7A4 8002BBA4 AFBF0024 */ sw $ra, 0x24($sp)
/* 02C7A8 8002BBA8 AFB00020 */ sw $s0, 0x20($sp)
/* 02C7AC 8002BBAC AFA5008C */ sw $a1, 0x8c($sp)
/* 02C7B0 8002BBB0 AFA60090 */ sw $a2, 0x90($sp)
/* 02C7B4 8002BBB4 AFA70094 */ sw $a3, 0x94($sp)
/* 02C7B8 8002BBB8 25EF3C98 */ addiu $t7, %lo(D_800E3C98) # addiu $t7, $t7, 0x3c98
/* 02C7BC 8002BBBC 8DE10000 */ lw $at, ($t7)
/* 02C7C0 8002BBC0 27AE0030 */ addiu $t6, $sp, 0x30
/* 02C7C4 8002BBC4 8DE80004 */ lw $t0, 4($t7)
/* 02C7C8 8002BBC8 ADC10000 */ sw $at, ($t6)
/* 02C7CC 8002BBCC 8DE10008 */ lw $at, 8($t7)
/* 02C7D0 8002BBD0 ADC80004 */ sw $t0, 4($t6)
/* 02C7D4 8002BBD4 8DE8000C */ lw $t0, 0xc($t7)
/* 02C7D8 8002BBD8 ADC10008 */ sw $at, 8($t6)
/* 02C7DC 8002BBDC 8DE10010 */ lw $at, 0x10($t7)
/* 02C7E0 8002BBE0 ADC8000C */ sw $t0, 0xc($t6)
/* 02C7E4 8002BBE4 00808025 */ move $s0, $a0
/* 02C7E8 8002BBE8 ADC10010 */ sw $at, 0x10($t6)
/* 02C7EC 8002BBEC 94820256 */ lhu $v0, 0x256($a0)
/* 02C7F0 8002BBF0 18400054 */ blez $v0, .L8002BD44
/* 02C7F4 8002BBF4 28410003 */ slti $at, $v0, 3
/* 02C7F8 8002BBF8 50200053 */ beql $at, $zero, .L8002BD48
/* 02C7FC 8002BBFC 8FBF0024 */ lw $ra, 0x24($sp)
/* 02C800 8002BC00 94890046 */ lhu $t1, 0x46($a0)
/* 02C804 8002BC04 312A0020 */ andi $t2, $t1, 0x20
/* 02C808 8002BC08 5140004F */ beql $t2, $zero, .L8002BD48
/* 02C80C 8002BC0C 8FBF0024 */ lw $ra, 0x24($sp)
/* 02C810 8002BC10 44800000 */ mtc1 $zero, $f0
/* 02C814 8002BC14 27A40064 */ addiu $a0, $sp, 0x64
/* 02C818 8002BC18 3C063F80 */ lui $a2, 0x3f80
/* 02C81C 8002BC1C 44050000 */ mfc1 $a1, $f0
/* 02C820 8002BC20 44070000 */ mfc1 $a3, $f0
/* 02C824 8002BC24 0C0AD950 */ jal func_802B6540
/* 02C828 8002BC28 AFA00010 */ sw $zero, 0x10($sp)
/* 02C82C 8002BC2C 8FAB008C */ lw $t3, 0x8c($sp)
/* 02C830 8002BC30 44803000 */ mtc1 $zero, $f6
/* 02C834 8002BC34 8FAC0090 */ lw $t4, 0x90($sp)
/* 02C838 8002BC38 C5640000 */ lwc1 $f4, ($t3)
/* 02C83C 8002BC3C E7A6005C */ swc1 $f6, 0x5c($sp)
/* 02C840 8002BC40 27A40058 */ addiu $a0, $sp, 0x58
/* 02C844 8002BC44 E7A40058 */ swc1 $f4, 0x58($sp)
/* 02C848 8002BC48 C5880000 */ lwc1 $f8, ($t4)
/* 02C84C 8002BC4C 27A50064 */ addiu $a1, $sp, 0x64
/* 02C850 8002BC50 0C0AD8EE */ jal func_802B63B8
/* 02C854 8002BC54 E7A80060 */ swc1 $f8, 0x60($sp)
/* 02C858 8002BC58 C60A0020 */ lwc1 $f10, 0x20($s0)
/* 02C85C 8002BC5C 44808000 */ mtc1 $zero, $f16
/* 02C860 8002BC60 27A4004C */ addiu $a0, $sp, 0x4c
/* 02C864 8002BC64 E7AA004C */ swc1 $f10, 0x4c($sp)
/* 02C868 8002BC68 E7B00050 */ swc1 $f16, 0x50($sp)
/* 02C86C 8002BC6C C6120028 */ lwc1 $f18, 0x28($s0)
/* 02C870 8002BC70 27A50064 */ addiu $a1, $sp, 0x64
/* 02C874 8002BC74 0C0AD8EE */ jal func_802B63B8
/* 02C878 8002BC78 E7B20054 */ swc1 $f18, 0x54($sp)
/* 02C87C 8002BC7C 27A40058 */ addiu $a0, $sp, 0x58
/* 02C880 8002BC80 0C0AD489 */ jal func_802B5224
/* 02C884 8002BC84 27A5004C */ addiu $a1, $sp, 0x4c
/* 02C888 8002BC88 8605002E */ lh $a1, 0x2e($s0)
/* 02C88C 8002BC8C 00024023 */ negu $t0, $v0
/* 02C890 8002BC90 3C010001 */ lui $at, 1
/* 02C894 8002BC94 00A06825 */ move $t5, $a1
/* 02C898 8002BC98 01A82023 */ subu $a0, $t5, $t0
/* 02C89C 8002BC9C 00812021 */ addu $a0, $a0, $at
/* 02C8A0 8002BCA0 00044C00 */ sll $t1, $a0, 0x10
/* 02C8A4 8002BCA4 00095403 */ sra $t2, $t1, 0x10
/* 02C8A8 8002BCA8 240100B6 */ li $at, 182
/* 02C8AC 8002BCAC 0141001A */ div $zero, $t2, $at
/* 02C8B0 8002BCB0 00005812 */ mflo $t3
/* 02C8B4 8002BCB4 000B6400 */ sll $t4, $t3, 0x10
/* 02C8B8 8002BCB8 000C6C03 */ sra $t5, $t4, 0x10
/* 02C8BC 8002BCBC 29A10097 */ slti $at, $t5, 0x97
/* 02C8C0 8002BCC0 10200003 */ beqz $at, .L8002BCD0
/* 02C8C4 8002BCC4 29A1FF6A */ slti $at, $t5, -0x96
/* 02C8C8 8002BCC8 5020001F */ beql $at, $zero, .L8002BD48
/* 02C8CC 8002BCCC 8FBF0024 */ lw $ra, 0x24($sp)
.L8002BCD0:
/* 02C8D0 8002BCD0 8E03007C */ lw $v1, 0x7c($s0)
/* 02C8D4 8002BCD4 24010006 */ li $at, 6
/* 02C8D8 8002BCD8 0003CC03 */ sra $t9, $v1, 0x10
/* 02C8DC 8002BCDC 0321001A */ div $zero, $t9, $at
/* 02C8E0 8002BCE0 00001012 */ mflo $v0
/* 02C8E4 8002BCE4 0002C400 */ sll $t8, $v0, 0x10
/* 02C8E8 8002BCE8 00187403 */ sra $t6, $t8, 0x10
/* 02C8EC 8002BCEC 01C01025 */ move $v0, $t6
/* 02C8F0 8002BCF0 05C10004 */ bgez $t6, .L8002BD04
/* 02C8F4 8002BCF4 03201825 */ move $v1, $t9
/* 02C8F8 8002BCF8 000E7823 */ negu $t7, $t6
/* 02C8FC 8002BCFC 000F4400 */ sll $t0, $t7, 0x10
/* 02C900 8002BD00 00081403 */ sra $v0, $t0, 0x10
.L8002BD04:
/* 02C904 8002BD04 28410008 */ slti $at, $v0, 8
/* 02C908 8002BD08 14200002 */ bnez $at, .L8002BD14
/* 02C90C 8002BD0C 00000000 */ nop
/* 02C910 8002BD10 24020008 */ li $v0, 8
.L8002BD14:
/* 02C914 8002BD14 04610007 */ bgez $v1, .L8002BD34
/* 02C918 8002BD18 00026840 */ sll $t5, $v0, 1
/* 02C91C 8002BD1C 00025040 */ sll $t2, $v0, 1
/* 02C920 8002BD20 03AA5821 */ addu $t3, $sp, $t2
/* 02C924 8002BD24 856B0030 */ lh $t3, 0x30($t3)
/* 02C928 8002BD28 00AB6023 */ subu $t4, $a1, $t3
/* 02C92C 8002BD2C 10000005 */ b .L8002BD44
/* 02C930 8002BD30 A60C002E */ sh $t4, 0x2e($s0)
.L8002BD34:
/* 02C934 8002BD34 03ADC821 */ addu $t9, $sp, $t5
/* 02C938 8002BD38 87390030 */ lh $t9, 0x30($t9)
/* 02C93C 8002BD3C 00B9C021 */ addu $t8, $a1, $t9
/* 02C940 8002BD40 A618002E */ sh $t8, 0x2e($s0)
.L8002BD44:
/* 02C944 8002BD44 8FBF0024 */ lw $ra, 0x24($sp)
.L8002BD48:
/* 02C948 8002BD48 8FB00020 */ lw $s0, 0x20($sp)
/* 02C94C 8002BD4C 27BD0088 */ addiu $sp, $sp, 0x88
/* 02C950 8002BD50 03E00008 */ jr $ra
/* 02C954 8002BD54 00000000 */ nop

View File

@ -1,152 +0,0 @@
glabel func_8002D028
/* 02DC28 8002D028 00053600 */ sll $a2, $a1, 0x18
/* 02DC2C 8002D02C 00067603 */ sra $t6, $a2, 0x18
/* 02DC30 8002D030 000E3840 */ sll $a3, $t6, 1
/* 02DC34 8002D034 3C028016 */ lui $v0, %hi(D_80165270) # 0x8016
/* 02DC38 8002D038 00471021 */ addu $v0, $v0, $a3
/* 02DC3C 8002D03C 84425270 */ lh $v0, %lo(D_80165270)($v0) # 0x5270($v0)
/* 02DC40 8002D040 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 02DC44 8002D044 3C018016 */ lui $at, %hi(D_80165210)
/* 02DC48 8002D048 00027880 */ sll $t7, $v0, 2
/* 02DC4C 8002D04C 002F0821 */ addu $at, $at, $t7
/* 02DC50 8002D050 C4245210 */ lwc1 $f4, %lo(D_80165210)($at)
/* 02DC54 8002D054 3C018016 */ lui $at, %hi(D_80165230)
/* 02DC58 8002D058 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 02DC5C 8002D05C 002F0821 */ addu $at, $at, $t7
/* 02DC60 8002D060 4480A000 */ mtc1 $zero, $f20
/* 02DC64 8002D064 C4265230 */ lwc1 $f6, %lo(D_80165230)($at)
/* 02DC68 8002D068 AFB00020 */ sw $s0, 0x20($sp)
/* 02DC6C 8002D06C 00808025 */ move $s0, $a0
/* 02DC70 8002D070 AFBF0024 */ sw $ra, 0x24($sp)
/* 02DC74 8002D074 AFA5005C */ sw $a1, 0x5c($sp)
/* 02DC78 8002D078 27A5004C */ addiu $a1, $sp, 0x4c
/* 02DC7C 8002D07C 24840014 */ addiu $a0, $a0, 0x14
/* 02DC80 8002D080 AFA70034 */ sw $a3, 0x34($sp)
/* 02DC84 8002D084 E7A4004C */ swc1 $f4, 0x4c($sp)
/* 02DC88 8002D088 E7B40050 */ swc1 $f20, 0x50($sp)
/* 02DC8C 8002D08C 0C0AD489 */ jal func_802B5224
/* 02DC90 8002D090 E7A60054 */ swc1 $f6, 0x54($sp)
/* 02DC94 8002D094 3C014100 */ li $at, 0x41000000 # 8.000000
/* 02DC98 8002D098 44811000 */ mtc1 $at, $f2
/* 02DC9C 8002D09C 3C014336 */ li $at, 0x43360000 # 182.000000
/* 02DCA0 8002D0A0 44816000 */ mtc1 $at, $f12
/* 02DCA4 8002D0A4 46001287 */ neg.s $f10, $f2
/* 02DCA8 8002D0A8 8604002E */ lh $a0, 0x2e($s0)
/* 02DCAC 8002D0AC 460C1002 */ mul.s $f0, $f2, $f12
/* 02DCB0 8002D0B0 00025023 */ negu $t2, $v0
/* 02DCB4 8002D0B4 01441823 */ subu $v1, $t2, $a0
/* 02DCB8 8002D0B8 460C5402 */ mul.s $f16, $f10, $f12
/* 02DCBC 8002D0BC 00037C00 */ sll $t7, $v1, 0x10
/* 02DCC0 8002D0C0 00033400 */ sll $a2, $v1, 0x10
/* 02DCC4 8002D0C4 000FC403 */ sra $t8, $t7, 0x10
/* 02DCC8 8002D0C8 00065C03 */ sra $t3, $a2, 0x10
/* 02DCCC 8002D0CC 8FA70034 */ lw $a3, 0x34($sp)
/* 02DCD0 8002D0D0 4600020D */ trunc.w.s $f8, $f0
/* 02DCD4 8002D0D4 01603025 */ move $a2, $t3
/* 02DCD8 8002D0D8 4600848D */ trunc.w.s $f18, $f16
/* 02DCDC 8002D0DC 44054000 */ mfc1 $a1, $f8
/* 02DCE0 8002D0E0 00000000 */ nop
/* 02DCE4 8002D0E4 00056C00 */ sll $t5, $a1, 0x10
/* 02DCE8 8002D0E8 44029000 */ mfc1 $v0, $f18
/* 02DCEC 8002D0EC 000D7403 */ sra $t6, $t5, 0x10
/* 02DCF0 8002D0F0 01D8082A */ slt $at, $t6, $t8
/* 02DCF4 8002D0F4 10200004 */ beqz $at, .L8002D108
/* 02DCF8 8002D0F8 00024C00 */ sll $t1, $v0, 0x10
/* 02DCFC 8002D0FC 00053400 */ sll $a2, $a1, 0x10
/* 02DD00 8002D100 0006CC03 */ sra $t9, $a2, 0x10
/* 02DD04 8002D104 03203025 */ move $a2, $t9
.L8002D108:
/* 02DD08 8002D108 00095403 */ sra $t2, $t1, 0x10
/* 02DD0C 8002D10C 00CA082A */ slt $at, $a2, $t2
/* 02DD10 8002D110 50200005 */ beql $at, $zero, .L8002D128
/* 02DD14 8002D114 00067880 */ sll $t7, $a2, 2
/* 02DD18 8002D118 00023400 */ sll $a2, $v0, 0x10
/* 02DD1C 8002D11C 00065C03 */ sra $t3, $a2, 0x10
/* 02DD20 8002D120 01603025 */ move $a2, $t3
/* 02DD24 8002D124 00067880 */ sll $t7, $a2, 2
.L8002D128:
/* 02DD28 8002D128 01E67823 */ subu $t7, $t7, $a2
/* 02DD2C 8002D12C 000F7880 */ sll $t7, $t7, 2
/* 02DD30 8002D130 01E67821 */ addu $t7, $t7, $a2
/* 02DD34 8002D134 000F7880 */ sll $t7, $t7, 2
/* 02DD38 8002D138 01E67821 */ addu $t7, $t7, $a2
/* 02DD3C 8002D13C 448F2000 */ mtc1 $t7, $f4
/* 02DD40 8002D140 3C0C8016 */ lui $t4, %hi(D_80165020) # $t4, 0x8016
/* 02DD44 8002D144 258C5020 */ addiu $t4, %lo(D_80165020) # addiu $t4, $t4, 0x5020
/* 02DD48 8002D148 468021A0 */ cvt.s.w $f6, $f4
/* 02DD4C 8002D14C 00EC1021 */ addu $v0, $a3, $t4
/* 02DD50 8002D150 844D0000 */ lh $t5, ($v0)
/* 02DD54 8002D154 AFA2002C */ sw $v0, 0x2c($sp)
/* 02DD58 8002D158 02002025 */ move $a0, $s0
/* 02DD5C 8002D15C 46003203 */ div.s $f8, $f6, $f0
/* 02DD60 8002D160 4600428D */ trunc.w.s $f10, $f8
/* 02DD64 8002D164 44185000 */ mfc1 $t8, $f10
/* 02DD68 8002D168 00000000 */ nop
/* 02DD6C 8002D16C 0018CC00 */ sll $t9, $t8, 0x10
/* 02DD70 8002D170 00194403 */ sra $t0, $t9, 0x10
/* 02DD74 8002D174 01A82821 */ addu $a1, $t5, $t0
/* 02DD78 8002D178 04A10003 */ bgez $a1, .L8002D188
/* 02DD7C 8002D17C 00054843 */ sra $t1, $a1, 1
/* 02DD80 8002D180 24A10001 */ addiu $at, $a1, 1
/* 02DD84 8002D184 00014843 */ sra $t1, $at, 1
.L8002D188:
/* 02DD88 8002D188 00095400 */ sll $t2, $t1, 0x10
/* 02DD8C 8002D18C 000A2C03 */ sra $a1, $t2, 0x10
/* 02DD90 8002D190 0C00DA03 */ jal func_8003680C
/* 02DD94 8002D194 A7A50046 */ sh $a1, 0x46($sp)
/* 02DD98 8002D198 8FA2002C */ lw $v0, 0x2c($sp)
/* 02DD9C 8002D19C 87A50046 */ lh $a1, 0x46($sp)
/* 02DDA0 8002D1A0 C7B00054 */ lwc1 $f16, 0x54($sp)
/* 02DDA4 8002D1A4 C7A4004C */ lwc1 $f4, 0x4c($sp)
/* 02DDA8 8002D1A8 A4450000 */ sh $a1, ($v0)
/* 02DDAC 8002D1AC C612001C */ lwc1 $f18, 0x1c($s0)
/* 02DDB0 8002D1B0 C6060014 */ lwc1 $f6, 0x14($s0)
/* 02DDB4 8002D1B4 46128001 */ sub.s $f0, $f16, $f18
/* 02DDB8 8002D1B8 46062081 */ sub.s $f2, $f4, $f6
/* 02DDBC 8002D1BC 46000202 */ mul.s $f8, $f0, $f0
/* 02DDC0 8002D1C0 00000000 */ nop
/* 02DDC4 8002D1C4 46021282 */ mul.s $f10, $f2, $f2
/* 02DDC8 8002D1C8 0C033850 */ jal sqrtf
/* 02DDCC 8002D1CC 460A4300 */ add.s $f12, $f8, $f10
/* 02DDD0 8002D1D0 3C014100 */ li $at, 0x41000000 # 8.000000
/* 02DDD4 8002D1D4 44818000 */ mtc1 $at, $f16
/* 02DDD8 8002D1D8 2604002E */ addiu $a0, $s0, 0x2e
/* 02DDDC 8002D1DC 24058000 */ li $a1, -32768
/* 02DDE0 8002D1E0 4610003E */ c.le.s $f0, $f16
/* 02DDE4 8002D1E4 3C014496 */ li $at, 0x44960000 # 1200.000000
/* 02DDE8 8002D1E8 45020018 */ bc1fl .L8002D24C
/* 02DDEC 8002D1EC 44819000 */ mtc1 $at, $f18
/* 02DDF0 8002D1F0 0C00893C */ jal func_800224F0
/* 02DDF4 8002D1F4 2406016C */ li $a2, 364
/* 02DDF8 8002D1F8 8603002E */ lh $v1, 0x2e($s0)
/* 02DDFC 8002D1FC 286180BF */ slti $at, $v1, -0x7f41
/* 02DE00 8002D200 14200003 */ bnez $at, .L8002D210
/* 02DE04 8002D204 28617F42 */ slti $at, $v1, 0x7f42
/* 02DE08 8002D208 54200005 */ bnel $at, $zero, .L8002D220
/* 02DE0C 8002D20C E614008C */ swc1 $f20, 0x8c($s0)
.L8002D210:
/* 02DE10 8002D210 960C0000 */ lhu $t4, ($s0)
/* 02DE14 8002D214 318FFDFF */ andi $t7, $t4, 0xfdff
/* 02DE18 8002D218 A60F0000 */ sh $t7, ($s0)
/* 02DE1C 8002D21C E614008C */ swc1 $f20, 0x8c($s0)
.L8002D220:
/* 02DE20 8002D220 E6140094 */ swc1 $f20, 0x94($s0)
/* 02DE24 8002D224 E6140104 */ swc1 $f20, 0x104($s0)
/* 02DE28 8002D228 AE000240 */ sw $zero, 0x240($s0)
/* 02DE2C 8002D22C AE00007C */ sw $zero, 0x7c($s0)
/* 02DE30 8002D230 E6140034 */ swc1 $f20, 0x34($s0)
/* 02DE34 8002D234 E6140038 */ swc1 $f20, 0x38($s0)
/* 02DE38 8002D238 E614003C */ swc1 $f20, 0x3c($s0)
/* 02DE3C 8002D23C A60000C0 */ sh $zero, 0xc0($s0)
/* 02DE40 8002D240 10000004 */ b .L8002D254
/* 02DE44 8002D244 A6000078 */ sh $zero, 0x78($s0)
/* 02DE48 8002D248 44819000 */ mtc1 $at, $f18
.L8002D24C:
/* 02DE4C 8002D24C 00000000 */ nop
/* 02DE50 8002D250 E612008C */ swc1 $f18, 0x8c($s0)
.L8002D254:
/* 02DE54 8002D254 8FBF0024 */ lw $ra, 0x24($sp)
/* 02DE58 8002D258 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 02DE5C 8002D25C 8FB00020 */ lw $s0, 0x20($sp)
/* 02DE60 8002D260 03E00008 */ jr $ra
/* 02DE64 8002D264 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -38,7 +38,7 @@ typedef struct
/* 0x80 */ Vec4s *unk_080; // unk_080[][4]?
/* 0x84 */ s16 unk_084[0xA];
/* 0x98 */ u16 unk_098;
/* 0x9A */ s16 unk_09A;
/* 0x9A */ u16 unk_09A;
/* 0x9C */ s16 unk_09C;
/* 0x9E */ s16 unk_09E;
/* 0xA0 */ s16 unk_0A0;

View File

@ -1575,18 +1575,11 @@ void func_8008B44C(s32 arg0) {
D_80165C18[arg0].unk_07C++;
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-24-2023
void func_8008B478(s32 objectIndex, s32 arg1) {
f32 sp34;
struct_80165C18_entry *sp24;
f32 temp_f0;
f32 temp_f0_2;
f32 temp;
f32 temp2;
f32 var_f6;
s16 (*temp_v0)[4];
struct_80165C18_entry *temp_v1;
u16 temp_t9;
u32 temp_t3;
func_8008B3E4(objectIndex);
if (arg1 != 0) {
@ -1594,29 +1587,19 @@ void func_8008B478(s32 objectIndex, s32 arg1) {
} else {
func_8008B1D4(objectIndex);
}
temp_v1 = &D_80165C18[objectIndex];
temp_t9 = temp_v1->unk_098;
var_f6 = (f32) temp_t9;
if ((s32) temp_t9 < 0) {
var_f6 += 4294967296.0f;
}
sp24 = temp_v1;
temp_f0 = (f32) ((f64) var_f6 / 10000.0);
sp34 = temp_f0;
func_8008B17C(objectIndex, temp_f0);
if (func_8007223C(objectIndex, 0x00000800) != 0) {
sp24 = temp_v1;
sp34 = ((f32)D_80165C18[objectIndex].unk_098 / 10000.0);
func_8008B17C(objectIndex, sp34);
if (func_8007223C(objectIndex, 0x800) != 0) {
func_8008AFE0(objectIndex, sp34);
}
temp_v0 = temp_v1->unk_07C;
temp_f0_2 = (f32) temp_v0[0][3];
temp_t3 = (u32) (10000.0 / (f64) ((((f32) temp_v0->unkE - temp_f0_2) * sp34) + temp_f0_2));
temp_v1->unk_09A = (s16) temp_t3;
temp_v1->unk_098 += temp_t3;
var_f6 = D_80165C18[objectIndex].unk_07C[0][3];
temp = D_80165C18[objectIndex].unk_07C[0][7];
D_80165C18[objectIndex].unk_09A = 10000.0 / (((temp - var_f6) * sp34) + var_f6);
D_80165C18[objectIndex].unk_098 += D_80165C18[objectIndex].unk_09A;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B478.s")
#endif
void func_8008B620(s32 objectIndex) {
s16 temp_t0;

View File

@ -1699,21 +1699,13 @@ void func_8002B9CC(Player *player, s8 arg1, UNUSED s32 arg2) {
}
}
//void func_8002BB9C(Player *player, f32 arg1, f32 arg2, UNUSED f32 arg3, f32 arg4, f32 arg5);
#ifdef NON_MATCHING
//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b
//extern s16 D_800E3C98[10];// = { 0x0000, 0x00b6, 0x016c, 0x0222, 0x02d8, 0x038e, 0x0444, 0x04fa, 0x05b0, 0x0666 };
void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED s8 arg4, UNUSED Vec3f arg5)
{
void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED s8 arg4, UNUSED Vec3f arg5) {
Mat3 sp64;
Vec3f sp58;
Vec3f sp4C;
s16 var_v0;
s32 bbb;
s16 t0;
UNUSED s32 pad;
s16 sp30[10] = {0x0000, 0x00b6, 0x016c, 0x0222, 0x02d8, 0x038e, 0x0444, 0x04fa, 0x05b0, 0x0666};
if (((u16) player->unk_256) <= 0) {
@ -1728,24 +1720,26 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED
return;
}
func_802B6540(sp64, 0.0f, 1.0f, 0.0f, (s16) 0);
func_802B6540(sp64, 0, 1, 0, (s16) 0);
sp58[0] = *arg1;
sp58[1] = 0.0f;
sp58[1] = 0;
sp58[2] = *arg2;
func_802B63B8(sp58, sp64);
sp4C[0] = player->rotX;
sp4C[1] = 0.0f;
sp4C[1] = 0;
sp4C[2] = player->rotZ;
func_802B63B8(sp4C, sp64);
bbb = player->unk_02C[1] - (-func_802B5224(sp58, sp4C));
var_v0 = (s16)((bbb) + 0x10000) / 182;
var_v0 = -(s16)func_802B5224(sp58, sp4C);
t0 = player->unk_02C[1];
var_v0 = 0x10000 + (t0 - var_v0);
var_v0 /= 182;
if (var_v0 < 0x97 && var_v0 > (-0x97)) {
if (var_v0 < 0x97 && (var_v0 > -0x97)) {
return;
}
@ -1761,14 +1755,10 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED
if ((player->unk_07C >> 0x10) < 0) {
player->unk_02C[1] -= sp30[var_v0];
}
else {
} else {
player->unk_02C[1] += sp30[var_v0];
}
}
#else
GLOBAL_ASM("asm/non_matchings/player_controller/func_8002BB9C.s")
#endif
void func_8002BD58(Player *player) {
s32 sp2C[7] = { 0x002f0000, 0x00300000, 0x00310000, 0x00320000, 0x00320000, 0x00320000, 0x00320000 };
@ -2152,61 +2142,57 @@ void func_8002CD48(Player *player, s8 arg1, s8 arg2) {
}
}
#ifdef NON_MATCHING
void func_8002D028(Player *player, s8 arg1) {
Vec3f sp4C;
f32 sqrt;
f32 temp_f18;
s16 temp_t1;
s16 test;
s16 temp;
s16 var_a2;
s16 temp2;
f32 thing0;
thing0 = 8.0f;
UNUSED s32 pad;
sp4C[0] = D_80165210[D_80165270[arg1]];
sp4C[1] = 0.0f;
sp4C[1] = 0;
sp4C[2] = D_80165230[D_80165270[arg1]];
//temp_f0 = thing0 * 182.0f;
test = -(s16)func_802B5224(player->pos, sp4C);
temp = player->unk_02C[1];
var_a2 = test - temp;
temp = -(s16)func_802B5224(player->pos, sp4C);
temp2 = player->unk_02C[1];
temp = (temp - temp2);
if ((s16)var_a2 > (s16)thing0 * 182) {
var_a2 = (s16)thing0 * 182;
thing0 = 8;
if (temp > ((s16) (thing0 * 182))) {
temp = (thing0 * 182);
}
//temp_f18 = -thing0 * 182.0f;
if (var_a2 < (s16)-thing0 * 182) {
var_a2 = (s16)-thing0 * 182;
if (temp < ((s16) (-thing0 * 182))) {
temp = (-thing0 * 182);
}
temp_t1 = ((s16) ((var_a2 * 0x35) / thing0 * 182) + D_80165020[arg1]) / 2;
temp_t1 = (D_80165020[arg1] + ((s16) ((temp * 0x35) / (thing0 * 182)))) / 2;
func_8003680C(player, (s16) temp_t1);
D_80165020[arg1] = (s16) temp_t1;
//temp_f0 = sp4C[2] - player->pos[2];
//temp_f18 = sp4C[0] - player->pos[0];
sqrt = sqrtf((sp4C[0] - player->pos[0]) * (sp4C[0] + player->pos[0]) + (sp4C[2] + player->pos[2]) * (sp4C[2] + player->pos[2]));
if (sqrt <= 8.0f) {
temp_f18 = sqrtf((sp4C[0] - player->pos[0]) * (sp4C[0] - player->pos[0])+ (sp4C[2] - player->pos[2]) * (sp4C[2] - player->pos[2]));
if (temp_f18 <= 8.0f) {
func_800224F0(&player->unk_02C[1], -0x8000, 0x016C);
if ((player->unk_02C[1] < -0x7F41) || (player->unk_02C[1] > 0x7F41)) {
if ((player->unk_02C[1] < (-0x7F41)) || (player->unk_02C[1] > 0x7F41)) {
player->unk_000 &= ~0x0200;
}
player->unk_08C = 0.0f;
player->unk_094 = 0.0f;
player->unk_104 = 0.0f;
player->unk_08C = 0;
player->unk_094 = 0;
player->unk_104 = 0;
player->unk_240 = 0;
player->unk_07C = 0;
player->unk_034[0] = 0.0f;
player->unk_034[1] = 0.0f;
player->unk_034[2] = 0.0f;
player->unk_034[0] = 0;
player->unk_034[1] = 0;
player->unk_034[2] = 0;
player->unk_0C0 = 0;
player->unk_078 = 0;
} else {
player->unk_08C = 1200.0f;
player->unk_08C = 1200;
}
}
#else
GLOBAL_ASM("asm/non_matchings/player_controller/func_8002D028.s")
#endif
void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3)
{