Commit Graph
5026 Commits
Author SHA1 Message Date
Dean Galvin 59fcdea9c4 fix(libkernel): pair the inotify halves of a rename in a watched directory
inotify queues IN_MOVED_FROM and IN_MOVED_TO of a rename one after the
other. The watcher thread could read the first before the second was
queued and report a rename inside the directory as a move to another
directory (NOTE_WRITE | NOTE_EXTEND instead of NOTE_WRITE), which made
guest_kqueue abort on loaded runners.

The watcher now reads the queue until it is empty and, when a move half
has no partner, calls getdents64 on the directory before reading again:
that takes the directory lock rename holds until both halves are queued.
2026-10-13 11:53:02 +13:00
jagrat Singh 59bd0c1782 feat(libkernel): accept MADV_PROTECT advisory hint in madvise 2026-10-13 04:21:59 +05:30
winstrexandClaude Opus 5.5 44debb29b6 docs(debt): record the sceAgcGetGsPrimPayload search and null pointers
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 19:46:20 -03:00
AlxcBTWandClaude Opus 5.5 52c71b837c feat(agc): add APS5_TRACE_SUMMARY_EVERY for summary lines of a long session
APS5_TRACE_SUMMARY_EVERY=<seconds> appends one line to aps5-summary.jsonl
every <seconds> seconds, at a present, from the per-scope totals the trace
threads already keep. No event buffer is allocated unless a window switch is
set as well; then the window records its full trace on top of the intervals
and its own summary line holds only the time inside the window. Each line has
the fields of the window summary line for its interval plus interval_start_s
and interval_end_s.

tools/trace_digest.py prints a summary file with interval lines as one row
per interval with a text sparkline of the frame p99 and the GPU busy time.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 00:40:52 +02:00
Yunus Shaikh 56d35172f5 fix(libkernel): accept flag 0x8000 in sceKernelMapFlexibleMemory
The libc.prx heap that Animal Well (PPSA22520 01.000.011, SDK 9.04)
bundles maps each arena with sceKernelMapFlexibleMemory(&addr, len, 3,
0x8000). It threw "Unsupported memory mapping flags 0x8000" before the
first frame. The flag is ignored as sceKernelMapNamedFlexibleMemoryInternal
already does; other unknown flags still throw.
2026-10-12 15:38:48 -07:00
MarcZX100 1988607409 test(agc): cover unaligned shader ABI headers 2026-10-12 22:28:55 +00:00
Dean df5108f90e Merge pull request #4530 from babyhuey/feat/libkernel-internal-memory-available-size
feat(libkernel): export sceKernelInternalMemoryGetAvailableSize
2026-10-13 11:16:17 +13:00
Gjon Gojcevic 7ee6e4af20 fix(shader): load the PERSP_SAMPLE and LINEAR_SAMPLE I/J pairs
The pixel entry prologue filled only the center and centroid pairs, so a
shader interpolating through a sample pair read I = J = 0 and every
attribute came out as its P0. Give the sample pairs their SPI_PS_INPUT_ADDR
VGPRs, fill them with the barycentrics of their kind, and classify
attributes read through LINEAR_SAMPLE as NoPerspective for host
interpolation.
2026-10-12 18:05:53 -04:00
p3nicillinandClaude Opus 5.5 1d115b8962 feat(libScePad): apply the angular velocity deadband
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 22:29:57 +01:00
Adrià 584cc4c571 Merge pull request #4761 from p3n1cillin/claude/agc-driver-validation-debug
feat(libSceAgcDriver): answer validation and shader debugging queries as the retail library does
2026-10-12 23:22:01 +02:00
Adrià 55b2b332c3 Merge pull request #4766 from p3n1cillin/claude/libc-heap-report-for-game
feat(libc): report heap backtraces and heap errors requested by the guest heap
2026-10-12 23:21:56 +02:00
p3nicillinandClaude Opus 5.5 e284717ebe feat(libSceAudioOut): list no audio descriptors in sceAudioOutExGetMonitorInfo
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 23:19:02 +02:00
babyhuey ff56dadc0a feat(libkernel): export sceKernelInternalMemoryGetAvailableSize 2026-10-12 17:18:53 -04:00
Adrià 559979dc67 Merge pull request #4750 from p3n1cillin/claude/session-signaling-connection-status
feat(libSceNpSessionSignaling): answer connection status queries offline
2026-10-12 23:18:08 +02:00
Adrià ceb6927888 Merge pull request #4671 from jagrat04/feat/libkernel-killpg
feat(libkernel): implement killpg
2026-10-12 23:17:33 +02:00
p3nicillinandClaude Opus 5.5 d3ef2b30b7 feat(libc): report heap backtraces and heap errors requested by the guest heap
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 22:15:55 +01:00
Adrià 962aba18f5 Merge pull request #4578 from jagrat04/feat/libkernel-getsid
feat(libkernel): implement getsid for calling process
2026-10-12 23:14:58 +02:00
Adrià FranchandClaude 53fc059af7 docs(technical-debt): record sceNetCtlGetIfStat assumptions
Co-Authored-By: Claude <[email protected]>
2026-10-12 23:13:54 +02:00
Adrià e0fad55e56 Merge pull request #4651 from ErenYeager1836/feat/libkernel-event-error
feat(libkernel): implement sceKernelGetEventError
2026-10-12 23:13:34 +02:00
lorkydey dadc23a8c1 fix(libSceNgs2): reject unverified listener transforms 2026-10-12 23:12:40 +02:00
jagrat Singh 3ce13e2b7d feat(libkernel): implement getsid for calling process 2026-10-12 23:11:21 +02:00
jagrat Singh f08dc5e3c3 feat(libkernel): implement killpg 2026-10-12 23:11:01 +02:00
p3nicillinandClaude Opus 5.5 8e5a1cae23 feat(libSceAgcDriver): answer the validation and shader debugging queries as the retail library does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 22:10:58 +01:00
lorkydey 4168cf3bbd feat(libSceNgs2): calculate the listener coordinate transform 2026-10-12 23:10:42 +02:00
Adrià 6d2f279863 Merge pull request #4607 from yunusshaikh7/feat/tracy-profiler
feat(agc): report performance timer scopes to Tracy with APS5_ENABLE_TRACY
2026-10-12 23:09:21 +02:00
David a0a238c86a feat(libkernel): implement sceKernelGetEventError
Return the event's data when EV_ERROR is set in its flags and 0 otherwise, as KytyPS5 does and as FreeBSD 11 kevent stores the errno of a failed change. A null event throws like the other accessors.
2026-10-12 23:07:39 +02:00
Adrià 5f01c80821 Merge pull request #4595 from jagrat04/feat/libkernel-setregid
feat(libkernel): implement setregid
2026-10-12 23:06:27 +02:00
Adrià 2a9068b159 Merge pull request #4138 from VitzS7/fix/libkernel-signal-waits
feat(libkernel): wait for pending guest signals in the signal waits
2026-10-12 23:06:25 +02:00
p3nicillinandClaude Opus 5.5 b9e9187cfc docs(debt): cite ASTRO BOT's call to sceNpSessionSignalingGetConnectionStatus
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 22:05:40 +01:00
p3nicillinandClaude Opus 5.5 3fa1fe34c9 feat(libSceNpSessionSignaling): answer connection status queries offline
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 22:05:23 +01:00
Adrià d415ce7b59 Merge pull request #4220 from xXPBSXx/fix/savedata-dir-name-search2
feat(libSceSaveData): answer sceSaveDataDirNameSearch2
2026-10-12 23:04:55 +02:00
Adrià 5ccb19b2a0 Merge pull request #4101 from xXPBSXx/fix/kernel-page-table-stats
fix(libkernel): answer sceKernelGetPageTableStats
2026-10-12 23:02:33 +02:00
Dean 6f438a1c2e Merge pull request #4318 from Amoenus/codex/fix-color-target-d64-x
feat(agc): support 64 KiB display XOR color targets
2026-10-13 10:01:57 +13:00
Adrià dabaaa7def Merge pull request #3611 from nicolasfalesy/feat/libkernel-pathconf
feat(libkernel_sys): implement pathconf
2026-10-12 23:01:45 +02:00
Dean 38772ed8b2 Merge pull request #4498 from milescoviello/fix/udp-unspec-disconnect
fix(libkernel): dissolve a UDP association on connect to AF_UNSPEC
2026-10-13 10:01:24 +13:00
Dean d3f275a0e6 Merge pull request #4429 from babyhuey/feat/libc-prosperoai-math
feat(libc): implement expm1f, erff, lgamma and llroundl
2026-10-13 10:01:12 +13:00
Dean 7ac3f460e5 Merge pull request #3952 from xXPBSXx/fix/recompiler-resource-control-flow
fix(recompiler): leave out descriptor sources behind a branch the capture decides
2026-10-13 10:00:59 +13:00
Dean 15f3aeaa93 Merge pull request #3883 from hansjm10/feat/agcdriver-get-hs-offchip-param
feat(libSceAgcDriver): export sceAgcDriverGetHsOffchipParam
2026-10-13 10:00:46 +13:00
Dean 22bb451c9f Merge pull request #3799 from xXPBSXx/fix/export-ppsa02530-imports-v4
fix(exports): export the calls PPSA02530 imports
2026-10-13 10:00:34 +13:00
Adrià 28c9dae73d Merge pull request #4569 from pipe1os/feat/libkernel-fdopendir
feat(libSceLibcInternal): implement fdopendir
2026-10-12 23:00:17 +02:00
Adrià 4998307175 Merge pull request #4218 from Mouad-Scriptz-0/feat/signin-dialog-npauth-signed-out
feat(libSceNpAuth): return the signed-out error from sceNpAuthGetAuthorizedAppCode
2026-10-12 23:00:04 +02:00
Dean 307c0a3afb Merge pull request #3819 from xXPBSXx/fix/export-ppsa29866-imports-v4
fix(exports): export the calls PPSA29866 imports
2026-10-13 09:59:30 +13:00
xXPBSXxandClaude Sonnet 5.5 989504ed84 feat(libSceSaveData): answer sceSaveDataDirNameSearch2
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-12 22:59:26 +02:00
Adrià 14db08435f Merge pull request #3747 from semirkabir/feat/ult-queue-optparam
feat(libSceUlt): accept option parameters in sceUltQueueCreate and sceUltQueueDataResourcePoolCreate
2026-10-12 22:58:01 +02:00
Adrià 96e25f1fc1 Merge pull request #4567 from jagrat04/feat/libkernel-get-libkernel-text-location
feat(libkernel): implement sceKernelGetLibkernelTextLocation
2026-10-12 22:57:32 +02:00
Adrià 2fabe44c48 Merge pull request #3980 from MarcZX100/codex/carry-libkernel-setrlimit
feat(libkernel): export setrlimit
2026-10-12 22:57:08 +02:00
Adrià 955f4fbffe Merge pull request #4207 from xXPBSXx/fix/ampr-amm-usage-stats
feat(libSceAmpr): answer sceAmprAmmGetUsageStatsData
2026-10-12 22:57:04 +02:00
DavidandClaude Fable 5.1 62f6764cc2 feat(libkernel_sys): implement pathconf
Porpoise 2.7 (PPSA99764) stops at load on main 0f863c10:

    FAIL: unresolved ELF import oc98+zOImus from libkernel_sys.prx

oc98+zOImus is pathconf (tools/nid_names.py, aerolib.csv at
zecoxao/sce_symbols 2883963a). It is exported from libkernel_sys next to
link and readlink.

The lookup follows FreeBSD 11's kern_pathconf and namei (release/11.0.0,
671fb7df): links are followed, a path of 1024 bytes or more or a
component over 255 fails with ENAMETOOLONG, a missing path with ENOENT.
The values are the constants of FreeBSD 11's UFS ufs_pathconf, which
vop_stdpathconf shares where both answer. Names whose UFS value depends
on the mount, the kernel options or the page size, or on which UFS and
vop_stdpathconf disagree, throw; other names fail with EINVAL. The
console's filesystem values are unverified and recorded in
TechnicalDebt.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-12 22:56:28 +02:00
xXPBSXxandClaude Sonnet 5.5 d283d484a2 fix(libkernel): answer sceKernelGetPageTableStats
PPSA30601 (Resonance) stops at the throwing stub. The four int* arguments follow
OpenOrbis' libkernel.h, the Orbital type database and SharpProspero; the values
follow KytyPS5 (2048 entries of 2 MiB per side) without its accounting of used
entries, listed in TechnicalDebt.md. A null pointer returns EFAULT.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-12 22:54:27 +02:00
Mouad-Scriptz-0andClaude Fable 5.1 09c985464c feat(libSceNpAuth): return the signed-out error from sceNpAuthGetAuthorizedAppCode
There is no PSN sign-in, so the code getter answers SCE_NP_ERROR_SIGNED_OUT
instead of throwing; its parameters are unknown and not read. Minecraft
(PPSA17221) calls it after its sign-in dialog and treats the result as
offline play. The request, token and wait calls are left to #3604.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-12 22:54:23 +02:00