Commit Graph
7981 Commits
Author SHA1 Message Date
Federico Marras 69b21adf32 fix(libSceNgs2.native): parse ATRAC9 smpl loops as the module does 2026-10-21 20:31:46 +02:00
Federico Marras 0f4a7216ef fix(libSceNgs2.native): return 0x804A8432 for waveform formats the module does not parse 2026-10-21 20:27:18 +02:00
Rookie 123ba70839 fix(relinker): load Linux executables at 0x400000 by default 2026-10-21 19:25:33 +01:00
Adrià cf2c667060 Merge pull request #9203 from mazen320/docs/entry-register-contract
docs(architecture): record main-module entry register contracts
2026-10-21 20:22:04 +02:00
TamaleroandClaude Opus 5.5 9998385047 fix(recompiler): match image-table T# halves offset before and after readfirstlane
A T# loaded as two s_load_dwordx4 halves from a pointer table, where the
second half's offset is formed per lane (v_lshl_add_u32 key, 5, 16) before
v_readfirstlane and the first half's after it (readfirstlane(key) << 5),
was refused: the second half's +16 sat inside ReadFirstLane(Select(exec,
..., old), exec), so TryMakeTableColumn saw a different base and a zero
addend. Compare such offsets in a first-lane normal form (lane value, mask,
shift, addend), peeling selects the mask implies as the SRT walker already
does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 20:21:35 +02:00
Federico Marras 738308a2be fix(libSceNgs2.native): return the module's errors for render buffer counts, types and null buffers 2026-10-21 20:19:46 +02:00
David 46e2b86d0b Merge remote-tracking branch 'origin/main' into feat/agc-barycentric-tessellation-strips
# Conflicts:
#	docs/dev/debt/libSceAgcDriver.md
2026-10-21 22:17:56 +04:00
David 488bc0226e Merge remote-tracking branch 'origin/main' into feat/libkernel-jit-shared-memory-macos
# Conflicts:
#	docs/dev/debt/libkernel.md
2026-10-21 22:17:40 +04:00
Adrià FranchandClaude a3d739f170 docs(agc): record the all-past OOB_SELECT 1 throw and the gfx1010 measurement
Co-Authored-By: Claude <[email protected]>
2026-10-21 20:16:32 +02:00
Federico Marras 58afce1ad1 fix(agc): follow RDNA 2's range checks for zero-stride vertex fetches 2026-10-21 20:16:30 +02:00
aarushkha 8cb0d985d7 Merge upstream main into feat/libkernel-equeue-regular-file-events-v2
Merge upstream main into feat/libkernel-equeue-regular-file-events-v2
2026-10-21 23:46:24 +05:30
Federico Marras 62799443d5 fix(libSceNgs2.native): return the module's buffer and allocator errors from sceNgs2SystemCreate and sceNgs2SystemCreateWithAllocator 2026-10-21 20:15:07 +02:00
JAB-devandClaude Sonnet 5.5 8ed185a51c Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/agc-4-4-4-4-partial-writes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 20:13:17 +02:00
Federico Marras 424a12fd0e fix(libSceNgs2.native): return the module's codes from sceNgs2SystemSetSampleRate and sceNgs2SystemSetGrainSamples 2026-10-21 20:12:28 +02:00
Adrià 6b6c701636 Merge pull request #8941 from xXPBSXx/docs/debt-snwprintf-s-handler
docs(debt): say that snwprintf_s does not invoke the exported constraint handler
2026-10-21 20:12:23 +02:00
Savvanis SpyrosandClaude Opus 5.5 b6f96055bf feat(libSceGameLiveStreaming): implement sceGameLiveStreamingEnableLiveStreaming
The signature, int sceGameLiveStreamingEnableLiveStreaming(const bool
isEnableLiveStreaming), follows Orbital and fpPS4. No broadcast is ever
on air, so both values succeed and change nothing. A call outside
sceGameLiveStreamingInitialize and sceGameLiveStreamingTerminate throws,
as the console's error for it is unknown.

Monopoly Plus (CUSA03312) stopped at this call after its language screen.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 21:11:52 +03:00
Adrià d27d05ec14 Merge pull request #7883 from thuanquang/fix/strip-last-provoking-gs
fix(agc): draw triangle strips through a geometry program with the last provoking vertex
2026-10-21 20:10:30 +02:00
Adrià 3897c5c6bd Merge pull request #7849 from MarcZX10/codex/fix-host-import-partial-unmap-lifetime
fix(agc): retire host imports before range cuts
2026-10-21 20:09:59 +02:00
David bbd9ee6d2c feat(libkernel_sys): implement SIGEV_NONE POSIX timers 2026-10-21 19:09:14 +01:00
Adrià 8e72738df6 Merge pull request #8437 from xXPBSXx/fix/mprotect-ignore-undefined-bits
fix(libkernel): drop undefined protection bits in mprotect
2026-10-21 20:08:57 +02:00
Superhe11 595dcacdf2 docs(libc): avoid competing debt insertions at the section start 2026-10-21 21:08:18 +03:00
wail-arch 03fae5dfcb fix(relinker): bind SDK guest module imports on Linux
A bundled module that names a console file dependency (.sprx, .suprx,
.debug_prx) imports by symbol name, as homebrew built with the
ps5-payload-dev SDK does. Bind those imports to the NID of the name,
except names another bundled module or the executable exports, and name
the module's host dependencies with the .prx library of the same stem.
2026-10-21 18:06:47 +00:00
Federico Marras 310cb0c4b5 fix(libSceNgs2.native): validate the system option with the module's error codes 2026-10-21 20:06:25 +02:00
SueryandClaude Opus 5.5 7ae3fc8c22 feat(libSceVideoOut): open the display window fullscreen with ANYPS5_FULLSCREEN
A launcher that shows games fullscreen can set ANYPS5_FULLSCREEN instead of
pressing F11 after the window appears. The window opens with
SDL_WINDOW_FULLSCREEN_DESKTOP, the same mode F11 switches to.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017Dqgm9nUKygsXzr6poJsHJ
2026-10-21 14:03:29 -04:00
Adrià FranchandClaude 32f8205390 docs(libkernel): say the receive-after-SHUT_RD answer is Windows only
Co-Authored-By: Claude <[email protected]>
2026-10-21 20:01:26 +02:00
xXPBSXxandClaude Sonnet 5.5 ba8b881fa6 fix(libkernel): answer a receive after SHUT_RD or with no buffer without the host
soreceive_generic returns 0 for a socket whose receive side is shut and for a
zero-length receive on a connected stream socket (ENOTCONN when it is not
connected), without waiting. Winsock fails the first with WSAESHUTDOWN, which
reached the guest as EPIPE, and blocks the second until data arrives. recv and
recvfrom now answer both themselves.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 20:01:18 +02:00
Ondra97 7210515acf test(libSceFreeType): separate char-size coverage from pending kerning work 2026-10-21 20:00:49 +02:00
Ondra97 b74f4e24e8 feat(libSceFreeType): implement FT_Set_Char_Size 2026-10-21 20:00:49 +02:00
Adrià 606297f34f Merge pull request #8474 from xXPBSXx/fix/recv-msg-waitall
feat(libkernel): accept MSG_WAITALL in recv, recvfrom and recvmsg on a stream socket
2026-10-21 20:00:45 +02:00
Federico Marras 6978f110ee Merge branch 'fix/ngs2-atrac9-parsed-delay' into feat/ngs2-atrac9-module-loops 2026-10-21 20:00:38 +02:00
Kraken 35c508e9a2 test(libc): isolate feraiseexcept errno from barriers 2026-10-21 18:59:49 +01:00
Adrià 95d17687ae Merge pull request #8267 from thuanquang/fix/amd-robust2
fix(agc): give AMD's proprietary driver robustBufferAccess2 again
2026-10-21 19:59:43 +02:00
HQasperandClaude Opus 5.5 71ce2fe6da feat(libSceLibreSsl3): implement MD5 and SHA1
Both one-shots threw. They run Init, Update and Final through
libSceLibreSsl's MD5_* and SHA1_*, which libSceLibreSsl3 now links,
and return the digest buffer. A null digest buffer throws, since
LibreSSL up to 3.8 hashes into a static buffer and later versions do
not check it.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-21 17:50:18 +00:00
HQasperandClaude Opus 5.5 ab4be13c94 feat(libSceLibreSsl): implement the MD4, MD5, SHA-1 and SHA-2 digests
MD4, MD5, SHA1, SHA224, SHA256, SHA384 and SHA512 Init/Update/Final and
the SHA256 one-shot threw. They now hash as LibreSSL does, on the
caller's MD4_CTX, MD5_CTX, SHA_CTX, SHA256_CTX and SHA512_CTX laid out as
in LibreSSL's md4.h, md5.h and sha.h, so a context copied or inspected
by the title stays valid: the bit count in Nl/Nh, the partial block in
data with its length in num, and md_len selecting the truncated digest.
Final pads and clears the buffer as LibreSSL's sources do.

Cases that differ between LibreSSL versions throw: SHA256 with a null
digest buffer and SHA512_Final with the SHA-512/224 or SHA-512/256
length. The test checks the RFC 1320, RFC 1321 and FIPS 180 vectors over
several chunk sizes, the context fields, copied contexts and those
cases.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-21 17:49:47 +00:00
Kraken d324106dc7 docs(libkernel): record cleanup unwind and allocation limits 2026-10-21 18:45:42 +01:00
mossyanwar be51ab7bae fix(relinker): resolve symbol-name imports through NIDs on Linux
Homebrew built with the ps5-payload-dev SDK names its system
libraries with .sprx and imports by symbol name, while the libraries
in libs/ are .prx files that export NIDs. On Linux such an executable
converted but stopped at load time on the first .sprx dependency and,
once that was found, on the first symbol name.

The Linux patcher now loads a dependency named with .sprx, .suprx or
.debug_prx as the .prx library of the same stem. In an executable that
names such a dependency, an import without a module that is named by
symbol gets the NID of that name. A name that a bundled module exports
still binds to that module. There is no lookup by the name as written,
because the host loader also searches the host C library. Other
executables keep their unqualified imports as written.
2026-10-21 18:43:42 +01:00
Superhe11 eecffc924b test(libc): cover snprintf size bounds and formatting side effects 2026-10-21 20:34:41 +03:00
Yossi Yadgar 5cca233e98 docs(debt): record where the libkernel_sys default stack size rule comes from 2026-10-21 20:24:13 +03:00
Dean Galvin 58ad4eda77 fix(libkernel): report app0 symlinks as their target type in getdirentries
On Linux sceKernelGetdirentries copied the host d_type, so a directory under app0 that is a host symlink was listed as a link, and a title that only descends into directory entries skipped it. Inside the app0 tree, report a symlink (or an entry of unknown type) as the type of its target; links elsewhere, and dangling links, stay links.
2026-10-22 06:20:04 +13:00
Dean 4ec064d29b Merge pull request #6887 from Amoenus/codex/test-msaa-reader-retile-main143
test(agc): connect MSAA sample readback to tiled layouts
2026-10-22 06:14:29 +13:00
thuanquangandClaude 01e7d158b6 fix(shader): link a table call whose V# is a slice of an s_load_dwordx8 or s_load_dwordx16
Co-Authored-By: Claude <[email protected]>
2026-10-22 00:13:39 +07:00
David 17650eed5f docs(debt): record that libkernel_sys pselect swaps the mask apart from the wait 2026-10-21 18:06:07 +01:00
ShinMalphur f923ebb200 docs(net): state measured parser compatibility gaps 2026-10-21 23:29:59 +06:30
Kraken 65920e6fdc test(libc): cover CRT exit and TLS cleanup lifecycle 2026-10-21 17:56:28 +01:00
ShinMalphur b1ccca5cf7 Merge branch 'main' into feat/net-ether-address-parser 2026-10-21 23:24:11 +06:30
xXPBSXxandClaude Sonnet 5.5 06ca8ffb7f docs(debt): record the storage image refusal over uncommitted guest memory
StorageTexture throws when none of an image's guest pages is committed.
Three titles reach it intermittently in runs of a few minutes, on AMD and
NVIDIA, and the log names no address. The entry states the gap and that
the console behavior for such a descriptor is not known.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 18:53:39 +02:00
MarcZX10 2a12152f2b test(agc): clarify imports after partial unmap 2026-10-21 16:42:05 +00:00
Emanueleandmugurc bfa5368657 fix(libkernel): report unwind information for guest and host addresses on macOS
Two unwind queries a title makes went wrong on macOS, so a C++ exception the title would catch ended the process instead: God of War Sons of Sparta (PPSA28997) stops on an IL2CPP exception it normally handles.

- sceKernelGetModuleInfoForUnwind found a relinked image and its PT_GNU_EH_FRAME header but left eh_frame_addr and eh_frame_size at zero, so the title's unwinder found no FDE for its own frame. The tables are now read with EhFrame::ReadTables over the image's load segments, as ModuleInfo does on Linux, and eh_frame_size includes the zero terminator, as on Linux.
- sceSysmoduleGetModuleInfoForUnwind read /proc/self/maps outside Windows and threw on every call on macOS. It now answers from mach_vm_region, with the image path from dladdr, as the Linux branch answers from the mapping.

guest_unwind_module_info now runs on macOS: the test executable carries the __APS5DATA,__meta program headers that the macOS dl_iterate_phdr reads from a relinked image. guest_sysmodule checks the macOS answers against mach_vm_region.

Co-authored-by: mugurc <[email protected]>
2026-10-21 18:39:48 +02:00
MarcZX10 c443b512c2 docs(agc): describe label trace packet coverage 2026-10-21 16:33:58 +00:00
Nixitov 5aa33fe271 feat(libScePosixForWebKit): export pthread_setname_np
AI-assisted: yes
2026-10-21 18:04:13 +02:00