Commit Graph
2718 Commits
Author SHA1 Message Date
Dean 7bbbfe16e7 Merge pull request #1387 from Dextroid17/fix/storage-keep-cpu-range
fix(agc): decide an edge unit's CPU keep from the pages the unit overlaps
2026-10-08 22:36:48 +13:00
Dean 99b92d974f Merge pull request #1382 from gjonn/fix/agc-block-compressed-thick-volumes
fix(agc): lay out block-compressed thick volumes in blocks
2026-10-08 22:36:43 +13:00
Dean 1bd8f07ccd Merge pull request #1317 from Dextroid17/fix/name-both-self-container-magics
fix(relinker): name the second SELF container magic as a SELF input
2026-10-08 22:36:28 +13:00
Dean b25c6cce04 Merge pull request #1362 from gjonn/fix/agc-int-sel-send-data
fix(libSceAgcDriver): do not raise an interrupt for RELEASE_MEM send-data-after-write-confirm
2026-10-08 22:36:24 +13:00
Dean d026063af2 Merge pull request #1327 from gjonn/fix/kernel-ampr-event-filter
fix(libkernel): report AMPR completion events with the AMPR filter
2026-10-08 22:36:19 +13:00
Dean 6145263e38 Merge pull request #1340 from gjonn/fix/videoout-ignore-reserved-buffer-pointers
fix(libSceVideoOut): ignore the reserved buffer pointers
2026-10-08 22:36:14 +13:00
Dean f100d1d67a Merge pull request #1373 from gjonn/feat/kernel-select-net-sockets
feat(libkernel): implement select over libSceNet sockets
2026-10-08 22:36:09 +13:00
Dean 8763483811 Merge pull request #1370 from gjonn/fix/kernel-fixed-map-replaces-overlap
fix(libkernel): replace partly overlapped allocations with a fixed mapping
2026-10-08 22:35:53 +13:00
Dean 6bdd6ef6cd Merge pull request #853 from meh7an/perf/agc-proc-table-before-context-copies
perf(agc): fill the device proc table before objects copy the context
2026-10-08 22:35:49 +13:00
Dean 9e5ade70fb Merge pull request #1381 from overlordxrz-source/fix/relinker-decoder-0f-no-modrm
fix(relinker): decode 0F A8-AA without a ModRM and MOV CR/DR without a memory operand
2026-10-08 22:35:44 +13:00
Dean a753d0de45 Merge pull request #1303 from overlordxrz-source/fix/relinker-evex-grp3-immediate
fix(relinker): do not add the F6/F7 TEST immediate to EVEX instructions
2026-10-08 22:35:39 +13:00
Adrià b680d5adac Merge pull request #1198 from Sanjaysrinivas/feat/shader-conditional-exchange
feat(shader): add LDS conditional exchange
2026-10-08 11:34:31 +02:00
Adrià 6e037e9899 Merge pull request #1244 from ebarr24/codex/luna-libc-memory
fix(libc): reject overflowing large heap block sizes
2026-10-08 11:31:07 +02:00
Adrià 0802d02713 Merge pull request #1242 from hashaam1217/fix/program-header-entry-size
fix(relinker): reject a program header entry size other than 56 bytes
2026-10-08 11:28:29 +02:00
Adrià 96614df544 Merge pull request #1239 from awake-devel/fix/agc-release-host-imports
fix(agc): release host imports before the device is destroyed
2026-10-08 11:27:40 +02:00
Adrià 3e32797cca Merge pull request #1204 from CyanBook/feat/json2-value-clear
feat(libSceJson2): implement sce::Json::Value::clear
2026-10-08 11:17:57 +02:00
Adrià 3ce729fe86 Merge pull request #1182 from MichonGoddijn231849/feat/compute-scratch
feat(agc): compute dispatches with scratch memory
2026-10-08 11:15:45 +02:00
Adrià 296d68a31d Merge pull request #1238 from hashaam1217/fix/windows-overlapping-load-segments
fix(relinker): reject overlapping PT_LOAD segments before sizing the Windows image
2026-10-08 11:14:58 +02:00
Adrià 55f4714d55 Merge pull request #1178 from MichonGoddijn231849/fix/spi-ps-input-reset-values
fix(agc): SPI_PS_INPUT_ENA/ADDR start at their reset value
2026-10-08 11:11:33 +02:00
Adrià 71a0eab968 Merge pull request #1233 from hashaam1217/feat/windows-tls-register-loads
feat(relinker): load Windows guest TLS values through register addresses
2026-10-08 11:11:10 +02:00
Adrià e3d5e79eb8 Merge pull request #1126 from Fishybeing/fix/libc-utf16-conversions
fix(libc): parse and collate guest wide strings as 16-bit units
2026-10-08 11:09:24 +02:00
Adrià ac951f8d09 Merge pull request #1215 from polysius/fix/agc-versioned-nid-names
refactor(libSceAgc): name exports after the versioned SDK names their NIDs hash to
2026-10-08 11:05:42 +02:00
Sanjaysrinivas 34d4cf1796 fix(shader): preserve LDS conditional addresses
Use the shared atomic bounds check instead of wrapping at 64 KiB.
Expect zero returns and unchanged LDS for aligned out-of-range accesses,
and record the gfx1035 hardware measurements.
2026-10-08 11:04:26 +02:00
Adrià 34c20eedbb Merge pull request #1216 from polysius/fix/libc-phantom-heap-report
fix(libc): drop the LibcHeapErrorReportForGame export no title imports
2026-10-08 11:03:42 +02:00
Adrià 2d6aff7a1e Merge pull request #1156 from ahir061/fix/linux-bundled-libc-lifecycle
fix(relinker): suppress duplicate system library lifecycle
2026-10-08 11:03:20 +02:00
Adrià e82e03f11e Merge pull request #1093 from kjhq/fix/libkernel-sync-access-denied
fix(libkernel): flush only the paths the guest changed in sceKernelSync on Windows
2026-10-08 10:58:55 +02:00
Adrià 5d42b82c6d Merge pull request #1213 from krishnaraya4/fix/agc-buffer-int64-atomics-check
fix(agc): refuse 64-bit buffer atomics on devices without shaderBufferInt64Atomics
2026-10-08 10:56:35 +02:00
Adrià 175472699e Merge pull request #1185 from krishnaraya4/fix/agc-compute-subgroup-default-32
fix(agc): require 32-wide compute subgroups on devices whose default is 32
2026-10-08 10:53:33 +02:00
Adrià 0703d818d0 Merge pull request #1194 from ASVLCII/fix/relinker-input-validation-20261007
fix(relinker): reject incomplete RELA entries
2026-10-08 10:49:19 +02:00
Adrià a5df1a874d Merge pull request #1177 from MichonGoddijn231849/feat/standard-64k-color-targets
feat(agc): 64 KiB standard color targets
2026-10-08 10:44:52 +02:00
Adrià 2c8c9634c3 Merge pull request #1176 from EdouardSence/fix/linux-anonymous-writable-image
fix(libc): back the main image's writable mappings with anonymous memory on Linux
2026-10-08 10:41:35 +02:00
Adrià 2959dc5318 Merge pull request #1168 from oguzhanozfe/fix/decoder-moffs-length
fix(relinker): decode the 64-bit address of MOV moffs instructions
2026-10-08 10:39:59 +02:00
Adrià 0e173a4634 Merge pull request #1143 from AchrafReyani/feat/libc-bad-weak-ptr
feat(libc): implement std::bad_weak_ptr and _Throw_bad_weak_ptr
2026-10-08 10:30:41 +02:00
Adrià FranchandClaude 402cd1545e test(relinker): give the lifecycle fixture a non-executable stack header
glibc 2.41+ refuses to dlopen a module without PT_GNU_STACK, so the native
part of guest_lifecycle_ownership failed on current distributions.

Co-Authored-By: Claude <[email protected]>
2026-10-08 10:27:52 +02:00
kjhq bb1a4cbec4 fix(libkernel): flush only the paths the guest changed in sceKernelSync on Windows
Opening a volume needs administrator rights, so the volume flush skipped
every volume in a normal user session. The libc, libkernel, save data and
app content file functions now record each host file and directory they
change. On Windows sceKernelSync flushes the recorded paths that changed
since the previous call, plus their changed parent directories, through
handles a normal user can open. Linux still calls sync().
2026-10-08 08:27:22 +00:00
Fishybeing 5b0d28392c fix(libc): parse and collate guest wide strings as 16-bit units
wcstod, wcstof, wcstold, wcstol, wcstoll, wcstoul, wcstoull, wcscoll and wcsxfrm still forwarded to the host's wchar_t functions, which use 32-bit units on Linux. The wcsto* functions now parse the ASCII prefix of the guest string with the narrow parsers, as the C locale accepts only ASCII white space and digits. wcscoll compares like wcscmp and wcsxfrm copies, as strcoll and strxfrm do in the C locale.
2026-10-08 10:27:00 +02:00
Adrià 8388121a4f Merge pull request #1153 from ebarr24/codex/windows-gui-error-status
fix(relinker): preserve GUI startup failure status without stderr
2026-10-08 10:26:56 +02:00
Adrià 17440abe24 Merge pull request #1165 from oguzhanozfe/fix/linux-dynstr-runpath-size
fix(relinker): include the run path in the Linux DT_STRSZ
2026-10-08 10:25:19 +02:00
Adrià 61896dea23 Merge pull request #1163 from oguzhanozfe/fix/decoder-rexw-immediate-size
fix(relinker): let REX.W override 0x66 when sizing decoder immediates
2026-10-08 10:23:35 +02:00
MichonandClaude Opus 5.5 20e055c244 feat(agc): compute dispatches with scratch memory
A compute program with COMPUTE_PGM_RSRC2.SCRATCH_EN takes its per-lane private size from the AGC
shader header (scratch_size_dw_per_thread) instead of being refused. The size travels in
ShaderComputeStageInfo (cache key, request serialization version 10) to the translator, whose
scratch accesses already lower to a per-invocation Function array of that many dwords.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-08 10:22:40 +02:00
Ahir Barman Maji b12022bb4e test(relinker): fix Windows lifecycle fixture build 2026-10-08 10:22:40 +02:00
Ahir Barman Maji 9517cc33f8 fix(relinker): suppress duplicate system library lifecycle 2026-10-08 10:22:40 +02:00
Adrià e705d430d6 Merge pull request #1139 from alfalfa-star/fix/agc-inert-pixel-stage
fix(agc): run draws whose pixel stage cannot run without its program
2026-10-08 10:20:09 +02:00
Adrià f6c33f0d04 Merge pull request #1131 from orbz22/feat/kernel-vectored-io-windows
feat(kernel): implement vectored file IO on Windows
2026-10-08 10:18:29 +02:00
MichonandClaude Opus 5.5 6aa8e58de7 feat(agc): 64 KiB standard color targets
Color targets with the SW_64KB_S swizzle (CB_COLOR_ATTRIB3 tile mode 9) use the standard element
order of the 4 KiB mode extended by the texture detiler's 64 KiB bits, and are resident like the
other tiled targets. The standard blocks are now wider than tall for 2- and 8-byte elements, as the
standard swizzle and the texture layout have them (they were transposed, aliasing texels).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-08 10:16:22 +02:00
Adrià d549f76855 Merge pull request #1145 from AchrafReyani/refactor/name-resolved-unknown-stubs
refactor(libs): name the libc and Json2 stubs the NID database resolves
2026-10-08 10:16:20 +02:00
Adrià Franch ef451ab7ac test(agc): CLEAR_STATE resets SPI_PS_INPUT_ENA/ADDR to zero 2026-10-08 10:16:02 +02:00
MichonandClaude Opus 5.5 d15b3b1bd3 fix(agc): SPI_PS_INPUT_ENA/ADDR start at their reset value
A context that never wrote SPI_PS_INPUT_ENA or SPI_PS_INPUT_ADDR after CLEAR_STATE reads them as
zero, like the hardware, instead of refusing the draw for a missing register (a depth-only draw
whose pixel shader takes no inputs).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-08 10:16:02 +02:00
Adrià c081eb90dc Merge pull request #1116 from Fishybeing/fix/libc-utf16-strings
fix(libc): read guest wide strings as 16-bit units
2026-10-08 10:15:55 +02:00
Adrià 8e22498c20 Merge pull request #1134 from alfalfa-star/fix/agc-mesh-unindexed-index-vsharp
fix(agc): bind a null index buffer to non-indexed mesh draws
2026-10-08 10:15:09 +02:00