Commit Graph
2764 Commits
Author SHA1 Message Date
Mouad-Scriptz-0andClaude Fable 5.1 ccaeeed416 fix(recompiler): point selected guest loads at locations nothing writes
A load selected instead of branched still accesses memory, so its fallback
element must be one no write can race with: scratch keeps element 0, LDS in
workgroup or function memory reads a sentinel dword appended after the
program's LDS and lock, and storage buffers read element 0xfffffffe, which
robustBufferAccess2 turns into a zero load without a memory access. The
device enables robustBufferAccess2 when it has it and the target carries the
flag; without it, and for LDS in device memory, buffer loads keep their
selections. The aligned high word of a buffer read re-reads the low word's
element instead of word 0. agc_guarded_memory_loads traces the emitted loads
in both device modes.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 12:18:50 +13:00
Mouad-Scriptz-0andClaude Fable 5.1 6dbbf4d7d9 perf(recompiler): select guest memory loads instead of branching around them
LDS, scratch and direct storage-buffer loads load element 0 when the lane is
inactive or the address is out of bounds and select 0 as the result, instead of
opening a selection per guard. Stores, atomics, formatted and physical-address
accesses keep their branches. A branch guard cost four blocks per lane half, and
the host compiler's time grows with the block count: PPSA11142's merged PSP
vertex program emitted 16,983 blocks and 1,710 conditional branches, 5,907 and
868 with the selects.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-17 12:18:28 +13:00
Adrià 4272979b31 Merge pull request #5953 from jagrat04/feat/libSceSsl-certificate-readers
feat(libSceSsl): implement certificate serial and name entry readers
2026-10-17 01:16:05 +02:00
Adrià 8c90c879e0 Merge pull request #5990 from Get-fix/ps4/windows-libc-for-libkernel
fix(relinker): search libc.prx for libkernel-only Windows executables
2026-10-17 01:16:00 +02:00
Adrià af0fff7627 Merge pull request #5974 from mohammad-alosta/fix/ngs2-geom-apply
fix(libSceNgs2): implement a minimal sceNgs2GeomApply pass-through
2026-10-17 00:52:37 +02:00
Adrià 11d1557bd7 Merge pull request #5084 from 0xRickx/fix/libscesystemservice-host-time-zone
fix(libSceSystemService): report the host time zone and summer time
2026-10-17 00:52:32 +02:00
Adrià 6059b85439 Merge pull request #5968 from MarcZX100/codex/audio3d-supported-attrs-5954
feat(libSceAudio3d): report supported port attributes
2026-10-17 00:15:45 +02:00
Adrià 5f06c534a3 Merge pull request #5939 from Amoenus/codex/msaa-dcc-main5a6
feat(agc): import uniform multisampled DCC fast clears
2026-10-17 00:15:40 +02:00
Adrià eac5d8db12 Merge pull request #5956 from alexpournaras/feat/voice-get-port-attr
feat(libSceVoice): implement sceVoiceGetPortAttr
2026-10-16 23:29:52 +02:00
Adrià 6e6677601f Merge pull request #5960 from KernelPanicNT/fix/export-phasmophobia-psvr2-imports
fix(exports): export the PS VR2 calls Phasmophobia's psvr2.prx imports
2026-10-16 23:25:34 +02:00
Adrià fc19485109 Merge pull request #6042 from wachi35676/docs/progress-history-readme
docs(progress): the README links the history page, not its chart
2026-10-16 23:17:41 +02:00
Adrià 7d728b1098 Merge pull request #6041 from wachi35676/docs/build-wasm-flag
docs(build): list the ANYPS5_BUILD_WASM flag
2026-10-16 23:17:04 +02:00
Adrià 4986aca62e Merge pull request #6002 from CrimsonMac/docs/bitdefender-raise-exception-deadlock
docs(build): note Bitdefender Advanced Threat Defense hanging guest_raise_exception
2026-10-16 22:48:06 +02:00
Adrià 2fab88d102 Merge pull request #5945 from ErenYeager1836/feat/libkernel-sysctl-pagesize
feat(libkernel): report hw.pagesize through sysctl and sysctlnametomib
2026-10-16 22:31:11 +02:00
Adrià ac0427f612 Merge pull request #5928 from Kurenaiiiii/feat/libSceNet-show
feat(libSceNet): return success from ShowIfconfig and ShowNetstat
2026-10-16 22:30:58 +02:00
Adrià 04a8c2f6bf Merge pull request #5904 from pushkarreddyy/feat/libSceWebBrowserDialog-open-predetermined
feat(libSceWebBrowserDialog): implement sceWebBrowserDialogOpenForPredeterminedContent
2026-10-16 22:30:53 +02:00
Adrià 590bb1733a Merge pull request #5929 from Kurenaiiiii/feat/libSceNpWebApi2-abort
feat(libSceNpWebApi2): accept PushEventAbortHandle for known contexts
2026-10-16 22:23:48 +02:00
Adrià f5110b0666 Merge pull request #5796 from ps54all/feat/libscepsml-mfsr-setup
feat(psml): implement the MFSR shared-resource and 800 context setup
2026-10-16 22:23:42 +02:00
Adrià a88daac923 Merge pull request #5919 from Kurenaiiiii/feat/libSceGameUpdate
fix(libSceGameUpdate): return INVALID_ARGUMENT for null entitlement label
2026-10-16 22:23:37 +02:00
Adrià Franch a315ce8ce4 docs(debt): note unmeasured libSceSsl certificate reader behavior 2026-10-16 22:04:44 +02:00
jagrat Singh a637ffc727 fix(libSceSsl): align certificate and name entry readers with PS5 context ABI 2026-10-16 22:04:44 +02:00
jagrat Singh f91f2effb9 feat(libSceSsl): implement certificate serial and name entry readers
Implement sceSslGetSerialNumber, sceSslGetSubjectName, sceSslGetIssuerName, sceSslGetNameEntryCount, sceSslGetNameEntryInfo, and sceSslFreeSslCertName. Signatures follow VitaSDK. Mbed TLS extracts the certificate's serial number and X.509 subject and issuer distinguished names, extracting OID attribute short names (or numeric strings) and value strings.
2026-10-16 22:04:44 +02:00
RickandClaude Opus 5.5 ff1de9150d fix(libSceSystemService): report the host time zone and summer time
sceSystemServiceParamGetInt answered 0 for the time zone (parameter 4)
and summer time (parameter 5), so the console looked set to UTC while
libSceRtc and libc convert local time with the host's zone. Titles add
the time zone in minutes and 60 more minutes when summer time is 1 to
UTC to get the local time (Apollo, GoldHEN's frame logger). Both now
follow the host's local time zone: summer time is whether it is in
effect, and the time zone is the current offset east of UTC less the
summer time shift while it is.

On Windows that shift is the C runtime's own summer time bias
(_get_dstbias), the one localtime_s applied, not a fixed 60 minutes.
The UCRT reads the system zone when libc.prx loads and keeps that
zone's bias after TZ is set later, so on a host whose system zone has
no summer time (the CI runner's UTC) a TZ of CET-1CEST shifted by 0 and
the time zone came out as 0. The cause and the change are screamm's,
from the review.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-16 21:59:57 +02:00
Adrià FranchandClaude 0129876e52 docs(debt): name the KytyPS5 source and limits of sceNgs2GeomApply
Co-Authored-By: Claude <[email protected]>
2026-10-16 21:59:08 +02:00
alosta b630e7897b fix(libSceNgs2): implement a minimal sceNgs2GeomApply pass-through
Implement sceNgs2GeomApply, which was previously an unimplemented
throwing stub and was blocking Dead Cells (PPSA15552).

The implementation validates null handles/output addresses and writes a
minimal Ngs2GeomAttribute: pitch_ratio 1.0, source position, source
volume/level maxima, and diagonal channel levels for the source's channel
count. It does not implement source attenuation, distance rolloff, panning
or Doppler.

The export lives in Geom.cpp's internal Ngs2GeomApply and is exposed through
the existing default-visibility wrapper in Voice.cpp. Unimplemented.cpp no
longer defines the stub. A passing test was added to Ngs2Geom.cpp.

Unblocks: PPSA15552 #<Game bring-up discussion number>
Depends on: none
AI assistance: yes
2026-10-16 21:59:08 +02:00
Adrià ea4cc112a0 Merge pull request #5916 from JosepBove/fix/ngs2-rack-voice-index-error
fix(ngs2): return the voice-index error from sceNgs2RackGetVoiceHandle
2026-10-16 21:54:28 +02:00
Adrià 42add156aa Merge pull request #5911 from BigDipsey/feat/ssl-connection-options
feat(libSceSsl): record connection verify options, minimum version and ALPN
2026-10-16 21:54:23 +02:00
Adrià 93eca8f7be Merge pull request #5902 from pushkarreddyy/feat/libkernel-setrlimit-nofile
feat(libkernel): allow lowering rlim_cur for RLIMIT_NOFILE in setrlimit
2026-10-16 21:54:11 +02:00
Adrià bafd3227a6 Merge pull request #5901 from KernelPanicNT/feat/libkernel-coredump-thread-context-info
feat(libkernel): answer sceCoredumpGetThreadContextInfo outside the coredump handler
2026-10-16 21:54:05 +02:00
Adrià 406fd9ea9b Merge pull request #5898 from mohammad-alosta/fix/ngs2-custom-filter-type-0
fix(libSceNgs2): support custom filter type 0 in Ngs2ApplyCustomParam
2026-10-16 21:43:56 +02:00
Adrià bc9833e39b Merge pull request #5887 from leorossi2005/feat/libkernel-umtx-microsecond-timeout
feat(libkernel): support microsecond timeout in size-0 _umtx_op
2026-10-16 21:43:51 +02:00
Adrià FranchandClaude aa00274346 docs(debt): record inferred sceAudio3dPortGetAttributesSupported list
Co-Authored-By: Claude <[email protected]>
2026-10-16 21:41:16 +02:00
Adrià 542312b5de Merge pull request #5823 from xxLnolan/feat/convert-keycode-nonus-backslash
fix(keycode): map HID non-US backslash key
2026-10-16 21:23:41 +02:00
Adrià d96e0e554c Merge pull request #5772 from DavidSamir/fix/libc-empty-guest-environment
fix(libc): start the guest environment empty instead of copying the host's
2026-10-16 21:23:35 +02:00
Adrià 9158f031ca Merge pull request #5835 from AlexOfTheForest/feat/app0-zarchive
feat: read title files from a read-only app0.zar (ZArchive) layer
2026-10-16 21:23:25 +02:00
Adrià 6a6b171a26 Merge pull request #5699 from YossiYad/fix/loadexec-host-stderr
fix(libSceSystemService): give LoadExec's next executable the host standard error
2026-10-16 21:23:19 +02:00
Romans Pokrovskis a0c51d5778 feat(agc): import uniform multisampled DCC fast clears 2026-10-16 21:13:39 +02:00
Adrià db7d9de5e4 Merge pull request #5405 from Pipodi/feat/spanned-wave64-compute
feat(recompiler): run single-wave wave64 compute programs at one lane per invocation on 32-lane hosts
2026-10-16 21:05:55 +02:00
Adrià 24528f4e5a Merge pull request #5907 from simonbronk/feat/mixed-sample-truncate
feat(agc): rasterize a multisampled draw into one-sample targets at sample 0's locations
2026-10-16 21:05:45 +02:00
Adrià daf8913128 Merge pull request #5905 from hugodearaujo/fix/agc-prewarm-mapped-dma-buf
fix(agc): settle dma-buf imports on Linux on the settle queue
2026-10-16 21:05:30 +02:00
Adrià Franch 32b714c80d docs(debt): end the libSceVoice attribute 1001 line with a period 2026-10-16 21:01:35 +02:00
Alexandros Pournaras 8fe5916fd0 feat(libSceVoice): implement sceVoiceGetPortAttr 2026-10-16 21:01:32 +02:00
Adrià FranchandClaude 825b7934e7 docs(debt): cite FreeBSD's hw.pagesize OID, note the unmeasured PS5 value
Co-Authored-By: Claude <[email protected]>
2026-10-16 20:55:50 +02:00
Nithishvelan M 76e05544a9 feat(libkernel): report hw.pagesize through sysctl and sysctlnametomib 2026-10-16 20:55:46 +02:00
Kurenaiiiii 0e329fc649 docs: move loader import debt to its library files 2026-10-16 20:51:06 +02:00
Kurenaiiiii f00b2ef833 feat(libSceNet): return success from ShowIfconfig and ShowNetstat 2026-10-16 20:51:06 +02:00
Adrià FranchandClaude 7f03455ba0 docs(debt): finish the OpenForPredeterminedContent line, note the unread allow-list argument
Co-Authored-By: Claude <[email protected]>
2026-10-16 20:47:40 +02:00
pushkarreddyy f5882503b6 feat(libSceWebBrowserDialog): implement sceWebBrowserDialogOpenForPredeterminedContent 2026-10-16 20:47:36 +02:00
ps54allandClaude Opus 5.5 46fdfec852 fix(psml): check the shared resources and add the context under one lock
A concurrent scePsmlMfsrReleaseSharedResources could pass its "still used
by a context" check between the handle lookup and the context insertion.
The technical debt entry now says how KytyPS5's layout differs from the
calls in PPSA08330 and PPSA03016.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 20:41:44 +02:00
ps54allandClaude Opus 5.5 7ab3d441c1 feat(psml): implement the MFSR shared-resource and 800 context setup
scePsmlMfsrInit, the shared-resource calls and the 800M3_2 context calls
threw or answered "not initialized", so a title that sets PSSR up at
start-up stopped there even when it never uses PSSR on hardware without
it (PPSA08330 calls the setup unconditionally and only dispatches when
sceKernelIsTrinityMode is set, which AnyPS5 reports as 0).

The layouts come from the calls in PPSA08330 and PPSA03016: requirements
are {block bytes, alignment, block count}, handles are 8-byte values
written through the first argument, and a context parameter carries its
block list at 8/16 and the shared-resources handle at 0x38. Init sets
the initialized state, the requirements ask for four 2 MiB blocks (what
PPSA08330 allocates regardless of the returned count), and create and
release keep bookkeeping objects. Invalid arguments throw because their
error codes are unknown.

The 1100 calls, scePsmlMfsrCreateContext1300 and the 900/1000/1300
dispatch packets keep returning 0x8A810001 before Init and throw after
it; packet size, mip bias and capture still throw.

The guest test links libc and gets Windows unwinding so it can check the
refused calls.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-16 20:41:44 +02:00