The firmware 4.03 module skips the entitlement label padding check in
sceAppContentCheckBundleLicenseOnDisc below SDK 0x03500000, not
0x01500000 as dlc_emu does.
Replace 1137 NotImplemented stubs with implementations that follow the PS5 11.x OSS WebKit source: the API object model and value types, WKPreferences with PlayStation defaults, context, page, website data store and user script configuration objects, the JS* API on QuickJS-NG with libSceJsc strings, WebCore geometry, transform and color values, and WTF allocation, time, string and URL value operations. Exports whose behaviour needs the WebKit engine, the WebCore URL parser or unproven layouts stay stubs; the gaps are in docs/dev/debt/libSceNKWebKit.md.
Every export is declared once in headers reachable from the library umbrella. Allocation size, alignment and header overhead are computed with overflow checks and the try variants return null at the boundaries. tryFastMalloc, tryFastZeroedMalloc, tryFastCalloc and tryFastRealloc return WTF::TryMallocReturnValue, which is returned in memory, so they take the caller's result pointer first, store the allocation through it and return it.
The libSceJsc string exports that libSceNKWebKit calls are named with the _nid_postfix suffix, so the NID patcher renames those imports along with the exports and the patched libSceNKWebKit.prx resolves them on Linux; their NIDs are unchanged.
In firmware 13.42 sceAudio3dPortOpenEx only sets the flag that skips
the PS4-process AudioOut2 advances, which this library never makes, so
it now opens like sceAudio3dPortOpen. A PS4-process open reports an
open port before an unsupported buffer mode or bed count, as the
firmware does, and the debt entry records the advances after an open
and a push for a PS4 SDK of 0x11000000 or later.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Store sceKernelIsPs4Process at sceAudio3dInitialize as firmware 13.42
does and follow its PS4-process answers: bed write2 rejects route 1 on a
2-bed port, audio out open rejects port type 3 with param bit 17 and
checks like a PS5 process otherwise, and a repeated initialize returns
NOT_READY before the reserved check. Formats 6 and 7 throw for a PS4
process because the firmware rewrites them by PS4 SDK version, which
this project cannot read yet. Test the outputs loop and its reports.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Choose the firmware 13.42 PS5 rules or the earlier answers by
sceKernelIsPs4Process for the port open, open ex, create and bed write2
route checks, read the port id for a call report only when a call
handler is registered, as the firmware does, and report a null
parameter pointer from sceAudio3dAudioOutOutputs without pointer
arithmetic on null.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
sceAudio3dPortOpenEx, sceAudio3dPortDestroy, sceAudio3dPortGetStatus,
sceAudio3dReportRegisterHandler and sceAudio3dReportUnregisterHandler are
implemented, and sceAudio3dPortOpen, sceAudio3dPortCreate, the object
and audio out calls and the port close follow the checks of firmware
13.42's libSceAudio3d.sprx for a PS5 process.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adds the exports imported by PPSA20397 and PPSA03530 that had no
provider: Matchmaking::V1, Matches::V1, SessionManager::V1,
UserProfile::V1, TitleCloudStorage::V1, InGameCatalog::V5 domain
surfaces and the Common template instantiations over their types.
IntrusivePtr, Vector, Iterator and Transaction members follow the
layouts already implemented for the earlier titles; API verbs,
factories and transaction entry points fail
SCE_NP_WEBAPI_ERROR_NOT_SIGNED_IN as a signed-out console does;
parameter bookkeeping succeeds without state; response accessors and
vector iteration throw since a failed request produces no response.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Implement the six WTF::charactersToDouble and WTF::charactersToFloat
overloads for Latin-1 and UTF-16 input and the four static
WTF::double_conversion::StringToDoubleConverter StringToDouble and
StringToFloat overloads for char and uint16_t input, following pinned
public WebKit. One parser follows StringToIeee: the number grammar, the
772-digit cut with a sticky digit, the exponent saturation and the
processed length. charactersToDouble and charactersToFloat add
toDoubleType's leading ASCII spaces and ok/parsedLength results, map
UTF-16 code units above 0x7F to 0 and round the float overloads through
double. StringToDoubleConverter reads the code units as they are, skips
no spaces and rounds StringToFloat directly to float as Strtof does.
Null characters with a nonzero length and a null processed length throw
where WebKit faults, a decimal exponent that leaves the range of
WebKit's int throws where WebKit overflows, and a UTF-16 charactersTo*
length above UINT32_MAX throws where WebKit's conversion Vector crashes.