Commit Graph
9104 Commits
Author SHA1 Message Date
Dean 45af0a222e Merge pull request #11458 from MarcZX10/marc/docs-debt-sync
docs(debt): drop duplicated debt entries
2026-10-28 12:05:46 +13:00
Dean 8b68c5a465 Merge pull request #11457 from MarcZX10/marc/docs-usage-sync
docs: bring USAGE, INPUT_MAPPING and GAME_TESTING in line with the tools
2026-10-28 12:05:26 +13:00
Dean cea134faab Merge pull request #10700 from MarcZX10/marc/signatures-libscenptus
feat(libSceNpTus): declare sceNpTusCreateNpTitleCtx with its shadPS4 signature
2026-10-28 12:04:06 +13:00
Dean 7d2136c9c6 Merge pull request #10447 from alvaroelpob/feat/libscelibressl-x509-store-ctx-error
feat(libSceLibreSsl): implement the X509_STORE_CTX error, depth, current certificate and chain accessors
2026-10-28 12:03:34 +13:00
p3nicillinandClaude Opus 5.5 d0d27f6183 fix(libSceSsl): throw for an empty or certificate-free system CA list
An empty list, or one with no certificate, made SystemRoots() return a
null chain, so the connection trusted nothing. Throw and name the path,
as the missing-file case does; nothing is cached, so a later call
reads the list again.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
p3nicillinandClaude Opus 5.5 f685ee8720 fix(http2): trust the system CA list for HTTPS requests
Every libSceSsl context started without trust anchors, so a libSceHttp2
request without a verify callback failed the known-CA check. RetroArch's
updater, PS5LM and Porpoise all use version-3 templates over https://
without one. libSceSsl now parses /<sandbox word>/common/cert/CA_LIST.cer,
served by libkernel from the host trust store, once per process into its
own pool, and SslTrustSystemRoots_nid_no_patch links those roots after
the context's own authorities for one connection. The HTTP/2 transport
calls it after creating each connection.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:02:48 +00:00
Morten HolmandClaude Sonnet 5.5 3b1697cf1c fix(libkernel): move the macOS main stack out of the guest arena
Under Rosetta the main thread stack lies at about 12 GiB, inside the guest
arena, where a title can map fixed addresses; a fixed mapping over it
aborts with a host region overlap.

- Aps5StartGuest moves the main thread onto a 16 MiB stack at
  0x600000000000 when the old stack overlaps a host region of the arena.
  It copies argv, environ, the program name and the initial block off the
  old stack, then frees the old stack and releases its range to the arena.
- The guest thread keeps the stack size of the original main thread.
- The arena gets GuestArenaOverlapsHostRegion and
  GuestArenaReleaseHostRegion for POSIX hosts.
- guest_main_stack_move starts the guest, then requires the main thread
  outside the arena, a fixed mapping where the old stack was, and argv and
  the environment intact.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-27 22:55:41 +01:00
plexerPK e295dbaa36 fix(libc): forward non-write faults from watched macOS pages 2026-10-27 22:40:22 +01:00
xXPBSXxandClaude Sonnet 5.5 944b4d753e Merge main (f5fefb982c) into carry/6713-default-heap-no-procparam
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-27 22:29:34 +01:00
Adrià f5fefb982c Merge pull request #11305 from joedeangelis533-bot/review/tessellation-depth-upstream-20261025
feat(agc): remap unsupported tessellation viewport depth ranges
2026-10-27 22:27:35 +01:00
Adrià e274546099 Merge pull request #11302 from Danigamer05/feat/libc-signed-max64
feat(libc): implement signed 64-bit maximum
2026-10-27 22:26:29 +01:00
Adrià 6d99bf4ccb Merge pull request #11300 from Danigamer05/feat/libc-signed-min64
feat(libc): implement signed 64-bit minimum
2026-10-27 22:16:40 +01:00
Adrià b9623a5c26 Merge pull request #11297 from mrfelek/perf/probe-f32-flush-nvidia
perf(agc): use the NVIDIA driver's f32 denormal flush when the startup probe matches
2026-10-27 22:09:23 +01:00
PrivacyOnion 312c586d8b feat(libSceAddressSanitizer): add skeleton library and 301 ps5rs-listed stubs 2026-10-27 21:45:36 +01:00
Adrià 4a6005955f Merge pull request #10898 from imellag/feat/libkernel-memory-protection-macos
feat(libkernel): guest memory protection and VirtualQuery on macOS hosts
2026-10-27 21:42:24 +01:00
PrivacyOnion 9b1055e3ca feat(libScePSNowGkp): add skeleton library and 4 PS5 3.20 stubs 2026-10-27 21:35:16 +01:00
PrivacyOnion 1c171a6ef8 feat(libScePfs): add skeleton library and 9 ps5rs-listed stubs 2026-10-27 21:34:19 +01:00
Adrià 771d8b5bf7 Merge pull request #11340 from harisibrar1/feat/libressl-ex-data-indices
feat(libSceLibreSsl): implement the SSL and SSL_CTX ex_data index registry as LibreSSL 2.5.4 does
2026-10-27 21:34:00 +01:00
PrivacyOnion ff44747316 feat(libSceVrHand): add skeleton library and 8 ps5rs-listed stubs 2026-10-27 21:33:50 +01:00
MarcZX10 1eb3a8cf3f docs: list the APS5_TRACE_UDS switch
libSceNpUniversalDataSystem and libSceNpTrophy2 read it and print [uds]
lines to stderr, but the tracing guide did not list it.
2026-10-27 20:26:06 +00:00
MarcZX10 b04ac8eca0 docs: list every runtime DLL the hardware oracle loads
oracle_hip.py tries amdhip64_7, amdhip64_6 and amdhip64, and amd_comgr_3,
amd_comgr_2 and amd_comgr, newest first; the guide named only the older
ones.
2026-10-27 20:26:06 +00:00
MarcZX10 7e5831fcce docs: say APS5_DRAW_PIPELINE is tested for being set
ShaderMemory.cpp and Draw.cpp enable the draw pipeline whenever the
variable exists, unlike APS5_PIPELINE_DISPATCH, which treats an empty
value and 0 as off.
2026-10-27 20:23:26 +00:00
MarcZX10 953c3a798f docs: give the real size of the prebuild thread pool
RegistrationPreparePool::Prebuild uses APS5_PREBUILD_THREADS (at least 1)
when set and otherwise max(2, hardware_concurrency() / 2) threads, not
one.
2026-10-27 20:23:25 +00:00
MarcZX10 dfe6db8b58 docs: spell out the APS5_DISPATCH_CACHE_ENTRIES default
dispatchCacheEntries picks 8192 only for more than two variants, 16384
for one or two and 4096 when stamp validation is on.
2026-10-27 20:22:48 +00:00
MarcZX10 009be80e18 docs: point APS5_EBOOT at the code that reads it
libSceSystemService reads the variable when it prepares a launch, and an
empty value counts as unset; GuestSystemExit.cpp only checks that it is
not defined.
2026-10-27 20:22:48 +00:00
MarcZX10 8592867658 docs: correct the default of APS5_FRAME_CAPTURE_AT_FLIP
FrameRecorder reads the variable with a fallback of 0 and raises it to 1
when it picks the boundary, so the effect of the default is the same as
1 but the default is 0; a value that is not a number throws.
2026-10-27 20:22:48 +00:00
MarcZX10 f281b02025 docs: document APS5_LOG_STATS as a string
AsyncLog.hpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 bd8a7b9315 docs: document APS5_LABEL_TRUST_LATE as a string
Recorder.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 4da9369e17 docs: document APS5_KEYS_FILL_CLEAR as a string
Texture.cpp acts only on the value 1, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 13a973de6f docs: document APS5_HOOK_FLUSH_CPU_BLOCKS as a string
Recorder.cpp acts only on a value that starts with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 8cf29166bd docs: document APS5_EXACT_DRAW_WRITES as a string
WrittenBuffers.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 c4239be970 docs: document APS5_COPY_READ_TRACKING as a string
Recorder.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 71e4a80c7e docs: document APS5_STRICT_DESCRIPTOR_WEBS as a string
ResourceTracker.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 017847c3bb docs: document APS5_IMAGE_TABLE_STRICT as a string
ResourceMaterializer.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 89e8dbee00 docs: document ANYPS5_NO_SHADER_CACHE as a string
ShaderDiskCache.cpp ignores an empty value and 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 2fe21dbd99 docs: document APS5_SKIP_TIMING_TESTS as a string
PreciseWait.cpp tests the first character for 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
Adrià 80b209d984 Merge pull request #11295 from Danigamer05/feat/libc-unsigned-min32
feat(libc): implement unsigned 32-bit minimum
2026-10-27 21:20:30 +01:00
Adrià 225ebc5eee Merge pull request #11264 from Gruzzberry/fix/sysctl-faults
fix(libkernel): fail sysctl and sysctlbyname with EFAULT on an unreadable or unwritable pointer
2026-10-27 21:16:21 +01:00
MarcZX10 c95f8f80e0 docs: say the APS5_SAVEDATA_TRACE limit is per logging site
SAVEDATA_TRACE keeps a static counter in each use, so the default limit
of three applies to every site separately.
2026-10-27 20:15:57 +00:00
MarcZX10 c688fede63 docs: give the range and default of APS5_TRACE_EVENTS
TraceThread::ParseCapacity rejects 0 and anything above 4,194,304, and
DefaultCapacity is 262,144.
2026-10-27 20:15:57 +00:00
MarcZX10 1aac7817b5 docs: keep the host read-only state in the USB passthrough row
HostVolumes records ReadOnly from the mount options (or the Windows
read-only volume flag) and the export reports it, so passthrough is not
always writable.
2026-10-27 20:15:57 +00:00
MarcZX10 e6410e8daa docs: mark the Windows-only debug variables
The timer selftest, the job worker pinning and the page query trace are
compiled only under _WIN32; elsewhere the variables are ignored.
2026-10-27 20:15:57 +00:00
MarcZX10 8ff8758c37 docs: document APS5_TIME_SCALE as a number string
The value is parsed with strtod, so fractional factors work, as the row
already says; the integer kind contradicted it.
2026-10-27 20:15:57 +00:00
MarcZX10 11a036fa09 docs: state the interval limit of APS5_TRACE_BENCH
TraceBench::Keep retains MaximumIntervals = 240 and counts the rest as
dropped.
2026-10-27 20:15:57 +00:00
MarcZX10 29b1aaa480 docs: say what APS5_TRACE_SKIPS adds
reportSkip already writes each distinct skip once; the variable only
enables the 'again' lines for repeats.
2026-10-27 20:15:57 +00:00
MarcZX10 fb7b465ad7 docs: point APS5_SPIRV_OPT at its production reader
The SPIR-V backend reads the variable; the test only repeats the read.
2026-10-27 20:15:57 +00:00
MarcZX10 d035b7afe3 docs: describe the perf pair switches as recompiler switches
APS5_NO_PERF_FRONTEND_PAIR and APS5_NO_PERF_LAYOUT_PAIR are read by the
shader recompiler itself, which the shader disk cache lists among its
output-neutral switches, not only by the shader-memory test the rows
pointed at.
2026-10-27 20:15:57 +00:00
MarcZX10 b47d7e50d3 docs: document APS5_SRGB_SHADER_DECODE as a string
TextureFormat.cpp compares the value with "1" and "copy" and ignores
anything else, so setting it to an arbitrary value does not behave like
a presence switch.
2026-10-27 20:15:20 +00:00
MarcZX10 534f5acdc8 docs: document APS5_STORE_AT_LABEL as a string that accepts only 1
StoreAtLabelRequested returns true for "1" and throws for any other
value (expected 1), like its sibling APS5_STORE_AT_FLIP, so it is not a
presence switch.
2026-10-27 20:15:20 +00:00
MarcZX10 f5947c66cb docs: say when an APR submit returns before its buffer has run
_submit executes inline only when the queue is neither running nor holding
pending work; otherwise it enqueues a copy and returns the id, so the
statement that buffers without a wait always complete first was wrong.
2026-10-27 20:14:41 +00:00