Commit Graph
8814 Commits
Author SHA1 Message Date
T3cm0andClaude Fable 5.1 0cf58b569d feat(libSceHmd2): answer 125 exports before initialization as the console does
A sweep of the 281 libSceHmd2 exports on a PS5 (firmware 13.60), each
called from a payload before sceHmd2Initialize once with every argument
null and once with every argument pointing at a zeroed 16 KiB buffer,
found 127 that answer the same code both ways and write nothing. 125 of
them are bound here, by NID, to one handler per answer: 45 return 0, 16
return 0x8a720008, 15 return 0x8a720004, 12 return -1, 10 reprojection
exports return 0x8a72000b, 9 return 0x8a720002, 9 return 0x8a720009, 5
return 0x8a721002 and one each returns 0x8a72002c, 0x8a721003, 0x400 and
0x20000. Each handler returns its measured value while the library is not
initialized and throws if sceHmd2Initialize ever succeeds, because the
initialized behaviour is not measured; since b378541e79 it fails with
UnsupportedFeature here, so these are the answers titles get.

Left out: the export that returns a pointer-like value, the one answering
0x8a72000a (which sceHmd2Initialize also returns for some applications),
the exports that answer differently to null and to zeroed arguments or
write output, the 16 that crashed the probe, and the exports that main,
its aerolib name where one exists.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-20 08:36:21 -05:00
orezraeyandClaude Opus 5.5 1dbf3b4ac2 feat(libScePlayGo): store the language mask scePlayGoSetLanguageMask sets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 10:35:28 -03:00
Yuri Olive 02998c3bd0 fix(libSceAudio3d): leave the functions #6148 implements 2026-10-20 10:32:08 -03:00
Yuri Olive 2db8581076 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/audio-missing-exports 2026-10-20 10:32:01 -03:00
Yuri Olive c0af902132 Merge remote-tracking branch 'origin/main' into feat/ime-filter-text
# Conflicts:
#	docs/dev/debt/libSceIme.md
2026-10-20 10:30:49 -03:00
orezraeyandClaude Opus 5.5 812958b096 feat(libSceNpWebApi2): implement the internal and presence initializers
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 10:27:47 -03:00
hypermistandClaude Opus 5.5 b5e9882630 feat(libc): add the wide stream scanf family
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 02:25:08 +13:00
frankea 73bc20e93d Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into ps5-measured-1340
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-20 09:21:31 -04:00
Werner cd1efc9fca feat(agc): render into depth mip levels
Decode DB_Z_INFO.MAXMIP and DB_DEPTH_VIEW.MIPID and render into the
selected level of a 64 KiB Z_X mip chain as a surface of its own, at
the level's offset and extent from ComputeElementMipLayout, as color
target mips do. Slices of a mip chain step by the size of the whole
chain. Multisampled depth mips, other swizzles, levels in the packed
mip tail and HTILE on a mip chain still throw. LEGO Builder's
Journey (PPSA05496) stopped at its first scene on
"depth mips (DB_DEPTH_VIEW MIP_LEVEL) is unsupported".
2026-10-20 15:20:31 +02:00
Adrià b5f9c21bbc Merge pull request #7680 from gohansharma79-svg/codex/avplayer-paused-preview-20261019
fix(avplayer): deliver the first paused picture after audio starts
2026-10-20 15:19:02 +02:00
Adrià 277671f838 Merge pull request #7683 from Longziip/fix/agc-indirect-register-reread
fix(agc): reread an invalid indirect register list where its packet executes
2026-10-20 15:18:56 +02:00
Adrià 3cde166e45 Merge pull request #7650 from alex73630/fix/agc-cached-image-msaa-guard
fix(agc): enforce MSAA guards for ordinary image cache hits
2026-10-20 15:18:50 +02:00
milescovielloandClaude Opus 5.5 741e706b19 fix(libSceNgs2): let a rack or system destroy wait for other threads' rack locks
A destroy waited only for another thread's render, so destroying a rack
that another thread had locked freed it under that lock. Destroys now
wait like renders and rack locks do, and the render owner field that
only those waits read is gone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 13:16:13 +00:00
xXPBSXxandClaude Sonnet 5.5 26f861dd27 feat(libkernel): accept MSG_WAITALL in recv, recvfrom and recvmsg on a stream socket
soreceive_generic keeps a MSG_WAITALL receive on a stream socket waiting until
the buffer is full, the peer closes or an error occurs. The three calls failed
every flag but MSG_PEEK and MSG_DONTWAIT with EOPNOTSUPP. A stream socket now
passes the flag to the host receive; a datagram socket ignores it, as a record
is delivered whole.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 15:12:33 +02:00
hypermistandClaude Opus 5.5 9204f9d64f feat(libSceAgcDriver): add the retail debug, capture and GPU reset results
Export 24 absent driver calls with the constant results and output
zeroing of the retail libSceAgcDriver.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 02:10:55 +13:00
Gabrieljr42 78bf409ec5 feat(libSceAjm): parse CRC-protected and non-stereo MP3 metadata frames
Parse Xing/Info and LAME tags across candidate offsets covering both CRC-protected and unprotected streams, and accept VBRI headers at byte 36 for non-stereo / MPEG-2 frames. Reject non-Layer-3 streams with SCE_AJM_ERROR_INVALID_PARAMETER without throwing.

Progress: sceAjmDecMp3ParseFrame implemented (libSceAjm.native: 19/40 -> 20/40, 50.0%)
2026-10-20 10:08:57 -03:00
Sam 96ff1330eb fix(agc): leave the float-controls probe's pipelines out of compute captures
The start-up f32 denormal flush probe already stays out of the pipeline
counters and the pipeline journal, but APS5_DUMP_COMPUTE_PIPELINES still
captured its pipelines. On a device that runs the probe, every capture
directory gained twelve driver-internal records that count toward the
128-record limit, and agc_compute_pipeline_capture_run found 14 captures
for a fixture with two programs.
2026-10-20 15:01:44 +02:00
Savvanis SpyrosandClaude Opus 5.5 58a2a4962f fix(relinker): follow fs loads and report pointers taken as data between PS4 unwind functions
A relocation or lea target outside the unwind functions of a PS4 image
is now decoded up to its first jump, return or trap, or to the start of
the next unwind function, which also bounds the transfer check of the
tail rule. A target whose run holds an fs:[disp32] access, the form the
linear TLS sweep roots, is followed as code. The other targets taken as
data are counted in one message and kept as entry points that the
Windows TLS rewrite may not overwrite. The analysis merges nested
unwind ranges like the scans.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 15:48:42 +03:00
Savvanis SpyrosandClaude Opus 5.5 1ea49c741f fix(relinker): tighten the syscall skip between PS4 unwind functions
The skip of syscall patterns outside the unwind functions let some real
syscalls through. The scan now merges nested and overlapping unwind
ranges with the instruction scanner's MergeCodeRanges, so a pattern
inside an outer function is refused. A constant syscall number is also
looked for in the bytes in front of the pattern, whatever alignment the
decoding took: a mov eax, mov rax or xor eax, eax that ends at the
pattern or before register moves and zeroings that leave rax alone. The
decoded lookback requires each instruction to end where the next one
starts. Guest modules without PT_SCE_DYNLIBDATA get no unwind ranges,
so their scan stays strict even when their unwind table is read.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 15:48:42 +03:00
Dean 44e3389c88 Merge pull request #7807 from mazen320/fix/windows-stderr-dup2
fix(libkernel): keep host stderr off a guest dup2 onto descriptor 2
2026-10-21 01:45:30 +13:00
shanu337 df9b2fcdcc fix(libSceSystemService): stub sceSystemServiceOpenTournamentOccurrence 2026-10-20 18:13:31 +05:30
Swetabh Singh f3dec86695 feat(libc): implement memmem and memccpy 2026-10-20 18:12:52 +05:30
thuanquangandClaude 4508090000 docs(agc): drop the stale signature note from the ACB atomic GDS NID entry
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:40:52 +07:00
thuanquangandClaude 66a2bfe4c2 docs(videoout): point the buffer label entry at sceVideoOutSubmitEopFlip
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:40:34 +07:00
milescovielloandClaude Opus 5.5 850b807cf2 fix(libSceNgs2): let rack locks and renders exclude each other across systems
Rack locks and renders were tracked per system, so a voice callback
that locked a rack of another system could deadlock with that system's
render, or with a thread holding rack locks in both systems. Rack locks
and renders now exclude each other across threads and systems, as the
single internal lock did, while a thread nests them and other calls go
ahead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 12:33:33 +00:00
thuanquangandClaude e7d4a818d0 docs(shader): say that the whole ancillary word has the render target index at bits 16-28
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:32:07 +07:00
thuanquangandClaude 8751b7c7ec docs(shader): say that the whole packed ancillary word carries the layer field too
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:30:40 +07:00
Dean 88942aa99d Merge pull request #8280 from thuanquang/fix/mul-lo-u16-keep-24-bit-factors
fix(shader): keep the 24-bit factor reads of 16-bit multiplies
2026-10-21 01:30:18 +13:00
thuanquangandClaude 0df745190f docs(agc): say that registered NGG vertex programs take the mesh path too
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:29:43 +07:00
thuanquangandClaude 2d77bd4e37 docs(agc): drop another level from the reused depth storage refusals
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:27:46 +07:00
thuanquangandClaude b8beb80e54 docs(libkernel): say that an AMM command buffer may run after its submission returns
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:27:33 +07:00
Savvanis Spyros 079e6ca316 Merge remote-tracking branch 'origin/main' into fix/windows-runtime-module-start 2026-10-20 15:27:06 +03:00
Dean 02b5a8e55f Merge pull request #8028 from ymatrix1/feat/hmd2-missing-exports
feat(libSceHmd2): export missing firmware HMD2 interfaces
2026-10-21 01:24:37 +13:00
akkadbakkad89andDevin 9fc0c88550 fix(libScePsml): copy MFSR object fields under the lock and drop the dump title id
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-20 17:54:26 +05:30
thuanquangandClaude 8d36f84d22 docs(shader): list the samples unnormalized S#s are accepted for
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:24:22 +07:00
hypermistandClaude Opus 5.5 e95f842140 fix(libSceAgc): match interpolant mapping variants to firmware
Add the unversioned sceAgcCreateInterpolantMapping and
sceAgcUpdateInterpolantMapping and stop sceAgcUpdateInterpolantMapping_10000
throwing for split f16 defaults, all matching libSceAgc bit for bit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 01:24:01 +13:00
thuanquangandClaude f63beab720 docs(agc): say that only lavapipe frees descriptor sets individually
Co-Authored-By: Claude <[email protected]>
2026-10-20 19:23:38 +07:00
hamb3r 2693c44569 docs(libc): document Windows backtrace stop at PE unwind handlers 2026-10-20 15:22:50 +03:00
Savvanis SpyrosandClaude Opus 5.5 f154e132bc fix(relinker): take pointers into data between PS4 unwind functions as data
The code analysis of the Windows and macOS outputs followed every
relocation and lea target inside the code range as code. PS4 images keep
read-only data between unwind functions, and strings and tables there
decoded into garbage, failing the conversion. Outside the unwind functions
such a target is now code only when it is 16-byte aligned, starts less
than 256 bytes after an unwind function and decodes to a jump, return or
trap; lea targets go through the same rule instead of the graph's own.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 15:19:45 +03:00
Savvanis SpyrosandClaude Opus 5.5 dc642205a5 docs(libSceNpManager): list sceNpUnregisterPlusEventCallback under Silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 15:19:42 +03:00
Chikimaro de2fd5bf6a feat(libSceNetCtl): implement the NpToolkit callback register, unregister and check
sceNetCtlRegisterCallbackForNpToolkit, sceNetCtlUnregisterCallbackForNpToolkit
and sceNetCtlCheckCallbackForNpToolkit keep their own table of eight
callbacks next to the IPv4 and IPv6 ones and share the existing register,
unregister and event delivery, which sceNetCtlCheckCallback now also goes
through. sceNetCtlTerm clears the new table. The register signature and the
separate table follow shadPS4; the rest follows the IPv4 functions and is
recorded as unverified in the libSceNetCtl technical debt.
2026-10-20 12:14:24 +00:00
al3w0f205 8ea3b5cab5 fix(libSceJpegDec): reject misaligned output buffers and oversized alpha values 2026-10-20 07:12:43 -05:00
Swetabh Singh b67e2a3f2f feat(libc): implement sceLibcPafMspacePosixMemalign 2026-10-20 17:22:52 +05:30
ionut27001andClaude Opus 5.5 dfa96f1fe6 fix(libkernel): return ENOENT for thirteen sysctl names, as measured on a PS5
In a payload process on a PS5 (firmware 12.70), sysctlbyname returns -1
with ENOENT for thirteen names that threw here, and leaves the buffer and
the length alone, for a read, a size query, a null length and a null
buffer with a null length. sysctl does the same for the fixed MIBs of
seven of them. sysctlnametomib gives those seven MIBs and returns ENOENT
for hw.cacheline_size and hw.usermem, which threw too.

machdep.cacheline_size already returned ENOENT and is now tested with
the others. A write to the new names and MIBs throws, as the console's
answer to a write was not tried. The hw.realmem and vm.overcommit debt
entries now say that a payload process gets ENOENT for them as well.

AI-assisted: yes

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 13:46:29 +02:00
Gabrieljr42 2bea4a3f06 feat(tools): report per-library progress in PR comparisons 2026-10-20 08:45:12 -03:00
Queuze bbcce1736e fix(libkernel): support socket fcntl duplication 2026-10-20 13:40:22 +02:00
Yossi Yadgar 0371d1778e docs(debt): note the rules the Ult lock and ulthread calls assume 2026-10-20 14:35:49 +03:00
Adrià FranchandClaude Sonnet 5.5 99e56464a1 fix(libkernel): keep the PipeWrite full-pipe case off Windows and start its clock before the reader
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 13:35:07 +02:00
Alexej Szpevák bd8ee518c4 feat(libkernel): support EVFILT_WRITE on the write end of a pipe
kevent threw for EVFILT_WRITE on any descriptor that is not a socket. On the write end of a pipe it now follows FreeBSD 11's filt_pipewrite: data is the free buffer space, and once the read end is closed the event reports EV_EOF with data 0. Adding the event after the read end is closed fails with EPIPE, as in pipe_kqfilter. EVFILT_WRITE on the read end still throws, because FreeBSD's pipe ends are bidirectional and host pipes are not.
2026-10-20 13:34:50 +02:00
milescovielloandClaude Opus 5.5 0fdc0e22b3 fix(libSceNgs2): make a rack lock wait for another thread's render
A voice callback runs with the internal lock released, so another
thread could lock the rack being rendered and the render then finished
it under that lock. sceNgs2RackLock now also waits while another thread
renders the rack's system, as it did when the rack lock was the
internal lock.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 11:34:14 +00:00