Commit Graph
20967 Commits
Author SHA1 Message Date
simnJS b419a4a808 feat(libSceSystemService): call libSceUsbStorage from the USB storage aliases
The sceSystemServiceUsbStorage* exports jump straight into the USB storage
module, so call the matching libSceUsbStorage export instead of throwing.
RequestMapWSB keeps its marker while its two declarations disagree on the
fourth argument and the output type.
2026-10-27 14:18:59 +01:00
roboterspinne c18ee35e52 fix(relinker): reject Windows images larger than the loader maps
The Windows writer accepted any image up to the 2 GiB RVA bound, so an
image with a SizeOfImage above 0x77000000 converted with exit 0 and then
failed to start with ERROR_BAD_EXE_FORMAT (193). WindowsPeWriter::Write
now refuses such an image, matching the loader's SizeOfImage >
MM_SIZE_OF_LARGEST_IMAGE (0x77000000) test, which applies to executables
and to bundled modules alike. Images with a SizeOfImage of at most
0x77000000 are written unchanged.
2026-10-27 14:16:56 +01:00
roboterspinne 34de2385aa test(tools): check the CI gate rule in one repository instead of one subprocess per case
conventions_ci_gate built a git repository and ran check_conventions.py
as a subprocess for each of its 35 checks, and took 40.57 s in the
Windows relinker CI job 122160160306. CONTRIBUTING.md requires every
test to finish in 30 s and to be shrunk when it gets close. The test now
commits each case as its own workflow file in one repository, runs one
real Check.workflows() in process and asserts each file's findings. Two
subprocess runs keep the end-to-end path: the repository's workflows
and one job without a gate.
2026-10-27 14:13:49 +01:00
milescovielloandClaude Opus 5.5 17a98af8b4 docs(libkernel): note the protections ten titles pass to sceKernelMapDirectMemory
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 13:09:13 +00:00
Adrià 1089f2bbfd Merge pull request #11039 from orezraey/fix/libkernel-mutex-yieldloops-destroyed-measured-ps5
fix(libkernel): fail the yield loop setter on a destroyed mutex as measured on a PS5
2026-10-27 14:08:31 +01:00
Adrià 9de9c6efd0 Merge pull request #11261 from JaceTheBlu/feat/libressl-object-text
feat(libSceLibreSsl): add the LibreSSL object table and implement i2t_ASN1_OBJECT
2026-10-27 14:07:27 +01:00
milescoviello a45f140d85 Merge remote-tracking branch 'upstream/main' into fix/http2-memory-pool-stats
# Conflicts:
#	docs/dev/debt/libSceHttp2.md
2026-10-27 13:06:25 +00:00
roboterspinne beb46de57d fix(relinker): zero the e_ident padding of the Linux executable
LinuxElfPatcher::Patch zeroed only e_ident bytes 7 and 8 of the output
executable, and ElfReader checks only bytes 0 to 6, so nonzero EI_PAD
bytes 9 to 15 of the input reached the output in every Linux mode. The
gABI reserves EI_PAD as zero, and glibc's open_verify refuses an object
with nonzero padding when ld.so maps the program itself, as under ldd
or an explicit ld-linux-x86-64.so.2 invocation. The patcher now zeroes
bytes 7 to 15, the rule that #11582 applies to guest modules. Only
reserved bytes change, and a direct exec is unaffected either way.
2026-10-27 14:03:02 +01:00
milescovielloandClaude Opus 5.5 6e58d5b0b6 docs(libSceVideoOut): note which open params ten titles pass to sceVideoOutOpen
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 13:02:40 +00:00
milescovielloandClaude Opus 5.5 610099db74 docs(libSceAjm.native): list the module registration, finalize and batch error dump calls as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:58:25 +00:00
Kyon 8d08a1338a feat(libSceVideodec2): declare 3 additional exports 2026-10-27 12:57:10 +00:00
Kyon 094868fab2 feat(libSceCamera): declare 4 additional exports 2026-10-27 12:57:10 +00:00
milescovielloandClaude Opus 5.5 819cf2eb0a docs(libSceAmpr): list the command buffer destructors and the AMM constructor as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:56:23 +00:00
al3w0f205 8946a16f85 test(libkernel): cover destroyed condition variable in scePthreadCondSignalto 2026-10-27 07:54:28 -05:00
GiannisandClaude Opus 5.5 91624a508e test(agc): skip the 4_4_4_4 partial write test without shaderStorageImageReadWithoutFormat
agc_driver_packed_unorm4444_partial_write failed on devices without
shaderStorageImageReadWithoutFormat (Intel HD 630 on Mesa ANV): a
partial write merges into the target in the pixel shader, and
EmitStorageImageRead refuses the read of the target ("storage image
reads without a format are unavailable on the target device"). The test
checked only fragmentShaderPixelInterlock.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 14:53:26 +02:00
PrivacyOnion f977b203c4 test(libSceAudioIn): cover invalid handle operations in GuestAudioIn 2026-10-27 13:49:10 +01:00
milescovielloandClaude Opus 5.5 af244a7748 docs(libSceNpManager): record the null-callback check in the premium callback entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:47:26 +00:00
milescovielloandClaude Opus 5.5 8fe03aa952 docs(libSceSystemService): record the null-parameter checks in the splash and notice-flag entries
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:47:09 +00:00
al3ss4ndrolbandClaude Opus 5.5 498270408f fix(libkernel): build the param.json parser with Clang and libstdc++
JsonObject held std::pair<std::string, JsonValue> while JsonValue was
still incomplete. Clang with libstdc++ instantiates the pair and the
vector destructor at the end of JsonValue and stops with "incomplete
type used in type trait expression". A named JsonMember struct defined
after JsonValue keeps the vector element a plain class.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 13:45:06 +01:00
milescovielloandClaude Opus 5.5 7fa9550799 docs(libSceNpManager): list the premium-feature, title ID and premium callback calls as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:42:34 +00:00
Matheus Herberts 3ab97351f2 fix(relinker): validate visibility of undefined strong symbols 2026-10-27 09:40:19 -03:00
rooklz 0f75fd0662 fix(relinker): accept an identical duplicate pointer relocation in the strict filter
A RELA entry repeated with the same target, type and addend writes the
same value twice, so applying it once is equivalent. 9673868d5f made the
Windows relocation builder and the code analysis accept such duplicates,
but the strict unused-NID filter still refused one as overlapping, so
the same ELF converted with unused-filter=0 or 1 and failed with
unused-filter=2. The strict filter now records a pointer relocation
only when its slot is new or its target is identical, and still refuses
a distinct entry at one slot and a slot that an import relocation
already owns.

AI-assisted: yes
2026-10-27 12:38:18 +00:00
milescovielloandClaude Opus 5.5 1c2667ff63 docs(libSceSystemService): list the splash, player dialog and notice-flag calls as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:32:51 +00:00
Kyon 0ea5d5f1e6 Merge remote-tracking branch 'origin/main' into feat/http2-1360-inventory 2026-10-27 12:32:04 +00:00
Kyon 18484e071c Merge remote-tracking branch 'origin/main' into feat/audioout2-1360-inventory 2026-10-27 12:31:58 +00:00
Kyon fadf15081d feat(libSceAudioOut): declare 11 additional exports 2026-10-27 12:31:40 +00:00
Kyon 60941da8ca feat(libSceHttp2): declare eight additional exports 2026-10-27 12:31:36 +00:00
Adrià 62b3ba2522 Merge pull request #11125 from MarcZX10/marc/fix-equeue-close-during-measure
fix(libkernel): wait for an in-flight file measurement before closing a watched descriptor
2026-10-27 13:30:54 +01:00
Adrià b71d5db752 Merge pull request #10855 from Felipebmaitan/feat/async-storage-engine
fix(libkernel): preserve AIO request ownership and identities
2026-10-27 13:30:47 +01:00
PrivacyOnion 0b772bf50e docs(debt): record silent stubs in libScePlayerInvitationDialog debt
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:24:57 +01:00
PrivacyOnion 2cb3965b37 test(libSceNpSessionSignaling): cover context validation and invalid handles in GuestNpSessionSignaling
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:24:28 +01:00
PrivacyOnion 25e07ea713 test(libSceContentSearch): cover invalid metadata and query bounds in GuestContentSearch
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:24:09 +01:00
PrivacyOnion c648e06c61 test(libSceNpManager): cover argument bounds and state validation in GuestNpReachability
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:23:51 +01:00
PrivacyOnion 5be476d442 test(libSceNpMatching2): cover null argument validation in GuestNpMatching2Offline
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:23:42 +01:00
PrivacyOnion 654a905ad6 test(libSceConvertKeycode): cover null character and keycode bounds in GuestConvertKeycode
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:23:32 +01:00
PrivacyOnion 882dc6e07d test(libSceCamera): cover non-positive handle bounds in GuestCamera
Signed-off-by: PrivacyOnion <[email protected]>
2026-10-27 13:23:23 +01:00
Adrià eece5da035 Merge pull request #10838 from EagleBearerYS/feat/libkernel-sys-finish-calls-v2
feat(libkernel_sys): finish sched_setscheduler and sigreturn
2026-10-27 13:20:31 +01:00
Adrià 9ae2f7d22a Merge pull request #10414 from orezraey/fix/agc-partial-fast-clear-eliminate
fix(agc): eliminate a fast clear over part of a CMASK color target
2026-10-27 13:19:27 +01:00
Bram910 c2bf2c595e fix(shader): preserve ownership of mapped shader pack entries 2026-10-27 13:11:19 +01:00
Bram910 302288f9fc fix(agc): recover pipeline cache persistence from transient failures 2026-10-27 13:11:16 +01:00
Adrià 20cfe359a8 Merge pull request #9455 from jotitadev/fix/agc-multisample-storage-remap-reorderable-skip
test(agc): skip the MSAA storage-promotion remap on sample-order devices
2026-10-27 13:09:07 +01:00
ionut27001 34c5ae23f8 docs(libkernel): record PS5 results for two libkernel exports 2026-10-27 14:08:58 +02:00
Adrià 431a5156b9 Merge pull request #11716 from milescoviello/docs/avplayer-init-allocators
docs(libSceAvPlayer): note that six titles pass all four allocator callbacks
2026-10-27 13:02:54 +01:00
78afe4c2b8 fix(agc): read the process's private memory from task_info on macOS
ReadProcessPrivateBytes reads RssAnon and VmSwap from /proc/self/status
on every host other than Windows. macOS has no /proc, so the overlay's
RAM line stays empty and agc_performance_overlay_statistics fails with
"the process's private memory cannot be read". On macOS it now returns
the task's phys_footprint from task_info(TASK_VM_INFO): its resident and
compressed private memory, which is what Activity Monitor shows.

jotitadev measured that this makes the test pass on macOS (#7886).
The same change is part of the macOS port in #8658.

Co-Authored-By: iamthehimansh <[email protected]>
Co-Authored-By: jotitadev <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 08:02:44 -04:00
Oleg 201e6561fe test(libSceCesCs): cover the named per-codec UTF-16 and UTF-32 conversions 2026-10-27 17:00:59 +05:00
Daniel Castrillon 0701378a56 feat(pad): inject touch coordinates through command files 2026-10-27 12:53:57 +01:00
Brainiac91 b729a37dd0 fix(allocator): accept minimal PE32+ import headers 2026-10-27 13:45:22 +02:00
Brainiac91 737d4dea35 fix(allocator): reject malformed import metadata in PeImportFirst
Read the Import Directory entry only when the optional header holds it and NumberOfRvaAndSizes declares it. Require every import name to end with a NUL inside the file and resolve the names after the descriptor table is bounds-checked.
2026-10-27 13:45:22 +02:00
milescovielloandClaude Opus 5.5 c60f0fc43c docs(libSceAgcDriver): note the registration memory query's null-output refusal
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 11:43:03 +00:00
milescovielloandClaude Opus 5.5 c2a6577ad9 docs(libSceAgcDriver): list the registration init and memory query as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 11:43:03 +00:00