From b7311bd6dbea76af058b05849c69406f2a7d744e Mon Sep 17 00:00:00 2001 From: Ani Date: Thu, 29 Jan 2026 04:27:30 +0100 Subject: [PATCH] hle: Register missing functions --- rpcs3/Emu/Cell/Modules/cellFont.cpp | 7 ++++++ rpcs3/Emu/Cell/Modules/cellFs.cpp | 14 ++++++++++++ rpcs3/Emu/Cell/Modules/cellSaveData.cpp | 14 +++++++++++- rpcs3/Emu/Cell/Modules/cellSpurs.cpp | 8 +++++++ rpcs3/Emu/Cell/Modules/cellSysmodule.cpp | 28 ++++++++++++++++++++++++ rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp | 6 +++++ 6 files changed, 76 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/Cell/Modules/cellFont.cpp b/rpcs3/Emu/Cell/Modules/cellFont.cpp index c960375c0c..348a2869fc 100644 --- a/rpcs3/Emu/Cell/Modules/cellFont.cpp +++ b/rpcs3/Emu/Cell/Modules/cellFont.cpp @@ -2228,6 +2228,12 @@ error_code cellFontStatic() return CELL_OK; } +error_code cellFontsetUSleep() +{ + cellFont.todo("cellFontsetUSleep()"); + return CELL_OK; +} + DECLARE(ppu_module_manager::cellFont)("cellFont", []() { @@ -2315,4 +2321,5 @@ DECLARE(ppu_module_manager::cellFont)("cellFont", []() REG_FUNC(cellFont, cellFontGraphicsGetLineRGBA); REG_FUNC(cellFont, cellFontControl); REG_FUNC(cellFont, cellFontStatic); + REG_FUNC(cellFont, cellFontsetUSleep); }); diff --git a/rpcs3/Emu/Cell/Modules/cellFs.cpp b/rpcs3/Emu/Cell/Modules/cellFs.cpp index bff73f530b..1aa83390ae 100644 --- a/rpcs3/Emu/Cell/Modules/cellFs.cpp +++ b/rpcs3/Emu/Cell/Modules/cellFs.cpp @@ -1034,6 +1034,18 @@ s32 cellFsUnregisterL10nCallbacks() return CELL_OK; } +s32 cellFsGetDirent() +{ + cellFs.todo("cellFsGetDirent()"); + return CELL_OK; +} + +s32 cellFsGetDirentCount() +{ + cellFs.todo("cellFsGetDirentCount()"); + return CELL_OK; +} + DECLARE(ppu_module_manager::cellFs)("sys_fs", []() { REG_FUNC(sys_fs, cellFsAccess); @@ -1065,6 +1077,8 @@ DECLARE(ppu_module_manager::cellFs)("sys_fs", []() REG_FUNC(sys_fs, cellFsGetBlockSize); REG_FUNC(sys_fs, cellFsGetBlockSize2); REG_FUNC(sys_fs, cellFsGetDirectoryEntries); + REG_FUNC(sys_fs, cellFsGetDirent); + REG_FUNC(sys_fs, cellFsGetDirentCount); REG_FUNC(sys_fs, cellFsGetFreeSize); REG_FUNC(sys_fs, cellFsGetPath); REG_FUNC(sys_fs, cellFsLink); diff --git a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp index bb99a1f6d6..a4d160fdcb 100644 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp @@ -2514,6 +2514,18 @@ error_code cellSaveDataUserFixedDelete(ppu_thread& ppu, u32 userId, PSetList set return savedata_op(ppu, SAVEDATA_OP_FIXED_DELETE, 0, vm::null, 1, setList, setBuf, vm::null, funcFixed, vm::null, vm::null, container, 6, userdata, userId, funcDone); } +error_code cellSaveDataGetEnableOverlay() +{ + cellSaveData.todo("cellSaveDataGetEnableOverlay()"); + + // auto& manager = g_fxo->get(); + // manager.enable_overlay; + + // TODO + + return CELL_OK; +} + void cellSaveDataEnableOverlay(s32 enable) { cellSaveData.notice("cellSaveDataEnableOverlay(enable=%d)", enable); @@ -2521,7 +2533,6 @@ void cellSaveDataEnableOverlay(s32 enable) manager.enable_overlay = enable != 0; } - // Functions (Extensions) error_code cellSaveDataListDelete(ppu_thread& ppu, PSetList setList, PSetBuf setBuf, PFuncList funcList, PFuncDone funcDone, u32 container, vm::ptr userdata) { @@ -2678,6 +2689,7 @@ void cellSysutil_SaveData_init() REG_VAR(cellSysutil, g_savedata_context).flag(MFF_HIDDEN); // libsysutil functions: + REG_FUNC(cellSysutil, cellSaveDataGetEnableOverlay); REG_FUNC(cellSysutil, cellSaveDataEnableOverlay); REG_FUNC(cellSysutil, cellSaveDataDelete2); diff --git a/rpcs3/Emu/Cell/Modules/cellSpurs.cpp b/rpcs3/Emu/Cell/Modules/cellSpurs.cpp index c5defbd048..7caee24849 100644 --- a/rpcs3/Emu/Cell/Modules/cellSpurs.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSpurs.cpp @@ -1438,6 +1438,13 @@ s32 cellSpursInitializeWithAttribute2(ppu_thread& ppu, vm::ptr spurs, attr->swlIsPreem); } +// Initialise SPURS +s32 cellSpursInitializeForSpuSharing() +{ + cellSpurs.todo("cellSpursInitializeForSpuSharing()"); + return CELL_OK; +} + /// Initialise SPURS attribute s32 _cellSpursAttributeInitialize(vm::ptr attr, u32 revision, u32 sdkVersion, u32 nSpus, s32 spuPriority, s32 ppuPriority, b8 exitIfNoWork) { @@ -5390,6 +5397,7 @@ DECLARE(ppu_module_manager::cellSpurs)("cellSpurs", [](ppu_static_module* _this) REG_FUNC(cellSpurs, cellSpursInitialize); REG_FUNC(cellSpurs, cellSpursInitializeWithAttribute); REG_FUNC(cellSpurs, cellSpursInitializeWithAttribute2); + REG_FUNC(cellSpurs, cellSpursInitializeForSpuSharing); REG_FUNC(cellSpurs, cellSpursFinalize); REG_FUNC(cellSpurs, _cellSpursAttributeInitialize); REG_FUNC(cellSpurs, cellSpursAttributeSetMemoryContainerForSpuThread); diff --git a/rpcs3/Emu/Cell/Modules/cellSysmodule.cpp b/rpcs3/Emu/Cell/Modules/cellSysmodule.cpp index 5548a1bbb4..41eae6bb82 100644 --- a/rpcs3/Emu/Cell/Modules/cellSysmodule.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSysmodule.cpp @@ -406,6 +406,30 @@ error_code cellSysmoduleIsLoadedEx() return CELL_OK; } +error_code cellSysmoduleLoadModuleFile() +{ + UNIMPLEMENTED_FUNC(cellSysmodule); + return CELL_OK; +} + +error_code cellSysmoduleUnloadModuleFile() +{ + UNIMPLEMENTED_FUNC(cellSysmodule); + return CELL_OK; +} + +error_code cellSysmoduleSetDebugmode() +{ + UNIMPLEMENTED_FUNC(cellSysmodule); + return CELL_OK; +} + +error_code cellSysmoduleSetInternalmode() +{ + UNIMPLEMENTED_FUNC(cellSysmodule); + return CELL_OK; +} + DECLARE(ppu_module_manager::cellSysmodule)("cellSysmodule", []() { REG_FUNC(cellSysmodule, cellSysmoduleInitialize); @@ -421,4 +445,8 @@ DECLARE(ppu_module_manager::cellSysmodule)("cellSysmodule", []() REG_FUNC(cellSysmodule, cellSysmoduleUnloadModuleEx); REG_FUNC(cellSysmodule, cellSysmoduleLoadModuleEx); REG_FUNC(cellSysmodule, cellSysmoduleIsLoadedEx); + REG_FUNC(cellSysmodule, cellSysmoduleLoadModuleFile); + REG_FUNC(cellSysmodule, cellSysmoduleUnloadModuleFile); + REG_FUNC(cellSysmodule, cellSysmoduleSetDebugmode); + REG_FUNC(cellSysmodule, cellSysmoduleSetInternalmode); }); diff --git a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp index 3407778d64..803d174549 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp @@ -1529,6 +1529,11 @@ error_code sceNpTrophyGetTrophyIcon(u32 context, u32 handle, s32 trophyId, vm::p return CELL_OK; } +error_code sceNpTrophyNetworkSync() +{ + UNIMPLEMENTED_FUNC(sceNpTrophy); + return CELL_OK; +} DECLARE(ppu_module_manager::sceNpTrophy)("sceNpTrophy", []() { @@ -1553,4 +1558,5 @@ DECLARE(ppu_module_manager::sceNpTrophy)("sceNpTrophy", []() REG_FUNC(sceNpTrophy, sceNpTrophyGetTrophyDetails); REG_FUNC(sceNpTrophy, sceNpTrophyGetTrophyInfo); REG_FUNC(sceNpTrophy, sceNpTrophyGetGameIcon); + REG_FUNC(sceNpTrophy, sceNpTrophyNetworkSync); });