From 0e03ff4e3a6e36f7ee59728644c4884370252002 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 13:02:27 +0200 Subject: OK __ct__8JUTVideoFPC16_GXRenderModeObj --- include/JSystem/JUtility/JUTVideo.h | 16 +++++++++------- include/dolphin/gx/GX.h | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h index 2657239126..5f4e35251d 100644 --- a/include/JSystem/JUtility/JUTVideo.h +++ b/include/JSystem/JUtility/JUTVideo.h @@ -10,23 +10,25 @@ class JUTVideo { public: typedef void (*CallbackFn)(void); - JUTVideo(_GXRenderModeObj const*); + JUTVideo(GXRenderModeObj const*); virtual ~JUTVideo(); // TODO: return types not confirmed - /* 802E4C54 */ static JUTVideo* createManager(_GXRenderModeObj const*); + /* 802E4C54 */ static JUTVideo* createManager(GXRenderModeObj const*); /* 802E4CAC */ static void destroyManager(); - /* 802E4E50 */ void preRetraceProc(u32); /* 802E5088 */ void drawDoneStart(); /* 802E50B0 */ void dummyNoDrawWait(); - /* 802E50BC */ void drawDoneCallback(); - /* 802E5144 */ void postRetraceProc(u32); - /* 802E5198 */ void setRenderMode(_GXRenderModeObj const*); + /* 802E5198 */ void setRenderMode(GXRenderModeObj const*); /* 802E5210 */ void waitRetraceIfNeed(); + /* 802E4E50 */ static void preRetraceProc(u32); + /* 802E5144 */ static void postRetraceProc(u32); + /* 802E50BC */ static void drawDoneCallback(); + static JUTVideo* getManager() { return sManager; } - _GXRenderModeObj* getRenderMode() const { return mRenderObj; } + GXRenderModeObj* getRenderMode() const { return mRenderObj; } +private: static JUTVideo* sManager; static u32 sVideoLastTick; static u32 sVideoInterval; diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index 5fac58593c..9fd2cd3121 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -291,7 +291,7 @@ typedef enum _GXTevAlphaArg { /* 0x6 */ GX_CA_ZERO, } GXTevAlphaArg; -struct _GXRenderModeObj { +typedef struct _GXRenderModeObj { s32 vi_tv_mode; u16 fb_width; u16 efb_height; @@ -305,7 +305,7 @@ struct _GXRenderModeObj { u8 antialiasing; u8 sample_pattern[12][2]; u8 vfilter[7]; -}; +} GXRenderModeObj; struct _GXTexObj { u32 texture_filter; -- cgit v1.2.3 From a38b4874934603e9dbeed58548669771a372e1c3 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 13:58:04 +0200 Subject: OK preRetraceProc__8JUTVideoFUl --- include/JSystem/JUtility/JUTVideo.h | 14 +++++++++----- include/JSystem/JUtility/JUTXfb.h | 23 +++++++++++++++++++++++ include/dolphin/vi/vi.h | 11 +++++++++++ 3 files changed, 43 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h index 5f4e35251d..5660decd25 100644 --- a/include/JSystem/JUtility/JUTVideo.h +++ b/include/JSystem/JUtility/JUTVideo.h @@ -8,7 +8,7 @@ class JUTVideo { public: - typedef void (*CallbackFn)(void); + typedef void (*Callback)(u32); JUTVideo(GXRenderModeObj const*); virtual ~JUTVideo(); @@ -30,8 +30,8 @@ public: private: static JUTVideo* sManager; - static u32 sVideoLastTick; - static u32 sVideoInterval; + static OSTick sVideoLastTick; + static OSTick sVideoInterval; private: /* 0x04 */ _GXRenderModeObj* mRenderObj; @@ -42,12 +42,16 @@ private: /* 0x18 */ u32 field_0x18; /* 0x1C */ VIRetraceCallback mPreRetraceCallback; /* 0x20 */ VIRetraceCallback mPostRetraceCallback; - /* 0x24 */ CallbackFn unknown_callback_1; - /* 0x28 */ CallbackFn unknown_callback_2; + /* 0x24 */ Callback mPreCallback; + /* 0x28 */ Callback mPostCallback; /* 0x2C */ bool mSetBlack; /* 0x30 */ s32 mSetBlackFrameCount; /* 0x34 */ OSMessage mMessage; /* 0x38 */ OSMessageQueue mMessageQueue; }; +inline JUTVideo* JUTGetVideoManager() { + return JUTVideo::getManager(); +} + #endif /* JUTVIDEO_H */ diff --git a/include/JSystem/JUtility/JUTXfb.h b/include/JSystem/JUtility/JUTXfb.h index a523452d25..7a647faa05 100644 --- a/include/JSystem/JUtility/JUTXfb.h +++ b/include/JSystem/JUtility/JUTXfb.h @@ -23,6 +23,29 @@ public: /* 802E5424 */ static void destroyManager(); /* 802E5454 */ void initiate(u16, u16, JKRHeap*, JUTXfb::EXfbNumber); + s32 getBufferNum() const { return mBufferNum; } + s16 getDrawnXfbIndex() const { return mDrawnXfbIndex; } + s16 getDrawningXfbIndex() const { return mDrawingXfbIndex; } + s16 getDisplayingXfbIndex() const { return mDisplayingXfbIndex; } + s32 getSDrawingFlag() const { return mSDrawingFlag; } + + void* getDisplayingXfb() const { + if (mDisplayingXfbIndex >= 0) + return mBuffer[mDisplayingXfbIndex]; + return NULL; + } + + void setDisplayingXfbIndex(s16 index) { + mDisplayingXfbIndex = index; + } + + void setSDrawingFlag(s32 flag) { + mSDrawingFlag = flag; + } + + static JUTXfb* getManager() { return sManager; } + +private: static JUTXfb* sManager; private: diff --git a/include/dolphin/vi/vi.h b/include/dolphin/vi/vi.h index 586819f535..c7d223978b 100644 --- a/include/dolphin/vi/vi.h +++ b/include/dolphin/vi/vi.h @@ -2,9 +2,20 @@ #define VI_H #include "dolphin/types.h" +#include "dolphin/gx/GX.h" typedef void (*VIRetraceCallback)(u32); extern "C" void VIWaitForRetrace(void); +extern "C" void VISetNextFrameBuffer(void*); +extern "C" VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); +extern "C" VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); +extern "C" void VIInit(); +extern "C" void VIConfigure(GXRenderModeObj*); +extern "C" void VIFlush(); +extern "C" void* VIGetNextFrameBuffer(); +extern "C" void* VIGetCurrentFrameBuffer(); +extern "C" void VISetBlack(BOOL); +extern "C" u32 VIGetRetraceCount(); #endif /* VI_H */ -- cgit v1.2.3 From c2fc1f85a5d8ffb523f142851f1b779ae0bc9ba8 Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 14:06:53 +0200 Subject: OK drawDoneCallback__8JUTVideoFv --- include/JSystem/JUtility/JUTXfb.h | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/JSystem/JUtility/JUTXfb.h b/include/JSystem/JUtility/JUTXfb.h index 7a647faa05..240fb27a08 100644 --- a/include/JSystem/JUtility/JUTXfb.h +++ b/include/JSystem/JUtility/JUTXfb.h @@ -29,20 +29,27 @@ public: s16 getDisplayingXfbIndex() const { return mDisplayingXfbIndex; } s32 getSDrawingFlag() const { return mSDrawingFlag; } - void* getDisplayingXfb() const { - if (mDisplayingXfbIndex >= 0) - return mBuffer[mDisplayingXfbIndex]; + void* getDrawnXfb() const { + if (mDrawnXfbIndex >= 0) + return mBuffer[mDrawnXfbIndex]; return NULL; } - void setDisplayingXfbIndex(s16 index) { - mDisplayingXfbIndex = index; + void* getDrawningXfb() const { + if (mDrawingXfbIndex >= 0) + return mBuffer[mDrawingXfbIndex]; + return NULL; } - void setSDrawingFlag(s32 flag) { - mSDrawingFlag = flag; + void* getDisplayingXfb() const { + if (mDisplayingXfbIndex >= 0) + return mBuffer[mDisplayingXfbIndex]; + return NULL; } + void setDisplayingXfbIndex(s16 index) { mDisplayingXfbIndex = index; } + void setSDrawingFlag(s32 flag) { mSDrawingFlag = flag; } + static JUTXfb* getManager() { return sManager; } private: -- cgit v1.2.3 From 444cad0d103f9860ef4be1e59bec80b7690bb26c Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Sun, 26 Sep 2021 14:22:03 +0200 Subject: Format and removed unused .s files. --- include/dolphin/vi/vi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/dolphin/vi/vi.h b/include/dolphin/vi/vi.h index c7d223978b..350f64483d 100644 --- a/include/dolphin/vi/vi.h +++ b/include/dolphin/vi/vi.h @@ -1,8 +1,8 @@ #ifndef VI_H #define VI_H -#include "dolphin/types.h" #include "dolphin/gx/GX.h" +#include "dolphin/types.h" typedef void (*VIRetraceCallback)(u32); -- cgit v1.2.3 From 77ad390d8e9c6112329221ed864dead455182b4e Mon Sep 17 00:00:00 2001 From: Julgodis <> Date: Mon, 27 Sep 2021 18:49:30 +0200 Subject: Format and clean up from merge. --- include/JSystem/JUtility/JUTDirectPrint.h | 2 ++ include/JSystem/JUtility/JUTException.h | 3 ++- include/dolphin/os/OS.h | 7 +++---- include/msl_c/string.h | 5 ++--- 4 files changed, 9 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/JSystem/JUtility/JUTDirectPrint.h b/include/JSystem/JUtility/JUTDirectPrint.h index 8f2c2fbb4a..8fac8cf23c 100644 --- a/include/JSystem/JUtility/JUTDirectPrint.h +++ b/include/JSystem/JUtility/JUTDirectPrint.h @@ -22,6 +22,8 @@ public: /* 802E4240 */ static JUTDirectPrint* start(); + static JUTDirectPrint* getManager() { return sDirectPrint; } + private: static u8 sAsciiTable[128]; static u32 sFontData[64]; diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h index 129d645745..eed808f7ba 100644 --- a/include/JSystem/JUtility/JUTException.h +++ b/include/JSystem/JUtility/JUTException.h @@ -3,6 +3,7 @@ #include "JSystem/JKernel/JKRThread.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/types.h" @@ -26,7 +27,7 @@ public: /* 802E1D5C */ JUTException(JUTDirectPrint*); /* 802E1E40 */ void create(JUTDirectPrint*); /* 802E1FCC */ void errorHandler(u16, OSContext*, u32, u32); - /* 802E20C0 */ void panic_f_va(char const*, int, char const*, __va_list_struct*); + /* 802E20C0 */ void panic_f_va(char const*, int, char const*, va_list); /* 802E21FC */ static void panic_f(char const*, int, char const*, ...); /* 802E227C */ void setFPException(u32); /* 802E22C4 */ void showFloatSub(int, f32); diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index c972b90e92..bdc80cb1cd 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -4,6 +4,7 @@ #ifndef OS_H_ #define OS_H_ +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" /* TODO: more structs, and get rid of the ones that are faked! */ @@ -122,8 +123,6 @@ struct OSThread { void* data[2]; }; -struct __va_list_struct {}; - extern "C" { s32 OSEnableScheduler(void); s32 OSDisableScheduler(void); @@ -165,7 +164,7 @@ void OSReportDisable(void); void OSReportEnable(void); void OSReportForceEnableOff(void); void OSReportForceEnableOn(void); -void OSVReport(const char* format, __va_list_struct* list); +void OSVReport(const char* format, va_list list); void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* out_time); OSTime OSGetTime(void); @@ -202,7 +201,7 @@ u8* OSGetStackPointer(void); void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32); -void OSVAttention(const char* fmt, __va_list_struct* va_list); +void OSVAttention(const char* fmt, va_list args); void OSReportInit(void); diff --git a/include/msl_c/string.h b/include/msl_c/string.h index ceb5696ed1..902f205f09 100644 --- a/include/msl_c/string.h +++ b/include/msl_c/string.h @@ -1,6 +1,7 @@ #ifndef MSL_STRING_H_ #define MSL_STRING_H_ +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" // TODO: move to MSL_C.PPCEABI.bare.H/ @@ -20,9 +21,7 @@ int tolower(int); int sprintf(char*, const char*, ...); int printf(const char*, ...); int snprintf(char*, u32, const char*, ...); - -struct __va_list_struct; -size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, __va_list_struct* args); +size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, va_list args); } #endif \ No newline at end of file -- cgit v1.2.3