Commit Graph
10207 Commits
Author SHA1 Message Date
Adrià acd13871af Merge pull request #11354 from edubox/feat/ngs2-peak-meter
feat(ngs2): implement the sampler and submixer peak meter
2026-10-28 15:16:05 +01:00
Romans Pokrovskis b2aad7239c chore: refresh native buffer alias guard after depth write fix 2026-10-28 16:11:13 +02:00
simnJS cffb533c1b feat(audio3d): route sceAudio3dPortCreate through the 0x10 port open
sceAudio3dPortCreate checks its port id and reserved argument as shadPS4
does, then opens with a 0x10 parameter block. That block selects buffer
mode 0, which still throws, so no port is opened yet.

The 0x10 and 0x18 blocks of sceAudio3dPortOpen now take the defaults
shadPS4 and prosper fill in and go through the field checks before the
buffer mode throws.

sceAudio3dPortDestroy and sceAudio3dPortGetStatus get the signatures
from Orbital and SharpProspero and keep throwing; the debt entries of
the six remaining exports say what is still unknown.
2026-10-28 15:05:28 +01:00
simnJS 07883249e6 fix(libSceIcu): follow ICU for null escape inputs and negative u_unescape capacities
ICU 78.1's u_unescapeAt dereferences the offset and calls the callback without checks, and u_unescape reads the source without one, so a null one faults: throw std::invalid_argument there instead of NotImplemented_nid_no_patch. A negative u_unescape capacity is clamped by _appendUChars and fails every room check, so nothing is written and the full length is returned; only a capacity whose signed difference with the output length overflows, which ICU leaves undefined, still throws.
2026-10-28 15:01:08 +01:00
simnJS e359410014 fix(libSceJxr): reject null and read-only packet state in readIS and writeIS as invalid arguments
jxrlib's readIS and writeIS use the bit state, the stream and its callbacks without checks, and pass a null packet to the read or write callback before dereferencing or offsetting it. Throw std::invalid_argument at those points instead of NotImplemented_nid_no_patch, and let a null packet reach the callback first, so a failed write of a null packet returns the callback's error as jxrlib does.
2026-10-28 15:01:07 +01:00
Adrià d4cb89300f Merge pull request #12354 from Queuse/codex/document-loop-guard-limit
docs: clarify the shader loop guard limit
2026-10-28 14:58:00 +01:00
Adrià b38cb56dd2 Merge pull request #12300 from dantdmdarealguy/docs/build-table-cpu-lead-execution-tests
docs(build): list ANYPS5_REQUIRE_CPU_LEAD_TEST and ANYPS5_AGC_EXECUTION_TESTS
2026-10-28 14:56:24 +01:00
simnJS 50c8d4cd8f feat(libSceJsc): answer the JSString null and length cases as JavaScriptCore does
JSStringCreateWithUTF8CString and JSStringIsEqualToUTF8CString take a null
UTF-8 pointer as a null string, and JSStringCreateWithCharacters returns a
null string for null characters of any length, as WebKit's JSStringRef.cpp
and WTF's String constructors do. A length above WebKit's 2147483635-unit
limit and a null handle given to retain, release or the maximum-size query
throw std exceptions where JavaScriptCore crashes. The reference count is a
wrapping 32-bit counter and the maximum UTF-8 size is computed in 32 bits,
as in WTF.
2026-10-28 14:55:42 +01:00
Kyon 064df039d4 fix(libkernel_sys): clarify export identities and verifiable membership 2026-10-28 13:54:00 +00:00
Kyon 53455bd295 fix(libSceMusicFrameworkInterface): clarify export identities and verifiable membership 2026-10-28 13:54:00 +00:00
Kyon f14a403978 fix(libSceResourceArbitrator): clarify export identities and verifiable membership 2026-10-28 13:53:47 +00:00
Kyon 9808984058 fix(libSceHidControl): clarify export identities and verifiable membership 2026-10-28 13:53:47 +00:00
Kyon 7db5b84dce fix(libSceBgft): clarify export identities and verifiable membership 2026-10-28 13:53:47 +00:00
Adrià 385553ae97 Merge remote-tracking branch 'upstream/main' into HEAD 2026-10-28 14:52:14 +01:00
AdriàandClaude Sonnet 5.5 95a002bab9 fix(ngs2): accept sampler setup flags as before
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 14:52:11 +01:00
simnJS 692cc3e025 test(libSceUsbd): race the cancel on an interrupt endpoint the host can read
The device test raced sceUsbdCancelTransfer on the first interrupt IN endpoint of the device. On Windows the first one can belong to a mouse or keyboard collection, which the system opens exclusively, so libusb's HID backend cannot read it and the submission failed, reported as a failed cancel race. The test now tries each interrupt IN endpoint, requires a refusal to be the host's I/O error with nothing in flight, and races on the first one the host accepts, with a buffer sized from that endpoint.
2026-10-28 14:51:59 +01:00
simnJS fa4dd26fa7 refactor(prx): name the Xml, NKWebKit, Jsc and FreeTypeOl stubs the NID database resolves 2026-10-28 14:51:26 +01:00
kenny soloandClaude Opus 5.5 20c9a93999 feat(libkernel): implement sem_setname
Keep a copy of the name with the semaphore and move the export from the libkernel_sys stub into libkernel next to the other sem_* exports.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-28 14:51:17 +01:00
Emanuele 4c75091972 feat(libs): let relinked macOS games opt into mimalloc 2026-10-28 14:50:31 +01:00
Adrià 26c20975ac Merge pull request #11369 from QRMOE/fix/agc-msaa-depth-buffer-write
fix(agc): release a resident multisample depth before a GPU buffer may write over it
2026-10-28 14:49:09 +01:00
Adrià bd15a91f99 Merge pull request #11696 from Astronaut10/perf/agc-shape-memo
perf(agc): repeat a draw shape's resident targets and pipeline instead of looking them up again
2026-10-28 14:49:03 +01:00
Adrià 8c5910cd4c Merge pull request #12293 from dantdmdarealguy/docs/debt-mbus-protected-note
docs(debt): drop libSceMbus's stale protected-body note
2026-10-28 14:48:22 +01:00
p3nicillinandClaude Opus 5.5 cce9311f34 fix(libSceVideoOut): answer 0 and UNAVAILABLE_OUTPUT_MODE when the output has no 120 Hz
PS5_Vulkan measured on a base PS5 set to 1080p output that
sceVideoOutIsOutputSupported(15) answers 0, neither 1 nor an error, and
that sceVideoOutConfigureOutput(15) then returns 0x80290019, in a title
declaring high-frame-rate output. A host display below 120 Hz answered
0x80290016 to both instead. Titles that branch on the answer being 1
are unchanged; the undeclared-title answer stays 0x80290016.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 13:48:19 +00:00
p3nicillinandClaude Opus 5.5 60c8b94725 test(libSceVideoOut): move the past-last-buffer check away from the slot check
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 13:48:16 +00:00
Adrià b5b20df15a Merge pull request #12279 from dantdmdarealguy/docs/debt-move-open-close
docs(debt): drop libSceMove's stale protected-body note for open and close
2026-10-28 14:48:16 +01:00
p3nicillinandClaude Opus 5.5 338ea713f2 fix(libSceVideoOut): return INVALID_VALUE for a registration past the last buffer
PS5_Vulkan measured on a PS5 (firmware 13.40) that
sceVideoOutRegisterBuffers2 refuses a set at buffers 15 to 19 with
0x80290001. The call threw instead. The other out-of-range arguments
keep throwing.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 13:48:15 +00:00
Adrià 4ee7e4c95f Merge pull request #12268 from dantdmdarealguy/docs/build-agc-create-log-no-effect
docs(build): say APS5_AGC_CREATE_LOG has no effect
2026-10-28 14:48:11 +01:00
Adrià c55fcc7c14 Merge pull request #12267 from dantdmdarealguy/docs/debt-hmd-throwing-queries
docs(debt): narrow libSceHmd's protected-body notes to the throwing queries
2026-10-28 14:48:06 +01:00
Adrià 31646b6e17 Merge pull request #12259 from B-Howell/docs/libc-rename-source-lookup-debt
docs(libc): drop the rename dot-destination gap that 308848e1a6 closed
2026-10-28 14:47:59 +01:00
Adrià 5b9e1a8652 Merge pull request #12242 from milescoviello/docs/kernel-debug-raise-exception
docs(libkernel): list sceKernelDebugRaiseException and its release-mode form as silent stubs
2026-10-28 14:47:54 +01:00
Adrià e3bb0fce27 Merge pull request #12138 from milescoviello/docs/npentitlement-initialize
docs(libSceNpEntitlementAccess): list sceNpEntitlementAccessInitialize as a silent stub
2026-10-28 14:47:48 +01:00
Adrià 1856f99e53 Merge pull request #12095 from MarcZX10/docs/architecture-shader-pipeline-statements
docs: fix the prebuild pool size and APS5_DRAW_PIPELINE statements in the architecture guide
2026-10-28 14:47:43 +01:00
Adrià 6464d626c8 Merge pull request #12097 from MarcZX10/docs/oracle-dlls-and-trace-uds
docs: list every HIP runtime DLL the oracle loads and the APS5_TRACE_UDS switch
2026-10-28 14:47:38 +01:00
Adrià ca814b7bfa Merge pull request #12094 from MarcZX10/docs/environment-value-kinds
docs: correct kinds, defaults and sources of thirteen environment variable rows
2026-10-28 14:47:33 +01:00
Adrià bf31ed6c3f Merge pull request #12091 from MarcZX10/docs/environment-reference-accuracy
docs: correct eleven rows of the environment variable reference
2026-10-28 14:47:22 +01:00
Adrià e7da6d800f Merge pull request #12090 from MarcZX10/docs/architecture-macos-apr-cancellation
docs: fix the macOS entry, cancellation link and APR submit statements in the architecture guide
2026-10-28 14:47:17 +01:00
Adrià eb6127c5d9 Merge pull request #12087 from MarcZX10/docs/build-trace-and-capture-limits
docs: correct the trace buffer sizes and capture details in the build guide
2026-10-28 14:47:11 +01:00
Adrià c8fc68ebe5 Merge pull request #12073 from milescoviello/docs/sanitizer-replace-tables
docs(libkernel): note how titles' libc reads the sanitizer replacement tables
2026-10-28 14:47:05 +01:00
Adrià 3b951bc4fa Merge pull request #12020 from milescoviello/docs/savedata-transaction-sizes
docs(libSceSaveData): record the sizes titles pass to sceSaveDataCreateTransactionResource
2026-10-28 14:47:00 +01:00
Adrià e21640c216 Merge pull request #11933 from milescoviello/docs/videoout-open-param-titles
docs(libSceVideoOut): note which open params ten titles pass to sceVideoOutOpen
2026-10-28 14:46:55 +01:00
Adrià 5ff3328652 Merge pull request #11937 from milescoviello/docs/map-direct-memory-protections
docs(libkernel): note the protections ten titles pass to sceKernelMapDirectMemory
2026-10-28 14:46:49 +01:00
Adrià 4b53572a85 Merge pull request #11930 from milescoviello/docs/ajm-module-finalize-stubs
docs(libSceAjm.native): list the module registration, finalize and batch error dump calls as silent stubs
2026-10-28 14:46:44 +01:00
Adrià 10363ed240 Merge pull request #11927 from milescoviello/docs/ampr-buffer-teardown
docs(libSceAmpr): list the command buffer destructors and the AMM constructor as silent stubs
2026-10-28 14:46:38 +01:00
Adrià 355f3bf182 Merge pull request #11924 from milescoviello/docs/npmanager-premium-title-id
docs(libSceNpManager): list the premium-feature, title ID and premium callback calls as silent stubs
2026-10-28 14:46:33 +01:00
Claude 84aec8b0ac fix(libc): read characters outside the BMP as surrogate pairs in fgetwc
fputws and wprintf write a UTF-16 surrogate pair as one four-byte
UTF-8 sequence, but fgetwc decoded that sequence into a single code
point above 0xFFFF, which is not a 16-bit guest wchar_t value, and
fgetws stored it truncated: fputws(u"A\U0001F600\n") read back as
A, U+F600, newline.

fgetwc now returns the high surrogate and keeps the low one in the
stream for the next read, so fgetws stores the pair, also when the
buffer fills between the two halves. A successful seek discards it,
as FreeBSD's fseeko resets the stream's mbstate. Sequences that
decode to an overlong form or above U+10FFFF, and lead bytes F8 to
FF, fail with EILSEQ instead of returning made-up characters; the
three-byte surrogates that fputwc writes for a single unit are still
read back as that unit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QegaHM5QeCynUQ2ZLWHE4b
2026-10-28 14:43:48 +01:00
Adrià 123f7f3b60 fix(shader): keep multi-dword TYPE 2/3 stores throwing and move the failed-capture fixture to TYPE 1 2026-10-28 14:42:32 +01:00
cgrdandClaude Opus 5.5 4620e29426 fix(shader): drop vector stores through TYPE 2/3 and FORMAT 0 buffer V#s as measured
A buffer V# whose TYPE is not 0 threw "buffer descriptor uses an
unsupported type" for every access. Measured on a PS5 (CFI-1115B,
firmware 12.20): through a V# with TYPE 2 or 3 and FORMAT 0 or a valid
format, buffer_store_dword and buffer_store_format_x write nothing and
don't fault, so a buffer a shader only stores to through one is bound as
a null V#. Loads and atomics through those V#s leave the destination VGPR
unchanged, which a null V# can't reproduce, so they still throw. Through
a TYPE 0, FORMAT 0 V#, vector loads return 0 and stores are dropped, and
those buffers are bound as a null V# too. TYPE 1 faults the GPU for every
access measured and keeps throwing.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 14:42:23 +01:00
AdriàandClaude Sonnet 5.5 af7d8d38c1 docs(libkernel_sys): move the sceKernelIsNeoMode debt line off the end of Functional
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 14:27:20 +01:00
Adrià 0a07101649 docs(libSceConvertKeycode): fix debt entry punctuation 2026-10-28 14:27:12 +01:00
InfinitySpeed b0ed32bd6c feat(libSceConvertKeycode): implement sceConvertKeycodeGetCharacterFromKeyboardData 2026-10-28 14:27:07 +01:00