diff --git a/.clang-format b/.clang-format index 8d5fb049..69b0b218 100644 --- a/.clang-format +++ b/.clang-format @@ -8,7 +8,7 @@ AllowShortCaseLabelsOnASingleLine: true AllowShortEnumsOnASingleLine: false IndentCaseLabels: true -IndentExternBlock: Indent +IndentExternBlock: NoIndent IndentPPDirectives: BeforeHash NamespaceIndentation: All IndentAccessModifiers: false diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index b8aab999..fcfd9864 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -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 diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 69505224..f25e3eee 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -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 diff --git a/config/usa/arm9/itcm/symbols.txt b/config/usa/arm9/itcm/symbols.txt index b8aab999..fcfd9864 100644 --- a/config/usa/arm9/itcm/symbols.txt +++ b/config/usa/arm9/itcm/symbols.txt @@ -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 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 197b2bb9..cd7b2422 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -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 diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 64402237..2a30a7c1 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -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" diff --git a/include/Actor/ActorRupee.hpp b/include/Actor/ActorRupee.hpp index 56519394..a5fcbea3 100644 --- a/include/Actor/ActorRupee.hpp +++ b/include/Actor/ActorRupee.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/Actor.hpp" diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index ae5e8cad..1fcabe31 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -5,7 +5,7 @@ extern "C" { } #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/ActorNavi.hpp" diff --git a/include/Map/CameraViewpoint.hpp b/include/Map/CameraViewpoint.hpp index c952078b..924ef379 100644 --- a/include/Map/CameraViewpoint.hpp +++ b/include/Map/CameraViewpoint.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" #include "System/SysNew.hpp" diff --git a/include/Map/Entrance.hpp b/include/Map/Entrance.hpp index d9bea6ef..8d7d6a29 100644 --- a/include/Map/Entrance.hpp +++ b/include/Map/Entrance.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" #include "System/SysNew.hpp" diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index f9d08cac..f85c782e 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -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" diff --git a/include/Map/MapData.hpp b/include/Map/MapData.hpp index be4b691f..295e2309 100644 --- a/include/Map/MapData.hpp +++ b/include/Map/MapData.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" #include "System/SysNew.hpp" diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index ff3397b9..b346a4d0 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -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" diff --git a/include/Physics/AABB.hpp b/include/Physics/AABB.hpp index ef90ffcd..19ce9f38 100644 --- a/include/Physics/AABB.hpp +++ b/include/Physics/AABB.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" struct AABB { Vec3p min; diff --git a/include/Physics/Cylinder.hpp b/include/Physics/Cylinder.hpp index 59c03c46..353635dd 100644 --- a/include/Physics/Cylinder.hpp +++ b/include/Physics/Cylinder.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" struct Cylinder { Vec3p pos; diff --git a/include/Physics/Sphere.hpp b/include/Physics/Sphere.hpp index eb88f74d..ba42ddf2 100644 --- a/include/Physics/Sphere.hpp +++ b/include/Physics/Sphere.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" struct Sphere { Vec3p pos; diff --git a/include/Physics/Transform.hpp b/include/Physics/Transform.hpp index 6b72af57..140e574d 100644 --- a/include/Physics/Transform.hpp +++ b/include/Physics/Transform.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -#include "lib/math.h" +#include "nds/math.h" struct Transform { Vec3p pos; diff --git a/include/Player/EquipRope.hpp b/include/Player/EquipRope.hpp index 127eb974..906f813b 100644 --- a/include/Player/EquipRope.hpp +++ b/include/Player/EquipRope.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/ActorRef.hpp" diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index 3371b937..f3ac5087 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/Actor.hpp" diff --git a/include/Player/LinkStateCutscene.hpp b/include/Player/LinkStateCutscene.hpp index f39c7430..514f2b32 100644 --- a/include/Player/LinkStateCutscene.hpp +++ b/include/Player/LinkStateCutscene.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Item/Item.hpp" diff --git a/include/Player/LinkStateDamage.hpp b/include/Player/LinkStateDamage.hpp index 2c5e6e00..1c59d90e 100644 --- a/include/Player/LinkStateDamage.hpp +++ b/include/Player/LinkStateDamage.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Player/LinkStateBase.hpp" diff --git a/include/Player/LinkStateFollow.hpp b/include/Player/LinkStateFollow.hpp index c422faa1..09de008e 100644 --- a/include/Player/LinkStateFollow.hpp +++ b/include/Player/LinkStateFollow.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/Actor.hpp" diff --git a/include/Player/LinkStateInteract.hpp b/include/Player/LinkStateInteract.hpp index 150983b8..55081c8a 100644 --- a/include/Player/LinkStateInteract.hpp +++ b/include/Player/LinkStateInteract.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/Actor.hpp" diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 0e0da8ae..de0da848 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/Actor.hpp" diff --git a/include/Player/PlayerControlData.hpp b/include/Player/PlayerControlData.hpp index 3f998186..c44a00c5 100644 --- a/include/Player/PlayerControlData.hpp +++ b/include/Player/PlayerControlData.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "System/SysNew.hpp" diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp index 02cf3219..8c12b911 100644 --- a/include/Player/PlayerLinkBase.hpp +++ b/include/Player/PlayerLinkBase.hpp @@ -1,7 +1,7 @@ #pragma once #include "global.h" -#include "lib/math.h" +#include "nds/math.h" #include "types.h" #include "Actor/ActorManager.hpp" diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index 47349d28..1301e144 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -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; diff --git a/include/lib/math.h b/include/lib/math.h deleted file mode 100644 index f3e0d3d6..00000000 --- a/include/lib/math.h +++ /dev/null @@ -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); diff --git a/include/types.h b/include/types.h index a0952eff..0dd5ecf5 100644 --- a/include/types.h +++ b/include/types.h @@ -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 diff --git a/libs/nds/include/nds/math.h b/libs/nds/include/nds/math.h new file mode 100644 index 00000000..162625c3 --- /dev/null +++ b/libs/nds/include/nds/math.h @@ -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 diff --git a/libs/nds/src/itcm/math.c b/libs/nds/src/itcm/math.c new file mode 100644 index 00000000..962fd2bf --- /dev/null +++ b/libs/nds/src/itcm/math.c @@ -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) {} diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp index 5754be33..add40960 100644 --- a/src/00_Core/Item/ItemManager.cpp +++ b/src/00_Core/Item/ItemManager.cpp @@ -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; diff --git a/src/14_Land/Actor/ActorRupee.cpp b/src/14_Land/Actor/ActorRupee.cpp index f45f2c7a..dc3e47f4 100644 --- a/src/14_Land/Actor/ActorRupee.cpp +++ b/src/14_Land/Actor/ActorRupee.cpp @@ -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); diff --git a/tools/m2ctx.py b/tools/m2ctx.py index edac88da..f2275e33 100755 --- a/tools/m2ctx.py +++ b/tools/m2ctx.py @@ -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__))) diff --git a/tools/mangle.py b/tools/mangle.py index 68d2aeb3..17a69c76 100644 --- a/tools/mangle.py +++ b/tools/mangle.py @@ -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 ])