Commit Graph
20967 Commits
Author SHA1 Message Date
Adrià 00198bfcdf Merge pull request #7838 from MarcZX10/codex/linux-thread-stack-reuse-7700
fix(libkernel): retain and reuse Linux guest thread stacks
2026-10-24 13:30:05 +02:00
Adrià 363e1382b9 Merge pull request #8380 from Zenodeon/agc-budgeted-host-imports
fix(agc): mirror only unimported tails of registered heaps
2026-10-24 13:28:56 +02:00
al3ss4ndrolbandClaude Opus 5.5 1613faaaf2 test(tools): look up the environment-selected NID database in an empty source tree
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 13:27:34 +02:00
Morten HolmandClaude Sonnet 5.5 fb0be466bd fix(fiber): keep fiber context stacks out of the write watch on macOS
On macOS a fiber's context buffer is its guest stack, and the buffer sits in the write-watched guest heap. Every collect re-armed its pages, so a push in a function prologue could fault on the page below the stack pointer. Rosetta cannot resume a synchronous exception that arrives after earlier instructions of the same translated block have run, and aborts with "unexpectedly need to EmulateForward on a synchronous exception".

PinStack and UnpinStack now bracket the context with a host write on macOS, as the Windows build does with the arena's writable pin, so the pages stay writable for the life of the fiber. The same hooks cover contexts attached on run or switch.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 13:27:20 +02:00
Dean 9018bc438a Merge pull request #10003 from MarcZX10/codex/libc-acoshf-msun
fix(libc): follow msun for acoshf
2026-10-25 00:24:44 +13:00
Dean 0fc488a06d Merge pull request #10230 from orezraey/fix/libkernel-module-info-from-addr-measured-ps5
fix(libkernel): answer sceKernelGetModuleInfoFromAddr's flags and failures as measured on a PS5
2026-10-25 00:24:17 +13:00
Dean df5454342f Merge pull request #9264 from Noxy-HNR/codex/libc-unsized-find-range
test(libc): cover unsized find rescan widths
2026-10-25 00:23:19 +13:00
Dean 1d624de20c Merge pull request #8920 from tkcm01/fix/libc-fflush-read-stream-macos
fix(libc): leave a stream that is reading untouched in fflush on macOS
2026-10-25 00:22:50 +13:00
Dean d490ca219c Merge pull request #9190 from simnJS/feat/usbd-descriptor-queries
feat(libSceUsbd): pass configuration and descriptor queries through to libusb
2026-10-25 00:22:22 +13:00
roboterspinne dad627e00c test(tools): run debt_split in process and commit only where tests need it
test_debt_split.py started debt_split.py as a subprocess for every split
and committed the index in setUp and after each split, although only the
rebase tests and the resolve test outside a rebase depend on a commit.
The split helper now calls main() in process from the fixture's directory
with its output sent to a sink, the commits move into those tests, and
the test's git commands skip the automatic maintenance subprocess. One
test keeps a split through the command line to cover its output, and
resolve stays a subprocess. The test starts about a third fewer
processes and takes half the time on Linux; Windows CI reported 34 s
for it.
2026-10-24 11:22:17 +00:00
Dean 774a7497d4 Merge pull request #8901 from hypermoist/feat/libc-sce-v2-exceptions
feat(libc): add the std::__sce_v2 exception types and throwers
2026-10-25 00:21:55 +13:00
Dean 5b02b41c1d Merge pull request #9876 from orezraey/fix/libkernel-aio-limits-measured-ps5
fix(libkernel): follow AIO limits, unknown ids and reported states as measured on a PS5
2026-10-25 00:21:25 +13:00
muaus c2937ec9b2 test(relinker): fail child-leak checks on enumeration or cleanup errors 2026-10-24 16:18:43 +05:00
hakarrr 546bad013f fix(tools): open the unwrap_self temporary file through io.open 2026-10-24 16:47:37 +05:30
MarcZX10 46ac3341bc docs(libSceFreeType): list FT_Bitmap_Init with the bitmap calls 2026-10-24 11:16:34 +00:00
MarcZX10 fea1063cdc test(libSceFreeType): cover FT_Bitmap_Init against native FreeType 2026-10-24 11:16:33 +00:00
MarcZX10 1d80c93877 feat(libSceFreeType): implement FT_Bitmap_Init 2026-10-24 11:16:14 +00:00
orezraeyandClaude Opus 5.5 7571085a39 Merge main into docs/libkernel-sem-timedwait-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 08:10:56 -03:00
Bram910 74285a827e fix(tools): reject unsupported inner ELF versions 2026-10-24 13:09:02 +02:00
Adrià fa515def85 Merge pull request #7653 from ionut27001/fix/libkernel-kevent-timer-readd
fix(libkernel): handle kevent timer re-adds and the AIO, LIO, SENDFILE and PROCDESC filters as measured on a PS5
2026-10-24 13:02:21 +02:00
Adrià a59b2a4736 Merge pull request #8399 from primesoul-web/feat/usb-storage-no-device-path
feat(libSceUsbStorage): the no-device path of the USB storage service
2026-10-24 12:57:10 +02:00
Adrià 2a0e9a654f Merge pull request #8286 from santhoshkumar-dev/codex/freetype-bitmap-conversion
feat(libSceFreeType): copy and convert guest bitmaps
2026-10-24 12:56:07 +02:00
Adrià ac28b89bd9 Merge pull request #7706 from Destroyers212x/fix/macos-gs-trap-branch-target
fix(relinker): refuse branches into trapped guest GS instructions on macOS
2026-10-24 12:54:07 +02:00
Adrià a0a8ef2fd5 Merge pull request #7837 from muteburrito/test/relinker-embedded-code-data
test(relinker): characterize embedded code data scanning
2026-10-24 12:53:05 +02:00
Adrià 50aa1798e7 Merge pull request #7741 from MarcZX10/codex/macos-main-thread-mxcsr
fix(relinker): initialize MXCSR in macOS guest entry
2026-10-24 12:51:40 +02:00
Adrià a39be6252d Merge pull request #8357 from MarrasFederico/feat/http-memory-pool-stats
feat(libSceHttp): report a context's pool in sceHttpGetMemoryPoolStats
2026-10-24 12:48:06 +02:00
Mouhand KaddoandClaude Opus 5.5 4201b8212a fix(agc): read committed guest pages on Windows without faulting on released pages
ReadCommitted and EqualsCommitted find the readable pages of a range,
then copy or compare them. On Windows a page another thread releases
in between faulted the copy. Demon's Souls (PPSA01342) samples a texture
at 0x38400 of 352 MiB while loading the tutorial level; on Windows that
range covers host heap pages, and the load stopped with an access
violation in ucrtbase's memcpy under cachedTexture.

On Windows the pages are now read through ReadProcessMemory, page by
page after a failed whole read, and a page that cannot be read counts as
uncommitted: zero in a copy, left out of a comparison.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 14:42:25 +04:00
ionut27001 983a81d91b fix(libSceVideoOut): add APS5_OUTPUT_RESOLUTION to override the reported output resolution 2026-10-24 12:42:14 +02:00
ionut27001 bfeeed4ef4 fix(libSceVideoOut): report the output resolution from the host display as measured on a PS5
sceVideoOutGetOutputStatus derived resolution from the size of the
registered buffers, so a title that reads it right after sceVideoOutOpen
got 1 (1080p) whatever the display. In a payload process on a PS5
(firmware 12.70), with no buffer registered, the field changed with the
console's resolution setting: 2 with it on Automatic on a 4K display, 1
with it set to 1080p. Read it from the display mode SDL reports for the
window's display, next to the refresh rate, and keep it independent of
the registered buffers.
2026-10-24 12:42:08 +02:00
Claude 3d0b24843d docs(usage): state that converted titles run without a sandbox
A converted title runs with the user's permissions, and its executable is not randomized on any host: Linux loads it at a fixed address unless the deprecated --lazy-binding is used, Windows without DYNAMIC_BASE, and macOS without MH_PIE. Say so next to the host requirements.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01E7j2SYGtKCiPHcU9SwUSjh
2026-10-24 10:42:05 +00:00
Dean e512cd51e8 Merge pull request #9911 from tkcm01/fix/libc-rename-dangling-symlink-macos
fix(libc): rename over a dangling symbolic link on macOS
2026-10-24 23:41:44 +13:00
Dean 4efc1d22ab Merge pull request #8673 from xXPBSXx/test/run-guarded-checks-on-windows
test(libc): run the sscanf_s checks of guest_strings on Windows
2026-10-24 23:41:20 +13:00
Dean 99ad843970 Merge pull request #10311 from MarrasFederico/fix/import-audit-unterminated-dynamic
fix(tools): reject dynamic tables without DT_NULL in import_audit
2026-10-24 23:40:54 +13:00
Adrià 0e81ae0fec Merge pull request #8329 from ymatrix1/feat/appinstutil-missing-exports
feat(libSceAppInstUtil): export missing firmware app install interfaces
2026-10-24 12:40:43 +02:00
Dean 3eebf30c2e Merge pull request #9945 from p3n1cillin/claude/windows-missing-standard-handles
fix(libc): open NUL on standard descriptors without a stream on Windows
2026-10-24 23:40:27 +13:00
Dean 622adaccc1 Merge pull request #10241 from Bram910/fix/registry-offset-locale
fix(relinker): keep registry offsets independent of host locale
2026-10-24 23:40:01 +13:00
Adrià 007af256c6 Merge pull request #8264 from YossiYad/feat/npcppwebapi-offline-patterns
feat(libSceNpCppWebApi): implement the InGameCatalog and TitleCloudStorage IntrusivePtr members and const iterator destructors
2026-10-24 12:39:47 +02:00
Dean 8cd50d382e Merge pull request #10273 from MarrasFederico/fix/netctl-ap-full-callback-id
fix(libSceNetCtlAp): clear the callback id when registration slots are full
2026-10-24 23:39:36 +13:00
Adrià 887a9640b4 Merge pull request #7605 from HQasper/fix/poll-kqueues
fix(libkernel): poll kqueues as kqueue_poll answers
2026-10-24 12:32:33 +02:00
ZSWoltandClaude Opus 5.5 412c3cd91f fix(libSceNet): print the console's line for a negative sceNetUsleep
After sceNetInit, the console's sceNetUsleep prints
"[LIBNET] usleep <count>" to standard output for a negative count
before failing with EINVAL, as a payload measured on firmware 13.60
(#9076). AnyPS5 failed without printing it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 13:30:52 +03:00
thuanquangandClaude d3d5e2f262 perf(agc): hash the pages of an import window on several threads
ImportWatched hashes every watched page of an import run before the
import, and checks every page the import reports written against those
hashes after it. On Windows the first touch of untouched write-watched
memory faults each page in, so the first pass over a fresh 64 MiB run
costs tens of milliseconds on the thread that draws.

Both passes now split their pages over up to four threads, at least
1024 pages per thread. The checks after the import still run after the
walk has reset the write watch, so a CPU store during the window is
caught as before.

Co-Authored-By: Claude <[email protected]>
2026-10-24 17:30:33 +07:00
hypermistandClaude Opus 5.5 16c9c3174e test(libSceVrTracker2): check the whole cleared work memory range
Scan every byte of the 32 MiB tracker range and the tail after it, so a
shorter clear or one that stops before the boundary fails.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:30:29 +13:00
JAB-devandClaude Sonnet 5.5 182e2a227f docs(libSceNgs2): say that the mastering gain ramps after its first value
PS5 firmware 3.20 and 4.03 apply the first full-band and LFE gain a voice receives flat and ramp every later change over the next grain in eight lanes, as RESULTS15 measured; the entry said the levels never ramp. The clamp, the NaN handling and this change's behaviour are unchanged, and the missing ramp stays listed.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 12:25:45 +02:00
mrfelek a293f7901b perf(agc): stage written-only swept elements on discrete GPUs
On a discrete GPU a write-only V# element whose stride is wider than the
widest buffer store (16 bytes) and that a direct dispatch sweeps is staged
in a device-local shadow of up to 256 MiB, as read and written swept
elements are. Its stores no longer cross the bus into the host import.

AI-assisted. Tested by me on my own machine.
2026-10-24 10:22:12 +00:00
jagrat Singh 32455327e4 feat(libSceNet): implement sceNetShowNetstatEx 2026-10-24 12:20:53 +02:00
Adrià 2dc8e456b5 Merge pull request #8225 from jagrat04/feat/libSceNet-show-policy
feat(libSceNet): implement sceNetShowPolicy
2026-10-24 12:18:48 +02:00
hypermistandClaude Opus 5.5 439b426c4b feat(libSceVrTracker2): validate initialization and pass through the Hmd2 tracking result
sceVrTracker2Initialize follows the order read from firmware 13.60
libSceVrTracker2.sprx (disassembly, not measured on a console). It
rejects with 0x8A740006, in order: a null record or a size other than
72; a mode other than 0, 1000 or 1001; a null work memory; a size below
the mode's 32 MiB, 7 MiB or 3 MiB; an alignment below 0x10000; a
non-zero reserved byte at 0x3a..0x47; a thread priority outside
256..767; an affinity mask outside bits 0..12 in mode 0 or outside
0xEA00 in modes 1000 and 1001. It then moves the module state from 0 to
1 and returns 0x8A740002 if it was not 0.

From there every failure undoes what the call opened and resets the
state to 0. Mode 0 clears the first 32 MiB of work memory first. The
application attribute checks on the sceKernelGetAppInfo2 record
(0x8A74001E, 0x8A740020) are skipped: the host has none, and a zeroed
record passes them. The signed option at 0x39 accepts -1 and 0,
and 1 only for titles compiled with SDK 7.00 or later. Modes 0 and 1000
then call libSceHmd2 TrackingOpen, TrackingStart, LedDetectorOpen and
LedDetectorStart and return the first non-zero result unchanged.
Without a headset main's libSceHmd2 answers 0 and -1 (its measured
pre-initialization answers), so Initialize returns -1 and every other
export keeps answering 0x8A740001.

Modes 1000 and 1001 need the application category, which the host does
not have, and a fully successful Hmd2 sequence would need the tracker
runtime; both throw. The eight tracking and LED-detector exports become
named functions in libSceHmd2 so that libSceVrTracker2 can import them
by name; their answers are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:18:29 +13:00
xXPBSXxandClaude Sonnet 5.5 e59cd20f0c test(libc): use long for the host daylight bias in the Windows time zone diagnostic
_get_dstbias takes a long pointer, so the int variable added in the previous commit did not compile on Windows. The variable and its format specifier are now long.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 12:16:13 +02:00
orezraeyandClaude Opus 5.5 784d435771 Merge main into fix/agc-partial-fast-clear-eliminate
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 07:13:25 -03:00
muaus 38123265f7 test(relinker): reap the suspended child when runtime preloading fails 2026-10-24 15:07:16 +05:00