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
BunnyFl and Claude 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
BunnyFl and Claude 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
BunnyFl and Claude 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
BunnyFl and Claude 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à and Claude 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
BunnyFl and Claude 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
BunnyFl and Claude 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
hypermoist and Claude 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
BunnyFl and Claude 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
ntamas94 and Claude 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