Commit Graph
7413 Commits
Author SHA1 Message Date
Dean Galvin c932eff258 Merge branch 'main' into pr10451 2026-10-26 05:31:54 +13:00
Dean Galvin b344e3d192 Merge branch 'main' into pr10446 2026-10-26 05:31:38 +13:00
dantdmdarealguy f34bfc4f28 docs(debt): remove the sceVideoRecordingInit and sceVideoRecordingTerm entry now that they return 0 as the firmware does
db2575839 (#8307) made both return 0, following their bodies in the
firmware module libSceVideoRecording.sprx (xor eax, eax; ret), but left
the entry saying they are parameterless stubs that throw. The firmware
body leaves no open gap, so the entry goes. sceVideoRecordingGetStatus
no longer lists sceVideoRecordingInit among the initializers that throw.
2026-10-25 17:28:05 +01:00
AZLisme ef9a48c6ec docs(libSceRudp): record firmware cancellation details 2026-10-26 00:25:54 +08:00
milescovielloandClaude Opus 5.5 ca34fdb351 feat(libSceNpTrophy2,libSceNpUniversalDataSystem): unlock progressive trophies through _UpdateTrophyProgress
Titles report a progressive trophy's progress with _UpdateTrophyProgress
events. Their udsNN.ucp rules feed $._trophy_progress into an int32
statistic with the max aggregation, filtered on $._trophy_id, and the
trophy's unlockCondition names that statistic. Those statistics and
rules were skipped and the events were dropped, so such trophies never
reported progress or unlocked (21 of Borderlands 4's 64).

- Read max statistics (largest value posted, from initialValue) and
  int32 statistics (0 to 2147483647).
- Read a rule condition with one == property equal to an unsigned
  integer, and apply the rule only to events whose property matches.
- Post _UpdateTrophyProgress through the statistic rules.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:24:43 +01:00
alnsx 7eecb44157 chore: merge main after socket debt corrections 2026-10-25 12:23:32 -04:00
David a81fcbfacd feat(libkernel): sync each write on a file whose O_FSYNC flag is set
FreeBSD's F_SETFL may change O_FSYNC (FCNTLFLAGS), and vn_write then
writes with IO_SYNC. The flag now lives in the status table, and the
write entry points sync a regular file after the write while it is set.
2026-10-25 17:13:01 +01:00
Dean ee856eb7a0 Merge pull request #9931 from Queuse/codex/net-nodelay-short-readback
fix(net): truncate TCP_NODELAY readback
2026-10-26 04:45:18 +13:00
Dean 5e675163f0 Merge pull request #9916 from JJenkx/windows/printf-decimal-console
fix(libc): round and cap %e, %f and %g as titles' libc.prx does
2026-10-26 04:45:09 +13:00
Dean 6b46a5dfdb Merge pull request #10299 from orezraey/fix/libkernel-socket-address-measured-ps5
fix(libkernel): check socket address families and lengths as measured on a PS5
2026-10-26 04:45:05 +13:00
Himansh Raj fefd2997b7 Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 21:00:46 +05:30
Dean d2b3ee3bcc Merge pull request #8541 from Ondra97/codex/fix-ssl-context-connections
fix(ssl): release connections when their context terminates
2026-10-26 04:19:32 +13:00
Adrià 18424d6d7f Merge pull request #9384 from Ondra97/codex/feat-freetype-select-size
feat(libSceFreeType): implement FT_Select_Size
2026-10-25 16:16:57 +01:00
Adrià de74cf1deb Merge pull request #9488 from dantdmdarealguy/docs/relinker-converted-module-output
docs: describe the converted module output the relinker prints
2026-10-25 16:16:34 +01:00
Adrià bd0389635d Merge pull request #9471 from EnriqueDev2002/docs/macos-relinker-prerequisites
docs(build): add macOS relinker prerequisites
2026-10-25 16:16:28 +01:00
Adrià FranchandClaude Sonnet 5.5 949a1e47ab docs(ajm): move the batch bounds debt line inside the Functional section
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 15:53:00 +01:00
JJenkx bd31542d50 fix(ajm): bound private batch job reads before execution 2026-10-25 15:52:55 +01:00
valenciana-nc 37ba4a9d2f fix(libkernel): reject ended threads in pthread_attr_get_np 2026-10-25 15:49:57 +01:00
orezraeyandClaude Opus 5.5 9925a9e401 fix(libSceAudioOut): fail a repeated sceAudioOut2Initialize and sceAudioOutInit as measured on a PS5
On PS5 firmware 13.60 a second sceAudioOut2Initialize returns 0x80268004,
also after sceAudioOutInit, and a second sceAudioOutInit returns
0x8026000e. sceAudioOutInit after sceAudioOut2Initialize still returns 0.
sceAudioOut2InitializeEx and sceAudioOut2LoInit keep returning 0; their
repeats were not measured.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 11:36:01 -03:00
Himansh Raj bc7c5c752d Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 20:00:48 +05:30
orezraeyandClaude Opus 5.5 2d339842eb fix(libkernel): add 0x80020000 to any event fflags in sceKernelGetEventError as measured on a PS5
On PS5 firmware 13.60 sceKernelGetEventError returns 0x80020000 plus the
event's fflags in 32 bits for every non-zero fflags, including values
above 0xFFFF, where it used to throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 11:25:04 -03:00
Maz 4e657b158e feat(libc): export the time_get facet vtable as data
Console libSceLibcInternal exports o4kt51-uO48 as a 104-byte STT_OBJECT;
titles that resolve the symbol as data need a zeroed 13-slot vtable like the
other facet vtables, not a missing import.
2026-10-25 15:20:04 +01:00
AZLisme 503a0efb3a test(libSceRudp): cover empty poll wait behavior 2026-10-25 22:11:20 +08:00
mantavisualandClaude Opus 5.5 0fd2e0ce9f feat(libSceIcu): implement the invariant character and version helpers
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 16:09:56 +02:00
Adrià FranchandClaude Sonnet 5.5 f63b27bdaa feat(libkernel): implement getlogin
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 15:07:38 +01:00
Yunus Shaikh fc881b9259 Merge main into fix/libscenet-inet-text-rules
Main's #10706 removes the local declarations at the top of libSceNet's
Export.cpp, where this branch had added __inet_pton and __inet_ntop.
libkernel's Api.hpp, which Export.cpp includes, now declares both, so the
merge takes main's side there.
2026-10-25 07:07:33 -07:00
Yunus Shaikh 8be8dc83af Merge main into fix/libkernel-signal-handler-mask
Main's #10706 moves the declarations of exported functions and their types
into the libraries' public headers, and gives WaitForPendingInSet a
KernelTimespec timeout. The merge keeps this branch's DeliverUnblockedPending
and ChangeBlockedMask with main's KernelTimespec. It takes main's side of
the declarations in GuestSignalSets.cpp, whose setjmp and longjmp this
branch had added and libc's Api.hpp now declares. GuestSignalHandlerMask.cpp
includes the libkernel and libc public headers in place of its own
declarations and GuestSignalSet and GuestSigaction types, as the
public_headers audit requires.
2026-10-25 07:05:46 -07:00
lakhantheboss 59c7e535c0 docs(libSceNpGameIntent): concise technical debt entry for receive intent size guard 2026-10-25 19:31:39 +05:30
lakhantheboss b08f1f0234 fix(libSceNpGameIntent): return errors for invalid arguments and uninitialized calls 2026-10-25 19:31:39 +05:30
Dean 85a4d7f8c8 Merge pull request #10754 from slugzero/fix/pad-get-controller-type
fix(libScePad): accept special handles in scePadGetControllerType
2026-10-26 02:32:31 +13:00
Himansh Raj c150109f72 Merge remote-tracking branch 'origin/main' into split/macos-build 2026-10-25 19:00:47 +05:30
Adrià 1ee8f4bec1 Merge pull request #9181 from Dripl1x/fix/no-resident-write-faults
fix(libc): stop write-protecting resident runs on Windows
2026-10-25 14:26:12 +01:00
Adrià 0658bc8749 Merge pull request #9186 from fma-rc/fix/agc-retire-undrawn-filled-msaa
fix(agc): retire an undrawn filled multisampled color target that a guest access overlaps
2026-10-25 14:25:07 +01:00
GruzzberryandClaude Opus 5.5 e6b07323de feat(libkernel_sys): implement settimeofday
FreeBSD 11.4's kern_settimeofday rejects a timeval with a microsecond
field outside 0 to 999999 or a negative second field with EINVAL before
changing anything, sets the clock from a valid timeval, and then stores
the timezone, which gettimeofday reports. settimeofday now checks the
timeval the same way and throws for a valid one, as clock_settime does,
because the host clock is not changed. A timezone given without a
timeval is stored and gettimeofday reports it instead of 0 and 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 13:20:31 +00:00
louise-patraandClaude Opus 5.5 10f2994bb6 fix(libSceNpUtility): refuse null results and synchronous requests in polls and waits
Firmware 13.42's module checks a null result first (0x80550704) and
refuses a synchronous request in the lookup poll and wait with
0x80550307; the word filter keeps INVALID_ID. The debt entry records the
measurement and that IDs here do not carry the console's service bits.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:50:17 +05:30
Dean fe86ec4a3d Merge pull request #10539 from hypermoist/feat/font-get-glyphs-outline-profile
feat(libSceFont): report the glyph outline profile through the FreeType driver
2026-10-26 02:20:13 +13:00
Adrià FranchandClaude Sonnet 5.5 f2f526709c docs(libs): update the libSceSdma pending export count after 5 constant returns
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 14:16:52 +01:00
hypermistandClaude Opus 5.5 9d710abf9d fix(libs): return what the firmware returns from 29 more calls it does not implement
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-25 14:16:45 +01:00
Rookie 8e08731a36 fix(libSceCesCs): report the length of a rejected MBCS character as the console does 2026-10-25 13:10:08 +00:00
AZLisme 86ea8555cb feat(jxr): implement stream packet refill and flush 2026-10-25 21:04:32 +08:00
mantavisualandClaude Opus 5.5 c15dce440a feat(libSceLibreSsl): implement the CRYPTO locking and thread id callbacks
CRYPTO_num_locks, CRYPTO_set_locking_callback, CRYPTO_set_add_lock_callback,
CRYPTO_THREADID_set_callback and CRYPTO_THREADID_set_numeric threw. They
now follow LibreSSL 2.5.4's cryptlib.c, the version identified in the
firmware 13.40 measurements: CRYPTO_num_locks returns 41, the setters
store their callbacks, CRYPTO_THREADID_set_callback keeps the first
non-null one and returns 0 once one is set, and
CRYPTO_THREADID_set_numeric clears the {ptr, val} structure and stores a
64-bit value. The callbacks are never called, because the module exports
none of CRYPTO_lock, CRYPTO_add_lock or CRYPTO_THREADID_current; the debt
entry records it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:03:25 +02:00
fogydes bde7cc210a fix(libkernel): report ECHILD to a Windows waiter another thread reaps first 2026-10-25 13:57:18 +01:00
fogydes 0514307ab8 fix(libkernel): translate waitpid child statuses to the guest numbering 2026-10-25 13:57:18 +01:00
fogydes df18d83072 docs: add the spawn role variable and shorten the waitpid debt 2026-10-25 13:57:18 +01:00
fogydes 723d932f73 feat(libSceLibcInternal): implement posix_spawn process creation and reaping 2026-10-25 13:57:17 +01:00
Yunus Shaikh 70cb02625d fix(libSceContentSearch): report metadata access as not implemented
Past their initialization and argument errors, sceContentSearchOpenMetadata, sceContentSearchOpenMetadataByContentId, sceContentSearchGetMetadataFieldInfo and sceContentSearchGetMetadataValue threw a bare logic_error for every valid call, so progress.py counted them as done. The host content library is empty and the console's errors for missing content and unopened metadata ids are unknown, so the four now go through NotImplemented_nid_no_patch. ThrowUnknownMetadataId had no other caller and goes.
2026-10-25 12:53:43 +00:00
Yunus Shaikh aa3499790c fix(libSceContentExport): report progress and data export as not implemented
For a live session, sceContentExportGetProgress and sceContentExportFromDataWithThumbnail threw a bare runtime_error, so progress.py counted them as done. An idle session's progress depends on the caller's SDK compatibility mode, and the host has no media library to export into, so both now go through NotImplemented_nid_no_patch. RequireSession's not-initialized and unknown-session throws, which other calls share, are unchanged.
2026-10-25 12:53:43 +00:00
Yunus Shaikh 19cdaa19aa fix(libSceAudioPropagation): report path calculation as not implemented
After its handle and argument errors, sceAudioPropagationSourceCalculateAudioPaths threw a bare runtime_error for every valid call, so progress.py counted it as done. Propagation is not implemented, so the valid call now goes through NotImplemented_nid_no_patch. The early errors are unchanged.
2026-10-25 12:53:43 +00:00
JAB-dev 66b52c4001 Merge remote-tracking branch 'origin/main' into fix/ngs2-mastering-gain-ps5 2026-10-25 14:47:07 +02:00
Rookie f71434eec8 docs(libSceCesCs): keep the Big5 debt entry within the length limit 2026-10-25 12:46:25 +00:00