Commit Graph

2092 Commits

Author SHA1 Message Date
Dean 3acbb2e2d8
Merge pull request #889 from alfalfa-star/fix/audioout2-3d-latency-1
fix(audioout): accept a 3D latency of 1 in sceAudioOut2Set3DLatency
2026-10-07 10:14:18 +13:00
Dean 509d03d048
Merge pull request #881 from adriadam10/fix/errcodes-ngs2-signaling
fix(libs): use the referenced NGS2 handle and session signaling argument error codes
2026-10-07 10:13:36 +13:00
Adrià 00c9f9256e
Merge pull request #531 from adriadam10/test/vop3-integer
fix(shader): saturate v_cvt_pk_u16_u32/i16_i32; test VOP3 integer ops
2026-10-06 23:12:45 +02:00
Dean 2b049e3ef6
Merge pull request #879 from adriadam10/feat/kernel-batchmap-invalid-entry
feat(kernel): reject invalid sceKernelBatchMap2 entries with EINVAL
2026-10-07 10:12:23 +13:00
Dean 465c8f6b81
Merge pull request #878 from adriadam10/feat/kernel-adaptive-mutex-initializer
feat(kernel): lazily initialize the adaptive static mutex initializer
2026-10-07 10:11:42 +13:00
Dean 37a1e75f2c
Merge pull request #877 from adriadam10/feat/kernel-getrusage-thread
feat(kernel): support getrusage RUSAGE_THREAD on Linux
2026-10-07 10:11:00 +13:00
Dean 04847520a3
Merge pull request #875 from adriadam10/feat/jpegenc-restart-interval
feat(jpegenc): honor the encode restart interval
2026-10-07 10:10:18 +13:00
Dean 9b5cd3e223
Merge pull request #874 from adriadam10/feat/videodec2-avc-picture-info
feat(videodec2): implement sceVideodec2GetAvcPictureInfo
2026-10-07 10:09:36 +13:00
Adrià 8ccb15993f
Merge pull request #523 from DotDebian/fix/ds-append-consume-lds-offset
fix(shader): address ds_append and ds_consume on LDS by the instruction offset alone
2026-10-06 23:08:59 +02:00
Dean d2f51c5d33
Merge pull request #873 from adriadam10/feat/webbrowserdialog-get-status
feat(libs): implement sceWebBrowserDialogGetStatus
2026-10-07 10:08:54 +13:00
Dean e323c1f2b9
Merge pull request #909 from adriadam10/feat/ajm-batch-job-get-info
feat(libSceAjm.native): implement sceAjmBatchJobGetInfo
2026-10-07 10:08:12 +13:00
Dean 9530f4f267
Merge pull request #884 from Celegans12/feat/ajm-batch-job-control
feat(ajm): implement sceAjmBatchJobControl
2026-10-07 10:07:29 +13:00
Dean cfe926c0b0
Merge pull request #488 from arreina/pr/json-non-finite
fix(json2): throw on numbers that overflow a double
2026-10-07 10:06:47 +13:00
Dean 66da53663f
Merge pull request #810 from adriadam10/feat/http-uri-merge
feat(libSceHttp): implement sceHttpUriMerge
2026-10-07 10:05:32 +13:00
Dean 2cba243d68
Merge pull request #809 from adriadam10/feat/http-uri-sweep-path
feat(libSceHttp): implement sceHttpUriSweepPath
2026-10-07 10:04:49 +13:00
Dean 7c95dbb604
Merge pull request #836 from adriadam10/feat/net-sendmsg-recvmsg
libSceNet: implement sceNetSendmsg and sceNetRecvmsg
2026-10-07 10:03:35 +13:00
Dean 906b7f8d31
Merge pull request #724 from merwie/feat/kernel-exception-handler-registration
feat(libkernel): record exception handlers
2026-10-07 10:02:52 +13:00
Dean dfca223766
Merge pull request #841 from merwie/fix/savedata-repeated-initialize
fix(savedata): accept a repeated sceSaveDataInitialize3
2026-10-07 10:02:11 +13:00
Dean 64f99050b6
Merge pull request #763 from merwie/feat/libs-ppsa12544-plugin-exports
feat(libs): add exports imported by PPSA12544's Unity plugins
2026-10-07 10:01:28 +13:00
Dean 2d0bbbfb4a
Merge pull request #702 from merwie/feat/kernel-is-stack
feat(libkernel): implement sceKernelIsStack
2026-10-07 10:00:46 +13:00
Adrià 006c6cb618
Merge pull request #385 from DotDebian/feat/ds-wrxchg2-rtn-b32
feat(shader): implement ds_wrxchg2_rtn_b32 and ds_wrxchg2st64_rtn_b32
2026-10-06 23:00:00 +02:00
Dean 36f92f7a76
Merge pull request #811 from ebosido444-ai/fix/nid-names-function-try-block
fix(tools): count function-try-block definitions in nid_names.py
2026-10-07 09:59:33 +13:00
Dean e22d0c1013
Merge pull request #696 from tv7/feat/ime-keyboard-resource-id
feat(libSceIme): implement sceImeKeyboardGetResourceId
2026-10-07 09:58:51 +13:00
Dean 96ed510cf7
Merge pull request #369 from tv7/feat/json2-value-access
feat(libSceJson2): implement typed construction, indexed and keyed value access, InitParameter2
2026-10-07 09:58:04 +13:00
Adrià Franch 12008dc2ba docs(technical-debt): note the ds_wrxchg2 per-lane exchange order gap 2026-10-06 22:46:40 +02:00
DotDebian f617b873cc test(shader): mask the ds_wrxchg2 lanes with a per-lane compare
The masked case loaded EXEC from a scalar literal. A scalar mask is read
by subgroup lane, so on a host whose subgroups are narrower than the wave
(llvmpipe: 8 lanes) lane 16 took bit 0 and stayed active. v_cmpx_gt_u32
on the thread id gives the same low 16 lanes on any subgroup size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:46:27 +02:00
DotDebian 984bc57eca feat(shader): implement ds_wrxchg2_rtn_b32 and ds_wrxchg2st64_rtn_b32
Both swap data0 with the dword at addr + offset0 and data1 with the dword
at addr + offset1, and return the two previous values in vdst and vdst + 1.
The offsets are scaled by 4 bytes, or by 256 bytes for the st64 form.
Each location goes through the existing SharedAtomicSwap32.

An encoding whose two offsets are equal is rejected at decode time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:46:27 +02:00
Adrià 5b359092d8
Merge pull request #951 from adriadam10/docs/shader-semantics-source
docs(contributing): shader PRs say where instruction semantics come from
2026-10-06 22:20:03 +02:00
Adrià Franch 157aac7511 docs(contributing): shader PRs say where instruction semantics come from
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 22:12:08 +02:00
Adrià 61260bda0f
Merge pull request #871 from adriadam10/tools/hw-oracle
feat(tools): add a hardware oracle for RDNA instruction semantics
2026-10-06 22:11:25 +02:00
Alberto Ruiz 2cd813da97 test(json2): unwind guest_json_tests on Windows
The test now catches the exception that Parser::parse throws for a number
that overflows a double. Windows test executables need
configure_windows_unwind, as guest_png_dec_tests has, or the exception
cannot be unwound and the process terminates.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5WJS4ZdQynAJesCZKH5hb
2026-10-06 19:04:20 +02:00
Alberto Ruiz bdeeb17326 fix(json2): throw on numbers that overflow a double
Whether the console's parser rejects 1e309 or stores an infinite real
is unknown, and RFC 8259 allows both. Following the exact-or-throw rule,
sce::Json::Parser::parse now throws with the number text and a note that
the behaviour is unverified, instead of returning JsonErrorParse. The
partially built tree is freed before the exception leaves the parser.
The case is listed under unknown function info in TechnicalDebt.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5WJS4ZdQynAJesCZKH5hb
2026-10-06 18:37:38 +02:00
Alberto Ruiz be6c0cf3ec fix(json2): reject numbers that overflow to infinity
The parser stored strtod's result for 1e309 and similar numbers, so a
document with such a value parsed as an infinite real. Serializing it
then threw "cannot serialize a non-finite number", which escaped the
guest call and terminated the process. sce::Json::Parser::parse now
returns JsonErrorParse for a number that is not finite after conversion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5WJS4ZdQynAJesCZKH5hb
2026-10-06 18:37:26 +02:00
Adrià Franch 05de11ac1e feat(libSceAjm.native): implement sceAjmBatchJobGetInfo
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 18:01:46 +02:00
Celegans12 5e18e84f33 feat(ajm): implement sceAjmBatchJobControl
sceAjmBatchJobControl threw. It now appends a control job that keeps
the sideband input pointer and runs at sceAjmBatchStart: RESET (bit 13)
clears the context as sceAjmBatchJobClearContext does, INITIALIZE
(bit 14) initializes the codec, and SIDEBAND_GAPLESS_DECODE (bit 45)
overwrites the gapless total and skip counts, in this order.

The sideband input holds the gapless decode first, then the codec's
initialize parameters: 8 bytes for ATRAC9, 12 for Opus, none for MP3.
The output is the 8-byte result. Other flags, INITIALIZE for other
codecs, and other sizes throw. SIDEBAND_GAPLESS_DECODE without RESET
throws too: RPCSX and shadPS4 keep zero counts there. The bits and the
order follow shadPS4 (PS4), the overwrite with RESET follows RPCSX, and
the sizes follow the one title seen.
2026-10-06 14:45:10 +02:00
Adrià Franch 5784515e13 fix(libs): use the referenced NGS2 handle and session signaling argument error codes
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:39:02 +02:00
alfalfa-star 70864694d3 fix(audioout): accept a 3D latency of 1 in sceAudioOut2Set3DLatency
PPSA14632 calls sceAudioOut2Set3DLatency(0xFF, 1) during its audio
setup (eboot 0x5613e2c) and fails the setup on a nonzero return. Only
latency 2 from PPSA26344 was accepted, so the call threw. Latency 1 and
2 are now accepted for the system user; 0, 3 and other users still
throw.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 14:36:20 +02:00
Adrià Franch ca6557aed1 feat(kernel): reject invalid sceKernelBatchMap2 entries with EINVAL
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:27:48 +02:00
Adrià Franch fe557fb0e2 feat(kernel): lazily initialize the adaptive static mutex initializer
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:23:25 +02:00
Adrià Franch 1311e6e455 feat(kernel): support getrusage RUSAGE_THREAD on Linux
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:19:40 +02:00
Adrià Franch 263cb6626c feat(jpegenc): honor the encode restart interval
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:16:07 +02:00
Adrià Franch 803f1b0e71 feat(videodec2): implement sceVideodec2GetAvcPictureInfo
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:11:24 +02:00
Adrià Franch 232719f9f8 feat(libs): implement sceWebBrowserDialogGetStatus
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 14:06:52 +02:00
Adrià Franch f617b40a45 feat(tools): add a hardware oracle for RDNA instruction semantics
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 13:54:28 +02:00
Adrià Franch 7db0a80b19 libSceHttp: keep sceHttpUriSweepPath inside srcSize, cite shadPS4
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 11:52:27 +02:00
Adrià Franch 9bcd676774 libSceNet: link libc into the guest net test for MinGW exception handling
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 11:51:42 +02:00
Adrià Franch 92d79996c7 libSceNet: implement sceNetSendmsg and sceNetRecvmsg
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 11:51:42 +02:00
Adrià Franch 16285b473f libSceHttp: classify the relative reference without host validation in sceHttpUriMerge
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 11:51:34 +02:00
Adrià Franch 0207e28f88 feat(libSceHttp): implement sceHttpUriMerge
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 11:51:34 +02:00
Adrià Franch e6d0c9c9b0 feat(libSceHttp): implement sceHttpUriSweepPath
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 11:51:26 +02:00