Commit Graph
7963 Commits
Author SHA1 Message Date
Adrià 83b233a010 Merge pull request #6063 from snipeTR/feat/opus-sample-rates-v2
feat(opus): decode at 8, 12, 16 and 24 kHz
2026-10-17 06:53:14 +02:00
Adrià 46be9d32e8 Merge pull request #6056 from notaxeltv/feat/libSceNpManager-unknown-fc27-exports
feat(libSceNpManager): export two unknown NIDs so PPSA34015 can load
2026-10-17 06:51:48 +02:00
Adrià a15c6fb961 Merge pull request #6062 from notaxeltv/feat/libSceVdecsw-sync-decode-ppsa34015
feat(libSceVdecsw): block on SyncDecodeInput/Output like TrySync
2026-10-17 06:51:39 +02:00
Adrià cfe6683f4b Merge pull request #6064 from JAB-dev/perf/sysmodule-unwind-region-cache
perf(libSceSysmodule): cache the unwind region of loaded images on Windows
2026-10-17 06:51:34 +02:00
Adrià bb6bea8093 Merge pull request #5966 from EagleBearerYS/fix/libscenet-unbound-datagram-receive
fix(libSceNet): let a datagram receive on an unbound socket wait on Windows
2026-10-17 06:51:29 +02:00
JJenkx d0f2684dce feat(ajm): decode ATRAC9 vibration channel configurations 2026-10-17 00:48:16 -04:00
Romans Pokrovskis 1ec58a5cd4 Merge commit '1271998d444c9f05a3330c96fc08d81c7e148bd4' into codex/validate-native-index-6590-main16 2026-10-17 07:40:59 +03:00
MarcZX100 f572ca8a04 chore(agc): tag dispatch IO traces with queue origin 2026-10-17 04:38:23 +00:00
Dean 437f157d31 Merge pull request #6319 from hypermoist/docs/debt-duplicate-entries
docs(debt): drop the call tracing entry that --trace-imports superseded
2026-10-17 17:28:35 +13:00
Adrià 830edf86c6 Merge pull request #6049 from notaxeltv/feat/libSceNpPartner001-has-ea-access-ppsa34015
feat(libSceNpPartner001): answer sceNpHasEAAccessSubscription without an EA Access server
2026-10-17 06:11:44 +02:00
Adrià 142f7555aa Merge pull request #6051 from Ondra97/codex/fix-ajm-live-instance-handles
fix(ajm): preserve live decoder handles across ID wrap
2026-10-17 06:10:21 +02:00
Adrià ed1beacd10 Merge pull request #6034 from notaxeltv/feat/libSceLoginService-ppsa34015
feat(libSceLoginService): load Initialize/Terminate so PPSA34015 can start
2026-10-17 06:10:11 +02:00
Dean 5bd85a44c2 Merge pull request #6876 from parl0v/docs/gputime-line
docs(build): describe the [gputime] line and its command classes
2026-10-17 16:47:31 +13:00
Dean dbcb802e15 Merge pull request #6750 from LeandroLP23/docs/debt-thread-priority-gap
docs(debt): record that guest thread priorities are not applied to host threads
2026-10-17 16:46:01 +13:00
Dean ec6d3989f3 Merge pull request #6675 from xXPBSXx/docs/debt-agc-registered-shader-type-8
docs(debt): list the unprepared AGC shader types
2026-10-17 16:45:04 +13:00
Dean 2993eefd1d Merge pull request #6672 from xXPBSXx/docs/debt-ajm-codec-23
docs(debt): list the unimplemented AJM codec 23 of PPSA21480
2026-10-17 16:44:32 +13:00
Dean b705f11176 Merge pull request #6673 from xXPBSXx/docs/debt-ngs2-custom-module-0x20
docs(debt): list the NGS2 custom module id 0x20 of PPSA35169
2026-10-17 16:43:39 +13:00
Dean dfdc3dec4d Merge pull request #5280 from santhoshkumar-dev/codex/sandbox-ca-trust
feat(libkernel): serve the sandbox CA bundle from host TLS roots
2026-10-17 16:35:44 +13:00
Dean f99f3d1dca Merge pull request #6694 from MarcZX100/codex/coredump-config-dump-mode-6688
fix(libkernel): export sceCoredumpConfigDumpMode as an explicit stub
2026-10-17 16:34:12 +13:00
Adrià 30dadc2494 Merge pull request #6024 from KernelPanicNT/feat/libsceampr-cxa-call-unexpected
feat(libSceAmpr): implement __cxa_call_unexpected
2026-10-17 05:27:54 +02:00
Adrià 2083bc700f Merge pull request #6020 from KernelPanicNT/feat/libsceappcontent-addcont-download-progress
feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress
2026-10-17 05:15:31 +02:00
Nithishvelan M 63cfca8466 feat(libSceUserService): declare KeyremapEnable and Zoom as throwing stubs 2026-10-17 08:43:48 +05:30
Nicolas Abosch 0469be9e9c Merge remote-tracking branch 'origin/main' into perf/gpu-wake-sleeps
# Conflicts:
#	docs/dev/debt/libkernel.md
2026-10-16 23:40:36 -03:00
Santhosh Kumar eb26fb97f8 fix(libkernel): filter sandbox TLS roots and preserve path overrides 2026-10-17 02:25:41 +00:00
screammandClaude Fable 5.1 9f4a8d6ec5 feat(libkernel): serve the console CA list from the host trust store
Titles that bundle OpenSSL load the console's CA file from the sandbox
directory and fail every HTTPS request without it. ProsperoRadio
(PPSA99001, libcurl 8.18.0 + OpenSSL 3.5.2) on main + #4796 + #4525:

  [ProsperoRadio][http] https://all.api.radio-browser.info/json/servers: Problem with the SSL CA cert (path? access rights?) (error adding trust anchors from file: /gkbHtXc3Wq/common/cert/CA_LIST.cer)

SwanStation (PPSA98510) stops on the same file (#5001).

The guest path resolver now accepts exact-path providers, and libkernel
registers one for /<sceKernelGetFsSandboxRandomWord()>/common/cert/CA_LIST.cer.
On first use it writes a PEM bundle once per process to
cert_cache/CA_LIST.cer in the run directory, read-only: on Windows the
current user's ROOT and CA system stores, elsewhere SSL_CERT_FILE or the
first distro bundle that exists. Without a certificate the path keeps
resolving under the guest root and does not exist, as before. Every other
path under the sandbox word is unchanged. The console file's format and
the rest of its common/cert directory are unverified and recorded in
docs/dev/debt/libkernel.md.

With this change, #4796, #4525 and #5025 on Windows 11, 60 s each:

  [ProsperoRadio][http] 11846160 bytes in 1458 ms: 1161 passes, 803 waits (679 woken) for 1428 ms
  [ProsperoRadio][catalog] page offset=0 bytes=11846160 objects=10000 accepted=9549 total=9549
  ...
  [ProsperoRadio][catalog] page offset=60000 bytes=1712035 objects=1494 accepted=1436 total=59371

  [SwanStationPS5] update: latest 1.2.5, this 1.1.3, available
  [SwanStationPS5] gamedb: index written

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 02:24:02 +00:00
Adrià 8566becc1c Merge pull request #6019 from KernelPanicNT/feat/libscefont-text-codes
feat(libSceFont): implement sceFontCharactersRefersTextCodes and text code stepping
2026-10-17 04:14:50 +02:00
Adrià c9cabcaf84 Merge pull request #6008 from zmeizy/claude/ldexp-f32-denormal-modes
fix(shader): translate v_ldexp_f32 in f32 denormal modes 1 and 2
2026-10-17 04:14:45 +02:00
Dean f643e61d9c Merge pull request #1693 from julienlgy/feat/razor-cpu-named-sync
fix(libSceRazorCpu): add sceRazorCpuNamedSync export
2026-10-17 15:02:12 +13:00
lorkydey 4e7e8ac1a9 feat(libc): implement floating-point rounding and exception flags 2026-10-17 03:46:56 +02:00
Get-fix ca75c94cc2 feat(libkernel): load system libraries from their console paths
PS4 programs load system libraries with sceKernelLoadStartModule and
their console path. The OpenOrbis piglet sample loads
/<sandbox word>/common/lib/libScePigletv2VSH.sprx and
libScePrecompiledShaders.sprx, the sandboxed form of
/system/common/lib/ that sceKernelGetFsSandboxRandomWord names. The path
was opened as a guest file and the load failed with ENOENT.

A path in /system/common/lib/ or in the sandboxed /<word>/common/lib/
whose file name ends in .sprx now loads the host libs/<name>.prx, as
libSceSysmodule does for module IDs. Names with a directory part are
not mapped, so such a path cannot leave libs/.
2026-10-17 04:46:19 +03:00
Get-fix 487b9fd4e4 feat(libkernel): read param.sfo when param.json is absent
PS4 titles ship sce_sys/param.sfo instead of param.json. When param.json
is absent, the application metadata now reads the title, title ID,
download data size and user defined parameters from param.sfo, and
/data and /download0 are mounted for it as for param.json. param.json
is still preferred when both files exist.
2026-10-17 04:46:16 +03:00
Adrià fd9e577d98 Merge pull request #6007 from zmeizy/claude/cmp-f32-denormal-modes
fix(shader): translate f32 compares in f32 denormal modes 1 and 2
2026-10-17 03:10:56 +02:00
Adrià 6caba08643 Merge pull request #6003 from XairRrR/fix/fiber-large-context-stack
fix(libSceFiber): run a fiber on its own context when the context is large
2026-10-17 02:45:04 +02:00
Adrià b1cb3ed43b Merge pull request #5991 from Get-fix/ps4/videoout-ps4-buffers
feat(libSceVideoOut): register PS4 display buffers
2026-10-17 02:44:59 +02:00
Adrià Franch b35caffd12 fix(libSceRazorCpu): take the label argument of sceRazorCpuNamedSync 2026-10-17 13:06:46 +13:00
julienlgyandCopilot f4a33b7960 fix(libSceRazorCpu): add sceRazorCpuNamedSync export
Resolve the XCuZoBSVFG8 import required by Killzone Liberation by adding sceRazorCpuNamedSync as a no-op returning success when capture is inactive.

Extend the RazorCpu behavior test and document the NID source and unverified console signature and capture behavior.

Co-authored-by: Copilot <[email protected]>
2026-10-17 13:06:36 +13:00
Dean e751dd2057 Merge pull request #6236 from fogydes/fix/playgo-unlisted-chunks-setting
fix(libScePlayGo): let users answer unlisted chunks
2026-10-17 13:05:47 +13:00
Dean 9070237dfd Merge pull request #5676 from MarcZX100/codex/pad-n3ksx62fgno-status
fix(libScePad): return measured status for unknown Pad NID
2026-10-17 13:05:42 +13:00
Dean 72a848ca52 Merge pull request #4533 from Roojool/contrib/g07-pthread-getname
fix(libkernel): answer pthread_getname_np for a joined thread with ESRCH
2026-10-17 13:05:38 +13:00
fdfawef324andClaude Opus 5.5 7e4b1b7c3d feat(libSceJson2): implement Value::setTypeMismatchHandler and store the element access failure and special float handlers
Value::setTypeMismatchHandler, setElementAccessFailureHandler and
setSpecialFloatHandler were stubs that threw NotImplemented. PPSA07411
calls all three while it sets up its documents.

The title calls them as members of Value: on its root Value before
parsing into it, with the handler and its context, and treats an int
result of 0 as success. They now store the handler and context on that
Value and on the values it holds, and return 0. A Value keeps its
handlers when its content changes (set, clear, operator=,
Parser::parse), and Parser::parse gives the values it creates the
handlers of the Value it parses into, since the title reads the errors
its handlers record after accessing parsed members. A copy does not
carry them.

A typed getter on a non-null value of another type calls the type
mismatch handler with the requested type, the value, null and the
context, and returns its result when it has the requested type, else
the getter's default.

The element access failure and special float handlers are stored but
not called: the error code the console passes to the first and the
FunctionType it passes to the second are unknown. A failed element
access on a value carrying the first throws instead of reaching the
null-access callback. Serializing a non-finite real already threw; with
the second set it throws naming the unknown FunctionType. The technical
debt entry records what is inferred.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 01:39:31 +02:00
Adrià 16a9191c60 Merge pull request #5986 from oneandonlydean/fix/mouse-reset-absolute-position
fix(libSceMouse): implement sceMouseResetAbsolutePosition with the arguments its callers pass
2026-10-17 01:22:56 +02:00
Mouad-Scriptz-0andClaude Fable 5.1 0a9ee3698a perf(recompiler): keep LDS loads branched and drop the LDS sentinel
NVIDIA's compiler predicates a branched LDS load at no cost, while the
selected form costs about 2.5 instructions per dword and splits a
ds_read_b128 into four loads (RTX 4060 measurements by @karanvora2599 in
loads therefore keep the branch of main, in workgroup, function and device
memory alike, and the sentinel dword that only they read goes away: the LDS
array is the program's dwords plus the lock again, and the device-memory
decision reserves the lock alone. The sentinel budget tests become lock
budget tests at that boundary, and the guarded-load test pins the branch.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 12:19:09 +13:00
Mouad-Scriptz-0andClaude Fable 5.1 ccaeeed416 fix(recompiler): point selected guest loads at locations nothing writes
A load selected instead of branched still accesses memory, so its fallback
element must be one no write can race with: scratch keeps element 0, LDS in
workgroup or function memory reads a sentinel dword appended after the
program's LDS and lock, and storage buffers read element 0xfffffffe, which
robustBufferAccess2 turns into a zero load without a memory access. The
device enables robustBufferAccess2 when it has it and the target carries the
flag; without it, and for LDS in device memory, buffer loads keep their
selections. The aligned high word of a buffer read re-reads the low word's
element instead of word 0. agc_guarded_memory_loads traces the emitted loads
in both device modes.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 12:18:50 +13:00
Mouad-Scriptz-0andClaude Fable 5.1 6dbbf4d7d9 perf(recompiler): select guest memory loads instead of branching around them
LDS, scratch and direct storage-buffer loads load element 0 when the lane is
inactive or the address is out of bounds and select 0 as the result, instead of
opening a selection per guard. Stores, atomics, formatted and physical-address
accesses keep their branches. A branch guard cost four blocks per lane half, and
the host compiler's time grows with the block count: PPSA11142's merged PSP
vertex program emitted 16,983 blocks and 1,710 conditional branches, 5,907 and
868 with the selects.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 12:18:28 +13:00
Adrià 4272979b31 Merge pull request #5953 from jagrat04/feat/libSceSsl-certificate-readers
feat(libSceSsl): implement certificate serial and name entry readers
2026-10-17 01:16:05 +02:00
Adrià 8c90c879e0 Merge pull request #5990 from Get-fix/ps4/windows-libc-for-libkernel
fix(relinker): search libc.prx for libkernel-only Windows executables
2026-10-17 01:16:00 +02:00
Adrià af0fff7627 Merge pull request #5974 from mohammad-alosta/fix/ngs2-geom-apply
fix(libSceNgs2): implement a minimal sceNgs2GeomApply pass-through
2026-10-17 00:52:37 +02:00
Adrià 11d1557bd7 Merge pull request #5084 from 0xRickx/fix/libscesystemservice-host-time-zone
fix(libSceSystemService): report the host time zone and summer time
2026-10-17 00:52:32 +02:00
Leonardo b868190bc2 fix(libSceVoiceQoS): take 4-arg local endpoint and relax unverified rejections 2026-10-17 00:39:37 +02:00
SandstromPLandClaude Opus 5.5 237fe9c269 docs(agc): cite the GL rule the multisampled depth scan follows
The debt entry cited ARB_multisample's centermost-sample shortcut as
what a single-sample scan into a multisampled depth target draws. The
draw tests each depth and stencil sample with the depth at the pixel
center, which is the rule above that shortcut (L185-L190 and
L422-L425); the shortcut is now named as an unmeasured alternative.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 00:17:51 +02:00