diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h index 2657239126c..5f4e35251d8 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(); - static JUTVideo* getManager() { return sManager; } - _GXRenderModeObj* getRenderMode() const { return mRenderObj; } + /* 802E4E50 */ static void preRetraceProc(u32); + /* 802E5144 */ static void postRetraceProc(u32); + /* 802E50BC */ static void drawDoneCallback(); + static JUTVideo* getManager() { return sManager; } + 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 5fac58593ce..9fd2cd31212 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; diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index e1191a10ff3..99acf204167 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -47,8 +47,8 @@ extern "C" u8 sVideoInterval__8JUTVideo[4]; extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void changeFrameBuffer__14JUTDirectPrintFPvUsUs(); -extern "C" void VISetPreRetraceCallback(VIRetraceCallback); -extern "C" void VISetPostRetraceCallback(VIRetraceCallback); +extern "C" VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback); +extern "C" VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback); extern "C" void VIInit(); extern "C" void VIWaitForRetrace(); extern "C" void VIConfigure(_GXRenderModeObj*); @@ -104,8 +104,7 @@ u32 JUTVideo::sVideoLastTick; u32 JUTVideo::sVideoInterval; /* 802E4CF4-802E4DE8 2DF634 00F4+00 1/1 0/0 0/0 .text __ct__8JUTVideoFPC16_GXRenderModeObj */ -#ifdef NONMATCHING -JUTVideo::JUTVideo(_GXRenderModeObj const* param_0) { +JUTVideo::JUTVideo(GXRenderModeObj const* param_0) { mRenderObj = NULL; VIInit(); mSetBlack = true; @@ -120,22 +119,13 @@ JUTVideo::JUTVideo(_GXRenderModeObj const* param_0) { sVideoLastTick = OSGetTick(); sVideoInterval = 670000; mPreRetraceCallback = VISetPreRetraceCallback(preRetraceProc); - mPostRetraceCallback = VISetPreRetraceCallback(postRetraceProc); + mPostRetraceCallback = VISetPostRetraceCallback(postRetraceProc); unknown_callback_1 = NULL; unknown_callback_2 = NULL; - OSInitMessageQueue(mMessageQueue, mMessage, 1); + OSInitMessageQueue(&mMessageQueue, &mMessage, 1); GXSetDrawDoneCallback(drawDoneCallback); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JUTVideo::JUTVideo(_GXRenderModeObj const* param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTVideo/__ct__8JUTVideoFPC16_GXRenderModeObj.s" -} -#pragma pop -#endif + /* 802E4DE8-802E4E50 2DF728 0068+00 1/0 0/0 0/0 .text __dt__8JUTVideoFv */ JUTVideo::~JUTVideo() { @@ -209,12 +199,12 @@ asm void JUTVideo::postRetraceProc(u32 param_0) { /* 802E5198-802E5210 2DFAD8 0078+00 1/1 2/2 0/0 .text * setRenderMode__8JUTVideoFPC16_GXRenderModeObj */ -void JUTVideo::setRenderMode(_GXRenderModeObj const* pObj) { +void JUTVideo::setRenderMode(GXRenderModeObj const* pObj) { if (mRenderObj != NULL && pObj->vi_tv_mode != mRenderObj->vi_tv_mode) { mSetBlack = true; mSetBlackFrameCount = 4; } - mRenderObj = (_GXRenderModeObj*)pObj; + mRenderObj = (GXRenderModeObj*)pObj; VIConfigure(mRenderObj); VIFlush();