feat(libSceHttp2): export sceHttp2WebSocketSetPingInterval
Export sceHttp2WebSocketSetPingInterval (YfaXPnc8PJE) in libSceHttp2. Resolves unresolved ELF import in Palworld (PPSA23126, Issue #2648) bundled libdiscord_partner_sdk.prx.
This commit is contained in:
parent
abdad2a574
commit
fb2b7b8dce
|
|
@ -318,4 +318,10 @@ int APS5_VABI sceHttp2WebSocketSendDataMessageAsync() {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceHttp2WebSocketSetPingInterval(int req_id, uint32_t interval_ms) {
|
||||
(void)req_id;
|
||||
(void)interval_ms;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ struct Http2MemoryPoolStats {
|
|||
extern "C" {
|
||||
int APS5_VABI sceHttp2GetMemoryPoolStats(int, Http2MemoryPoolStats*);
|
||||
int APS5_VABI sceHttp2SetResolveRetry(int, std::int32_t);
|
||||
int APS5_VABI sceHttp2WebSocketSetPingInterval(int, std::uint32_t);
|
||||
}
|
||||
|
||||
static void Require(bool value) { if (!value) std::abort(); }
|
||||
|
|
@ -67,6 +68,7 @@ int main() {
|
|||
Require(request > 0);
|
||||
Require(sceHttp2SetCookieBox(request, other) == 0);
|
||||
Require(sceHttp2SetRequestNoContentLength(request) == 0);
|
||||
Require(sceHttp2WebSocketSetPingInterval(request, 30000) == 0);
|
||||
Require(sceHttp2CookieFlush(context) == 0);
|
||||
Require(sceHttp2SendRequest(request, nullptr, 0) == static_cast<int>(0x80436063));
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Throughout the project, every function at every stage either **does exactly what
|
|||
- [libSceAudio3d](../../core/libs/prx/libSceAudio3d/Export.cpp) - the port produces no sound: objects can be reserved and `sceAudio3dObjectSetAttributes` accepts their attributes, but the library has no bed exports or mixing to give them audio, the attributes have no effect and `sceAudio3dPortPush` only paces the queue at `granularity` samples per frame at 48 kHz. `sceAudio3dPortSetAttribute` accepts the late reverb level and the downmix spread attributes and ignores them. `sceAudio3dObjectSetAttributes` validates the port, the reserved object and the attribute array (an object id that was never reserved returns the invalid-object error, while shadPS4 returns success for it and the error only for a released object; neither is measured on a console), treating the reset-state attribute as valid with a null value and requiring a value for the others; the attribute identifiers and the value of each are not interpreted. `sceAudio3dPortFlush` drops the frames queued by `sceAudio3dPortAdvance` instead of mixing and submitting them to an output, as there is no output
|
||||
- [libSceTextToSpeech2](../../core/libs/prx/libSceTextToSpeech2/Export.cpp) has no speech engine: `sceTextToSpeech2Initialize` fails and the other exports throw. PPSA01317 skips its narration set-up when initialization fails
|
||||
- [libSceAvPlayer](../../core/libs/prx/libSceAvPlayer/Export.cpp): `sceAvPlayerSetLogCallback` accepts a callback that is never called, as the player produces no log messages, and `sceAvPlayerSetAvailableBandwidth` has no effect, as it governs HLS sources, which `sceAvPlayerAddSource` does not implement.
|
||||
- [libSceHttp2](../../core/libs/prx/libSceHttp2/Export.cpp) - no request reaches the network, so `sceHttp2SetMinSslVersion` has no TLS connection to restrict and returns success for any `id`, like `sceHttp2SslEnableOption` (prosper returns the invalid-id error for an unknown one)
|
||||
- [libSceHttp2](../../core/libs/prx/libSceHttp2/Export.cpp) - no request reaches the network, so `sceHttp2SetMinSslVersion` has no TLS connection to restrict and returns success for any `id`, like `sceHttp2SslEnableOption` (prosper returns the invalid-id error for an unknown one); `sceHttp2WebSocketSetPingInterval` records no ping interval and returns success without network activity, unblocking Palworld (PPSA23126)
|
||||
- [libSceNpTrophy2](../../core/libs/prx/libSceNpTrophy2/src/GameInfo.cpp): `sceNpTrophy2RegisterUnlockCallback` accepts a callback that is never called, as no trophy is ever unlocked, and `sceNpTrophy2UnregisterUnlockCallback` only returns success.
|
||||
- [sceAvPlayerSetTrickSpeed](../../core/libs/prx/libSceAvPlayer/src/Source.cpp) (libSceAvPlayer) with a negative speed runs the clock backwards but delivers no frames; when a forward speed is set again, playback resumes from the rewound time.
|
||||
- [sceRudpActivate](../../core/libs/prx/libSceRudp/Export.cpp) (libSceRudp) - there is no reliable-UDP stack on the host to activate, so it returns success without doing anything, as [shadPS4](https://github.com/shadps4-emu/shadPS4/blob/main/src/core/libraries/rudp/rudp.cpp) does for its own `sceRudpActivate`. PPSA01325 calls it with no arguments during start-up; what the console activates, and whether it reports an error before `sceRudpInit`, is unverified
|
||||
|
|
|
|||
Loading…
Reference in New Issue