Commit Graph
20967 Commits
Author SHA1 Message Date
Dean Galvin 7e07416814 Merge branch 'main' into test/libc-dinkumware-atomics-sizes 2026-10-26 10:31:50 +13:00
Dean Galvin b7c91d3372 fix(libSceVideoOut): declare the sized color wrappers once in VideoOut.hpp 2026-10-26 10:31:23 +13:00
orezraeyandClaude Opus 5.5 b7e5eb7f31 fix(libkernel): return EINVAL for the semaphore arguments a PS5 rejects
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:31:11 -03:00
Dean Galvin 0a52fdf083 Merge branch 'main' into videoout-color-space-wrappers 2026-10-26 10:30:44 +13:00
Dean Galvin 56766d3af8 Merge branch 'main' into codex/reject-empty-skip-reports 2026-10-26 10:30:07 +13:00
Adrià 366dd4e6b7 Merge pull request #9638 from Noxy-HNR/feat/appcontent-entitlement-key
feat(libSceAppContent): implement sceAppContentGetEntitlementKey
2026-10-25 22:30:07 +01:00
Savvanis SpyrosandClaude Opus 5.5 e3d6bfb484 Merge branch 'main' into perf/gcn-buffer-format-lookup
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 23:29:38 +02:00
Adrià 90f918fa71 Merge pull request #9645 from dantdmdarealguy/test/guest-memory-process-commit
test(libkernel): measure the remapped direct memory charge in the test process
2026-10-25 22:28:01 +01:00
xXPBSXxandClaude Sonnet 5.5 295bca0455 docs(debt): shorten the sceNetGetsockopt title note below the entry length limit
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 22:27:57 +01:00
xXPBSXxandClaude Sonnet 5.5 0774db98a0 docs(debt): note how a title uses the sceNetGetsockopt error value
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 22:27:47 +01:00
JaceTheBlu 6cd2bc3b3f Merge feat/libressl-x509-store into feat/libressl-x509-lookup
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 21:25:44 +00:00
JaceTheBlu ff70c457ca Merge feat/libressl-x509-store into feat/libressl-verify-param-ip
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 21:25:43 +00:00
JaceTheBluandClaude Opus 5.5 445853269a docs(debt): recount libSceLibreSsl pending exports after merging main
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 21:25:42 +00:00
JaceTheBlu 6fb65fe2f2 Merge upstream/main into feat/libressl-x509-store 2026-10-25 21:25:42 +00:00
Brainiac91 dfe24c2e3a fix(relinker): bound embedded data tables and preserve trailing gap code 2026-10-25 23:25:32 +02:00
Dean Galvin f14bfa04fa Merge branch 'main' into feat/httpcache-cache 2026-10-26 10:25:20 +13:00
Adrià 07da04f947 Merge pull request #9625 from rooklz/fix/macos-shutdown-already-shut
fix(libkernel): treat a socket direction that is already shut as shut on macOS hosts
2026-10-25 22:23:52 +01:00
Dean Galvin d47b6e42a0 Merge branch 'main' into fix/dispatch-ahead-adopt-check 2026-10-26 10:23:17 +13:00
Ondra97 963b47a173 Merge remote-tracking branch 'origin/main' into codex/pr9621-review-20261025 2026-10-25 22:22:56 +01:00
Brainiac91 2f3e41252d fix(relinker): mask embedded data tables in inter-FDE gaps
In PS5 Prospero PRX binaries, compilers place embedded constant data tables (such as the OpenSSL Whirlpool lookup table in ubiservices.prx) in inter-FDE gaps after function code, referenced via RIP-relative LEA instructions.

- In RelativeJumpTables, detect constant data tables in inter-FDE gaps that begin with padding, contain no direct branch targets, and contain undecodable non-code bytes, distinguishing them from valid unannotated code routines and multi-hop gap branches.
- In GuestModuleBuilder and RelinkerPipeline, extract unwind functions from PT_GNU_EH_FRAME as well as PT_SCE_DYNLIBDATA, and mask embedded data tables with 0x90 in scan buffers before SyscallScanner.
- In CodeInstructionCollector, populate table boundaries whenever unwind functions are present to prevent addAddressTakenRoot from adding data table addresses to CFG roots on Windows and macOS.
- Update relinker technical debt documentation and add regression tests.

Fixes #7547
Unblocks: PPSA28155 #7547
2026-10-25 23:22:06 +02:00
Adrià 086ec0a79d Merge pull request #9523 from Queuse/codex/net-keepalive
feat(libSceNet): support SO_KEEPALIVE
2026-10-25 22:20:54 +01:00
Adrià 98101af574 Merge pull request #9619 from rooklz/fix/macos-getifaddrs-netmask
fix(libc): build getifaddrs netmasks from the address family on macOS hosts
2026-10-25 22:20:49 +01:00
orezraeyandClaude Opus 5.5 2d50330245 fix(libkernel): check the socket address length before its family as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:19:43 -03:00
Adrià b44265efb6 Merge pull request #11191 from adriadam10/fix/main-fenv-test-flake
fix(main): compare only x87 control/status words and MXCSR across thread switches
2026-10-25 22:17:06 +01:00
Adrià FranchandClaude Sonnet 5.5 725eb5fd30 fix(main): compare only the x87 control and status words and MXCSR across thread switches
Run 40226437381 failed guest_floating_point (feholdexcept workers preserve the main environment). The test compared the whole fnstenv image (tag word, FIP/FDP) of the main thread before and after other threads ran; a context switch re-initialises that state when the x87 unit is idle, so it flakes (3 of 28 main builds). Compare control word, status word and MXCSR.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 22:16:55 +01:00
Yunus Shaikh 1928c54b4f fix(libSceSystemService): return firmware 13.42's results for the arguments it checks before a request
BunnyFl ran firmware 13.42's libSceSystemService.sprx in an emulator and
recorded the checks these calls make before they pass a request on. A
null title ID or one whose length isn't 9 makes sceSystemServiceGetAppId
and sceLncUtilGetAppId return -1 and sceLncUtilIsAppLaunched return
0x80940005. A null output, list, count or user returns 0x80940005 from
the LncUtil and SystemService calls and 0x80e30003 from
sceShellCoreUtilGetUserFocus, before the app ID is looked at, and a null
sceLncUtilLoadExec path returns 0x80940005.

What the module passes on as a request still throws: another
9-character title ID, another app ID, a list capacity of 0 and an empty
sceLncUtilLoadExec path.
2026-10-25 14:15:27 -07:00
Dean Galvin 4f5b9951c8 Merge branch 'main' into feat/libc-thread-gaps 2026-10-26 10:15:04 +13:00
Ondra97 0cdb5d488c Merge remote-tracking branch 'origin/main' into codex/pr9621-review-20261025 2026-10-25 22:14:09 +01:00
Adrià 1f68b1f776 Merge pull request #9605 from harisibrar1/test/shard-shader-cache-runtime-sources
test(recompiler): shard shader_cache_runtime_sources to stay under 30 s
2026-10-25 22:13:35 +01:00
JaceTheBluandClaude Opus 5.5 36c5e3126b fix(libSceLibreSsl): refuse unsupported lookup methods before allocating
X509_STORE_add_lookup allocated the lookup before it threw for a null
method or a guest new_item callback, so each caught refusal left one
guest heap block behind. Both checks now run before the allocation, and
the allocator test checks that a refused method allocates nothing.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 21:12:16 +00:00
hyvvs 76dcf6dbc9 fix(tools): recognize pr_overlap dependency links 2026-10-25 22:08:36 +01:00
Savvanis SpyrosandClaude Opus 5.5 7394d62549 Merge branch 'main' into fix/savedata-ps4-modules
main's canonical-header refactor (f38d29fd08) edited the old libSceSaveData and libSceSaveDataDialog sources this branch removes, and made EventFlag.cpp, libSceNpCommon's Runtime.cpp and GuestKernelErrors.cpp include the old SaveDataCore.hpp. Those three use nothing from it and build without it, so the include is dropped. SaveDataWriteReplacement.cpp takes main's canonical header and keeps only the native path.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 23:06:41 +02:00
akkadbakkad89 304220f524 fix(libkernel): reprotect same-state fixed remaps and order block publish
The same-range/same-protection fast path in RemapFixedIntoRegistered
returned without touching host pages, but DoMprotect/DoMtypeprotect
change host protection without updating the recorded nativeProtection,
so a stale record could leave guest pages with the wrong host
permissions. The shortcut now reissues the per-block backing map with
records skipped, keeping the bookkeeping optimization while reapplying
the requested host protection.

CreateDirectMemoryBacking registered g_physBlocks before building the
per-page map, so a bad_alloc during page construction left an orphaned
physical block that poisoned later allocations; the block now publishes
after the page map is built.

CheckFixedRemapReprotectsAfterMprotect covers both shortcut directions
with stale records and verifies the host protection via VirtualQuery /
proc maps, and the existing remap test gains the current uint64 Munmap
call.
2026-10-25 21:06:12 +00:00
Adrià 26ba9b6b71 Merge pull request #9499 from EagleBearerYS/fix/libkernel-signal-handler-mask
fix(libkernel): block a signal while its handler runs and honour SA_RESETHAND
2026-10-25 22:05:12 +01:00
orezraeyandClaude Opus 5.5 0868498fc2 fix(libkernel): make F_DUP2FD_CLOEXEC duplicate without the target as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:04:25 -03:00
orezraey ea98a6e5f1 fix(libkernel): fail F_DUPFD_CLOEXEC with EOPNOTSUPP as measured on a PS5 2026-10-25 18:04:25 -03:00
p3nicillinandClaude Opus 5.5 3436e8fe7e fix(libScePad): refuse scePadGetExtControllerInformation on a standard pad
On a standard-port handle the console answers NOT_PERMITTED (0x80920101):
Halo CE Universal's pad probe measured it on firmware 13.59 for two
connected DualSenses in three runs. The function returned 0 with
invented controller information instead. The special port keeps its
zeroed answer.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 21:04:17 +00:00
Ondra97 6af140f4a2 test(ult): use canonical exports and require allocation coverage 2026-10-25 22:01:12 +01:00
orezraeyandClaude Opus 5.5 ff667ba3b7 fix(libc): give strerror_s the strerror texts and return 0 on truncation as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:01:11 -03:00
orezraeyandClaude Opus 5.5 373027da36 fix(libc): reject strerror_r buffers under 23 bytes and cut longer texts
The libc.prx that PPSA31872 ships returns ERANGE for a buffer shorter than
23 bytes and otherwise strncpy's length - 1 bytes and terminates the last
one. This matches the firmware 13.60 log, where error 0 with a 16-byte
buffer returned 34 although "No error" fits.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:59:49 -03:00
orezraeyandClaude Opus 5.5 b4530f1cce fix(libc): give strerror_r and perror the strerror texts as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:59:49 -03:00
Dean Galvin 91039afff1 Merge branch 'main' into feat/audioout-set-main-output 2026-10-26 09:57:37 +13:00
Dean Galvin b7d6ee572e Merge branch 'main' into fix/libkernel-munmap-unaligned 2026-10-26 09:57:14 +13:00
akkadbakkad89 3f6e2b3304 fix(libkernel): carry native protection on direct mappings so fixed remaps reprotect 2026-10-25 20:56:58 +00:00
akkadbakkad89 7ab89816e3 fix(libkernel): walk direct-memory physical ranges by block, not page
Every map, remap, and validate call walked the physical range
page-by-page through physPages, so a guest that remaps a large arena
in a sliding window pays O(pages) per call and O(n^2) overall. Track
one physBlocks entry per CreateDirectMemoryBacking allocation and
split it on partial release; validate and map at block granularity.
Skip the host unmap/remap when the requested range already has the
identical guest-to-physical relationship.

Fixes #10521
2026-10-25 20:56:57 +00:00
camezaro-intc 1257830a26 feat(libkernel_sys): forward sceKernelLoadStartModuleForSysmodule to sceKernelLoadStartModule 2026-10-25 14:56:34 -06:00
Ondra97 a6a2c89101 Merge remote-tracking branch 'origin/main' into codex/pr9621-review-20261025 2026-10-25 21:56:19 +01:00
Adrià cceb6c3c41 Merge pull request #9961 from daviaaze/fix/agc-dcc-sliced-array-window
fix(agc): serve sampled DCC array views from their viewed slices
2026-10-25 21:53:47 +01:00
hyvvs 34d07d733d fix(tools): reject malformed saved test graphs 2026-10-25 21:45:19 +01:00
orezraeyandClaude Opus 5.5 32e1371697 fix(libkernel): check the SoC sensor channel before the pointer and set errno as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:42:22 -03:00