Commit Graph
7963 Commits
Author SHA1 Message Date
Yunus Shaikh 2cbcc0e2e6 docs(libSceAgcDriver): list the Export.cpp declarations without a prototype 2026-10-25 07:44:54 +00:00
Yunus Shaikh 3e639b6f77 docs(libSceBemp2sys): drop the repeated pending-exports entry 2026-10-25 07:44:02 +00:00
Yunus Shaikh 6968c3ac02 docs(libSceAvPlayerStreaming): drop the repeated pending-exports entry 2026-10-25 07:44:02 +00:00
Yunus Shaikh 81cecf5eb4 docs(libSceHttp): describe the stored cookie-enabled option 2026-10-25 07:44:02 +00:00
hypermist 83043eede6 test(libSceVrTracker2): stop asserting that system modes throw
Remove the system-mode throw cases in GuestVrTracker2.cpp that tested
modes 1000 and 1001 throwing. Allocate a fresh temporary directory
atomically in EnterApplicationRoot without clobbering existing paths.
Update the debt entry without citing a source.

Assisted-by: Antigravity:gemini-3.8-flash-medium
2026-10-25 20:40:44 +13:00
Adrià 811ffe10af Merge pull request #9514 from EagleBearerYS/fix/agc-address-copy-evict-main
fix(agc): an address-based build evicts idle imports instead of copying past the cap
2026-10-25 08:40:37 +01:00
Yunus Shaikh b19382a492 feat(libSceNetCtl): answer the IpcInt calls as their public twins and add the ForLib callback table
The ten IpcInt getters and callback forms forward to sceNetCtlGetState,
GetStateV6, GetResult, GetResultV6, GetInfo, GetInfoV6 and the IPv4 and
IPv6 callback registration, whose recovered argument registers they
share. The three ForLib calls keep a fourth table of eight callbacks with
the register, unregister and dispatch the NpToolkit forms use. Both are
recorded as unmeasured in the debt file.
2026-10-25 07:39:35 +00:00
Yunus Shaikh 68820535b9 feat(libSceFont): render generated glyphs with sceFontGlyphRenderImage
Draw a glyph from sceFontGenerateCharGlyph through the sceFontRenderCharGlyphImage rasterizer at the glyph's own scale, with the renderer argument checked as sceFontBindRenderer checks it and the style frame argument, else the surface's frame, applied as surface frames are. The horizontal and vertical forms place the image like their character forms. The three functions build on RenderCodeWithStyle and ApplyStyleFrame from the previous commit and move out of Unimplemented.cpp.
2026-10-25 07:27:44 +00:00
ChronyyxandClaude Opus 5.5 07798774b6 fix(relinker): frame red-zone leaves whose only push is rbp
The check that refuses leaves without pushes that push or pop also refused
`push rbp; mov rbp, rsp` leaves without other pushes, whose `pop rbp` it
counted, since rbp is not in their list of pushes. A unit test and an
execution test now cover such a leaf with a 4-byte prologue and a 2-byte
exit. The debt entry also notes that the check refuses shrink-wrapped leaves
whose later pushes and pops balance.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 03:23:34 -04:00
Himansh Raj 1c9d259abf Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 12:50:25 +05:30
Dean 49d9c1c751 Merge pull request #8080 from Nixitov/feat/webkit-pthread-setname
feat(libScePosixForWebKit): export pthread_setname_np
2026-10-25 20:11:29 +13:00
Dean 2f11a89ecb Merge pull request #10795 from slopgobblercobbler/feat/agc-nop-data-write-tests
feat(libSceAgcDriver): cover payload packing in sceAgcDriverNopDataWritePacket
2026-10-25 20:11:17 +13:00
Himansh Raj 04d62961da Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 12:40:25 +05:30
thuanquangandClaude 060e516d0e feat(libSceImeBackend): declare 22 sceImeBackend exports
libSceImeBackend only re-exported libSceIme, so a title that imports
the backend's own functions did not load. Declare the 22 that such a
title imports, without parameters: their signatures and behaviour are
not established, so each call throws through NotImplemented_nid_no_patch.

Co-Authored-By: Claude <[email protected]>
2026-10-25 14:09:10 +07:00
Dean 8b426927d7 Merge pull request #10723 from kyon-eth/feat/sulpha-default-config
feat(libSceSulphaDrv): implement default configuration
2026-10-25 20:01:39 +13:00
Himansh Raj a01a4354db Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 12:31:32 +05:30
hypermistandClaude Opus 5.5 0c799de538 test(libSceFont): stop pinning the unimplemented font-set outline profile path
The font-set record path still throws in production, but the test no
longer asserts it: tests cover implemented behaviour only. The null-output
check on a font-set handle stays. The outline profile debt entry states
the gap without naming a source.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:57:38 +13:00
JJenkxandClaude Opus 5.5 185098a39d fix(libc): compute log1p with FreeBSD msun's algorithm, as titles' libc.prx does
log1p returned the host's log1p, whose last bit differs from the titles'
copy on Windows on 24,477,433 of 320 million random arguments. The titles'
copy is FreeBSD msun's s_log1p.c, and it sets EDOM at msun's NaN return,
for arguments below -1, -inf and negative NaNs, but not for log1p(-1).
log1p now computes that algorithm and sets EDOM there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 02:56:59 -04:00
Ondra97 5839f54a7c Merge remote-tracking branch 'origin/main' into codex/pr9420-review-20261025 2026-10-25 07:53:25 +01:00
hypermist 938458062e Merge branch 'feat/font-get-font-style-information' into feat/font-get-glyphs-outline-profile
# Conflicts:
#	docs/dev/debt/libSceFont.md
2026-10-25 19:50:28 +13:00
hypermistandClaude Opus 5.5 c46dfd259d docs(libSceFont): state the font style information gap without naming a source
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:50:06 +13:00
hypermist 19f50102fa Merge branch 'feat/font-get-font-metrics' into feat/font-get-font-style-information
# Conflicts:
#	docs/dev/debt/libSceFont.md
2026-10-25 19:50:06 +13:00
hypermistandClaude Opus 5.5 a2df041469 docs(libSceFont): state the font metrics gap without naming a source
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:49:25 +13:00
ChronyyxandClaude Opus 5.5 c697fb0ba9 feat(relinker): frame red-zone leaves whose prologue or exit is shorter than a jump
--frame-red-zone replaces a leaf's prologue and each exit with a 5-byte jump
to a stub, so it skipped leaves whose pushes or pop-and-ret exit were shorter
than that, and leaves with neither pushes nor an allocation. A short prologue
now takes in the straight-line instructions after it and a short exit those
before it, re-encoded in the stub with the moved displacement. Widening stops
at branches, rets, RIP-relative instructions, pushes and pops, and the leaf is
skipped when a branch targets the instructions taken in or the first
instruction of a widened prologue, or when a leaf without pushes pushes or
pops.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 02:47:12 -04:00
Dean af49a07885 Merge pull request #10691 from MarcZX10/marc/sweep-np-signaling
feat(libSceNpSignaling): implement sceNpSignalingDeactivateConnection
2026-10-25 19:30:19 +13:00
Dean 9a2020c220 Merge pull request #10425 from Retr0G28/fix/sendfile-nonregular-einval
fix(libkernel): fail sendfile with EINVAL for a file that is not a regular file
2026-10-25 19:29:21 +13:00
orezraeyandClaude Opus 5.5 9319aeec2d Merge main into docs/libkernel-select-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 03:25:47 -03:00
Bipin 981e36205c feat(core): implement the Opus encoder libraries
- libSceOpusCeltEnc and libSceOpusSilkEnc forward Initialize, Terminate,
  GetSize, Create, CreateEx, Encode, EncodeFloat and Destroy to bundled
  libopus with OPUS_APPLICATION_RESTRICTED_CELT and OPUS_APPLICATION_RESTRICTED_SILK
- state pointers are host registry keys; nothing is written into guest memory,
  Create without CreateEx binds an internal context id, and a live CreateEx
  encoder makes Terminate throw
- validation mirrors the recovered libSceOpusCeltDec order: channels before
  sample rate before application, offsets 0/1/2/3/6/7/8/9/13
- Ctl and the priority, timeout, batch and cancel exports still throw and are
  documented in libSceOpusCeltEnc.md and libSceOpusSilkEnc.md
- new guest_opus_celt_enc and guest_opus_silk_enc tests require bit-exact
  packets against a raw libopus encoder with the same restricted application,
  celt-mode or silk-only TOC values, an alternating sine decoded through
  opus_decode, and the negative error paths
2026-10-25 11:47:55 +05:30
Dean 61fc572cee Merge pull request #10434 from Retr0G28/fix/linkat-directory-descriptor
fix(libkernel_sys): resolve linkat paths relative to a directory descriptor
2026-10-25 19:16:10 +13:00
3d20b5e4c2 fix(libSceNet): count only datagram bytes in sceNetIoctl FIONREAD on macOS
On macOS, FIONREAD on a datagram socket counts more than the queued
payload, so after one 5-byte datagram sceNetIoctl reported 37.
libkernel's sockets already ask a macOS datagram socket for SO_NREAD,
the size of the next datagram, instead; do the same for sceNetSocket
sockets that are not streams.

Co-authored-by: Himansh Raj <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 03:15:43 -03:00
Dean 74986c28bd Merge pull request #10559 from xTRACKGOD/fix/trace-digest-interval-identity
fix(tools): detect host and title changes in interval digests
2026-10-25 19:15:31 +13:00
jacob6769 e56245a42c Merge remote-tracking branch 'origin/main' into fix/libressl-digest-version-paths
# Conflicts:
#	core/libs/prx/libSceLibreSsl3/src/Digest.cpp
#	core/libs/tests/GuestLibreSslDigest.cpp
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 15:13:36 +09:00
atharvjairath e5a5b9382e feat(vdecsw): implement generic single-picture metadata queries 2026-10-25 11:41:09 +05:30
Dean e599efd64d Merge pull request #10572 from ZSWolt/fix/libscenet-usleep-negative-log
fix(libSceNet): print the console's line for a negative sceNetUsleep
2026-10-25 19:06:10 +13:00
Dean fa33658dcd Merge pull request #10762 from AlexFigas/feat/np-close-event-flag
feat(libSceNpCommon): forward sceNpCloseEventFlag to sceKernelCloseEventFlag
2026-10-25 19:05:08 +13:00
Dean 8523ec776f Merge pull request #10673 from MarcZX10/marc/signatures-libscebgft
feat(libSceBgft): declare GetPatchProgress and GetTaskInfo with known signatures
2026-10-25 19:03:03 +13:00
Yunus Shaikh bad1a7994d docs(libSceNpManager): note the NpManagerInt account-id getters waiting on the offline model 2026-10-25 05:42:38 +00:00
Yunus Shaikh 3fbd8a1453 feat(libSceNpManager): report the NpManagerInt authorization calls as signed out
sceNpManagerIntAuthGetAuthorizationCode, AuthGetIdToken,
GetAuthorizationCode and GetAuthorizationCodeWithPsnoUri return
SCE_NP_ERROR_SIGNED_OUT. That is the answer libSceNpAuth's
authorization-code and ID-token calls give for a live request while NP
is signed out. Their signatures are unknown, so they read no argument.
2026-10-25 05:42:22 +00:00
Yunus Shaikh fe2f380636 feat(libSceNpManager): report the NpManagerInt user lookups as signed out
sceNpManagerIntGetUserIdByOnlineId and GetUserIdByNpId return
SCE_NP_ERROR_SIGNED_OUT, as sceNpGetUserIdByOnlineId does while NP is
signed out. An NpId carries the online ID, so the NpId form is the same
lookup. Neither reads an argument.
2026-10-25 05:41:50 +00:00
Yunus Shaikh c4363b0415 feat(libSceNpManager): report the NpManagerInt profile getters as signed out
sceNpManagerIntGetAccountAge, GetAccountCountryA, GetAccountLanguageA,
GetNpId and GetOnlineId return SCE_NP_ERROR_SIGNED_OUT, as their public
twins do while NP is signed out. Their signatures are unknown, so they
read no argument and write nothing.
2026-10-25 05:41:13 +00:00
harisibrar1 b8b42143b1 Merge main e7e3e9c198 into fix/pselect-pending-signal-eintr 2026-10-25 01:24:28 -04:00
Felipebmaitan a43a610bbf fix(ngs2): reject routes changed during recursive rendering 2026-10-25 01:52:16 -03:00
Felipebmaitan 93b887e514 feat(ngs2): route custom submixer buffers through Gain 2026-10-25 01:34:10 -03:00
xXPBSXxandClaude Sonnet 5.5 e03c57cad5 docs(debt): note how a title and its plugin call sceSaveDataInitialize3 and Terminate
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 05:31:06 +01:00
Braxton Atkinson 4dcfc0b3db feat(libSceAppContent): implement sceAppContentGetEntitlementKey
Resolve the rebase conflicts with upstream's public API header migration. Put the typed entitlement-key layout and signature in Api.hpp, remove duplicate test/source declarations, and retain upstream's typed add-content checks and initialization behavior.

Keep ignoring the service label in the no-entitlement model. Cover labels 0, 7, 8 and UINT32_MAX without touching the output key. Update debt to distinguish firmware 13.42 module-side validation from the still-unverified system-service result. Evidence: https://github.com/boykopovar/AnyPS5/pull/9638#issuecomment-6390573735

Ubuntu 24.04, GCC 13.3, Release, upstream e7e3e9c198: actual libraries and guest_appcontent_tests built; guest_appcontent passes 1/1. Public-header audit, syntax checks of implementation and test, conventions, test registration and whitespace checks pass. No title or PS5 hardware tested; Windows was not rerun for this update.

AI-assisted: yes
2026-10-24 23:29:15 -05:00
wail-arch e87d6b2227 refactor(libSceNotification): declare sceNotificationSend with the SDK's parameters
Homebrew built with the ps5-payload-dev SDK declares
sceNotificationSend(int userId, bool isLogged, const char* payload) and
its notify sample passes the system user, true and a JSON toast. Use
those parameters, which take the same registers as before, keep the
export throwing and record the call in the technical debt.
2026-10-25 04:17:49 +00:00
xXPBSXxandClaude Sonnet 5.5 5c6cd07831 docs(debt): note what a title does with the sceKernelGetOperationMode values
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 04:58:21 +01:00
JJenkxandClaude Opus 5.5 aeaa3b58f0 feat(tools): audit an extracted title's imports in one step
Auditing a title before its first run takes several manual steps from
GAME_TESTING: unwrap eboot.bin and every module the title ships with
unwrap_self.py, convert them with relinker --registry (with
--module-dir for Unity's Media/Modules and Media/Plugins, and for
modules beside eboot.bin), and pass every registry and module folder
to import_audit.py. Missing one module folder turns its imports into
false "absent" entries.

tools/audit_dump.py <app0> --relinker <path> --libs <dir> does those
steps into a temporary directory (or --work <dir>), reading the dump
only. A module that is already a plain ELF is copied; one that is
neither a SELF nor an ELF fails the run. It returns import_audit's exit
code, or 2 when unwrapping or conversion fails.

audit_dump covers the module folders and the module-dir list, a
refused module, the relinker command line, the arguments passed to
import_audit, a relinker failure and the argument errors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:45:09 -04:00
JJenkxandClaude Opus 5.5 38e535f939 docs(debt): cite the bundled libc.prx for _Mtx_trylock, strdup and strndup
Both libc debt entries said the console behaviour was unverified. The
libc.prx that PPSA13934 ships in sce_module/ settles them (read from
disassembly, not measured on a console):

- _Mtx_trylock (0x5cf0) passes its argument to scePthreadMutexTrylock
  and returns 0 on success, 3 for SCE_KERNEL_ERROR_EBUSY and 4 for any
  other error.
- strdup (0x6b440) calls strlen and strndup (0x6b650) calls strnlen on
  the source with no null check, so both fault on a null source, except
  strndup(NULL, 0), which returns an empty copy where this libc returns
  null with EINVAL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:41:14 -04:00
Dean e7e3e9c198 Merge pull request #9844 from JJenkx/windows/libc-exp2f-msun
fix(libc): compute exp2f with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-25 16:36:34 +13:00