Commit Graph
108 Commits
Author SHA1 Message Date
Dean 8f5edf8757 Merge pull request #9586 from EagleBearerYS/feat/libscesystemservice-absent-features
feat(libSceSystemService): answer queries for streaming, VR, shell and device features AnyPS5 does not have
2026-11-02 20:57:58 +13:00
rooklz ce6d0b6469 fix(libSceSystemService): keep the Remote Play and Share Play CPU budget exports unimplemented
AnyPS5 has no Remote Play or Share Play CPU budget service, and the
console's acquire and release results, a repeated acquire and a release
without an acquire are unmeasured, so the six exports throw on every call
as they do on main instead of reporting a made-up hold.

The guest test now asserts that all six calls throw, and the debt entry
moves to Unknown function info with the unresolved contract.
2026-11-01 03:31:19 +00:00
MarcZX10 5b7ba8484a Merge remote-tracking branch 'upstream/main' into feat/host-free-space
# Conflicts:
#	core/libs/prx/libSceSaveData.native/Export.cpp
2026-10-31 00:26:47 +00:00
Yunus Shaikh 2fd4c7024f docs(libSceSystemService): say the USB mount answer stays false under libSceUsbStorage passthrough
The absent-features entry said AnyPS5 exposes no USB mass storage and
that every libSceUsbStorage device call throws. Since #11046 and #11051,
libSceUsbStorage lists host volumes as devices when
APS5_USB_STORAGE_PASSTHROUGH is set (unset, the list is empty), while
sceShellCoreUtilIsUsbMassStorageMounted still answers false for every
index. The entry now says so, as a known gap: no source names what the
call returns for a passthrough device. No behaviour changes.
2026-10-30 19:14:20 +00:00
MarcZX10 13934153d9 docs(debt): record the unknown free-size values of the shell-core exports 2026-10-30 18:48:57 +00:00
Yunus Shaikhandjotitadev 2e5b93fd5f Merge main into feat/libscesystemservice-absent-features
main's #10706 requires each export to be declared once, in its
library's public header. GuestSystemServiceStatus.cpp now includes
prx/libSceSystemService/include/SystemService.hpp instead of declaring
25 of its exports in its own extern "C" lines, as jotitadev suggested
in review.

Co-authored-by: jotitadev <[email protected]>
2026-10-30 18:09:51 +00:00
BunnyFlandClaude Opus 5.5 4f03e76620 Merge the corrected codec activation branch (#13322) into the PS-button branch
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 16:01:39 +01:00
AdriàandClaude Sonnet 5.5 2ad46833a7 docs(libSceSystemService): drop the activation entry the codec answers make false
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 15:19:05 +01:00
BunnyFlandClaude Opus 5.5 126a40816f feat(libSceSystemService): answer the codec activation calls as firmware 13.42 does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:18:59 +01:00
BunnyFlandClaude Opus 5.5 f87932d303 feat(libSceSystemService): implement sceSystemServiceGetPSButtonEvent
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 13:45:37 +01:00
BunnyFlandClaude Opus 5.5 5a161a06b1 feat(libSceSystemService): answer the codec activation calls as firmware 13.42 does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 13:39:14 +01:00
Adrià aaccd0ba39 Merge pull request #10033 from xXPBSXx/docs/debt-systemservice-paramgetint-title
docs(debt): note how a title uses the value of sceSystemServiceParamGetInt
2026-10-29 09:36:17 +01:00
dantdmdarealguy 9c13197689 docs(debt): narrow libSceSystemService's collapsed-dispatch note to the throwing calls
The LncUtil collapsed dispatch entry, written by d4f2911b74 and
50c8103af2 (#9137), said its protected service implementations remain
unchanged. Of the functions whose signatures d4f2911b74 restored,
sceSystemServiceGetAppId answers for the running title since
7c83407e11 (#8354) and sceLncUtilGetAppId since 695041093b (#10801).
Only the status, GPU-crash, dialog-activation, shared-memory,
continue and VSH-ready calls still throw.
2026-10-28 20:55:04 -05:00
Adrià 0713ccea94 Merge pull request #11921 from milescoviello/docs/systemservice-splash-player-dialog
docs(libSceSystemService): list the splash, player dialog and notice-flag calls as silent stubs
2026-10-28 10:37:42 +01:00
simnJS b419a4a808 feat(libSceSystemService): call libSceUsbStorage from the USB storage aliases
The sceSystemServiceUsbStorage* exports jump straight into the USB storage
module, so call the matching libSceUsbStorage export instead of throwing.
RequestMapWSB keeps its marker while its two declarations disagree on the
fourth argument and the output type.
2026-10-27 14:18:59 +01:00
milescovielloandClaude Opus 5.5 8fe03aa952 docs(libSceSystemService): record the null-parameter checks in the splash and notice-flag entries
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:47:09 +00:00
milescovielloandClaude Opus 5.5 1c2667ff63 docs(libSceSystemService): list the splash, player dialog and notice-flag calls as silent stubs
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 12:32:51 +00:00
Adrià 35feb94580 Merge pull request #10801 from EagleBearerYS/feat/systemservice-running-app-identity
feat(libSceSystemService): answer the rest of the running title's identity
2026-10-27 06:07:36 +01:00
Adrià a71c28c352 Merge pull request #11123 from orezraey/docs/libscesystemservice-bgm-measured-ps5
docs(libSceSystemService): record sceSystemServiceIsBgmPlaying as measured on a PS5
2026-10-27 04:51:29 +01:00
StoneDC 2bab8f29da docs(libSceSystemService): clarify activation technical debt 2026-10-26 22:22:34 +08:00
Yunus Shaikh 1928c54b4f fix(libSceSystemService): return firmware 13.42's results for the arguments it checks before a request
BunnyFl ran firmware 13.42's libSceSystemService.sprx in an emulator and
recorded the checks these calls make before they pass a request on. A
null title ID or one whose length isn't 9 makes sceSystemServiceGetAppId
and sceLncUtilGetAppId return -1 and sceLncUtilIsAppLaunched return
0x80940005. A null output, list, count or user returns 0x80940005 from
the LncUtil and SystemService calls and 0x80e30003 from
sceShellCoreUtilGetUserFocus, before the app ID is looked at, and a null
sceLncUtilLoadExec path returns 0x80940005.

What the module passes on as a request still throws: another
9-character title ID, another app ID, a list capacity of 0 and an empty
sceLncUtilLoadExec path.
2026-10-25 14:15:27 -07:00
orezraeyandClaude Opus 5.5 1a4c3bb09e docs(libSceSystemService): record sceSystemServiceIsBgmPlaying as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:47:19 -03:00
Yunus Shaikh 7a4b965d6f feat(libSceSystemService): forward sceLncUtilLoadExec to sceSystemServiceLoadExec
sceLncUtilLoadExec takes the same path and null-terminated argument
list, which the SystemService call passes on to it on the console. It
returns sceSystemServiceLoadExec's result: the same parameter errors,
the same refusals for paths it cannot start, and "exit" ends the title
in the same way.
2026-10-25 00:15:25 +00:00
Yunus Shaikh c2eb0a2404 feat(libSceSystemService): report the running title as not suspended
sceLncUtilIsAppSuspended, sceSystemServiceIsAppSuspended and
sceLncUtilIsSpeculativeLaunch write false for the running title's app
ID. The title that calls them is running and has no shell to suspend
it. It was started from the host rather than by sceLncUtilLaunchApp,
so no LncLaunchParam asked for a speculative launch. Another app ID
and a null output still throw.
2026-10-25 00:15:25 +00:00
Yunus Shaikh f5afb8755c feat(libSceSystemService): report the running title's user
sceLncUtilGetAppLaunchedUser, sceSystemServiceGetAppLaunchedUser and
sceShellCoreUtilGetUserFocus write the initial user for the running
title's app ID. That is the user sceUserServiceGetInitialUser and
sceUserServiceGetForegroundUser report. Another app ID and a null user
pointer still throw.
2026-10-25 00:15:25 +00:00
Yunus Shaikh 695041093b feat(libSceSystemService): answer the running title's app ID lookups
sceLncUtilGetAppId and sceLncUtilIsAppLaunched accept the running
title's ID as sceSystemServiceGetAppId does, and
sceLncUtilGetAppIdOfRunningBigApp returns what
sceSystemServiceGetAppIdOfRunningBigApp returns. Both big-app lists
write the running title's app ID as their only entry, because AnyPS5
runs one title. Another title ID, a null pointer and a list capacity of
0 still throw.
2026-10-25 00:15:25 +00:00
Adrià a5f13b3fd4 Merge pull request #8354 from MarrasFederico/feat/system-service-app-title-id
feat(libSceSystemService): convert between the running title's app id and title id
2026-10-24 13:53:37 +02:00
xXPBSXxandClaude Sonnet 5.5 087fb758f5 docs(debt): note how a title uses the value of sceSystemServiceParamGetInt
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:05:57 +02:00
Yunus Shaikh d64a74d8e9 fix(libSceSystemService): answer the measured null-output and unblock cases
BunnyFl measured these cases against firmware 13.42's libSceSystemService
in the PR thread (behaviour only), so they no longer throw:

- sceShellCoreUtilGetRemotePlayStatus, GetSharePlayStatus and
  GetGameLiveStreamingStatus return 0x80e30003 for a null output and
  write nothing.
- sceSystemServiceGetRemoteplayStatus has no null check of its own: it
  forwards, so a null output returns the ShellCoreUtil error, not
  SYSTEM_SERVICE_ERROR_PARAMETER.
- sceLncUtilIsPs2Emu returns 0x80940005 for a null output.
- sceLncUtilUnblockAppSuspend with no block left returns
  SCE_KERNEL_ERROR_EBUSY and changes nothing, before reading the reason.

A null reason in sceLncUtilBlockAppSuspend, a null reason in an unblock
while a block is held, sceShellCoreUtilGetSocialScreenStatus with a null
output and the service-answered eye-to-eye cases still throw, and the
debt entries say why.
2026-10-23 03:43:52 -07:00
frankea 56dfc1327e fix(libSceSystemService): answer the registry-backed integer parameters with values measured on a PS5 2026-10-23 04:36:58 -04:00
Dean 6a6a35fdf5 Merge pull request #7965 from frankea/ps5-measured-1340
fix(libs): values measured on a PS5 (firmware 13.40) from inside retail games
2026-10-23 06:18:10 +13:00
Federico Marras 06f25300f9 Merge commit '3ca07d086d5f44fbe3c00370e7f03953ab46ca1b' into feat/system-service-app-title-id 2026-10-22 15:43:43 +02:00
Yunus Shaikh 239de166eb Merge main into feat/libscesystemservice-absent-features
# Conflicts:
#	core/libs/prx/libSceSystemService/PendingExports.cpp
2026-10-22 00:01:31 -07:00
Yossi Yadgar f0d0bcafb5 docs(debt): note why no background music is reported 2026-10-22 08:25:55 +03:00
Federico Marras e0e231ef3f Merge remote-tracking branch 'upstream/main' into feat/system-service-app-title-id
# Conflicts:
#	core/libs/prx/libSceSystemService/PendingExports.cpp
#	docs/dev/debt/libSceSystemService.md
2026-10-22 07:08:48 +02:00
Yunus Shaikh f51064dbee fix(libSceSystemService): leave unmeasured suspend blocks and other users unimplemented
A null reason, an unblock with no block left and an eye-to-eye query for a user other than the logged-in one now go through NotImplemented_nid_no_patch instead of throwing invented errors, since the console's answers to them are not measured.
2026-10-21 20:53:37 -07:00
Yunus Shaikh 4a815a8bf5 feat(libSceSystemService): report no disc drive, USB storage, app move or PS2 emulator
AnyPS5 runs the title from its folder as /app0 and models none of these:
libSceDiscId and sceKernelHwGetBdDriveInfo throw, every libSceUsbStorage
device call throws, sceShellCoreUtilDeclareBeginOfExternalStorageAppMove
throws, and sceSystemServiceAddLocalProcessForPs2Emu throws, so the
running process is always the title's own PS5 executable.

sceSystemStateMgrIsBdDriveReady, sceShellCoreUtilIsUsbMassStorageMounted
and sceShellCoreUtilIsExternalStorageAppMoveInProgress return false, and
sceLncUtilIsPs2Emu writes false. A null output to sceLncUtilIsPs2Emu
throws, since no sceLncUtil function in the tree answers one.
2026-10-22 02:38:17 +00:00
Yunus Shaikh 81fd4e5dda feat(libSceSystemService): report the absent shell UI and PS VR
AnyPS5 has no shell UI: sceSystemServiceGetStatus never reports a system
UI overlay or background execution, and the host has no auto power-off
timer. The shell UI therefore never takes the foreground, overlays the
impose screen, runs a screen saver or shuts down, and those queries
return false.

libSceHmd detects no headset, so there is no PS VR social screen and the
logged-in user's eye-to-eye distance was never adjusted. Another user ID
throws, since the console's error for it is not measured.

The sceSystemService twins forward to their sceShellCoreUtil and
sceLncUtil targets. sceSystemServiceIsEyeToEyeDistanceAdjusted returns
SYSTEM_SERVICE_ERROR_PARAMETER for a null output before forwarding, as
its neighbours do, and the sceShellCoreUtil forms throw for one.
2026-10-22 02:38:17 +00:00
Yunus Shaikh a2e9ffd89c feat(libSceSystemService): report no Remote Play, Share Play or broadcast
The status queries answer from what the tree already reports for these
services: libSceRemoteplay's connection status is DISCONNECT,
libSceSharePlay has neither a host nor a visitor, and
libSceGameLiveStreaming's status has isOnAir false. The ShellCore
setters that would change these answers throw.

sceSystemServiceGetRemoteplayStatus and
sceSystemServiceIsGameLiveStreamingOnAir forward to their
sceShellCoreUtil twins. sceSystemServiceGetRemoteplayStatus returns
SYSTEM_SERVICE_ERROR_PARAMETER for a null output before forwarding, as
sceSystemServiceGetNoticeScreenSkipFlag does. No sceShellCoreUtil
function in the tree answers a null output, so the sceShellCoreUtil
forms throw for one.
2026-10-22 02:38:17 +00:00
Yunus Shaikh 2cfa852a40 feat(libSceSystemService): answer suspend blocks and notifications
AnyPS5 never suspends the running title: sceSystemServiceGetStatus never
reports background execution and sceSystemServiceReceiveEvent has no
event to deliver. Enabling or disabling the suspend notification, and
blocking or unblocking a suspend, therefore change nothing and return
success. The sceSystemService notification calls forward to their
sceLncUtil twins.

A null reason and an unblock with no block left throw, since the
console's answers to them are not measured.

The new guest_system_service_status tests check each answer.
2026-10-22 01:37:59 +00:00
frankea 41d551eb60 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into ps5-measured-1340
# Conflicts:
#	core/libs/prx/libSceSystemService/Export.cpp
2026-10-21 17:37:31 -04:00
boykopovar 2f678e9046 docs: record retained activation and pad no-op behavior 2026-10-21 21:56:06 +03:00
boykopovar b35e344585 fix(systemservice): restore browser launch signature and validation 2026-10-21 21:54:54 +03:00
boykopovar 991efec086 fix(systemservice): restore tournament and daemon argument slots 2026-10-21 21:53:08 +03:00
boykopovar b167045830 fix(systemservice): recover activation handles and device argument types 2026-10-21 21:49:56 +03:00
boykopovar 50c8103af2 fix(systemservice): recover launch and process status structures 2026-10-21 21:49:56 +03:00
boykopovar 67ff7609c2 fix(systemservice): define application message payload layout 2026-10-21 21:49:55 +03:00
boykopovar 1db52e3e40 fix(systemservice): reject unsupported integer parameters 2026-10-21 21:49:54 +03:00
boykopovar 9e94b0cb71 fix(systemservice): define launch and microphone status layouts 2026-10-21 21:49:54 +03:00
boykopovar 28fdabd59c fix(systemservice): restore float progress returns and clock arguments 2026-10-21 21:49:53 +03:00