Commit Graph
7963 Commits
Author SHA1 Message Date
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
Adrià a0e0985288 Merge pull request #7551 from mazen320/fix/open-nofollow-junction
fix(libkernel): stop O_NOFOLLOW from opening a Windows directory junction
2026-10-20 12:20:01 +02:00
Adrià 4f99cbffd7 Merge pull request #7536 from voidlakhan/fix/savedata-setparam-null-arguments
fix(savedata): return parameter error on null arguments in setParam
2026-10-20 12:18:56 +02:00
MarcZX10 e054c83eea Merge upstream main into measured absent sysctl MIBs 2026-10-20 10:12:56 +00:00
Adrià 949e95dbe7 Merge pull request #7495 from nekomancer01/feat/rudp-poll
feat(libSceRudp): implement the poll exports
2026-10-20 12:12:43 +02:00
KernelPanicNT 6539598d51 fix(libSceNgs2): accept system option flag bit 1
The firmware's shared system option validator checks the size and the
fields from +0x6c on, not flags at +0x68. Rise of the Ronin (PPSA04540)
creates its system with flags 2, which threw. Accept and ignore bit 1;
every other bit still throws, now naming the value.
2026-10-20 10:11:07 +00:00
Yuri Olive 4721791b9c feat(libSceSystemService): export missing firmware interfaces 2026-10-20 07:10:56 -03:00
Yuri Olive afd20388a9 feat(libSceGameLiveStreaming): export missing firmware interfaces 2026-10-20 07:10:42 -03:00
Yuri Olive f3497e153e feat(libSceAvSetting,libSceHidControl): export missing firmware interfaces 2026-10-20 07:10:36 -03:00
Yuri Olive d4387fbaf7 feat(libSceAudioIn,libSceAudio3d,libSceVoice): export missing firmware interfaces 2026-10-20 07:10:28 -03:00
Yuri Olive 3553a1dfc1 feat(libSceRegMgr): export missing firmware interfaces 2026-10-20 07:10:18 -03:00
Yuri Olive 2141552cd5 feat(libSceAppInstUtil): export missing firmware interfaces 2026-10-20 07:10:11 -03:00
Yuri Olive c5d16f952e feat(libSceNpTus): export missing firmware interfaces 2026-10-20 07:10:05 -03:00
Federico Marras bd1cbb90de feat(libSceNgs2): report the rack and index that own a voice in sceNgs2VoiceGetOwner 2026-10-20 12:10:02 +02:00
hypermistandClaude Opus 5.5 6cd31eeaa5 docs(libSceNpSessionSignaling): record the implemented lookups
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 23:08:09 +13:00
Federico Marras 8a7d16b001 feat(libSceNetCtl): report no error for IPv6 events in sceNetCtlGetResultV6 2026-10-20 12:03:19 +02:00
Federico Marras 2b633ab57d feat(libSceNgs2): keep caller data on racks with sceNgs2RackSetUserData and sceNgs2RackGetUserData 2026-10-20 12:03:19 +02:00
hypermistandClaude Opus 5.5 35a2cbcedb fix(libSceAgc): use firmware semaphore memory results
sceAgcSetAmmSemaphoreMemory and sceAgcGetSemaphoreLabel return the
firmware's errors instead of throwing, registration clears the whole
memory, and sceAgcSetSemaphoreMemory shares the registration with its
1 GiB size limit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:57:30 +13:00
KernelPanicNT 7dbe27c8da feat(libSceNgs2): map waveform blocks of linear PCM and float types 2026-10-20 09:44:59 +00:00