mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-27 20:15:32 +00:00
UMD callbacks, a couple of NIDs
This commit is contained in:
parent
a1de133d3e
commit
cf098dfd67
@ -179,6 +179,8 @@ static const HLEFunction scePower[] =
|
||||
{0x34f9c463,0,"scePowerGetPllClockFrequencyInt"},
|
||||
{0xea382a27,0,"scePowerGetPllClockFrequencyFloat"},
|
||||
{0xebd177d6,0,"scePower_driver_EBD177D6"},
|
||||
{0x469989ad,0,"scePower_469989ad"},
|
||||
{0xa85880d0,0,"scePower_a85880d0"},
|
||||
};
|
||||
|
||||
//890129c in tyshooter looks bogus
|
||||
|
@ -106,6 +106,8 @@ const HLEFunction scePsmfPlayer[] =
|
||||
{0xe792cd94,0,"scePsmfPlayerReleasePsmfFunction"},
|
||||
{0xf3efaa91,0,"scePsmfPlayerGetCurrentPlayMode"},
|
||||
{0xf8ef08a6,0,"scePsmfPlayerGetCurrentStatus"},
|
||||
{0x2D0E4E0A,0,"scePsmfPlayerSetTempBufFunction"},
|
||||
{0x58B83577,0,"scePsmfPlayerSetPsmfCBFunction"},
|
||||
};
|
||||
|
||||
void Register_scePsmf() {
|
||||
|
@ -161,7 +161,7 @@ void SasInstance::mix(u32 outAddr)
|
||||
{
|
||||
Voice &voice = sas.voices[v];
|
||||
|
||||
if (voice.playing)
|
||||
if (voice.playing && voice.vagAddr != 0)
|
||||
{
|
||||
for (int i = 0; i < grainSize; i++)
|
||||
{
|
||||
@ -419,6 +419,7 @@ const HLEFunction sceSasCore[] =
|
||||
{0xe175ef66, sceSasGetOutputMode, "__sceSasGetOutputmode"},
|
||||
{0xe855bf76, 0, "__sceSasSetOutputmode"},
|
||||
{0x07f58c24, 0, "__sceSasGetAllEnvelopeHeights"}, // (int sasCore, int heightAddr) 32-bit heights, 0-0x40000000
|
||||
{0xE1CD9561, 0, "__sceSasSetVoicePCM"},
|
||||
};
|
||||
|
||||
void Register_sceSasCore()
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include "HLE.h"
|
||||
#include "../MIPS/MIPS.h"
|
||||
#include "sceUmd.h"
|
||||
|
||||
#include "sceKernelThread.h"
|
||||
|
||||
#define UMD_NOT_PRESENT 0x01
|
||||
#define UMD_PRESENT 0x02
|
||||
@ -69,7 +69,7 @@ void __KernelUmdDeactivate()
|
||||
void sceUmdCheckMedium()
|
||||
{
|
||||
DEBUG_LOG(HLE,"1=sceUmdCheckMedium(?)");
|
||||
//ignore PARAM(0)
|
||||
//ignore PARAM(0)
|
||||
RETURN(1); //non-zero: disc in drive
|
||||
}
|
||||
|
||||
@ -86,20 +86,34 @@ void sceUmdActivate()
|
||||
u32 retVal = 0;
|
||||
__KernelUmdActivate();
|
||||
DEBUG_LOG(HLE,"%i=sceUmdActivate(%08x, %s)", retVal, unknown, name);
|
||||
u32 notifyArg = UMD_PRESENT | UMD_READABLE;
|
||||
__KernelNotifyCallbackType(THREAD_CALLBACK_UMD, -1, notifyArg);
|
||||
RETURN(retVal);
|
||||
}
|
||||
|
||||
void sceUmdDeactivate()
|
||||
{
|
||||
ERROR_LOG(HLE,"sceUmdDeactivate()");
|
||||
bool triggerCallback = umdActivated;
|
||||
__KernelUmdDeactivate();
|
||||
|
||||
if (triggerCallback) {
|
||||
u32 notifyArg = UMD_PRESENT | UMD_READY;
|
||||
__KernelNotifyCallbackType(THREAD_CALLBACK_UMD, -1, notifyArg);
|
||||
}
|
||||
RETURN(0);
|
||||
}
|
||||
|
||||
void sceUmdRegisterUMDCallBack()
|
||||
u32 sceUmdRegisterUMDCallBack(u32 cbId)
|
||||
{
|
||||
ERROR_LOG(HLE,"UNIMPL 0=sceUmdRegisterUMDCallback(id=%i)",PARAM(0));
|
||||
RETURN(0);
|
||||
DEBUG_LOG(HLE,"0=sceUmdRegisterUMDCallback(id=%i)",PARAM(0));
|
||||
return __KernelRegisterCallback(THREAD_CALLBACK_UMD, cbId);
|
||||
}
|
||||
|
||||
u32 sceUmdUnRegisterUMDCallBack(u32 cbId)
|
||||
{
|
||||
DEBUG_LOG(HLE,"0=sceUmdUnRegisterUMDCallBack(id=%i)",PARAM(0));
|
||||
return __KernelUnregisterCallback(THREAD_CALLBACK_UMD, cbId);
|
||||
}
|
||||
|
||||
void sceUmdGetDriveStat()
|
||||
@ -163,8 +177,8 @@ const HLEFunction sceUmdUser[] =
|
||||
{0x6B4A146C,sceUmdGetDriveStat,"sceUmdGetDriveStat"},
|
||||
{0x20628E6F,0,"sceUmdGetErrorStat"},
|
||||
{0x340B7686,sceUmdGetDiscInfo,"sceUmdGetDiscInfo"},
|
||||
{0xAEE7404D,sceUmdRegisterUMDCallBack,"sceUmdRegisterUMDCallBack"},
|
||||
{0xBD2BDE07,0,"sceUmdUnRegisterUMDCallBack"},
|
||||
{0xAEE7404D,&WrapU_U<sceUmdRegisterUMDCallBack>,"sceUmdRegisterUMDCallBack"},
|
||||
{0xBD2BDE07,&WrapU_U<sceUmdUnRegisterUMDCallBack>,"sceUmdUnRegisterUMDCallBack"},
|
||||
{0x87533940,0,"sceUmdReplaceProhibit"}, // ??? sounds bogus
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user