Commit Graph
14017 Commits
Author SHA1 Message Date
Dean 30115250d9 Merge pull request #7214 from omar-akermi/codex/fix-http-uri-escaping
fix(libSceHttp): make URI escaping independent of host locale
2026-10-18 10:06:13 +13:00
Maz 01f3938fe1 fix(libkernel): report Windows directory junctions from lstat and readlink 2026-10-18 01:05:40 +04:00
Dean ab506ba21f Merge pull request #7216 from Dextroid17/test/raise-exception-leaving-pacing
test(libkernel): stagger the leaving-thread raise by the clock, not by yields
2026-10-18 10:05:39 +13:00
Dean 60d4d3ebd4 Merge pull request #7061 from Azaluz/codex/import-hint-lifetime
fix(agc): keep nonbinding import probes from pinning buffers
2026-10-18 10:05:04 +13:00
Dean c3c3dcf157 Merge pull request #7213 from thuanquang/feat/color-565-target
feat(agc): render 5_6_5 UNORM color targets
2026-10-18 10:04:00 +13:00
Dean a0e688e55f Merge pull request #7209 from mohammad-alosta/test/libSceRudp-context-lifecycle
test(libSceRudp): add GuestRudpContextLifecycle behavioral tests
2026-10-18 10:02:54 +13:00
Dean f3f622f65f Merge pull request #7196 from MarcZX100/codex/stat-long-path-7195
fix(libkernel): stat files under long Windows paths
2026-10-18 10:01:49 +13:00
Dean d8f36fd749 Merge pull request #7206 from MarcZX100/codex/kevent-nanosecond-period
fix(libkernel): accept fractional nanosecond kevent periods
2026-10-18 10:01:02 +13:00
Dean eadd0d61a9 Merge pull request #7187 from Amoenus/codex/fix-fopen-long-host-path-main84
fix(libc): open long Windows host paths
2026-10-18 10:00:28 +13:00
Dean b85592f67e Merge pull request #7200 from mrfelek/feat/avplayer-vp9-opus
feat(libSceAvPlayer): accept VP9 video and Opus audio streams
2026-10-18 09:59:24 +13:00
Dean e761af921e Merge pull request #7205 from wachi35676/fix/ci-context-jobs-build-dispatched-pr
ci(build): build the pull requests in the register context and write watch jobs
2026-10-18 09:58:51 +13:00
oskarlgsandClaude Opus 5.5 206aaa56cb fix(relinker): decode near branches with an operand-size prefix as AMD does
66 E8, 66 E9 and 66 0F 80-8F without REX.W take a 16-bit displacement on
AMD processors, the console included. Every near relative branch with that
prefix truncates its target to 16 bits, so the decoder reports no branch
target for it and stubs refuse to move it.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_016TFMtUC4L4wMS4eeEqaNSR
2026-10-17 20:58:29 +00:00
Dean 3c9a43df46 Merge pull request #7134 from orishamir/fix/queue0-late-completion-wake
fix(agc): wake an idle queue 0 for completions the draw pipeline adds
2026-10-18 09:58:19 +13:00
Dean fb10ea8a41 Merge pull request #7191 from milescoviello/fix/msaa-target-test-skip
test(agc): skip the multisampled target test without storage image multisampling
2026-10-18 09:57:16 +13:00
Dean 87edc304f1 Merge pull request #7204 from hossiendehghan989/fix/title-mouse-wheel-pad-leak
fix(videoout): keep guest mouse wheel off pad bindings
2026-10-18 09:56:43 +13:00
Dean 88395770b8 Merge pull request #6875 from pushkarreddyy/fix/agc-driver-unclamped-normalized-color
fix(libSceAgcDriver): accept unclamped normalized color target formats
2026-10-18 09:55:51 +13:00
Dean 07475de571 Merge pull request #7185 from Destroyers212x/docs/rosetta-m1-macos-26
docs(relinker): record Rosetta instruction support on an M1 with macOS 26.6.2
2026-10-18 09:55:02 +13:00
Dean 3e834468cd Merge pull request #7162 from MrMha/fix/trace-input-diagnostics-20261017
fix: report trace digest input failures without a traceback
2026-10-18 09:54:32 +13:00
Lindamea1andClaude Opus 5.5 111d81786b fix(libkernel): accept an uninitialized attribute in scePthreadCondInit
scePthreadCondInit, and pthread_cond_init through it, threw when attr
pointed to a null attribute: a zeroed one that was never initialized or
one that scePthreadCondattrDestroy has set to null. FreeBSD 11.4 libthr
(thr_cond.c, cond_init) takes a null attribute as the default one and
creates a CLOCK_REALTIME condition variable. A PS5 (firmware 13.60)
takes a zeroed attribute as the default one in scePthreadMutexInit
(#4158). Take it as the default here too, as scePthreadMutexInit and
scePthreadCreate already do.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 21:54:15 +01:00
Gjon Gojcevic 571fecaddc feat(agc): sample texture format 43 through a lossless B10G11R11 copy
Texture format 43 holds unsigned floats of 10 bits (R, bit 0), 11 bits
(G, bit 10) and 11 bits (B, bit 21). VK_FORMAT_B10G11R11_UFLOAT_PACK32
holds R11 at bit 0, G11 at bit 11 and B10 at bit 22, so storing the
guest R field in the Vulkan B field and the guest B field in the Vulkan R
field moves every texel without changing a bit of any component. A
sampled texture of format 43 is now uploaded that way (a repack pass over
the detiled words, TextureRepack.comp) and viewed with R and B swapped
back (TextureComponentChannel), so the shader samples it natively: point
and bilinear filtering, every mip level and LOD, and cube faces
work as for any other float texture. A texture whose results a storage
image still holds is copied from that image (vkCmdCopyImageToBuffer, the
repack pass, vkCmdCopyBufferToImage) and copied again whenever the
image changed, like the depth and block copies. The recompiler treats a
sampled format-43 image as a float image without conversion; storage
reads and writes keep the packed R32_UINT path, and a 3D texture whose
results are still in a storage image is flushed and uploaded instead.

PPSA01317 samples a mipmapped format-43 texture at a LOD other than 0
and a format-43 cube map during boot.

AI-assisted: yes
2026-10-17 16:53:37 -04:00
Dean 90fcd20fa9 Merge pull request #7180 from Ondra97/codex/fix-pipeline-queue-admission
fix(agc): count pipeline jobs after queue admission
2026-10-18 09:53:36 +13:00
Dean bd56fa6fd1 Merge pull request #7179 from MarcZX100/codex/import-audit-guest-aliases-7174
fix(tools): match guest module aliases in import audit
2026-10-18 09:52:51 +13:00
Dean dacd2e991c Merge pull request #7151 from Bonjourcestmatt/fix/socket-type-eprototype
fix(libkernel): return EPROTOTYPE for a socket type inet does not have
2026-10-18 09:51:50 +13:00
Dean eff25cec56 Merge pull request #7177 from MarcZX100/codex/pr-overlap-batch-ancestry
perf(tools): speed up pull request overlap checks
2026-10-18 09:51:01 +13:00
Dean b2cbba6cce Merge pull request #7160 from milescoviello/fix/clip-cull-test-user-data
test(agc): keep the pixel user data alive through its recompile
2026-10-18 09:50:05 +13:00
Dean 5cc4c220f8 Merge pull request #7165 from MrMha/fix/debt-root-relative-links-20261017
fix: preserve root-relative links when moving debt entries
2026-10-18 09:49:32 +13:00
Dean 3f8d3bad0a Merge pull request #7163 from MrMha/fix/syntax-ninja-response-files-20261017
fix: expand Ninja response files before syntax checks
2026-10-18 09:48:54 +13:00
Dean 802db07168 Merge pull request #7166 from MrMha/fix/unwrap-preserve-input-20261017
fix: preserve SELF inputs when an output aliases them
2026-10-18 09:47:48 +13:00
Dean 430f99a999 Merge pull request #6213 from milescoviello/fix/libc-getifaddrs-guest-heap
fix(libc): allocate the getifaddrs list on the application heap
2026-10-18 09:47:10 +13:00
Dean 0104aba62a Merge pull request #7144 from voidlakhan/fix/savedata-getmountinfo-getparam-errors
fix(savedata): return parameter error on null arguments in getMountInfo and getParam
2026-10-18 09:46:38 +13:00
Dean d167c0c362 Merge pull request #7141 from Bonjourcestmatt/fix/clock-gettime-efault
fix(libkernel): return EFAULT from clock_gettime for a null result pointer
2026-10-18 09:45:59 +13:00
JJenkx a3ed32e682 fix(agc): retain import settle resources per device 2026-10-17 16:45:42 -04:00
Dean 084bd39a08 Merge pull request #7133 from pushkarreddyy/fix/libkernel-write-throttling-null-efault
fix(libkernel): return EFAULT from sceKernelWriteThrottlingStatus for a null status
2026-10-18 09:45:24 +13:00
Dean 64df590f4c Merge pull request #7076 from AlexOfTheForest/fix/socket-write-space
fix(libkernel): report free send space for socket write events on Linux
2026-10-18 09:44:37 +13:00
Dean b95768d1b0 Merge pull request #6540 from JJenkx/fix/kernel-cpuset-thread-id
feat(libkernel): support cpuset affinity by guest thread ID
2026-10-18 09:43:55 +13:00
milescovielloandClaude Opus 5.5 5fcb7e8a8f docs(libkernel): note that kern.proc.vmmap locks the arena per range
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:32 +00:00
milescovielloandClaude Opus 5.5 f69e6c0934 fix(libSceSystemService): declare the PsmKit local process exports
Forever Launcher (PPSA99030) imports sceSystemServiceAddLocalProcessForPsmKit
and sceSystemServiceKillLocalProcessForPsmKit and stops at load without
them. AnyPS5 runs one process and starts no other, so both throw without
reading their arguments. The parameters follow the title's own firmware
probes (path, argv and a 0x90-byte parameter block; the kill takes the
returned handle), and the unknown results are recorded as technical debt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:32 +00:00
milescovielloandClaude Opus 5.5 b4e129ff80 fix(libc): give the scripting heap hooks blocks from libc's own heap
scriptingGetMem and scriptingFreeMem went through the title's registered
allocator. A title that ships its own libc.prx has already initialized that
allocator, and the application heap's lazy initialization then ran its
initializer a second time: Metal Gear Solid Master Collection (PPSA18194)
started a second Unity heap and aborted when it freed a block of the first.
The hooks now allocate and free through libc's guest heap, so they never
initialize the registered allocator; sizes that overflow return null.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:32 +00:00
milescovielloandClaude Opus 5.5 dde480e6c8 feat(libc): answer malloc_stats_fast for the default heap
Ship of Harkinian (PPSA99320) logs its heap use with malloc_stats_fast
every 10 s and stopped on the first call, since only an application
allocator could answer it. The default heap now keeps its system and
in-use byte counts with their peaks and fills the same managed-size
block as sceLibcMspaceMallocStatsFast, whose layout moves to a shared
header.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:32 +00:00
milescovielloandClaude Opus 5.5 d7c83db2a5 feat(libkernel): read and set the GS base through sysarch
sysarch's AMD64_GET_FSBASE, AMD64_GET_GSBASE and AMD64_SET_GSBASE now
follow FreeBSD 11's amd64 sysarch on Linux x86-64 through arch_prctl: the
GS base is the calling thread's, a base at or above VM_MAXUSER_ADDRESS
returns EINVAL and a null argument EFAULT. AMD64_SET_FSBASE, whose base
guest and host code share for their TLS, other operations and other hosts
still throw. Wine sets its TEB this way.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:32 +00:00
milescovielloandClaude Opus 5.5 20764888c3 feat(libkernel): report the guest address-space map through kern.proc.vmmap
sysctl {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, pid} for the calling process
returns packed FreeBSD 11 kinfo_vmentry records, one per used range of the
guest arena, with the protection sceKernelVirtualQuery reports. Other pids
return ESRCH, a write EPERM, a short buffer ENOMEM. GuestArena gains a
query for the used range at or after an address.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:31 +00:00
milescovielloandClaude Opus 5.5 162f4af40b fix(libkernel): export sysarch so modules that import it load
The Wine port (PPSA99995) ships an ntdll module that imports sysarch
(b7uXQmnfB2s). libkernel did not export it, so loading stopped with
"undefined symbol: b7uXQmnfB2s" before the title ran.

Export sysarch as a stub that reports that it is not implemented: the
title loads and runs its launcher without calling it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 20:43:31 +00:00
Dean 02c260bca1 Merge pull request #7168 from MrMha/fix/unwrap-load-metadata-20261017
fix: refuse invalid load segment metadata when unwrapping SELF
2026-10-18 09:43:24 +13:00
Dean 0268c1b3fb Merge pull request #7097 from inmert/ci/relinker-asan-tls
ci: run the relinker TLS coverage tests under AddressSanitizer
2026-10-18 09:42:41 +13:00
Dean 82cad6b5fc Merge pull request #6237 from milescoviello/fix/loadexec-exit-shutdown
fix(libSceSystemService): park guest threads during LoadExec's shutdown as exit does
2026-10-18 09:41:59 +13:00
Dean 0f0d4004a4 Merge pull request #6517 from Wild-Badger/fix/libc-wide-collate-layout
fix(libc): count wide collate string elements
2026-10-18 09:41:21 +13:00
Dean e0045fb6ef Merge pull request #6518 from qpavyros/codex/mutexattr-invalid-attributes
fix(libkernel): return EINVAL for invalid mutex priority attributes
2026-10-18 09:41:01 +13:00
Dean b5e570d06a Merge pull request #7092 from milescoviello/fix/kevent-note-lowat
fix(libkernel): take NOTE_LOWAT on socket read and write events
2026-10-18 09:40:43 +13:00
Dean f34528d25b Merge pull request #7164 from MrMha/fix/configure-seed-variable-names-20261017
fix: quote configure seed cache variable names
2026-10-18 09:40:17 +13:00
Dean ee14990418 Merge pull request #7073 from AlexOfTheForest/fix/getlk-unlock
fix(libkernel): answer F_GETLK with F_UNLCK on Linux and macOS
2026-10-18 09:39:47 +13:00