Identify acos, asin, acosf and asinf

This commit is contained in:
Ryan Dwyer 2021-12-19 22:47:14 +10:00
parent a940f9c97f
commit fcba7f272a
16 changed files with 68 additions and 69 deletions

View File

@ -87,8 +87,8 @@
build/ROMID/game/game_096360.o (section); \
build/ROMID/game/game_096700.o (section); \
build/ROMID/game/atan2f.o (section); \
build/ROMID/game/game_096890.o (section); \
build/ROMID/game/game_0969d0.o (section); \
build/ROMID/game/acosasin.o (section); \
build/ROMID/game/acosfasinf.o (section); \
build/ROMID/game/game_096b20.o (section); \
build/ROMID/game/game_096ca0.o (section); \
build/ROMID/game/floor.o (section); \

View File

@ -87,8 +87,8 @@
build/ROMID/game/game_096360.o (section); \
build/ROMID/game/game_096700.o (section); \
build/ROMID/game/atan2f.o (section); \
build/ROMID/game/game_096890.o (section); \
build/ROMID/game/game_0969d0.o (section); \
build/ROMID/game/acosasin.o (section); \
build/ROMID/game/acosfasinf.o (section); \
build/ROMID/game/game_096b20.o (section); \
build/ROMID/game/game_096ca0.o (section); \
build/ROMID/game/floor.o (section); \

View File

@ -87,8 +87,8 @@
build/ROMID/game/game_096360.o (section); \
build/ROMID/game/game_096700.o (section); \
build/ROMID/game/atan2f.o (section); \
build/ROMID/game/game_096890.o (section); \
build/ROMID/game/game_0969d0.o (section); \
build/ROMID/game/acosasin.o (section); \
build/ROMID/game/acosfasinf.o (section); \
build/ROMID/game/game_096b20.o (section); \
build/ROMID/game/game_096ca0.o (section); \
build/ROMID/game/floor.o (section); \

View File

@ -1,6 +1,6 @@
#include <ultra64.h>
#include "constants.h"
#include "game/game_096890.h"
#include "game/acosasin.h"
#include "bss.h"
#include "data.h"
#include "types.h"
@ -63,7 +63,7 @@ s32 func0f096890(s32 arg0)
return value - (((value - nextvalue) * (arg0 & mask)) >> shiftamount);
}
u16 func0f096910(s16 arg0)
u16 acos(s16 arg0)
{
s32 value = arg0 >= 0 ? arg0 : -arg0;
@ -76,7 +76,7 @@ u16 func0f096910(s16 arg0)
return value;
}
s16 func0f096964(s16 arg0)
s16 asin(s16 arg0)
{
s32 value = arg0 >= 0 ? arg0 : -arg0;

View File

@ -1,11 +1,11 @@
#include <ultra64.h>
#include "constants.h"
#include "game/game_096890.h"
#include "game/acosasin.h"
#include "bss.h"
#include "data.h"
#include "types.h"
f32 func0f0969d0(f32 value)
f32 acosf(f32 value)
{
s16 intval;
@ -17,10 +17,10 @@ f32 func0f0969d0(f32 value)
intval = value * 32767.0f;
}
return (func0f096910(intval) * M_PI) / 65535.0f;
return (acos(intval) * M_PI) / 65535.0f;
}
f32 func0f096a7c(f32 value)
f32 asinf(f32 value)
{
s16 intval;
@ -32,5 +32,5 @@ f32 func0f096a7c(f32 value)
intval = (value * 32767.0f);
}
return (func0f096964(intval) * M_PI) / 65535.0f;
return (asin(intval) * M_PI) / 65535.0f;
}

View File

@ -1,5 +1,5 @@
#include <ultra64.h>
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "data.h"
#include "types.h"
@ -23,13 +23,13 @@ f32 atan2f(f32 x, f32 z)
result = sqrtf(x * x + z * z);
if (z < x) {
result = func0f0969d0(z / result);
result = acosf(z / result);
if (x < 0) {
result = M_TAU - result;
}
} else {
result = func0f0969d0(x / result);
result = acosf(x / result);
result = 1.5707963705063f - result;
if (z < 0) {

View File

@ -9,7 +9,7 @@
#include "game/prop.h"
#include "game/game_092610.h"
#include "game/game_096360.h"
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "game/game_096b20.h"
#include "game/game_096ca0.h"
#include "game/game_097aa0.h"
@ -11091,7 +11091,7 @@ glabel var7f1ac72c
/* f09f3d0: c7aa01e4 */ lwc1 $f10,0x1e4($sp)
/* f09f3d4: 460a3402 */ mul.s $f16,$f6,$f10
/* f09f3d8: 46124100 */ add.s $f4,$f8,$f18
/* f09f3dc: 0fc25a74 */ jal func0f0969d0
/* f09f3dc: 0fc25a74 */ jal acosf
/* f09f3e0: 46048300 */ add.s $f12,$f16,$f4
/* f09f3e4: 3c017f1b */ lui $at,%hi(var7f1ac718)
/* f09f3e8: c428c714 */ lwc1 $f8,%lo(var7f1ac714)($at)
@ -11607,7 +11607,7 @@ glabel var7f1ac72c
/* f09f3d0: c7aa01e4 */ lwc1 $f10,0x1e4($sp)
/* f09f3d4: 460a3402 */ mul.s $f16,$f6,$f10
/* f09f3d8: 46124100 */ add.s $f4,$f8,$f18
/* f09f3dc: 0fc25a74 */ jal func0f0969d0
/* f09f3dc: 0fc25a74 */ jal acosf
/* f09f3e0: 46048300 */ add.s $f12,$f16,$f4
/* f09f3e4: 3c017f1b */ lui $at,%hi(var7f1ac718)
/* f09f3e8: c428c714 */ lwc1 $f8,%lo(var7f1ac714)($at)
@ -12130,7 +12130,7 @@ glabel var7f1ac740
/* f09ff84: c7a40200 */ lwc1 $f4,0x200($sp)
/* f09ff88: 46048482 */ mul.s $f18,$f16,$f4
/* f09ff8c: 46085180 */ add.s $f6,$f10,$f8
/* f09ff90: 0fc25a3c */ jal func0f0969d0
/* f09ff90: 0fc25a3c */ jal acosf
/* f09ff94: 46069300 */ add.s $f12,$f18,$f6
/* f09ff98: 3c017f1b */ lui $at,0x7f1b
/* f09ff9c: c42ad934 */ lwc1 $f10,-0x26cc($at)
@ -12765,7 +12765,7 @@ glabel var7f1ac740
/* f09fc80: c7a40200 */ lwc1 $f4,0x200($sp)
/* f09fc84: 46048482 */ mul.s $f18,$f16,$f4
/* f09fc88: 46085180 */ add.s $f6,$f10,$f8
/* f09fc8c: 0fc25a74 */ jal func0f0969d0
/* f09fc8c: 0fc25a74 */ jal acosf
/* f09fc90: 46069300 */ add.s $f12,$f18,$f6
/* f09fc94: 3c017f1b */ lui $at,%hi(var7f1ac734)
/* f09fc98: c42ac734 */ lwc1 $f10,%lo(var7f1ac734)($at)
@ -13391,7 +13391,7 @@ glabel var7f1ac740
/* f09daf4: c7a40200 */ lwc1 $f4,0x200($sp)
/* f09daf8: 46048482 */ mul.s $f18,$f16,$f4
/* f09dafc: 46085180 */ add.s $f6,$f10,$f8
/* f09db00: 0fc25258 */ jal func0f0969d0
/* f09db00: 0fc25258 */ jal acosf
/* f09db04: 46069300 */ add.s $f12,$f18,$f6
/* f09db08: 3c017f1a */ lui $at,0x7f1a
/* f09db0c: c42a6a7c */ lwc1 $f10,0x6a7c($at)
@ -16130,7 +16130,7 @@ f32 bgun0f0a2498(f32 arg0, f32 arg1, f32 arg2, f32 arg3)
{
f32 a = arg0 - arg2;
return func0f096a7c(a / sqrtf(a * a + (arg1 - arg3) * (arg1 - arg3)));
return asinf(a / sqrtf(a * a + (arg1 - arg3) * (arg1 - arg3)));
}
void bgun0f0a24f0(struct coord *arg0, s32 handnum)

View File

@ -12,7 +12,7 @@
#include "game/game_092610.h"
#include "game/game_095320.h"
#include "game/atan2f.h"
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "game/bondgun.h"
#include "game/game_0abe70.h"
#include "game/game_0b0fd0.h"
@ -11158,7 +11158,7 @@ void func0f04031c(struct coord *frompos, f32 arg1, struct coord *aimpos, struct
vel = sqrtf(xvel * xvel + yvel * yvel + zvel * zvel);
latvel = sqrtf(xvel * xvel + zvel * zvel);
sp38 = latvel / vel;
sp40 = func0f0969d0(sp38);
sp40 = acosf(sp38);
if (yvel < 0) {
sp40 = -sp40;
@ -11172,7 +11172,7 @@ void func0f04031c(struct coord *frompos, f32 arg1, struct coord *aimpos, struct
sp2c = 1;
}
sp3c = (func0f096a7c(sp2c) - sp40) * 0.5f + sp40;
sp3c = (asinf(sp2c) - sp40) * 0.5f + sp40;
sp28 = cosf(sp3c);
sp30 = sinf(sp3c);
@ -20093,7 +20093,7 @@ glabel var7f1a925c
/* f045894: 10000005 */ b .L0f0458ac
/* f045898: c42c9258 */ lwc1 $f12,%lo(var7f1a9258)($at)
.L0f04589c:
/* f04589c: 0fc25a74 */ jal func0f0969d0
/* f04589c: 0fc25a74 */ jal acosf
/* f0458a0: 00000000 */ nop
/* f0458a4: 44808000 */ mtc1 $zero,$f16
/* f0458a8: 46000306 */ mov.s $f12,$f0
@ -20264,7 +20264,7 @@ glabel var7f1a925c
// if (sp54 > 1) {
// sp54 = 0.7852731347084f;
// } else {
// sp54 = func0f0969d0(sp54);
// sp54 = acosf(sp54);
// }
//
// if (!arg2 && sp54) {
@ -21326,7 +21326,7 @@ void chrTickGoPos(struct chrdata *chr)
sp156 = sqrtf((sp180 * sp180 + sp176 * sp176) * (sp172 * sp172 + sp168 * sp168));
if (sp156 > 0) {
sp160 = func0f0969d0((sp180 * sp172 + sp176 * sp168) / sp156);
sp160 = acosf((sp180 * sp172 + sp176 * sp168) / sp156);
// sp160 < DEG2RAD(45) || sp160 > DEG2RAD(315)
if (sp160 < 0.7852731347084f || sp160 > 5.4969120025635f) {

View File

@ -1,6 +1,6 @@
#include <ultra64.h>
#include "constants.h"
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "game/game_096ca0.h"
#include "bss.h"
#include "lib/mtx.h"
@ -497,7 +497,7 @@ glabel func0f0972b8
/* f0973b0: afa40030 */ sw $a0,0x30($sp)
/* f0973b4: afa50034 */ sw $a1,0x34($sp)
/* f0973b8: afa7003c */ sw $a3,0x3c($sp)
/* f0973bc: 0fc25a74 */ jal func0f0969d0
/* f0973bc: 0fc25a74 */ jal acosf
/* f0973c0: e7ae0038 */ swc1 $f14,0x38($sp)
/* f0973c4: 3c013f80 */ lui $at,0x3f80
/* f0973c8: c7ae0038 */ lwc1 $f14,0x38($sp)
@ -636,7 +636,7 @@ glabel func0f097518
/* f0975bc: afa40038 */ sw $a0,0x38($sp)
/* f0975c0: afa60040 */ sw $a2,0x40($sp)
/* f0975c4: e7ae003c */ swc1 $f14,0x3c($sp)
/* f0975c8: 0fc25a74 */ jal func0f0969d0
/* f0975c8: 0fc25a74 */ jal acosf
/* f0975cc: e7b00030 */ swc1 $f16,0x30($sp)
/* f0975d0: 3c013f80 */ lui $at,0x3f80
/* f0975d4: 44811000 */ mtc1 $at,$f2

View File

@ -1,6 +1,6 @@
#include <ultra64.h>
#include "constants.h"
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "game/bondgun.h"
#include "game/game_0abe70.h"
#include "game/game_0b0fd0.h"
@ -328,7 +328,7 @@ glabel var7f1acc48
/* f0ac3e4: c7a60058 */ lwc1 $f6,0x58($sp)
/* f0ac3e8: 46069282 */ mul.s $f10,$f18,$f6
/* f0ac3ec: 46044400 */ add.s $f16,$f8,$f4
/* f0ac3f0: 0fc25a74 */ jal func0f0969d0
/* f0ac3f0: 0fc25a74 */ jal acosf
/* f0ac3f4: 46105300 */ add.s $f12,$f10,$f16
/* f0ac3f8: 3c017f1b */ lui $at,%hi(var7f1acc48)
/* f0ac3fc: c428cc48 */ lwc1 $f8,%lo(var7f1acc48)($at)
@ -571,7 +571,7 @@ glabel var7f1acc48
/* f0aa144: c7a60058 */ lwc1 $f6,0x58($sp)
/* f0aa148: 46069282 */ mul.s $f10,$f18,$f6
/* f0aa14c: 46044400 */ add.s $f16,$f8,$f4
/* f0aa150: 0fc25258 */ jal func0f0969d0
/* f0aa150: 0fc25258 */ jal acosf
/* f0aa154: 46105300 */ add.s $f12,$f10,$f16
/* f0aa158: 3c017f1a */ lui $at,0x7f1a
/* f0aa15c: c4286f98 */ lwc1 $f8,0x6f98($at)

View File

@ -16,7 +16,7 @@
#include "game/game_095320.h"
#include "game/game_096360.h"
#include "game/atan2f.h"
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "game/game_096ca0.h"
#include "game/floor.h"
#include "game/ceil.h"
@ -11549,7 +11549,7 @@ glabel var7f1aa298
/* f06e6a0: 46082180 */ add.s $f6,$f4,$f8
/* f06e6a4: c4640008 */ lwc1 $f4,0x8($v1)
/* f06e6a8: 46045202 */ mul.s $f8,$f10,$f4
/* f06e6ac: 0fc25a74 */ jal func0f0969d0
/* f06e6ac: 0fc25a74 */ jal acosf
/* f06e6b0: 46064300 */ add.s $f12,$f8,$f6
/* f06e6b4: 44809000 */ mtc1 $zero,$f18
/* f06e6b8: 8fa60030 */ lw $a2,0x30($sp)
@ -11619,7 +11619,7 @@ glabel var7f1aa298
/* f06e7ac: 460a4100 */ add.s $f4,$f8,$f10
/* f06e7b0: 46000282 */ mul.s $f10,$f0,$f0
/* f06e7b4: 46043200 */ add.s $f8,$f6,$f4
/* f06e7b8: 0fc25a74 */ jal func0f0969d0
/* f06e7b8: 0fc25a74 */ jal acosf
/* f06e7bc: 460a4303 */ div.s $f12,$f8,$f10
/* f06e7c0: c7b0006c */ lwc1 $f16,0x6c($sp)
/* f06e7c4: 44809000 */ mtc1 $zero,$f18
@ -24127,7 +24127,7 @@ glabel var7f1ab6dcpf
/* f07520c: 00000000 */ nop
/* f075210: 46124102 */ mul.s $f4,$f8,$f18
/* f075214: 46045200 */ add.s $f8,$f10,$f4
/* f075218: 0fc25a3c */ jal func0f0969d0
/* f075218: 0fc25a3c */ jal acosf
/* f07521c: 46083300 */ add.s $f12,$f6,$f8
/* f075220: 3c017f1b */ lui $at,0x7f1b
/* f075224: c42ab6a0 */ lwc1 $f10,-0x4960($at)
@ -27665,7 +27665,7 @@ glabel var7f1aa438
/* f074f88: 00000000 */ nop
/* f074f8c: 46123282 */ mul.s $f10,$f6,$f18
/* f074f90: 460a4180 */ add.s $f6,$f8,$f10
/* f074f94: 0fc25a74 */ jal func0f0969d0
/* f074f94: 0fc25a74 */ jal acosf
/* f074f98: 46062300 */ add.s $f12,$f4,$f6
/* f074f9c: 3c017f1b */ lui $at,%hi(var7f1aa404)
/* f074fa0: c428a404 */ lwc1 $f8,%lo(var7f1aa404)($at)
@ -31190,7 +31190,7 @@ glabel var7f1aa438
/* f073d04: 00000000 */ sll $zero,$zero,0x0
/* f073d08: 46123282 */ mul.s $f10,$f6,$f18
/* f073d0c: 460a4180 */ add.s $f6,$f8,$f10
/* f073d10: 0fc25258 */ jal func0f0969d0
/* f073d10: 0fc25258 */ jal acosf
/* f073d14: 46062300 */ add.s $f12,$f4,$f6
/* f073d18: 3c017f1a */ lui $at,0x7f1a
/* f073d1c: c4284724 */ lwc1 $f8,0x4724($at)

View File

@ -0,0 +1,10 @@
#ifndef _IN_GAME_ACOSASIN_H
#define _IN_GAME_ACOSASIN_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
u16 acos(s16 arg0);
s16 asin(s16 arg0);
#endif

View File

@ -0,0 +1,10 @@
#ifndef _IN_GAME_ACOSFASINF_H
#define _IN_GAME_ACOSFASINF_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
f32 acosf(f32 value);
f32 asinf(f32 value);
#endif

View File

@ -1,11 +0,0 @@
#ifndef _IN_GAME_GAME_096890_H
#define _IN_GAME_GAME_096890_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
s32 func0f096890(s32 arg0);
u16 func0f096910(s16 arg0);
s16 func0f096964(s16 arg0);
#endif

View File

@ -1,10 +0,0 @@
#ifndef _IN_GAME_GAME_0969D0_H
#define _IN_GAME_GAME_0969D0_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
f32 func0f0969d0(f32 value);
f32 func0f096a7c(f32 value);
#endif

View File

@ -1,7 +1,7 @@
#include <ultra64.h>
#include "constants.h"
#include "game/game_096700.h"
#include "game/game_0969d0.h"
#include "game/acosfasinf.h"
#include "game/game_096ca0.h"
#include "game/game_0b4950.h"
#include "game/floor.h"
@ -1254,7 +1254,7 @@ glabel var70054320
/* 1be90: afac0028 */ sw $t4,0x28($sp)
.L0001be94:
/* 1be94: 8fad00b4 */ lw $t5,0xb4($sp)
/* 1be98: 0fc25a74 */ jal func0f0969d0
/* 1be98: 0fc25a74 */ jal acosf
/* 1be9c: c5ac0000 */ lwc1 $f12,0x0($t5)
/* 1bea0: 46000080 */ add.s $f2,$f0,$f0
/* 1bea4: 3c017005 */ lui $at,%hi(var7005430c)
@ -5123,7 +5123,7 @@ glabel var70054454
/* 21910: 46065200 */ add.s $f8,$f10,$f6
/* 21914: c7aa00e8 */ lwc1 $f10,0xe8($sp)
/* 21918: 460a2182 */ mul.s $f6,$f4,$f10
/* 2191c: 0fc25a74 */ jal func0f0969d0
/* 2191c: 0fc25a74 */ jal acosf
/* 21920: 46083300 */ add.s $f12,$f6,$f8
/* 21924: e7a000ec */ swc1 $f0,0xec($sp)
/* 21928: 0c0068f7 */ jal sinf
@ -5140,7 +5140,7 @@ glabel var70054454
/* 21954: 46062282 */ mul.s $f10,$f4,$f6
/* 21958: 460a4100 */ add.s $f4,$f8,$f10
/* 2195c: 46002187 */ neg.s $f6,$f4
/* 21960: 0fc25a74 */ jal func0f0969d0
/* 21960: 0fc25a74 */ jal acosf
/* 21964: 46003303 */ div.s $f12,$f6,$f0
/* 21968: c7a800e0 */ lwc1 $f8,0xe0($sp)
/* 2196c: c64a0000 */ lwc1 $f10,0x0($s2)
@ -5565,8 +5565,8 @@ glabel var70054454
// }
//
// // 8f4
// spec = func0f0969d0(spe0.f[0] * mtx->m[1][0] + spe0.f[1] * mtx->m[1][1] + spe0.f[2] * mtx->m[1][2]);
// spf0 = func0f0969d0(-(spe0.f[0] * mtx->m[2][0] + spe0.f[1] * mtx->m[2][1] + spe0.f[2] * mtx->m[2][2]) / sinf(spec));
// spec = acosf(spe0.f[0] * mtx->m[1][0] + spe0.f[1] * mtx->m[1][1] + spe0.f[2] * mtx->m[1][2]);
// spf0 = acosf(-(spe0.f[0] * mtx->m[2][0] + spe0.f[1] * mtx->m[2][1] + spe0.f[2] * mtx->m[2][2]) / sinf(spec));
//
// tmp = -(spe0.f[0] * mtx->m[0][0] + spe0.f[1] * mtx->m[0][1] + spe0.f[2] * mtx->m[0][2]);
//