Commit Graph
58 Commits
Author SHA1 Message Date
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
boykopovar 9b8c8e51d5 fix(usbstorage): restore mapping callbacks and system service aliases 2026-10-21 21:49:52 +03:00
boykopovar 4e9520a9db fix(systemservice): restore state manager and modal arguments 2026-10-21 21:49:52 +03:00
boykopovar 32b7c50240 fix(systemservice): restore process control and telemetry arguments 2026-10-21 21:49:51 +03:00
boykopovar d4f2911b74 fix(systemservice): restore collapsed launcher dispatch arguments 2026-10-21 21:49:51 +03:00
boykopovar c9c8675b1d fix(systemservice): restore assembly alias signatures 2026-10-21 21:49:50 +03:00
boykopovar 46e9270dc4 fix(systemservice): restore public query payload signatures 2026-10-21 21:49:50 +03:00
boykopovar 2386ab8e84 fix(systemservice): restore activation handles and process signatures 2026-10-21 21:49:49 +03:00
boykopovar 797fb303c5 fix(systemservice): restore error dialog layout and event arguments 2026-10-21 21:49:45 +03:00
boykopovar a1e95b92ed fix(systemservice): restore shell state setter arguments 2026-10-21 21:49:44 +03:00
boykopovar c1843d1350 fix(systemservice): restore notification and error report arguments 2026-10-21 21:49:44 +03:00
boykopovar 315c4b65a1 fix(systemservice): restore shell navigation and mount arguments 2026-10-21 21:49:43 +03:00
boykopovar d34675bb21 fix(systemservice): restore telemetry and user query signatures 2026-10-21 21:49:42 +03:00
boykopovar 8b48df0b92 fix(systemservice): restore account and display query arguments 2026-10-21 21:49:41 +03:00
boykopovar 0d911b3aec fix(systemservice): restore storage and hid query signatures 2026-10-21 21:49:41 +03:00
boykopovar c13664d573 fix(systemservice): restore shell query outputs and string buffers 2026-10-21 21:49:40 +03:00
boykopovar 0cdc168bc3 fix(systemservice): restore shell application data signatures 2026-10-21 21:49:39 +03:00
boykopovar bad5fb14a2 fix(systemservice): restore launcher lifecycle arguments 2026-10-21 21:49:39 +03:00
boykopovar 85b972ee40 fix(systemservice): restore launcher query output types 2026-10-21 21:49:38 +03:00
boykopovar 1c2ed0446c fix(systemservice): restore launcher process and status signatures 2026-10-21 21:49:38 +03:00
boykopovar ef071a8a63 fix(systemservice): restore app messaging signatures 2026-10-21 21:49:37 +03: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
Dean 0aa55ef293 Merge pull request #8430 from shanu337/fix/systemservice-tournament-stub
fix(libSceSystemService): stub sceSystemServiceOpenTournamentOccurrence
2026-10-21 19:25:03 +13:00
Dean GalvinandFederico Marras 7924d09f00 Merge origin/main into PR 8524
Co-authored-by: Federico Marras <f.marras92@studenti.unica.it>
2026-10-21 16:34:11 +13:00
Dean 31f0e34cb5 Merge pull request #8337 from KernelPanicNT/feat/systemservice-player-dialog-param
feat(libSceSystemService): fill the player dialog param as the console does
2026-10-21 16:33:32 +13:00
Dean a683688fe0 Merge pull request #8335 from ymatrix1/feat/systemservice-missing-exports
feat(libSceSystemService): export missing firmware system service interfaces
2026-10-21 16:07:01 +13:00
orezraeyandClaude Opus 5.5 4b8f05e3e1 fix(libSceSystemService): answer sceSystemServiceParamGetString's errors and padding as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 19:41:19 -03:00
Federico Marras 0bc9d64443 feat(libSceSystemService): end the running title through sceLncUtilKillApp and sceLncUtilKillAppWithReason 2026-10-20 17:06:08 +02:00
shanu337 df9b2fcdcc fix(libSceSystemService): stub sceSystemServiceOpenTournamentOccurrence 2026-10-20 18:13:31 +05:30
Yuri Olive 4721791b9c feat(libSceSystemService): export missing firmware interfaces 2026-10-20 07:10:56 -03:00
KernelPanicNT fe04a3c299 feat(libSceSystemService): fill the player dialog param as the console does 2026-10-20 09:44:57 +00:00
alosta 76bbf68f70 docs(debt): record the remaining stubs under Unknown function info
The debt entries only had the four index sections before; use Unknown
function info for the imports that fail a title to load and for the
signatures Orbital or the aerolib NID list do not give. Note that
sceSystemServiceShowDisplaySafeAreaSettings takes its (void) signature
from the sibling sceSystemServiceShowControllerSettings, not a reference.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
alosta 2dc56f37c3 feat(libs): add unimplemented PS5 system library stubs and debt docs
Add boilerplate stubs for libSceAt9Enc, libSceAudiodecCpu, libSceAudiodecCpuHevag,
libSceM4aacEnc, libSceSulpha, libSceCamera, and libSceDepth2, each exporting its
known NIDs via NotImplemented_nid_no_patch. Include debt documentation with
sysmodule IDs and (where available) orbital-derived signatures.

Add sceSystemServiceShowDisplaySafeAreaSettings as a silent success stub and
document it under Silent stubs.

AI-assisted: yes
2026-10-20 03:21:07 +01:00
Adrià ad61cafde0 Merge pull request #7821 from xdCloudy/feat/ps5-system-services-exports
feat(libs): declare system service import stubs for OS 3.20 compatibility
2026-10-20 04:12:34 +02:00
Adrià ebb478c055 Merge pull request #6939 from milescoviello/fix/systemservice-psmkit-exports
fix(libSceSystemService): declare the PsmKit local process exports
2026-10-19 16:05:00 +02:00
xdCloudy 86083c6267 feat(libs): declare PS5 system service firmware exports 2026-10-19 09:56:57 +01: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
milescovielloandClaude Opus 5.5 f69e6c0934 fix(libSceSystemService): declare the PsmKit local process exports
Forever Launcher (PPSA99030) imports sceSystemServiceAddLocalProcessForPsmKit
and sceSystemServiceKillLocalProcessForPsmKit and stops at load without
them. AnyPS5 runs one process and starts no other, so both throw without
reading their arguments. The parameters follow the title's own firmware
probes (path, argv and a 0x90-byte parameter block; the kill takes the
returned handle), and the unknown results are recorded as technical debt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 20:43:32 +00:00
milescovielloandClaude Opus 5.5 5b072bc2c4 fix(libSceSystemService): park guest threads during LoadExec's shutdown as exit does
Metal Gear Solid 4 (PPSA18194) aborts on main when its launcher starts
the game: sceSystemServiceLoadExec runs the guest shutdown, a render
thread that then calls into the stopped AGC driver gets ProcessShutdown
back from LibcAwaitExit, and the exception unwinds into title code,
which terminates the process before the new executable starts.

LibcAwaitExit parks a thread only once an exit has been requested, and
LoadExec ran the shutdown without requesting one. It now starts the
shutdown the way exit does, so such threads wait until the process is
replaced.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 10:50:36 +00:00
RickandClaude Opus 5.5 ff1de9150d fix(libSceSystemService): report the host time zone and summer time
sceSystemServiceParamGetInt answered 0 for the time zone (parameter 4)
and summer time (parameter 5), so the console looked set to UTC while
libSceRtc and libc convert local time with the host's zone. Titles add
the time zone in minutes and 60 more minutes when summer time is 1 to
UTC to get the local time (Apollo, GoldHEN's frame logger). Both now
follow the host's local time zone: summer time is whether it is in
effect, and the time zone is the current offset east of UTC less the
summer time shift while it is.

On Windows that shift is the C runtime's own summer time bias
(_get_dstbias), the one localtime_s applied, not a fixed 60 minutes.
The UCRT reads the system zone when libc.prx loads and keeps that
zone's bias after TZ is set later, so on a host whose system zone has
no summer time (the CI runner's UTC) a TZ of CET-1CEST shifted by 0 and
the time zone came out as 0. The cause and the change are screamm's,
from the review.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 21:59:57 +02:00
Adrià 6a6b171a26 Merge pull request #5699 from YossiYad/fix/loadexec-host-stderr
fix(libSceSystemService): give LoadExec's next executable the host standard error
2026-10-16 21:23:19 +02:00
MarcZX100 931d209295 docs(debt): add PPSA26344 call-site details 2026-10-16 16:59:51 +00:00
Yossi Yadgar 6473318a6b docs(debt): note which descriptors each LoadExec path passes on Linux 2026-10-15 18:17:21 +03:00