Commit Graph
12196 Commits
Author SHA1 Message Date
Yuri Olive d4387fbaf7 feat(libSceAudioIn,libSceAudio3d,libSceVoice): export missing firmware interfaces 2026-10-20 07:10:28 -03:00
Yuri Olive 3553a1dfc1 feat(libSceRegMgr): export missing firmware interfaces 2026-10-20 07:10:18 -03:00
Yuri Olive c5d16f952e feat(libSceNpTus): export missing firmware interfaces 2026-10-20 07:10:05 -03:00
Federico Marras bd1cbb90de feat(libSceNgs2): report the rack and index that own a voice in sceNgs2VoiceGetOwner 2026-10-20 12:10:02 +02:00
hypermistandClaude Opus 5.5 e201141e00 feat(libc): export timezone and daylight
tzset sets timezone to the standard offset west of UTC and daylight to
whether localtime reports a known daylight saving flag, as the firmware's
tzset does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 23:05:34 +13:00
dantdmdarealguy 91331a76b9 fix(agc): copy the MinGW runtimes next to the shader and PM4 replay tools
agc_shader_replay and agc_pm4_replay are built outside the tests output
directory, so the libc.prx they import loaded libstdc++-6.dll from PATH
and failed with 0xc0000139 when another MinGW, such as Git for Windows'
mingw64/bin, came before the toolchain. Copy the toolchain's runtimes
next to both tools after linking, as for agc_driver_visual_test.
2026-10-20 05:04:39 -05:00
Federico Marras 8a7d16b001 feat(libSceNetCtl): report no error for IPv6 events in sceNetCtlGetResultV6 2026-10-20 12:03:19 +02:00
Federico Marras 2b633ab57d feat(libSceNgs2): keep caller data on racks with sceNgs2RackSetUserData and sceNgs2RackGetUserData 2026-10-20 12:03:19 +02:00
hypermistandClaude Opus 5.5 fec563d92c feat(libSceAgc): implement static buffers and qwords
sceAgcSetStaticBuffer, sceAgcGetStaticBuffer, sceAgcSetStaticQword and
sceAgcGetStaticQword read and write the six 16-byte slots at 0xfe0040000
that the driver already maps for the fetch shader table, through a new
AgcDriverStaticTable_nid_postfix accessor.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:52:52 +13:00
Maz d739a4167c test(agc): match GPU guarded-pointer expectations after flat-slot skip
Skipped nested/V# loads stay cacheable with empty poison; the chain that
still evaluates an unconditional pointer-pair load keeps two poison
records. Add the direct-root device case from Amoenus's #8272 validation.
2026-10-20 13:48:04 +04:00
KernelPanicNT 7dbe27c8da feat(libSceNgs2): map waveform blocks of linear PCM and float types 2026-10-20 09:44:59 +00:00
KernelPanicNT fe04a3c299 feat(libSceSystemService): fill the player dialog param as the console does 2026-10-20 09:44:57 +00:00
dantdmdarealguy ca55e46f98 test(agc): align the array window test's texels at run time
WinLibs GCC 15.2.0 rejects the alignas(65536) static array that agc_driver_image_array_window_past_layer_limit added in #6772 (requested alignment '65536' exceeds object file maximum 8192), which stops a Windows build with every AGC execution test. Take a 64 KiB aligned 4 MiB span of a larger static array instead, as #6452 did for the indirect arguments block, and check its alignment at start.
2026-10-20 04:39:59 -05:00
Maz e1095000cc fix(libc): keep MinGW ANSI stdio when forcing host stdout/stderr
The Windows -include of HostStandardStreams.hpp pulled in stdio.h before
libstdc++ could set __USE_MINGW_ANSI_STDIO, so long double formatting
bound to UCRT. Define the MinGW flag and include cstdio for C++.
2026-10-20 13:39:19 +04:00
Yuri Olive e0c252ddfe Merge remote-tracking branch 'origin/main' into feat/ime-filter-text 2026-10-20 06:39:09 -03:00
hypermistandClaude Opus 5.5 db25758397 fix(libs): return what the firmware returns from 29 more calls it does not implement
The NetCtl ApRp calls, the SaveData debug calls, HttpDbgEnableProfile,
HttpDbgSetPrintf, PadEnableExtensionPort and VideoRecording Init, Term
and SendCommand return 0; ImeForTestFunction returns 0x80BC00FF; the Hmd
distortion work memory align and size are 0x400 and 0x20000 and
DistortionGetCompoundEyeCorrectionCommand returns 0x81110009;
AjmInstanceCodecType returns the instance id shifted right by 14.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:38:57 +13:00
Maz fb0b5ca919 fix(libc): send perror through the guest stderr stream
After a guest dup2 onto descriptor 2, host stderr is a separate FILE, so
perror must use the guest stream like the other stdio writers.
2026-10-20 13:38:07 +04:00
mazen c03168fb47 fix(libc): keep guest stdio on a dup2 of descriptors 1 and 2
Host logging opens its own FILE on the saved descriptor. The guest FILE stays on the replaced descriptor, so guest printf, puts and fprintf still reach the pipe.
2026-10-20 13:38:07 +04:00
mazen 715fe9ca26 fix(libkernel): keep host stdout off a guest dup2 onto descriptor 1
The same guest dup2 that fills the stderr pipe also replaces descriptor 1, so host stdout was still writing into the guest pipe.
2026-10-20 13:38:07 +04:00
mazen 2d1c18410f fix(libkernel): keep host stderr off a guest dup2 onto descriptor 2
Guest dup2 onto 2 replaces the CRT descriptor fprintf(stderr) still uses, so host logs fill the 4 KiB guest pipe.
2026-10-20 13:38:06 +04:00
hypermistandClaude Opus 5.5 afbd9b882f fix(libs): return what the firmware returns from 24 utility calls it does not implement
ContentBinder, CompanionUtil, ErrorDialog OpenDetail/OpenWithReport,
ImeDialog ForTestFunction, HttpCache SystemTerm/SendStatistics,
MoveTracker GetVersion/RecordStop, BluetoothHid and SystemGesture debug
versions and Mbus Term/AcquireControlList are a single constant return
in the firmware modules; these exports now return the same value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:36:53 +13:00
hypermistandClaude Opus 5.5 4506a0b7e7 fix(libSceSystemService): return what the firmware returns from 26 calls it does not implement
The clock, GPU CU count, activation and VR play zone calls return 0;
AcquireFb0, ReleaseFb0, the party voice and voice recognition calls and
LoadExecVideoServiceWebApp return 0x80A10002; LaunchUdsApp and
RequestToChangeRenderingMode return 0x80A10005. The firmware bodies of
these exports are a single return of that value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:35:24 +13:00
Dean d14a186f46 Merge pull request #7933 from veosett/codex/windows-pipeline-journal-paths
fix(agc): support long Windows pipeline journal paths
2026-10-20 22:35:05 +13:00
primesoul-web 4c849bcadf fix(libSceIme): discard the edit when a caret move drops the filtered commit 2026-10-20 09:32:35 +00:00
Aryan SharmaandClaude Haiku 5.5 4313a703ec feat(libkernel): implement _umtx_op UMTX_OP_SEM_WAIT and UMTX_OP_SEM_WAKE
Follow FreeBSD 11's do_sem_wait and do_sem_wake (COMPAT_FREEBSD9/10) on
a struct _usem: a wait sets _has_waiters, returns at once while _count
is non-zero and otherwise sleeps on the semaphore's queue; a wake clears
_has_waiters when one waiter is left and releases one waiter.

Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-20 15:01:48 +05:30
Yuri Olive 0ef3bed1ae fix(libSceHmd2): drop exports already declared elsewhere or absent from aerolib 2026-10-20 06:27:25 -03:00
Yuri Olive e6f8dad963 merge: bring in main 2026-10-20 06:27:21 -03:00
Yuri Olive b83bae838c Merge origin/main into feat/hmd2-missing-exports 2026-10-20 06:26:43 -03:00
Yuri Olive 29e9ab36e1 fix(libSceAudioOut): drop names missing from the pinned aerolib 2026-10-20 06:25:40 -03:00
Yuri Olive 7c57018612 Merge remote-tracking branch 'origin/main' into feat/audioout-missing-exports 2026-10-20 06:25:30 -03:00
Adrià 8a7ba4beb4 Merge pull request #6911 from EagleBearerYS/fix/agc-dispatch-data-hit-live-words
fix(agc): keep a compute data hit's live words with the regions that span them
2026-10-20 11:23:58 +02:00
thuanquangandClaude Opus 5.5 e3e91de963 docs(agc): record that the host sampler replaces TRUNC_COORD's rounding
On RDNA 2, an S# with TRUNC_COORD 0 rounds the scaled coordinate to 8
fractional bits, ties to even, and one with TRUNC_COORD 1 truncates it,
for point and bilinear filters. The S# decoder ignores the bit, and
AMD's Windows driver truncates for nearest samplers and rounds for
linear ones, so a TRUNC_COORD 0 point sample just below a texel edge
reads the texel below it. The code comment said the bit moves texel
selection by half a texel at most; the debt entry records the measured
rule instead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 16:20:55 +07:00
Adrià 43cd8f4c47 Merge pull request #6856 from milescoviello/fix/dump-failing-capture
fix(agc): dump a failing shader capture's own request
2026-10-20 11:15:33 +02:00
Adrià a018148a8f Merge pull request #6817 from NumberGuan/codex/agc-shader-helper-timeout
test(agc): bound shader helper test runtime
2026-10-20 11:14:23 +02:00
Adrià da077b993b Merge pull request #6773 from XairRrR/fix/empty-screen-scissor
fix(agc): rasterize nothing for an attachment-free draw with an empty screen scissor
2026-10-20 11:14:16 +02:00
hypermistandClaude Opus 5.5 4b527adf05 feat(libc): implement vfscanf, vscanf, scanf, the wide stream printf family and vswscanf
vfscanf, vscanf and scanf scan through the same host path as fscanf;
vfwprintf, fwprintf and vwprintf format like wprintf and write to the
guest stream; vswscanf and vswscanf_s run the wide scanner on a va_list.
The names hash to the NIDs libSceLibcInternal exports.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:13:02 +13:00
Maz 53ed35b362 fix(shader): skip unreachable flat SRT loads under a known branch
Capture evaluated every flattened scalar slot even when a clean scalar
branch skipped it, so an inaccessible direct user-data root refused the
draw. Record flat-slot uses on resource control-flow blocks and evaluate
only the reachable ones; keep refusing taken and unresolved paths.

Fixes #8272.
2026-10-20 13:11:24 +04:00
Adrià 77c18cefae Merge pull request #6903 from Zinebyte/fix/guest-unused-import-dependencies
fix(relinker): infer guest dependencies from referenced imports
2026-10-20 11:08:47 +02:00
Adrià 5b2654a28b Merge pull request #6771 from XairRrR/fix/pipeline-cache-version
fix(agc): keep the Vulkan pipeline cache file with its shader cache version
2026-10-20 11:07:49 +02:00
Adrià 38e04ad920 Merge pull request #6708 from milescoviello/fix/agc-export-without-targets
fix(agc): accept any fragment export where the draw has no color target
2026-10-20 11:07:44 +02:00
nekomancer01andClaude Opus 5.5 d2b9531517 fix(libSceRudp): match the Vita3K check order and reject negative poll ids
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:07:28 +11:00
nekomancer01andClaude Opus 5.5 680ba6bf29 feat(libSceRudp): implement the poll exports
Implement sceRudpPollCreate, sceRudpPollControl, sceRudpPollWait and
sceRudpPollDestroy with the PS Vita signatures and argument checks.
sceRudpTerminate removes the context from every poll and sceRudpEnd
destroys the polls and wakes their waiters.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:07:28 +11:00
akkadbakkad89 632c0f7737 feat(libScePsml): implement the MFSR query exports from the APR-EMU fakelib
scePsmlMfsrGetDispatchMfsrPacketSizeInDwords, scePsmlMfsrGetMipmapBias,
scePsmlMfsrSelectConfig, scePsmlMfsrRequestCapture and
scePsmlMfsrIsCaptureInProgress gain real signatures and semantics reversed
from the fakelib/libScePsml.sprx bundled with PPSA20397, which imports the
first three. The context records the input dimensions at creation so the
mipmap bias can be computed.
2026-10-20 14:33:30 +05:30
David e751166d23 fix(agc): pass --exclude-libs to the linkers that accept it 2026-10-20 13:03:24 +04:00
Adrià e9a5a0c849 Merge pull request #6772 from XairRrR/fix/storage-array-window
fix(agc): serve views of arrays past maxImageArrayLayers from their viewed slices
2026-10-20 10:55:09 +02:00
Adrià dcab2fe989 Merge pull request #6326 from JJenkx/fix/queued-raw-shader-reads
fix(agc): order raw shader reads after queued code writes
2026-10-20 10:52:56 +02:00
dantdmdarealguy 251ca1c100 fix(libc): report the file number of each readdir entry on Windows
readdir and readdir_r returned d_fileno 0 for every entry on Windows,
because MinGW's _wreaddir reports no inode. FreeBSD 11.4's
_readdir_unlocked (lib/libc/gen/readdir.c) never returns an entry whose
d_ino is 0, and d_fileno is the number lstat reports as st_ino.

The Windows directory stream now reads the listing from the directory
handle with GetFileInformationByHandleEx(FileIdBothDirectoryInfo), so
each entry carries the file ID of the entry itself, symbolic links
included, without opening it. The ID is folded as stat and lstat fold
nFileIndexHigh:nFileIndexLow; the fold moves to WindowsDescriptor.hpp so
both libraries use it. rewinddir restarts the scan, telldir and seekdir
count entries as _wtelldir and _wseekdir did, and opendir fails with the
open error of the directory. A file system that lists no file ID gets a
nonzero number hashed from the name. Linux truncates the host inode to
32 bits as stat does instead of reporting 0 above 2^32.

guest_directory checks that every entry has a nonzero file number, that
the numbers of a file, a subdirectory and symbolic links to both equal
lstat's st_ino, that an entry created or removed while the directory is
open shows up after rewinddir, that a delete-pending entry no lstat can
open is still listed, and that seekdir returns the same number.
2026-10-20 03:52:39 -05:00
karthikeyaAnna c97e5e0338 fix(agc): back 1D depth comparison textures with 2D images
Back 1D and 1D-array depth comparison textures with 2D Vulkan images and views of height 1. Drivers such as AMD RADV reject 1D depth images (VK_ERROR_FORMAT_NOT_SUPPORTED). The shader recompiler maps 1D depth comparison samplers to 2D image descriptors, and pins the normalized vertical coordinate to 0.5 to sample the center of row 0 without hitting borders.
2026-10-20 14:21:58 +05:30
Zenodeon 823c6a55e1 test(agc): verify private remap coverage and remaining hints 2026-10-20 12:41:38 +04:00
Zenodeon c22ed36347 fix(agc): restore write-watch coverage for remapped pages 2026-10-20 12:41:38 +04:00