Merge pull request #3981 from Kikoarl/feat/sysmodule-audiopropagation-module-id

feat(libSceSysmodule): register libSceAudioPropagation module ID (0x120)
This commit is contained in:
Dean 2026-10-12 21:36:45 +13:00 committed by GitHub
commit 286d133a03
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 1 deletions

View File

@ -12,9 +12,11 @@ if(BUILD_TESTING)
add_custom_target(guest_sysmodule_runtime
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
"$<TARGET_FILE:libSceFiber>" "${guestSysmoduleRun}/libs/libSceFiber.prx"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
"$<TARGET_FILE:libSceAudioPropagation>" "${guestSysmoduleRun}/libs/libSceAudioPropagation.prx"
VERBATIM
)
add_dependencies(guest_sysmodule_runtime libSceFiber)
add_dependencies(guest_sysmodule_runtime libSceFiber libSceAudioPropagation)
add_dependencies(guest_sysmodule_tests guest_sysmodule_runtime)
add_test(NAME guest_sysmodule COMMAND guest_sysmodule_tests)
set_tests_properties(guest_sysmodule PROPERTIES WORKING_DIRECTORY ${guestSysmoduleRun})

View File

@ -156,6 +156,7 @@ inline const std::unordered_map<std::uint32_t, const char*> kModuleTable = {
{0x00000115, "libSceNpCppWebApi"},
{0x00000116, "libSceHubAppUtil"},
{0x0000011a, "libSceNpPartner001"},
{0x00000120, "libSceAudioPropagation"},
{0x0000012f, "libSceFontGs"},
{0x00000135, "libSceFontGsm"},
{0x00000138, "libSceNpPartnerSubscription"},

View File

@ -177,4 +177,22 @@ int main() {
Require(symbol != nullptr);
Require(sceSysmoduleUnloadModule(kFiberModuleId) == 0);
Require(sceSysmoduleGetModuleHandleInternal(kFiberModuleId, &handle) == kModuleUnloaded);
constexpr std::uint16_t kAudioPropagationModuleId = 0x0120;
std::int32_t audioPropagationHandle = -1;
Require(sceSysmoduleGetModuleHandleInternal(kAudioPropagationModuleId, &audioPropagationHandle) == kModuleUnloaded);
Require(audioPropagationHandle == -1);
Require(sceSysmoduleIsLoaded(kAudioPropagationModuleId) == kModuleUnloaded);
Require(sceSysmoduleLoadModule(kAudioPropagationModuleId) == 0);
Require(sceSysmoduleIsLoaded(kAudioPropagationModuleId) == 0);
Require(sceSysmoduleGetModuleHandleInternal(kAudioPropagationModuleId, &audioPropagationHandle) == 0);
Require(audioPropagationHandle >= 0);
void* audioPropagationSymbol = nullptr;
Require(sceKernelDlsym(audioPropagationHandle, "sceAudioPropagationSystemCreate", &audioPropagationSymbol) == 0);
Require(audioPropagationSymbol != nullptr);
Require(sceSysmoduleUnloadModule(kAudioPropagationModuleId) == 0);
Require(sceSysmoduleIsLoaded(kAudioPropagationModuleId) == kModuleUnloaded);
Require(sceSysmoduleGetModuleHandleInternal(kAudioPropagationModuleId, &audioPropagationHandle) == kModuleUnloaded);
}