Commit Graph
14017 Commits
Author SHA1 Message Date
Dean 5575402042 Merge pull request #7866 from milescoviello/fix/asan-driver-memory
fix(agc): map the AGC driver memory past ASan's shadow in an ASan build
2026-10-20 16:22:03 +13:00
jagrat Singh f5b5682575 feat(libSceSystemGesture): implement sceSystemGestureGetTouchEventByEventID 2026-10-20 08:45:30 +05:30
Dean Galvin 20c425aabe ci(release): skip the precise-wait test in the Linux release run
The hosted ubuntu-latest runners oversleep PreciseSleepUs(50), so precise_wait
fails there and, with --stop-on-failure, every tag-push Release stops before
it packages anything. The Build workflow still runs the test on every pull
request; only the Linux step of release.yml excludes it.
2026-10-20 16:14:09 +13:00
al3w0f205 a8c5a3afc8 fix(libSceLibcInternal): check null output before path in statvfs 2026-10-19 22:14:06 -05:00
Adrià 38d7e344b1 Merge pull request #7871 from Ondra97/codex/perf-cse-operand-keys
perf(shader): keep redundant expression operand keys inline
2026-10-20 05:04:22 +02:00
milescovielloandClaude Opus 5.5 c76299f217 fix(shader): write a poisoned guarded read's record with an atomic store
Invocations of one dispatch that fault through different guards wrote
the guard word with plain stores, which the Vulkan memory model treats
as a data race. The write is now a relaxed device-scope OpAtomicStore,
so one of the records is reported whole. The guarded-pointer test now
also has two workgroups fault through a null and an unmapped pointer.
MarcZX100 pointed out the race.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 03:02:33 +00:00
milescovielloandClaude Opus 5.5 c9e38be258 perf(shader): name a poisoned guarded SRT read in the fault buffer
A ReadConst of a guarded flattened-SRT slot called record_bda_fault
with the poison record's pc and address when the slot's flag was set.
NVIDIA's compiler pays for every call site in a large function:
Crimson Desert's 1,916,980-word compute module has 2,769 guarded
reads, and its pipeline took 99 s and 5.9 GiB to create.

The read now stores the record's flattened-SRT word, tagged with its
stage, to a new fault-buffer word after the written-page list, and
stops as before. The host reads the pc and address from that stage's
flattened SRT and raises the same Unmapped fault. Poisoned and clean
captures still share one variant, specialization and pipeline, and
the existing words keep their offsets, so cached modules from before
still report through record_bda_fault.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 03:02:32 +00:00
al3w0f205 e426315441 fix(libc): check access mode before the path 2026-10-19 21:57:31 -05:00
Dean a020d02560 Merge pull request #7718 from To3akaRin/codex/fix-syntax-check-dependency-flags
fix(tools): strip dependency options before syntax checks
2026-10-20 15:53:38 +13:00
Dean 7020db3098 Merge pull request #8156 from xXPBSXx/fix/socket-call-on-non-socket-v4
fix(libkernel): fail a socket call on an open non-socket descriptor with ENOTSOCK
2026-10-20 15:53:25 +13:00
Dean ebb8610b82 Merge pull request #8154 from xXPBSXx/fix/socket-address-length-v4
fix(libkernel): fail a short or long socket address like FreeBSD
2026-10-20 15:53:11 +13:00
Dean 4a7fd7fa4a Merge pull request #7778 from YossiYad/fix/videodec2-avcc-length-startcode
fix(libSceVideodec2): frame an access unit whose length prefix looks like a start code
2026-10-20 15:52:57 +13:00
Dean 2a5014d896 Merge pull request #8096 from klosixgaming-arch/fix/libc-crash-report-int41-assert
fix(libc): name guest assert/break in Windows crash reports
2026-10-20 15:52:43 +13:00
Dean 463dc2e4e2 Merge pull request #7889 from ErenYeager1836/feat/libSceSysmodule-unload-internal-with-arg
feat(libSceSysmodule): implement sceSysmoduleUnloadModuleInternalWithArg
2026-10-20 15:52:30 +13:00
Dean db9fe52310 Merge pull request #7828 from savvaniss/fix/gpl-off-keep-library-extensions
fix(agc): keep the pipeline library extensions enabled under APS5_NO_GPL
2026-10-20 15:52:17 +13:00
Dean b5813c0740 Merge pull request #7746 from YossiYad/fix/front-face-all-bits-uint-target
test(agc): export the front-face bits through a uint target as uint
2026-10-20 15:52:03 +13:00
ShinMalphur d9fc0c483d docs(net): record Ethernet parser validation gap 2026-10-20 09:19:52 +06:30
ShinMalphur 44d78d0478 test(net): cover Ethernet address parsing 2026-10-20 09:18:55 +06:30
ShinMalphur b4762a6583 feat(net): parse Ethernet address strings 2026-10-20 09:18:31 +06:30
Adrià c942b37c0b Merge pull request #7861 from valenciana-nc/fix/savedata-exclusive-temporary-files
fix(savedata): create exclusive temporary files for save replacement
2026-10-20 04:46:51 +02:00
Adrià 06d97be8b4 Merge pull request #7856 from KernelPanicNT/fix/gameupdate-lifecycle-errors
fix(libSceGameUpdate): return the module's lifecycle and argument errors
2026-10-20 04:46:46 +02:00
Adrià 0169b82e31 Merge pull request #7852 from Lindamea1/feat/ppsa24191-loader-imports
feat(libs): add the Voice and IME exports PPSA24191 needs to load
2026-10-20 04:46:42 +02:00
Adrià 784f82b4b0 Merge pull request #7848 from SibteProf/feat/ces-unicode-scalar-conversions
feat(libSceCesCs): implement Unicode scalar conversions
2026-10-20 04:36:33 +02:00
Adrià 38a7b0c72b Merge pull request #7846 from fogydes/feat/contentexport-firmware-exports
feat(libSceContentExport): export missing firmware content export interfaces
2026-10-20 04:36:28 +02:00
Adrià 7e88b6da0b Merge pull request #7840 from akkadbakkad89/feat/prx-declare-seven-more-libs
feat(prx): declare exports for seven more confirmed system libraries
2026-10-20 04:36:23 +02:00
al3w0f205 dba05da0e5 feat(libSceUlt): export missing firmware functions from database 2026-10-19 21:34:45 -05:00
Adrià c2b0159d6e Merge pull request #7835 from akkadbakkad89/feat/prx-declare-six-libs
feat(prx): declare exports for six confirmed system libraries
2026-10-20 04:27:03 +02:00
Dean c21eef33c0 Merge pull request #7890 from ErenYeager1836/feat/libSceNpAuth-get-auth-code-id-token
feat(libSceNpAuth): export sceNpAuthGetAuthorizationCode and sceNpAuthGetIdToken
2026-10-20 15:22:43 +13:00
Dean 842bfcce66 Merge pull request #7726 from milescoviello/fix/playgo-scenario-chunks
fix(libScePlayGo): list chunks 0 to 999 when only a scenario file is present
2026-10-20 15:22:30 +13:00
Dean b96e1f29ff Merge pull request #8171 from xXPBSXx/fix/libkernel-truncate-utimes-argument-order
fix(libkernel): check truncate length and utimes times before the path
2026-10-20 15:22:16 +13:00
Dean 07fc9a5b36 Merge pull request #8164 from xXPBSXx/fix/path-name-too-long-fb
fix(libc): fail an oversized guest path name with ENAMETOOLONG
2026-10-20 15:22:02 +13:00
alosta 93a2bcba57 test(libSceSystemService): cover the display safe area settings stub
sceSystemServiceShowDisplaySafeAreaSettings returns success without
showing anything, so check the result through the existing guest test.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
alosta 76bbf68f70 docs(debt): record the remaining stubs under Unknown function info
The debt entries only had the four index sections before; use Unknown
function info for the imports that fail a title to load and for the
signatures Orbital or the aerolib NID list do not give. Note that
sceSystemServiceShowDisplaySafeAreaSettings takes its (void) signature
from the sibling sceSystemServiceShowControllerSettings, not a reference.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
alosta 828a3582a3 test(libs): cover the libSceAt9Enc and libSceM4aacEnc throwing stubs
Register a guest test for each library and build it from the library's
CMakeLists.txt, so the two libraries are built and registered like the
other libraries that ship a CMakeLists.txt. The tests call every export
and require the NotImplemented_nid_no_patch throw, so none of them can
return a made-up success or write the caller's buffers.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
alosta e9cbbfb13c style(libs): space the libSceAt9Enc pointer parameters as elsewhere
AI-assisted: yes
2026-10-20 03:21:07 +01:00
alosta 38aa6aafe8 refactor(libs): drop the stub libraries with unknown signatures
SceCamera, SceDepth2, SceSulpha and SceAudiodecCpuHevag were declared
without parameters because no reference gives their signatures, and the
HEVAG stub exported an invented sceAudiodecCpuHevagUnimplemented symbol
that matches no real export. SceAudiodecCpu overlaps #6847. Only the
libraries whose real exports and signatures are known stay.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
alosta 73e29b9469 fix(docs): correct debt-file link for libSceAt9Enc 2026-10-20 03:21:07 +01:00
alosta 2dc56f37c3 feat(libs): add unimplemented PS5 system library stubs and debt docs
Add boilerplate stubs for libSceAt9Enc, libSceAudiodecCpu, libSceAudiodecCpuHevag,
libSceM4aacEnc, libSceSulpha, libSceCamera, and libSceDepth2, each exporting its
known NIDs via NotImplemented_nid_no_patch. Include debt documentation with
sysmodule IDs and (where available) orbital-derived signatures.

Add sceSystemServiceShowDisplaySafeAreaSettings as a silent success stub and
document it under Silent stubs.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
Adrià eca8d6cca4 Merge pull request #7820 from parl0v/fix/unwrap-self-segment-align
fix(tools): keep p_align for segments unwrap_self copies outside load segments
2026-10-20 04:18:47 +02:00
JJenkxandClaude Opus 5.5 a3ac9fd9e4 test(relinker): retry removing fixtures an exited Windows program still holds
windows_named_imports, windows_trace_imports, windows_guest_weak_imports and
guest_module_identity run converted programs that stop on a missing import,
then remove their temporary directory. Windows keeps the modules of such an
exited process open for a short time after the process handle is signaled, so
under parallel ctest the removal fails with PermissionError on a .prx that
program loaded: with Defender real-time protection off, 3 or 4 of these tests
failed in each of three runs of ctest --repeat until-fail:10 -j 16 over the 69
tests that run converted programs.

Add fixture_directory to guest_import_fixtures, a temporary directory whose
removal retries on PermissionError for at most 10 s, and use it in the four
tests. Their checks are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 22:14:40 -04:00
Adrià ad61cafde0 Merge pull request #7821 from xdCloudy/feat/ps5-system-services-exports
feat(libs): declare system service import stubs for OS 3.20 compatibility
2026-10-20 04:12:34 +02:00
hugodearaujo 086e98a42a fix(agc): decode cube descriptors with slices past their last whole cube
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-19 23:11:53 -03:00
Adrià 713ee693e8 Merge pull request #7788 from ANONYMOUSZED-beep/perf/linux-image-page-cache
perf(agc): cache the main image's page states on Linux
2026-10-20 04:07:26 +02:00
xXPBSXxandClaude Sonnet 5.5 d6b5e3f6b8 fix(libc): fail fopen and freopen of a directory for writing with EISDIR on Windows
fopen and freopen of a directory in a write mode failed with EACCES on
Windows, the host's answer. FreeBSD 11.4 fopen opens the path with open(2),
which fails a directory opened for writing with EISDIR (kern_openat, vn_open_cred).
A failed write-mode open of a directory now reports EISDIR.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 03:59:03 +02:00
Dean 500cc640bd Merge pull request #7987 from MarrasFederico/fix/sce-net-ipv6-loopback-errors
test(libSceNet): accept every unusable IPv6 loopback error in guest_sce_net
2026-10-20 14:53:04 +13:00
Dean d0b970a412 Merge pull request #8073 from thuanquang/fix/pr-labels-unblocks-none
fix(tools): don't label "Unblocks: none ..." pull requests as unblocking a title
2026-10-20 14:52:51 +13:00
Dean 2634d61bfb Merge pull request #8141 from Celegans12/fix/agc-trimmed-import-freed-handle
test(agc): compare a remapped import with the one alive before the remap
2026-10-20 14:52:38 +13:00
Dean 58f5b31e6f Merge pull request #6373 from AlxcBTW/fix/bda-unaligned
fix(agc): write copied buffers back before reporting an unaligned BDA access
2026-10-20 14:52:25 +13:00
Dean 8140f2df6a Merge pull request #8147 from xXPBSXx/fix/libc-strrchr-char-conversion-v3
fix(libc): convert the character argument of strrchr to char
2026-10-20 14:52:11 +13:00
xXPBSXxandClaude Sonnet 5.5 d672e8d54a fix(libkernel): fail listen on a connected socket with EINVAL
listen on a connected stream socket failed with EISCONN, the Winsock error.
FreeBSD 11.4 solisten_proto_check fails a socket that is connected,
connecting or disconnecting with EINVAL. The guest listen now reports EINVAL
for the host's EISCONN, and the connect-listening test checks it.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 03:48:18 +02:00