//REG_FUNC(0xBB635544, sceAsSetUnregisterReportHandler); //REG_FUNC(0xF578F0EF, sceAsGetSystemNeededMemory); //REG_FUNC(0xAA8D4541, sceAsCreateSystem); //REG_FUNC(0x139D29C0, sceAsDestroySystem); //REG_FUNC(0xBE843EEC, sceAsLockParam); //REG_FUNC(0xFF2380C4, sceAsUnlockParam); //REG_FUNC(0x2549F436, sceAsSetEvent); //REG_FUNC(0xDC26B9F2, sceAsGetState); //REG_FUNC(0xB6220E73, sceAsSetBuss); //REG_FUNC(0x1E608068, sceAsSetRacks); //REG_FUNC(0x5835B473, sceAsSetGranularity); //REG_FUNC(0xDFE6502F, sceAsGetGranularity); //REG_FUNC(0xC72F1EEF, sceAsRender); //REG_FUNC(0xCE23F057, sceAsLockUpdate); //REG_FUNC(0x8BEF3C92, sceAsUnlockUpdate); REG_FUNC(0x180C6824, sceSasGetNeededMemorySize); REG_FUNC(0x449B5974, sceSasInit); REG_FUNC(0x820D5F82, sceSasInitWithGrain); REG_FUNC(0xBB7D6790, sceSasExit); REG_FUNC(0x2B4A207C, sceSasSetGrain); REG_FUNC(0x2BEA45BC, sceSasGetGrain); REG_FUNC(0x44DDB3C4, sceSasSetOutputmode); REG_FUNC(0x2C36E150, sceSasGetOutputmode); REG_FUNC(0x7A4672B2, sceSasCore); REG_FUNC(0xBD496983, sceSasCoreWithMix); REG_FUNC(0x2B75F9BC, sceSasSetVoice); REG_FUNC(0xB1756EFC, sceSasSetVoicePCM); REG_FUNC(0xF1C63CB9, sceSasSetNoise); REG_FUNC(0x0BE8204D, sceSasSetVolume); //REG_FUNC(0x011788BE, sceSasSetDistortion); REG_FUNC(0x2C48A08C, sceSasSetPitch);
{ UNIMPLEMENTED_FUNC(cellJpgEnc); return CELL_OK; } s32 cellJpgEncGetStreamInfo() { UNIMPLEMENTED_FUNC(cellJpgEnc); return CELL_OK; } s32 cellJpgEncReset() { UNIMPLEMENTED_FUNC(cellJpgEnc); return CELL_OK; } DECLARE(ppu_module_manager::cellJpgEnc)("cellJpgEnc", []() { REG_FUNC(cellJpgEnc, cellJpgEncQueryAttr); REG_FUNC(cellJpgEnc, cellJpgEncOpen); REG_FUNC(cellJpgEnc, cellJpgEncOpenEx); REG_FUNC(cellJpgEnc, cellJpgEncClose); REG_FUNC(cellJpgEnc, cellJpgEncWaitForInput); REG_FUNC(cellJpgEnc, cellJpgEncEncodePicture); REG_FUNC(cellJpgEnc, cellJpgEncEncodePicture2); REG_FUNC(cellJpgEnc, cellJpgEncWaitForOutput); REG_FUNC(cellJpgEnc, cellJpgEncGetStreamInfo); REG_FUNC(cellJpgEnc, cellJpgEncReset); });
s32 cellHttpUtilBase64Encoder() { UNIMPLEMENTED_FUNC(cellHttpUtil); return CELL_OK; } s32 cellHttpUtilBase64Decoder() { UNIMPLEMENTED_FUNC(cellHttpUtil); return CELL_OK; } DECLARE(ppu_module_manager::cellHttpUtil)("cellHttpUtil", []() { REG_FUNC(cellHttpUtil, cellHttpUtilParseUri); REG_FUNC(cellHttpUtil, cellHttpUtilParseUriPath); REG_FUNC(cellHttpUtil, cellHttpUtilParseProxy); REG_FUNC(cellHttpUtil, cellHttpUtilParseStatusLine); REG_FUNC(cellHttpUtil, cellHttpUtilParseHeader); REG_FUNC(cellHttpUtil, cellHttpUtilBuildRequestLine); REG_FUNC(cellHttpUtil, cellHttpUtilBuildHeader); REG_FUNC(cellHttpUtil, cellHttpUtilBuildUri); REG_FUNC(cellHttpUtil, cellHttpUtilCopyUri); REG_FUNC(cellHttpUtil, cellHttpUtilMergeUriPath); REG_FUNC(cellHttpUtil, cellHttpUtilSweepPath); REG_FUNC(cellHttpUtil, cellHttpUtilCopyStatusLine); REG_FUNC(cellHttpUtil, cellHttpUtilCopyHeader); REG_FUNC(cellHttpUtil, cellHttpUtilAppendHeaderValue);
v.func.set(0); v.arg.set(0); } cellSysutil_SaveData_init(); // cellSaveData functions cellSysutil_GameData_init(); // cellGameData, cellHddGame functions cellSysutil_MsgDialog_init(); // cellMsgDialog functions cellSysutil_OskDialog_init(); // cellOskDialog functions cellSysutil_Storage_init(); // cellStorage functions cellSysutil_Sysconf_init(); // cellSysconf functions cellSysutil_SysutilAvc_init(); // cellSysutilAvc functions cellSysutil_WebBrowser_init(); // cellWebBrowser, cellWebComponent functions cellSysutil_AudioOut_init(); // cellAudioOut functions cellSysutil_VideoOut_init(); // cellVideoOut functions REG_FUNC(cellSysutil, cellSysutilGetSystemParamInt); REG_FUNC(cellSysutil, cellSysutilGetSystemParamString); REG_FUNC(cellSysutil, cellSysutilCheckCallback); REG_FUNC(cellSysutil, cellSysutilRegisterCallback); REG_FUNC(cellSysutil, cellSysutilUnregisterCallback); REG_FUNC(cellSysutil, cellSysutilGetBgmPlaybackStatus); REG_FUNC(cellSysutil, cellSysutilGetBgmPlaybackStatus2); REG_FUNC(cellSysutil, cellSysutilEnableBgmPlayback); REG_FUNC(cellSysutil, cellSysutilEnableBgmPlaybackEx); REG_FUNC(cellSysutil, cellSysutilDisableBgmPlayback); REG_FUNC(cellSysutil, cellSysutilDisableBgmPlaybackEx); REG_FUNC(cellSysutil, cellSysutilSetBgmPlaybackExtraParam); REG_FUNC(cellSysutil, cellSysCacheMount);
s32 sceSysmoduleLoadModule(u16 id) { sceSysmodule.warning("sceSysmoduleLoadModule(id=0x%04x) -> SCE_OK", id); return SCE_OK; // loading succeeded } s32 sceSysmoduleUnloadModule(u16 id) { sceSysmodule.warning("sceSysmoduleUnloadModule(id=0x%04x) -> SCE_OK", id); return SCE_OK; // unloading succeeded } s32 sceSysmoduleIsLoaded(u16 id) { sceSysmodule.warning("sceSysmoduleIsLoaded(id=0x%04x) -> SCE_OK", id); return SCE_OK; // module is loaded } #define REG_FUNC(nid, name) REG_FNID(SceSysmodule, nid, name) DECLARE(arm_module_manager::SceSysmodule)("SceSysmodule", []() { REG_FUNC(0x79A0160A, sceSysmoduleLoadModule); REG_FUNC(0x31D87805, sceSysmoduleUnloadModule); REG_FUNC(0x53099B7A, sceSysmoduleIsLoaded); });
s32 sceAudioInOpenPort(s32 portType, s32 grain, s32 freq, s32 param) { throw EXCEPTION(""); } s32 sceAudioInReleasePort(s32 port) { throw EXCEPTION(""); } s32 sceAudioInInput(s32 port, vm::ptr<void> destPtr) { throw EXCEPTION(""); } #define REG_FUNC(nid, name) reg_psv_func(nid, &sceAudioIn, #name, name) psv_log_base sceAudioIn("SceAudioIn", []() { sceAudioIn.on_load = nullptr; sceAudioIn.on_unload = nullptr; sceAudioIn.on_stop = nullptr; sceAudioIn.on_error = nullptr; REG_FUNC(0x638ADD2D, sceAudioInInput); REG_FUNC(0x39B50DC1, sceAudioInOpenPort); REG_FUNC(0x3A61B8C4, sceAudioInReleasePort); //REG_FUNC(0x566AC433, sceAudioInGetAdopt); });
s32 cellGemUpdateStart() { UNIMPLEMENTED_FUNC(cellGem); return CELL_OK; } s32 cellGemWriteExternalPort() { UNIMPLEMENTED_FUNC(cellGem); return CELL_OK; } Module<> cellGem("cellGem", []() { REG_FUNC(cellGem, cellGemCalibrate); REG_FUNC(cellGem, cellGemClearStatusFlags); REG_FUNC(cellGem, cellGemConvertVideoFinish); REG_FUNC(cellGem, cellGemConvertVideoStart); REG_FUNC(cellGem, cellGemEnableCameraPitchAngleCorrection); REG_FUNC(cellGem, cellGemEnableMagnetometer); REG_FUNC(cellGem, cellGemEnd); REG_FUNC(cellGem, cellGemFilterState); REG_FUNC(cellGem, cellGemForceRGB); REG_FUNC(cellGem, cellGemGetAccelerometerPositionInDevice); REG_FUNC(cellGem, cellGemGetAllTrackableHues); REG_FUNC(cellGem, cellGemGetCameraState); REG_FUNC(cellGem, cellGemGetEnvironmentLightingColor); REG_FUNC(cellGem, cellGemGetHuePixels); REG_FUNC(cellGem, cellGemGetImageState); REG_FUNC(cellGem, cellGemGetInertialState);
{ return SCE_NP_SNS_FB_ERROR_NOT_INITIALIZED; } return CELL_OK; } s32 sceNpSnsFbGetAccessToken() { UNIMPLEMENTED_FUNC(sceNpSns); if (!g_sceNpSns->m_bSceNpSnsInitialized) { return SCE_NP_SNS_FB_ERROR_NOT_INITIALIZED; } return CELL_OK; } Module sceNpSns("sceNpSns", []() { g_sceNpSns = std::make_unique<SceNpSnsInternal>(); REG_FUNC(sceNpSns, sceNpSnsFbInit); REG_FUNC(sceNpSns, sceNpSnsFbTerm); REG_FUNC(sceNpSns, sceNpSnsFbCreateHandle); REG_FUNC(sceNpSns, sceNpSnsFbDestroyHandle); REG_FUNC(sceNpSns, sceNpSnsFbAbortHandle); REG_FUNC(sceNpSns, sceNpSnsFbGetAccessToken); });
s32 cellNetAoiStart() { UNIMPLEMENTED_FUNC(cellNetAoi); return CELL_OK; } s32 cellNetAoiGetLocalInfo() { UNIMPLEMENTED_FUNC(cellNetAoi); return CELL_OK; } s32 cellNetAoiAddPeer() { UNIMPLEMENTED_FUNC(cellNetAoi); return CELL_OK; } DECLARE(ppu_module_manager::cellNetAoi)("cellNetAoi", []() { REG_FUNC(cellNetAoi, cellNetAoiDeletePeer); REG_FUNC(cellNetAoi, cellNetAoiInit); REG_FUNC(cellNetAoi, cellNetAoiGetPspTitleId); REG_FUNC(cellNetAoi, cellNetAoiTerm); REG_FUNC(cellNetAoi, cellNetAoiStop); REG_FUNC(cellNetAoi, cellNetAoiGetRemotePeerInfo); REG_FUNC(cellNetAoi, cellNetAoiStart); REG_FUNC(cellNetAoi, cellNetAoiGetLocalInfo); REG_FUNC(cellNetAoi, cellNetAoiAddPeer); });
s32 sceNpSnsFbCheckThrottle() { throw EXCEPTION(""); } s32 sceNpSnsFbCheckConfig() { throw EXCEPTION(""); } s32 sceNpSnsFbLoadThrottle() { throw EXCEPTION(""); } DECLARE(ppu_module_manager::sceNpSns)("sceNpSns", []() { REG_FUNC(sceNpSns, sceNpSnsFbInit); REG_FUNC(sceNpSns, sceNpSnsFbTerm); REG_FUNC(sceNpSns, sceNpSnsFbCreateHandle); REG_FUNC(sceNpSns, sceNpSnsFbDestroyHandle); REG_FUNC(sceNpSns, sceNpSnsFbAbortHandle); REG_FUNC(sceNpSns, sceNpSnsFbGetAccessToken); REG_FUNC(sceNpSns, sceNpSnsFbStreamPublish); REG_FUNC(sceNpSns, sceNpSnsFbCheckThrottle); REG_FUNC(sceNpSns, sceNpSnsFbCheckConfig); REG_FUNC(sceNpSns, sceNpSnsFbLoadThrottle); });
void sysPrxForUser_sys_libc_init() { REG_FUNC(sysPrxForUser, _sys_memset); REG_FUNC(sysPrxForUser, _sys_memcpy); REG_FUNC(sysPrxForUser, _sys_memcmp); REG_FUNC(sysPrxForUser, _sys_memchr); REG_FUNC(sysPrxForUser, _sys_memmove); REG_FUNC(sysPrxForUser, _sys_strlen); REG_FUNC(sysPrxForUser, _sys_strcmp); REG_FUNC(sysPrxForUser, _sys_strncmp); REG_FUNC(sysPrxForUser, _sys_strcat); REG_FUNC(sysPrxForUser, _sys_strchr); REG_FUNC(sysPrxForUser, _sys_strncat); REG_FUNC(sysPrxForUser, _sys_strcpy); REG_FUNC(sysPrxForUser, _sys_strncpy); REG_FUNC(sysPrxForUser, _sys_strncasecmp); REG_FUNC(sysPrxForUser, _sys_strrchr); REG_FUNC(sysPrxForUser, _sys_tolower); REG_FUNC(sysPrxForUser, _sys_toupper); REG_FUNC(sysPrxForUser, _sys_malloc); REG_FUNC(sysPrxForUser, _sys_memalign); REG_FUNC(sysPrxForUser, _sys_free); REG_FUNC(sysPrxForUser, _sys_snprintf); REG_FUNC(sysPrxForUser, _sys_printf); REG_FUNC(sysPrxForUser, _sys_sprintf); REG_FUNC(sysPrxForUser, _sys_vprintf); REG_FUNC(sysPrxForUser, _sys_vsnprintf); REG_FUNC(sysPrxForUser, _sys_vsprintf); REG_FUNC(sysPrxForUser, _sys_qsort); }
{ UNIMPLEMENTED_FUNC(sceNpClans); if (!g_sceNpClans->m_bSceNpClansInitialized) { return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; } return CELL_OK; } Module sceNpClans("sceNpClans", []() { g_sceNpClans = std::make_unique<SceNpClansInternal>(); REG_FUNC(sceNpClans, sceNpClansInit); REG_FUNC(sceNpClans, sceNpClansTerm); REG_FUNC(sceNpClans, sceNpClansCreateRequest); REG_FUNC(sceNpClans, sceNpClansDestroyRequest); REG_FUNC(sceNpClans, sceNpClansAbortRequest); REG_FUNC(sceNpClans, sceNpClansCreateClan); REG_FUNC(sceNpClans, sceNpClansDisbandClan); REG_FUNC(sceNpClans, sceNpClansGetClanList); REG_FUNC(sceNpClans, sceNpClansGetClanListByNpId); REG_FUNC(sceNpClans, sceNpClansSearchByProfile); REG_FUNC(sceNpClans, sceNpClansSearchByName); REG_FUNC(sceNpClans, sceNpClansGetClanInfo); REG_FUNC(sceNpClans, sceNpClansUpdateClanInfo); REG_FUNC(sceNpClans, sceNpClansGetMemberList); REG_FUNC(sceNpClans, sceNpClansGetMemberInfo); REG_FUNC(sceNpClans, sceNpClansUpdateMemberInfo);
void cellSysutil_GameData_init() { extern Module cellSysutil; REG_FUNC(cellSysutil, cellHddGameCheck); REG_FUNC(cellSysutil, cellHddGameCheck2); REG_FUNC(cellSysutil, cellHddGameGetSizeKB); REG_FUNC(cellSysutil, cellHddGameSetSystemVer); REG_FUNC(cellSysutil, cellHddGameExitBroken); REG_FUNC(cellSysutil, cellGameDataGetSizeKB); REG_FUNC(cellSysutil, cellGameDataSetSystemVer); REG_FUNC(cellSysutil, cellGameDataExitBroken); REG_FUNC(cellSysutil, cellGameDataCheckCreate); REG_FUNC(cellSysutil, cellGameDataCheckCreate2); REG_FUNC(cellSysutil, cellDiscGameGetBootDiscInfo); REG_FUNC(cellSysutil, cellDiscGameRegisterDiscChangeCallback); REG_FUNC(cellSysutil, cellDiscGameUnregisterDiscChangeCallback); REG_FUNC(cellSysutil, cellGameRegisterDiscChangeCallback); REG_FUNC(cellSysutil, cellGameUnregisterDiscChangeCallback); }
REG_FUNC(cellSysutil, cellGameDataCheckCreate2); REG_FUNC(cellSysutil, cellDiscGameGetBootDiscInfo); REG_FUNC(cellSysutil, cellDiscGameRegisterDiscChangeCallback); REG_FUNC(cellSysutil, cellDiscGameUnregisterDiscChangeCallback); REG_FUNC(cellSysutil, cellGameRegisterDiscChangeCallback); REG_FUNC(cellSysutil, cellGameUnregisterDiscChangeCallback); } Module cellGame("cellGame", []() { contentInfo = ""; usrdir = ""; path_set = false; REG_FUNC(cellGame, cellGameBootCheck); REG_FUNC(cellGame, cellGamePatchCheck); REG_FUNC(cellGame, cellGameDataCheck); REG_FUNC(cellGame, cellGameContentPermit); REG_FUNC(cellGame, cellGameCreateGameData); REG_FUNC(cellGame, cellGameDeleteGameData); REG_FUNC(cellGame, cellGameGetParamInt); REG_FUNC(cellGame, cellGameGetParamString); REG_FUNC(cellGame, cellGameSetParamString); REG_FUNC(cellGame, cellGameGetSizeKB); REG_FUNC(cellGame, cellGameGetDiscContentInfoUpdatePath); REG_FUNC(cellGame, cellGameGetLocalWebContentPath); REG_FUNC(cellGame, cellGameContentErrorDialog);
s32 sys_config_remove_service_listener() { throw EXCEPTION(""); } s32 sys_config_register_service() { throw EXCEPTION(""); } s32 sys_config_unregister_service() { throw EXCEPTION(""); } DECLARE(ppu_module_manager::sys_io)("sys_io", []() { cellPad_init(); cellKb_init(); cellMouse_init(); REG_FUNC(sys_io, sys_config_start); REG_FUNC(sys_io, sys_config_stop); REG_FUNC(sys_io, sys_config_add_service_listener); REG_FUNC(sys_io, sys_config_remove_service_listener); REG_FUNC(sys_io, sys_config_register_service); REG_FUNC(sys_io, sys_config_unregister_service); });
s32 cellVideoOutSetCopyControl(u32 videoOut, u32 control) { cellAvconfExt.todo("cellVideoOutSetCopyControl(videoOut=%d, control=0x%x)", videoOut, control); return CELL_OK; } DECLARE(ppu_module_manager::cellAvconfExt)("cellSysutilAvconfExt", []() { REG_VAR(cellSysutilAvconfExt, g_gamma).flag(MFF_HIDDEN).init = [] { // Test *g_gamma = 1.0f; }; REG_FUNC(cellSysutilAvconfExt, cellAudioOutUnregisterDevice); REG_FUNC(cellSysutilAvconfExt, cellAudioOutGetDeviceInfo2); REG_FUNC(cellSysutilAvconfExt, cellVideoOutSetXVColor); REG_FUNC(cellSysutilAvconfExt, cellVideoOutSetupDisplay); REG_FUNC(cellSysutilAvconfExt, cellAudioInGetDeviceInfo); REG_FUNC(cellSysutilAvconfExt, cellVideoOutConvertCursorColor); REG_FUNC(cellSysutilAvconfExt, cellVideoOutGetGamma); REG_FUNC(cellSysutilAvconfExt, cellAudioInGetAvailableDeviceInfo); REG_FUNC(cellSysutilAvconfExt, cellAudioOutGetAvailableDeviceInfo); REG_FUNC(cellSysutilAvconfExt, cellVideoOutSetGamma); REG_FUNC(cellSysutilAvconfExt, cellAudioOutRegisterDevice); REG_FUNC(cellSysutilAvconfExt, cellAudioOutSetDeviceMode); REG_FUNC(cellSysutilAvconfExt, cellAudioInSetDeviceMode); REG_FUNC(cellSysutilAvconfExt, cellAudioInRegisterDevice); REG_FUNC(cellSysutilAvconfExt, cellAudioInUnregisterDevice); REG_FUNC(cellSysutilAvconfExt, cellVideoOutGetScreenSize);
#include "stdafx.h" #include "Emu/Cell/PPUModule.h" namespace vm { using namespace ps3; } logs::channel cellSpudll("cellSpudll", logs::level::notice); s32 cellSpudllGetImageSize(vm::ptr<u32> psize, vm::cptr<void> so_elf, vm::cptr<struct CellSpudllHandleConfig> config) { fmt::throw_exception("Unimplemented" HERE); } s32 cellSpudllHandleConfigSetDefaultValues(vm::ptr<struct CellSpudllHandleConfig> config) { fmt::throw_exception("Unimplemented" HERE); } DECLARE(ppu_module_manager::cellSpudll)("cellSpudll", []() { REG_FUNC(cellSpudll, cellSpudllGetImageSize); REG_FUNC(cellSpudll, cellSpudllHandleConfigSetDefaultValues); });
UNIMPLEMENTED_FUNC(cellSailRec); return CELL_OK; } s32 cellSailComposerNotifySessionError() { UNIMPLEMENTED_FUNC(cellSailRec); return CELL_OK; } DECLARE(ppu_module_manager::cellSailRec)("cellSailRec", []() { static ppu_static_module cellMp4("cellMp4"); static ppu_static_module cellApostSrcMini("cellApostSrcMini"); REG_FUNC(cellSailRec, cellSailProfileSetEsAudioParameter); REG_FUNC(cellSailRec, cellSailProfileSetEsVideoParameter); REG_FUNC(cellSailRec, cellSailProfileSetStreamParameter); REG_FUNC(cellSailRec, cellSailVideoConverterCanProcess); REG_FUNC(cellSailRec, cellSailVideoConverterProcess); REG_FUNC(cellSailRec, cellSailVideoConverterCanGetResult); REG_FUNC(cellSailRec, cellSailVideoConverterGetResult); REG_FUNC(cellSailRec, cellSailFeederAudioInitialize); REG_FUNC(cellSailRec, cellSailFeederAudioFinalize); REG_FUNC(cellSailRec, cellSailFeederAudioNotifyCallCompleted); REG_FUNC(cellSailRec, cellSailFeederAudioNotifyFrameOut); REG_FUNC(cellSailRec, cellSailFeederAudioNotifySessionEnd); REG_FUNC(cellSailRec, cellSailFeederAudioNotifySessionError);
} s32 sceMd5BlockInit(vm::psv::ptr<SceMd5Context> pContext) { throw __FUNCTION__; } s32 sceMd5BlockUpdate(vm::psv::ptr<SceMd5Context> pContext, vm::psv::ptr<const void> plain, u32 len) { throw __FUNCTION__; } s32 sceMd5BlockResult(vm::psv::ptr<SceMd5Context> pContext, vm::psv::ptr<u8> digest) { throw __FUNCTION__; } #define REG_FUNC(nid, name) reg_psv_func(nid, &sceMd5, #name, name) psv_log_base sceMd5("SceMd5", []() { sceMd5.on_load = nullptr; sceMd5.on_unload = nullptr; sceMd5.on_stop = nullptr; REG_FUNC(0xB845BCCB, sceMd5Digest); REG_FUNC(0x4D6436F9, sceMd5BlockInit); REG_FUNC(0x094A4902, sceMd5BlockUpdate); REG_FUNC(0xB94ABF83, sceMd5BlockResult); });
s32 sceLocationGetPermission(u8 handle, vm::ptr<SceLocationPermissionInfo> info) { throw EXCEPTION(""); } s32 sceLocationSetGpsEmulationFile(vm::ptr<char> filename) { throw EXCEPTION(""); } #define REG_FUNC(nid, name) REG_FNID(SceLibLocation, nid, name) DECLARE(arm_module_manager::SceLocation)("SceLibLocation", []() { REG_FUNC(0xDD271661, sceLocationOpen); REG_FUNC(0x14FE76E8, sceLocationClose); REG_FUNC(0xB1F55065, sceLocationReopen); REG_FUNC(0x188CE004, sceLocationGetMethod); REG_FUNC(0x15BC27C8, sceLocationGetLocation); REG_FUNC(0x71503251, sceLocationCancelGetLocation); REG_FUNC(0x12D1F0EA, sceLocationStartLocationCallback); REG_FUNC(0xED378700, sceLocationStopLocationCallback); REG_FUNC(0x4E9E5ED9, sceLocationGetHeading); REG_FUNC(0x07D4DFE0, sceLocationStartHeadingCallback); REG_FUNC(0x92E53F94, sceLocationStopHeadingCallback); //REG_FUNC(0xE055BCF5, sceLocationSetHeapAllocator); REG_FUNC(0xC895E567, sceLocationConfirm); REG_FUNC(0x730FF842, sceLocationConfirmGetStatus); REG_FUNC(0xFF016C13, sceLocationConfirmGetResult); REG_FUNC(0xE3CBF875, sceLocationConfirmAbort);
s32 sceImeSetCaret(vm::psv::ptr<const SceImeCaret> caret) { throw __FUNCTION__; } s32 sceImeSetPreeditGeometry(vm::psv::ptr<const SceImePreeditGeometry> preedit) { throw __FUNCTION__; } s32 sceImeClose() { throw __FUNCTION__; } #define REG_FUNC(nid, name) reg_psv_func(nid, &sceIme, #name, name) psv_log_base sceIme("SceIme", []() { sceIme.on_load = nullptr; sceIme.on_unload = nullptr; sceIme.on_stop = nullptr; REG_FUNC(0x0E050613, sceImeOpen); REG_FUNC(0x71D6898A, sceImeUpdate); REG_FUNC(0x889A8421, sceImeClose); REG_FUNC(0xD8342D2A, sceImeSetCaret); REG_FUNC(0x7B1EFAA5, sceImeSetPreeditGeometry); });
return CELL_OK; } error_code cellPhotoDecodeFinalize(vm::ptr<CellPhotoDecodeFinishCallback> funcFinish, vm::ptr<void> userdata) { cellPhotoDecode.todo("cellPhotoDecodeFinalize(funcFinish=*0x%x, userdata=*0x%x)", funcFinish, userdata); sysutil_register_cb([=](ppu_thread& ppu) -> s32 { funcFinish(ppu, CELL_OK, userdata); return CELL_OK; }); return CELL_OK; } error_code cellPhotoDecodeFromFile(vm::cptr<char> srcHddDir, vm::cptr<char> srcHddFile, vm::ptr<CellPhotoDecodeSetParam> set_param, vm::ptr<CellPhotoDecodeReturnParam> return_param) { cellPhotoDecode.todo("cellPhotoDecodeFromFile(srcHddDir=%s, srcHddFile=%s, set_param=*0x%x, return_param=*0x%x)", srcHddDir, srcHddFile, set_param, return_param); return CELL_OK; } DECLARE(ppu_module_manager::cellPhotoDecode)("cellPhotoDecodeUtil", []() { REG_FUNC(cellPhotoDecodeUtil, cellPhotoDecodeInitialize); REG_FUNC(cellPhotoDecodeUtil, cellPhotoDecodeInitialize2); REG_FUNC(cellPhotoDecodeUtil, cellPhotoDecodeFinalize); REG_FUNC(cellPhotoDecodeUtil, cellPhotoDecodeFromFile); });
s32 cellSslCertGetNameEntryInfo() { UNIMPLEMENTED_FUNC(cellSsl); return CELL_OK; } s32 cellSslCertGetMd5Fingerprint() { UNIMPLEMENTED_FUNC(cellSsl); return CELL_OK; } Module cellSsl("cellSsl", []() { REG_FUNC(cellSsl, cellSslInit); REG_FUNC(cellSsl, cellSslEnd); REG_FUNC(cellSsl, cellSslCertificateLoader); REG_FUNC(cellSsl, cellSslCertGetSerialNumber); REG_FUNC(cellSsl, cellSslCertGetPublicKey); REG_FUNC(cellSsl, cellSslCertGetRsaPublicKeyModulus); REG_FUNC(cellSsl, cellSslCertGetRsaPublicKeyExponent); REG_FUNC(cellSsl, cellSslCertGetNotBefore); REG_FUNC(cellSsl, cellSslCertGetNotAfter); REG_FUNC(cellSsl, cellSslCertGetSubjectName); REG_FUNC(cellSsl, cellSslCertGetIssuerName); REG_FUNC(cellSsl, cellSslCertGetNameEntryCount); REG_FUNC(cellSsl, cellSslCertGetNameEntryInfo); REG_FUNC(cellSsl, cellSslCertGetMd5Fingerprint);
{ sysPrxForUser_sys_lwmutex_init(); sysPrxForUser_sys_lwcond_init(); sysPrxForUser_sys_ppu_thread_init(); sysPrxForUser_sys_prx_init(); sysPrxForUser_sys_heap_init(); sysPrxForUser_sys_spinlock_init(); sysPrxForUser_sys_mmapper_init(); sysPrxForUser_sys_mempool_init(); sysPrxForUser_sys_spu_init(); sysPrxForUser_sys_game_init(); sysPrxForUser_sys_libc_init(); REG_VAR(sysPrxForUser, sys_prx_version); // 0x7df066cf REG_FUNC(sysPrxForUser, sys_initialize_tls); REG_FUNC(sysPrxForUser, sys_time_get_system_time); // TODO: split syscalls and liblv2 functions REG_FUNC(sysPrxForUser, sys_process_exit); REG_FUNC(sysPrxForUser, _sys_process_atexitspawn); REG_FUNC(sysPrxForUser, _sys_process_at_Exitspawn); REG_FUNC(sysPrxForUser, sys_process_is_stack); REG_FUNC(sysPrxForUser, sys_process_get_paramsfo); // 0xe75c40f2 REG_FUNC(sysPrxForUser, sys_interrupt_thread_disestablish); REG_FUNC(sysPrxForUser, sys_get_random_number); REG_FUNC(sysPrxForUser, console_getc);
s32 sceNpScoreSanitizeCommentAsync(s32 reqId, vm::cptr<char> comment, vm::ptr<char> sanitizedComment, vm::ptr<void> option) { throw EXCEPTION(""); } #define REG_FUNC(nid, name) reg_psv_func(nid, &sceNpScore, #name, name) psv_log_base sceNpScore("SceNpScore", []() { sceNpScore.on_load = nullptr; sceNpScore.on_unload = nullptr; sceNpScore.on_stop = nullptr; sceNpScore.on_error = nullptr; REG_FUNC(0x0433069F, sceNpScoreInit); REG_FUNC(0x2050F98F, sceNpScoreTerm); REG_FUNC(0x5685F225, sceNpScoreCreateTitleCtx); REG_FUNC(0xD30D1993, sceNpScoreCreateRequest); REG_FUNC(0xF52EA88A, sceNpScoreDeleteTitleCtx); REG_FUNC(0xFFF24BB1, sceNpScoreDeleteRequest); REG_FUNC(0x320C0277, sceNpScoreRecordScore); REG_FUNC(0x24B09634, sceNpScoreRecordScoreAsync); REG_FUNC(0xC2862B67, sceNpScoreRecordGameData); REG_FUNC(0x40573917, sceNpScoreRecordGameDataAsync); REG_FUNC(0xDFAD64D3, sceNpScoreGetGameData); REG_FUNC(0xCE416993, sceNpScoreGetGameDataAsync); REG_FUNC(0x427D3412, sceNpScoreGetRankingByRange); REG_FUNC(0xC45E3FCD, sceNpScoreGetRankingByRangeAsync); REG_FUNC(0xBAE55B34, sceNpScoreGetRankingByNpId); REG_FUNC(0x45CD1D00, sceNpScoreGetRankingByNpIdAsync);
s32 cellMicSysShareEnd() { UNIMPLEMENTED_FUNC(cellMic); return CELL_OK; } s32 cellMicGetDeviceIdentifier() { UNIMPLEMENTED_FUNC(cellMic); return CELL_OK; } DECLARE(ppu_module_manager::cellMic)("cellMic", []() { REG_FUNC(cellMic, cellMicInit); REG_FUNC(cellMic, cellMicEnd); REG_FUNC(cellMic, cellMicOpen); REG_FUNC(cellMic, cellMicClose); REG_FUNC(cellMic, cellMicGetDeviceGUID); REG_FUNC(cellMic, cellMicGetType); REG_FUNC(cellMic, cellMicIsAttached); REG_FUNC(cellMic, cellMicIsOpen); REG_FUNC(cellMic, cellMicGetDeviceAttr); REG_FUNC(cellMic, cellMicSetDeviceAttr); REG_FUNC(cellMic, cellMicGetSignalAttr); REG_FUNC(cellMic, cellMicSetSignalAttr); REG_FUNC(cellMic, cellMicGetSignalState); REG_FUNC(cellMic, cellMicStart); REG_FUNC(cellMic, cellMicRead); REG_FUNC(cellMic, cellMicStop);
return CELL_OK; }); return CELL_OK; } s32 cellMusicDecodeGetContentsId2(vm::ptr<CellSearchContentId> contents_id ) { cellMusicDecode.todo("cellMusicDecodeGetContentsId2(contents_id=*0x%x)", contents_id); return CELL_OK; } DECLARE(ppu_module_manager::cellMusicDecode)("cellMusicDecodeUtility", []() { REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeInitialize); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeInitializeSystemWorkload); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeFinalize); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeSelectContents); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeSetDecodeCommand); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeGetDecodeStatus); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeRead); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeGetSelectionContext); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeSetSelectionContext); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeGetContentsId); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeInitialize2); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeInitialize2SystemWorkload); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeFinalize2); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeSelectContents2); REG_FUNC(cellMusicDecodeUtility, cellMusicDecodeSetDecodeCommand2);
s32 cellRudpNetReceived() { UNIMPLEMENTED_FUNC(cellRudp); return CELL_OK; } s32 cellRudpProcessEvents() { UNIMPLEMENTED_FUNC(cellRudp); return CELL_OK; } DECLARE(ppu_module_manager::cellRudp)("cellRudp", []() { REG_FUNC(cellRudp, cellRudpInit); REG_FUNC(cellRudp, cellRudpEnd); REG_FUNC(cellRudp, cellRudpEnableInternalIOThread); REG_FUNC(cellRudp, cellRudpSetEventHandler); REG_FUNC(cellRudp, cellRudpSetMaxSegmentSize); REG_FUNC(cellRudp, cellRudpGetMaxSegmentSize); REG_FUNC(cellRudp, cellRudpCreateContext); REG_FUNC(cellRudp, cellRudpSetOption); REG_FUNC(cellRudp, cellRudpGetOption); REG_FUNC(cellRudp, cellRudpGetContextStatus); REG_FUNC(cellRudp, cellRudpGetStatus); REG_FUNC(cellRudp, cellRudpGetLocalInfo); REG_FUNC(cellRudp, cellRudpGetRemoteInfo);
s32 cellImeJpGetPredictList() { UNIMPLEMENTED_FUNC(cellImeJp); return CELL_OK; } s32 cellImeJpConfirmPrediction() { UNIMPLEMENTED_FUNC(cellImeJp); return CELL_OK; } Module cellImeJp("cellImeJp", []() { REG_FUNC(cellImeJp, cellImeJpOpen); REG_FUNC(cellImeJp, cellImeJpOpen2); REG_FUNC(cellImeJp, cellImeJpOpen3); REG_FUNC(cellImeJp, cellImeJpClose); REG_FUNC(cellImeJp, cellImeJpSetKanaInputMode); REG_FUNC(cellImeJp, cellImeJpSetInputCharType); REG_FUNC(cellImeJp, cellImeJpSetFixInputMode); REG_FUNC(cellImeJp, cellImeJpAllowExtensionCharacters); REG_FUNC(cellImeJp, cellImeJpReset); REG_FUNC(cellImeJp, cellImeJpGetStatus); REG_FUNC(cellImeJp, cellImeJpEnterChar); REG_FUNC(cellImeJp, cellImeJpEnterCharExt); REG_FUNC(cellImeJp, cellImeJpEnterString);
UNIMPLEMENTED_FUNC(cellSysmodule); return CELL_OK; } s32 cellSysmodule_D9B8C0EE() { UNIMPLEMENTED_FUNC(cellSysmodule); return CELL_OK; } s32 cellSysmodule_1A267F98() { UNIMPLEMENTED_FUNC(cellSysmodule); return CELL_OK; } DECLARE(ppu_module_manager::cellSysmodule)("cellSysmodule", []() { REG_FUNC(cellSysmodule, cellSysmoduleInitialize); REG_FUNC(cellSysmodule, cellSysmoduleFinalize); REG_FUNC(cellSysmodule, cellSysmoduleSetMemcontainer); REG_FUNC(cellSysmodule, cellSysmoduleLoadModule); REG_FUNC(cellSysmodule, cellSysmoduleUnloadModule); REG_FUNC(cellSysmodule, cellSysmoduleIsLoaded); REG_FUNC(cellSysmodule, cellSysmoduleGetImagesize); REG_FUNC(cellSysmodule, cellSysmoduleFetchImage); REG_FNID(cellSysmodule, 0xB498BF77, cellSysmodule_B498BF77); REG_FNID(cellSysmodule, 0xD9B8C0EE, cellSysmodule_D9B8C0EE); REG_FNID(cellSysmodule, 0x1A267F98, cellSysmodule_1A267F98); });