Commit Graph
20967 Commits
Author SHA1 Message Date
Dean 86b84244fb Merge pull request #8767 from al3w0f205/test/audio3d-mixer-gain-pan-coverage
test(libSceAudio3d): cover hard left panning, zero gain and fractional attenuation
2026-10-21 20:17:15 +13:00
Dean 0a18d6cf21 Merge pull request #8766 from al3w0f205/test/player-review-dialog-coverage
test(libSceCdlgPlayerReview): cover scePlayerReviewDialogUpdateStatus transitions
2026-10-21 20:17:11 +13:00
Dean b5bcf5bca3 Merge pull request #8763 from al3w0f205/test/msgdialog-native-coverage
test(libSceMsgDialog.native): assert SceMsgDialogNativeModuleLoaded indicator
2026-10-21 20:17:08 +13:00
Dean d1fc87c200 Merge pull request #8761 from al3w0f205/test/mouse-is-open-coverage
test(libSceMouse): cover MouseIsOpen across open and close transitions
2026-10-21 20:17:03 +13:00
Dean 2e7322963f Merge pull request #8755 from xXPBSXx/fix/progress-root-not-a-source-tree
fix(tools): name a --root that is not a source tree in progress
2026-10-21 20:16:58 +13:00
Dean b974e17b81 Merge pull request #8206 from Celegans12/feat/agc-skip-refused-draws
feat(agc): skip draws whose graphics stage the recompiler refuses behind APS5_SKIP_REFUSED_DRAWS
2026-10-21 20:16:54 +13:00
akkadbakkad89 60cff59d8a feat(libSceNpCppWebApi): cover SessionManager PlayerSessionsApi and InGameCatalog ContainerApi imports 2026-10-21 07:14:31 +00:00
dantdmdarealguy a3dee63e26 test(libSceSystemService): stage the Tracy client with the loadexec_arguments libraries
With APS5_ENABLE_TRACY=ON libSceAgcDriver.prx imports libTracyClient.dll.
The test copies the libraries it is given into its own libs/ directory,
so on Windows the relinked app fails to load guest_loadexec_host.prx
with error 126. Pass the Tracy client along with the other libraries
when it is built.
2026-10-21 02:13:58 -05:00
Savvanis SpyrosandClaude Opus 5.5 863167d33d fix(agc): advance the pipeline journal format past main's
main's journal format is already 5, so this branch's bump to 5 no
longer marks the journals written before its polygon-mode field.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:13:32 +03:00
Savvanis SpyrosandClaude Opus 5.5 ffb782739b docs(debt): name no title in the polygon mode entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:13:32 +03:00
Savvanis SpyrosandClaude Opus 5.5 e61d31d287 feat(agc): draw point and line polygon modes
PA_SU_SC_MODE_CNTL with POLY_MODE set to a point or line type was refused,
and every triangle was drawn filled. The state decode now takes the polygon
type of the faces that are not culled into State::polygonMode, ignores the
types when POLY_MODE is clear or the primitives are points or lines, and
keeps refusing front and back types that differ while both faces are drawn.

Points are drawn one pixel wide (PA_SU_POINT_SIZE 0x00080008 inside
PA_SU_POINT_MINMAX), the size VK_KHR_maintenance5 gives a point whose
shader does not write PointSize, and lines one pixel wide (PA_SU_LINE_CNTL).
The device enables fillModeNonSolid and maintenance5 when they are
available. The polygon mode joins the pipeline, library and draw keys and
the pipeline journal (format 5).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:13:32 +03:00
Savvanis SpyrosandClaude Opus 5.5 1c0e23afc5 fix(agc): trim a strided overhang at the render target only for read-only buffers
A store to the trimmed tail of a written buffer would be dropped instead
of failing as an alias of the render target, so only read-only buffers,
such as per-attribute vertex fetches, are trimmed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:09:17 +03:00
Savvanis SpyrosandClaude Opus 5.5 44dfebb524 fix(libSceNpManager): take the request id and online id in sceNpSetGamePresenceOnline
shadPS4 declares sceNpSetGamePresenceOnline(req_id, online_id, presence)
and returns INVALID_ARGUMENT for request id 0 or a null online id. The
export took (user id, timeout), so a caller's arguments landed in the
wrong registers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 10:06:06 +03:00
xdCloudy 44c36055a2 docs(debt): place AGC driver note by related entries 2026-10-21 08:05:46 +01:00
xdCloudy 6b33ef1bd1 docs(debt): isolate AGC driver unknown signatures 2026-10-21 08:04:36 +01:00
xdCloudy b95a10c920 docs(libSceAgcDriver): record unknown export signatures 2026-10-21 08:04:36 +01:00
xdCloudy 9a308b904f feat(libSceAgcDriver): declare PS5 AGC driver exports 2026-10-21 08:04:36 +01:00
hypermistandClaude Opus 5.5 ad12ca0066 test(libSceBluetoothHid): expect the firmware version from sceBluetoothHidDebugGetVersion
The call now returns 0x1e as the firmware does instead of throwing, so
guest_bluetooth_hid checks that value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 20:03:59 +13:00
Codex 455529710c feat(libressl3): implement CRYPTO_memcmp 2026-10-21 15:02:41 +08:00
Nixitov 4d83fece6d feat(libkernel): declare sceKernelGetProcessAbiType
AI-assisted: yes
2026-10-21 09:01:22 +02:00
xdCloudy 947b3ba6a0 feat(libSceVideoOut): declare pending PS5 exports 2026-10-21 08:01:08 +01:00
xdCloudy b2ebae8e3a feat(libSceVideoCoreInterface): declare pending PS5 exports 2026-10-21 08:01:08 +01:00
xdCloudy 5a6128fa72 feat(libSceUlt): declare pending PS5 exports 2026-10-21 08:01:07 +01:00
xdCloudy 55c2864b32 feat(libSceUrlConfigResolver): declare pending PS5 exports 2026-10-21 08:01:07 +01:00
xdCloudy 65a6531b6e feat(libSceSaveData): declare pending PS5 exports 2026-10-21 08:01:06 +01:00
xdCloudy 11a097be24 feat(libSceNpManager): declare pending PS5 exports 2026-10-21 08:01:06 +01:00
xdCloudy 9781a70a19 feat(libSceImeDialog): declare pending PS5 exports 2026-10-21 08:01:06 +01:00
xdCloudy d826684ae7 feat(libSceNpSnsFacebookDialog): declare pending PS5 exports 2026-10-21 08:01:06 +01:00
xdCloudy 57bb18047c feat(libSceHttpCache): declare pending PS5 exports 2026-10-21 08:01:05 +01:00
xdCloudy ea4e722fa2 feat(libSceAcm): declare pending PS5 exports 2026-10-21 08:01:05 +01:00
Celegans12 4c2dc2e99f fix(agc): read 128-bit T#s that start past MAX_MIP from their resident levels
An R128 image access reads only words 0-3 of its T#; the recompiler
passes words 4-7 as zero, so the decoder saw MAX_MIP 0 and refused a
128-bit T# with BASE_LEVEL above 0 ("starts past the surface's last mip
level at levels that would move the surface's own"). Streamed textures
such as a 2048x2048 BC3 T# naming its resident levels 2..11 hit this.

Where a T# with words 4-7 zero would be refused that way, it is now read
as a 128-bit T#: MAX_MIP = LAST_LEVEL, with levels BASE..LAST described
as their own chain (size and MIN_LOD rebased), but only for 1D and 2D
T#s whose rebased levels have the same offsets, sizes and tail slots as
in the full chain. Everything else still throws as before.

AI-assisted: yes
2026-10-21 08:59:29 +02:00
enfuego27826 704e872d36 docs(libSceZlib): state the remaining gaps first
Rewrite the technical debt entry to list what is unverified on the
PS5 and what still throws, with the source each behaviour follows,
and drop the descriptions of behaviour that is no longer a gap. The
entry is now under the 1000 character limit.
2026-10-21 12:28:25 +05:30
enfuego27826 729723a60f feat(libSceZlib): throw when finalize interrupts a waiter
A thread blocked in sceZlibWaitForDone was never woken by
sceZlibFinalize, so it waited for its whole timeout or forever.
Finalization now wakes every waiter, and a waiter that sees the
service finalized throws, since no source says what the console
returns. shadPS4 leaves such a waiter blocked.
2026-10-21 12:28:25 +05:30
enfuego27826 4020c844cc feat(libSceZlib): support timed waits in sceZlibWaitForDone
sceZlibWaitForDone threw for any timeout and when no finished request
was pending. Wait on a condition variable that sceZlibInflate signals:
a null timeout blocks until a request finishes, and a timeout returns
0x81120027 (timed out) on expiry, as in shadPS4. The timeout is read
as microseconds, as SharpProspero documents for the PS5; shadPS4
reads milliseconds.
2026-10-21 12:28:25 +05:30
enfuego27826 18e4066530 feat(libSceZlib): discard unread results on finalize
sceZlibFinalize threw while a finished request's result was unread.
Discard the stored results and the finished IDs not yet returned by
sceZlibWaitForDone instead. shadPS4 also returns success here and
never reports the abandoned requests; its next initialization clears
them. An ID from before finalization reports 0x81120002 afterwards.
2026-10-21 12:28:25 +05:30
enfuego27826 a5279134a1 feat(libSceZlib): allow repeated result retrieval
sceZlibGetResult threw on a second call for the same request and on
an ID it did not hold. Return the same length and status on every
call, and 0x81120002 (not found) for an unknown ID, as shadPS4 does.
Null output pointers still throw.
2026-10-21 12:28:25 +05:30
enfuego27826 7322375923 feat(libSceZlib): accept requests while earlier results are unread
sceZlibInflate threw when an earlier request's result had not been
read. Accept the request instead: every finished request keeps its
result, and sceZlibWaitForDone returns the finished IDs in submission
order, as shadPS4's done queue does. The PS5 completion order is
unverified and recorded in the technical debt entry.
2026-10-21 12:28:25 +05:30
enfuego27826 9f32653dcf refactor(libSceZlib): track results by request ID
Keep finished requests in a map keyed by request ID and their IDs in
a completion queue instead of a single optional result. This prepares
for several outstanding requests.

sceZlibWaitForDone now pops the completion queue, so it returns each
finished request once and no longer depends on whether its result was
read, as in shadPS4's done queue. A second wait for the same request
throws as before when nothing else is pending.
2026-10-21 12:28:25 +05:30
Dean b77bd58806 Merge pull request #8226 from dantdmdarealguy/fix/libc-update-stream-read-windows
fix(libc): switch update streams to reading as FreeBSD does
2026-10-21 19:57:35 +13:00
Dean 2d4c51e494 Merge pull request #8837 from xdCloudy/split/libkernel_sys
feat(prx): add missing libkernel_sys exports
2026-10-21 19:57:31 +13:00
Dean c183ffbfb2 Merge pull request #8836 from xdCloudy/split/libSceWkFontConfig
feat(prx): add missing libSceWkFontConfig exports
2026-10-21 19:57:27 +13:00
Dean fd5a019283 Merge pull request #8835 from xdCloudy/split/libSceTEEClient
feat(prx): add missing libSceTEEClient exports
2026-10-21 19:57:22 +13:00
Dean d3823c8ead Merge pull request #8834 from xdCloudy/split/libSceSulphaDrv
feat(prx): add missing libSceSulphaDrv exports
2026-10-21 19:57:17 +13:00
hypermistandClaude Opus 5.5 f4689c27a5 docs(libSceAjm.native): drop sceAjmInstanceCodecType from the throwing declarations
It returns the codec from the instance id as the firmware does, so the
entry for declarations that only resolve imports no longer covers it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 19:56:43 +13:00
Dean 2ad5bb26ca Merge pull request #8355 from akkadbakkad89/feat/npgameintent-applauncher
feat(libSceNpGameIntent): implement the AppLauncher lifecycle a title calls at boot
2026-10-21 19:55:48 +13:00
hypermistandClaude Opus 5.5 fde789cca8 test(libkernel): assert sceCoredumpSetUserDataType only for type 0
Which types the console kernel accepts is not measured, so the test no
longer asserts success for -1 and INT_MAX.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 19:52:47 +13:00
Dean 5b5d2a8636 Merge pull request #8626 from xXPBSXx/carry/6226-relinker-stem
fix(libc): find a relinked module by stem when the exact name misses (carries #6226)
2026-10-21 19:52:46 +13:00
Dean 2d5b705331 Merge pull request #8734 from orezraey/fix/systemservice-param-string-measured-ps5
fix(libSceSystemService): answer sceSystemServiceParamGetString's errors and padding as measured on a PS5
2026-10-21 19:52:41 +13:00
hypermistandClaude Opus 5.5 1be7853e0a test(libSceScreenShot): give each test process its own file names
Both CTest entries run the same executable, and std::rand() starts from
the same seed in each, so parallel runs shared and removed each other's
files. The names now carry the mode and a random_device value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 19:51:30 +13:00
xXPBSXxandClaude Sonnet 5.5 ee1bd9fbcb docs(debt): say that snwprintf_s does not invoke the exported constraint handler
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 08:49:56 +02:00