Commit Graph
14017 Commits
Author SHA1 Message Date
Retr0 36226741f5 fix(libc): open a directory with fopen in a read mode on Windows
FreeBSD 11 fopen opens the path with _open, and vn_open_vnode refuses a
directory only for FWRITE or O_TRUNC, so fopen of a directory in a read
mode succeeds; Linux hosts already open it. On Windows CreateFileW
without FILE_FLAG_BACKUP_SEMANTICS refused it with EACCES.

fopen now opens such a path as a libkernel directory descriptor, which
libkernel registers in libc when it loads, and fclose and freopen remove
it from libkernel's table. Reads on the stream fail with EISDIR and set
the error indicator, as on a Linux host and FreeBSD's tmpfs: the Windows
CRT fails them already but reports EINVAL. Writes fail with EBADF, and
fseek, ftell and ungetc work, as on any read-only stream.
2026-10-21 14:48:37 +03:00
Adrià 47fa6eecf8 Merge pull request #8215 from jagrat04/feat/libSceNpWebApi2-add-web-trace-tag
feat(libSceNpWebApi2): implement sceNpWebApi2AddWebTraceTag
2026-10-21 13:46:46 +02:00
Adrià e335d5b5ba Merge pull request #7974 from DavidSamir/feat/libkernel-file-mmap-macos
feat(libkernel): map files through the guest's mmap on macOS hosts
2026-10-21 13:46:41 +02:00
Adrià 865166414f Merge pull request #7884 from jacob6769/feat/ces-korean-big5
feat(libSceCesCs): convert EUC-KR, UHC and Big5 through the CP949 and CP950 tables
2026-10-21 13:39:26 +02:00
Adrià 6c8b43931b Merge pull request #8228 from jagrat04/feat/libSceNet-show-route6
feat(libSceNet): implement sceNetShowRoute6
2026-10-21 13:38:29 +02:00
Adrià 64361960c5 Merge pull request #7818 from fogydes/feat/vorbisdec-firmware-exports
feat(libSceVorbisDec): export missing firmware Vorbis decoder interfaces
2026-10-21 13:38:24 +02:00
Adrià de4ef842b5 Merge pull request #7850 from mugurc/feat/libkernel-sockets-macos
feat(libkernel): UDP sockets and name resolution on macOS hosts
2026-10-21 13:36:21 +02:00
Dean Galvin 2050c88eed test(agc): unmap only the no-window test's own tail
The guest block's tail trim unmapped begin + bytes + UnitBytes - aligned bytes from the end of the block, which runs past the mapping it made. Trim begin + UnitBytes - aligned, as the sibling tests do.
2026-10-22 00:35:08 +13:00
Adrià FranchandClaude 488da1774d fix(libSceNpAuth): indent the A forwards and pin the shadPS4 links in the debt entry
Co-Authored-By: Claude <[email protected]>
2026-10-21 13:28:34 +02:00
NoOverflow 982db91217 feat(libSceNpAuth): implement sceNpAuthGetAuthorizationCodeA and sceNpAuthGetIdTokenA
Both forward to their V3 counterparts, which share one implementation in
shadPS4, and complete libSceNpAuth (14/14).
2026-10-21 13:28:13 +02:00
Federico Marras cc7b9a7652 Merge remote-tracking branch 'upstream/main' into feat/kqueue-read-on-kqueue
# Conflicts:
#	docs/dev/debt/libkernel.md
2026-10-21 13:17:12 +02:00
Savvanis Spyros 123768abcd Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/agc-release-mem-system-counter
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-21 14:15:53 +03:00
Dean 3e91c8edf5 Merge pull request #8850 from UnhealthyKraken/feat/libkernel-cfsetspeed
feat(libkernel): implement cfsetspeed
2026-10-22 00:13:16 +13:00
Savvanis SpyrosandClaude Opus 5.5 79a5d6b65a fix(libSceNpManager): refuse an unknown request in sceNpSetGamePresenceOnline
After the argument checks, shadPS4 looks the request up and returns
REQUEST_NOT_FOUND for one that was never created or was deleted. The
library already tracks live requests for sceNpSetTimeout.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 14:13:04 +03:00
Savvanis SpyrosandClaude Opus 5.5 1d0451f659 docs(relinker): note that a deferred module the title never loads gets no module_start
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 14:12:12 +03:00
Adrià b3f4783abc Merge pull request #7795 from fogydes/feat/remoteplay-firmware-exports
feat(libSceRemoteplay): export missing firmware remote play interfaces
2026-10-21 13:11:20 +02:00
Adrià 59776f2e6a Merge pull request #7841 from hypermoist/feat/libc-annex-k-remaining
feat(libc): implement the remaining C11 Annex K bounds-checking functions
2026-10-21 13:09:59 +02:00
Adrià eb4a7fee4e Merge pull request #7525 from AlexOfTheForest/feat/scanf-wide-linux
feat(libc): scan 16-bit wide conversions in the sscanf family on Linux
2026-10-21 13:09:54 +02:00
Adrià 98145b48d8 Merge pull request #7426 from DavidSamir/feat/shader-barycentric-tessellation-last-vertex
feat(agc): draw the last provoking vertex through the barycentric tessellation stages
2026-10-21 13:08:47 +02:00
Adrià 2cca5c0fd6 Merge pull request #7600 from milescoviello/feat/msaa-dcc-comp-to-single
feat(agc): take RADV's comp-to-single clear of a multisampled DCC target
2026-10-21 13:07:42 +02:00
Adrià 0a5080477f Merge pull request #6655 from al3w0f205/perf/hybrid-cpu-topology-worker-pinning
feat(libc): support multi-tier hybrid cpu topology in LayoutFromClasses
2026-10-21 13:01:57 +02:00
akkadbakkad89 f57ef9986f feat(prx): declare exports for 66 inventory-covered system libraries 2026-10-21 16:30:58 +05:30
Federico Marras c8e99c7f71 Merge remote-tracking branch 'upstream/main' into feat/ngs2-voice-owner
# Conflicts:
#	docs/dev/debt/libSceNgs2.md
2026-10-21 12:56:14 +02:00
Adrià 275e896797 Merge pull request #7696 from MaxLikesCode/feat/agc-set-index-indirect-args
feat(libSceAgc): implement sceAgcDcbSetIndexIndirectArgs
2026-10-21 12:52:39 +02:00
hypermistandClaude Opus 5.5 58c9254154 test(libc): drop the comment from the thread forward check
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 23:49:07 +13:00
Adrià 27fabb6b7d Merge pull request #7869 from savvaniss/feat/agc-polygon-mode
feat(agc): draw point and line polygon modes
2026-10-21 12:48:05 +02:00
hypermistandClaude Opus 5.5 02bf457027 test(libc): load libkernel before checking the registered thread forwards
On Windows a DLL is only loaded when the executable imports from it. The
thread test imported nothing from libkernel, so its load-time registration
never ran and _Tss_create threw. Comparing _Thrd_current with
scePthreadSelf imports libkernel and checks the forward.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 23:47:22 +13:00
Dean 80b1ebd36e Merge pull request #8862 from orezraey/fix/audiodec-word-length-measured-ps5
fix(libSceAudiodec): reject the PCM word sizes a PS5 rejects
2026-10-21 23:46:31 +13:00
Dean fd857beef1 Merge pull request #8854 from orezraey/fix/rtc-format-null-tick-measured-ps5
fix(libSceRtc): format the current time for a null tick as measured on a PS5
2026-10-21 23:46:27 +13:00
Dean a20fc89702 Merge pull request #8852 from nikowolf123/feat/voice-pause-resume-all
feat(libSceVoice): implement sceVoicePausePortAll and sceVoiceResumePortAll
2026-10-21 23:46:23 +13:00
Dean a1f95a523f Merge pull request #8849 from hypermoist/fix/libc-integer-base
fix(libc): follow the console for integer bases and 0x prefixes
2026-10-21 23:46:18 +13:00
Adrià FranchandClaude c5e861b868 docs(libSceNpWebApi2): drop title id from AddWebTraceTag debt line
Co-Authored-By: Claude <[email protected]>
2026-10-21 12:45:44 +02:00
jagrat Singh b9cdbf932d feat(libSceNpWebApi2): implement sceNpWebApi2AddWebTraceTag
Implement sceNpWebApi2AddWebTraceTag with the (int64_t request_id, const char* value) signature from shadPS4. Validates that value is not null, accepts any request id, and acts as a silent stub matching the other offline request functions.
2026-10-21 12:45:40 +02:00
jagrat Singh 54d1a8d6d6 feat(libSceNet): implement sceNetShowRoute6 2026-10-21 12:44:40 +02:00
jacob6769andClaude Opus 5.5 dc7be1b072 feat(libSceCesCs): convert EUC-KR, UHC and Big5 through the CP949 and CP950 tables
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 12:42:02 +02:00
Dean Galvin eb2aae7f8b fix(agc): refresh every layer a layered array color draw attaches
A slice of a 2D array color target was refreshed one layer wide while its attachment view spans color.layers, so a layered draw refreshed only its first slice. Pass the attached layer count.
2026-10-21 23:40:11 +13:00
Dean 158d8ad34c Merge pull request #8787 from al3w0f205/test/ces-profile-and-mbcs-str-null-validation
test(libSceCesCs): assert null parameter and buffer validation in sceCesUcsProfileInit and sceCesMbcsStrToUtf8Str
2026-10-21 23:33:37 +13:00
Dean e95ac76f82 Merge pull request #8781 from al3w0f205/test/ime-filter-text-capacity-cyrillic
test(libSceIme): cover capacity boundary and Cyrillic character filtering in sceImeFilterText
2026-10-21 23:33:32 +13:00
Dean ac9a2a82dd Merge pull request #8780 from al3w0f205/test/pad-lightbar-and-motionsensor-validation
test(libScePad): verify scePadSetLightBar, scePadResetLightBar and motion sensor validation
2026-10-21 23:33:28 +13:00
Dean 9a8c2a1a05 Merge pull request #9003 from xdCloudy/feat/libSceNpManager-150-exports
feat(libSceNpManager): declare 150 pending exports
2026-10-21 23:32:40 +13:00
Dean f1f6626835 Merge pull request #8102 from Dragost/fix/libSceAvPlayer-sync-tolerance-and-eof-cleanup
fix(libSceAvPlayer): allow presenting video frames within sync tolerance
2026-10-21 23:31:28 +13:00
67cea1c314 test(agc): refuse a DB depth copy from a depth surface the device cannot sample
On a device that cannot sample two-sample depth, as lavapipe, the DB
depth copy case now also creates a two-sample surface and expects the
copy's sampling refusal, so that refusal is covered where it applies.
Devices that sample two-sample depth skip it.

Co-authored-by: simonbbby <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:27:24 +00:00
Joey Fisher ed921e225f fix(agc): hash the pages of an import window instead of copying them
ImportWatched kept a copy of every non-zero page of the range being imported, so that a page the
write watch reported during the import could be told from one that still held its bytes. The copy
had the range's footprint: a first import of a 0.5-3 GiB guest heap held that much host memory
while it ran.

The window now keeps a 64-bit digest per 4 KiB page (four xxHash64 lanes) and compares digests:
8 bytes per page, 1/512 of the range. Same decision for every page, same reads of guest memory.

CheckImportWindowFootprint imports a 64 MiB watched range and requires the heap held during the
import to stay under 1 MiB. It failed with "held 64 MiB" before this change.
2026-10-21 04:13:49 -06:00
Joey Fisher db3af40970 fix(agc): wait for the idle flush's unit-shadow publish before returning
The idle flush (VulkanDevice::StoreIdleResults) publishes the unit shadows over guest memory into
the host import and only submits the copies. publishUnits picks the units to store on the CPU,
and the slab -> import copy lands when the GPU runs it, so a guest store made between the two is
overwritten with the older shadow bytes. The memory-access hook waits through SyncThrough right
after its flush; the idle flush has no reader that waits.

FlushPending and PublishShadowsOnly now sync the recorder under the GPU mutex after an idle
publish that stored units. Other flush reasons are unchanged.

Test: agc_idle_publish_wait (a CPU store made after the idle flush returns survives; a label
flush's publish stays recorded).
2026-10-21 04:13:42 -06:00
Dean GalvinandAryan Sharma c54d294a05 Merge origin/main into PR 2528
Co-authored-by: Aryan Sharma <[email protected]>
2026-10-21 23:12:54 +13:00
Dean 2abfb1beb4 Merge pull request #8983 from xdCloudy/feat/libSceNpCommon-150-exports
feat(libSceNpCommon): declare 150 pending exports
2026-10-21 23:07:33 +13:00
Dean 61922f66da Merge pull request #8949 from xdCloudy/feat/ps5-npsnsfacebookdialog-exports
feat(libSceNpSnsFacebookDialog): declare PS5 pending exports
2026-10-21 23:07:29 +13:00
Dean b5baeea5af Merge pull request #8119 from DavidSamir/feat/videodec2-unimplemented-exports
feat(libSceVideodec2): export thirteen functions as not implemented
2026-10-21 23:07:25 +13:00
Dean ee676246cf Merge pull request #6519 from Get-fix/ps4/kernel-system-module-path
feat(libkernel): load system libraries from their console paths
2026-10-21 23:07:21 +13:00
Santhosh Kumar f43de1fe5d style(libSceFreeType): use camel case for character arguments 2026-10-21 15:33:40 +05:30