Commit Graph
1750 Commits
Author SHA1 Message Date
MarcZX100 02005c86d2 fix(agc): detect narrow clock on RX 7800 XT 2026-10-09 22:04:49 +00:00
Adrià FranchandClaude 810eda2edf docs(zlib): record shadPS4 length and invalid-argument differences
Co-Authored-By: Claude <[email protected]>
2026-10-10 02:03:59 +04:00
Mouhand-Kaddo 8fc83ae05c feat(zlib): implement sequential libSceZlib decompression
Resolve the missing system library with checksum-validating decompression. Add behavioral tests and document unsupported request semantics.
2026-10-10 02:03:59 +04:00
Adrià 0ccdf15f18 Merge pull request #915 from Pacuka/fix/audiodec-m4aac-raw-channels
fix(audiodec): take the M4AAC raw channel layout from the stream
2026-10-10 00:03:46 +02:00
Adrià bfef67f362 Merge pull request #1849 from authurtabo-byte/fix/audio3d-missing-exports
feat(libSceAudio3d): implement sceAudio3dObjectSetAttributes and sceAudio3dPortFlush
2026-10-10 00:03:08 +02:00
Adrià b0d834be25 Merge pull request #1796 from Mouhand-Kaddo/feat/posix-gethostbyname
feat(posix): implement gethostbyname
2026-10-10 00:02:15 +02:00
MarcZX100 aa17030a65 fix(agc): detect AMD proprietary narrow clock on RX 7900 XT 2026-10-09 22:02:13 +00:00
MarcZX100 0f1f5e721b fix(agc): detect narrow clock on tested AMD device 2026-10-09 22:02:13 +00:00
Dean 9ee4972db6 Merge pull request #2336 from JAB-dev/feat/ngs2-reverb-rack
feat(libSceNgs2.native): reverb rack following the PS4 libSceNgs2 reverb
2026-10-10 10:59:54 +13:00
Adrià 2a42045df8 Merge pull request #2153 from EdouardSence/feat/ult-ulthread-runtime
feat(libSceUlt): implement sceUltUlthreadTryJoin, sceUltUlthreadRuntimeDestroy and the underscore ulthread exports
2026-10-09 23:59:50 +02:00
Adrià 416e40ef29 Merge pull request #2118 from rozbh/feat/libkernel-aio-poll-requests
feat(libkernel): implement sceKernelAioPollRequests
2026-10-09 23:59:29 +02:00
Jan ŠléglandClaude Fable 5.1 9d0b105771 fix(libkernel): read and write guest sockets
read, write, _read and _write on a guest socket descriptor went to the
host, which has no such descriptor, so sceKernelRead and sceKernelWrite
threw. They now reach the socket as recv and send without flags, with
the socket layer's errno (EAGAIN 35, EPIPE 32, EBADF 9), a zero-length
read returns 0 as dofileread does, and the two sceKernel forms return
the kernel error for the same cases. The host's SIGPIPE on EPIPE, a
write above INT_MAX bytes, readv, writev and the positioned forms are
recorded in TechnicalDebt.

OpenSSL's QUIC notifier signals its socketpair with write and read.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-09 23:57:33 +02:00
XairRrR c642428e82 feat(libs): implement sceGameLiveStreamingGetCurrentStatus2
The status layout is shadPS4's OrbisGameLiveStreamingStatus2 (72
bytes). Live streaming is not supported, so the call reports that no
stream is on air, with an invalid user id; a null status throws.

Uncharted: Legacy of Thieves Collection (PPSA05684) stopped at sceGameLiveStreamingGetCurrentStatus2.
2026-10-09 23:56:40 +02:00
Adrià 7331a123e9 Merge pull request #2107 from LeandroLP23/feat/libkernel-sigaltstack
feat(libkernel): implement sigaltstack
2026-10-09 23:56:02 +02:00
Adrià db06355f84 Merge pull request #1859 from overlordxrz-source/feat/libkernel-system
feat(libkernel): implement system
2026-10-09 23:55:09 +02:00
Adrià 7b705629a6 Merge pull request #1714 from johnmaia/feat/videoout-resolution-status
feat(videoout): implement sceVideoOutGetResolutionStatus
2026-10-09 23:54:46 +02:00
Adrià cb4f41c1e8 Merge pull request #1978 from LuisBiceps/feat/agc-get-tf-ring
feat(agc): implement sceAgcDriverGetTFRing
2026-10-09 23:53:52 +02:00
Adrià 8d47cfba88 Merge pull request #1807 from SleglJan/feat/libkernel-sandbox-random-word
feat(libkernel): implement sceKernelGetFsSandboxRandomWord
2026-10-09 23:52:40 +02:00
Adrià 2dbc137693 Merge pull request #1798 from hugodearaujo/feat/libkernel-pthread-getname-np
feat(libkernel): implement pthread_getname_np
2026-10-09 23:51:56 +02:00
Adrià 4b112364b5 Merge pull request #1339 from gjonn/feat/videoout-vrr-status-event
feat(libSceVideoOut): register the VRR status event and accept the VRR status call
2026-10-09 23:51:35 +02:00
Dean 4cdf38439a Merge pull request #2334 from parl0v/docs/drop-stale-pool-stats-debt
docs: drop the stale unknown-signature entries for the memory pool stats
2026-10-10 10:51:07 +13:00
Adrià 3d19932caf Merge pull request #1738 from SleglJan/feat/libkernel-termios
feat(libkernel): implement tcgetattr and tcsetattr
2026-10-09 23:48:53 +02:00
Adrià 64c6b11420 Merge pull request #1729 from johnmaia/feat/libc-syslog
feat(libc): implement syslog and vsyslog
2026-10-09 23:48:32 +02:00
Dean 292d854ea6 Merge pull request #2264 from xXPBSXx/docs/build-windows-antivirus
docs(build): note antivirus quarantine of relinker test executables on Windows
2026-10-10 10:46:53 +13:00
Dean a4e0889b5d Merge pull request #2209 from Rohan03x/docs/windows-runtime-dlls
docs(usage): list the MinGW runtime DLLs a self-built libs directory needs
2026-10-10 10:46:02 +13:00
Dean 8908c3ee18 Merge pull request #2350 from snoozedDev/feat/hw-oracle-lds-size
feat(hw-oracle): make the group segment size an option
2026-10-10 10:44:34 +13:00
Dean 75994ad8ec Merge pull request #2337 from JAB-dev/fix/ngs2-matrix-level-clamp
fix(libSceNgs2.native): clamp matrix levels to -4..4 as the PS4 libSceNgs2 does
2026-10-10 10:44:24 +13:00
Dean 6918141ebe Merge pull request #2249 from zmeizy/claude/llvmpipe-shader-clock-wrap
test(agc): compare llvmpipe shader clocks modulo 2^32
2026-10-10 10:44:04 +13:00
Dean cb86a0f269 Merge pull request #2159 from Angel21PC/fix/avplayer-ps5-init-data-ex
fix(avplayer): read the PS5 SceAvPlayerInitDataEx layout
2026-10-10 10:43:32 +13:00
Dean 51b1c56057 Merge pull request #2065 from LuisBiceps/feat/system-service-web-browser-unavailable
feat(libSceSystemService): report the web browser as unavailable
2026-10-10 10:42:50 +13:00
hikazeyandClaude Opus 5.5 0bff6da3d3 feat(libkernel): implement msync
msync follows FreeBSD 11's kern_msync and vm_map_sync over the guest's
mappings as sceKernelVirtualQuery reports them: the address is rounded
down to the page, a range that wraps and MS_ASYNC with MS_INVALIDATE are
EINVAL, an unmapped start or page is ENOMEM, and length 0 checks the
mapping that holds the address. The guest has no file mappings, so a
successful call has nothing to write back. MS_INVALIDATE on a mapped
range throws, since FreeBSD's EBUSY for mlocked pages needs lock state
that is not tracked.

EVO-PLAYER PPSA99039 v0.11.0 imports it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 23:38:58 +02:00
Adrià e603f3f560 Merge pull request #1613 from NumberGuan/codex/posix-temp-files
feat(posix): implement mkstemp and isatty
2026-10-09 23:37:02 +02:00
Adrià FranchandClaude 4dfeac2989 docs(technical-debt): move the sceImeGetPanelPositionAndForm entry off the end of its section
Lines at the end of a section conflict with every other pull request that appends there.

Co-Authored-By: Claude <[email protected]>
2026-10-09 23:36:36 +02:00
MathiasDevelopesandClaude Opus 5.5 e21d8bd12f feat(libSceIme): implement sceImeGetPanelPositionAndForm
The IME panel cannot be open while sceImeOpen is unimplemented, so the
query returns SCE_IME_ERROR_NOT_OPENED and leaves the output untouched,
like sceImeSetCaret, sceImeSetText and sceImeSetTextGeometry. As with
sceImeSetCaret, the closed panel is reported before a null output.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-09 23:36:28 +02:00
Adrià 00159cffb5 Merge pull request #1544 from arvindfroi/feat/share-remaining-calls
feat(share): answer sceShareSetContentParamForApplicationTitle
2026-10-09 23:34:10 +02:00
Adrià FranchandClaude 4924932378 docs(technical-debt): record the unreserved Audio3d object return
shadPS4 returns success for an object id that was never reserved and the invalid-object error only for a released one; this library returns the error for both.

Co-Authored-By: Claude <[email protected]>
2026-10-09 23:33:06 +02:00
authurtabo-byte 57bc8b1661 feat(libSceAudio3d): implement sceAudio3dObjectSetAttributes and sceAudio3dPortFlush
Both exports are imported by titles that link libSceAudio3d; without them the loader fails with an unresolved import before the title runs. Following the offline model, object attributes are validated but produce no audio and PortFlush drops the frames queued by sceAudio3dPortAdvance.
2026-10-09 23:32:52 +02:00
EdouardSenceandClaude Opus 5.5 04dda44d3d feat(libSceUlt): implement sceUltUlthreadTryJoin, sceUltUlthreadRuntimeDestroy and the underscore ulthread exports
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 23:31:01 +02:00
JAB-devandClaude Opus 5.5 00e13ecfa7 feat(libSceNgs2.native): implement sceNgs2PanInit and sceNgs2PanGetVolumeMatrix
Pan follows the PS4 firmware 11.00 libSceNgs2.sprx: the speaker layout
from the init angles, then each param's angle and distance into a
volume matrix for the voice. Every param is checked before anything is
written, and angles too large to wrap throw. The pan functions are
exported from the existing Voice.cpp export block.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 23:26:24 +02:00
Claude b5c9945e1f fix(libc): stop the strtol family at a binary prefix on Linux
C17 has no binary prefix: with base 0 or 2, strtol("0b101", &end, base)
reads the subject "0", returns 0 and leaves end at the 'b'. With glibc
2.38 or later, g++ (which defines _GNU_SOURCE) binds std::strtoll,
strtoull, strtoul, strtoimax and strtoumax to the C23 __isoc23_*
functions, which accept 0b/0B: the Linux exports returned 5 and
consumed the whole string. The Windows UCRT already follows C17, so the
same guest call gave different results on the two hosts.

strtol, strtoul, strtoll, strtoull, _Stoull, strtoimax, strtoumax and
_Stoul now return 0 with the end pointer after the '0' when, after
white space and an optional sign, the text starts with 0b or 0B and a
binary digit, in base 0 or 2. Everything else still goes to the host
function. The scanf family's %i has the same glibc behaviour; it is
recorded in TechnicalDebt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 21:26:13 +00:00
Adrià 54f28f2d31 Merge pull request #1543 from arvindfroi/feat/np-manager-offline-lookups
feat(libSceNpManager): answer sceNpCheckNpAvailability with no user signed in
2026-10-09 23:26:09 +02:00
JAB-devandClaude Opus 5.5 ed9a70175e fix(libSceNgs2.native): mix ports without set levels through the default channel map
A port without a matrix sent source channel n to destination channel n, so a
mono voice reached only the left channel of a stereo mix. The PS4 firmware
11.00 libSceNgs2.sprx mixes such ports, and ports whose matrix levels were
never set, through a fixed channel map instead: mono reaches both stereo
channels at -3 dB and the centre of 5.1 and 7.1, stereo folds to mono at
-3 dB per side, and wider sources fold down with 0.5 and -3 dB gains. The map
was measured for every source width into 1, 2, 6 and 8 channels.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 23:25:31 +02:00
JAB-devandClaude Opus 5.5 56d8e5c4df fix(libSceNgs2.native): mix through a selected matrix whose levels were never set
PPSA22520 routes its title music through port matrix 0 without setting the
matrix levels, so the music rendered silent. A matrix without levels now
mixes like a port without a matrix, source channel n to destination channel
n. The console's initial levels are unknown; the assumption is recorded in
TechnicalDebt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 23:25:31 +02:00
Adrià FranchandClaude 9d1ac9033e fix(libc): report unknown syslog bits with FreeBSD's internal priority
FreeBSD vsyslog logs the complaint with LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID passed as the priority (0x23), not LOG_ERR.

Co-Authored-By: Claude <[email protected]>
2026-10-09 23:23:49 +02:00
john.maiaandClaude Opus 5.5 bcd1b0c2a0 feat(libc): implement syslog and vsyslog
ps5-opengl (PPSA99005) and ProsperoRadio (PPSA99001) import syslog
from libSceLibcInternal. Messages go to stderr with the priority, and
the format follows FreeBSD's vsyslog: %m expansion, masking of unknown
priority bits, LOG_USER as the default facility, errno preserved.

Assisted by Claude Code.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 23:23:42 +02:00
Adrià d724cad38c Merge pull request #1748 from danielradosa/feat/libkernel-seteuid-setegid
feat(libkernel): implement seteuid and setegid
2026-10-09 23:23:34 +02:00
Adrià 5bc7886ab8 Merge pull request #1188 from MathiasDevelopes/feat/kernel-module-info-windows
feat(libkernel): implement sceKernelGetModuleInfoFromAddr on Windows
2026-10-09 23:22:46 +02:00
Tomás Ortellado 7a771d2d89 feat(posix): implement mkstemp and isatty 2026-10-09 23:18:58 +02:00
Adrià Franch 96418e0396 docs(technical-debt): move the tcgetattr entry into the list 2026-10-09 23:17:19 +02:00
Jan ŠléglandClaude Fable 5.1 14cc6497d2 feat(libkernel): implement tcgetattr and tcsetattr
A title's descriptors are taken as never being terminals: a file or
pipe gets ENOTTY with the termios untouched, a socket gets what its
protocol answers a termios ioctl on FreeBSD (EADDRNOTAVAIL for AF_INET,
EOPNOTSUPP otherwise), and a closed or invalid descriptor EBADF.
tcsetattr gives EINVAL for an action other than TCSANOW, TCSADRAIN or
TCSAFLUSH, with or without TCSASOFT, before anything else, and EFAULT
for a null termios before the descriptor is checked; with TCSASOFT a
null termios throws, where FreeBSD's libc faults copying it. What the
console gives a title as descriptors 0 to 2 is unknown, as recorded in
TechnicalDebt.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-09 23:17:12 +02:00