Commit Graph
20967 Commits
Author SHA1 Message Date
Federico Marras 9bfec5ad68 Merge remote-tracking branch 'upstream/main' into feat/net-get-sock-info6
# Conflicts:
#	core/libs/prx/libSceNet/Export.cpp
#	docs/dev/debt/libSceNet.md
2026-10-22 06:57:58 +02:00
milescovielloandClaude Opus 5.5 9b93d38464 perf(agc): take a draw snapshot from a kept snapshot that contains it
A storage read whose exact range has no kept snapshot now looks back at
the kept storage snapshots that start at or before it. One that covers
the whole range, whose start is a storage offset alignment away and
whose sub-range is unchanged since it was taken, is bound at that
offset instead of copying the range into a new buffer.

Titles that bind a buffer from a moving base to a fixed end, such as a
ring of per-draw data, asked for a new multi-megabyte snapshot on every
draw and evicted the cache's other entries.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 04:54:27 +00:00
zaryabzip a542a13f00 feat(libSceVorbisDec): decode Ogg Vorbis with libvorbisfile 1.3.7
Add libogg 1.3.6 and libvorbis 1.3.7 as submodules, built from source as
hidden static libraries, and implement the 31 libvorbisfile exports on top
of them. Decoder state lives in a host table keyed by the guest
OggVorbis_File, guest callbacks are trampolined, and vorbis_info is
returned in its LP64 layout.
2026-10-22 09:51:31 +05:00
Dean 524398151f Merge pull request #8807 from ycbuzi/fix/agc-driver-frame-dump-wait
fix(agc-driver): make the presenter wait for a full frame dump queue
2026-10-22 17:50:26 +13:00
Yunus Shaikh 0a01fca94f Merge main into fix/libscenet-closed-stream-readable
# Conflicts:
#	core/libs/prx/libSceNet/Export.cpp
2026-10-21 21:43:39 -07:00
Ondra97 65eb017f93 chore: merge current main into ULT finalization fix 2026-10-22 06:41:48 +02:00
Ondra97 175b8128a9 fix(ult): preserve sync objects if finalization allocation fails 2026-10-22 06:41:27 +02:00
jagrat Singh a7d4d04066 feat(libSceNet): implement sceNetShowRouteWithMemory 2026-10-22 10:10:29 +05:30
Dean 17f5335562 Merge pull request #9607 from DavidSamir/test/videoout-prevblank-race
test(libSceVideoOut): find the pre-vblank event among every queued event
2026-10-22 17:39:42 +13:00
Dean 110a18ba01 Merge pull request #9429 from Get-fix/ps4/relinker-own-tls
fix(relinker): read guest TLS relocations against the module's own section symbol
2026-10-22 17:32:05 +13:00
Yunus Shaikh f7d4e920ca Merge main into fix/agc-address-copy-evict-main 2026-10-21 21:30:41 -07:00
David 05b7d20aed Merge remote-tracking branch 'origin/main' into feat/libkernel-sys-aio
# Conflicts:
#	docs/dev/debt/libkernel_sys.md
2026-10-22 05:29:56 +01:00
Dean ab347d144d Merge pull request #8534 from ycbuzi/pr/windows-reparse-non-link
fix(libkernel): answer Windows reparse points that are not links
2026-10-22 17:22:28 +13:00
Dean 746bdd8041 Merge pull request #8550 from Retr0G28/fix/fopen-directory-read-windows
fix(libc): open a directory with fopen in a read mode on Windows
2026-10-22 17:22:22 +13:00
Dean 942dec44b4 Merge pull request #8598 from Ondra97/codex/fix-net-epoll-lifetime
fix(libSceNet): retire invalidated epoll registrations
2026-10-22 17:22:18 +13:00
erickerxhalliandClaude Opus 5.5 581905d997 docs(libkernel_sys): record which SDK field sceKernelGetCompiledSdkVersion reads
The PS5 payload SDK declares the process parameters with a 32-bit PS4
SDK version at offset 0x10 and a 32-bit PS5 SDK version at 0x14, not
one 64-bit field. The debt entry now states that the export returns the
field at 0x10, as libSceHmd2 and shadPS4 read it, and that which field
the console returns is unmeasured. The test puts different values at
0x10 and 0x14 instead of one 64-bit value with its upper half set.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WYjMwvLdPR8iX8EP8tQYWa
2026-10-22 04:20:28 +00:00
jagrat Singh 08d4c3cb41 feat(libSceNet): implement sceNetShowPolicy 2026-10-22 09:49:11 +05:30
Dean c61d20f548 Merge pull request #8087 from harry-z-kang/codex/windows-seh-runtime
feat(windows): support MSYS2 GCC runtime builds
2026-10-22 17:13:47 +13:00
thuanquangandClaude 6e1f2f4284 docs(agc): say that only a whole-plane storage write retires a depth surface
Co-Authored-By: Claude <[email protected]>
2026-10-22 11:05:45 +07:00
David f4f60cf277 test(libSceVideoOut): run the VideoOut flip tests with SDL's windows driver on Windows
ANYPS5_VIDEO_OUT_TEST_DRIVER defaulted to SDL's offscreen driver on every
host. That driver has no Vulkan on Windows, so all thirteen flip tests that
open a display skipped there. Windows now defaults to the windows driver.
A machine without a Vulkan driver makes DisplayWindow report that Vulkan
lacks VK_KHR_surface, so the flip tests also skip on a DisplayWindow error
that names Vulkan, as they do on offscreen's message.
2026-10-22 05:05:28 +01:00
jagrat Singh 36bc227284 feat(libSceNpTrophy2): implement sceNpTrophy2GetRewardIcon
Implement sceNpTrophy2GetRewardIcon matching PPSA06888 and SharpProspero signatures. Zeroes size if non-null and returns SCE_NP_TROPHY2_ERROR_ICON_FILE_NOT_FOUND following KytyPS5 when icons are unavailable offline. Updates guest tests and technical debt documentation.
2026-10-22 09:35:00 +05:30
David 0225ae65a7 test(libSceVideoOut): find the pre-vblank event among every queued event
The controls check read exactly two events after subscribing to pre-vblank
and waiting for one vblank, and expected one of them to be PRE_VBLANK_START.
The VideoOut filter queues every vblank of the earlier VBLANK registration,
and the queue returns one registration's events before the next, so when a
second vblank lands between the earlier read and the wait (a real display's
cadence), both events read are VBLANK and the pre-vblank event is the third.
The check now reads up to eight events and requires a VBLANK for the vblank
registration and a PRE_VBLANK_START with its own user data among them.
2026-10-22 05:03:59 +01:00
Dean dce41a8947 Merge pull request #4442 from fma-rc/docs/issue-forms
docs: add a bug report form and issue chooser links
2026-10-22 17:03:27 +13:00
Dean 3e37e08e6a Merge pull request #8135 from mrfelek/docs/game-testing-budgets
docs(dev): name the memory budgets and the sleeping-display stop in the game testing guide
2026-10-22 17:03:22 +13:00
Dean Galvin a0cb9e4b6c Merge main into nfss10/performance_improvements 2026-10-22 16:59:12 +13:00
thuanquangandClaude 0efe28a839 fix(agc): draw line lists and strips into a multisampled target with MSAA_ENABLE clear
A line list or strip drawn with PA_SC_AA_CONFIG above 1x and
PA_SC_MODE_CNTL_0.MSAA_ENABLE clear threw, and METAL GEAR SOLID: Peace
Walker (PPSA18216) draws such lines into its 4x target. They now take
the path triangles already take in this state: the target's sample
count with every sample at the pixel center, or one sample under a
one-sample color target.

The refusal now reads the primitive the draw rasterizes
(RasterPrimitiveOf) instead of VGT_PRIMITIVE_TYPE: a point list that a
geometry program turns into triangles or lines is drawn as those, and
rasterized points and alpha-to-coverage still throw. No draw on main
rasterizes points in this state, because a vertex-path point list and
a geometry program's point output throw earlier; the point term takes
effect once they are drawable, as with #6801.

The new GPU test decodes a line list and a line strip into a 4x target
in this state with DecodeState, draws the decoded state, and requires
every pixel to be covered in all four samples or in none.

Co-Authored-By: Claude <[email protected]>
2026-10-22 10:48:35 +07:00
Dean d9c99c9ba4 Merge pull request #8204 from realshinmalphur/feat/net-ether-address-parser
feat(net): parse Ethernet address strings
2026-10-22 16:47:13 +13:00
Kang, Harry Zixuan 89548eb4af fix(tests): retry locked Windows TLS fixture cleanup 2026-10-21 20:45:15 -07:00
thuanquangandClaude 1d6c0bbb1f docs(libSceNgs2.native): point the mastering voice gain entry at the AudioOut2 entries in libSceAudioOut
Co-Authored-By: Claude <[email protected]>
2026-10-22 10:45:02 +07:00
thuanquangandClaude eceec15c61 docs(libkernel): drop the stale 32-signal limit from the pthread_sigmask entry
Co-Authored-By: Claude <[email protected]>
2026-10-22 10:44:59 +07:00
thuanquangandClaude e4de56f3ce fix(shader): clamp a domain read at an immediate address to the last control point
The dynamic path of TessellationPointer passes the control point through
inPatch(), which clamps it with UMin to inputControlPoints - 1 for hull
inputs and to outputControlPoints - 1 for domain inputs. The immediate
path clamped only hull inputs, so a domain read at an immediate address
past the last control point indexed the input array past its end. It
now clamps domain inputs to outputControlPoints - 1 too.

Co-Authored-By: Claude <[email protected]>
2026-10-22 10:39:26 +07:00
hypermist b83fe2069e Merge remote-tracking branch 'upstream/main' into fix/agc-capture-instrumentation-query-sizes
# Conflicts:
#	core/libs/prx/libSceAgc/DcbDraw/src/Stats.cpp
#	core/libs/prx/libSceAgc/Unimplemented.cpp
2026-10-22 16:30:36 +13:00
Kang, Harry Zixuan 4e9854ea2b test(relinker): report SHA-1 preservation failures precisely 2026-10-21 20:29:55 -07:00
Kang, Harry Zixuan 726edc503b feat(windows): support MSYS2 GCC runtime builds 2026-10-21 20:29:55 -07:00
hypermist dfa27f30c2 Merge remote-tracking branch 'upstream/main' into fix/agc-semaphore-memory-firmware
# Conflicts:
#	core/libs/prx/libSceAgc/Misc/src/Semaphore.cpp
#	core/libs/prx/libSceAgc/Unimplemented.cpp
#	core/libs/prx/libSceAgc/tests/Semaphore.cpp
#	docs/dev/debt/libSceAgc.md
2026-10-22 16:19:38 +13:00
hypermistandClaude Opus 5.5 400d333961 fix(libSceNpSessionSignaling): check initialization and the context before each lookup
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-22 16:18:02 +13:00
hypermist 4e6f90febe Merge remote-tracking branch 'upstream/main' into fix/np-session-signaling-lookups
# Conflicts:
#	core/libs/prx/libSceNpSessionSignaling/Export.cpp
#	docs/dev/debt/libSceNpSessionSignaling.md
2026-10-22 16:17:43 +13:00
hypermistandClaude Opus 5.5 b27a4bea5a test(libSceWebBrowserDialog): expect Close of a finished dialog to report it is not running
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-22 16:16:10 +13:00
ShinMalphur 24b7977241 Merge branch 'main' into feat/net-ether-address-parser 2026-10-22 09:44:29 +06:30
hypermist fd3ce4b0c5 Merge remote-tracking branch 'upstream/main' into feat/web-browser-dialog-cookies
# Conflicts:
#	core/libs/prx/libSceWebBrowserDialog/Export.cpp
#	docs/dev/debt/libSceWebBrowserDialog.md
2026-10-22 16:05:14 +13:00
Yunus Shaikh db33bdb16a feat(libkernel): add scePthreadMutexattrSetkind
The SCE name moves from a libkernel_sys stub to libkernel. Kinds
MutexType::ErrorCheck (1) to MutexType::Adaptive (4) are the mutex
types FreeBSD 11 libthr's pthread_mutexattr_setkind_np stores, and are
set through scePthreadMutexattrSettype, which maps the same values onto
those types. Other kinds and a null or uninitialized attribute throw, as
their console answer is not known.

guest_kernel_sys_pthread_np_kind round-trips kinds 2, 3, 4 and 1
through pthread_mutexattr_gettype, checks that kind 1 makes a second
lock return EDEADLK and kind 2 lets it succeed, and checks the throws
for kinds 0, 5 and -1 (the type unchanged) and for a destroyed or null
attribute.
2026-10-22 03:02:46 +00:00
Yunus Shaikh 0d81fe5712 feat(libkernel): add pthread_rwlockattr_settype_np
The POSIX name moves from a libkernel_sys stub to libkernel and stores the
type through its SCE twin scePthreadRwlockattrSettype, converting the
result as the other POSIX rwlock calls do.

guest_kernel_sys_pthread_np_rwlockattr checks types 0, 1 and 2 through
both names, a rwlock built from the attribute, and the throws for a
destroyed or null attribute.
2026-10-22 03:02:46 +00:00
Kraken 6cf0937ccf fix(libkernel): let variant timed joins use the canonical provider 2026-10-22 04:02:41 +01:00
hypermist 1f8d4769b4 Merge remote-tracking branch 'upstream/main' into fix/coredump-set-user-data-type
# Conflicts:
#	core/libs/prx/libkernel/System/src/Coredump.cpp
#	core/libs/tests/GuestCoredumpUserData.cpp
2026-10-22 15:54:42 +13:00
Kraken 40c7168f9c Merge remote-tracking branch 'origin/main' into feat/libkernel-pthread-timedjoin 2026-10-22 03:48:39 +01:00
hypermist 94f8047648 Merge remote-tracking branch 'upstream/main' into feat/hmd2-gaze-invalid-handle
# Conflicts:
#	core/libs/prx/libSceHmd2/Export.cpp
2026-10-22 15:44:38 +13:00
Izamaru 4ecf3330ea fix(shader): refresh descriptor sources after redundant value elimination 2026-10-21 23:32:13 -03:00
Dean 6ef5a1c4c9 Merge pull request #8974 from rooklz/fix/call-trace-fixed-base
fix(libc): count call trace offsets from the first page of a non-PIE executable
2026-10-22 15:24:57 +13:00
Dean 44661db263 Merge pull request #8973 from rooklz/fix/linux-console-base
fix(relinker): load Linux executables at 0x400000 by default
2026-10-22 15:24:38 +13:00
hypermist dbd82809cc Merge remote-tracking branch 'upstream/main' into feat/screenshot-state-overlay
# Conflicts:
#	core/libs/prx/libSceScreenShot/Export.cpp
#	docs/dev/debt/libSceScreenShot.md
2026-10-22 15:24:22 +13:00