Commit Graph
6285 Commits
Author SHA1 Message Date
Yunus Shaikh 9b0ff5ccc2 fix(agc): accept a compared host import for a multisampled target's FMASK range
be write-watched at the initial import ("native FMASK contents require
watched guest memory") and at each reuse ("native FMASK sampling requires
watched guest memory"). In Linux comparison mode a host import over the
FMASK unwatches it, so the target is refused one check after the color,
DCC and CMASK ranges that the previous commit accepts.

Treat an FMASK range that a compared host import covers
(ComparedHostImportCovers) as the color and metadata ranges are treated:
keep a copy and its NewestStamp at the initial import, skip it in the
import's UnchangedSinceAll, and at reuse require the stamp and the bytes
to be unchanged, comparing them at most once per collect epoch. An
explicitly unwatched FMASK range is still refused.

Four-sample targets take no FMASK range, so this changes nothing for them.

Refs https://github.com/boykopovar/AnyPS5/issues/9724
2026-10-26 12:30:14 +01:00
Yunus Shaikh c10d1eae66 fix(agc): accept a compared host import for an initial multisampled DCC import
Rush 2 Recompiled (PPSA69423) and Wave Race 64 Recompiled (PPSA69424)
stop with "AGC graphics: initial multisampled DCC contents require
watched guest memory"
(https://github.com/boykopovar/AnyPS5/issues/9724). On Linux with
lavapipe, the write-watch probe finds that device accesses to a host
import trip the write watch, so every imported range is compared rather
than watched. A multisampled DCC target whose color, DCC or CMASK range
lies in such an import was then refused at its first draw: importing the
target takes a write generation for each range, and a compared range has
none.

A range that is not watched but lies in a live host import the probe
compares is now copied when the target is imported, and its metadata
again when a whole fill is taken as its fast clear. Each later use
compares the range with that copy, at most once per collect epoch, and
counts any driver or GPU store over its 64 KiB blocks since the copy as
a write, so a guest store of new bytes or any store by the driver
refuses the resident target as a watched range does. A range left
unwatched outside such an import is refused as before.

This covers the Linux comparison mode, not the Windows deferred settle
(BF-150): compared imports on Windows still refuse.
2026-10-26 12:30:01 +01:00
ntamas94andClaude Opus 5.5 1309f3c63f fix(libSceNpTrophy): answer ABORT from RegisterContext through an aborted handle
With an NP title id in place, a PS4 Pro (firmware 10.71) answers 0x80551607
from sceNpTrophyRegisterContext through an aborted handle, ahead of the
missing trophy package (0x80551626 through a live handle). The earlier
measurement stopped at the NP title id lookup on both handles.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:20:03 +01:00
ntamas94andClaude Opus 5.5 b4c1498dfe fix(libSceNpTrophy): answer ABORT through a handle once it is aborted
On a PS4 Pro (firmware 10.71) sceNpTrophyGetTrophyUnlockState and
sceNpTrophyGetGameIcon answer 0x80551607 through an aborted handle, ahead of
the not-registered check, and aborting the handle again answers 0.
sceNpTrophyAbortHandle now records the abort, the calls that use the handle
answer NP_TROPHY_ERROR_ABORT, and destroying the handle clears it.
sceNpTrophyRegisterContext keeps its answer, as measured without a trophy
package.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:20:03 +01:00
AZLisme 5f332dcaed feat(libSceNet): support IPv6-only socket configuration 2026-10-26 19:16:52 +08:00
Bram910 98c0bc2d4e Merge origin/main into fix/net-send-nosignal 2026-10-26 12:11:05 +01:00
Bipin 8d878818b2 docs(opus): clarify failed encoder replacement outcomes in debt 2026-10-26 16:40:34 +05:30
Adrià Franch 8676daa0fc merge: sync archive directories with main 2026-10-26 12:02:23 +01:00
Adrià 4b1a9a3b2f Merge pull request #9525 from Queuse/codex/net-socket-state
feat(libSceNet): expose socket type and listen state
2026-10-26 12:01:27 +01:00
Claude b56801fc19 feat(libSceCesCs): add the code page 858 profile
sceCesRefersUcsProfileCp858 threw. It now returns a single-byte profile
accepted by sceCesSbcToUtf8, sceCesUtf8ToSbc and the MBCS context
conversions. Code page 858 is code page 850 with byte 0xD5 mapped to the
euro sign (U+20AC) instead of U+0131; that is the whole high half of
ICU's ibm-858_P100-1997.ucm. Bytes 0x00-0x7F stay unchanged, as in the
other single-byte profiles.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FzhWRMauD3ouc8kSxT2NnT
2026-10-26 10:59:59 +00:00
xXPBSXx 599e4d620f Merge remote-tracking branch 'upstream/main' into fix-agc-cb-resolve-packed-float 2026-10-26 11:55:26 +01:00
xXPBSXxandClaude Sonnet 5.5 118e11af13 docs(agc): record the unsupported and unmeasured multisample CB resolve of 11_11_10 float targets
The debt entry for 11_11_10 float color targets covers rendering but not the
resolve. A CB resolve of a multisampled 11_11_10 float source stays refused;
the new entry says that its averaging and rounding are not measured, that no
known source describes them, and that PPSA12361 reaches it (issue #11362).

AI-assisted: yes

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:55:15 +01:00
Adrià b82c33ef65 Merge pull request #9732 from simonbronk/fix/libkernel-vector-io-argument-order
fix(libkernel): check vector I/O lengths and descriptors before offsets
2026-10-26 11:54:15 +01:00
Adrià 6efe2a38ea Merge pull request #9390 from GitamarT045T3R/feat/posixforwebkit-wrap
feat(libScePosixForWebKit): forward __wrap_fchown, link, readlink, statvfs and symlink
2026-10-26 11:49:57 +01:00
fogydes 719701a68e fix(libkernel): follow the measured exec lookup and image checks 2026-10-26 16:19:46 +05:30
Adrià cbaacd2910 Merge pull request #9731 from hypermoist/feat/font-words
feat(libSceFont): build and search word dictionaries as the console does
2026-10-26 11:42:17 +01:00
Adrià 637575b493 Merge pull request #9733 from mugurc/fix/libscenet-stream-sends-macos
fix(libSceNet): keep MSG_DONTWAIT and aborted stream sends short on macOS hosts
2026-10-26 11:41:14 +01:00
Maz 1f27ca0c49 feat(libc): export the wide num_get facet vtable as data
Console libSceLibcInternal exports Y9C9GeKyZ3A as a 136-byte STT_OBJECT;
titles that resolve the wide num_get vtable as data need a zeroed 17-slot
object matching the narrow num_get layout on console.
2026-10-26 11:37:08 +01:00
Bipin acbab704c8 fix(core): retire the replaced opus encoder before the replacement
A create over a marked state now retires the encoder its instance id
names before any state write or allocation, so a replacement lost to a
host allocation failure or the libopus OPUS_ALLOC_FAIL branch cannot
strand an entry the state no longer names: Destroy and Terminate stay
consistent on every failure path. The debt notes record the
replacement rule as our choice with the console failed-replace
behaviour unmeasured and why the tests cannot force the failure
paths.
2026-10-26 16:06:06 +05:30
xXPBSXxandClaude Sonnet 5.5 89424904f8 docs(debt): shorten the sceCoredumpAttach title note below the entry length limit
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:33:19 +01:00
xXPBSXxandClaude Sonnet 5.5 233ad28ae6 docs(debt): note how a title calls the sceCoredump stop-info, attach and user-data functions
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:33:17 +01:00
PrivacyOnion eaf1629cc0 docs(debt): record silent stubs in libSceCompanionUtil debt 2026-10-26 11:30:26 +01:00
PrivacyOnion 350e1e6c53 docs(debt): record silent stubs in libScePlayGoDialog debt 2026-10-26 11:29:06 +01:00
PrivacyOnion 7e408625d2 docs(debt): record silent stubs in libSceSigninDialog debt 2026-10-26 11:28:31 +01:00
Adrià cbf76e7a6e Merge pull request #9408 from rursache/feat/macos-trace-imports
feat(relinker): trace function imports on macOS
2026-10-26 11:27:51 +01:00
orezraeyandClaude Opus 5.5 45082e0614 Merge main into docs/libkernel-module-process-info-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 07:25:38 -03:00
Adrià e796ed4e5e Merge pull request #9632 from EagleBearerYS/feat/libkernel-sys-libthr-names
feat(libkernel): add pthread_rwlockattr_settype_np and scePthreadMutexattrSetkind
2026-10-26 11:20:50 +01:00
Adrià c8a3b25882 Merge pull request #9464 from mazen320/feat/libc-time-get-w-vtable
feat(libc): export the wide time_get facet vtable as data
2026-10-26 11:19:39 +01:00
AZLisme 81013f41bf docs(libressl3): clarify confirmed ASN.1 error and ownership gaps 2026-10-26 18:15:08 +08:00
AlexandreandClaude Opus 5.5 aac9d6470c fix(libSceInvitationDialog): return NOT_SYSTEM_INITIALIZED and BUSY through libSceCommonDialog
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RoucYS7mQpV23WDUEwXLuU
2026-10-26 11:14:58 +01:00
joedeangelis533-bot 724a4fcde8 feat(agc): remap unsupported tessellation viewport depth ranges 2026-10-26 06:13:51 -04:00
PrivacyOnion 84abc7105a docs(debt): record silent stubs in libSceShare debt 2026-10-26 11:12:00 +01:00
AlexandreandClaude Opus 5.5 27ed844d7a feat(libSceInvitationDialog): finish the PS4 invitation dialog as canceled without a window
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RoucYS7mQpV23WDUEwXLuU
2026-10-26 11:11:59 +01:00
PrivacyOnion e02c97e8f5 docs(debt): record silent stubs in libSceFsInternalForVsh debt 2026-10-26 11:10:37 +01:00
Dean Galvin e0bd61fae2 Merge branch 'main' into pr/robust-loads 2026-10-26 23:10:10 +13:00
PrivacyOnion 02e1e24b9e docs(debt): record sceSaveDataDialogIsReadyToDisplay stub in libSceSaveDataDialog.native debt 2026-10-26 11:09:33 +01:00
Bram910andClaude Opus 5.5 cece0ab167 fix(shader): report a skipped word's error on every decode exit
A branch into a skipped word was only reported when the sweep ended at
s_endpgm or s_code_end; a sweep that ran to the end of the code threw
the generic code-boundary error instead. Only the decoder's error types
are skipped now, so other exceptions propagate, and the debt entry
records the exception per skipped word and what a misaligned sweep
through an unreachable span puts in the program.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 11:08:51 +01:00
PrivacyOnion e76b86438d docs(debt): record silent stubs in libSceComposite debt 2026-10-26 11:08:06 +01:00
PrivacyOnion 52a70ed4ed docs(debt): record silent stubs in libSceMoveTracker debt 2026-10-26 11:06:36 +01:00
Itamar Medyoni ce1ee687d8 feat(libScePosixForWebKit): forward __wrap_fchown, link, readlink, statvfs and symlink
WebKit links these calls through GNU ld --wrap, so each export takes the
signature of the function it is named after and calls the libkernel_sys
or libSceLibcInternal implementation; the module now links both.
2026-10-26 11:04:20 +01:00
Bipin 8529647f01 fix(core): complete the silk layout and retire replaced encoders
The SILK setup writes rate/50 at +0xE4 next to +0x58 and the state test
asserts it, and a create over a marked state replaces the entry its
instance id names so the surviving Destroy frees the codec and the
following Terminate runs clean. EncodeFloat reports the reservation
that cannot fit with a throw at the checks where the console module
dies after the marker and frame 0, with the 8 MiB bound recorded as our
host stack model, and the tests cover the negative frame and the bound
setup.
2026-10-26 15:33:03 +05:30
Bram910 433aa1dac9 Merge origin/main into fix/shader-skip-unreachable-words 2026-10-26 10:57:34 +01:00
PrivacyOnion d568f76052 docs(debt): record silent stubs in libmdbg_syscore debt 2026-10-26 10:56:58 +01:00
PrivacyOnion f82ac73480 docs(debt): record silent stubs in libSceRemoteplay debt 2026-10-26 10:55:20 +01:00
Adrià FranchandClaude Sonnet 5.5 654eadd7f5 merge: sync archive directories with main
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 10:50:37 +01:00
SimoneandClaude Opus 5.5 88e86a7de1 fix(libkernel): check vector I/O lengths and descriptors before offsets
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 10:45:00 +01:00
davidamsellemandClaude Opus 5.5 6e5c1f041d docs: name the formats of the gfx1100 type-0 and type-1 measurement
GFX11 renumbers the image formats past 29, so the raw codes 10, 37 and 1
read as other formats on the console's GFX10 numbering (37 is
11_11_10_UNORM there, 2_10_10_10_SNORM on gfx1100). Name them, and say
why the TYPE 9 depth compare control only answers at 32_FLOAT: gfx1100
compares 16_UNORM and 32_FLOAT only and answers zero for the others.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-26 10:43:45 +01:00
davidamsellemandClaude Opus 5 dc81252d64 docs: measure type-0 and type-1 texture descriptors on gfx1100
The entry recorded TYPE 1 only from a gfx1010 measurement with format 22 and left other formats and
depth-compare reads open. Measured on a gfx1100 with the hardware oracle: image_sample_lz,
image_sample_b, image_load, image_sample_c_lz and image_get_resinfo return zero and no fault for
TYPE 0 and TYPE 1 over formats 22, 10, 37 and 1, with a nonzero base over readable memory and with a
zero base. A TYPE 9 control in the same kernel returns the stored texel, the raw dword, the declared
64 and 32, and 1.0 from image_sample_c_lz with an ALWAYS depth compare and format 22.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-26 10:43:45 +01:00
Bipin e1a28b400b fix(core): adopt the measured opus encoder module protocol
Encode and EncodeFloat run the decrypted-module measurements: the null
state +0x01, null samples +0x02 before the state marker, a markerless
state +0x16/+0x15, null data +0x04 before the frame check, maxDataBytes
0 +0x05 and frame sizes outside the accepted durations +0x03, while a
negative maxDataBytes reaches the backend as it reaches AJM on the
console. Create zero-fills the state and writes the measured word and
bitrate tables, Destroy clears the 0x17B2 marker leaving the other
bytes, the encoder registry keys on the instance id at +0x00, and
EncodeFloat aborts for a stack reservation that cannot fit, matching
the console process death. The tests byte-check the measured layout
with the per-rate bitrates and the new check orders behind both
libraries' Api.hpp, and the debt notes carry the module runs with the
remaining AJM gaps.
2026-10-26 15:12:27 +05:30
fogydes 23dc69a2e3 fix(libkernel): return EBADF for an exec null path as measured on the console 2026-10-26 15:06:01 +05:30