Commit Graph
3047 Commits
Author SHA1 Message Date
mrfelekandClaude Opus 5.5 5e0deae1f4 docs(libSceNgs2): note that a setup inside the voice callback clears it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BywPXoZACVi8ALV4JKvuPZ
2026-10-18 15:56:37 +02:00
Dean a62c724c38 Merge pull request #6135 from DavidSamir/fix/videoout-cursor-exports
feat(libSceVideoOut): export the hardware cursor functions as not implemented
2026-10-19 02:54:55 +13:00
Dean 6bef39cb44 Merge pull request #6122 from fdfawef324/claude/mc-agc-event-write-streamout
feat(agc): accept SAMPLE_STREAMOUTSTATS events without a destination in EVENT_WRITE
2026-10-19 02:54:48 +13:00
capmare 8489e74f89 docs(libSceFontFt): pin the shadPS4 link to a commit 2026-10-18 15:29:08 +02:00
Maz e79cf0f754 fix(libkernel): stop O_NOFOLLOW from opening a Windows directory junction
lstat reports the junction as a symbolic link, but open with O_NOFOLLOW still opened the target.
2026-10-18 17:19:02 +04:00
mugurc f347461351 feat(libSceSystemService): LoadExec on macOS hosts
sceSystemServiceLoadExec found its own executable through /proc/self/exe
and replaced the process with fexecve after close_range, none of which
macOS has, so on macOS every call except "exit" threw. On macOS:

- the running executable's path comes from _NSGetExecutablePath, resolved
  with std::filesystem::canonical, as libSceNpEntitlementAccess and
  libSceFont already do;
- the target must be an x86-64 Mach-O executable (MH_MAGIC_64,
  CPU_TYPE_X86_64, MH_EXECUTE) that the user may run;
- macOS has no fexecve, so the process is replaced by path with
  posix_spawn and POSIX_SPAWN_SETEXEC; POSIX_SPAWN_CLOEXEC_DEFAULT closes
  every descriptor but the standard streams, as close_range does on Linux;
- before the replacement the exit starts and the shutdown callbacks run
  (LibcStartExit, then LibcRunShutdown), as on Linux, so guest threads
  that call a stopped library wait instead of unwinding;
- descriptor 2 gets the host standard error back before the replacement,
  as on Linux, and guest_system_load_exec_standard_error runs on macOS.

A launch without arguments keeps the Linux execv path, which macOS has.
guest_system_exit finds its own executable the same way on macOS.
2026-10-18 16:05:07 +03:00
Dean 385ed71f2c Merge pull request #7368 from CrimsonMac/fix/device-lds-mixed-width-atomics
fix(shader): use 64-bit buffer atomics for device-memory LDS
2026-10-19 01:51:59 +13:00
lakhantheboss a605f94732 fix(savedata): return parameter error on null arguments in setParam 2026-10-18 18:06:26 +05:30
Dean Galvin bb2ab91841 Merge branch 'main' into 6445 2026-10-19 01:25:59 +13:00
milescovielloandClaude Opus 5.5 91a9e5608e docs(libkernel): note the FIONREAD count of a host datagram socket
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 12:22:56 +00:00
Dean 6efb7261b5 Merge pull request #7140 from AlexOfTheForest/fix/listen-backlog-data
fix(libkernel): report the accept queue length for a listening socket's read event
2026-10-19 01:21:56 +13:00
Dean dce6a3ed4e Merge pull request #6492 from Pipodi/fix/resource-cache-released-textures
fix(agc): drop resource-cache entries that hold released sampled textures
2026-10-19 01:21:52 +13:00
aspct3434andClaude Opus 5.5 2a45c85ac1 feat(libc): scan %p in swscanf and swscanf_s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 16:16:16 +04:00
Dean 0d078f75d3 Merge pull request #7089 from pushkarreddyy/fix/agc-driver-buffer-descriptor-reserved-bit
fix(libSceAgcDriver): normalize reserved bit 30 in guest buffer descriptors
2026-10-19 00:51:55 +13:00
Alex ColliniandClaude Sonnet 5.5 7b3098714e docs(agc): keep the title name out of the released-textures debt entry
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 13:42:27 +02:00
Alexej Szpevák b40e0bfb80 fix(libkernel): report the accept queue length for a listening socket's read event
A read event on a listening socket took its data from FIONREAD, which a listening socket refuses on Linux, so kevent and sceKernelAddReadEvent reported 0 connections while saying one was ready. FreeBSD 11.4 gives a listening socket filt_solisten, which reports so_qlen, the completed connections waiting for accept. Ready now checks SO_ACCEPTCONN and on Linux reads a TCP listener's accept backlog from TCP_INFO, where tcp_get_info puts it in tcpi_unacked; with no host call for the count (Windows, macOS, a listener that is not TCP) it reports 1, the lower bound the readiness already implies.
2026-10-18 13:35:15 +02:00
Yunus Shaikh 364fb665c1 docs(shader): note that selected image-table records merge past the image and pair limits 2026-10-18 04:33:39 -07:00
Dextroid17 192a37d026 test(agc): force the sRGB sample copy with APS5_SRGB_SHADER_DECODE=copy 2026-10-18 07:27:15 -04:00
Dextroid17 97354b7fd1 docs(debt): sRGB 8 and 8_8 textures read an RGBA8 sRGB copy 2026-10-18 07:27:15 -04:00
Lberonio 9de7cfd9f4 docs(agc): clarify flip latch clearing condition 2026-10-18 14:26:35 +03:00
Scramblrrrr 482894b0dc Merge remote-tracking branch 'origin/main' into codex/videoout-force-sdr-main 2026-10-18 08:17:45 -03:00
Dean 3e3e8b9050 Merge pull request #7374 from thuanquang/fix/mesh-last-provoking-vertex
fix(agc): draw geometry programs with the last provoking vertex
2026-10-19 00:13:37 +13:00
Dean 721f29c7e1 Merge pull request #7487 from DavidSamir/fix/shader-barycentric-tessellation-clip-moltenvk
fix(shader): keep clip distances in the blocks between the barycentric tessellation stages
2026-10-19 00:13:33 +13:00
Dean 7a2e4a4e7f Merge pull request #7476 from EagleBearerYS/fix/agc-settle-rewatch-live-images
fix(agc): keep a settled import compared while a storage image overlaps it
2026-10-19 00:13:29 +13:00
pushkarreddyy c3c400a6f8 fix(libSceAgcDriver): normalize reserved bit 30 in guest buffer descriptors 2026-10-18 16:38:59 +05:30
Kovalev Vladislav 9b42649a93 fix(agc): reconcile FMASK reads with current main 2026-10-18 16:53:33 +06:00
Lberonio 863e3f5815 docs(agc): record why the flip event latch cannot be bounded in time 2026-10-18 13:52:37 +03:00
pushkarreddyy d6300dd1b6 feat(libSceVoice): implement sceVoiceEnableChat and sceVoiceDisableChat 2026-10-18 15:58:47 +05:30
pushkarreddyy f07df07969 feat(libSceAgcDriver): support polygon primitive type 21 2026-10-18 15:56:57 +05:30
Thomas Abdelmalak ce4a1dc054 feat(libSceFont): implement handle and glyph attributes 2026-10-18 13:23:28 +03:00
cadenasynysterandClaude Opus 5.5 9f3e867eec feat(libc): implement std::__throw_bad_variant_access
Onimusha: Way of the Sword (PPSA27836 01.000.001) imports
_ZSt26__throw_bad_variant_accessv (9G6z-nF6njg) from libc, and its
bundled libc.prx does not export it, so the title fails to load with
an unresolved import.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01GtXavMkgCTCdmRpweviHcQ
2026-10-18 11:41:56 +02:00
Crimson cb28abeb89 fix(shader): fault on misaligned 64-bit device-memory LDS atomics 2026-10-18 12:31:11 +03:00
Dean 09127eada2 Merge pull request #7273 from mazen320/fix/windows-junction
fix(libkernel): report Windows directory junctions
2026-10-18 22:22:54 +13:00
Dean 1e949afe2c Merge pull request #7372 from pushkarreddyy/fix/json2-parser-null-text
fix(json2): return parse error on null text or zero size
2026-10-18 22:22:50 +13:00
David debf6ee684 docs(shader): say how the barycentric tessellation stages pass clip distances 2026-10-18 13:08:53 +04:00
Scramblrrrr f543bcaba1 docs(videoout): group the SDR override with HDR presentation 2026-10-18 06:01:26 -03:00
Maz bd0caa451b Merge upstream/main into fix/windows-junction
Keep the drive-absolute junction note and the updated setitimer debt from main.
2026-10-18 12:57:10 +04:00
Maz 7212dae71a fix(libkernel): reject Windows volume mount points in junction reads
A mounted folder uses the junction reparse tag and would otherwise be returned as a relative Volume GUID path. Only a drive path is reported, through the absolute-link text helpers.
2026-10-18 12:53:48 +04:00
T3cm0andClaude Opus 5.5 3fd2a2fe23 feat(libSceVrTracker2): answer as the console's module before initialization
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 03:50:03 -05:00
Scramblrrrr 5a35a71116 feat(videoout): allow opting out of HDR presentation 2026-10-18 05:43:09 -03:00
Jan ŠléglandClaude Opus 5.5 5c29d125e1 fix(shader): leave out the all-zero position distance when guest distances fill all eight
A vertex or tessellation evaluation program whose PA_CL_VS_OUT_CNTL
enables eight guest clip distances (CLIP_DIST_ENA 0xff, both distance
vectors) failed to compile with "guest clip distances plus the all-zero
clip position distance exceed 8 clip distances", at registration and at
the draw. A program whose guest clip and cull distances together take
eight (four of each, say) compiled, but its draw failed in the pipeline
validator with "more than eight clip and cull distances in one shader".

The all-zero position distance is now added only while the guest clip and
cull distances leave one of the eight slots free. Otherwise the program
keeps its guest distances, and a primitive with a vertex at clip position
(0,0,0,0) is not removed; the EmitSetAttribute debt entry says so.

agc_position_invariance compiles one program with seven and eight clip
distances, and with three and four clip distances beside four cull
distances: the clip distance arrays are 8, 8, 4 and 4, so the all-zero
position distance is in the first and third only.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:40:52 +02:00
Lberonio 241429c45c fix(agc): clear a queue's flip event latch once its own interrupts stop
A queue that delivered an end-of-pipe interrupt from its own release stopped
delivering the flip's event for the rest of the run, so a title that raises a
release interrupt once and then waits on the flip event never saw it again.

Count the flips a queue has taken since its last delivered release interrupt:
four consecutive flips keep the latch, a fifth clears it and raises the event,
so the queue recovers within five flips. Gran Turismo 7 (PPSA01317) pairs two
flips with one release interrupt per frame, which stays under the limit, and a
title that flips without further release interrupts recovers.

Extend agc_driver_eop_interrupts: a latched queue still delivers its own
releases, flips keep reaching the video output while their event is suppressed,
an event returns once the latch clears, and a release followed by two flips
raises none.
2026-10-18 11:13:59 +03:00
David b37ca1961f Merge remote-tracking branch 'origin/main' into feat/shader-barycentric-tessellation-last-vertex
# Conflicts:
#	core/shader/recompiler/SpirvBackend/src/BarycentricGeometryShader.cpp
2026-10-18 12:06:43 +04:00
Alex ColliniandClaude Opus 5.5 ef3cb7c9ef docs(agc): bound the released-texture sweep by the grown resource cache
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:04:28 +02:00
Dean ed01d79d3c Merge pull request #7271 from gjonn/feat/agc-format43-native-repack
feat(agc): sample texture format 43 through a lossless B10G11R11 copy
2026-10-18 20:51:59 +13:00
Yunus Shaikh 3ea0be6488 docs(agc): say a settled import under a storage image stays compared
ARCHITECTURE.md and the libSceAgcDriver debt entry now say that a
settled Windows import under 1 MiB returns to the write watch only when
no storage image overlaps it, and why.
2026-10-18 00:47:31 -07:00
Romans Pokrovskis a2d6c16bcd fix(audio): route legacy vibration PCM with per-port timing 2026-10-18 10:07:29 +03:00
Dean 1c523bdb48 Merge pull request #6437 from fma-rc/fix/libkernel-amm-range-256
fix(libkernel): report a 256 GiB AMM range starting on a 64 GiB boundary
2026-10-18 20:03:09 +13:00
Dean Galvin e886b91fab Merge branch 'main' into 6492 2026-10-18 19:07:59 +13:00
mrfelekandClaude Opus 5.5 3f33dcf951 fix(libSceNgs2): clear the voice callback on sampler and mixer setup
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BywPXoZACVi8ALV4JKvuPZ
2026-10-18 08:07:27 +02:00