Commit Graph
5577 Commits
Author SHA1 Message Date
ChadandClaude Opus 5.5 636fb5edae feat(libs): implement the AMPR 04_00 counter commands and the construct helpers
sceAmprCommandBufferWaitOnCounter_04_00 and WriteCounter_04_00 take the
counter access size and offset, the wait mask and the write operation,
with their measure functions; ConstructNop records a nop with an optional
leading word and a payload of up to 60 bytes, and ConstructMarker records
the set, push and pop markers by type. Signatures and checks follow
ampr_emu.

The executor now reads and writes counters by access: the 8-byte access
of counter n spans n and n + 1, the 2- and 1-byte accesses a half or a
byte of the counter. Waits compare at the access width, so the signed and
wrapped compares see the field's own sign bit, and the atomic writes wrap
within the field. The legacy counter commands record a 4-byte access.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 15:02:30 -05:00
Jakub Krasuski f91e13447d fix(net): return SCE_NET_ERROR codes from failing sceNet calls
Every failing sceNet function returned -1 and left the code only in
sceNetErrnoLoc. The functions return the errno combined with
0x80410100 (SCE_NET_ERROR_*), as the resolver paths of this file
already do with RESOLVER_ENODNS and as shadPS4 and fpPS4 do for the
whole library. A title that compares the result with
SCE_NET_ERROR_EWOULDBLOCK saw a non-blocking receive without data as
an unknown failure.

Assisted-by: Claude Opus 5.5
2026-10-05 21:58:21 +02:00
Jakub Krasuski 01220faa1a fix(net): keep SIGPIPE from killing the process on Linux sends
sceNetSend and sceNetSendto called send and sendto without
MSG_NOSIGNAL, so a send on a connection the peer had closed raised
SIGPIPE and terminated the process. shadPS4 has sceNetSend pass
0x20000, FreeBSD's MSG_NOSIGNAL, down to sendto, so a title gets the
error back instead of a signal.

Pass MSG_NOSIGNAL on Linux and translate EPIPE, which fell through to
EIO.

Assisted-by: Claude Opus 5.5
2026-10-05 21:57:20 +02:00
RomainROCH 12c229d19a fix(jpegenc): honor chroma sampling and encode true grayscale JPEGs 2026-10-05 21:49:36 +02:00
ChadandClaude Opus 5.5 d4f7ddaa1a fix(agc): count the one-dword NOP pad as one dword in range predication
0xffff1000 is a type-3 NOP whose count field is 0x3fff, which the command
processor reads as a single dword. sceAgcSetRangePredication read it as a
16385-dword packet and skipped the packets after it, or threw in a short
range. It is now stepped over like a type-2 filler.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 14:49:17 -05:00
Chad 4882413217 Merge remote-tracking branch 'upstream/main' into feat/agc-predication
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-05 14:48:11 -05:00
Chad c3ab220e45 Merge remote-tracking branch 'upstream/main' into feat/ampr-nop-04-writes
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-05 14:46:31 -05:00
Jakub Krasuski cefdea7d14 fix(libkernel): report EINVAL, EACCES, ENOBUFS, ETIMEDOUT and EINTR from Linux sockets
The Linux branch of NativeError lacked five codes the Windows branch
already translates, so they fell through to EIO. bind on a bound socket
and accept on a socket that is not listening set errno to 5 on Linux
and to 22 on Windows.

Assisted-by: Claude Opus 5.5
2026-10-05 21:41:12 +02:00
Dean 681f83e51e Merge pull request #713 from adriadam10/feat/savedata-ps4-transfer
feat(savedata): implement the PS4 transfer mount and directory search
2026-10-06 08:14:26 +13:00
Dean a2da600645 Merge pull request #712 from adriadam10/feat/share-capture-screenshot-extended
feat(libSceShare): sceShareCaptureScreenshotExtended
2026-10-06 08:13:44 +13:00
Dean 7d6afbc4d9 Merge pull request #711 from adriadam10/feat/playgodialog-getstatus
feat(libs): implement scePlayGoDialogGetStatus
2026-10-06 08:13:01 +13:00
Dean d66925cd5f Merge pull request #708 from adriadam10/feat/http-inflate-gzip
feat(http): name sceHttpSetInflateGZIPEnabled and sceHttpSetRequestStatusCallback
2026-10-06 08:12:50 +13:00
Dean 949de6665b Merge pull request #707 from adriadam10/feat/ulobjmgr-register
feat(ulobjmgr): register and unregister object
2026-10-06 08:12:08 +13:00
Dean 74dda5d30a Merge pull request #703 from adriadam10/feat/nptrophy2-unregister-unlock-callback
feat(libs): implement sceNpTrophy2UnregisterUnlockCallback
2026-10-06 08:11:26 +13:00
Dean 369605bf70 Merge pull request #681 from Raghav314/fix/ajm-batch-wait-release
fix(ajm): release a batch when sceAjmBatchWait returns
2026-10-06 08:10:44 +13:00
Dean 1c2ccd838c Merge pull request #655 from NumberGuan/codex/fix-rtc-rfc3339-offsets
fix(rtc): reject invalid RFC 3339 formatting offsets
2026-10-06 08:10:00 +13:00
Dean 170ef4a28f Merge pull request #649 from Celegans12/feat/audioout2-3d-latency
feat(audioout): implement sceAudioOut2Set3DLatency and accept sceAudioOut2MasteringInit(0)
2026-10-06 08:09:17 +13:00
Dean d99194f6e9 Merge pull request #645 from Celegans12/feat/voiceqos-exports
feat(voiceqos): declare the missing libSceVoiceQoS exports
2026-10-06 08:08:34 +13:00
Dean fa9b2ed0ba Merge pull request #643 from Celegans12/feat/msgdialog-native-close
feat(msgdialog): implement sceMsgDialogClose in libSceMsgDialog.native
2026-10-06 08:07:51 +13:00
Dean 4b0c38f0e4 Merge pull request #642 from Celegans12/feat/http-parse-status-line
feat(http): implement sceHttpParseStatusLine
2026-10-06 08:07:07 +13:00
Dean 20be619dce Merge pull request #640 from Celegans12/feat/systemservice-param-get-string
feat(systemservice): implement sceSystemServiceParamGetString
2026-10-06 08:06:55 +13:00
Dean 0bc7ea5cfe Merge pull request #635 from Celegans12/feat/np-session-signaling-offline-prepare
feat(npsessionsignaling): implement offline RequestPrepare and GetLocalNetInfo
2026-10-06 08:06:43 +13:00
Dean de82e335a3 Merge pull request #634 from Celegans12/feat/np-commerce-icon-layout
feat(npcommerce): implement sceNpCommerceSetPsStoreIconLayout
2026-10-06 08:06:01 +13:00
Dean 3e5558dd43 Merge pull request #632 from Celegans12/feat/razorcpu-markers
feat(razor): implement sceRazorCpuPushMarkerStatic and sceRazorCpuPopMarker
2026-10-06 08:05:19 +13:00
Dean 974c3fa1b5 Merge pull request #652 from Celegans12/fix/guest-arena-app-map-area
fix(libc): reach the application map area end with the guest arena
2026-10-06 08:04:36 +13:00
Dean 25c4a9460d Merge pull request #650 from Celegans12/fix/windows-direct-memory-commit
fix(libkernel): state the size of a direct memory backing Windows cannot create
2026-10-06 08:03:53 +13:00
Dean 78c17a1d47 Merge pull request #661 from NumberGuan/codex/fix-metadata-download-size
fix(libkernel): preserve 64-bit metadata download sizes
2026-10-06 08:03:11 +13:00
alfalfa-starandClaude Opus 5.5 124be3e7e8 feat(agc-driver): execute boolean SET_PREDICATION
SET_PREDICATION threw, and packets with the predicate header bit were
rejected. The executor now keeps the queue's predication: operations 3
and 4 read a 64- or 32-bit value and bit 8 selects whether predicated
packets run when it is non-zero or zero; operation 0 clears it. Before
a predicated packet runs while predication is active, queued labels are
recorded and the value is read, as for COND_EXEC; the packet is skipped
when the predicate fails.

Indirect buffers are inlined when a submission is copied, so a
predicated INDIRECT_BUFFER call keeps its header in front of the
inlined commands and records their end like a COND_EXEC range; the
block runs or is skipped on one evaluation, as on the command
processor. Query predication, a predicated COND_EXEC, predicated chains
and flips inside predicated command buffers throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 21:02:47 +02:00
Dean e8893dfc64 Merge pull request #633 from Celegans12/feat/kernel-sync-on-address-wait-sized
feat(libkernel): implement sceKernelSyncOnAddressWait32 and sceKernelSyncOnAddressWait64
2026-10-06 08:02:29 +13:00
Dean 66db1930c7 Merge pull request #729 from adriadam10/feat/libc-fdtest-finf-fnan
feat(libc): implement _FDtest, _FInf and _FNan
2026-10-06 08:02:17 +13:00
Dean 17da563b25 Merge pull request #720 from adriadam10/feat/libkernel-unimplemented-names
fix(libkernel): name three Unimplemented stubs from their NIDs
2026-10-06 08:01:33 +13:00
Dean 6a0159cc80 Merge pull request #719 from adriadam10/feat/libkernel-coredump-names
fix(libkernel): name five sceCoredump stubs from their NIDs
2026-10-06 08:00:51 +13:00
Dean 7c0528a8f3 Merge pull request #718 from adriadam10/feat/libc-div
feat(libc): implement div
2026-10-06 08:00:09 +13:00
Dean 4520e2b664 Merge pull request #715 from adriadam10/feat/libc-cyber-unknown-names
feat(libc): implement std::_Xrange_error and the range_error type
2026-10-06 07:59:26 +13:00
Dean 823e01e3c1 Merge pull request #706 from adriadam10/feat/libc-strtoimax-logbf
feat(libc): strtoimax and logbf
2026-10-06 07:58:43 +13:00
Dean 7580b9e44c Merge pull request #679 from Celegans12/fix/relinker-windows-low-entropy-stacks
fix(relinker): keep Windows startup stacks below the guest arena
2026-10-06 07:57:17 +13:00
Dean cd8b6f3fcb Merge pull request #662 from NumberGuan/codex/fix-autorun-exit-status
fix(relinker): decode autorun exit status for the host
2026-10-06 07:56:24 +13:00
Dean 69619c4a66 Merge pull request #657 from NumberGuan/codex/fix-strdup-allocation-failure
fix(libc): return null when strdup allocation fails
2026-10-06 07:55:41 +13:00
Dean 7058a4ce6c Merge pull request #656 from NumberGuan/codex/fix-relinker-alignment
fix(relinker): reject invalid and overflowing alignment
2026-10-06 07:54:58 +13:00
Dean eabf1418de Merge pull request #647 from Celegans12/feat/videoout-strict-colorimetry
feat(videoout): accept the STRICT_COLORIMETRY buffer option
2026-10-06 07:54:15 +13:00
Dean 3c681d5199 Merge pull request #670 from NahuelGenchi/feat/global-atomic-csub
feat(shader): implement global_atomic_csub
2026-10-06 07:54:05 +13:00
Dean d5b7fbc127 Merge pull request #660 from Celegans12/feat/agc-dpp16-row-share
feat(shader): implement the DPP16 row_share controls
2026-10-06 07:53:22 +13:00
Dean 7df0923570 Merge pull request #659 from Celegans12/feat/agc-image-atomics-32bit-formats
feat(agc): implement image atomics on 32_SINT and 32_FLOAT surfaces
2026-10-06 07:52:39 +13:00
Dean bbc6f42881 Merge pull request #667 from adriadam10/test/image-atomics-bitwise
test(shader): cover the bitwise and unsigned image atomics
2026-10-06 07:51:54 +13:00
Dean a509d519a1 Merge pull request #689 from adriadam10/test/flat-global-loads-ci-time
test(shader): split the flat and global loads test to keep it within CI's time limit
2026-10-06 07:51:41 +13:00
Dean 7b1d7cc78a Merge pull request #688 from adriadam10/test/global-atomics-ci-time
test(shader): split the global atomics test to keep it within CI's time limit
2026-10-06 07:50:59 +13:00
Dean 18f1548703 Merge pull request #678 from Celegans12/feat/agc-clip-cntl-dx-linear-attr
feat(agc): accept linear attribute clipping in PA_CL_CLIP_CNTL
2026-10-06 07:50:16 +13:00
Dean 0a081cbe8c Merge pull request #673 from Celegans12/feat/agc-pm4-cond-exec
feat(agc): implement COND_EXEC
2026-10-06 07:49:33 +13:00
Dean 5e68f0ad09 Merge pull request #654 from Celegans12/feat/agc-write-data-cache-policy
feat(agc): accept the WRITE_DATA cache policy
2026-10-06 07:48:51 +13:00
Dean 75aa7f2197 Merge pull request #651 from Celegans12/feat/agc-interpolant-mapping-f16-high
feat(agc): implement the interpolant mapping variant for high-half f16 inputs
2026-10-06 07:48:08 +13:00