summaryrefslogtreecommitdiff
path: root/include/JSystem
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2023-05-12 12:10:14 -0700
committerGitHub <noreply@github.com>2023-05-12 12:10:14 -0700
commit221f40e6097dfe76c76602aa21aa07d5f760dce4 (patch)
treeb8f2549712927365bcffd13688729555a4276ff1 /include/JSystem
parent8c7cda85891b41cfdbce72ed4efb00292f34a16a (diff)
Remove #includes from headers (#334)
* add "global.h" to files that use it * add MSL_C includes to files that use them * remove dolphin includes from headers that don't need them * remove JSupport includes from headers that don't need them * remove JKernel includes from headers that don't need them * remove JUtility includes from headers that don't need them * remove J3D includes from headers that don't need them * remove J2D includes from headers that don't need them * remove JAudio2 includes from headers that don't need them * remove Z2AudioLib includes from headers that don't need them * remove JMessage includes from headers that don't need them * remove JParticle includes from headers that don't need them * remove SComponent includes from headers that don't need them * remove dol includes from headers that don't need them * sort includes
Diffstat (limited to 'include/JSystem')
-rw-r--r--include/JSystem/J2DGraph/J2DAnimation.h8
-rw-r--r--include/JSystem/J2DGraph/J2DAnmLoader.h1
-rw-r--r--include/JSystem/J2DGraph/J2DManage.h3
-rw-r--r--include/JSystem/J2DGraph/J2DMatBlock.h11
-rw-r--r--include/JSystem/J2DGraph/J2DMaterial.h1
-rw-r--r--include/JSystem/J2DGraph/J2DMaterialFactory.h18
-rw-r--r--include/JSystem/J2DGraph/J2DPane.h21
-rw-r--r--include/JSystem/J2DGraph/J2DPicture.h10
-rw-r--r--include/JSystem/J2DGraph/J2DPictureEx.h5
-rw-r--r--include/JSystem/J2DGraph/J2DPrint.h2
-rw-r--r--include/JSystem/J2DGraph/J2DScreen.h6
-rw-r--r--include/JSystem/J2DGraph/J2DTevs.h2
-rw-r--r--include/JSystem/J2DGraph/J2DTextBox.h3
-rw-r--r--include/JSystem/J2DGraph/J2DTextBoxEx.h5
-rw-r--r--include/JSystem/J2DGraph/J2DWindow.h4
-rw-r--r--include/JSystem/J2DGraph/J2DWindowEx.h1
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h6
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJoint.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJointTree.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModelData.h3
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DShapeTable.h3
-rw-r--r--include/JSystem/J3DGraphBase/J3DMatBlock.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DStruct.h2
-rw-r--r--include/JSystem/J3DGraphBase/J3DTexture.h1
-rw-r--r--include/JSystem/J3DGraphBase/J3DVertex.h4
-rw-r--r--include/JSystem/J3DGraphLoader/J3DShapeFactory.h3
-rw-r--r--include/JSystem/JAudio2/JAIAudible.h3
-rw-r--r--include/JSystem/JAudio2/JAIAudience.h3
-rw-r--r--include/JSystem/JAudio2/JAISeMgr.h6
-rw-r--r--include/JSystem/JAudio2/JAISeqMgr.h3
-rw-r--r--include/JSystem/JAudio2/JAISound.h2
-rw-r--r--include/JSystem/JAudio2/JAISoundChild.h3
-rw-r--r--include/JSystem/JAudio2/JASAudioReseter.h3
-rw-r--r--include/JSystem/JAudio2/JASDvdThread.h3
-rw-r--r--include/JSystem/JAudio2/JASResArcLoader.h5
-rw-r--r--include/JSystem/JAudio2/JASTrack.h3
-rw-r--r--include/JSystem/JAudio2/JASWaveArcLoader.h11
-rw-r--r--include/JSystem/JFramework/JFWDisplay.h9
-rw-r--r--include/JSystem/JFramework/JFWSystem.h14
-rw-r--r--include/JSystem/JGadget/search.h1
-rw-r--r--include/JSystem/JGadget/vector.h2
-rw-r--r--include/JSystem/JKernel/JKRAram.h4
-rw-r--r--include/JSystem/JKernel/JKRAramArchive.h3
-rw-r--r--include/JSystem/JKernel/JKRAramBlock.h3
-rw-r--r--include/JSystem/JKernel/JKRAramHeap.h2
-rw-r--r--include/JSystem/JKernel/JKRAramPiece.h3
-rw-r--r--include/JSystem/JKernel/JKRArchive.h5
-rw-r--r--include/JSystem/JKernel/JKRCompArchive.h3
-rw-r--r--include/JSystem/JKernel/JKRDvdAramRipper.h1
-rw-r--r--include/JSystem/JKernel/JKRDvdFile.h5
-rw-r--r--include/JSystem/JKernel/JKRDvdRipper.h2
-rw-r--r--include/JSystem/JKernel/JKRHeap.h2
-rw-r--r--include/JSystem/JKernel/JKRThread.h5
-rw-r--r--include/JSystem/JMessage/processor.h1
-rw-r--r--include/JSystem/JParticle/JPABaseShape.h3
-rw-r--r--include/JSystem/JParticle/JPAChildShape.h2
-rw-r--r--include/JSystem/JParticle/JPAParticle.h3
-rw-r--r--include/JSystem/JParticle/JPAResourceManager.h2
-rw-r--r--include/JSystem/JParticle/JPATexture.h1
-rw-r--r--include/JSystem/JStage/JSGAmbientLight.h2
-rw-r--r--include/JSystem/JStage/JSGFog.h3
-rw-r--r--include/JSystem/JStage/JSGLight.h4
-rw-r--r--include/JSystem/JStudio/JStudio/functionvalue.h1
-rw-r--r--include/JSystem/JStudio/JStudio/jstudio-control.h1
-rw-r--r--include/JSystem/JStudio/JStudio/jstudio-object.h3
-rw-r--r--include/JSystem/JSupport/JSUFileStream.h3
-rw-r--r--include/JSystem/JUtility/JUTCacheFont.h7
-rw-r--r--include/JSystem/JUtility/JUTDbPrint.h3
-rw-r--r--include/JSystem/JUtility/JUTException.h10
-rw-r--r--include/JSystem/JUtility/JUTFont.h1
-rw-r--r--include/JSystem/JUtility/JUTGamePad.h2
-rw-r--r--include/JSystem/JUtility/JUTPalette.h3
-rw-r--r--include/JSystem/JUtility/JUTProcBar.h4
-rw-r--r--include/JSystem/JUtility/JUTResFont.h5
-rw-r--r--include/JSystem/JUtility/JUTResource.h5
-rw-r--r--include/JSystem/JUtility/JUTTexture.h5
-rw-r--r--include/JSystem/JUtility/JUTVideo.h5
-rw-r--r--include/JSystem/JUtility/JUTXfb.h4
-rw-r--r--include/JSystem/JUtility/TColor.h2
81 files changed, 221 insertions, 109 deletions
diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h
index 1cb44c0f04..325172b664 100644
--- a/include/JSystem/J2DGraph/J2DAnimation.h
+++ b/include/JSystem/J2DGraph/J2DAnimation.h
@@ -3,12 +3,14 @@
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/JUtility/JUTNameTab.h"
-#include "JSystem/JUtility/JUTTexture.h"
-#include "dolphin/gx/GX.h"
-#include "dolphin/os/OS.h"
#include "dolphin/types.h"
+#include "global.h"
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
class J2DScreen;
+class JUTPalette;
+struct ResTIMG;
enum J2DAnmKind {
KIND_TRANSFORM = 0,
diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h
index cb4501ce58..19b8642558 100644
--- a/include/JSystem/J2DGraph/J2DAnmLoader.h
+++ b/include/JSystem/J2DGraph/J2DAnmLoader.h
@@ -2,7 +2,6 @@
#define J2DANMLOADER_H
#include "JSystem/J2DGraph/J2DAnimation.h"
-#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "dolphin/types.h"
struct J2DAnmLoaderDataBase {
diff --git a/include/JSystem/J2DGraph/J2DManage.h b/include/JSystem/J2DGraph/J2DManage.h
index 96a9e5ebc0..07d563571f 100644
--- a/include/JSystem/J2DGraph/J2DManage.h
+++ b/include/JSystem/J2DGraph/J2DManage.h
@@ -1,9 +1,10 @@
#ifndef J2DMANAGE_H
#define J2DMANAGE_H
-#include "JSystem/JSupport/JSUInputStream.h"
#include "dolphin/types.h"
+class JSUInputStream;
+
struct J2DResReference {
/* 0x00 */ u16 mCount;
/* 0x02 */ u16 mOffsets[1];
diff --git a/include/JSystem/J2DGraph/J2DMatBlock.h b/include/JSystem/J2DGraph/J2DMatBlock.h
index d9ed9f94b8..5b4466de38 100644
--- a/include/JSystem/J2DGraph/J2DMatBlock.h
+++ b/include/JSystem/J2DGraph/J2DMatBlock.h
@@ -2,11 +2,18 @@
#define J2DMATBLOCK_H
#include "JSystem/J2DGraph/J2DTevs.h"
-#include "JSystem/JUtility/JUTResFont.h"
-#include "JSystem/JUtility/JUTTexture.h"
#include "JSystem/JUtility/TColor.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
+class JUTFont;
+class JUTPalette;
+class JUTResFont;
+class JUTTexture;
+struct ResFONT;
+struct ResTIMG;
+struct ResTLUT;
+
struct J2DGXColorS10 : public GXColorS10 {
/* 802F1B90 */ J2DGXColorS10();
};
diff --git a/include/JSystem/J2DGraph/J2DMaterial.h b/include/JSystem/J2DGraph/J2DMaterial.h
index e30143379f..b83a856cc9 100644
--- a/include/JSystem/J2DGraph/J2DMaterial.h
+++ b/include/JSystem/J2DGraph/J2DMaterial.h
@@ -3,7 +3,6 @@
#include "JSystem/J2DGraph/J2DAnimation.h"
#include "JSystem/J2DGraph/J2DMatBlock.h"
-#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
class J2DMaterial {
diff --git a/include/JSystem/J2DGraph/J2DMaterialFactory.h b/include/JSystem/J2DGraph/J2DMaterialFactory.h
index e66d8f9bdd..719333b51c 100644
--- a/include/JSystem/J2DGraph/J2DMaterialFactory.h
+++ b/include/JSystem/J2DGraph/J2DMaterialFactory.h
@@ -2,16 +2,26 @@
#define J2DMATERIALFACTORY_H
#include "JSystem/J2DGraph/J2DManage.h"
-#include "JSystem/J2DGraph/J2DMaterial.h"
-#include "JSystem/JKernel/JKRArchive.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
struct J2DMaterialBlock {};
-struct J2DMaterialInitData;
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
+struct J2DAlphaCompInfo;
+struct J2DBlendInfo;
+struct J2DColorChanInfo;
struct J2DIndInitData;
+class J2DMaterial;
+struct J2DMaterialInitData;
+struct J2DTevStageInfo;
struct J2DTevSwapModeTableInfo;
-struct J2DAlphaCompInfo;
+struct J2DTevSwapModeInfo;
+struct J2DTevOrderInfo;
+struct J2DTexCoordInfo;
+struct J2DTexMtxInfo;
+class JKRArchive;
class J2DMaterialFactory {
public:
diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h
index 7d4832d8eb..a2c4bf1d14 100644
--- a/include/JSystem/J2DGraph/J2DPane.h
+++ b/include/JSystem/J2DGraph/J2DPane.h
@@ -1,19 +1,26 @@
#ifndef J2DPANE_H
#define J2DPANE_H
-#include "JSystem/J2DGraph/J2DAnimation.h"
-#include "JSystem/J2DGraph/J2DGrafContext.h"
#include "JSystem/JGeometry.h"
-#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUList.h"
-#include "JSystem/JSupport/JSURandomInputStream.h"
-#include "JSystem/JUtility/JUTFont.h"
-#include "JSystem/JUtility/JUTResFont.h"
-#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
+class J2DAnmBase;
+class J2DAnmColor;
+class J2DAnmTransform;
+class J2DAnmTevRegKey;
+class J2DAnmTextureSRTKey;
+class J2DAnmVisibilityFull;
+class J2DAnmVtxColor;
+class J2DGrafContext;
class J2DScreen;
+class J2DAnmTexPattern;
+class JKRArchive;
+class JSURandomInputStream;
+struct ResFONT;
+struct ResTIMG;
enum J2DRotateAxis {
/* 0x78 */ ROTATE_X = 'x',
diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h
index b28e74fd83..e19ea034ba 100644
--- a/include/JSystem/J2DGraph/J2DPicture.h
+++ b/include/JSystem/J2DGraph/J2DPicture.h
@@ -2,10 +2,16 @@
#define J2DPICTURE_H
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/J2DGraph/J2DScreen.h"
-#include "JSystem/JUtility/JUTTexture.h"
+#include "JSystem/JUtility/TColor.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
+class J2DMaterial;
+class JUTPalette;
+class JUTTexture;
+struct ResTIMG;
+struct ResTLUT;
+
enum J2DMirror {
/* 0x0 */ MIRROR0, // temp, figure out later
};
diff --git a/include/JSystem/J2DGraph/J2DPictureEx.h b/include/JSystem/J2DGraph/J2DPictureEx.h
index 3b83093015..8e3a3139cf 100644
--- a/include/JSystem/J2DGraph/J2DPictureEx.h
+++ b/include/JSystem/J2DGraph/J2DPictureEx.h
@@ -1,10 +1,13 @@
#ifndef J2DPICTUREEX_H
#define J2DPICTUREEX_H
-#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPicture.h"
+#include "JSystem/J2DGraph/J2DTevs.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
+class J2DMaterial;
+
class J2DPictureEx : public J2DPicture {
public:
enum stage_enum {};
diff --git a/include/JSystem/J2DGraph/J2DPrint.h b/include/JSystem/J2DGraph/J2DPrint.h
index fe2b169823..e47e59b646 100644
--- a/include/JSystem/J2DGraph/J2DPrint.h
+++ b/include/JSystem/J2DGraph/J2DPrint.h
@@ -6,6 +6,8 @@
#include "Runtime.PPCEABI.H/__va_arg.h"
#include "dolphin/types.h"
+class JUTFont;
+
class J2DPrint {
public:
struct TSize {
diff --git a/include/JSystem/J2DGraph/J2DScreen.h b/include/JSystem/J2DGraph/J2DScreen.h
index a878d07f57..456f8d3ad4 100644
--- a/include/JSystem/J2DGraph/J2DScreen.h
+++ b/include/JSystem/J2DGraph/J2DScreen.h
@@ -2,11 +2,13 @@
#define J2DSCREEN_H
#include "JSystem/J2DGraph/J2DManage.h"
-#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/JUtility/JUTNameTab.h"
+#include "JSystem/JUtility/TColor.h"
#include "dolphin/types.h"
+class J2DMaterial;
+class JUTNameTab;
+
struct J2DScrnHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ u32 mType;
diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h
index 087e9d5396..63e0201b9c 100644
--- a/include/JSystem/J2DGraph/J2DTevs.h
+++ b/include/JSystem/J2DGraph/J2DTevs.h
@@ -1,7 +1,7 @@
#ifndef J2DTEVS_H
#define J2DTEVS_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J2DGraph/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox.h
index 67d1d663d3..b0d99ec5ae 100644
--- a/include/JSystem/J2DGraph/J2DTextBox.h
+++ b/include/JSystem/J2DGraph/J2DTextBox.h
@@ -5,6 +5,9 @@
#include "JSystem/J2DGraph/J2DPane.h"
#include "dolphin/types.h"
+class J2DMaterial;
+class JUTFont;
+
enum J2DTextBoxVBinding {
/* 0x0 */ VBIND_CENTER,
/* 0x1 */ VBIND_BOTTOM,
diff --git a/include/JSystem/J2DGraph/J2DTextBoxEx.h b/include/JSystem/J2DGraph/J2DTextBoxEx.h
index 98f6c44c10..3a53a48ade 100644
--- a/include/JSystem/J2DGraph/J2DTextBoxEx.h
+++ b/include/JSystem/J2DGraph/J2DTextBoxEx.h
@@ -1,11 +1,12 @@
#ifndef J2DTEXTBOXEX_H
#define J2DTEXTBOXEX_H
-#include "JSystem/J2DGraph/J2DMaterial.h"
-#include "JSystem/J2DGraph/J2DPrint.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
+class J2DMaterial;
+
class J2DTextBoxEx : public J2DTextBox {
public:
enum stage_enum {
diff --git a/include/JSystem/J2DGraph/J2DWindow.h b/include/JSystem/J2DGraph/J2DWindow.h
index 088ab3315e..fb114165f0 100644
--- a/include/JSystem/J2DGraph/J2DWindow.h
+++ b/include/JSystem/J2DGraph/J2DWindow.h
@@ -3,9 +3,11 @@
#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DPane.h"
-#include "JSystem/JSupport/JSURandomInputStream.h"
#include "dolphin/types.h"
+class JSURandomInputStream;
+class JUTTexture;
+
class J2DWindow : public J2DPane {
public:
struct TMaterial {
diff --git a/include/JSystem/J2DGraph/J2DWindowEx.h b/include/JSystem/J2DGraph/J2DWindowEx.h
index e5f7e29f8a..a19e3842aa 100644
--- a/include/JSystem/J2DGraph/J2DWindowEx.h
+++ b/include/JSystem/J2DGraph/J2DWindowEx.h
@@ -3,6 +3,7 @@
#include "JSystem/J2DGraph/J2DMaterial.h"
#include "JSystem/J2DGraph/J2DWindow.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
class J2DWindowEx : public J2DWindow {
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index 5fe848fe8a..198952a233 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -3,8 +3,12 @@
#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h"
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
-#include "dolphin/gx/GX.h"
+#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
+#include "global.h"
+
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
struct J3DAnmKeyTableBase {
/* 0x00 */ u16 mMaxFrame;
diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h
index 12f2da776c..6156cf06cf 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJoint.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h
@@ -1,11 +1,12 @@
#ifndef J3DJOINT_H
#define J3DJOINT_H
-#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphBase/J3DTransform.h"
#include "dolphin/types.h"
class J3DAnmTransform;
+class J3DJoint;
+class J3DMaterial;
class J3DMtxBuffer;
class J3DMtxCalc {
diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h
index a58b55c9a9..dc74089af3 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h
@@ -2,10 +2,11 @@
#define J3DJOINTTREE_H
#include "JSystem/J3DGraphAnimator/J3DJoint.h"
-#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
+class JUTNameTab;
+
struct J3DModelHierarchy {
/* 0x0 */ u16 mType;
/* 0x2 */ u16 mValue;
diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
index db9a5184a6..b87b1f0d0a 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
@@ -4,6 +4,9 @@
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
+typedef struct _GXColorS10 GXColorS10;
+
class J3DMatColorAnm {
public:
/* 8003B2B8 */ ~J3DMatColorAnm();
diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
index 79ed0e592d..343006df80 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
@@ -1,7 +1,6 @@
#ifndef J3DMATERIALATTACH_H
#define J3DMATERIALATTACH_H
-#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
struct J3DMaterial;
@@ -10,6 +9,7 @@ struct J3DAnmColor;
struct J3DAnmTexPattern;
struct J3DAnmTextureSRTKey;
struct J3DAnmTevRegKey;
+class JUTNameTab;
class J3DMaterialTable {
public:
diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h
index 766ae76a76..125e7c9b3d 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModelData.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h
@@ -8,6 +8,9 @@
#include "JSystem/J3DGraphBase/J3DVertex.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
+class JUTNameTab;
+
class J3DModelData {
public:
/* 80325D88 */ void clear();
diff --git a/include/JSystem/J3DGraphAnimator/J3DShapeTable.h b/include/JSystem/J3DGraphAnimator/J3DShapeTable.h
index 9abac85f9b..4cc14fdd29 100644
--- a/include/JSystem/J3DGraphAnimator/J3DShapeTable.h
+++ b/include/JSystem/J3DGraphAnimator/J3DShapeTable.h
@@ -3,9 +3,10 @@
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "JSystem/J3DGraphBase/J3DVertex.h"
-#include "JSystem/JUtility/JUTNameTab.h"
#include "dolphin/types.h"
+class JUTNameTab;
+
class J3DShapeTable {
public:
J3DShapeTable() {
diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h
index d68a99bc94..4e1ca4a6e3 100644
--- a/include/JSystem/J3DGraphBase/J3DMatBlock.h
+++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h
@@ -4,7 +4,7 @@
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "JSystem/J3DGraphBase/J3DTevs.h"
#include "JSystem/J3DGraphBase/J3DTexture.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h
index 778236d80f..cb98164d03 100644
--- a/include/JSystem/J3DGraphBase/J3DStruct.h
+++ b/include/JSystem/J3DGraphBase/J3DStruct.h
@@ -2,7 +2,7 @@
#define J3DSTRUCT_H
#include "SSystem/SComponent/c_xyz.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
class J3DLightInfo {
diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h
index 95580afa91..b66c8b6c33 100644
--- a/include/JSystem/J3DGraphBase/J3DTexture.h
+++ b/include/JSystem/J3DGraphBase/J3DTexture.h
@@ -2,6 +2,7 @@
#define J3DTEXTURE_H
#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/mtx/mtx44.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/J3DGraphBase/J3DVertex.h b/include/JSystem/J3DGraphBase/J3DVertex.h
index a8e67d578f..a601987c1d 100644
--- a/include/JSystem/J3DGraphBase/J3DVertex.h
+++ b/include/JSystem/J3DGraphBase/J3DVertex.h
@@ -1,10 +1,12 @@
#ifndef J3DVERTEX_H
#define J3DVERTEX_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXAttr.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
class J3DModel;
struct J3DAnmVtxColor;
diff --git a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h
index 385a217e25..1100b5fe69 100644
--- a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h
+++ b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h
@@ -1,7 +1,8 @@
#ifndef J3DSHAPEFACTORY_H
#define J3DSHAPEFACTORY_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXAttr.h"
+#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
struct J3DShape;
diff --git a/include/JSystem/JAudio2/JAIAudible.h b/include/JSystem/JAudio2/JAIAudible.h
index 047b913295..1f89a60d73 100644
--- a/include/JSystem/JAudio2/JAIAudible.h
+++ b/include/JSystem/JAudio2/JAIAudible.h
@@ -2,7 +2,8 @@
#define JAIAUDIBLE_H
#include "dolphin/types.h"
-#include "JSystem/JAudio2/JASSoundParams.h"
+
+struct JASSoundParams;
struct JAIAudible {
virtual ~JAIAudible();
diff --git a/include/JSystem/JAudio2/JAIAudience.h b/include/JSystem/JAudio2/JAIAudience.h
index 1621386ad8..8b54ffe9f4 100644
--- a/include/JSystem/JAudio2/JAIAudience.h
+++ b/include/JSystem/JAudio2/JAIAudience.h
@@ -1,11 +1,10 @@
#ifndef JAIAUDIENCE_H
#define JAIAUDIENCE_H
-#include "JSystem/JAudio2/JAIAudible.h"
-#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JGeometry.h"
#include "dolphin/types.h"
+struct JAIAudible;
class JAISoundID;
struct JASSoundParams;
diff --git a/include/JSystem/JAudio2/JAISeMgr.h b/include/JSystem/JAudio2/JAISeMgr.h
index 627445f912..d4f6886b19 100644
--- a/include/JSystem/JAudio2/JAISeMgr.h
+++ b/include/JSystem/JAudio2/JAISeMgr.h
@@ -1,11 +1,15 @@
#ifndef JAISEMGR_H
#define JAISEMGR_H
-#include "JSystem/JAudio2/JAIAudience.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundParams.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
+#include "global.h"
+
+struct JAIAudience;
+struct JASSoundParams;
struct JASNonCopyable {
/* 0x0 */ int field_0x0;
diff --git a/include/JSystem/JAudio2/JAISeqMgr.h b/include/JSystem/JAudio2/JAISeqMgr.h
index 9550331211..9176681530 100644
--- a/include/JSystem/JAudio2/JAISeqMgr.h
+++ b/include/JSystem/JAudio2/JAISeqMgr.h
@@ -1,12 +1,13 @@
#ifndef JAISEQMGR_H
#define JAISEQMGR_H
-#include "JSystem/JAudio2/JAIAudience.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
+#include "JSystem/JAudio2/JAISoundParams.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
+struct JAIAudience;
struct JAISeq;
class JAISeqMgr : public JAISeqDataUser, public JASGlobalInstance<JAISeqMgr> {
diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h
index b45793de42..92a376f836 100644
--- a/include/JSystem/JAudio2/JAISound.h
+++ b/include/JSystem/JAudio2/JAISound.h
@@ -1,8 +1,6 @@
#ifndef JAISOUND_H
#define JAISOUND_H
-#include "JSystem/JAudio2/JAIAudience.h"
-#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JAISoundParams.h"
#include "JSystem/JGeometry.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/JAudio2/JAISoundChild.h b/include/JSystem/JAudio2/JAISoundChild.h
index 257e89eb40..b3ac7d6942 100644
--- a/include/JSystem/JAudio2/JAISoundChild.h
+++ b/include/JSystem/JAudio2/JAISoundChild.h
@@ -2,9 +2,10 @@
#define JAISOUNDCHILD_H
#include "JSystem/JAudio2/JAISoundParams.h"
-#include "JSystem/JAudio2/JASTrack.h"
#include "dolphin/types.h"
+struct JASTrack;
+
struct JAISoundChild {
/* 802A2AB0 */ void init();
/* 802A2B28 */ void mixOut(JASTrack*);
diff --git a/include/JSystem/JAudio2/JASAudioReseter.h b/include/JSystem/JAudio2/JASAudioReseter.h
index 66d466f3f5..45813a6016 100644
--- a/include/JSystem/JAudio2/JASAudioReseter.h
+++ b/include/JSystem/JAudio2/JASAudioReseter.h
@@ -1,9 +1,8 @@
#ifndef JASAUDIORESETER_H
#define JASAUDIORESETER_H
-#include "JSystem/JAudio2/JASDriverIF.h"
#include "dolphin/types.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSInterrupt.h"
struct JASCriticalSection {
inline JASCriticalSection() {mInterruptState = OSDisableInterrupts();};
diff --git a/include/JSystem/JAudio2/JASDvdThread.h b/include/JSystem/JAudio2/JASDvdThread.h
index 0e05c452d9..061f7bd496 100644
--- a/include/JSystem/JAudio2/JASDvdThread.h
+++ b/include/JSystem/JAudio2/JASDvdThread.h
@@ -1,9 +1,10 @@
#ifndef JASDVDTHREAD_H
#define JASDVDTHREAD_H
-#include "JSystem/JAudio2/JASTaskThread.h"
#include "dolphin/types.h"
+class JASTaskThread;
+
class JASDvd {
public:
/* 8028FEFC */ static JASTaskThread* getThreadPointer();
diff --git a/include/JSystem/JAudio2/JASResArcLoader.h b/include/JSystem/JAudio2/JASResArcLoader.h
index 8e32fb6b06..baab677594 100644
--- a/include/JSystem/JAudio2/JASResArcLoader.h
+++ b/include/JSystem/JAudio2/JASResArcLoader.h
@@ -1,7 +1,10 @@
#ifndef JASRESARCLOADER_H
#define JASRESARCLOADER_H
-#include "JSystem/JKernel/JKRArchive.h"
+#include "dolphin/types.h"
+
+typedef struct OSMessageQueue OSMessageQueue;
+class JKRArchive;
namespace JASResArcLoader {
/* 80290BD0 */ size_t getResSize(JKRArchive const*, u16);
diff --git a/include/JSystem/JAudio2/JASTrack.h b/include/JSystem/JAudio2/JASTrack.h
index 4166ea1502..12465a470c 100644
--- a/include/JSystem/JAudio2/JASTrack.h
+++ b/include/JSystem/JAudio2/JASTrack.h
@@ -2,7 +2,8 @@
#define JASTRACK_H
#include "JSystem/JAudio2/JASGadget.h"
-#include "JSystem/JAudio2/JASSoundParams.h"
+
+struct JASSoundParams;
struct JASDsp {
struct TChannel {
diff --git a/include/JSystem/JAudio2/JASWaveArcLoader.h b/include/JSystem/JAudio2/JASWaveArcLoader.h
index 95fb0280b0..9e3610c651 100644
--- a/include/JSystem/JAudio2/JASWaveArcLoader.h
+++ b/include/JSystem/JAudio2/JASWaveArcLoader.h
@@ -1,16 +1,13 @@
#ifndef JASWAVEARCLOADER_H
#define JASWAVEARCLOADER_H
+#include "JSystem/JSupport/JSUList.h"
#include "dol2asm.h"
-#include "dolphin/types.h"
-#include "global.h"
-
#include "dolphin/os/OSMutex.h"
+#include "dolphin/types.h"
-#include "JSystem/JAudio2/JASDvdThread.h"
-#include "JSystem/JAudio2/JASHeapCtrl.h"
-#include "JSystem/JKernel/JKRDvdAramRipper.h"
-#include "JSystem/JKernel/JKRSolidHeap.h"
+class JKRHeap;
+class JKRSolidHeap;
struct JASDisposer {
JASDisposer() {}
diff --git a/include/JSystem/JFramework/JFWDisplay.h b/include/JSystem/JFramework/JFWDisplay.h
index d189cd7cde..57f987cc6f 100644
--- a/include/JSystem/JFramework/JFWDisplay.h
+++ b/include/JSystem/JFramework/JFWDisplay.h
@@ -1,15 +1,18 @@
#ifndef JFWDISPLAY_H
#define JFWDISPLAY_H
-#include "JSystem/JKernel/JKRHeap.h"
+#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JUtility/JUTDirectPrint.h"
#include "JSystem/JUtility/JUTFader.h"
-#include "JSystem/JUtility/JUTProcBar.h"
#include "JSystem/JUtility/JUTXfb.h"
#include "JSystem/JUtility/TColor.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/os/OSAlarm.h"
#include "dolphin/types.h"
+typedef struct _GXColor GXColor;
+typedef struct _GXRenderModeObj GXRenderModeObj;
+class JKRHeap;
+
typedef void (*JFWDisplayUnkFunc)(void);
class JFWAlarm : public OSAlarm {
diff --git a/include/JSystem/JFramework/JFWSystem.h b/include/JSystem/JFramework/JFWSystem.h
index 66c89e8c56..e1b878f12a 100644
--- a/include/JSystem/JFramework/JFWSystem.h
+++ b/include/JSystem/JFramework/JFWSystem.h
@@ -1,13 +1,17 @@
#ifndef JFWSYSTEM_H
#define JFWSYSTEM_H
-#include "JSystem/JKernel/JKRExpHeap.h"
-#include "JSystem/JKernel/JKRThread.h"
-#include "JSystem/JUtility/JUTConsole.h"
-#include "JSystem/JUtility/JUTDbPrint.h"
-#include "JSystem/JUtility/JUTResFont.h"
#include "dolphin/types.h"
+typedef struct _GXRenderModeObj GXRenderModeObj;
+class JKRExpHeap;
+class JKRThread;
+class JUTConsole;
+class JUTConsoleManager;
+class JUTDbPrint;
+class JUTResFont;
+struct ResFONT;
+
struct JFWSystem {
struct CSetUpParam {
static s32 maxStdHeaps;
diff --git a/include/JSystem/JGadget/search.h b/include/JSystem/JGadget/search.h
index a7b3510800..552681f88c 100644
--- a/include/JSystem/JGadget/search.h
+++ b/include/JSystem/JGadget/search.h
@@ -1,6 +1,7 @@
#ifndef SEARCH_H
#define SEARCH_H
+#include "dolphin/types.h"
#include "global.h"
namespace JGadget {
diff --git a/include/JSystem/JGadget/vector.h b/include/JSystem/JGadget/vector.h
index 636ac909cc..adb5ad1756 100644
--- a/include/JSystem/JGadget/vector.h
+++ b/include/JSystem/JGadget/vector.h
@@ -1,7 +1,7 @@
#ifndef VECTOR_H
#define VECTOR_H
-#include "global.h"
+#include "dolphin/types.h"
extern u8 data_804511E0;
extern u8 lit_569[];
diff --git a/include/JSystem/JKernel/JKRAram.h b/include/JSystem/JKernel/JKRAram.h
index 80975eba93..5fd1b7820e 100644
--- a/include/JSystem/JKernel/JKRAram.h
+++ b/include/JSystem/JKernel/JKRAram.h
@@ -1,13 +1,13 @@
#ifndef JKRARAM_H
#define JKRARAM_H
-#include "dolphin/types.h"
-
#include "JSystem/JKernel/JKRAramHeap.h"
#include "JSystem/JKernel/JKRDvdRipper.h"
#include "JSystem/JKernel/JKRThread.h"
+#include "dolphin/types.h"
class JKRHeap;
+class JKRAMCommand;
class JKRAramBlock;
class JKRAram : public JKRThread {
private:
diff --git a/include/JSystem/JKernel/JKRAramArchive.h b/include/JSystem/JKernel/JKRAramArchive.h
index 5a7f7bd44a..33031afbe4 100644
--- a/include/JSystem/JKernel/JKRAramArchive.h
+++ b/include/JSystem/JKernel/JKRAramArchive.h
@@ -5,6 +5,9 @@
#include "JSystem/JKernel/JKRArchive.h"
#include "dolphin/types.h"
+class JKRAramBlock;
+class JKRDvdFile;
+
class JKRAramArchive : public JKRArchive {
public:
JKRAramArchive(long, JKRArchive::EMountDirection);
diff --git a/include/JSystem/JKernel/JKRAramBlock.h b/include/JSystem/JKernel/JKRAramBlock.h
index 5f17050f2d..0dcc348cda 100644
--- a/include/JSystem/JKernel/JKRAramBlock.h
+++ b/include/JSystem/JKernel/JKRAramBlock.h
@@ -1,9 +1,6 @@
#ifndef JKRARAMBLOCK_H
#define JKRARAMBLOCK_H
-#include "dolphin/types.h"
-
-#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUList.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/JKernel/JKRAramHeap.h b/include/JSystem/JKernel/JKRAramHeap.h
index 0a1f912b63..48293cba8d 100644
--- a/include/JSystem/JKernel/JKRAramHeap.h
+++ b/include/JSystem/JKernel/JKRAramHeap.h
@@ -3,7 +3,7 @@
#include "JSystem/JKernel/JKRAramBlock.h"
#include "JSystem/JKernel/JKRDisposer.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
class JKRAramHeap : public JKRDisposer {
diff --git a/include/JSystem/JKernel/JKRAramPiece.h b/include/JSystem/JKernel/JKRAramPiece.h
index 6e17f67e52..5f522d5d1c 100644
--- a/include/JSystem/JKernel/JKRAramPiece.h
+++ b/include/JSystem/JKernel/JKRAramPiece.h
@@ -3,7 +3,8 @@
#include "JSystem/JSupport/JSUList.h"
#include "dolphin/ar/arq.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
class JKRAramBlock;
diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h
index 2583da20b8..e6e230d415 100644
--- a/include/JSystem/JKernel/JKRArchive.h
+++ b/include/JSystem/JKernel/JKRArchive.h
@@ -2,12 +2,11 @@
#define JKRARCHIVE_H
#include "JSystem/JKernel/JKRCompression.h"
-#include "JSystem/JKernel/JKRDecomp.h"
-#include "JSystem/JKernel/JKRDvdFile.h"
#include "JSystem/JKernel/JKRFileLoader.h"
-#include "JSystem/JKernel/JKRHeap.h"
#include "global.h"
+class JKRHeap;
+
struct SArcHeader {
/* 0x00 */ u32 signature;
/* 0x04 */ u32 file_length;
diff --git a/include/JSystem/JKernel/JKRCompArchive.h b/include/JSystem/JKernel/JKRCompArchive.h
index f5fcb31999..74490ddfef 100644
--- a/include/JSystem/JKernel/JKRCompArchive.h
+++ b/include/JSystem/JKernel/JKRCompArchive.h
@@ -4,6 +4,9 @@
#include "JSystem/JKernel/JKRArchive.h"
#include "dolphin/types.h"
+class JKRAramBlock;
+class JKRDvdFile;
+
class JKRCompArchive : public JKRArchive {
public:
JKRCompArchive(long, JKRArchive::EMountDirection);
diff --git a/include/JSystem/JKernel/JKRDvdAramRipper.h b/include/JSystem/JKernel/JKRDvdAramRipper.h
index ed01abe023..a6b59f07a2 100644
--- a/include/JSystem/JKernel/JKRDvdAramRipper.h
+++ b/include/JSystem/JKernel/JKRDvdAramRipper.h
@@ -2,6 +2,7 @@
#define JKRDVDARAMRIPPER_H
#include "JSystem/JKernel/JKRDvdRipper.h"
+#include "JSystem/JSupport/JSUList.h"
#include "dolphin/types.h"
class JKRAramBlock;
diff --git a/include/JSystem/JKernel/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile.h
index ecb722531a..a1b1295782 100644
--- a/include/JSystem/JKernel/JKRDvdFile.h
+++ b/include/JSystem/JKernel/JKRDvdFile.h
@@ -3,9 +3,12 @@
#include "JSystem/JKernel/JKRFile.h"
#include "dolphin/dvd/dvd.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
+struct OSThread;
+
class JKRADCommand;
class JKRAramBlock;
class JSUFileInputStream;
diff --git a/include/JSystem/JKernel/JKRDvdRipper.h b/include/JSystem/JKernel/JKRDvdRipper.h
index 21f068e3dd..2afe449fb2 100644
--- a/include/JSystem/JKernel/JKRDvdRipper.h
+++ b/include/JSystem/JKernel/JKRDvdRipper.h
@@ -1,7 +1,7 @@
#ifndef JKRDVDRIPPER_H
#define JKRDVDRIPPER_H
-#include "JSystem/JKernel/JKRDecomp.h"
+#include "JSystem/JKernel/JKRCompression.h"
#include "dolphin/types.h"
enum JKRExpandSwitch {
diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h
index 4d8f196f90..c12504d42f 100644
--- a/include/JSystem/JKernel/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap.h
@@ -2,7 +2,7 @@
#define JKRHEAP_H
#include "JSystem/JKernel/JKRDisposer.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMutex.h"
#include "dolphin/types.h"
class JKRHeap;
diff --git a/include/JSystem/JKernel/JKRThread.h b/include/JSystem/JKernel/JKRThread.h
index c4c294dcd5..12ed5241f6 100644
--- a/include/JSystem/JKernel/JKRThread.h
+++ b/include/JSystem/JKernel/JKRThread.h
@@ -4,7 +4,9 @@
#include "JSystem/JKernel/JKRDisposer.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JSupport/JSUList.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSThread.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
struct JKRThreadName_ {
@@ -13,7 +15,6 @@ struct JKRThreadName_ {
};
class JUTConsole;
-class JKRHeap;
class JKRThread : JKRDisposer {
public:
class TLoad {
diff --git a/include/JSystem/JMessage/processor.h b/include/JSystem/JMessage/processor.h
index f90f03264b..82a267bf74 100644
--- a/include/JSystem/JMessage/processor.h
+++ b/include/JSystem/JMessage/processor.h
@@ -2,7 +2,6 @@
#define JMESSAGE_PROCESSOR_H
#include "JSystem/JMessage/resource.h"
-#include "JSystem/JUtility/JUTFont.h"
#include "init.h"
namespace JMessage {
diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h
index af687cbe3c..c8b6b48537 100644
--- a/include/JSystem/JParticle/JPABaseShape.h
+++ b/include/JSystem/JParticle/JPABaseShape.h
@@ -1,7 +1,8 @@
#ifndef JPABASESHAPE_H
#define JPABASESHAPE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
class JPAEmitterWorkData;
diff --git a/include/JSystem/JParticle/JPAChildShape.h b/include/JSystem/JParticle/JPAChildShape.h
index d45b97a4e7..eaa45d0131 100644
--- a/include/JSystem/JParticle/JPAChildShape.h
+++ b/include/JSystem/JParticle/JPAChildShape.h
@@ -1,7 +1,7 @@
#ifndef JPACHILDSHAPE_H
#define JPACHILDSHAPE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
struct JPAChildShapeData {
diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h
index c8379df13e..62c4a90a87 100644
--- a/include/JSystem/JParticle/JPAParticle.h
+++ b/include/JSystem/JParticle/JPAParticle.h
@@ -1,7 +1,8 @@
#ifndef JPAPARTICLE_H
#define JPAPARTICLE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
#include "JSystem/JGeometry.h"
diff --git a/include/JSystem/JParticle/JPAResourceManager.h b/include/JSystem/JParticle/JPAResourceManager.h
index c9ddb5c9c2..bded1482d5 100644
--- a/include/JSystem/JParticle/JPAResourceManager.h
+++ b/include/JSystem/JParticle/JPAResourceManager.h
@@ -2,7 +2,7 @@
#define JPARESOURCEMANAGER_H
#include "JSystem/JParticle/JPATexture.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
class JKRHeap;
diff --git a/include/JSystem/JParticle/JPATexture.h b/include/JSystem/JParticle/JPATexture.h
index dcb2c2ebaa..be671a9e0d 100644
--- a/include/JSystem/JParticle/JPATexture.h
+++ b/include/JSystem/JParticle/JPATexture.h
@@ -2,6 +2,7 @@
#define JPATEXTURE_H
#include "JSystem/JUtility/JUTTexture.h"
+#include "dolphin/gx/GXEnum.h"
#include "dolphin/types.h"
struct JPATextureData {
diff --git a/include/JSystem/JStage/JSGAmbientLight.h b/include/JSystem/JStage/JSGAmbientLight.h
index 7d0d183501..144d5af9c2 100644
--- a/include/JSystem/JStage/JSGAmbientLight.h
+++ b/include/JSystem/JStage/JSGAmbientLight.h
@@ -2,7 +2,7 @@
#define JSGAMBIENTLIGHT_H
#include "JSystem/JStage/JSGObject.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
namespace JStage {
struct TAmbientLight : public TObject {
diff --git a/include/JSystem/JStage/JSGFog.h b/include/JSystem/JStage/JSGFog.h
index beb8f761df..d5551cac1e 100644
--- a/include/JSystem/JStage/JSGFog.h
+++ b/include/JSystem/JStage/JSGFog.h
@@ -2,7 +2,8 @@
#define JSGFOG_H
#include "JSystem/JStage/JSGObject.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
namespace JStage {
struct TFog : public TObject {
diff --git a/include/JSystem/JStage/JSGLight.h b/include/JSystem/JStage/JSGLight.h
index 7317c8845f..628e907de4 100644
--- a/include/JSystem/JStage/JSGLight.h
+++ b/include/JSystem/JStage/JSGLight.h
@@ -2,7 +2,9 @@
#define JSGLIGHT_H
#include "JSystem/JStage/JSGObject.h"
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/mtx/vec.h"
namespace JStage {
enum TELight {};
diff --git a/include/JSystem/JStudio/JStudio/functionvalue.h b/include/JSystem/JStudio/JStudio/functionvalue.h
index 9db6ffee4f..a57f14f087 100644
--- a/include/JSystem/JStudio/JStudio/functionvalue.h
+++ b/include/JSystem/JStudio/JStudio/functionvalue.h
@@ -4,6 +4,7 @@
#include "JSystem/JGadget/search.h"
#include "JSystem/JGadget/vector.h"
#include "dolphin/types.h"
+#include "global.h"
extern u8 lit_652[];
diff --git a/include/JSystem/JStudio/JStudio/jstudio-control.h b/include/JSystem/JStudio/JStudio/jstudio-control.h
index e5c742b97f..a79ea8faea 100644
--- a/include/JSystem/JStudio/JStudio/jstudio-control.h
+++ b/include/JSystem/JStudio/JStudio/jstudio-control.h
@@ -6,6 +6,7 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/ctb.h"
#include "dolphin/gx/GX.h"
+#include "dolphin/mtx/vec.h"
namespace JStudio {
struct TCreateObject {
diff --git a/include/JSystem/JStudio/JStudio/jstudio-object.h b/include/JSystem/JStudio/JStudio/jstudio-object.h
index b0da5a2045..12c6b0c8a5 100644
--- a/include/JSystem/JStudio/JStudio/jstudio-object.h
+++ b/include/JSystem/JStudio/JStudio/jstudio-object.h
@@ -5,7 +5,8 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/ctb.h"
#include "JSystem/JStudio/JStudio/jstudio-control.h"
-#include "dolphin/gx/GX.h"
+
+typedef struct _GXColor GXColor;
namespace JStudio {
namespace data {
diff --git a/include/JSystem/JSupport/JSUFileStream.h b/include/JSystem/JSupport/JSUFileStream.h
index 44c3f4ed7a..4a20d8bf57 100644
--- a/include/JSystem/JSupport/JSUFileStream.h
+++ b/include/JSystem/JSupport/JSUFileStream.h
@@ -1,10 +1,11 @@
#ifndef JSUFILESTREAM_H
#define JSUFILESTREAM_H
-#include "JSystem/JKernel/JKRFile.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "dolphin/types.h"
+class JKRFile;
+
class JSUFileInputStream : public JSURandomInputStream {
public:
virtual ~JSUFileInputStream() {}
diff --git a/include/JSystem/JUtility/JUTCacheFont.h b/include/JSystem/JUtility/JUTCacheFont.h
index c244852aeb..f4802ad632 100644
--- a/include/JSystem/JUtility/JUTCacheFont.h
+++ b/include/JSystem/JUtility/JUTCacheFont.h
@@ -1,9 +1,12 @@
#ifndef JUTCACHEFONT_H
#define JUTCACHEFONT_H
-#include "dolphin/types.h"
#include "JSystem/JUtility/JUTResFont.h"
-#include "JSystem/JKernel/JKRAram.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/types.h"
+#include "global.h"
+
+class JKRAramBlock;
class JUTCacheFont : public JUTResFont {
public:
diff --git a/include/JSystem/JUtility/JUTDbPrint.h b/include/JSystem/JUtility/JUTDbPrint.h
index 30b325183d..abb86b051c 100644
--- a/include/JSystem/JUtility/JUTDbPrint.h
+++ b/include/JSystem/JUtility/JUTDbPrint.h
@@ -1,10 +1,11 @@
#ifndef JUTDBPRINT_H
#define JUTDBPRINT_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTFont.h"
#include "dolphin/types.h"
+class JKRHeap;
+
// TODO: fix struct
struct unk_print {
/* 0x00 */ unk_print* mNext;
diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h
index e03079cd50..6fac9abae8 100644
--- a/include/JSystem/JUtility/JUTException.h
+++ b/include/JSystem/JUtility/JUTException.h
@@ -3,14 +3,18 @@
#include "JSystem/JKernel/JKRThread.h"
#include "JSystem/JSupport/JSUList.h"
-#include "JSystem/JUtility/JUTDirectPrint.h"
#include "JSystem/JUtility/JUTGamePad.h"
#include "Runtime.PPCEABI.H/__va_arg.h"
-#include "dolphin/gx/GX.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/os/OSError.h"
+#include "dolphin/os/OSMessage.h"
#include "dolphin/types.h"
#include "global.h"
+typedef struct _GXRenderModeObj GXRenderModeObj;
+typedef struct OSContext OSContext;
+class JUTDirectPrint;
+
class JUTExternalFB {
public:
/* 802E40CC */ JUTExternalFB(_GXRenderModeObj*, GXGamma, void*, u32);
diff --git a/include/JSystem/JUtility/JUTFont.h b/include/JSystem/JUtility/JUTFont.h
index 4cb04da538..dc6037c0f7 100644
--- a/include/JSystem/JUtility/JUTFont.h
+++ b/include/JSystem/JUtility/JUTFont.h
@@ -3,7 +3,6 @@
#include "JSystem/JUtility/TColor.h"
#include "MSL_C/string.h"
-#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
struct ResFONT {
diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h
index 707b63e2f8..322fd52aa9 100644
--- a/include/JSystem/JUtility/JUTGamePad.h
+++ b/include/JSystem/JUtility/JUTGamePad.h
@@ -3,7 +3,7 @@
#include "JSystem/JKernel/JKRDisposer.h"
#include "JSystem/JSupport/JSUList.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/pad/Pad.h"
#include "dolphin/types.h"
diff --git a/include/JSystem/JUtility/JUTPalette.h b/include/JSystem/JUtility/JUTPalette.h
index 329ca6ff2e..9705458d01 100644
--- a/include/JSystem/JUtility/JUTPalette.h
+++ b/include/JSystem/JUtility/JUTPalette.h
@@ -1,7 +1,8 @@
#ifndef JUTPALETTE_H
#define JUTPALETTE_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
enum JUTTransparency { UNK0, UNK1 };
diff --git a/include/JSystem/JUtility/JUTProcBar.h b/include/JSystem/JUtility/JUTProcBar.h
index d5ecd5f0d1..c3edd4768e 100644
--- a/include/JSystem/JUtility/JUTProcBar.h
+++ b/include/JSystem/JUtility/JUTProcBar.h
@@ -1,10 +1,12 @@
#ifndef JUTPROCBAR_H
#define JUTPROCBAR_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/TColor.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
+class JKRHeap;
+
class JUTProcBar {
public:
class CTime {
diff --git a/include/JSystem/JUtility/JUTResFont.h b/include/JSystem/JUtility/JUTResFont.h
index 3a7a067b46..3187947f2e 100644
--- a/include/JSystem/JUtility/JUTResFont.h
+++ b/include/JSystem/JUtility/JUTResFont.h
@@ -1,8 +1,11 @@
#ifndef JUTRESFONT_H
#define JUTRESFONT_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTFont.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
+
+class JKRHeap;
typedef bool (*IsLeadByte_func)(int);
diff --git a/include/JSystem/JUtility/JUTResource.h b/include/JSystem/JUtility/JUTResource.h
index 3447ca53af..3f4846caba 100644
--- a/include/JSystem/JUtility/JUTResource.h
+++ b/include/JSystem/JUtility/JUTResource.h
@@ -1,10 +1,11 @@
#ifndef JUTRESOURCE_H
#define JUTRESOURCE_H
-#include "JSystem/JKernel/JKRArchive.h"
-#include "JSystem/JSupport/JSUInputStream.h"
#include "dolphin/types.h"
+class JKRArchive;
+class JSUInputStream;
+
class JUTResReference {
private:
u8 unk_0x0[0x101];
diff --git a/include/JSystem/JUtility/JUTTexture.h b/include/JSystem/JUtility/JUTTexture.h
index c9ab2dd780..c9c179af1e 100644
--- a/include/JSystem/JUtility/JUTTexture.h
+++ b/include/JSystem/JUtility/JUTTexture.h
@@ -1,9 +1,12 @@
#ifndef JUTTEXTURE_H
#define JUTTEXTURE_H
-#include "JSystem/JUtility/JUTPalette.h"
+#include "dolphin/gx/GXEnum.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
+class JUTPalette;
+
/*
* Acts as the header to image data. Usually texture data immediately follows it,
* so any pointer arithmetic to go past the end of this structure is so that a
diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h
index 319a8f2c7c..d031439eba 100644
--- a/include/JSystem/JUtility/JUTVideo.h
+++ b/include/JSystem/JUtility/JUTVideo.h
@@ -1,8 +1,9 @@
#ifndef JUTVIDEO_H
#define JUTVIDEO_H
-#include "dolphin/gx/GX.h"
-#include "dolphin/os/OS.h"
+#include "dolphin/gx/GXStruct.h"
+#include "dolphin/os/OSMessage.h"
+#include "dolphin/os/OSTime.h"
#include "dolphin/types.h"
#include "dolphin/vi/vi.h"
diff --git a/include/JSystem/JUtility/JUTXfb.h b/include/JSystem/JUtility/JUTXfb.h
index 5d3933cc71..2edd92761f 100644
--- a/include/JSystem/JUtility/JUTXfb.h
+++ b/include/JSystem/JUtility/JUTXfb.h
@@ -1,10 +1,12 @@
#ifndef JUTXFB_H
#define JUTXFB_H
-#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTVideo.h"
#include "dolphin/types.h"
+typedef struct _GXRenderModeObj GXRenderModeObj;
+class JKRHeap;
+
class JUTXfb {
public:
enum EXfbNumber { // TODO: placeholder
diff --git a/include/JSystem/JUtility/TColor.h b/include/JSystem/JUtility/TColor.h
index 344a6cf10b..7e7e00f23f 100644
--- a/include/JSystem/JUtility/TColor.h
+++ b/include/JSystem/JUtility/TColor.h
@@ -1,7 +1,7 @@
#ifndef TCOLOR_H
#define TCOLOR_H
-#include "dolphin/gx/GX.h"
+#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
namespace JUtility {