Commit Graph

1095 Commits

Author SHA1 Message Date
boykopovar 4503ec54af
Merge pull request #260 from adriadam10/fix/vop3-compare-neg
fix(shader): accept neg on VOP3-encoded float compares
2026-10-02 22:22:18 +03:00
boykopovar 2af9dda269
Merge pull request #255 from adriadam10/feat/scalar-bit-count-ops
feat(shader): implement s_bcnt0_i32_b64, s_ff0_i32_b64, s_flbit_i32(_i64), s_quadmask_b32
2026-10-02 22:21:49 +03:00
boykopovar d399b4e04c
Merge pull request #245 from RomainROCH/codex/fix-windows-directory-close
fix(libkernel): clear directory metadata on close
2026-10-02 22:21:30 +03:00
boykopovar 41cb304326
Merge pull request #244 from RomainROCH/codex/fix-save-replacement
fix(savedata): preserve existing saves on replace failure
2026-10-02 22:20:58 +03:00
boykopovar 74bdce6f04
Merge pull request #232 from MichonGoddijn231849/fix/guest-read-destination
fix(libkernel): read, pread, AIO and APR write into guest memory as host writes
2026-10-02 22:19:46 +03:00
boykopovar 7db340de2b
Merge pull request #231 from MichonGoddijn231849/fix/guest-arena-reserve
fix(libc): reserve the guest arena at its fixed range around what Windows already placed in it
2026-10-02 22:15:26 +03:00
boykopovar 1cc9874ac1
Merge pull request #227 from adriadam10/feat/png-enc
feat(libScePngEnc): implement PNG encoding
2026-10-02 22:08:05 +03:00
boykopovar 4c7a9ea2b0
Merge pull request #226 from asimplestray/feat/shader-mimg-gather-sample
feat(shader): implement MIMG sample/gather flag variants
2026-10-02 22:07:36 +03:00
boykopovar 5572f6b143
Merge pull request #399 from boykopovar/fix/f16-nle-compare-lowering
fix(shader): lower f16 NLE comparisons through swapped unordered less…
2026-10-02 22:06:31 +03:00
boykopovar 0032decb6a ci(tests): run build tests three times 2026-10-02 22:02:20 +03:00
boykopovar 329c007514
Merge pull request #402 from boykopovar/docs/build-and-manual-md
Docs/build and manual md
2026-10-02 21:59:32 +03:00
boykopovar 545b137097 docs(usage): add relinker usage md doc 2026-10-02 21:50:35 +03:00
boykopovar ee6a4a00f4 docs(build): add prject build md instruction 2026-10-02 21:40:38 +03:00
boykopovar a80d1fd09b fix(shader): lower f16 NLE comparisons through swapped unordered less-than 2026-10-02 21:17:18 +03:00
asimplestray f6e689de2f feat(shader): implement MIMG sample/gather flag variants 2026-10-02 15:59:39 +00:00
boykopovar 313de1c5a3
Merge pull request #289 from SP4C3B4R-8/feat/missing-exports
feat(libs): declare missing AudioPropagation, AudioIn, NpSessionSignaling and dialog exports
2026-10-02 16:51:14 +03:00
boykopovar a4157bbeee
Merge pull request #355 from DotDebian/feat/map-named-flexible-memory-internal
feat(libkernel): implement sceKernelMapNamedFlexibleMemoryInternal
2026-10-02 16:45:58 +03:00
boykopovar 0a2f99147f
Merge pull request #296 from Pouare514/feat/libSceJpegDec
feat(libSceJpegDec): implement JPEG decoding
2026-10-02 16:45:18 +03:00
boykopovar e00b491465
Merge pull request #286 from SP4C3B4R-8/feat/windows-mapping-hints
feat(libkernel): support mapping address hints and no-overwrite fixed mappings on Windows
2026-10-02 16:41:43 +03:00
DotDebian 74fcea27f8 feat(libkernel): implement sceKernelMapNamedFlexibleMemoryInternal
libkernel did not export sceKernelMapNamedFlexibleMemoryInternal, which
the libc bundled with SDK 9 titles imports. It now forwards to
sceKernelMapNamedFlexibleMemory: the mapping counts against the flexible
budget, gets the range name and is released by sceKernelMunmap. Older
libc builds call the public function at the same sites with the same
arguments and result handling.

The known callers pass flag 0x8000, whose meaning is unknown. It is
still rejected as an unsupported mapping flag and is recorded in
TechnicalDebt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 14:08:58 +02:00
Pouare514 8bd9670ab0 feat(libSceJpegDec): implement JPEG decoding 2026-10-02 13:34:41 +02:00
boykopovar e1654a97e5
Merge pull request #259 from adriadam10/feat/vopc-compare-gaps
feat(shader): implement the missing non-f64 VOPC compares
2026-10-02 11:14:37 +03:00
boykopovar 8ed9e7ab5e
Merge pull request #257 from adriadam10/feat/vop3-integer-gaps
feat(shader): VOP3 v_add/sub_nc_i32 (clamp), v_mul_lo_u16, 16-bit mads, v_ashrrev_i64
2026-10-02 11:13:30 +03:00
boykopovar 623c0d8dc6
Merge pull request #254 from adriadam10/fix/shader-writelane
fix(shader): select the written lane in v_writelane_b32
2026-10-02 11:13:02 +03:00
Adrià Franch 58f90eea9d feat(libScePngEnc): implement PNG encoding
scePngEncQueryMemorySize, scePngEncCreate, scePngEncEncode and
scePngEncDelete encode R8G8B8A8 and B8G8R8A8 images with a pitch into
RGB or RGBA PNGs using the shared encoder in core/Decoder/Png.
Decoder::Png::Encode takes optional compression level and filter
options so the encode parameters are honoured.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 10:00:32 +02:00
Adrià Franch f3f9b4fff7 feat(shader): implement s_bcnt0_i32_b64, s_ff0_i32_b64, s_flbit_i32(_i64), s_quadmask_b32
The decoder threw for these SOP1 opcodes. The 64-bit find-first-zero and
signed leading-bit counts reuse the existing 64-bit helpers with a flag;
s_quadmask_b32 is the 32-bit half of s_quadmask_b64. s_bcnt0 and s_quadmask
set SCC to result != 0; the find and leading-bit forms leave it.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:59:47 +02:00
Adrià Franch 24f959b48c fix(shader): select the written lane in v_writelane_b32
The WriteLane IR takes {value, lane, previous}, as the translation and the
read-lane eliminator use it, but the SPIR-V emitter compared the lane id with
the previous value and selected between the lane index and the value. Every
v_writelane therefore wrote its value to all lanes (or the lane index to the
lane whose old value happened to equal its id).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:59:37 +02:00
boykopovar 01eaae0bf9
Merge pull request #253 from adriadam10/feat/shader-cache-hint-noops
feat(shader): decode cache invalidations and performance hints as no-ops
2026-10-02 10:50:20 +03:00
boykopovar 9b3927b4ea
Merge pull request #252 from adriadam10/feat/vop3-f16-ubyte-aliases
feat(shader): VOP3 v_max/min_f16, v_cvt_f32_f16/ubyte and abs/neg on f16 binaries
2026-10-02 10:49:58 +03:00
boykopovar 29364c33d8
Merge pull request #248 from adriadam10/feat/ngs2-atrac9
feat(libSceNgs2.native): decode ATRAC9 sampler voices, parse and size ATRAC9 waveforms
2026-10-02 10:47:15 +03:00
boykopovar 4eab28c1fa
Merge pull request #241 from adriadam10/feat/audio-legacy
refactor(audio): drop duplicated stub exports from libSceAudio
2026-10-02 10:35:29 +03:00
boykopovar 194ea62ff9
Merge pull request #228 from adriadam10/feat/ajm-from-native
refactor(ajm): drop duplicated stub exports from libSceAjm and libSceAjmi
2026-10-02 10:35:05 +03:00
boykopovar a0eb90559e
Merge pull request #237 from adriadam10/fix/ajm-mp3-s16p
fix(ajm): convert planar 16-bit MP3 output from FFmpeg
2026-10-02 10:34:44 +03:00
boykopovar 409c41cc6a
Merge pull request #236 from adriadam10/feat/audiodec
feat(libSceAudiodec): decode MP3, M4AAC and ATRAC9
2026-10-02 10:34:11 +03:00
boykopovar 8cad51d19e
Merge pull request #247 from adriadam10/feat/ngs2-core
feat(libSceNgs2.native): implement system, racks, voices and PCM rendering
2026-10-02 10:33:53 +03:00
boykopovar 2d0e706fc7
Merge pull request #246 from oneandonlydean/fix/agc-keys-fill-clear-hold
fix(agc): end a key fill's hold when the fill clears the image at once
2026-10-02 10:33:28 +03:00
boykopovar 08e6a57662
Merge pull request #251 from adriadam10/ci/gpu-tests-lavapipe
ci: run the shader execution tests on lavapipe
2026-10-02 10:32:21 +03:00
boykopovar fbfe6bb13b
Merge pull request #249 from MichonGoddijn231849/fix/fast-texture-filled-keys
fix(agc): the stage-A fast path leaves a view of a pending image whose keys were filled to the full lookup
2026-10-02 10:30:29 +03:00
Adrià Franch 69bd750c46 feat(libSceNgs2.native): decode ATRAC9 sampler voices, parse and size ATRAC9 waveforms
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:24:46 +02:00
Adrià Franch 90295d3733 feat(libSceNgs2.native): implement system, racks, voices and PCM rendering
libSceNgs2 keeps its stubs; its types now come from the .native header.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:24:46 +02:00
Adrià Franch 569c2ec56c feat(libSceAudiodec): decode MP3, M4AAC and ATRAC9
All six exports are implemented: MP3 and AAC (ADTS or raw blocks) are
decoded with the bundled FFmpeg and ATRAC9 with LibAtrac9, one unit per
call, into interleaved S16 or float PCM, with the libSceAudiodec
validation and error codes. libSceAudiodec.native is built from the same
sources.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:22:59 +02:00
Adrià Franch 2036697758 fix(ajm): convert planar 16-bit MP3 output from FFmpeg
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:20:45 +02:00
Adrià Franch e3fa37f60a refactor(audio): drop duplicated stub exports from libSceAudio
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:16:34 +02:00
Adrià Franch 14e13219ee refactor(ajm): drop duplicated stub exports from libSceAjm and libSceAjmi
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 09:16:34 +02:00
boykopovar c00bc19c0d
Merge pull request #222 from YossiYad/feat/windows-tls-load-registers
feat(relinker): load the fs:[0] thread pointer into any register in Windows guest code
2026-10-02 10:06:12 +03:00
boykopovar 56aa800ef0
Merge pull request #220 from asimplestray/feat/shader-sop1-saveexec
feat(shader): implement SOP1 saveexec/wrexec family
2026-10-02 09:46:06 +03:00
boykopovar 5544b774e3
Merge pull request #292 from MichonGoddijn231849/split/offline-services
feat(libs): offline services GTA V reaches in Story Mode
2026-10-02 09:45:03 +03:00
Adrià Franch d06883aeff fix(shader): select the written lane in v_writelane_b32
The WriteLane IR takes {value, lane, previous}, as the translation and the
read-lane eliminator use it, but the SPIR-V emitter compared the lane id with
the previous value and selected between the lane index and the value. Every
v_writelane therefore wrote its value to all lanes (or the lane index to the
lane whose old value happened to equal its id).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-02 06:18:55 +02:00
asimplestray f2bfdd26f9 feat(shader): implement SOP1 saveexec/wrexec family 2026-10-02 00:22:41 +00:00
SP4C3B4R-8 d56ce19531 docs: record unknown NIDs of the newly declared exports
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 23:44:31 +02:00