Commit Graph

761 Commits

Author SHA1 Message Date
Adrià 76bff21fbe
Merge pull request #1421 from popcoder565/fix/kernel-raise-exception-ntcontinue
fix(libkernel): stop losing and deadlocking sceKernelRaiseException deliveries on Windows
2026-10-10 01:23:17 +02:00
Adrià c5424ab69c
Merge pull request #1916 from johnmaia/feat/libkernel-sigaction
feat(libkernel): implement sigaction
2026-10-10 01:20:54 +02:00
Adrià 00dd2ba844
Merge pull request #1017 from NahuelGenchi/fix/v-fma-f64-subnormals
fix(shader): round v_fma_f64 once for subnormal operands and results
2026-10-10 01:19:26 +02:00
Adrià 624b2b7eff
Merge pull request #1135 from orbz22/fix/kernel-aio-keep-offset-windows
fix(kernel): keep the file offset in Windows AIO reads and writes
2026-10-10 01:09:52 +02:00
Adrià 0df342c640
Merge pull request #1179 from MichonGoddijn231849/feat/pixel-ancillary-whole-word
feat(recompiler): pixel ancillary word used whole
2026-10-10 00:56:51 +02:00
Adrià dc4b7104e5
Merge pull request #2205 from XairRrR/feat/gamelivestreaming-status2
feat(libs): implement sceGameLiveStreamingGetCurrentStatus2
2026-10-10 00:55:16 +02:00
Adrià c2f1139436
Merge pull request #1824 from Mouhand-Kaddo/feat/sce-zlib
feat(zlib): implement sequential libSceZlib decompression
2026-10-10 00:54:10 +02:00
Adrià c9d42619a6
Merge pull request #1292 from Celegans12/feat/agc-draw-null-srt
feat(agc): implement deferred faults for descriptors read through null SRT pointers
2026-10-10 00:48:27 +02:00
Adrià Franch ab658fcfb0 docs(technical-debt): state what raise does for each recorded signal 2026-10-09 23:42:52 +01:00
john.maia cfe4a277c4 feat(libkernel): implement sigaction
EVO-PLAYER (PPSA99039) v0.11.0 stops at sigaction once its earlier
imports resolve: it installs a crash handler for SIGSEGV, SIGBUS and
SIGABRT and a quit handler for SIGTERM, SIGINT and SIGHUP at start-up.

sigaction records the handler, flags and mask of signals 1 to 128 and
reports them back, with FreeBSD's EINVAL cases. signal shares the table
and records SA_RESTART, as FreeBSD's libc does. Plain handlers on the
signals signal already delivers run as signal handlers do; SA_SIGINFO
handlers and other signals are recorded only, and raise of such a
signal throws.

Assisted by Claude Code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DwFnKjMxmwGDWiuYYf1v4D
2026-10-09 23:42:43 +01:00
Adrià Franch b2961b702c docs(debt): v_fma_f64 subnormals measured, f64 denormal flush not read
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-10 00:38:04 +02:00
Nahuel Genchi a12ddaa905 fix(shader): round v_fma_f64 once for subnormal operands and results
A subnormal operand sent v_fma_f64 to a separate multiply and add, and a
subnormal result was rounded twice: once to 53 bits in the scaled domain
and again by the power-of-two rescale. Both differ from IEEE 754
fusedMultiplyAdd in the last bit.

Subnormal operands are now widened by 2^64 and enter the exact path with
their exponent lowered by 64. The exact path keeps the sign of the residual
between the 53-bit result and the exact sum; when the result lands on a
midpoint of the subnormal grid it is moved one ulp towards the exact sum
before the single final rounding. Normal results are rebuilt by setting
the exponent, so only a subnormal result rounds. v_div_fmas_f64 shares the
path.
2026-10-10 00:38:04 +02:00
Adrià 27965d8ae7
Merge pull request #1170 from MichonGoddijn231849/fix/dcc-keys-fill-over-aliased-images
fix(agc): a fill of a surface's DCC keys is a key fill over other images' memory
2026-10-10 00:32:43 +02:00
Raihan Abdul Majid e768d97949 fix(kernel): keep the file offset in Windows AIO reads and writes
Each Windows AIO request is an overlapped ReadFile/WriteFile at the
request's offset, which on a synchronous handle also moves the
descriptor's file pointer; on the console AIO transfers leave it alone.
The requests now go through the positioned path sceKernelPread and
sceKernelPwrite use (NativePositioned in Stdio.cpp, exposed as
NativePositioned_nid_no_patch), which restores the pointer afterwards.
Negative offsets still fail with EINVAL before the transfer.

GuestAio sets the offset to 2 before a write batch and checks it is
still 2 after. TechnicalDebt records that a concurrent read or write on
the same descriptor can see the moved pointer in between, as for the
pread family.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UTjpbMX7BUFMZZaxJE98zV
2026-10-10 00:22:22 +02:00
Adrià 2d537f13bb
Merge pull request #1073 from alfalfa-star/feat/agc-uint16-color-export
feat(agc): accept UINT16_ABGR color exports into unsigned integer targets
2026-10-10 00:13:23 +02:00
Adrià fa899a3468
Merge pull request #1857 from hikazey/feat/msync
feat(libkernel): implement msync
2026-10-10 00:12:20 +02:00
Michon d8b1ad71d8 fix(recompiler): lower the ancillary word only where every reader extracts a modelled field
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 00:11:23 +02:00
Adrià ec05c02205
Merge pull request #1713 from MathiasDevelopes/feat/libsceime-panel-position-and-form
feat(libSceIme): implement sceImeGetPanelPositionAndForm
2026-10-10 00:08:14 +02:00
popcoder565 5dc7021c38 Merge remote-tracking branch 'origin/main' into fix/kernel-raise-exception-ntcontinue
Keeps both new TechnicalDebt entries: this branch's note that a raise
can still reenter host code it interrupted, and #2107's sigaltstack note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:07:20 -04:00
Adrià 025a911360
Merge pull request #2359 from mrzacarias/feat/rudp-get-status
feat(libSceRudp): implement sceRudpGetStatus
2026-10-10 00:04:52 +02:00
Adrià Franch 810eda2edf docs(zlib): record shadPS4 length and invalid-argument differences
Co-Authored-By: Claude <noreply@anthropic.com>
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
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
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 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
hikazey 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 <noreply@anthropic.com>
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à Franch 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 <noreply@anthropic.com>
2026-10-09 23:36:36 +02:00
MathiasDevelopes 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) <noreply@anthropic.com>
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