Document math functions

This commit is contained in:
Aetias
2025-01-18 15:50:03 +01:00
parent 311b9243e1
commit fe4c283ba2
35 changed files with 374 additions and 215 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: false
IndentCaseLabels: true
IndentExternBlock: Indent
IndentExternBlock: NoIndent
IndentPPDirectives: BeforeHash
NamespaceIndentation: All
IndentAccessModifiers: false
+43 -43
View File
@@ -1,48 +1,48 @@
func_01ff8000 kind:function(arm,size=0x18) addr:0x1ff8000
func_01ff8018 kind:function(thumb,size=0xc) addr:0x1ff8018
func_01ff8024 kind:function(arm,size=0xb0) addr:0x1ff8024
func_01ff80d4 kind:function(arm,size=0x24) addr:0x1ff80d4
func_01ff80f8 kind:function(arm,size=0x2c) addr:0x1ff80f8
func_01ff8124 kind:function(thumb,size=0x14) addr:0x1ff8124
func_01ff8138 kind:function(arm,size=0xc0) addr:0x1ff8138
func_01ff81f8 kind:function(thumb,size=0x1c) addr:0x1ff81f8
func_01ff8214 kind:function(thumb,size=0x1c) addr:0x1ff8214
func_01ff8230 kind:function(thumb,size=0x18) addr:0x1ff8230
func_01ff8248 kind:function(arm,size=0x158) addr:0x1ff8248
func_01ff83a0 kind:function(arm,size=0x2f0) addr:0x1ff83a0
func_01ff8690 kind:function(arm,size=0x220) addr:0x1ff8690
func_01ff88b0 kind:function(arm,size=0x7c) addr:0x1ff88b0
func_01ff892c kind:function(arm,size=0x28) addr:0x1ff892c
func_01ff8954 kind:function(arm,size=0x34) addr:0x1ff8954
func_01ff8988 kind:function(arm,size=0xac) addr:0x1ff8988
func_01ff8a34 kind:function(thumb,size=0x18) addr:0x1ff8a34
func_01ff8a4c kind:function(arm,size=0x34) addr:0x1ff8a4c
func_01ff8a80 kind:function(thumb,size=0x20) addr:0x1ff8a80
func_01ff8aa0 kind:function(thumb,size=0x1c) addr:0x1ff8aa0
func_01ff8abc kind:function(thumb,size=0x1c) addr:0x1ff8abc
func_01ff8ad8 kind:function(arm,size=0x20) addr:0x1ff8ad8
func_01ff8af8 kind:function(arm,size=0x38c) addr:0x1ff8af8
func_01ff8e84 kind:function(arm,size=0x2d4) addr:0x1ff8e84
func_01ff9158 kind:function(arm,size=0xa0) addr:0x1ff9158
func_01ff91f8 kind:function(arm,size=0x2c) addr:0x1ff91f8
func_01ff9224 kind:function(arm,size=0x34) addr:0x1ff9224
func_01ff9258 kind:function(thumb,size=0x24) addr:0x1ff9258
func_01ff927c kind:function(arm,size=0x664) addr:0x1ff927c
Divide kind:function(arm,size=0x10) addr:0x1ff98e0
Mat2p_InitIdentity kind:function(arm,size=0x18) addr:0x1ff8000
Mat2p_InitRotation kind:function(thumb,size=0xc) addr:0x1ff8018
Mat2p_Multiply kind:function(arm,size=0xb0) addr:0x1ff8024
Mat3p_InitIdentity kind:function(arm,size=0x24) addr:0x1ff80d4
Mat3p_CopyToMat4x3p kind:function(arm,size=0x2c) addr:0x1ff80f8
Mat3p_InitScale kind:function(thumb,size=0x14) addr:0x1ff8124
Mat3p_ScaleColumns kind:function(arm,size=0xc0) addr:0x1ff8138
Mat3p_InitXRotation kind:function(thumb,size=0x1c) addr:0x1ff81f8
Mat3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x1ff8214
Mat3p_InitZRotation kind:function(thumb,size=0x18) addr:0x1ff8230
Mat3p_func_01ff8248 kind:function(arm,size=0x158) addr:0x1ff8248
Mat3p_func_01ff83a0 kind:function(arm,size=0x2f0) addr:0x1ff83a0
Mat3p_Multiply kind:function(arm,size=0x220) addr:0x1ff8690
Mat3p_MultiplyVec kind:function(arm,size=0x7c) addr:0x1ff88b0
Mat4x3p_InitIdentity kind:function(arm,size=0x28) addr:0x1ff892c
Mat4x3p_CopyToMat4p kind:function(arm,size=0x34) addr:0x1ff8954
Mat4x3p_func_01ff8988 kind:function(arm,size=0xac) addr:0x1ff8988
Mat4x3p_InitScale kind:function(thumb,size=0x18) addr:0x1ff8a34
Mat4x3p_ScaleColumns kind:function(arm,size=0x34) addr:0x1ff8a4c
Mat4x3p_InitXRotation kind:function(thumb,size=0x20) addr:0x1ff8a80
Mat4x3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x1ff8aa0
Mat4x3p_InitZRotation kind:function(thumb,size=0x1c) addr:0x1ff8abc
Mat4x3p_func_01ff8ad8 kind:function(arm,size=0x20) addr:0x1ff8ad8
Mat4x3p_func_01ff8af8 kind:function(arm,size=0x38c) addr:0x1ff8af8
Mat4x3p_Multiply kind:function(arm,size=0x2d4) addr:0x1ff8e84
Mat4x3p_MultiplyVec kind:function(arm,size=0xa0) addr:0x1ff9158
Mat4p_InitIdentity kind:function(arm,size=0x2c) addr:0x1ff91f8
Mat4p_CopyToMat4x3p kind:function(arm,size=0x34) addr:0x1ff9224
Mat4p_InitZRotation kind:function(thumb,size=0x24) addr:0x1ff9258
Mat4p_Multiply kind:function(arm,size=0x664) addr:0x1ff927c
CoDivide64By32 kind:function(arm,size=0x10) addr:0x1ff98e0
func_01ff98f0 kind:function(arm,size=0x2c) addr:0x1ff98f0
func_01ff991c kind:function(arm,size=0x10) addr:0x1ff991c
CoReciprocal kind:function(arm,size=0x10) addr:0x1ff991c
func_01ff992c kind:function(arm,size=0x2c) addr:0x1ff992c
func_01ff9958 kind:function(arm,size=0x34) addr:0x1ff9958
func_01ff998c kind:function(arm,size=0x68) addr:0x1ff998c
func_01ff99f4 kind:function(arm,size=0x24) addr:0x1ff99f4
func_01ff9a18 kind:function(arm,size=0x38) addr:0x1ff9a18
func_01ff9a50 kind:function(arm,size=0x30) addr:0x1ff9a50
func_01ff9a80 kind:function(arm,size=0x44) addr:0x1ff9a80
CoSqrt kind:function(arm,size=0x34) addr:0x1ff9958
CoInvSqrt kind:function(arm,size=0x68) addr:0x1ff998c
AwaitDivisionResult kind:function(arm,size=0x24) addr:0x1ff99f4
GetDivisionResult kind:function(arm,size=0x38) addr:0x1ff9a18
StartReciprocal kind:function(arm,size=0x30) addr:0x1ff9a50
StartSqrt kind:function(arm,size=0x44) addr:0x1ff9a80
func_01ff9ac4 kind:function(arm,size=0x34) addr:0x1ff9ac4
func_01ff9af8 kind:function(arm,size=0x2c) addr:0x1ff9af8
func_01ff9b24 kind:function(arm,size=0x28) addr:0x1ff9b24
func_01ff9b4c kind:function(arm,size=0x3c) addr:0x1ff9b4c
func_01ff9b88 kind:function(arm,size=0x3c) addr:0x1ff9b88
AwaitSqrtResult kind:function(arm,size=0x2c) addr:0x1ff9af8
StartDivision64By32 kind:function(arm,size=0x28) addr:0x1ff9b24
CoDivide32 kind:function(arm,size=0x3c) addr:0x1ff9b4c
CoRemainder kind:function(arm,size=0x3c) addr:0x1ff9b88
Vec3p_Add kind:function(arm,size=0x34) addr:0x1ff9bc4
Vec3p_Sub kind:function(arm,size=0x34) addr:0x1ff9bf8
Vec3p_Dot kind:function(arm,size=0x3c) addr:0x1ff9c2c
@@ -68,7 +68,7 @@ func_01ffa7fc kind:function(arm,size=0xd8) addr:0x1ffa7fc
func_01ffa8d4 kind:function(arm,size=0x60) addr:0x1ffa8d4
func_01ffa934 kind:function(arm,size=0x18) addr:0x1ffa934
func_01ffa94c kind:function(arm,size=0xb0) addr:0x1ffa94c
func_01ffa9fc kind:function(arm,size=0xf0) addr:0x1ffa9fc
PushGeometryCommand kind:function(arm,size=0xf0) addr:0x1ffa9fc
func_01ffaaec kind:function(arm,size=0x17c) addr:0x1ffaaec
func_01ffac68 kind:function(arm,size=0xcc) addr:0x1ffac68
func_01ffad54 kind:function(arm,size=0x458) addr:0x1ffad54
+2 -2
View File
@@ -1420,8 +1420,8 @@ Vec3p_SetLength kind:function(arm,size=0xa4) addr:0x202da8c
func_0202db30 kind:function(arm,size=0x108) addr:0x202db30
func_0202dc38 kind:function(arm,size=0xc4) addr:0x202dc38
func_0202dcfc kind:function(arm,size=0x140) addr:0x202dcfc
Mat4x3p_Multiply kind:function(arm,size=0x1f4) addr:0x202de3c
Mat3p_Multiply kind:function(arm,size=0x170) addr:0x202e030
Mat4x3p_MultiplyMat4x3p kind:function(arm,size=0x1f4) addr:0x202de3c
Mat3p_MultiplyMat3p kind:function(arm,size=0x170) addr:0x202e030
_ZN18UnkStruct_0202e1a0C2Ev kind:function(arm,size=0x24) addr:0x202e1a0
_ZN18UnkStruct_0202e1a013func_0202e1c4Ev kind:function(arm,size=0x24) addr:0x202e1c4
_ZN18UnkStruct_0202e1a013func_0202e1e8Ev kind:function(arm,size=0x128) addr:0x202e1e8
+43 -43
View File
@@ -1,48 +1,48 @@
func_01ff8000 kind:function(arm,size=0x18) addr:0x1ff8000
func_01ff8018 kind:function(thumb,size=0xc) addr:0x1ff8018
func_01ff8024 kind:function(arm,size=0xb0) addr:0x1ff8024
func_01ff80d4 kind:function(arm,size=0x24) addr:0x1ff80d4
func_01ff80f8 kind:function(arm,size=0x2c) addr:0x1ff80f8
func_01ff8124 kind:function(thumb,size=0x14) addr:0x1ff8124
func_01ff8138 kind:function(arm,size=0xc0) addr:0x1ff8138
func_01ff81f8 kind:function(thumb,size=0x1c) addr:0x1ff81f8
func_01ff8214 kind:function(thumb,size=0x1c) addr:0x1ff8214
func_01ff8230 kind:function(thumb,size=0x18) addr:0x1ff8230
func_01ff8248 kind:function(arm,size=0x158) addr:0x1ff8248
func_01ff83a0 kind:function(arm,size=0x2f0) addr:0x1ff83a0
func_01ff8690 kind:function(arm,size=0x220) addr:0x1ff8690
func_01ff88b0 kind:function(arm,size=0x7c) addr:0x1ff88b0
func_01ff892c kind:function(arm,size=0x28) addr:0x1ff892c
func_01ff8954 kind:function(arm,size=0x34) addr:0x1ff8954
func_01ff8988 kind:function(arm,size=0xac) addr:0x1ff8988
func_01ff8a34 kind:function(thumb,size=0x18) addr:0x1ff8a34
func_01ff8a4c kind:function(arm,size=0x34) addr:0x1ff8a4c
func_01ff8a80 kind:function(thumb,size=0x20) addr:0x1ff8a80
func_01ff8aa0 kind:function(thumb,size=0x1c) addr:0x1ff8aa0
func_01ff8abc kind:function(thumb,size=0x1c) addr:0x1ff8abc
func_01ff8ad8 kind:function(arm,size=0x20) addr:0x1ff8ad8
func_01ff8af8 kind:function(arm,size=0x38c) addr:0x1ff8af8
func_01ff8e84 kind:function(arm,size=0x2d4) addr:0x1ff8e84
func_01ff9158 kind:function(arm,size=0xa0) addr:0x1ff9158
func_01ff91f8 kind:function(arm,size=0x2c) addr:0x1ff91f8
func_01ff9224 kind:function(arm,size=0x34) addr:0x1ff9224
func_01ff9258 kind:function(thumb,size=0x24) addr:0x1ff9258
func_01ff927c kind:function(arm,size=0x664) addr:0x1ff927c
Divide kind:function(arm,size=0x10) addr:0x1ff98e0
Mat2p_InitIdentity kind:function(arm,size=0x18) addr:0x1ff8000
Mat2p_InitRotation kind:function(thumb,size=0xc) addr:0x1ff8018
Mat2p_Multiply kind:function(arm,size=0xb0) addr:0x1ff8024
Mat3p_InitIdentity kind:function(arm,size=0x24) addr:0x1ff80d4
Mat3p_CopyToMat4x3p kind:function(arm,size=0x2c) addr:0x1ff80f8
Mat3p_InitScale kind:function(thumb,size=0x14) addr:0x1ff8124
Mat3p_ScaleColumns kind:function(arm,size=0xc0) addr:0x1ff8138
Mat3p_InitXRotation kind:function(thumb,size=0x1c) addr:0x1ff81f8
Mat3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x1ff8214
Mat3p_InitZRotation kind:function(thumb,size=0x18) addr:0x1ff8230
Mat3p_func_01ff8248 kind:function(arm,size=0x158) addr:0x1ff8248
Mat3p_func_01ff83a0 kind:function(arm,size=0x2f0) addr:0x1ff83a0
Mat3p_Multiply kind:function(arm,size=0x220) addr:0x1ff8690
Mat3p_MultiplyVec kind:function(arm,size=0x7c) addr:0x1ff88b0
Mat4x3p_InitIdentity kind:function(arm,size=0x28) addr:0x1ff892c
Mat4x3p_CopyToMat4p kind:function(arm,size=0x34) addr:0x1ff8954
Mat4x3p_func_01ff8988 kind:function(arm,size=0xac) addr:0x1ff8988
Mat4x3p_InitScale kind:function(thumb,size=0x18) addr:0x1ff8a34
Mat4x3p_ScaleColumns kind:function(arm,size=0x34) addr:0x1ff8a4c
Mat4x3p_InitXRotation kind:function(thumb,size=0x20) addr:0x1ff8a80
Mat4x3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x1ff8aa0
Mat4x3p_InitZRotation kind:function(thumb,size=0x1c) addr:0x1ff8abc
Mat4x3p_func_01ff8ad8 kind:function(arm,size=0x20) addr:0x1ff8ad8
Mat4x3p_func_01ff8af8 kind:function(arm,size=0x38c) addr:0x1ff8af8
Mat4x3p_Multiply kind:function(arm,size=0x2d4) addr:0x1ff8e84
Mat4x3p_MultiplyVec kind:function(arm,size=0xa0) addr:0x1ff9158
Mat4p_InitIdentity kind:function(arm,size=0x2c) addr:0x1ff91f8
Mat4p_CopyToMat4x3p kind:function(arm,size=0x34) addr:0x1ff9224
Mat4p_InitZRotation kind:function(thumb,size=0x24) addr:0x1ff9258
Mat4p_Multiply kind:function(arm,size=0x664) addr:0x1ff927c
CoDivide64By32 kind:function(arm,size=0x10) addr:0x1ff98e0
func_01ff98f0 kind:function(arm,size=0x2c) addr:0x1ff98f0
func_01ff991c kind:function(arm,size=0x10) addr:0x1ff991c
CoReciprocal kind:function(arm,size=0x10) addr:0x1ff991c
func_01ff992c kind:function(arm,size=0x2c) addr:0x1ff992c
func_01ff9958 kind:function(arm,size=0x34) addr:0x1ff9958
func_01ff998c kind:function(arm,size=0x68) addr:0x1ff998c
func_01ff99f4 kind:function(arm,size=0x24) addr:0x1ff99f4
func_01ff9a18 kind:function(arm,size=0x38) addr:0x1ff9a18
func_01ff9a50 kind:function(arm,size=0x30) addr:0x1ff9a50
func_01ff9a80 kind:function(arm,size=0x44) addr:0x1ff9a80
CoSqrt kind:function(arm,size=0x34) addr:0x1ff9958
CoInvSqrt kind:function(arm,size=0x68) addr:0x1ff998c
AwaitDivisionResult kind:function(arm,size=0x24) addr:0x1ff99f4
GetDivisionResult kind:function(arm,size=0x38) addr:0x1ff9a18
StartReciprocal kind:function(arm,size=0x30) addr:0x1ff9a50
StartSqrt kind:function(arm,size=0x44) addr:0x1ff9a80
func_01ff9ac4 kind:function(arm,size=0x34) addr:0x1ff9ac4
func_01ff9af8 kind:function(arm,size=0x2c) addr:0x1ff9af8
func_01ff9b24 kind:function(arm,size=0x28) addr:0x1ff9b24
func_01ff9b4c kind:function(arm,size=0x3c) addr:0x1ff9b4c
func_01ff9b88 kind:function(arm,size=0x3c) addr:0x1ff9b88
AwaitSqrtResult kind:function(arm,size=0x2c) addr:0x1ff9af8
StartDivision64By32 kind:function(arm,size=0x28) addr:0x1ff9b24
CoDivide32 kind:function(arm,size=0x3c) addr:0x1ff9b4c
CoRemainder kind:function(arm,size=0x3c) addr:0x1ff9b88
Vec3p_Add kind:function(arm,size=0x34) addr:0x1ff9bc4
Vec3p_Sub kind:function(arm,size=0x34) addr:0x1ff9bf8
Vec3p_Dot kind:function(arm,size=0x3c) addr:0x1ff9c2c
@@ -68,7 +68,7 @@ func_01ffa7fc kind:function(arm,size=0xd8) addr:0x1ffa7fc
func_01ffa8d4 kind:function(arm,size=0x60) addr:0x1ffa8d4
func_01ffa934 kind:function(arm,size=0x18) addr:0x1ffa934
func_01ffa94c kind:function(arm,size=0xb0) addr:0x1ffa94c
func_01ffa9fc kind:function(arm,size=0xf0) addr:0x1ffa9fc
PushGeometryCommand kind:function(arm,size=0xf0) addr:0x1ffa9fc
func_01ffaaec kind:function(arm,size=0x17c) addr:0x1ffaaec
func_01ffac68 kind:function(arm,size=0xcc) addr:0x1ffac68
func_01ffad54 kind:function(arm,size=0x458) addr:0x1ffad54
+2 -2
View File
@@ -1420,8 +1420,8 @@ Vec3p_SetLength kind:function(arm,size=0xa4) addr:0x202da88
func_0202db30 kind:function(arm,size=0x108) addr:0x202db2c
func_0202dc38 kind:function(arm,size=0xc4) addr:0x202dc34
func_0202dcfc kind:function(arm,size=0x140) addr:0x202dcf8
Mat4x3p_Multiply kind:function(arm,size=0x1f4) addr:0x202de38
Mat3p_Multiply kind:function(arm,size=0x170) addr:0x202e02c
Mat4x3p_MultiplyMat4x3p kind:function(arm,size=0x1f4) addr:0x202de38
Mat3p_MultiplyMat3p kind:function(arm,size=0x170) addr:0x202e02c
_ZN18UnkStruct_0202e1a0C2Ev kind:function(arm,size=0x24) addr:0x202e19c
_ZN18UnkStruct_0202e1a013func_0202e1c4Ev kind:function(arm,size=0x24) addr:0x202e1c0
_ZN18UnkStruct_0202e1a013func_0202e1e8Ev kind:function(arm,size=0x128) addr:0x202e1e4
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorType.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
+1 -1
View File
@@ -5,7 +5,7 @@ extern "C" {
}
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/ActorNavi.hpp"
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "System/SysNew.hpp"
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "System/SysNew.hpp"
+1 -1
View File
@@ -5,7 +5,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Map/CameraViewpoint.hpp"
#include "Map/Course.hpp"
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "System/SysNew.hpp"
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Map/Course.hpp"
#include "Map/MapBase.hpp"
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct AABB {
Vec3p min;
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct Cylinder {
Vec3p pos;
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct Sphere {
Vec3p pos;
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct Transform {
Vec3p pos;
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Item/Item.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Player/LinkStateBase.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "System/SysNew.hpp"
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/ActorManager.hpp"
+1 -1
View File
@@ -1,8 +1,8 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "lib/touch.h"
#include "nds/math.h"
#include "types.h"
typedef u16 TouchFlags;
-95
View File
@@ -1,95 +0,0 @@
#pragma once
#include "global.h"
#include "types.h"
// Q20.12 fixed point number
typedef s32 q20;
// Q4.12 fixed point number
typedef s16 q4;
#define INT_TO_Q20(n) ((s32) ((n) << 12))
#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1])
extern "C" s32 Atan2(s32 x, s32 y);
extern q4 gSinCosTable[];
typedef struct {
/* 0 */ s8 x;
/* 1 */ s8 y;
/* 2 */
} Vec2b;
typedef struct {
/* 0 */ s16 x;
/* 1 */ s16 y;
/* 2 */
} Vec2s;
typedef struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */ q20 z;
/* c */
} Vec3p;
extern const Vec3p gVec3p_ZERO;
extern "C" void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
extern "C" void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
extern "C" q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
extern "C" void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
extern "C" q20 Vec3p_Length(Vec3p *a);
extern "C" void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
extern "C" void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
extern "C" q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
out->x += MUL_Q20(vec->z, sin);
out->z += MUL_Q20(vec->z, cos);
out->x += MUL_Q20(vec->x, cos);
out->z += MUL_Q20(vec->x, -sin);
}
inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
q20 z = vec->z;
q20 x = vec->x;
out->x = x;
out->y = 0;
out->z = z;
}
inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
out->x = vec->x;
out->y = vec->y;
out->z = vec->z;
}
typedef struct {
/* 00 */ q20 x;
/* 04 */ q20 y;
/* 08 */ q20 z;
/* 0c */ q20 w;
/* 10 */
} Vec4p;
typedef struct {
/* 00 */ Vec3p xColumn;
/* 0c */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */
} Mat3p;
extern "C" u32 SoftDivide(u32 a, u32 b);
extern "C" u32 Divide(u32 a, u32 b);
extern "C" bool Approach(unk32 *src, unk32 dest, unk32 step);
extern "C" bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
+4
View File
@@ -15,6 +15,10 @@ typedef s8 unk8;
typedef s16 unk16;
typedef s32 unk32;
#ifndef __cplusplus
typedef s32 bool;
#endif
#define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
#endif
+184
View File
@@ -0,0 +1,184 @@
#ifndef _NDS_MATH_H
#define _NDS_MATH_H
#include "global.h"
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
// Q20.12 fixed point number
typedef s32 q20;
// Q4.12 fixed point number
typedef s16 q4;
#define INT_TO_Q20(n) ((s32) ((n) << 12))
#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1])
u32 func_01ff9f3c(s32 a, s32 b);
s32 Atan2(s32 x, s32 y);
u32 SoftDivide(u32 a, u32 b);
u32 CoDivide64By32(u32 a, u32 b);
u32 func_01ff98f0(u32 a, u32 b);
u32 CoReciprocal(u32 x);
u32 func_01ff992c(u32 x);
u32 CoSqrt(u32 x);
u32 CoInvSqrt(u32 x);
u32 AwaitDivisionResult();
u32 GetDivisionResult();
void StartReciprocal(u32 x);
void StartSqrt(u32 x);
void func_01ff9ac4(u32 x);
u32 AwaitSqrtResult();
void StartDivision64By32(u32 a, u32 b);
u32 CoDivide32(u32 a, u32 b);
u32 CoRemainder(u32 a, u32 b);
bool Approach(unk32 *src, unk32 dest, unk32 step);
bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
extern q4 gSinCosTable[];
typedef struct {
/* 0 */ s8 x;
/* 1 */ s8 y;
/* 2 */
} Vec2b;
typedef struct {
/* 0 */ s16 x;
/* 1 */ s16 y;
/* 2 */
} Vec2s;
typedef struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */
} Vec2p;
typedef struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */ q20 z;
/* c */
} Vec3p;
typedef struct {
/* 00 */ q20 x;
/* 04 */ q20 y;
/* 08 */ q20 z;
/* 0c */ q20 w;
/* 10 */
} Vec4p;
typedef struct {
/* 00 */ Vec2p xColumn;
/* 08 */ Vec2p yColumn;
/* 10 */
} Mat2p;
typedef struct {
/* 00 */ Vec3p xColumn;
/* 0c */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */
} Mat3p;
typedef struct {
/* 00 */ Vec3p xColumn;
/* 0c */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */ Vec3p wColumn;
/* 30 */
} Mat4x3p;
typedef struct {
/* 00 */ Vec4p xColumn;
/* 10 */ Vec4p yColumn;
/* 20 */ Vec4p zColumn;
/* 30 */ Vec4p wColumn;
/* 40 */
} Mat4p;
extern const Vec3p gVec3p_ZERO;
void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Length(Vec3p *a);
void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
out->x += MUL_Q20(vec->z, sin);
out->z += MUL_Q20(vec->z, cos);
out->x += MUL_Q20(vec->x, cos);
out->z += MUL_Q20(vec->x, -sin);
}
inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
q20 z = vec->z;
q20 x = vec->x;
out->x = x;
out->y = 0;
out->z = z;
}
inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
out->x = vec->x;
out->y = vec->y;
out->z = vec->z;
}
void Mat2p_InitIdentity(Mat2p *m);
void Mat2p_InitRotation(Mat2p *m, q20 sin, q20 cos);
void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out);
void Mat3p_InitIdentity(Mat3p *m);
void Mat3p_CopyToMat4x3p(Mat3p *m, Mat4x3p *out);
void Mat3p_InitScale(Mat3p *m, q20 x, q20 y, q20 z);
void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, q20 x, q20 y, q20 z);
void Mat3p_InitXRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_InitYRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_InitZRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_func_01ff8248(Mat3p *m, Vec3p *v, q20 scale, q20 offset);
void Mat3p_func_01ff83a0(Mat3p *a, Mat3p *b);
void Mat3p_Multiply(Mat3p *a, Mat3p *b, Mat3p *out);
void Mat3p_MultiplyVec(Vec3p *v, Mat3p *m, Vec3p *out);
void Mat4x3p_InitIdentity(Mat4x3p *m);
void Mat4x3p_CopyToMat4p(Mat4x3p *m, Mat4p *out);
void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
void Mat4x3p_InitScale(Mat4x3p *m, q20 x, q20 y, q20 z);
void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
void Mat4x3p_InitXRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_InitYRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_InitZRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_func_01ff8ad8(Mat4x3p *m, Vec3p *v, q20 scale, q20 offset);
void Mat4x3p_func_01ff8af8(Mat4x3p *a, Mat4x3p *b);
void Mat4x3p_Multiply(Mat4x3p *a, Mat4x3p *b, Mat4x3p *out);
void Mat4x3p_MultiplyVec(Vec3p *v, Mat4x3p *m, Vec3p *out);
void Mat4p_InitIdentity(Mat4p *m);
void Mat4p_CopyToMat4x3p(Mat4p *m, Mat4x3p *out);
void Mat4p_InitZRotation(Mat4p *m, q20 sin, q20 cos);
void Mat4p_Multiply(Mat4p *a, Mat4p *b, Mat4p *out);
#ifdef __cplusplus
}
#endif
#endif
+63
View File
@@ -0,0 +1,63 @@
#include "nds/math.h"
void Mat2p_InitIdentity(Mat2p *m) {}
void Mat2p_InitRotation(Mat2p *m, q20 sin, q20 cos) {}
void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out) {}
void Mat3p_InitIdentity(Mat3p *m) {}
void Mat3p_CopyToMat4x3p(Mat3p *m, Mat4x3p *out) {}
void Mat3p_InitScale(Mat3p *m, q20 x, q20 y, q20 z) {}
void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, q20 x, q20 y, q20 z) {}
void Mat3p_InitXRotation(Mat3p *m, q20 sin, q20 cos) {}
void Mat3p_InitYRotation(Mat3p *m, q20 sin, q20 cos) {}
void Mat3p_InitZRotation(Mat3p *m, q20 sin, q20 cos) {}
void Mat3p_func_01ff8248(Mat3p *m, Vec3p *v, q20 scale, q20 offset) {}
void Mat3p_func_01ff83a0(Mat3p *a, Mat3p *b) {}
void Mat3p_Multiply(Mat3p *a, Mat3p *b, Mat3p *out) {}
void Mat3p_MultiplyVec(Vec3p *v, Mat3p *m, Vec3p *out) {}
void Mat4x3p_InitIdentity(Mat4x3p *m) {}
void Mat4x3p_CopyToMat4p(Mat4x3p *m, Mat4p *out) {}
void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z) {}
void Mat4x3p_InitScale(Mat4x3p *m, q20 x, q20 y, q20 z) {}
void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z) {}
void Mat4x3p_InitXRotation(Mat4x3p *m, q20 sin, q20 cos) {}
void Mat4x3p_InitYRotation(Mat4x3p *m, q20 sin, q20 cos) {}
void Mat4x3p_InitZRotation(Mat4x3p *m, q20 sin, q20 cos) {}
void Mat4x3p_func_01ff8ad8(Mat4x3p *m, Vec3p *v, q20 scale, q20 offset) {}
void Mat4x3p_func_01ff8af8(Mat4x3p *a, Mat4x3p *b) {}
void Mat4x3p_Multiply(Mat4x3p *a, Mat4x3p *b, Mat4x3p *out) {}
void Mat4x3p_MultiplyVec(Vec3p *v, Mat4x3p *m, Vec3p *out) {}
void Mat4p_InitIdentity(Mat4p *m) {}
void Mat4p_CopyToMat4x3p(Mat4p *m, Mat4x3p *out) {}
void Mat4p_InitZRotation(Mat4p *m, q20 sin, q20 cos) {}
void Mat4p_Multiply(Mat4p *a, Mat4p *b, Mat4p *out) {}
u32 CoDivide64By32(u32 a, u32 b) {}
u32 func_01ff98f0(u32 a, u32 b) {}
u32 CoReciprocal(u32 x) {}
u32 func_01ff992c(u32 x) {}
u32 CoSqrt(u32 x) {}
u32 CoInvSqrt(u32 x) {}
u32 AwaitDivisionResult() {}
u32 GetDivisionResult() {}
void StartReciprocal(u32 x) {}
void StartSqrt(u32 x) {}
void func_01ff9ac4(u32 x) {}
u32 AwaitSqrtResult() {}
void StartDivision64By32(u32 a, u32 b) {}
u32 CoDivide32(u32 a, u32 b) {}
u32 CoRemainder(u32 a, u32 b) {}
void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out) {}
void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out) {}
q20 Vec3p_Dot(Vec3p *a, Vec3p *b) {}
void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out) {}
q20 Vec3p_Length(Vec3p *a) {}
void Vec3p_Normalize(Vec3p *vec, Vec3p *out) {}
void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out) {}
q20 Vec3p_Distance(Vec3p *a, Vec3p *b) {}
u32 func_01ff9f3c(s32 a, s32 b) {}
s32 Atan2(s32 x, s32 y) {}
+1 -1
View File
@@ -298,7 +298,7 @@ THUMB u16 ItemManager::GetUnk_09e(u32 index) const {
}
THUMB s32 ItemManager::GetUnk_09e_Divided(u32 index) const {
q20 quotient = Divide(INT_TO_Q20(mUnk_09e[index]), FLOAT_TO_Q20(2.54));
q20 quotient = CoDivide64By32(INT_TO_Q20(mUnk_09e[index]), FLOAT_TO_Q20(2.54));
s32 result = ROUND_Q20(quotient);
if (result < 1) result = 1;
return result;
+5 -5
View File
@@ -5,11 +5,11 @@
#include "System/Random.hpp"
extern "C" {
void func_ov000_0207a1c8(bool *param_1, unk32 param_2, Vec3p *param_3);
void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7,
char param_8, char param_9, char param_10);
void func_ov000_020d7ad4(u32 *param1, u32 param2);
void func_ov000_0207a1c8(bool *param_1, unk32 param_2, Vec3p *param_3);
void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7,
char param_8, char param_9, char param_10);
void func_ov000_020d7ad4(u32 *param1, u32 param2);
}
u16 GetRupeeValue(RupeeId id);
+2 -1
View File
@@ -21,7 +21,8 @@ CXX_FLAGS = [
'-nostdinc',
'-Iinclude',
'-Ilibs/c/include',
'-Ilibs/cpp/include'
'-Ilibs/cpp/include',
'-Ilibs/nds/include'
]
script_dir = Path(os.path.dirname(os.path.realpath(__file__)))
+2
View File
@@ -15,6 +15,7 @@ include_dir = root_dir / 'include'
libs_dir = root_dir / 'libs'
libc_include_dir = libs_dir / 'c' / 'include'
libcpp_include_dir = libs_dir / 'cpp' / 'include'
libnds_include_dir = libs_dir / 'nds' / 'include'
if platform.system() == 'Windows': cc = [str(cc_path)]
else: cc = ['wine', str(cc_path)]
@@ -38,6 +39,7 @@ cc.extend([
'-i', include_dir,
'-i', libc_include_dir,
'-i', libcpp_include_dir,
'-i', libnds_include_dir,
args.file
])