Commit Graph
14017 Commits
Author SHA1 Message Date
Adrià 6cc26ec99b Merge pull request #2982 from TheAggie/fix/libkernel-mprotect-thread-stack
fix(libkernel): change the protection of guest thread stack pages
2026-10-11 09:52:03 +02:00
Hannah Lyons 04835bdcd1 feat(libkernel): support kern.rng_pseudo in sysctlbyname 2026-10-11 09:51:22 +02:00
Adrià eb15ddc42a Merge pull request #3041 from CouchRiv/feat-libscesysmodule-get-module-handle-internal
feat(libSceSysmodule): implement sceSysmoduleGetModuleHandleInternal
2026-10-11 09:50:46 +02:00
Adrià c12a19e4de Merge pull request #3237 from Raghav314/perf/agc-cache-fault-only-resources
perf(agc): cache resources whose only completion work is the fault check
2026-10-11 09:50:44 +02:00
Adrià 51b5f52a9e Merge pull request #3152 from MarcZX100/codex/marc-select-timeout-range
fix(libkernel): saturate oversized select timeouts
2026-10-11 09:49:58 +02:00
Adrià 8ee2834a38 Merge pull request #2945 from MarcZX100/carry/libkernel-system-sw-version
feat(libkernel): implement sceKernelGetSystemSwVersion
2026-10-11 09:49:38 +02:00
hugodearaujoandClaude Opus 5.5 7e5a34c58c fix(net): return the console's errors from the memory pool stats calls
Measured on a PS5 (firmware 13.60):
- sceSslGetMemoryPoolStats returns 0x8095F007 for a null output, before
  the id check, and 0x8095F006 for an unknown or terminated context,
  zeroing the 32-byte output.
- sceHttp2GetMemoryPoolStats returns 0x817B1225 for a null output,
  before the id check, and 0x817B1100 for an unknown or terminated
  context, zeroing the 32-byte output.
- sceNetGetMemoryPoolStats checks the pool before the output, so an
  unknown pool with a null output returns EBADF.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 09:49:13 +02:00
fma-rc 433302be58 test(agc): check the recorder's (s) and (w) generations around the storage image's own import 2026-10-11 09:49:13 +02:00
fma-rc 3bb39589f3 test(agc): fix two stale expectations in the full recorder run 2026-10-11 09:49:13 +02:00
Adrià 65a4e8ef34 Merge pull request #2842 from Get-fix/fix/libc-daemon
fix(libc): export daemon
2026-10-11 09:49:05 +02:00
overlordxrz-source aaf5754d27 feat(libSceSystemService): export sceSystemServiceLaunchApp
AI-assisted: yes
2026-10-11 03:48:47 -04:00
overlordxrz-source aeee59614e feat(libkernel): implement sceKernelGetAllowedSdkVersionOnSystem
AI-assisted: yes
2026-10-11 03:48:47 -04:00
overlordxrz-source 26cad4e8c8 feat(libkernel): implement sceKernelGetProsperoSystemSwVersion
AI-assisted: yes
2026-10-11 03:48:46 -04:00
Achraf ReyaniandClaude Opus 5.5 94d6a82d83 docs(debt): list sceAudioInInit with the silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:46:16 +09:00
Scott SchusterandClaude Opus 5.5 eb33094e20 test(shader): register the cross-workgroup test block as GPU-accessible
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 02:46:00 -05:00
Blazing Cook 271e31a5a3 fix(conventions): restrict silent stub exemptions to their section 2026-10-11 16:45:35 +09:00
Adrià FranchandClaude db3c429e42 docs(playgo): update chunk-set comment and record unchecked chunk ids in TechnicalDebt
Co-Authored-By: Claude <[email protected]>
2026-10-11 09:44:17 +02:00
Cesar RodriguezandClaude Opus 5.5 082177e1b7 fix(libScePlayGo): accept chunk ids when the dump has no chunk definitions
PS5 dumps carry no playgo-chunkdefs.xml (only sce_sys/playgo-scenario.json, which
lists no chunks), so the valid set fell back to chunk 0 and every query for another
chunk returned SCE_PLAYGO_ERROR_BAD_CHUNK_ID. A title that asks for all of its chunks
in one scePlayGoGetLocus call then never sees them as installed and waits forever.

Without definitions the chunk table is unknown and a dump is fully installed, so any
chunk id is accepted and reported as local. With playgo-chunkdefs.xml present,
validation is unchanged. scePlayGoGetChunkId still reports the known set.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 09:44:13 +02:00
Adrià 2a4e03ce58 Merge pull request #3151 from MarcZX100/codex/marc-socket-positioned-io
fix(libkernel): return ESPIPE for positioned socket I/O
2026-10-11 09:43:15 +02:00
Adrià Franch 1583126a35 docs(libkernel): record unverified sceKernelGetSystemSwVersion argument checks 2026-10-11 09:43:06 +02:00
MarcZX100 d8ba169df8 fix(libkernel): correct system version ABI layout 2026-10-11 09:43:02 +02:00
MarcZX100 e0e0b66cbb docs(libkernel): clarify system version ABI assumption 2026-10-11 09:42:57 +02:00
pushkarreddyy cbacc46ede fix(libkernel): return SCE_KERNEL_ERROR codes in sceKernelGetSystemSwVersion 2026-10-11 09:42:49 +02:00
pushkarreddyy 5890160278 feat(libkernel): implement sceKernelGetSystemSwVersion
(cherry picked from commit 7143d0b46e)
2026-10-11 09:42:49 +02:00
fma-rc 5680c32381 fix(font): throw where the writing line error codes come from the PS4 module only and accept attribute 0 2026-10-11 09:41:52 +02:00
Achraf ReyaniandClaude Opus 5.5 62d6cbe42d test(relinker): check that a Windows load failure starts with its own message
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:41:25 +09:00
Scott SchusterandClaude Opus 5.5 73e0890c20 fix(shader): read GLC/DLC BDA dwords with device-scope atomic loads
Coherent (GLC/DLC) global loads were emitted as Volatile loads through
physical pointers. Volatile does not make another workgroup's stores
visible within the same dispatch, so a workgroup spinning on a flag
written by another one (decoupled look-back scans, as in RADV's
acceleration-structure build) never saw it on NVIDIA. Aligned coherent
dword reads now use OpAtomicLoad at device scope; the byte path keeps
the old reads for unaligned addresses.

AI-assisted (Claude Code).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 02:41:19 -05:00
Badr d102e186c9 fix(relinker): print the Windows stub's ' -> FAILED' only with dependency diagnostics 2026-10-11 16:40:50 +09:00
Get-fix 520b9facb6 fix(libc): export daemon
VLC (PPSA85300) imports daemon (Wn6I3wVATUE) and fails to load because
no library exports it. Forking into the background is not supported,
so it throws if called. VLC 3.0 calls daemon only when its daemon
option is set, and the title starts libVLC with --ignore-config and
without --daemon.
2026-10-11 09:40:35 +02:00
MarcZX100 4b3f02ab13 docs(libkernel): clarify guest socket descriptor range 2026-10-11 09:36:43 +02:00
MarcZX100 bb9bd2183c fix(libkernel): return ESPIPE for positioned socket I/O 2026-10-11 09:36:43 +02:00
Adrià 2bb78d2c7a Merge pull request #1825 from TheAggie/feat/agc-ngg-vertex-mesh-v2
feat(agc): run unregistered NGG vertex programs that need a workgroup on the mesh path
2026-10-11 09:35:19 +02:00
Adrià a4b0b16bb8 Merge pull request #3244 from leorossi2005/feat/appcontent-download-progress
feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress
2026-10-11 09:33:12 +02:00
Adrià a6d45b68fa Merge pull request #3170 from fma-rc/feat/libscejobmanager-cpu
feat(libSceJobManager): implement CPU job sequences
2026-10-11 09:32:50 +02:00
Adrià 3db4637fcc Merge pull request #2789 from tototomate123/fix/hfw-apr-split
fix(APR): correct guest resolution outputs, object layout and gather sizing
2026-10-11 09:32:21 +02:00
Adrià 683bb1c78c Merge pull request #2788 from tototomate123/fix/hfw-http-split
fix(libSceHttp): retain request-status callbacks with the guest ABI
2026-10-11 09:32:00 +02:00
Scott SchusterandClaude Opus 5.5 bb4b938e34 feat(libkernel): implement cpuset_setaffinity for the calling thread or process
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 02:31:57 -05:00
Hannah Lyons 01ed49c98e feat(libkernel): implement creat 2026-10-11 03:31:04 -04:00
raghav314andClaude Opus 5.5 29c0814c90 fix(ajm): an Opus run stops before the next packet once the output has no room for its frame
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 13:00:50 +05:30
raghav314andClaude Opus 5.5 26bd36df84 fix(ajm): decode a single input buffer in place instead of copying its stated size
A job's inputs were joined into one vector before decoding, copying every
input buffer at its stated size. PPSA36082's FMOD submits Opus run jobs
whose one input buffer states 0xFFFFFE74 bytes (a remaining size that
went below zero) ahead of a single packet, so each such job copied about
4 GiB and sceAjmBatchStart took about a second; the mixer missed its
deadline and the title pushed silence. A job with one input buffer now
decodes from that buffer in place, reading only the packets it decodes;
jobs with several input buffers are joined as before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 13:00:50 +05:30
Adrià b6f649d962 Merge pull request #3286 from kr4y4/fix/agc-test-flat-apertures-int64-atomics
test(agc): skip flat aperture 64-bit atomic rows without shaderBufferInt64Atomics
2026-10-11 09:29:16 +02:00
Adrià bd06925906 Merge pull request #3314 from AchrafReyani/feat/libc-fabs-trunc-fma
feat(libc): implement fabs, trunc and fma
2026-10-11 09:28:25 +02:00
Adrià 92bc441279 Merge pull request #3306 from CouchRiv/fix-shader-ldexp-f32-denorm-keep
fix(shader): keep f32 subnormals in v_ldexp_f32 when denormals are kept
2026-10-11 09:28:17 +02:00
Adrià 74807ef113 Merge pull request #3305 from CouchRiv/feat-libscevideoout-delete-output-mode-event
feat(videoout): implement sceVideoOutDeleteOutputModeEvent
2026-10-11 09:28:09 +02:00
AlexandClaude Sonnet 5.5 f1af6683a1 fix(libSceSysmodule): open host modules only through libs/<name>.prx
Drop the retry on <name>.prx after libs/<name>.prx fails. The test now
runs from its own directory holding libs/libSceFiber.prx, copied from
the libSceFiber output, so the single path resolves in the test too.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-11 03:28:05 -04:00
Scott SchusterandClaude Opus 5.5 f38408ef5c fix(libkernel): keep stack protection inside the stack and never throw while restoring it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 02:28:03 -05:00
Scott SchusterandClaude Opus 5.5 24ae0a98d0 fix(libkernel): check the requested stack range and restore guard pages at thread exit
A stack base need not be page aligned (it is not on Linux), so rounding the
range down first could leave the stack and miss the stack path. The range the
guest asked for is now checked against the guest stack, and the rounded
pages are protected, as FreeBSD rounds the address down.

A thread that exits with part of its stack protected left those pages to the
next thread that reused the stack. Protected stack pages are recorded, and a
thread's stack is made readable and writable again when it is unregistered at
exit.

AI-assisted (Claude Code).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 02:28:03 -05:00
Scott SchusterandClaude Opus 5.5 67bccf6dd4 fix(libkernel): change the protection of guest thread stack pages
On Windows a guest thread runs on its host thread's stack, which is not a
registered guest allocation, so mprotect on any of its pages failed with
EINVAL. A guest that guards the bottom of its own stack (Dolphin's JIT
read-protects 64 KiB there to catch stack overflows) got an error where the
PS5 changes the protection.

A range that lies inside a live guest thread stack, with no GPU access
requested, now takes the native protection directly. Ranges that cross the
stack's bounds are still rejected.

AI-assisted (Claude Code).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 02:28:03 -05:00
Claude 3bfb0445e5 fix(libSceSysmodule): link and run guest_sysmodule_tests like the other guest tests
Link libc, configure Windows unwinding for the test so its runtime_error
checks are caught, and run it from libSceFiber's output directory so
openHostModule finds the unpatched libSceFiber.prx next to the modules the
test already loads.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01K9MzdVqDf6wHUKzNymQSze
2026-10-11 03:27:59 -04:00
19dc22b010 feat(libSceSysmodule): implement sceSysmoduleGetModuleHandleInternal
Return a host module handle for a loaded sysmodule id so callers can
sceKernelDlsym after sceSysmoduleLoadModule. Unknown or null inputs
throw like neighbouring internal load paths; unloaded ids return
0x805A1001. Unblocks Prospero Win past NID D8cuU4d72xM at load.

Co-Authored-By: Composer <[email protected]>
Co-authored-by: Cursor <[email protected]>
2026-10-11 03:27:52 -04:00