mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-02 11:43:31 +00:00
Add some missing HLE functions, fix loading unencrypted EBOOT.BIN
This commit is contained in:
parent
48bc1afe26
commit
28879934d6
@ -238,11 +238,12 @@ void sceAudioInit()
|
||||
|
||||
const HLEFunction sceAudio[] =
|
||||
{
|
||||
{0x01562ba3, 0, "sceAudioOutput2Reserve"},
|
||||
{0x01562ba3, 0, "sceAudioOutput2Reserve"}, // Super Stardust Portable uses these
|
||||
{0x2d53f36e, 0, "sceAudioOutput2OutputBlocking"},
|
||||
{0x63f2889c, 0, "sceAudioOutput2ChangeLength"},
|
||||
{0x647cef33, 0, "sceAudioOutput2GetRestSample"},
|
||||
{0x43196845, 0, "sceAudioOutput2Release"},
|
||||
|
||||
{0x210567F7, 0, "sceAudioEnd"},
|
||||
{0x38553111, 0, "sceAudioSRCChReserve"},
|
||||
{0x5C37C0AE, 0, "sceAudioSRCChRelease"},
|
||||
|
@ -295,6 +295,8 @@ const HLEFunction ThreadManForUser[] =
|
||||
{0x5bf4dd27,&WrapU_UUU<sceKernelLockMutexCB>,"sceKernelLockMutexCB"},
|
||||
{0x6b30100f,&WrapU_UU<sceKernelUnlockMutex>,"sceKernelUnlockMutex"},
|
||||
{0xb7d098c6,&WrapU_CUU<sceKernelCreateMutex>,"sceKernelCreateMutex"},
|
||||
{0x0DDCD2C9, 0, "sceKernelTryLockMutex"},
|
||||
|
||||
// NOTE: LockLwMutex and UnlockLwMutex are in Kernel_Library, see sceKernelInterrupt.cpp.
|
||||
|
||||
{0xFCCFAD26,0,"sceKernelCancelWakeupThread"},
|
||||
@ -308,7 +310,7 @@ const HLEFunction ThreadManForUser[] =
|
||||
{0x68da9e36,sceKernelDelayThreadCB,"sceKernelDelayThreadCB"},
|
||||
{0xaa73c935,sceKernelExitThread,"sceKernelExitThread"},
|
||||
{0x809ce29b,sceKernelExitDeleteThread,"sceKernelExitDeleteThread"},
|
||||
{0x94aa61ee,0,"sceKernelGetThreadCurrentPriority"},
|
||||
{0x94aa61ee,sceKernelGetThreadCurrentPriority,"sceKernelGetThreadCurrentPriority"},
|
||||
{0x293b45b8,sceKernelGetThreadId,"sceKernelGetThreadId"},
|
||||
{0x3B183E26,sceKernelGetThreadExitStatus,"sceKernelGetThreadExitStatus"},
|
||||
{0x52089CA1,sceKernelGetThreadStackFreeSize,"sceKernelGetThreadStackFreeSize"},
|
||||
@ -423,6 +425,7 @@ const HLEFunction ThreadManForUser[] =
|
||||
{0x0E927AED, _sceKernelReturnFromTimerHandler, "_sceKernelReturnFromTimerHandler"},
|
||||
{0x532A522E, _sceKernelExitThread,"_sceKernelExitThread"},
|
||||
|
||||
|
||||
// Shouldn't hook this up. No games should import this function manually and call it.
|
||||
// {0x6E9EA350, _sceKernelReturnFromCallback,"_sceKernelReturnFromCallback"},
|
||||
};
|
||||
|
@ -388,6 +388,7 @@ const HLEFunction Kernel_Library[] =
|
||||
{0x47a0b729,sceKernelIsCpuIntrSuspended, "sceKernelIsCpuIntrSuspended"}, //flags
|
||||
{0xb55249d2,sceKernelIsCpuIntrEnable, "sceKernelIsCpuIntrEnable"},
|
||||
{0xa089eca4,sceKernelMemset, "sceKernelMemset"},
|
||||
{0xDC692EE3,0, "sceKernelTryLockLwMutex"},
|
||||
{0xbea46419,0, "sceKernelLockLwMutex"},
|
||||
{0x15b6446b,0, "sceKernelUnlockLwMutex"},
|
||||
{0x293b45b8,0, "sceKernelGetThreadId"},
|
||||
|
@ -637,6 +637,10 @@ const HLEFunction SysMemUserForUser[] =
|
||||
{0xf77d77cb,sceKernelSetCompilerVersion,"sceKernelSetCompilerVersion"},
|
||||
{0x35669d4c,0,"sceKernelSetCompiledSdkVersion600_602"}, //??
|
||||
{0x1b4217bc,0,"sceKernelSetCompiledSdkVersion603_605"},
|
||||
{0xDB83A952,0,"SysMemUserForUser_DB83A952"},
|
||||
{0x91DE343C,0,"SysMemUserForUser_91DE343C"},
|
||||
{0x50F61D8A,0,"SysMemUserForUser_50F61D8A"},
|
||||
{0xFE707FDF,0,"SysMemUserForUser_FE707FDF"},
|
||||
};
|
||||
|
||||
|
||||
|
@ -994,6 +994,13 @@ void sceKernelGetThreadId()
|
||||
RETURN(retVal);
|
||||
}
|
||||
|
||||
void sceKernelGetThreadCurrentPriority()
|
||||
{
|
||||
u32 retVal = __GetCurrentThread()->nt.currentPriority;
|
||||
DEBUG_LOG(HLE,"%i = sceKernelGetThreadCurrentPriority()", retVal);
|
||||
RETURN(retVal);
|
||||
}
|
||||
|
||||
void sceKernelChangeCurrentThreadAttr()
|
||||
{
|
||||
int clearAttr = PARAM(0);
|
||||
@ -1018,7 +1025,7 @@ void sceKernelChangeThreadPriority()
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(HLE,"%08x=sceKernelChangeThreadPriority(%i, %i) failed", error, id, PARAM(1));
|
||||
ERROR_LOG(HLE,"%08x=sceKernelChangeThreadPriority(%i, %i) failed - no such thread", error, id, PARAM(1));
|
||||
RETURN(error);
|
||||
}
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ void sceKernelExitDeleteThread();
|
||||
void sceKernelExitThread();
|
||||
void _sceKernelExitThread();
|
||||
void sceKernelGetThreadId();
|
||||
void sceKernelGetThreadCurrentPriority();
|
||||
u32 sceKernelStartThread();
|
||||
void sceKernelWaitThreadEnd();
|
||||
void sceKernelReferThreadStatus();
|
||||
|
@ -71,8 +71,7 @@ bool Load_PSP_ISO(const char *filename, std::string *error_string)
|
||||
{
|
||||
u8 head[4];
|
||||
pspFileSystem.ReadFile(fd, head, 4);
|
||||
if (memcmp(head, "~PSP", 4) == 0) // || memcmp(head + 1, "ELF", 3) == 0)
|
||||
{
|
||||
if (memcmp(head, "~PSP", 4) == 0 || memcmp(head, "\x7F""ELF", 4) == 0) {
|
||||
hasEncrypted = true;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user