From a08f84abd508ddf6cbdddcd994a300a16be0e46f Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Mon, 10 Jan 2022 06:10:00 -0800 Subject: JUTGraphFifo --- include/JSystem/JUtility/JUTGraphFifo.h | 29 +++++++++++++++++++++++++++++ include/dolphin/gx/GX.h | 3 +++ 2 files changed, 32 insertions(+) (limited to 'include') diff --git a/include/JSystem/JUtility/JUTGraphFifo.h b/include/JSystem/JUtility/JUTGraphFifo.h index 393b232adb..8dae2c7b90 100644 --- a/include/JSystem/JUtility/JUTGraphFifo.h +++ b/include/JSystem/JUtility/JUTGraphFifo.h @@ -1,6 +1,35 @@ #ifndef JUTGRAPHFIFO_H #define JUTGRAPHFIFO_H +#include "dolphin/gx/GX.h" #include "dolphin/types.h" +class JUTGraphFifo { +public: + /* 802DEB58 */ JUTGraphFifo(u32); + + /* 802DEC34 */ virtual ~JUTGraphFifo(); + + void getGpStatus() { + GXGetGPStatus((GXBool*)&mGpStatus[0], (GXBool*)&mGpStatus[1], (GXBool*)&mGpStatus[2], + (GXBool*)&mGpStatus[3], (GXBool*)&mGpStatus[4]); + } + + bool isGPActive() { + getGpStatus(); + return mGpStatus[2] == false; + } + + void save() { GXSaveCPUFifo(this->mFifo); } + + static JUTGraphFifo* sCurrentFifo; + static bool mGpStatus[5]; + +private: + /* 0x04 */ GXFifoObj* mFifo; + /* 0x08 */ void* mBase; + /* 0x0C */ u32 mSize; + /* 0x10 */ u8 field_0x10[0xC]; +}; + #endif /* JUTGRAPHFIFO_H */ diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index f1eca18856..d7aeb521c6 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -959,6 +959,9 @@ GXFifoObj* GXInit(void*, u32); GXFifoObj* GXGetCPUFifo(void); void GXGetGPStatus(GXBool*, GXBool*, GXBool*, GXBool*, GXBool*); void GXReadXfRasMetric(u32*, u32*, u32*, u32*); +void GXInitFifoBase(GXFifoObj*, void*, u32); +void GXInitFifoPtrs(GXFifoObj*, void*, void*); +void GXSaveCPUFifo(GXFifoObj*); #define GFX_FIFO(T) (*(volatile T*)0xCC008000) -- cgit v1.2.3