Commit Graph
10207 Commits
Author SHA1 Message Date
Adrià b44f8ab346 Merge pull request #12306 from edubox/feat/http2-gzip
feat(http2): inflate gzip response bodies
2026-10-30 16:20:45 +01:00
Kyon 0009809c1b Merge remote-tracking branch 'origin/main' into feat/content-search-320-exports 2026-10-30 15:14:49 +00:00
KernelPanicNT 41c1f7881a feat(libSceNpTus): create NpId title contexts with sceNpTusCreateNpTitleCtx
sceNpTusCreateNpTitleCtx makes the same checks as sceNpTssCreateNpTitleCtx,
which already follows shadPS4's sceNpTusCreateNpTitleCtx: a null npId is
INSUFFICIENT_ARGUMENT, service label 0xFFFFFFFF is INVALID_ARGUMENT, and
otherwise it creates a context in the shared 32-context table. The
signature is shadPS4's and fpPS4's.
2026-10-30 15:06:50 +00:00
BunnyFlandClaude Opus 5.5 4f03e76620 Merge the corrected codec activation branch (#13322) into the PS-button branch
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 16:01:39 +01:00
BunnyFlandClaude Opus 5.5 ae6ad5f31d docs(libSceSrcUtl): state where the implemented calls come from
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 16:00:42 +01:00
Celegans12 f9b776d5fb feat(npcommon): add sandbox mode inventory exports
Resolve two named firmware imports in the existing NP Common provider.
Match both identities to the pinned 13.60 inventory and rehashed NIDs.
Keep parameterless declarations as import-resolution placeholders only.
Throw immediately instead of guessing sandbox mode values or behavior.
Record the unknown signatures and behavior in per-library technical debt.
AI-assisted: yes
2026-10-30 15:55:22 +01:00
BunnyFlandClaude Opus 5.5 2087b15d4d feat(libscenpcommon): implement the JSON parser family
sceNpJsonParse, sceNpJsonParseBuf and sceNpJsonParseEx with their
Init calls, and the sceNpServerErrorJson exports, follow firmware
13.42: a resumable byte-by-byte parser that walks a rule table level
by level (member keys compared without case, array elements, keyless
wildcard entries until the first unmatched container, a descend flag)
and calls the caller's handler for each matched container, key and
value. The Buf form uses caller key and value buffers, and the Ex form
also reports the stream offset of each event, delivers long strings
and numbers in pieces and reports everything when no rules are given.
The server error calls read error.code (or a top-level code for the
Multi form) and fall back to the HTTP status.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:55:02 +01:00
Kyon c3e17c74a7 feat(libSceJxr): expose image interface identifiers 2026-10-30 14:52:43 +00:00
Kyon a1007a0713 Merge remote-tracking branch 'origin/main' into feat/jxr-guid-data-320 2026-10-30 14:51:29 +00:00
Adrià 2614f409dc Merge pull request #12953 from frankea/feat/acm-batch-job-priority
feat(libSceAcm): encode sceAcmBatchJobPriority jobs
2026-10-30 15:45:46 +01:00
Adrià 01069f4d2b Merge pull request #12954 from hugodearaujo/fix/audioout2-blocking-push
fix(libSceAudioOut): return from a blocking AudioOut2 push once the queue has room
2026-10-30 15:45:36 +01:00
DeveshB-1 5553cbd447 fix(libkernel): return EFAULT from sceKernelWriteThrottlingStatus for an unwritable store 2026-10-30 20:14:03 +05:30
BunnyFlandClaude Opus 5.5 004b47eda7 fix(libkernel_sys): accept all 128 title workaround bits and add the misspelled export
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:41:32 +01:00
DeveshB-1 32c4ce6484 docs(libkernel): record unwritable store fallback for sceKernelUuidCreate and sceKernelCreateUuidV4 2026-10-30 20:10:52 +05:30
Adrià 7a5caa1370 docs(libkernel_sys): mark EFAULT for sceKernelGetCompiledSdkVersion as an unmeasured host-safety fallback 2026-10-30 15:37:36 +01:00
DeveshB-1 7b00701824 fix(libkernel_sys): return EFAULT from sceKernelGetCompiledSdkVersion for an unwritable store 2026-10-30 15:37:31 +01:00
MarcZX10 726dff9e42 docs(libs): SceAvPlayerVideoEx frame_rate is set from the stream, framerate stays zero
Old claim: the frame rate field of SceAvPlayerVideoEx is left zero in frame and stream info.

The code: framerate (uint32, offset 16) is never written, so it stays zero. frame_rate (double, offset 48) is set in both paths from av_guess_frame_rate: stream info in createStreamInfoEx and frame info in the decoded-frame path.

Permalinks at b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAvPlayer/src/Source.cpp#L671
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAvPlayer/src/Source.cpp#L1084
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/SceTypes.hpp#L764
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/SceTypes.hpp#L774
2026-10-30 14:23:26 +00:00
Adrià 6154580567 Merge pull request #12968 from GiannisG1/test/unclamped-blend-skip-without-formatless-reads
test(agc): skip the unclamped normalized blend test without shaderStorageImageReadWithoutFormat
2026-10-30 15:21:40 +01:00
Celegans12 5d1a05bb36 feat(libSceFontGs): add export placeholders
AI-assisted: yes
2026-10-30 14:20:50 +00:00
MarcZX10 31c3be357f docs(libSceGic): the only export is sceGicGetValue
Old claim: the entry names "[ and sceGicGetValue]", a link with an empty first name, and says "names and NIDs".

What the code does: libSceGic defines one export, sceGicGetValue, a parameterless declaration that calls NotImplemented_nid_no_patch. The entry now names it alone and speaks of the name and NID in the singular. The inventory statement is unchanged.

Permalink at the audited SHA:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceGic/Export.cpp#L9-L12
2026-10-30 14:20:26 +00:00
MarcZX10 0b30ab25ac docs(env): APS5_TEST_DIRECT_READBACK is a presence switch
Old claim: the Kind column says "set", a label no other row uses.

What the code does: the test only checks whether the variable is set
(std::getenv(...) != nullptr); the value is not read.

Permalinks at audited SHA b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAgcDriver/tests/execution/LayeredVolumeDraw.cpp#L273
2026-10-30 14:20:21 +00:00
MarcZX10 90373c8136 docs(architecture): link the host import budget entry to its library debt file
Old claim: the live-imports paragraph in the Graphics section pointed to
"TechnicalDebt, Host import windows and budget". That entry is not on the
TechnicalDebt page.

What the code does: the entry sits in the libSceAgcDriver debt file as a
bullet (not a heading), and TechnicalDebt.md says library entries belong in
docs/dev/debt/, so the reference now names that file.

Permalinks at audited SHA b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/docs/dev/debt/libSceAgcDriver.md#L278
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/docs/dev/TechnicalDebt.md#L3
2026-10-30 14:19:49 +00:00
AdriàandClaude Sonnet 5.5 2ad46833a7 docs(libSceSystemService): drop the activation entry the codec answers make false
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 15:19:05 +01:00
BunnyFlandClaude Opus 5.5 d49bd4db6f feat(libscesrcutl): add the handle size and priority calls
Implement sceSrcUtilityGetHandleSize, sceSrcUtilitySetPriority and
sceSrcUtilityGetPriority from the firmware 13.42 module, and record in
the debt file that the remaining calls drive AJM codec 19, which this
project's AJM does not provide.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:19:04 +01:00
BunnyFlandClaude Opus 5.5 126a40816f feat(libSceSystemService): answer the codec activation calls as firmware 13.42 does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:18:59 +01:00
Kyon eb437fae38 docs(libSceJxr): record remaining data export gaps 2026-10-30 14:17:18 +00:00
Kyon b2c89c1db5 docs(libSceJxr): separate GUID evidence from callable debt 2026-10-30 14:14:38 +00:00
hypermoistandClaude Opus 5.5 10029b7fa8 feat(libSceXml): implement the value types and handle constructors
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 03:13:42 +13:00
Kyon 8f6937e954 feat(libSceJxr): expose seven more pixel format GUIDs 2026-10-30 14:12:43 +00:00
BunnyFlandClaude Opus 5.5 d42d595b51 feat(libkernel_sys): implement sceKernelIsModuleLoaded
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:12:19 +01:00
MarcZX10 75974d12b6 docs(libSceVoiceChat): sceVoiceChatAbortRequest is not an offline SIGNED_OUT request
Old claim: the "Unknown function info" entry lists sceVoiceChatAbortRequest among the
requests that return SIGNED_OUT (0x80550006) offline.

What the code does: sceVoiceChatAbortRequest ignores its argument and returns 0, not
SIGNED_OUT; the other sceVoiceChatRequest* exports return offlineRequest(), which logs
and returns SIGNED_OUT. The Silent stubs entry already says AbortRequest returns 0.

Permalinks at audited SHA b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVoiceChat/Export.cpp#L74-L77
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceVoiceChat/Export.cpp#L29-L32
2026-10-30 14:10:28 +00:00
MarcZX10 8b274e2932 docs(libSceSsl): pool exhaustion throws bad_alloc on AnyPS5, not SSL_ERROR_OUT_OF_MEMORY
Old claim: a 16 KiB pool fails the connect with SSL_ERROR_OUT_OF_MEMORY
(0x809517D5) "there and here", that is on the console and in AnyPS5.

What the code does: an exhausted context pool only sets currentPoolExhausted
in PoolCalloc, and CheckBackend (and the handshake paths that test the flag)
throw std::bad_alloc. No path returns 0x809517D5; the repository defines no
such constant. The console measurement stays as it was.

Permalinks at b1b5353cfc:
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceSsl/Export.cpp#L108-L122
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceSsl/Export.cpp#L171-L173
2026-10-30 14:09:09 +00:00
MarcZX10 264e371850 docs(dev): document two test-only environment names found by the scanner
The corrected scanner now finds two names that the table did not list, both read by test programs: ANYPS5_GUEST_ENV_TEST_4C27 at core/libs/tests/GuestEnvironment.cpp#L29 (https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/tests/GuestEnvironment.cpp#L29) and APS5_LOAD_EXEC_STANDARD_ERROR at core/libs/tests/GuestSystemServiceLoadExecStandardError.cpp#L72 (https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/tests/GuestSystemServiceLoadExecStandardError.cpp#L72). Both are read by getenv through a local or constant name, which the old scanner did not follow, so --check reported no undocumented name before this change.
2026-10-30 14:08:37 +00:00
Kyon 3073ac2cde feat(libSceJxr): expose 77 pixel format GUIDs 2026-10-30 14:07:59 +00:00
Celegans12 86fd8f6770 feat(libSceRemoteplay): add input device export placeholders
AI-assisted: yes
2026-10-30 14:07:42 +00:00
MarcZX10 9253494692 docs(libSceFont): glyph attribute accepts only 0x10 and 0x11
Old claim: every glyph keeps an opaque int attribute whose valid values are unknown, and an attribute never set is 0.

What the code does: sceFontGlyphDefineAttribute returns SCE_FONT_ERROR_INVALID_PARAMETER for any value other than 0x10 or 0x11, stores the value in one bit of the glyph flags and returns the previous 0x10 or 0x11, so a glyph never set reads 0x10. sceFontGlyphGetAttribute returns 0x10 or 0x11 and ignores its attribute argument. The handle pair sceFontDefineAttribute and sceFontGetAttribute is unchanged: an int that reads 0 when never set.

Permalinks at the audited SHA:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceFont/src/Render.cpp#L527-L549
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceFont/src/Style.cpp#L147-L162
2026-10-30 14:05:33 +00:00
ntamas94andClaude Opus 4.8 d29c2d79dc docs(libSceAudiodec): mark the iBwPcm rows as a PS4 10.71 measurement, PS5 stays 13.60
Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-10-30 15:04:40 +01:00
MarcZX10 be824022ad docs(debt): record the hold and the keyboard rule as AnyPS5 choices
The 500 ms hold and the rule that keyboard and mouse need a bound controller
in controller mode are AnyPS5 choices; the console's reaction to a removed
pad is not measured.
2026-10-30 14:03:58 +00:00
Kyon 9e96bbe082 Merge remote-tracking branch 'origin/main' into feat/cprm-320-exports 2026-10-30 14:03:35 +00:00
MarcZX10 64c4ffb3d7 docs(debt): record user 0 logout on controller removal as unmeasured
The controller mode logs the initial user out when its controller is removed
and back in when it returns, after a hold AnyPS5 chooses. What the console
does for the initial user and which events it sends are not measured.
2026-10-30 14:03:35 +00:00
MarcZX10 ae8eadb71a docs(debt): record the withdrawn port 0 read as unmeasured
Names the zeroed read of a withdrawn port 0 under the controller mode, its
source (shadPS4 at a pinned commit), and what the console returns for a
removed controller, which is not measured.
2026-10-30 14:03:34 +00:00
MarcZX10 16a364a9da docs(debt): note that port 0 reports its connection state in controller mode
scePadGetControllerInformation answers connected = true on every port in the
default mode; under ANYPS5_PAD_PORT0_STATE=controller port 0 answers its
connection state. The console's answer is not measured in either case.
2026-10-30 14:03:34 +00:00
Kyon 6627467b0a docs(libCprm): clarify unresolved data relocations 2026-10-30 14:03:28 +00:00
MarcZX10 31d5d4e297 docs(env): document ANYPS5_PAD_PORT0_STATE
Adds the row for the port 0 connection mode read when the pad input starts.
2026-10-30 14:02:55 +00:00
MarcZX10 91a3cb3214 docs(libSceNpSessionSignaling): document the NotImplemented memory and statistics stubs
Old claim: the debt document names no entry for sceNpSessionSignalingGetMemoryInfo or
sceNpSessionSignalingGetConnectionStatistics.

What the code does: both exports call NotImplemented_nid_no_patch and return 0 without
touching their output pointer, so they are unimplemented stubs that the document should list.

Code at b1b5353cfc:
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceNpSessionSignaling/Export.cpp#L193-L201
Prototypes:
https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceNpSessionSignaling/include/Api.hpp#L100-L101
2026-10-30 14:02:28 +00:00
Kyon c2f138e3a5 feat(libSceGnmDriverForNeoMode): declare 20 callable exports 2026-10-30 14:01:24 +00:00
MarcZX10 de0b4c4163 docs(libSceAudioOut): record the AudioOut2 main output as debt
A context's main host device is not reopened when the host stops it, a
gap the branch does not fix. The console's behaviour is unmeasured.
2026-10-30 14:00:37 +00:00
MarcZX10 d94ae4c58c docs(libSceAudioOut): record the host output reopen as debt
The reopen of a stopped host output has no console counterpart to test
against, so its guest-visible behaviour is recorded as unmeasured.
2026-10-30 14:00:24 +00:00
Roojool a6d1bcbd12 docs(shader): separate comparison limits from shared lowering 2026-10-30 19:29:38 +05:30
5a32581256 fix(shader): round emulated array sampling half to even
Carry the RoundEven and unordered NOT_EQUAL fixes from #907, with
ThisIsAkill's invitation, onto the current constant-zero comparison path.
Keep TRUNC_COORD accepted for that path and retain the newer format rules.

Exercise array rounding through converted unorm sampling, where selecting
the wrong layer changes the result. Preserve zero comparisons for half-float
NaNs, signed zero, GREATER, NOT_EQUAL and TRUNC_COORD. Record the inherited
RDNA2 measurement basis and the limits of these host tests.

Co-Authored-By: Akhil Moola <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:27:47 +05:30