mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
sceDisplayWaitVblankStartMultiCB()
This is wrong but better than having nothing in the method. The one game I have found that uses this seems to be ok with this implementation.
This commit is contained in:
parent
9257b28c15
commit
03bc871f56
2 changed files with 12 additions and 6 deletions
|
@ -259,6 +259,13 @@ void sceDisplayWaitVblankStartCB()
|
|||
__KernelCheckCallbacks();
|
||||
}
|
||||
|
||||
void sceDisplayWaitVblankStartMultiCB()
|
||||
{
|
||||
DEBUG_LOG(HLE,"sceDisplayWaitVblankStartMultiCB()");
|
||||
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true);
|
||||
__KernelCheckCallbacks();
|
||||
}
|
||||
|
||||
void sceDisplayGetVcount()
|
||||
{
|
||||
// Too spammy
|
||||
|
@ -297,7 +304,7 @@ const HLEFunction sceDisplay[] =
|
|||
{0x984C27E7,sceDisplayWaitVblankStart, "sceDisplayWaitVblankStart"},
|
||||
{0x8EB9EC49,sceDisplayWaitVblankCB, "sceDisplayWaitVblankCB"},
|
||||
{0x46F186C3,sceDisplayWaitVblankStartCB, "sceDisplayWaitVblankStartCB"},
|
||||
{0x77ed8b3a,0,"sceDisplayWaitVblankStartMultiCB"},
|
||||
{0x77ed8b3a,sceDisplayWaitVblankStartMultiCB,"sceDisplayWaitVblankStartMultiCB"},
|
||||
|
||||
{0xdba6c4c4,&WrapF_V<sceDisplayGetFramePerSec>,"sceDisplayGetFramePerSec"},
|
||||
{0x773dd3a3,sceDisplayGetCurrentHcount,"sceDisplayGetCurrentHcount"},
|
||||
|
|
|
@ -149,7 +149,7 @@ u32 sceUmdGetDriveStat()
|
|||
void sceUmdWaitDriveStat()
|
||||
{
|
||||
u32 stat = PARAM(0);
|
||||
ERROR_LOG(HLE,"UNIMPL 0=sceUmdWaitDriveStat(stat = %08x)", stat);
|
||||
DEBUG_LOG(HLE,"HACK 0=sceUmdWaitDriveStat(stat = %08x)", stat);
|
||||
if ((stat & __KernelUmdGetState()) != stat)
|
||||
__KernelWaitCurThread(WAITTYPE_UMD, 0, stat, 0, 0); //__KernelWaitCurThread(WAITTYPE_UMD, 0);
|
||||
RETURN(0);
|
||||
|
@ -159,18 +159,17 @@ void sceUmdWaitDriveStatWithTimer()
|
|||
{
|
||||
u32 stat = PARAM(0);
|
||||
u32 timeout = PARAM(1);
|
||||
ERROR_LOG(HLE,"UNIMPL 0=sceUmdWaitDriveStatWithTimer(stat = %08x)", stat);
|
||||
DEBUG_LOG(HLE,"HACK 0=sceUmdWaitDriveStatWithTimer(stat = %08x)", stat);
|
||||
if ((stat & __KernelUmdGetState()) != stat)
|
||||
__KernelWaitCurThread(WAITTYPE_UMD, 0, stat, 0, 0); //__KernelWaitCurThread(WAITTYPE_UMD, 0);
|
||||
RETURN(stat);
|
||||
RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
void sceUmdWaitDriveStatCB()
|
||||
{
|
||||
u32 stat = PARAM(0);
|
||||
ERROR_LOG(HLE,"UNIMPL 0=sceUmdWaitDriveStatCB(stat = %08x)", stat);
|
||||
//__KernelRegisterCallback(THREAD_CALLBACK_UMD, cbid);
|
||||
DEBUG_LOG(HLE,"HACK 0=sceUmdWaitDriveStatCB(stat = %08x)", stat);
|
||||
// Immediately notify
|
||||
RETURN(0);
|
||||
__KernelNotifyCallbackType(THREAD_CALLBACK_UMD, driveCBId, __KernelUmdGetState()&stat);
|
||||
|
|
Loading…
Add table
Reference in a new issue