Commit Graph
10207 Commits
Author SHA1 Message Date
Kyon 7f2acd3b0e Merge remote-tracking branch 'origin/main' into feat/gif-parser-320-exports 2026-10-30 18:54:29 +00:00
Kyon 880ce018cb feat(libSceGifParser): declare remaining 3.20 exports 2026-10-30 18:53:56 +00:00
Kyon ecec69e2c9 Merge remote-tracking branch 'origin/main' into feat/gif-parser-320-exports 2026-10-30 18:53:27 +00:00
MarcZX10 bc37a818a0 Merge remote-tracking branch 'upstream/main' into fix/pad-port0-connected-state
# Conflicts:
#	core/libs/prx/libSceVideoOut/include/PadInput.hpp
2026-10-30 18:52:51 +00:00
Adrià b43f6a514d Merge pull request #13354 from hypermoist/feat/libSceCdlgAdIdClient-skeleton-stubs
feat(libSceCdlgAdIdClient): add skeleton library and 7 firmware 13.60 stubs
2026-10-30 19:52:43 +01:00
Adrià 0814d32375 Merge pull request #13351 from BunnyFl/feat/libkernel-title-workaround-limit
fix(libkernel_sys): accept all 128 title workaround bits and add the misspelled export
2026-10-30 19:52:35 +01:00
MarcZX10 03a4bd851e docs(libkernel): sysctlnametomib returns ENOENT for kern.smp.maxcpus, kern.stackprot, kern.sched.name and kern.timecounter.hardware
Old claim (entry 155 of docs/dev/debt/libkernel.md, second half): sysctlnametomib still throws for these four names.

What the code does: these names are only in IsUnansweredName, which the read path of sysctl uses. sysctlnametomib does not match them in TopLevelNode, its known-name table or its SystemStrings and SystemIntegers tables, so it reaches the final fall-through, sets errno to 2 (ENOENT) and returns -1 without throwing.

Permalinks at 50843f45d9:
- https://github.com/boykopovar/AnyPS5/blob/50843f45d95b60e5772f4396431f9a39b8709d72/core/libs/prx/libkernel/System/src/SystemConfiguration.cpp#L755 (sysctlnametomib)
- https://github.com/boykopovar/AnyPS5/blob/50843f45d95b60e5772f4396431f9a39b8709d72/core/libs/prx/libkernel/System/src/SystemConfiguration.cpp#L808-L809 (fall-through, ENOENT)
- https://github.com/boykopovar/AnyPS5/blob/50843f45d95b60e5772f4396431f9a39b8709d72/core/libs/prx/libkernel/System/src/SystemConfiguration.cpp#L272-L274 (names in the unanswered list)
2026-10-30 18:52:29 +00:00
MarcZX10 8ddc18f491 docs(libSceWebBrowserDialog): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:10 +00:00
MarcZX10 ac59598cc9 docs(libSceNpAuthAuthorizedAppDialog): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:10 +00:00
MarcZX10 b5a69dcf88 docs(libSceInvitationDialog): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:10 +00:00
MarcZX10 2b2487edf4 docs(libSceNpSnsFacebookDialog): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:10 +00:00
MarcZX10 a9eab48ee4 docs(libSceNpCommerce): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:09 +00:00
MarcZX10 f66baaf45b docs(libSceNpFriendListDialog): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:09 +00:00
MarcZX10 3960481e25 docs(libSceNpProfileDialog): record the unmeasured PSN notice
The debt entry says that the notice shown with ANYPS5_PSN_DIALOGS=show is
AnyPS5's, and that what the console displays for this call without PlayStation
Network is not measured.
2026-10-30 18:50:09 +00:00
MarcZX10 0ca4999296 docs(ENVIRONMENT): list ANYPS5_PSN_DIALOGS
Add the row for the mode that shows a notice when a PlayStation Network
dialog opens, with its unset and invalid behaviour. The row is in its own
libSceIme section because the variable is read in that library.
2026-10-30 18:49:35 +00:00
MarcZX10 74d5f2ce23 docs(libSceAudio3d): PortAdvance on a full queue returns NOT_READY, it does not throw
Old claim: a repeated sceAudio3dInitialize and sceAudio3dPortAdvance on a full queue
both throw.

What the code does: sceAudio3dInitialize throws (Unsupported) on a repeated call, but
sceAudio3dPortAdvance returns AUDIO3D_ERROR_NOT_READY (0x80EA0007) when the queue is
at queue_depth. The entry below this one already states that.

Permalinks at b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAudio3d/Export.cpp#L183-L189
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAudio3d/Export.cpp#L198-L202
2026-10-30 18:49:34 +00:00
MarcZX10 b6a7ea0b34 docs(libSceAmpr): silent-stub command buffer calls release emulator expansions
Old claim: sceAmprCommandBufferDestructor, sceAmprAprCommandBufferDestructor,
sceAmprAmmCommandBufferConstructor and sceAmprAmmCommandBufferDestructor return 0
without reading or changing the buffer, and the AMM constructor leaves every field
of the buffer as the caller left it.

What the code does: each of the four calls ReleaseExpandedCommandBuffer on a
non-null buffer. When the emulator has expanded that buffer's commands, the helper
frees the expansion, restores the original base and size, and resets offset and the
command count to 0. The APR destructor does not touch its gather and scatter states.

Permalinks at b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAmpr/Export.cpp#L91-L102
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAmpr/Export.cpp#L395-L400
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAmpr/Export.cpp#L503-L506
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAmpr/Export.cpp#L734-L743
2026-10-30 18:49:34 +00:00
MarcZX10 a2ee59cda8 docs(libSceAudioOut): sceAudioOut2LoInit only marks AudioOut2 initialized
Old claim: the sceAudioOut2Lo* calls, including sceAudioOut2LoInit, each forward to
their sceAudioOut2 counterpart.

What the code does: sceAudioOut2LoInit calls AudioOut2MarkInitialized and returns 0;
it does not call sceAudioOut2Initialize. sceAudioOut2InitializeEx has the same body.
The other sceAudioOut2Lo* calls named in the entry forward.

Permalinks at b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAudioOut/src/AudioOut2Low.cpp#L10-L13
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp#L17-L21
2026-10-30 18:49:34 +00:00
MarcZX10 13934153d9 docs(debt): record the unknown free-size values of the shell-core exports 2026-10-30 18:48:57 +00:00
MarcZX10 5576165355 docs(debt): record the unmeasured 64 KiB block of the save room figures 2026-10-30 18:48:57 +00:00
MarcZX10 e53c545626 docs(debt): record the unmeasured free-block bound of ANYPS5_FREE_SPACE 2026-10-30 18:48:57 +00:00
MarcZX10 bdb1acd130 docs(debt): record the unmeasured save creation refusal of ANYPS5_FREE_SPACE 2026-10-30 18:48:57 +00:00
MarcZX10 5d510f67dc docs(env): document ANYPS5_FREE_SPACE in the environment reference 2026-10-30 18:48:57 +00:00
JaceTheBluandClaude Opus 5.5 50527ff1d6 feat(libSceLibreSsl): implement OBJ_create and free added objects in OBJ_cleanup
Port OBJ_create and a2d_ASN1_OBJECT from LibreSSL 2.5.4, keep the added
objects by encoding and NID, and look them up in OBJ_obj2txt before the
built-in table. OBJ_cleanup now drops them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:21:25 +00:00
AdriàandClaude Sonnet 5.5 30e8559f63 docs(shader): record the integer path for f64 add, mul and f32 conversions
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 19:15:51 +01:00
DariusandClaude Opus 5.5 c0c37be81f fix(libSceIcu): leave u_getUnicodeVersion and u_strCompareIter to #13457
Restore the two placeholders that #13457 implements, so the two pull
requests no longer change the same exports.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:11:46 +02:00
BunnyFlandClaude Opus 5.5 de453bd3c5 test(libkernel_sys): run waits recorded by the new writers
A buffer of a counter write, satisfied counter and address waits (one
with a negative compare) and an address write is submitted and must
complete with the write done. The debt file records that a compare
recorded as mode 7 throws when the runner here executes it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:08:56 +01:00
Yunus Shaikh 8fe640ecdb Merge fix/agc-msaa-d32s8-separate-stencil into feat/agc-msaa-d32s8-stencil-view 2026-10-30 18:00:51 +00:00
Yunus Shaikh dcf420ec7f Merge main into fix/agc-msaa-d32s8-separate-stencil
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
#	core/libs/prx/libSceAgcDriver/Graphics/src/MultisampleTarget.cpp
2026-10-30 18:00:31 +00:00
cocoa55andClaude Opus 5.5 9a7acb3677 fix(libkernel): spin and yield by the mutex spin and yield loop counts
Lock and timed lock now try the mutex up to the spin count with a pause
between tries, then up to the yield count with a yield before each try,
before they block, as FreeBSD 11.4's mutex_lock_sleep does. Trylock and
a lock the thread already holds do not spin. A uniprocessor host skips
the spins and keeps the yields.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 13:56:31 -04:00
Adrià d62ad32c88 Merge pull request #13322 from BunnyFl/feat/libscesystemservice-codec-activation
feat(libSceSystemService): answer the codec activation calls as firmware 13.42 does
2026-10-30 18:54:28 +01:00
Adrià 05c436cc9b Merge pull request #13402 from Celegans12/feat/fontgs-inventory-exports-20261030
feat(libSceFontGs): add export placeholders
2026-10-30 18:51:53 +01:00
Adrià c16ab78552 Merge pull request #13346 from DeveshB-1/fix/sdk-version-efault
fix(libkernel_sys): return EFAULT from sceKernelGetCompiledSdkVersion for an unwritable store
2026-10-30 18:51:44 +01:00
Adrià f5a0356d5a Merge pull request #13267 from msbutt1/feat/libressl3-rsa-up-ref
feat(libSceLibreSsl3): implement RSA_up_ref
2026-10-30 18:50:23 +01:00
BunnyFlandClaude Opus 5.5 164e181b60 docs(libkernel_sys): record the mapper calls' remaining gaps
The fixed result of sceKernelCallIndirectBuffer2 is a silent stub, a
dword count of 2^30 or more throws, and the AMM range values are where
firmware libSceAmpr reads them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:46:54 +01:00
BunnyFlandClaude Opus 5.5 8794fec072 feat(libkernel_sys): add the AMM mapper calls
sceKernelCallIndirectBuffer, sceKernelCallIndirectBuffer2,
sceKernelCallIndirectBuffer3, sceKernelGiveDirectMemoryToMapper and
sceKernelMapperGetParam follow firmware 13.42's libkernel_sys: the
submit calls queue the buffer on the AMM queue, the direct memory call
keeps the library's 2 MiB checks and the parameter call copies the
size and the AMM address ranges. The kernel-side checks that are not
known throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:46:30 +01:00
hypermoistandClaude Opus 5.5 7b4f453ad1 docs(libSceNpCommon): separate the SkipAll and SkipData counter cases
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:27:53 +01:00
hypermoistandClaude Opus 5.5 e8a765b48d feat(libSceNpCommon): implement the sce::np::StreamReader and StreamWriter helpers
Read, ReadAll, ReadData, SkipAll and SkipData on StreamReader, and Write,
WriteData and WriteFilledData on StreamWriter, with and without a StreamCtx,
follow libSceNpCommon.sprx of firmware 13.60, checked against 20,426
firmware results.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:27:47 +01:00
JAB-devandClaude Sonnet 5.5 f35ab1ccf2 docs(libSceNgs2): record how the PCM_I16L render conversion was measured and what was not
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 19:24:51 +02:00
Adrià 53f41a0b6d Merge pull request #13050 from edubox/feat/npcpp-titlecloudstorage
feat(libSceNpCppWebApi): bring up TitleCloudStorage V1 offline
2026-10-30 18:22:51 +01:00
JAB-devandClaude Sonnet 5.5 e9c8069804 fix(libSceNgs2): use the PS5 default channel map for ports and mastering output
PS5 firmware 3.20 and 4.03 fold 6 and 8 channel sources into stereo and mono with different surround and back gains than the PS4 rows, and fold a mastering voice into a render buffer of another channel count through the same default map. Ours used the PS4 rows and threw on a channel count mismatch other than stereo into 6 or 8. The PS4 library, the reverb conversion and Pan matrices keep the PS4 rows.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 19:20:35 +02:00
BunnyFlandClaude Opus 5.5 3c022a3105 docs(libkernel_sys): keep the AMM writers entry under the length limit
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:20:21 +01:00
Eduardo Ruiz 7abf906257 docs(ngs2): state which parser behaviours come from the module 2026-10-30 18:19:53 +01:00
Eduardo Ruiz a696dc4761 docs(ngs2): record the firmware evidence for the utility exports 2026-10-30 18:19:53 +01:00
Eduardo Ruiz dffc2106ae docs(ngs2): keep the utility debt entry in the guest library file 2026-10-30 18:19:53 +01:00
Eduardo Ruiz 2efc86f681 feat(ngs2): implement the firmware-recovered utility exports
Implement sceNgs2SystemEnumHandles, sceNgs2SystemEnumRackHandles and sceNgs2ParseWaveformUser, and recover the sceNgs2FftQuerySize signature and work-size table from the decrypted firmware 11.00 libSceNgs2. FftInit/FftProcess still throw because their AVX kernel and packed layout are not recovered.
2026-10-30 18:19:53 +01:00
BunnyFlandClaude Opus 5.5 1f2b7a2b32 docs(libkernel_sys): shorten the AMM writers entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:19:23 +01:00
BunnyFlandClaude Opus 5.5 c2dbf83b1a test(libkernel_sys): pin the firmware's wrapping range check in the PRT writers
Firmware 13.42 accepts a PRT range whose end wraps past the top of the
address space and records only bits 14 to 40 of the size. The writers
here do the same; the test pins it and the debt entry records it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:18:48 +01:00
Kyon 593fafd5a7 Merge remote-tracking branch 'origin/main' into feat/ime-320-exports 2026-10-30 17:16:45 +00:00
BunnyFlandClaude Opus 5.5 bf1a40404f docs(libkernel): correct what the firmware records for the AMM writers
The PRT remap's last argument is checked but not recorded by firmware
13.42, and the comparison covered the recorded fields, not the bytes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:06:54 +01:00