Commit Graph
7981 Commits
Author SHA1 Message Date
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
al3w0f205 9f6924cc1d feat(libScePlayerSelectionDialog): add scePlayerSelectionDialogParamInitialize stub and tests 2026-10-20 13:30:24 +02:00
Adrià d50ec76da0 Merge pull request #7656 from andreamatt/fix/progress-history-utc-days
fix(progress_history): take history days in UTC
2026-10-20 13:25:16 +02:00
Adrià b9a097353c Merge pull request #7556 from MarcZX10/codex/libkernel-sysctl-mib-enoent
fix(libkernel): return ENOENT for measured absent sysctl MIBs
2026-10-20 13:23:08 +02:00
Adrià 8afd6ea478 Merge pull request #7660 from savvaniss/fix/sce-code-gaps
fix(relinker): resume scans after undecodable bytes between PS4 unwind functions
2026-10-20 13:17:15 +02:00
Adrià 437de6392f Merge pull request #7652 from billythemenace2/fix/kernel-raise-outside-host-code
fix(libkernel): redirect a raise only once the target leaves host code
2026-10-20 13:16:49 +02:00
Josip Parlov 321460a4ed fix(agc): reserve only the sampled textures alive from the storage image budget
StorageTextureBudget reserved the larger of the sampled textures alive
and their 2 GiB floor. The sampled budget already reserves
TextureCacheBudget, at least the storage cap, for the storage cache, so
on an 8 GB card the two caches each kept the other's maximum: with
3936 MiB used outside the caches on a 7189 MiB budget and 49 MiB of
sampled textures, the storage budget came out at 306 MiB and sat at its
512 MiB floor while about 2.7 GB of the budget stayed free.

The storage budget now reserves the sampled textures alive and gives
room back as they grow, at its next read. Where they hold 2 GiB or more
the budget is unchanged.
2026-10-20 13:09:20 +02:00
Adrià 1d41645527 Merge pull request #7633 from WallisSkill/fix/dualsense-audio-haptics
fix(libSceVideoOut): rumble a DualSense from haptic audio without a sound card
2026-10-20 13:07:58 +02:00
Adrià d3633bd9e3 Merge pull request #7554 from MarcZX10/codex/libkernel-rng-pseudo-mib
fix(libkernel): support kern.rng_pseudo MIB access
2026-10-20 13:06:57 +02:00
Federico Marras 367648cb79 feat(libSceVideoRecordingP): report a recorder that is never open in sceVideoRecordingGetStatus 2026-10-20 13:05:00 +02:00
Federico Marras a6a3831b7f feat(libSceNet): list IPv6 sockets in sceNetGetSockInfo6 2026-10-20 13:02:58 +02:00
Federico Marras d3629b034b feat(libSceVdecsw): report VP9 picture info in sceVdecswGetVp9PictureInfo 2026-10-20 13:00:41 +02:00
Federico Marras 849bc36362 feat(libSceHttp): report a context's pool in sceHttpGetMemoryPoolStats 2026-10-20 12:58:42 +02:00
akkadbakkad89 ea931ada35 feat(libSceNpGameIntent): implement the AppLauncher lifecycle AC Shadows calls
Generated with [Devin](https://devin.ai)
2026-10-20 16:28:09 +05:30
Federico Marras 7c83407e11 feat(libSceSystemService): convert between the running title's app id and title id 2026-10-20 12:56:47 +02:00
Evrim Cicek ad7e1acdb6 fix(libkernel): append positioned writes on an O_APPEND descriptor on Windows
On Windows, sceKernelPwrite, pwrite, sceKernelPwritev, pwritev and the AIO
write commands wrote at the given offset on a descriptor opened with
O_APPEND. FreeBSD's vn_write sets IO_APPEND for an O_APPEND regular file
whether or not an offset is given, the filesystem then writes at the end of
the file, and the file offset is left unchanged. Write at Windows'
end-of-file offset in that case, and gather a multi-buffer pwritev into one
write as writev already does.
2026-10-20 13:55:58 +03:00
pushkarreddyy 3bb39053ae fix(savedata): return parameter error on null arguments in umount2, loadIcon and saveIcon 2026-10-20 12:54:28 +02:00
Federico Marras e517ac5281 docs(libSceAjm.native): credit the instance call signatures to the sources that give them 2026-10-20 12:54:14 +02:00
Dean 294f9d27a3 Merge pull request #8021 from ymatrix1/feat/audioout-missing-exports
feat(libSceAudioOut): export missing firmware audio output interfaces
2026-10-20 23:53:50 +13:00
Adrià 777bd0f4b2 Merge pull request #7564 from slopggobblercobbler81/fix/appcontent-download-error-codes
fix(libSceAppContent): return NOT_MOUNTED for invalid download mount point
2026-10-20 12:51:43 +02:00
Federico Marras 213d68cfee feat(libSceMbus): report a device set that never changes in sceDeviceServiceGetGeneration 2026-10-20 12:45:30 +02:00
MarcZX100 7b05271abb fix(libkernel): support kern.rng_pseudo MIB access 2026-10-20 12:29:39 +02:00
Adrià 6bd02dd915 Merge pull request #7545 from ionut27001/fix/libc-strtod-nan-payload
fix(libc): parse NaN payloads in strtod as measured on a PS5
2026-10-20 12:25:58 +02:00
Adrià 9299e6fd8a Merge pull request #7542 from ionut27001/fix/libkernel-rng-pseudo-block
fix(libkernel): return kern.rng_pseudo in 64-byte blocks as measured on a PS5
2026-10-20 12:24:51 +02:00
Adrià d2d9b1057b Merge pull request #7533 from hugodearaujo/fix/agc-cube-extra-slices
fix(agc): decode cube descriptors with slices past their last whole cube
2026-10-20 12:24:46 +02:00
David 1713855fb6 docs(debt): record barycentric emulation in rect-list draws 2026-10-20 14:23:17 +04:00
Dean e41fb9db5d Merge pull request #8009 from primesoul-web/feat/ime-open-filters
feat(libs): the sceImeOpen text and external-keyboard filters
2026-10-20 23:20:35 +13:00
battleblob1andClaude Opus 5.5 9b84f9d5a1 fix(recompiler): replay stencil exports of pixel shaders that only read through BDA
StencilReplaySafe refused every program with usesDma, including pixel
shaders whose only BDA accesses are reads (Onimusha: Way of the Sword,
PPSA27836: one global load, then image and buffer reads). Replaying such
a shader per reference value is idempotent: its only side effect is the
first-fault record, a compare-exchange that keeps the first fault; a
fault is never retried but thrown by CheckFault, and replayed draws with
a BDA table already wait and check faults before publishing. Written-page
tracking exists only in programs with bdaWrites, which stay refused.

Compiled shaders now carry bdaWrites, and ShadersWriteMemory counts a BDA
page table as a memory write only for a program that writes through it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 13:20:09 +03:00