Commit Graph
12196 Commits
Author SHA1 Message Date
Yossi Yadgar 585e42bcab feat(libSceHttp): implement sceHttpGetNonblock and the Try variants of the nonblocking switch 2026-10-20 09:34:26 +03:00
Yossi Yadgar ac6ceb0b55 feat(libSceHttp): keep redirect options per object and implement sceHttpGetAutoRedirect
Templates, connections and requests now each keep their options, copied from the parent when they are created, so sceHttpSetAutoRedirect is no longer dropped and sceHttpGetAutoRedirect returns it.
2026-10-20 09:33:53 +03:00
Dean 15da28937e Merge pull request #8149 from JJenkx/windows/libkernel-stat-symlink-loop
fix(libkernel): report ELOOP from sceKernelStat for Windows symbolic link loops
2026-10-20 19:32:01 +13:00
Dean 138351d714 Merge pull request #8056 from ntamas94/fix/sce-net-inet-pton-ex-aton
fix(libSceNet): parse sceNetInetPtonEx IPv4 text as the PS4 does
2026-10-20 19:31:57 +13:00
Lindamea1andClaude Opus 5.5 a05db60c87 fix(libSceNet): fill the address and port fields in sceNetGetSockInfo
sceNetGetSockInfo returned 0 for a known socket and wrote nothing, so
callers read uninitialised bytes as the socket's endpoints. Monster
Hunter Wilds (PPSA24191) calls it after bind, connect and accept and
stores the local and remote address and port it reads back.

It now writes one 0xA0-byte record in the layout SharpProspero and
shadPS4 give: the socket id, the socket type, the local and remote
IPv4 address and port of the host socket in network byte order, the
SELF and NONBLOCK status flags, and the receive and send buffer sizes
sceNetGetsockopt reports for the socket. The other fields are 0. It
returns 1, the number of records written, and EINVAL for a null record
or an n below 1, as shadPS4 does.

An s below 0 lists the sockets as shadPS4 does: with a null record it
returns their number, otherwise it writes up to n records in socket
order and returns how many it wrote. Unlike shadPS4, which lists IPv6
sockets with zero addresses and ignores flags, an IPv6 socket fails
with EAFNOSUPPORT and is left out of the count and the list, and a
flags bit other than 0x40 fails with EINVAL. SharpProspero names 0x40
SockInfoTimeWait; closed sockets leave the table at once, so it lists
the same sockets. docs/dev/debt/libSceNet.md lists the fields left 0
and these differences.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 07:23:51 +01:00
Santhosh Kumar 971d8ba891 feat(libSceNpTus): delete title contexts and their requests 2026-10-20 11:48:16 +05:30
Dean Galvin 0b51b5b482 Merge main into pr-7215
# Conflicts:
#	core/libs/tests/GuestJson.cpp
2026-10-20 18:57:38 +13:00
xXPBSXxandClaude Sonnet 5.5 972fb84988 fix(libc): fail chdir, remove, opendir and fopen through a regular file with ENOTDIR on Windows
A path whose directory part is a regular file, such as file/child, failed
with ENOENT in chdir, remove, opendir, fopen and freopen on Windows, where
FreeBSD 11.4 fails it with ENOTDIR (vfs_cache_lookup, sys/kern/vfs_cache.c).
The not-found error of these calls now asks whether the nearest existing
ancestor is not a directory, as open, stat, lstat, access and unlink do.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 07:54:18 +02:00
adhimiw 1dcbe42379 feat(libSceCesCs): declare the missing firmware character set exports 2026-10-20 11:14:38 +05:30
primesoul-web 5b2f829133 Merge upstream/main: queue host edits, run the title's filter in sceImeUpdate 2026-10-20 05:43:53 +00:00
Dean 3611cda292 Merge pull request #8210 from jagrat04/feat/libSceSystemGesture-get-touch-event-by-id
feat(libSceSystemGesture): implement sceSystemGestureGetTouchEventByEventID
2026-10-20 18:31:43 +13:00
Dean 9769b46ffb Merge pull request #8125 from erickerxhalli/feat/libscemove-no-controller
feat(libSceMove): report no connected PS Move controller
2026-10-20 18:31:39 +13:00
Dean b20839c6cd Merge pull request #8199 from xXPBSXx/fix/enotdir-through-file-2-fb
fix(libkernel): fail chmod, truncate, utimes and rename through a regular file with ENOTDIR on Windows
2026-10-20 18:31:35 +13:00
Dean ecd45318d9 Merge pull request #8208 from al3w0f205/fix/statvfs-null-output-order
fix(libSceLibcInternal): check null output before path in statvfs
2026-10-20 18:31:31 +13:00
Dean 8dd8207f31 Merge pull request #8205 from al3w0f205/fix/libc-access-mode-before-path
fix(libc): check access mode before the path
2026-10-20 18:31:27 +13:00
Dean b9ff25b787 Merge pull request #8197 from JJenkx/windows/relinker-tests-exited-module-cleanup
test(relinker): retry removing fixtures an exited Windows program still holds
2026-10-20 18:31:23 +13:00
Dean a9f1341b62 Merge pull request #8179 from JJenkx/windows/relinker-diagnostics-fixture-retry
test(relinker): wait for the exited diagnostic runner to release its fixtures
2026-10-20 18:31:19 +13:00
Dean 1e3efa7ccf Merge pull request #8132 from Retr0G28/fix/socketpair-cloexec
fix(libkernel): mark both socketpair ends close-on-exec for SOCK_CLOEXEC
2026-10-20 18:31:15 +13:00
Dean 8972f8ae3c Merge pull request #8129 from Th3EvilGod/codex/libc-precise-thread-sleep
fix(libc): use precise Windows thread sleep
2026-10-20 18:31:11 +13:00
Dean bec309f4d4 Merge pull request #8057 from HQasper/feat/kernel-pipe-read-event
feat(libkernel): accept pipe read ends in sceKernelAddReadEvent
2026-10-20 18:31:06 +13:00
Dean df56570fe2 Merge pull request #8054 from HQasper/feat/net-interface-names
feat(libSceNet): implement interface names, random values and net memory
2026-10-20 18:31:02 +13:00
Dean cdd17c25cb Merge pull request #8053 from Hash-0x/feat/rtc-process-clocks
feat(libSceRtc): implement process-local clock setters
2026-10-20 18:30:58 +13:00
Dean a4473e4678 Merge pull request #8049 from MarcZX10/codex/libc-heap-trace-slot-capacity
fix(libc): back every native mspace trace slot
2026-10-20 18:30:55 +13:00
Dean 62aadc6119 Merge pull request #8048 from thuanquang/test/file-lock-four-children
test(libkernel): check the file lock process case with four child processes
2026-10-20 18:30:51 +13:00
Dean 43c5e2a2ca Merge pull request #7989 from MarrasFederico/feat/jpegdec-down-scale
feat(libSceJpegDec): decode with a down scale of 2, 4 or 8
2026-10-20 18:30:47 +13:00
dantdmdarealguy e3125e43af feat(agc,videoout): save the displayed frame as a PNG with a screenshot key
F12 (the new Screenshot input action) requests a capture of the next
presented display buffer. The presenter records it with the existing
APS5_DUMP_FRAMES GPU readback at full resolution, and the frame dump
writer thread encodes it with decoder_png into anyps5-screenshots/
beside the executable, or ANYPS5_SCREENSHOTS.
2026-10-20 00:28:39 -05:00
milescovielloandClaude Opus 5.5 a5b0685432 fix(libSceNgs2): keep a rack lock and a voice callback from blocking other threads
sceNgs2RackLock took the library's internal recursive mutex and kept it
until sceNgs2RackUnlock, and a render held the same mutex while it called a
voice's block-end or repeat callback. Every NGS2 call from another thread
waited behind either one. A title that takes one of its own locks while it
holds a rack lock (or inside the callback), while another of its threads
holds that lock and calls sceNgs2VoiceGetStateFlags, deadlocks.

A rack lock is now an owner and a depth on the rack, and only a render of
its system waits for another thread's rack lock. The voice callback runs
with the internal lock released (the lock depth is tracked per thread so it
is released fully and taken back after). A rack or system destroy waits
while another thread renders its system, as the callback window would
otherwise let it free what the render still walks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 05:24:03 +00:00
aasishdairel a0e591c932 fix(relinker): trap CLZERO GS overrides
CLZERO (0F 01 FC) clears the cache line at the logical address in rAX and applies a GS override, so mark its register-form encoding as a memory operand. RDPRU (0F 01 FD) has no memory operand and stays unchanged.
2026-10-20 10:53:42 +05:30
JJenkxandClaude Opus 5.5 afec282b0f fix(libkernel): report ELOOP from sceKernelStat for Windows symbolic link loops
On Windows std::filesystem::status reports a symbolic link that resolves
to itself as missing, because the CRT maps ERROR_CANT_RESOLVE_FILENAME to
ENOENT, so sceKernelStat returned 0x80020002 where the console and the
Linux build return SCE_KERNEL_ERROR_ELOOP. When the status says the path
does not exist, open it once following links and return ELOOP when Windows
fails with ERROR_CANT_RESOLVE_FILENAME.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 01:21:22 -04:00
Dean a98590dec2 Merge pull request #8086 from Arararararagi/refactor/libs-name-np-cpp-web-api-exports
fix(libSceNpCppWebApi): name the exports the NID database resolves
2026-10-20 18:15:04 +13:00
Dean d0ac490cb0 Merge pull request #8195 from xXPBSXx/fix/enotdir-through-file-fb
fix(libkernel): fail open, stat, lstat, access and unlink through a regular file with ENOTDIR on Windows
2026-10-20 18:07:05 +13:00
Dean Galvin eeff77c380 Merge main into pr-8106
# Conflicts:
#	docs/dev/debt/libSceAcm.md
#	docs/dev/debt/libScePlayGo.md
#	docs/dev/debt/libSceSystemGesture.md
#	docs/dev/debt/libSceWebBrowserDialog.md
2026-10-20 17:58:28 +13:00
Dean Galvin 5837a1e150 Merge main into pr-8060
# Conflicts:
#	docs/dev/debt/libSceLoginDialog.md
2026-10-20 17:58:00 +13:00
Dean Galvin 80338cb4aa Merge main into pr-8059
# Conflicts:
#	docs/dev/debt/libSceVoice.md
2026-10-20 17:57:59 +13:00
Dean cd7861b4ac Merge pull request #8038 from MarrasFederico/feat/netctl-ap-stopped-service
feat(libSceNetCtlAp): implement the access-point service that never starts
2026-10-20 17:55:39 +13:00
Dean 1ae9833228 Merge pull request #8035 from pushkarreddyy/feat/libkernel-pthread-mutexattr-getprotocol
feat(libkernel): implement pthread_mutexattr_getprotocol
2026-10-20 17:55:35 +13:00
Dean 13d5f0e884 Merge pull request #8024 from MarrasFederico/test/relinker-trap-runs-without-core-dumps
test(relinker): run the outputs that stop at int3 without a core dump
2026-10-20 17:55:31 +13:00
Dean 23c0381313 Merge pull request #8020 from ymatrix1/feat/http-missing-exports
feat(libSceHttp): export missing firmware HTTP interfaces
2026-10-20 17:55:27 +13:00
Dean 24c7f538d4 Merge pull request #8027 from ymatrix1/feat/hmd-missing-exports
feat(libSceHmd): export missing firmware HMD interfaces
2026-10-20 17:55:23 +13:00
Dean a4960cb378 Merge pull request #7977 from Ondra97/codex/fix-json2-type-allocation
fix(json2): preserve values when type allocation fails
2026-10-20 17:55:19 +13:00
Dean 329b9aa1a7 Merge pull request #7988 from MarrasFederico/feat/libc-getifaddrs-link-entries
feat(libc): list each interface's AF_LINK entry in getifaddrs on Linux
2026-10-20 17:51:27 +13:00
Dean 539c53af51 Merge pull request #8019 from ymatrix1/feat/ime-missing-exports
feat(libSceIme): export missing firmware IME interfaces
2026-10-20 17:50:15 +13:00
Dean bae00fad0a Merge pull request #7998 from priyanshrv-netizen/feat/libc-bessel
feat(libc): implement j0, j1, jn, y0, y1 and yn
2026-10-20 17:50:11 +13:00
Dean 19cefe1287 Merge pull request #8018 from ymatrix1/feat/netctl-missing-exports
feat(libSceNetCtl): export missing firmware network control interfaces
2026-10-20 17:50:07 +13:00
Dean 9d6470ea21 Merge pull request #7991 from MarrasFederico/feat/sce-net-resolver-aton6
feat(libSceNet): reverse-resolve IPv6 addresses in sceNetResolverStartAton6
2026-10-20 17:50:03 +13:00
Dean 564c75b289 Merge pull request #7956 from Lindamea1/fix/libkernel-ioctl-malformed-enotty
fix(libkernel): fail a malformed ioctl request with ENOTTY
2026-10-20 17:49:59 +13:00
aasishdairel a58d560c9b fix(relinker): trap UMONITOR GS overrides
UMONITOR (F3 0F AE /6) takes its effective address from the register operand and uses DS with segment overrides, so mark its register-form encoding as a memory operand. UMWAIT and TPAUSE use the same opcode with F2/66 and have no memory operand.
2026-10-20 10:19:04 +05:30
Dean 2a04b63d1e Merge pull request #8176 from xXPBSXx/fix/ftruncate-no-zero-fill-fb
fix(libkernel): extend a file with ftruncate without writing zero bytes on Windows
2026-10-20 17:47:32 +13:00
Dean 556acefc44 Merge pull request #8017 from atharvjairath/fix/http-uri-locale
fix(http): make URI parsing independent of host locale
2026-10-20 17:47:03 +13:00
Dean 04ffb07ed8 Merge pull request #7982 from emirplus/fix/libc-asctime-s-constraints
fix(libc): validate time ranges and null-terminate in asctime_s and ctime_s
2026-10-20 17:47:00 +13:00