Skip to content

Commit 7cffacb

Browse files
committed
Implement WaitNonVblank
1 parent fda697c commit 7cffacb

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

Source/iop/Iop_Vblank.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ using namespace Iop;
99
#define FUNCTION_WAITVBLANKSTART "WaitVblankStart"
1010
#define FUNCTION_WAITVBLANKEND "WaitVblankEnd"
1111
#define FUNCTION_WAITVBLANK "WaitVblank"
12+
#define FUNCTION_WAITNONVBLANK "WaitNonVblank"
1213
#define FUNCTION_REGISTERVBLANKHANDLER "RegisterVblankHandler"
1314
#define FUNCTION_RELEASEVBLANKHANDLER "ReleaseVblankHandler"
1415

@@ -35,6 +36,9 @@ std::string CVblank::GetFunctionName(unsigned int functionId) const
3536
case 6:
3637
return FUNCTION_WAITVBLANK;
3738
break;
39+
case 7:
40+
return FUNCTION_WAITNONVBLANK;
41+
break;
3842
case 8:
3943
return FUNCTION_REGISTERVBLANKHANDLER;
4044
break;
@@ -60,6 +64,9 @@ void CVblank::Invoke(CMIPS& context, unsigned int functionId)
6064
case 6:
6165
context.m_State.nGPR[CMIPS::V0].nD0 = WaitVblank();
6266
break;
67+
case 7:
68+
context.m_State.nGPR[CMIPS::V0].nD0 = WaitNonVblank();
69+
break;
6370
case 8:
6471
context.m_State.nGPR[CMIPS::V0].nD0 = RegisterVblankHandler(
6572
context.m_State.nGPR[CMIPS::A0].nV0,
@@ -106,6 +113,15 @@ int32 CVblank::WaitVblank()
106113
return 0;
107114
}
108115

116+
int32 CVblank::WaitNonVblank()
117+
{
118+
#ifdef _DEBUG
119+
CLog::GetInstance().Print(LOG_NAME, FUNCTION_WAITNONVBLANK "();\r\n");
120+
#endif
121+
m_bios.SleepThreadTillVBlankEnd();
122+
return 0;
123+
}
124+
109125
int32 CVblank::RegisterVblankHandler(uint32 startEnd, uint32 priority, uint32 handlerPtr, uint32 handlerParam)
110126
{
111127
#ifdef _DEBUG

Source/iop/Iop_Vblank.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ namespace Iop
2020
int32 WaitVblankStart();
2121
int32 WaitVblankEnd();
2222
int32 WaitVblank();
23+
int32 WaitNonVblank();
2324
int32 RegisterVblankHandler(uint32, uint32, uint32, uint32);
2425
int32 ReleaseVblankHandler(uint32, uint32);
2526

0 commit comments

Comments
 (0)