Commit Graph
14017 Commits
Author SHA1 Message Date
ChadandClaude Opus 5.5 8289f30a03 feat(libs): implement the AMPR nops and the 04_00 completion writes
sceAmprCommandBufferNop/NopWithData and their measure functions record a
Nop of the requested dwords. The 04_00 forms of WaitOnAddress and of the
time counter, counter, counter pair and event queue writes record the
same commands as the current exports; their at-start flag has no effect,
as commands run in order. Argument checks follow ampr_emu.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:28:50 -05:00
ChadandClaude Opus 5.5 a583dc7116 fix(libs): reject odd AMPR counter pairs and invalid write addresses
As in ampr_emu, a counter pair starts at an even counter, and the write
commands take a non-null, 8-byte aligned address; others return EINVAL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:27:00 -05:00
ChadandClaude Opus 5.5 5018b69fba fix(libs): take the AMPR wait and counter signatures from ampr_emu
sceAmprCommandBufferWaitOnAddress took (address, reference, mask,
compare) and WaitOnCounter (counter, reference, compare), and both read
the compare value as WAIT_REG_MEM (0 always, 1 <, 2 <=, 3 ==, ...).
ampr_emu, which replaces libSceAmpr for retail titles on the console,
has (address, reference, compare, flush) and (counter, reference,
compare, flush) with the SCE compare values (0 ==, 1 > unsigned,
2 < unsigned, 3 !=), so waits were decoded as other comparisons and
could block forever or pass early.

WriteAddressFromCounterPairOnCompletion takes one counter index, not
two, and WriteKernelEventQueueOnCompletion an int id and no user data.
Counter indices above 127, compare values above 3, flush values above 1
and misaligned wait addresses return EINVAL, as in ampr_emu.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:25:45 -05:00
DotDebianandClaude Opus 5.5 f99be7e4d3 feat(ajm): implement sceAjmDecMp3ParseFrame
Read the MPEG audio frame header and report the frame size, channel
count, samples per channel, bitrate and sample rate. The signature,
the result layout and the rate tables follow shadPS4's reimplementation
of the PS4 library. Requesting the original file length throws: that
lookup is not implemented.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 01:24:18 +02:00
Pouare514 9e0152f18d fix(libkernel): replace mappings on fixed reserve over registered range 2026-10-05 01:21:44 +02:00
DiulioAires b6c97084ed fix(relinker): check byte writer bounds 2026-10-04 20:17:21 -03:00
ChadandClaude Opus 5.5 d78eea1f5f feat(shader): implement the 64-bit LDS atomics
ds_add/sub/rsub/inc/dec_u64, ds_min/max_i64/u64, ds_and/or/xor/mskor_b64,
ds_cmpst_b64/f64, ds_min/max_f64, their _rtn forms and ds_wrxchg_rtn_b64
threw in the decoder.

LDS is a 32-bit workgroup array, so the two dwords are read and written
under a lock dword placed after the guest LDS, which is cleared with a
workgroup barrier at entry. The lock is acquired and released in the same
loop iteration, so lanes of one subgroup cannot deadlock on it. Stages
whose LDS is a function variable update it directly. 64-bit GDS atomics
throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:14:24 -05:00
ChadandClaude Opus 5.5 4e888083f9 feat(shader): implement s_getreg_b32 for the MODE round mode fields
SOPK 0x12 threw in the decoder. The recompiler emits round to nearest
even, which s_setreg_imm32_b32 already requires, so reads that stay
within MODE bits 0..3 return 0. Other hardware registers and fields
throw with the register and bits read.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:11:59 -05:00
Dean 33a870d973 Merge pull request #382 from nicolasabosch/feat/audio3d-default-parameters
feat(audio3d): implement default open parameters
2026-10-05 12:11:10 +13:00
Pouare514 9e70325139 chore: drop stray AudioIn hunk 2026-10-05 01:10:56 +02:00
Dean 70bd96ea86 Merge pull request #362 from nicolasabosch/feat/ime-parameter-helpers
feat(libSceIme): implement parameter initialization and panel size queries
2026-10-05 12:10:51 +13:00
Dean c96745e912 Merge pull request #337 from DotDebian/feat/elf-phdr-match-addr
feat(libkernel): implement __elf_phdr_match_addr
2026-10-05 12:10:32 +13:00
Pouare514 e67d50cb2f fix(libs): route DateTime zone suffix through RFC3339 path, throw on unverified shapes 2026-10-05 01:10:25 +02:00
Dean 575c422b84 Merge pull request #281 from SP4C3B4R-8/fix/mingw-test-runtime
fix(build): copy MinGW runtime next to test executables
2026-10-05 12:10:13 +13:00
Dean d4c1bca1e1 Merge pull request #497 from adriadam10/feat/mimg-dlc
feat(shader): accept the dlc cache bit on MIMG
2026-10-05 12:09:53 +13:00
Dean 037b905684 Merge pull request #499 from MichonGoddijn231849/fix/vmov-sdwa-byte-destinations
fix(shader): v_mov_b32 SDWA writes byte destinations
2026-10-05 12:09:34 +13:00
ChadandClaude Opus 5.5 abbcb31e54 feat(shader): implement v_dot2_f32_f16
VOP3P 0x13 threw "VOP3P opcode is not implemented". It computes
src0.lo * src1.lo + src0.hi * src1.hi + src2 like v_dot2c_f32_f16, with
the VOP3P op_sel/op_sel_hi and neg_lo/neg_hi modifiers on the packed f16
sources, neg on the f32 accumulator and clamp. op_sel and neg_hi on the
accumulator throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:09:01 -05:00
DotDebianandClaude Opus 5.5 dd9a62f2a3 feat(agc): implement the Sh and Uc RegistersDirect size queries
sceAgcCbSetShRegistersDirectGetSize and sceAgcCbSetUcRegistersDirectGetSize
return the bytes their writers need when no two registers are adjacent: one
three-word packet per register. Adjacent registers are merged into ranges
and take less. A count whose size does not fit 32 bits throws.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 01:07:40 +02:00
ChadandClaude Opus 5.5 c227c62649 fix(shader): splat the bindless table hit into a bool vector for SPIR-V 1.3
TableResult selected a uvec4 with a scalar bool condition, which needs
SPIR-V 1.4. Targets at 1.3 failed validation (agc_shader_memory with
ANYPS5_ENABLE_SPIRV_TOOLS).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 18:05:13 -05:00
Pouare514 66f0e7b0eb fix(tools): always verify NIDs, collect all definitions, pin DB commit 2026-10-05 00:58:10 +02:00
Pouare514 dbe6b62922 fix(crashreport): capture thread stacks while suspended, report skipped threads 2026-10-05 00:57:04 +02:00
Pouare514 0b5fe3c23c fix(relinker): detect FS-prefixed previous instruction via SegmentPrefix decode 2026-10-05 00:56:11 +02:00
DotDebianandClaude Opus 5.5 9a652bf82c docs(libSceAudioOut): record the pad speaker mix level as an assumed gain
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 00:55:11 +02:00
Pouare514 630cf0cf39 fix(libc): drop duplicate quick_exit stub clashing with the real export 2026-10-05 00:53:03 +02:00
Phi1ow e4bc4a4ecb fix(pad): check the handle and keep the dead band throwing when enabled
Per review: scePadSetAngularVelocityDeadbandState now returns PAD_ERROR_INVALID_HANDLE for a
handle other than PAD_HANDLE, like the neighbouring setters. Enabling the dead band still throws,
because the angular-velocity reading path does not apply the filter (that would change input, not
UI, so it is not a silent stub); disabling it succeeds, which matches the unfiltered readings.
The test checks the disabled call, the bad handle, and no longer asserts the enabled path.
2026-10-05 00:48:45 +02:00
Dean 28e7799183 Merge pull request #564 from Phi1ow/implement-razor-cpu
feat(razor): implement the libSceRazorCpu CPU profiler stubs
2026-10-05 11:46:10 +13:00
Dean 4db07b3a77 Merge pull request #449 from MichonGoddijn231849/feat/3d-color-targets
feat(agc): render into one depth slice of a 3D color target
2026-10-05 11:45:29 +13:00
Dean 3fe90689ca Merge pull request #562 from adriadam10/feat/image-atomics-float
feat(shader): implement image_atomic_fmin, fmax and fcmpswap
2026-10-05 11:44:47 +13:00
Dean 1bc945c1e5 Merge pull request #489 from oneandonlydean/feat/audiopropagation-source-render
feat(libSceAudioPropagation): render silence for propagated sources
2026-10-05 11:44:05 +13:00
Dean d1b8565d74 Merge pull request #482 from ThisIsAkill/feat/audiopropagation-no-propagation
feat(libSceAudioPropagation): implement the no-acoustic-propagation path with recovered signatures
2026-10-05 11:43:24 +13:00
Dean a6c363a51b Merge pull request #383 from DotDebian/test/sopk-waitcnt-counters
test(shader): cover the SOPK s_waitcnt counters and count them as decoded
2026-10-05 11:42:41 +13:00
Dean dee2727f99 Merge pull request #344 from DotDebian/feat/posix-rwlock-try-timed
feat(libkernel): implement the pthread_rwlock try and timed lock functions
2026-10-05 11:42:29 +13:00
Dean b44b308c53 Merge pull request #333 from adriadam10/feat/sopk-misc
feat(shader): implement s_cmovk_i32, s_version and s_setreg_imm32_b32
2026-10-05 11:41:47 +13:00
Dean 1db03d7e93 Merge pull request #264 from adriadam10/feat/div-scale-fmas-fixup
feat(shader): implement v_div_scale/fmas/fixup_f32 and s_denorm_mode (f32 division macro)
2026-10-05 11:41:37 +13:00
Dean 19f6e33f3e Merge pull request #453 from SP4C3B4R-8/fix/absent-depth-stencil-plane
fix(libSceAgcDriver): skip depth and stencil tests whose plane is absent
2026-10-05 11:41:26 +13:00
Dean 6822b2abb6 Merge pull request #377 from MichonGoddijn231849/feat/color-target-slices
feat(agc): 4 KiB standard color targets and color views of one array slice
2026-10-05 11:40:45 +13:00
Dean b2558631b7 Merge pull request #332 from adriadam10/feat/buffer-atomics-float
feat(shader): implement the float and 64-bit inc/dec buffer atomics
2026-10-05 11:40:03 +13:00
Dean f83fcdbb0e Merge pull request #321 from adriadam10/feat/buffer-atomics
feat(shader): implement buffer_atomic_inc/dec and the 64-bit integer buffer atomics
2026-10-05 11:39:22 +13:00
Phi1ow 6571ace5bd feat(errordialog): log the error code and record the silent stub
Adds the dialog to the silent-stubs list in docs/dev/TechnicalDebt.md, since it finishes without
showing anything. sceErrorDialogOpen now logs the error code and user id from the parameter
(offsets 4 and 8), like libSceMsgDialog logs its message, so an error a title would have shown
the player stays visible instead of disappearing.
2026-10-05 00:32:13 +02:00
Adrià FranchandClaude 1f5d84a619 fix(shader): return src0 when both f32 min/max sources are NaN
Co-Authored-By: Claude <[email protected]>
2026-10-05 00:00:40 +02:00
Dean fc325936b5 Merge pull request #555 from Phi1ow/implement-http-request2-ssl-options
feat(http): implement sceHttpCreateRequest2, sceHttpsEnableOption, sceHttpsLoadCert and sceHttpGetLastErrno
2026-10-05 10:36:49 +13:00
Dean 44fdfecb3e Merge pull request #554 from Phi1ow/implement-sysmodule-internal-load-unload
feat(sysmodule): implement sceSysmoduleLoadModuleInternal and sceSysmoduleUnloadModuleInternal
2026-10-05 10:34:26 +13:00
Dean d36e1924d4 Merge pull request #534 from DotDebian/feat/agc-branch-patch-setters
feat(agc): implement the sceAgcBranchPatch setters
2026-10-05 10:34:05 +13:00
Dean 2d21b3badc Merge pull request #541 from DotDebian/fix/nanosleep-errors
fix(libkernel): report invalid nanosleep requests through errno and the sce error codes
2026-10-05 10:31:42 +13:00
Dean 1f5b5b0c57 Merge pull request #519 from Pouare514/fix/tlou-ssl
fix(libs): TLOU throwing stubs for Ssl LoadCert and GetMemoryPoolStats
2026-10-05 10:25:06 +13:00
Dean 8e5e42539a Merge pull request #561 from adriadam10/feat/image-store-pck
feat(shader): implement image_store_pck and image_store_mip_pck
2026-10-05 10:24:50 +13:00
Dean cbb358726c Merge pull request #557 from adriadam10/feat/image-load-pck
feat(shader): implement image_load_pck and image_load_mip_pck with signed variants
2026-10-05 10:24:35 +13:00
Dean 4befff984e Merge pull request #548 from adriadam10/tools/progress-aliases
fix(tools): count v_fma_mix_f32 as a decoded shader instruction
2026-10-05 10:24:20 +13:00
Dean 0ea51eba27 Merge pull request #547 from adriadam10/test/flat-global-loads
test(shader): execute flat and global loads against hardware results
2026-10-05 10:24:04 +13:00
Dean c11fbe5484 Merge pull request #544 from adriadam10/test/buffer-ops
test(shader): execute the untested buffer byte/short/dwordx2/x3 loads and stores and the 32-bit integer buffer atomics
2026-10-05 10:23:49 +13:00