Commit Graph
10207 Commits
Author SHA1 Message Date
KianandClaude Opus 5.5 ae305dfd5d feat(agc): APS5_DUMP_SHADERS takes a list of program addresses
A comma-separated list of hex program addresses (optional 0x prefix) now
writes only those programs' requests, so one expensive shader can be
captured without serializing every request a title prepares. Any other
value, such as 1, keeps writing every request. A filtered-out program
returns no name, so diagnostics never point at a file that was not
written, and it stays eligible for a later list.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:26:48 +10:00
AdriàandClaude Sonnet 5.5 5782e6d6c1 fix(libScePlayerInvitationDialog): keep Open running until UpdateStatus, check param first, update test and debt
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 14:23:48 +01:00
Aniket TuliandClaude Sonnet 5.5 43cae067c5 feat(libScePs2EmuMenuDialog): return the measured firmware 13.42 results
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 14:22:17 +01:00
simnJS 9b9e87bd72 feat(libSceNpManager): answer sceNpWaitAsync as sceNpPollAsync does 2026-10-28 14:18:04 +01:00
milescovielloandClaude Opus 5.5 ef9c7a06a5 fix(libkernel): answer vm.loadavg with the host's load averages
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 13:11:49 +00:00
simnJS 215192dd37 feat(libkernel_sys): answer sceKernelIsNeoMode from the param.sfo Neo-mode attribute
A title with param.sfo gets bit 23 (0x00800000) of its ATTRIBUTE key,
the PS4 Pro (Neo) mode support flag, and 0 without the key, as shadPS4
answers on a Neo console; sceKernelHasNeoMode and sceKernelIsAuthenticNeo
already report one. A title with param.json still throws: what a PS5
application gets is unknown. The param.sfo parser now reads ATTRIBUTE and
libkernel exposes it to the other libraries.
2026-10-28 14:10:21 +01:00
MarcZX10 c1e321f26d feat(libSceNet): implement sceNetGetStatisticsInfo
sceNetGetStatisticsInfo threw NotImplemented_nid_no_patch. It now fills
the six 32-bit fields of the statistics block (kernel memory free and
minimum free, packet count, QoS packet count, library memory free and
minimum free) and fails with NET_EFAULT, setting errno, for a null
pointer. The layout and the "plenty free, nothing queued" answer follow
shadPS4's net.cpp and net_types.h; the host has no counter for the
console's network memory, so the values are not measured. The debt file
records this, and the test checks the null pointer, the field
invariants and that the flags argument is ignored.
2026-10-28 13:07:48 +00:00
MarcZX10 d7c13a621e feat(libSceNet): implement the pool-checked Show*WithMemory diagnostics
sceNetShowIfconfigWithMemory, sceNetShowPolicyWithMemory and
sceNetShowRoute6WithMemory threw NotImplemented_nid_no_patch. They now
behave like the existing sceNetShowRouteWithMemory: an unknown memory
pool id fails with NET_EBADF (errno set), a live pool returns success
without printing. The behaviour follows shadPS4's net.cpp, which does
the same for these three. The new silent stubs are listed in the
libSceNet technical debt file, and the tests cover the invalid id, live
pool and destroyed pool cases.
2026-10-28 13:07:48 +00:00
MarcZX10 436769c634 fix(libkernel): recognize Windows anonymous shared memory descriptors 2026-10-28 13:04:38 +00:00
SeaSunPTandClaude Opus 5.5 9f6c3527ed fix(libSceAudioOut): refuse system debug state and chat calls before sceAudioOut2Initialize
#9838 read sceAudioOut2SetSystemDebugState in PS5 firmware 3.20 and 4.03:
it returns 0x80268006 (not initialized) before sceAudioOut2Initialize,
ahead of its pointer, id and size checks. The debt entry for
sceAudioOut2EnableChat and sceAudioOut2DisableChat records the same
0x80268006 before AudioOut2 initialization. Both were left out while
AudioOut2 initialization was not tracked; AudioOut2IsInitialized_nid_no_patch
now tracks it, so all three return 0x80268006 first and change no state.
The two debt entries drop the closed gap.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 12:56:22 +00:00
PrivacyOnion 098f9a8621 feat(libSceInvitationDialog): implement sceInvitationDialogGetStatus and stub OpenA and GetResultA 2026-10-28 13:55:05 +01:00
PrivacyOnion 634e7eb41f feat(libScePosixForWebKit): implement opendir, closedir, readdir, readdir_r 2026-10-28 13:52:16 +01:00
AdriàandClaude Sonnet 5.5 638996829b docs(libkernel): shorten the kevent on a kqueue debt entry
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 13:45:47 +01:00
AdriàandClaude Sonnet 5.5 7cdb7a8780 test(libkernel): shrink the cleared kqueue race, match watched notes by ident, correct the kqueue debt entry
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 13:45:37 +01:00
Adrià bd19a7e561 docs(libSceGameLiveStreaming): shorten silent stub entry 2026-10-28 13:45:33 +01:00
Adrià Franch 8c2599562e docs(agc): record the CLEAR_STATE NUM_INTERP value in debt 2026-10-28 13:45:02 +01:00
David 4c77b6ab65 feat(libkernel): support EV_CLEAR on a kqueue watched by another kqueue
FreeBSD re-evaluates a kqueue's EVFILT_READ note from kqueue_wakeup,
which runs whenever the watched kqueue queues a note, so an EV_CLEAR
note fires again only after such an activation. The equeue now counts
activations, and the EV_CLEAR note fires when the count moves while
notes are queued.
2026-10-28 13:44:50 +01:00
AlxcBTW a893c2caa2 feat(libSceGameLiveStreaming): answer offline setting and feedback calls locally 2026-10-28 13:44:47 +01:00
Kyon facacb4684 fix(libkernel_sys): resolve known NID aliases and document identities 2026-10-28 12:40:14 +00:00
AdriàandClaude Sonnet 5.5 7da980327e docs(libSceNpTrophy2): drop literal NID alias claim, none are added
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 13:38:17 +01:00
Kyon 5a1bd58d90 feat(libSceNpTrophy2): declare 15 additional callable exports 2026-10-28 13:38:14 +01:00
Dean 750cf6cf48 Merge pull request #11595 from alvaroelpob/fix/libkernel-sys-linkat-symlink-itself
fix(libkernel_sys): link a symbolic link itself in linkat without AT_SYMLINK_FOLLOW
2026-10-29 01:32:29 +13:00
Dean d580b1f552 Merge pull request #11441 from p3n1cillin/claude/kernel-cpumode-game
feat(libkernel_sys): implement sceKernelGetCpumodeGame and sceKernelSetCpumodeGame as measured on a PS5
2026-10-29 01:32:11 +13:00
Adrià bdbe620925 docs(libSceNpSignaling): drop NID alias claim, none are added 2026-10-28 13:31:50 +01:00
Kyon 3c9b201113 feat(libSceNpSignaling): declare 15 additional callable exports 2026-10-28 13:31:50 +01:00
Kyon 369346fa2f feat(libSceMusicFrameworkInterface): declare 20 additional callable exports 2026-10-28 12:23:28 +00:00
Kyon ebadd68da1 feat(libSceResourceArbitrator): declare 14 additional callable exports 2026-10-28 12:23:28 +00:00
Kyon aad11c3de8 feat(libSceHidControl): declare 19 additional callable exports 2026-10-28 12:23:28 +00:00
Kyon e8d2532535 feat(libSceBgft): declare 12 additional callable exports 2026-10-28 12:23:24 +00:00
verusferro 778c4a74ec feat(libc): throw std::filesystem::filesystem_error from _Xfilesystem_error as the console's libc does 2026-10-28 15:10:30 +03:00
Get-fix 0bec339021 feat(libSceAgcDriver): draw PS4 (GCN) command buffers
PS4 color and depth targets, PS4 graphics EOP events, and the PS4 tile
modes (1D/2D thin and display, depth with tile split, PRT, linear
general) on the AGC executor, with a GPU detiler for every mode.
Textures sampled over the padded corner of a render target are GPU block
copies, and the PS4 SDK pattern-fill compute kernel runs as a GPU fill
when it repeats one dword, so render targets and HTILE are cleared
without a CPU drain. Two-dword patterns keep running the kernel: as
fills, Limbo's clears of its 64-bit target made its gameplay advance
about half as far per frame.
Tests cover the tiling equations against addrlib formulas, the GPU
detiler for every mode and element size, and the fill ranges.
2026-10-28 13:01:27 +01:00
David 0e693817d8 docs(debt): list the unnamed ksem calls under Functional 2026-10-28 12:57:05 +01:00
David fd6513d6ff refactor(libkernel): move the unnamed ksem calls into libkernel
The PS5 3.20 export lists have ksem_* in libkernel as well as
libkernel_sys, and on Windows a libkernel import never reaches
libkernel_sys, so titles importing them from libkernel did not find
them. Following pipe1os's review on #9284, also: ENOSPC from
ksem_init when no descriptor is left, the SEM_MAX limit of 30 with
ENOSPC, and dup/dup2 from a ksem id throwing as for a kqueue.
2026-10-28 12:57:04 +01:00
Misjudgments 410e3b8b21 fix(libSceFont): keep horizontal writing on a single baseline
Horizontal writing steps advanced the pen by the glyph's vertical advance on
every character, so text drifted down diagonally (steepest for CJK fonts,
whose vertical advance is roughly the em size). The step's GlyphMetrics
width/height were also overwritten with the pen position, leaving the first
glyph of each run invisible at pen (0, 0).

Every supported writing form (0x10/0x11/0x12) is horizontal, so the pen must
advance only along X and the step reports the real glyph width/height.
2026-10-28 12:50:41 +01:00
Alexandre Figueiredo 2b21d42b76 feat(libc): export the remaining aligned and array operator new and delete overloads 2026-10-28 11:50:06 +00:00
Dean 2227f13661 Merge pull request #11516 from Lindamea1/fix/videoout-event-getters-invalid-event
fix(libSceVideoOut): return INVALID_EVENT from the event getters for an event of another filter
2026-10-29 00:35:41 +13:00
Dean 0c4d871f18 Merge pull request #12253 from Michael-KD/fix/fma-f32-denormal-modes
fix(shader): translate the fused f32 fma forms in f32 denormal mode 2
2026-10-29 00:32:38 +13:00
Dean 7d223dd6da Merge pull request #12252 from Michael-KD/fix/f32-rounding-frexp-denormal-modes
fix(shader): translate f32 fract, floor, ceil and frexp_mant in f32 denormal modes 1 and 2
2026-10-29 00:32:22 +13:00
Dean 0b9da0027d Merge pull request #12294 from Ninot1Quyi/feat/icu-cstring-helpers
feat(libSceIcu): implement C string conversion helpers
2026-10-29 00:31:48 +13:00
Dean 448450275f Merge pull request #11071 from slopgobblercobbler/fix/userservice-platform-privacy-validation
fix(libSceUserService): validate user in sceUserServiceGetPlatformPrivacyWs1
2026-10-29 00:26:58 +13:00
Kyon d7e647cbc2 Merge remote-tracking branch 'origin/main' into feat/kernel-sys-1360-inventory 2026-10-28 11:14:02 +00:00
Kyon 4440340357 Merge remote-tracking branch 'origin/main' into feat/libressl3-1360-inventory 2026-10-28 11:14:02 +00:00
Matheus Herberts 77a4c6f066 docs(relinker): record MULX testing under Rosetta 2026-10-28 07:53:33 -03:00
Queuze 595df6c84d feat(libSceFreeType): support autofitter scripts 2026-10-28 07:45:12 -03:00
dantdmdarealguy a793bd1341 fix(libkernel): read a watched file's times again after its size on Windows
TakeSnapshot read FileBasicInfo and then FileStandardInfo. A truncate or
write landing between the two left a snapshot with the new size and the
old LastWriteTime, and the next poll reported the same size with a newer
LastWriteTime as NOTE_WRITE. guest_kqueue's FileWatch aborts on Windows
when that happens after its ftruncate to 0.

Read FileBasicInfo again after FileStandardInfo and retry until both
reads agree. The window NTFS itself leaves, a truncate's new
LastWriteTime shown before its new size, stays and is listed in the
libkernel debt.
2026-10-28 11:42:55 +01:00
Queuze f5a61dc3c5 docs: clarify the shader loop guard limit 2026-10-28 07:27:36 -03:00
Mohamed Aziz Ktata dbd826bc88 fix(libkernel): map shared memory and files executable on Windows
A guest mmap with PROT_EXEC and MAP_SHARED of a shared-memory object or a regular file threw on Windows. The section is now created from a handle reopened with GENERIC_EXECUTE, as PAGE_EXECUTE_READ or PAGE_EXECUTE_READWRITE, the owner ACE of named objects grants execute with read, and a writable shared mapping of a read-only descriptor fails with EACCES, as FreeBSD 11.4 shm_mmap and vn_mmap do.

Fixes #12337
2026-10-28 11:14:08 +01:00
Dean 3a40945e62 Merge pull request #12298 from oneandonlydean/revert-11199-helper-lane-masks
revert(shader): restore pixel helper lanes in guest lane masks (#11199)
2026-10-28 22:57:31 +13:00
Dean a278151901 Merge pull request #12013 from simnJS/feat/npmatching2-signaling-status
feat(libSceNpMatching2): answer signaling connection status and context start abort offline
2026-10-28 22:53:59 +13:00
Dean 846ae118f9 Merge pull request #11861 from ionut27001/fix/libkernel-sysconf-measured-names
fix(libkernel): sysconf answers the names a PS5 payload process answers
2026-10-28 22:52:41 +13:00