diff --git a/Core/HLE/FunctionWrappers.h b/Core/HLE/FunctionWrappers.h index c7c3eaa94b..6202100614 100644 --- a/Core/HLE/FunctionWrappers.h +++ b/Core/HLE/FunctionWrappers.h @@ -104,6 +104,11 @@ template void WrapU_CU() { RETURN((u32)retval); } +template void WrapU_UC() { + int retval = func(PARAM(0), Memory::GetCharPointer(PARAM(1))); + RETURN(retval); +} + template void WrapU_CUU() { int retval = func(Memory::GetCharPointer(PARAM(0)), PARAM(1), PARAM(2)); RETURN((u32)retval); diff --git a/Core/HLE/sceUmd.cpp b/Core/HLE/sceUmd.cpp index 9bb4cc5e29..f520f78e8b 100644 --- a/Core/HLE/sceUmd.cpp +++ b/Core/HLE/sceUmd.cpp @@ -94,29 +94,27 @@ void sceUmdGetDiscInfo() RETURN(0); } -void sceUmdActivate() +u32 sceUmdActivate(u32 unknown, const char *name) { - u32 unknown = PARAM(0); - const char *name = Memory::GetCharPointer(PARAM(1)); 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); + return retVal; } -void sceUmdDeactivate() +u32 sceUmdDeactivate(u32 unknown, const char *name) { DEBUG_LOG(HLE,"sceUmdDeactivate()"); - bool triggerCallback = umdActivated; + u8 triggerCallback = umdActivated; __KernelUmdDeactivate(); if (triggerCallback) { u32 notifyArg = UMD_PRESENT | UMD_READY; __KernelNotifyCallbackType(THREAD_CALLBACK_UMD, -1, notifyArg); } - RETURN(0); + return 0; } u32 sceUmdRegisterUMDCallBack(u32 cbId) @@ -131,12 +129,12 @@ u32 sceUmdUnRegisterUMDCallBack(u32 cbId) return __KernelUnregisterCallback(THREAD_CALLBACK_UMD, cbId); } -void sceUmdGetDriveStat() +u32 sceUmdGetDriveStat() { //u32 retVal = PSP_UMD_INITED | PSP_UMD_READY | PSP_UMD_PRESENT; u32 retVal = __KernelUmdGetState(); DEBUG_LOG(HLE,"0x%02x=sceUmdGetDriveStat()",retVal); - RETURN(retVal); + return retVal; } /** @@ -178,25 +176,25 @@ void sceUmdCancelWaitDriveStat() RETURN(0); } -void sceUmdGetErrorStat() +u32 sceUmdGetErrorStat() { DEBUG_LOG(HLE,"%i=sceUmdGetErrorStat()", umdErrorStat); - RETURN(umdErrorStat); + return umdErrorStat; } const HLEFunction sceUmdUser[] = { - {0xC6183D47,sceUmdActivate,"sceUmdActivate"}, - {0x6B4A146C,sceUmdGetDriveStat,"sceUmdGetDriveStat"}, + {0xC6183D47,&WrapU_UC,"sceUmdActivate"}, + {0x6B4A146C,&WrapU_V,"sceUmdGetDriveStat"}, {0x46EBB729,sceUmdCheckMedium,"sceUmdCheckMedium"}, - {0xE83742BA,sceUmdDeactivate,"sceUmdDeactivate"}, + {0xE83742BA,&WrapU_UC,"sceUmdDeactivate"}, {0x8EF08FCE,sceUmdWaitDriveStat,"sceUmdWaitDriveStat"}, {0x56202973,sceUmdWaitDriveStatWithTimer,"sceUmdWaitDriveStatWithTimer"}, {0x4A9E5E29,sceUmdWaitDriveStatCB,"sceUmdWaitDriveStatCB"}, {0x6af9b50a,sceUmdCancelWaitDriveStat,"sceUmdCancelWaitDriveStat"}, - {0x6B4A146C,sceUmdGetDriveStat,"sceUmdGetDriveStat"}, - {0x20628E6F,sceUmdGetErrorStat,"sceUmdGetErrorStat"}, + {0x6B4A146C,&WrapU_V,"sceUmdGetDriveStat"}, + {0x20628E6F,&WrapU_V,"sceUmdGetErrorStat"}, {0x340B7686,sceUmdGetDiscInfo,"sceUmdGetDiscInfo"}, {0xAEE7404D,&WrapU_U,"sceUmdRegisterUMDCallBack"}, {0xBD2BDE07,&WrapU_U,"sceUmdUnRegisterUMDCallBack"},