Merijn
83e754a885
test(appcontent): cover a title without download data
...
GuestAppContent now writes a param.json that declares downloadDataSize 0
and checks that sceAppContentDownloadDataGetAvailableSpaceKb returns OK
with 0 KB for /download0 (it threw before), and PARAMETER for a null
result. TechnicalDebt records that the console's behaviour for such a
title is unverified.
AI-assisted: yes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 21:51:53 +02:00
Adrià
4764e59c37
Merge pull request #888 from adriadam10/feat/libc-force-tls-destructor
...
feat(libSceLibcInternal): implement _sceLibcInternalForceTlsDestructor
2026-10-07 21:35:25 +02:00
Adrià
3f7fe285a0
Merge pull request #900 from alfalfa-star/feat/libkernel-acp-protection
...
feat(libkernel): accept the audio coprocessor memory protection bits
2026-10-07 18:26:06 +02:00
Adrià
6b3e8c476e
Merge pull request #835 from adriadam10/feat/appcontent-addcont-info
...
feat(libSceAppContent): implement sceAppContentGetAddcontInfo and GetAddcontInfoList
2026-10-07 18:25:31 +02:00
Adrià
0da8f48cfc
Merge pull request #831 from adriadam10/feat/audio3d-object-reserve
...
feat(libSceAudio3d): implement sceAudio3dObjectReserve and sceAudio3dObjectUnreserve
2026-10-07 18:24:56 +02:00
Adrià
4b16995d91
Merge pull request #807 from adriadam10/feat/kernel-timer-event
...
feat(libkernel): sceKernelAddTimerEvent and sceKernelDeleteTimerEvent
2026-10-07 18:22:56 +02:00
Adrià Franch
cc789786de
feat(libSceLibcInternal): implement _sceLibcInternalForceTlsDestructor
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 18:18:13 +02:00
Adrià Franch
5b331ed022
feat(libSceAppContent): implement sceAppContentGetAddcontInfo and GetAddcontInfoList
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 18:14:04 +02:00
Adrià Franch
9ab637a575
fix(libkernel): wake infinite equeue waits for timers, document timer choices
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 18:14:04 +02:00
Adrià
2b8f0b215e
Merge pull request #803 from adriadam10/feat/rtc-dos-time
...
feat(rtc): implement sceRtcGetDosTime and sceRtcSetDosTime
2026-10-07 18:07:20 +02:00
Adrià Franch
0781225d43
fix(rtc): decode the DOS year as unsigned, move TechnicalDebt line
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 18:06:11 +02:00
Adrià Franch
c3871dcb99
feat(libSceAudio3d): implement sceAudio3dObjectReserve and sceAudio3dObjectUnreserve
2026-10-07 18:01:24 +02:00
Adrià Franch
d081e6749d
feat(libkernel): sceKernelAddTimerEvent and sceKernelDeleteTimerEvent
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 17:55:57 +02:00
Adrià Franch
c94949aedb
feat(rtc): implement sceRtcGetDosTime and sceRtcSetDosTime
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 17:52:56 +02:00
Pouare514
c25ff91a65
fix(libkernel): accept GPU coherency prot bits for host mapping
2026-10-07 17:29:28 +02:00
RomainROCH
0e01d95abd
fix(libc): narrow nothrow allocation failure handling
2026-10-07 15:45:15 +02:00
Adrià
e2b527bb09
Merge pull request #295 from MichonGoddijn231849/split/pixel-ancillary
...
fix(shader): packed pixel ancillary as SampleId and Layer, gl_Layer via Geometry, Z export formats
2026-10-07 11:06:33 +02:00
alfalfa-star
b567bb8eed
feat(libkernel): accept the audio coprocessor memory protection bits
...
A title maps direct memory with protection 0x3f2, which adds bits
0x100 and 0x200 to the CPU, GPU and AMPR bits, and the mapping threw.
They are the audio coprocessor (ACP) read and write bits, as named in
the KytyPS5 and etaHEN headers. The coprocessor work runs on the host
CPU, so they map to host read and read/write access like the GPU bits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:09:42 +02:00
Dean
9ab937b261
Merge pull request #973 from ebarr24/codex/libc-posix-memalign-errors
...
fix(libc): return posix_memalign allocation errors
2026-10-07 18:01:22 +13:00
Nahuel Genchi
2b83a533b8
test(libc): match the immortal classic locale and run guest_locale in ctest
2026-10-07 00:00:12 -03:00
Dean
0c952fe574
Merge pull request #994 from CnRJay/fix/map-no-overwrite-enomem
...
fix(libkernel): refuse fixed no-overwrite mappings over live memory with ENOMEM
2026-10-07 15:31:12 +13:00
Dean
9ec263cec0
Merge pull request #887 from adriadam10/feat/libc-fiopen
...
feat(libc): implement std::_Fiopen
2026-10-07 15:30:30 +13:00
Dean
18b9994c76
Merge pull request #885 from adriadam10/feat/libc-collate-getcat
...
feat(libc): implement collate<char>::_Getcat
2026-10-07 15:29:48 +13:00
Dean
dc2bf2a55c
Merge pull request #882 from adriadam10/feat/libc-wide-format-count
...
feat(libc): support %n in wide formatting
2026-10-07 15:29:07 +13:00
Dean
f6f47bf1de
Merge pull request #880 from adriadam10/feat/kernel-mtypeprotect-type
...
feat(kernel): apply the memory type in sceKernelMtypeprotect
2026-10-07 15:28:25 +13:00
Dean
1d773dad2e
Merge pull request #722 from alfalfa-star/feat/libkernel-rtld-thread-atexit
...
feat(libkernel): implement the rtld thread atexit reference count
2026-10-07 15:27:44 +13:00
Dean
e50814c9e7
Merge pull request #860 from ebosido444-ai/feat/libc-std-execute-once
...
feat(libc): implement std_execute_once
2026-10-07 15:25:29 +13:00
Dean
fc5341aca2
Merge pull request #872 from Fishybeing/fix/guard-nominmax
...
build(windows): guard NOMINMAX before including windows.h
2026-10-07 15:24:47 +13:00
Dean
148b888c3a
Merge pull request #947 from ebarr24/codex/libc-scanf-count-length
...
fix(libc): honor sscanf_s count conversion lengths
2026-10-07 15:22:29 +13:00
Dean
8545f330f1
Merge pull request #963 from JAB-dev/feat/agc-registration-max-name-length
...
feat(libSceAgcDriver): implement sceAgcDriverGetResourceRegistrationMaxNameLength
2026-10-07 15:21:05 +13:00
Dean
2129a6ef29
Merge pull request #1001 from Dextroid17/fix/application-heap-finalize-order
...
fix(libc): register the application heap finalizer when libc loads
2026-10-07 15:19:33 +13:00
Dean
8789a8d1db
Merge pull request #978 from ebarr24/codex/libc-memcpy-s-overlap
...
fix(libc): reject overlapping memcpy_s ranges
2026-10-07 15:15:11 +13:00
Dean
a2073010c4
Merge pull request #972 from ebarr24/codex/libc-fscanf-abi
...
fix(libc): translate Windows fscanf guest arguments
2026-10-07 15:14:30 +13:00
Dean
87ab98b9e9
Merge pull request #968 from ebarr24/codex/libc-stdio-binary
...
fix(libc): preserve guest stdio bytes on Windows
2026-10-07 15:13:48 +13:00
raghav314
72be77590c
feat(ajm): implement sceAjmBatchJobSetResampleParameters and sceAjmBatchJobGetResampleInfo
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 05:36:31 +05:30
Dean
4b0412fa97
Merge pull request #982 from ebarr24/codex/libc-wide-string-precision
...
fix(libc): keep wide printf precision on UTF-8 boundaries
2026-10-07 13:03:38 +13:00
Ethan Barr
c6dde16023
fix(libc): preserve invalid allocator result diagnostics
2026-10-06 16:44:58 -07:00
Ethan Barr
db49ba97b5
fix(libc): return posix_memalign allocation errors
2026-10-06 16:41:01 -07:00
Adrià
ab9437e34d
feat(libkernel): implement scePthreadTestcancel and pthread_testcancel ( #834 )
2026-10-07 11:43:32 +13:00
Dean
23ba389799
Merge pull request #993 from CnRJay/fix/mutexattr-settype-einval
...
fix(libkernel): return EINVAL for unknown mutex attribute types
2026-10-07 11:43:11 +13:00
Adrià
09f8782378
feat(libSceAudio3d): implement sceAudio3dTerminate ( #830 )
2026-10-07 11:42:29 +13:00
Dean
25f311fa00
Merge pull request #559 from Phi1ow/implement-login-dialog
...
feat(logindialog): implement the libSceLoginDialog state machine
2026-10-07 11:41:57 +13:00
Dean
b5c1d08bd9
Merge pull request #553 from Phi1ow/implement-userservice-foreground-and-ids
...
feat(userservice): implement foreground user, registered list, user colour and NP account id
2026-10-07 11:41:16 +13:00
Dextroid17
cc7bda30e7
fix(libc): register the application heap finalizer when libc loads
...
The finalizer was registered with std::atexit from the heap handshake, which
runs after libc's own __cxa_atexit runner and the title's exit callbacks
register theirs. std::atexit runs handlers in reverse registration order, so
the heap was torn down first: an exit user that allocated then threw
"application heap: allocator has been finalized" out of a destructor path,
which terminates the process.
Register the finalizer from a namespace-scope object instead, so it is
registered when libc is loaded and therefore runs last, and make finalize()
idempotent rather than throwing on a second pass.
application_heap_exit_order registers a guest exit callback that allocates
through the heap and aborts with "application heap: allocator has been
finalized" on the previous code.
2026-10-06 18:40:06 -04:00
Dean
84c058756b
Merge pull request #870 from aryanrawatispro-ship-it/feat/player-invitation-dialog-result
...
feat(playerinvitationdialog): implement scePlayerInvitationDialogGetResult
2026-10-07 11:05:26 +13:00
Dean
762bab6f9a
Merge pull request #863 from LeandroLP23/feat/font-writing-line-ordering-space
...
feat(font): implement sceFontWritingLineGetOrderingSpace
2026-10-07 11:04:45 +13:00
Chad
e9c8664d43
fix(libkernel): refuse fixed no-overwrite mappings over live memory with ENOMEM
...
MAP_FIXED | MAP_NO_OVERWRITE over a range that already holds an
allocation fails with ENOMEM and leaves the mapping in place, as in
fpPS4's TVirtualManager.check_fixed. UFC 6 (PPSA23566) relies on it to
probe for a free address and aborted on the throw.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:04:06 -05:00
Chad
69973800a7
fix(libkernel): return EINVAL for unknown mutex attribute types
...
UFC 6 (PPSA23566) passes type 0 to pthread_mutexattr_settype during
startup. libkernel rejects it with EINVAL and leaves the attribute
unchanged, as fpPS4's decompiled body does, instead of aborting.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:04:06 -05:00
Dean
edf90b169f
Merge pull request #824 from LeandroLP23/feat/font-get-font-resolution
...
feat(font): implement sceFontGetFontResolution
2026-10-07 11:04:01 +13:00
Dean
b3c0365824
Merge pull request #823 from LeandroLP23/feat/font-glyphs-count-char-glyph-code
...
feat(font): implement sceFontGetFontGlyphsCount and sceFontGetCharGlyphCode
2026-10-07 11:03:19 +13:00