Commit Graph
7963 Commits
Author SHA1 Message Date
harisibrar1andClaude Opus 5.5 42a02f54f0 feat(libSceLibreSsl): report ASN1_STRING_to_UTF8 errors through the ASN.1 error queue as LibreSSL 2.5.4 does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 10:58:50 -04:00
simnJS c35855cd98 feat(libSceUsbStorage): pass the host's USB FAT and exFAT volumes through
List the FAT and exFAT volumes the host has mounted from USB mass-storage
devices (Linux mountinfo and sysfs, Windows volume IOCTLs and SetupAPI),
map each to /mnt/usb<id> and report mounts and unmounts to the registered
callbacks from a service thread that rescans the host once a second.
Device info, map requests and getdents scans follow the recovered records
of SharpProspero and shadPS4; unknown answers keep throwing.
2026-10-25 14:56:22 +00: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
harisibrar1andClaude Opus 5.5 aebd8881d4 fix(libkernel): fail a write to a pipe without a reader with EPIPE on Windows
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 10:27:58 -04:00
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
Bram910andClaude Opus 5.5 32744645c4 fix(libSceNet): accept MSG_NOSIGNAL in send, sendto and sendmsg
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:21:43 +01: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
orezraeyandClaude Opus 5.5 92448b72f9 fix(libkernel): accept any block size and a null block in the system software version getters as measured on a PS5
On PS5 firmware 13.60 sceKernelGetProsperoSystemSwVersion and
sceKernelGetSystemSwVersion return 0 for every value in the leading size
field, keep it, write the string and the packed version, and return 0
without writing for a null block.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 11:19:52 -03: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
verusferro c9df854687 fix(libc): compute strftime week numbers as the console's libc does
%G, %g and %V no longer throw for a negative tm_yday, a tm_yday past the year or a tm_wday below -6. They follow the year and week rule of the SDK libc.prx, read from its disassembly and checked by running it, with its leap-year test and 32-bit arithmetic. %U and %W also wrap in 32 bits as that module does.
2026-10-25 17:03:45 +03: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
AZLisme 77ba69041c docs(libSceLibreSsl3): correct ASN.1 debt grammar 2026-10-25 21:20:00 +08:00
AZLisme 489b27e780 refactor(libSceLibreSsl3): publish standalone ASN.1 integer decoder 2026-10-25 21:19:50 +08:00
AZLisme 318b1fad9e feat(libSceLibreSsl3): implement ASN.1 integer decoding 2026-10-25 21:19:50 +08: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
harisibrar1andClaude Opus 5.5 e829b5c331 fix(libkernel): fail SO_ACCEPTFILTER with EINVAL on a socket that is not listening as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 09:15:05 -04: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
SandstromPLandClaude Opus 5.5 0dc254e83f fix(tools): count functions exported with APS5_EXPORT under a _nid_no_patch name
progress.py skips every definition whose name ends in _nid_no_patch or
_nid_no_patch_cut, which are meant to be internal helpers. Some libraries
export such functions with APS5_EXPORT under an explicit NID or name:
libSceAgcVsh (150), libSceNKWebKit (150) and libSceJson2's inventory
(66), all of them calling NotImplemented_nid_no_patch. None of the 366
was counted, so those three libraries showed 151 of 151 functions where
they declare 517, and import_audit, which takes its stub list from the
same scan, reported imports of them as implemented.

A _nid_no_patch definition is now skipped only when no APS5_EXPORT in its
library exports it. The library totals go from 6104 of 12305 to 6104 of
12671 on main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:37:48 +05:30
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
thuanquangandClaude 294ab651de fix(libSceVideodec2): mark returned pictures as not discarded
OutputInfo had no member at offset 0xb, so sceVideodec2Decode and
sceVideodec2Flush never wrote that byte, and a returned picture carried
whatever the caller had left there. Name it isDiscardedFrame, as
SharpProspero and KytyPS5 do, and set it to 0 when a picture is
returned; a result without a picture leaves it as the caller set it.

Co-Authored-By: Claude <[email protected]>
2026-10-25 20:03:05 +07: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
Rookie 78540129bc fix(libSceCesCs): encode the Big5 box-drawing duplicates into their lower cells as the console does 2026-10-25 12:46:17 +00:00
Rookie 22e5cd7e1a fix(libSceCesCs): decode KS X 1001 cell 0xA2E8 as U+327E as the console does 2026-10-25 12:46:16 +00:00
Adrià 4017310678 Merge pull request #9175 from rooklz/feat/cescs-tombc
feat(libSceCesCs): encode UCS-2, UTF-8, UTF-16 and UTF-32 characters into any MBCS profile
2026-10-25 13:43:27 +01:00