mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-18 23:07:07 -05:00
feat(libSceSysmodule): register libSceProprietaryVoiceChatHelperPrx module id 0x132
This commit is contained in:
1 parent
64b57d1b02
commit
16df3d1536
3 files changed
+13
No files matched your search
@@ -160,6 +160,7 @@ inline const std::unordered_map<std::uint32_t, const char*> kModuleTable = {
|
||||
{0x0000011a, "libSceNpPartner001"},
|
||||
{0x00000120, "libSceAudioPropagation"},
|
||||
{0x0000012f, "libSceFontGs"},
|
||||
{0x00000132, "libSceProprietaryVoiceChatHelperPrx"},
|
||||
{0x00000135, "libSceFontGsm"},
|
||||
{0x00000137, "libScePsml"},
|
||||
{0x00000138, "libSceNpPartnerSubscription"},
|
||||
|
||||
@@ -52,6 +52,7 @@ constexpr std::uint32_t kInternalFlag = 0x80000000u;
|
||||
constexpr std::uint16_t kAcmModuleId = 0x010b;
|
||||
constexpr std::uint16_t kTrophy2ModuleId = 0x0110;
|
||||
constexpr std::uint16_t kVoiceChatModuleId = 0x0114;
|
||||
constexpr std::uint16_t kProprietaryVoiceChatHelperModuleId = 0x0132;
|
||||
constexpr std::uint16_t kPsmlModuleId = 0x0137;
|
||||
constexpr std::uint32_t kAgcModuleId = 0x80000094;
|
||||
|
||||
@@ -264,6 +265,13 @@ int main() {
|
||||
Require(sceSysmoduleUnloadModule(kPsmlModuleId) == 0);
|
||||
Require(sceSysmoduleIsLoaded(kPsmlModuleId) == kModuleUnloaded);
|
||||
|
||||
Require(sceSysmoduleIsLoaded(kProprietaryVoiceChatHelperModuleId) == kModuleUnloaded);
|
||||
Require(sceSysmoduleUnloadModule(kProprietaryVoiceChatHelperModuleId) == kModuleUnloaded);
|
||||
Require(sceSysmoduleLoadModule(kProprietaryVoiceChatHelperModuleId) == 0);
|
||||
Require(sceSysmoduleIsLoaded(kProprietaryVoiceChatHelperModuleId) == 0);
|
||||
Require(sceSysmoduleUnloadModule(kProprietaryVoiceChatHelperModuleId) == 0);
|
||||
Require(sceSysmoduleIsLoaded(kProprietaryVoiceChatHelperModuleId) == kModuleUnloaded);
|
||||
|
||||
Require(sceSysmoduleUnloadModuleInternal(kAgcModuleId) == kModuleUnloaded);
|
||||
Require(sceSysmoduleLoadModuleInternal(kAgcModuleId) == 0);
|
||||
Require(sceSysmoduleLoadModuleInternal(kAgcModuleId) == 0);
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
- [sceSysmoduleIsLoaded, sceSysmoduleLoadModule, sceSysmoduleUnloadModule](../../../core/libs/prx/libSceSysmodule/Export.cpp) (libSceSysmodule) accept a module id missing from the module table: they log it and return 0 without loading anything, so `sceSysmoduleIsLoaded` reports an unknown module as loaded and unloading it succeeds, because titles that load or unload such an id aborted otherwise. The internal variants (`sceSysmoduleLoadModuleInternal`, `sceSysmoduleUnloadModuleInternal`, `sceSysmoduleLoadModuleInternalWithArg`, `sceSysmoduleGetModuleHandleInternal`) throw for an unknown id. What the console returns for an id it does not know is not verified.
|
||||
|
||||
### Known modules
|
||||
|
||||
- [kModuleTable](../../../core/libs/prx/libSceSysmodule/ModuleTable.hpp) (libSceSysmodule) - module ID 0x00000132 maps to `libSceProprietaryVoiceChatHelperPrx` as verified in [#5017](https://github.com/boykopovar/AnyPS5/pull/5017) and reported in Discussion [#6344](https://github.com/boykopovar/AnyPS5/discussions/6344) for EA SPORTS FC 27 (PPSA34015).
|
||||
|
||||
### Functional
|
||||
|
||||
- [sceSysmoduleGetModuleInfoForUnwind](../../../core/libs/prx/libSceSysmodule/Export.cpp) (libSceSysmodule) - on Windows the region and file name of an address inside a loaded image are cached after the first lookup, because `VirtualQuery` on a large image section is slow. An entry is used only while the loader still reports the same image for the address (same base, time stamp and size). A page protection change inside the image after the first lookup, which would split or merge the region `VirtualQuery` reports, is not noticed. Addresses outside loaded images are queried every time
|
||||
Reference in new issue
Block a user