Commit Graph
10207 Commits
Author SHA1 Message Date
Dean 1332ae9b30 Merge pull request #9924 from santhoshkumar-dev/codex/freetype-postscript-info
feat(libSceFreeType): expose PostScript font information
2026-10-30 02:27:10 +13:00
Dean 478b5f1a93 Merge pull request #12635 from Lindamea1/feat/libkernel-sys-internal-libc-mutex-init
feat(libkernel_sys): implement scePthreadMutexInitForInternalLibc and scePthreadMutexattrInitForInternalLibc
2026-10-30 02:26:47 +13:00
Dean df4120aaae Merge pull request #12631 from Lindamea1/feat/freetypeot-scaled-arithmetic
feat(libSceFreeTypeOt): implement FT_MulDiv_No_Round, FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled and ft_highpow2
2026-10-30 02:26:31 +13:00
Dean f81c7a765c Merge pull request #12630 from Lindamea1/feat/icu-space-classifiers
feat(libSceIcu): implement u_isspace, u_isblank, u_isWhitespace, u_isJavaSpaceChar and u_isUWhiteSpace
2026-10-30 02:26:13 +13:00
Dean 7aabd03d0a Merge pull request #12628 from zaryabzip/feat/camera-audio-offline
feat(libSceCamera): answer the camera audio calls without a camera
2026-10-30 02:25:54 +13:00
Dean 74fe94e2f3 Merge pull request #12638 from Lindamea1/feat/bluetoothhid-thread-param-init
feat(libSceBluetoothHid): implement sceBluetoothHidThreadParamInitialize
2026-10-30 02:20:24 +13:00
Dean b6408701c7 Merge pull request #12636 from Lindamea1/feat/libkernel-sys-kldstat
feat(libkernel_sys): implement kldstat
2026-10-30 02:20:06 +13:00
Dean b425614531 Merge pull request #12634 from Lindamea1/feat/hmd2-reprojection-no-session
feat(libSceHmd2): implement the no-session answers of sceHmd2ReprojectionEnableMirroring, GetPredictedDisplayTime and SetRenderConfig
2026-10-30 02:19:50 +13:00
Hedi Trigui bbb4d05d42 feat(libkernel): implement posix_madvise 2026-10-29 14:14:36 +01:00
Adrià df1b77626b fix(ngs2): drop the matrix info guard main's wider output already covers 2026-10-29 14:05:31 +01:00
Eduardo Ruiz 55ed30d1aa docs(ngs2): shorten the custom rack debt entries 2026-10-29 13:59:33 +01:00
Eduardo Ruiz 114ae92449 fix(ngs2): reject matrices that do not fit the matrix info output 2026-10-29 13:59:33 +01:00
Eduardo Ruiz 4c4a4932e0 fix(ngs2): keep wide custom submixer voices and matrixless maps unsupported 2026-10-29 13:59:05 +01:00
Adrià 157b02c4f1 Merge pull request #11852 from ionut27001/fix/wf-scanf-q-length-linux
fix(libc): end sscanf and vsscanf at a q length on Linux and macOS
2026-10-29 13:57:18 +01:00
Christian 6f79055a00 fix(shader): keep mesh register windows out of local memory on NVIDIA
On NVIDIA's proprietary driver, function arrays that live in local memory
and are read under a data-dependent branch return wrong values in
subgroups 1-3 of a mesh workgroup; subgroup 0 is correct. A wave64
geometry program whose relative addressing keeps its VGPRs in the vector
window therefore loses register writes in every wave but the first. In
the clipping geometry program of Sony's PS5 PSP emulator (PPSA07550) the
empty waves never cleared their candidate primitive slots and wrote
degenerate triangles over wave 0's, so the 3D menu drew spikes.

On that driver a mesh program's window now lives in a device-local
storage buffer of 256 workgroup slots of 65536 dwords, claimed through a
per-slot lock and released after the final barrier. The pool is created
before the first draw that uses it records anything, and its header is
zeroed in a batch of its own that is submitted and waited for; the pool
is published only after that wait, and a failure releases it. Direct
register accesses keep one function variable per register; a direct
store also writes the buffer when a buffer read can see it, relative
reads load the buffer, relative writes store only to it, and a direct
read that may follow a relative write loads the buffer and refreshes the
variable. A buffer entry is zeroed only when a buffer read can see it
before a write. APS5_NO_MESH_WINDOW_BUFFER=1 keeps the arrays.
2026-10-29 08:56:39 -04:00
Cursor Agentanddevindevsec 21d5544daf fix(libc): reject compact unwind entries without a real frame
A DWARF-mode index entry with no usable FDE, encoding 0, an unknown
personality, and a mode-3 immediate outside the function now fail the
unwind. A Linux test walks a synthetic __unwind_info blob.

Co-authored-by: devindevsec <[email protected]>
2026-10-29 12:53:13 +00:00
JJenkx 24d86650b0 fix(libc): retain hexadecimal coefficient expansion and word carries 2026-10-29 08:52:29 -04:00
JJenkx 81a1777ceb fix(libc): preserve hexadecimal coefficient precision boundaries 2026-10-29 08:52:29 -04:00
JJenkx 01eef3d3e6 fix(libc): scale hexadecimal values using the guest x87 mode 2026-10-29 08:52:29 -04:00
JJenkx 04fe64c2f6 fix(libc): decode unscaled hexadecimal Dinkumware fields 2026-10-29 08:52:28 -04:00
AdriàandClaude Sonnet 5.5 31b1ed651b fix(libc): keep debt list contiguous and sort test includes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 08:52:07 -04:00
JJenkx 5571c7c299 fix(libc): preserve errno for unscaled hexadecimal range results 2026-10-29 08:52:07 -04:00
Adrià df53927b7b Merge pull request #10929 from Aspct3434/claude/modest-curie-705h76
fix(libc): read characters outside the BMP as surrogate pairs in fgetwc
2026-10-29 13:49:54 +01:00
Adrià aab650b4d3 Merge pull request #11893 from JJenkx/windows/libc-printf-ignored-lengths
fix(libc): ignore printf length modifiers that do not apply, as titles' libc.prx does
2026-10-29 13:49:01 +01:00
Adrià 1ac12cc534 Merge pull request #10803 from slopgobblercobbler/fix/spirv-instruction-word-bounds
fix(shader): validate SPIR-V instruction word count boundaries and phi patching
2026-10-29 13:48:55 +01:00
Adrià efc24518bc Merge pull request #11862 from ionut27001/fix/libkernel-setrlimit-store-limits
fix(libkernel): store setrlimit RLIMIT_CORE soft limit, ignore raised DATA/STACK hard limits
2026-10-29 13:47:57 +01:00
Adrià 7b57271358 Merge pull request #11504 from verusferro/feat/libc-xfilesystem-error
feat(libc): throw std::filesystem::filesystem_error from _Xfilesystem_error as the console's libc does
2026-10-29 13:47:45 +01:00
JJenkxandClaude Opus 5.5 dc1d801c4c fix(libkernel): map Windows shared memory with the regular file checks
On Windows, mmap sent a shared memory descriptor straight to the shared
file mapper, skipping the checks and the private path that a regular
file descriptor takes. A private mapping of a named or anonymous object
then failed with EOPNOTSUPP, and a writable shared mapping of a
read-only descriptor failed with EIO instead of EACCES. Shared memory
objects are files on Windows, so they now take the same access checks
and the same private copy as a regular file; only the directory, device
and file-type refusals stay limited to other descriptors.

guest_named_shm_windows_mapping covers shared mappings through two
descriptors, pread and pwrite against them, an offset mapping, a private
mapping, read-only mappings and the mappings after shm_unlink.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 08:47:28 -04:00
Cursor Agentanddevindevsec fef01787f8 fix(libc): walk the Mach-O compact unwind index
Co-authored-by: devindevsec <[email protected]>
2026-10-29 12:46:02 +00:00
Hedi Trigui 3f086c312a feat(libc): implement qsort_r 2026-10-29 13:28:05 +01:00
p3nicillinandClaude Opus 5.5 ecadb6068a fix(libSceVideoOut): refuse the on-screen unregister on the main bus only
EVO Player and Prospero Win measured RESOURCE_BUSY on ports opened on
bus type 0. The overlay bus is unmeasured, so its on-screen set is
still released as before, which video_out_flip_overlay relies on.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 12:18:02 +00:00
p3nicillinandClaude Opus 5.5 5768bc971f fix(libSceVideoOut): refuse to unregister the buffer set on screen
The console answers RESOURCE_BUSY (0x80290009) when the set holding
the buffer on screen is unregistered, and the set stays registered:
EVO Player measured it with a re-registration then failing
SLOT_OCCUPIED, and Prospero Win on firmware 12.02 after its flips went
idle. The set was released and 0 returned instead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 12:18:02 +00:00
p3nicillinandClaude Opus 5.5 7c97d68937 fix(libkernel): throw for every set size the console was not measured with
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 12:18:00 +00:00
p3nicillinandClaude Opus 5.5 615414a7db docs(libkernel): keep the getaffinity entry apart from the cpuset entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 12:18:00 +00:00
p3nicillinandClaude Opus 5.5 b4861eb197 fix(libkernel): answer pthread_getaffinity_np for the console's set sizes
PS5_PayloadSDK measured in a title (firmware 12.09) that
pthread_getaffinity_np answers sets of 8 and 16 bytes and returns ERANGE
for 32 bytes or more, so FreeBSD's 32-byte cpuset_t is refused. The call
accepted exactly 32 bytes and refused every other size. Sizes under 8
keep ERANGE; 17 to 31 bytes, between the measured sizes, throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 12:18:00 +00:00
p3nicillinandClaude Opus 5.5 4cf7411a46 feat(libkernel): add sceKernelGetExecutableModuleHandle
Return the main program's handle, the first one sceKernelGetModuleList
lists and one sceKernelGetModuleInfo accepts. reSOT (PPSA99023) imports
it from libkernel and passes the handle to sceKernelGetModuleInfo to find
its own code segment; before this its eboot failed to load on the
unresolved import.

The PS5 3.20 export lists have it in libkernel as well as libkernel_sys,
and on Windows a libkernel import never reaches libkernel_sys, so the
throwing libkernel_sys stub moves to libkernel as pselect did.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 12:17:59 +00:00
ntamas94andClaude Opus 5.5 dd490e0c7a docs(libSceNpWebApi): record the method-after-DELETE check as measured at SDK 5.05
The offline PS4 probe from #9797, built with SDK version 0x05050001, answers
sceNpWebApiCreateRequest with method 99 with INVALID_ARGUMENT (0x80552902) on
firmware 10.71, where the earlier build with a non-retail SDK version
accepted it. The debt entry now says the SDK 2.50 rule holds at that
version and that the version where it starts is not measured.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 13:00:48 +01:00
hypermoistandClaude Opus 5.5 72cde05a64 feat(libSceNpCommon): implement the sce::np::Object new and delete operators
The ten operators allocate an object behind a 16-byte header that keeps its
allocator and free it through that allocator, as libSceNpCommon.sprx of
firmware 13.60 does (read from disassembly, not measured on a console). Five
were NotImplemented stubs; the other five were not exported.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:58:39 +13:00
Adrià 5454cd2e45 Merge pull request #11130 from imellag/perf/macos-mimalloc
feat(libs): let relinked macOS games opt into mimalloc
2026-10-29 12:58:23 +01:00
Adrià b9246db364 Merge pull request #11853 from ionut27001/fix/wf-videoout-flipmaster-measured-codes
fix(libSceVideoOut): answer the flip-master calls as measured on a PS5
2026-10-29 12:57:56 +01:00
Adrià 5a88858805 Merge pull request #11720 from ionut27001/fix/savedata-cancel-not-initialized
fix(libSceSaveData.native): answer sceSaveDataCancel before initialization as measured in a PS5 payload
2026-10-29 12:57:24 +01:00
Adrià 7c3e71d862 Merge pull request #12457 from simnJS/refactor/name-nid-database-stubs
refactor(prx): name the Xml, NKWebKit, Jsc and FreeTypeOl stubs the NID database resolves
2026-10-29 12:57:18 +01:00
Adrià aef5c5006c Merge pull request #12453 from simnJS/feat/audio3d-port-lifecycle
feat(audio3d): route sceAudio3dPortCreate through the 0x10 port open
2026-10-29 12:57:13 +01:00
Adrià 1c5d59dfda Merge pull request #11315 from kyon-eth/feat/ngs2-custom-pitchshift
feat(ngs2): implement custom PitchShift and external render jobs
2026-10-29 12:57:06 +01:00
Adrià 40c36ae1f8 Merge pull request #12405 from kyon-eth/feat/music-framework-1360-inventory
feat(libSceMusicFrameworkInterface): declare 20 additional callable exports
2026-10-29 12:57:01 +01:00
slopgobblercobbler c8fcb0bda4 fix(agc): validate pipeline cache header format and empty cache paths 2026-10-29 12:09:44 +01:00
Dean ba5b5330b3 Merge pull request #12706 from Gonic0/fix/agc-barycentric-patches-restart
fix(agc): draw compacted restart lists and restart-free strips through the barycentric patches
2026-10-29 23:56:52 +13:00
Qu Yi 93c4ab11a5 chore(libSceIcu): merge main and resolve debt conflict 2026-10-29 18:56:12 +08:00
Dean 3b6ccf73ae Merge pull request #12620 from zaryabzip/feat/nputility-title-ctx-a
feat(libSceNpUtility): create lookup and word filter title contexts for a user id
2026-10-29 23:54:33 +13:00
Dean 1d8fd64e23 Merge pull request #12719 from XairRrR/docs-hw-oracle-xdg-cache
docs(hw-oracle): build the oracle under XDG_CACHE_HOME when it is set
2026-10-29 23:54:05 +13:00