Commit Graph
8756 Commits
Author SHA1 Message Date
Dean 9f6d3b910c Merge pull request #7202 from MarcZX10/codex/lstat-long-windows-path-7201
fix(libkernel): support lstat on long Windows paths
2026-11-01 19:19:37 +13:00
Dean db8825e4b6 Merge pull request #7938 from JJenkx/perf/guest-arena-prefix
perf(libc): skip the known occupied guest arena prefix
2026-11-01 19:17:49 +13:00
Dean 803889adab Merge pull request #8937 from UnhealthyKraken/feat/libc-fesetenv
feat(libc): implement fesetenv
2026-11-01 19:16:41 +13:00
Adrià 3ee28266a3 Merge pull request #13783 from Gonic0/perf/libc-write-watch-fault-ahead
perf(libc): unprotect the rest of the 64 KiB block after a sequential write fault on macOS
2026-11-01 06:52:17 +01:00
Dean 9e83292850 Merge pull request #14200 from BunnyFl/feat/libscevisionmanager-leaf-calls
feat(libSceVisionManager): answer the version, memory size and pad request calls as firmware 13.42 does
2026-11-01 18:49:04 +13:00
Adrià 4547df009b Merge pull request #13874 from DeveshB-1/fix/sysarch-efault
fix(libkernel): return EFAULT from sysarch for invalid memory pointers
2026-11-01 06:47:19 +01:00
Adrià c6679e4e4e Merge pull request #13888 from rooklz/feat/shellcore-remote-shareplay-cpu-budget-stub-667
test(libSceSystemService): pin the Remote Play and Share Play CPU budget exports as unimplemented
2026-11-01 06:44:14 +01:00
Adrià cc8226475b Merge pull request #13856 from akkadbakkad89/feat/font-gradient-segments
feat(libSceFont): implement drawup gradient segment insertion
2026-11-01 06:25:37 +01:00
Adrià 5e936063e3 Merge pull request #13871 from zaryabzip/fix/rudp-context-status-checks
fix(libSceRudp): check the context status arguments first and initialization before the id pointer
2026-11-01 06:06:40 +01:00
Adrià f377753dd2 Merge pull request #13854 from DeveshB-1/fix/sysctlnametomib-efault
fix(libkernel): return EFAULT from sysctlnametomib for invalid memory pointers
2026-11-01 06:05:23 +01:00
DeveshB-1 5d736ad55b fix(libkernel): return EFAULT from sysarch for invalid memory pointers 2026-11-01 05:55:56 +01:00
Adrià 3c3f38be40 Merge pull request #13850 from zaryabzip/fix/net-resolver-timeout-range
fix(libSceNet): refuse resolver timeouts below one second as firmware 13.42 does
2026-11-01 05:54:40 +01:00
akkadbakkad89 d60cfed900 fix(libSceFont): reject segment writes that cannot fit inside the arena 2026-11-01 05:40:20 +01:00
akkadbakkad89 686c914a0b fix(libSceFont): bound segment writes at the arena extent 2026-11-01 05:40:20 +01:00
akkadbakkad89 b99aaba744 fix(libSceFont): allow split segment stops, guard only unitSize 0 2026-11-01 05:40:20 +01:00
akkadbakkad89andDevin beed1677b0 fix(libSceFont): reject segment units too small for a stop
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 05:40:20 +01:00
akkadbakkad89andDevin 350f7d20fe test(libSceFont): place stale drawup stop below the inserted position
At 0.7f the stale stop was already excluded by the position comparison
(0.5 >= 0.7 fails), leaving the epoch conjunct of the stop walk
uncovered. At 0.3f the position check passes and only the epoch match
keeps the walk from splicing past the stale stop; removing the conjunct
aborts guest_font_graphics.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 05:40:20 +01:00
akkadbakkad89andDevin c7a8b013e1 fix(libSceFont): make drawup color packing use cvttss2si semantics
Same DrawupPackColor fix as on the parent branch: NaN (admitted by
DrawupColorValid) is undefined through static_cast<int32_t>; firmware
converts with vcvttss2si into 64-bit registers, so an invalid channel
contributes a zero byte from the indefinite value's low dword. Assert
the packed stop color for a NaN channel (0x80800080) and correct the
FlatColor NaN expectation to 0x00000000. Verified under
-fsanitize=float-cast-overflow -fno-sanitize-recover on Linux.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 05:40:20 +01:00
akkadbakkad89andDevin d72a340267 fix(libSceFont): guard zero drawup segment unit size before modulo
GraphicsAppendGradientSegment computed unitUsed % unitSize ahead of the
unitSize==0 check that selects 0x804600a0, leaving the guard dead behind
an undefined division. The firmware body carries the same defect (the
unguarded div at 0x20703 faults before its own dead 0x208fa branch), but
on the host the check is the only defined outcome for a corrupt frame,
so hoist it ahead of the first modulo; behaviour on every valid frame
(unitSize is always positive after object init) is unchanged. Adds the
zero-size regression case.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 05:40:20 +01:00
akkadbakkad89andDevin 1d95e3925e feat(libSceFont): implement drawup gradient segment insertion
sceFontGraphicsAppendGradientSegment decodes from the 4.03 libSceFont
body at 0x20500: sorted-inserts a 0x18-byte color-stop node into the +8
chain of linear (0x20) and radial (0x30) gradient records while
node->+4 == record->+4 and position >= node->+0x10. Stop records live in
a unit byte stream built from the per-object segment arena at
object->+0x10 (+0xc0 descriptor, mutex at +0x40, stats +0x48/+0x4c),
allocated by the span allocator at 0x1b5e0 (12-byte nodes: count(22b),
chain index(21b), span end(21b); index 0 is the sentinel). Units chain
through frame->+0x18/+0x20 with byte position in frame->+0x10/+0x14;
sub-0x18 tails get a 0xff pad record plus a zeroed tail. Validation
order, error codes (0x80460020/0x80460086/0x80460002/0x804600a0), NaN
acceptance, stats updates skipped on alloc failure, and the pad loop's
abandon-on-failure all follow the disassembly; guest_font_graphics
covers insert order, epoch stop, pads, unit boundaries and exhaustion.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 05:40:20 +01:00
Dean a5d0655bee Merge pull request #14240 from miguelcoxcaballero/feat/libc-internal-aligned-array-new
feat(libSceLibcInternal): implement the aligned nothrow array new and the aligned array delete
2026-11-01 17:37:39 +13:00
Dean 549a48b8ee Merge pull request #14211 from BunnyFl/feat/libsceimebackend-param-init
feat(libSceImeBackend): initialize the parameter block as firmware 13.42 does
2026-11-01 17:36:26 +13:00
Dean 372619d6f4 Merge pull request #14209 from BunnyFl/feat/libscenpmanager-unregistered-client-error
feat(libSceNpManager): recognize the unregistered client error as firmware 13.42 does
2026-11-01 17:35:17 +13:00
Dean 9bc68425db Merge pull request #14205 from malekaifa/fix/audioin-zero-progress-dequeue-20261101
fix(libSceAudioIn): stop discard loop on zero progress
2026-11-01 17:33:58 +13:00
Nicolas GonzalezandClaude Opus 5.5 8a0b3ce6bf Merge remote-tracking branch 'upstream/main' into perf/libc-write-watch-fault-ahead
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 01:26:40 -03:00
Adrià bf6d87b91b Merge pull request #13823 from akkadbakkad89/font-drawup-fills
feat(libSceFont): implement drawup flat color and gradient record producers
2026-11-01 05:17:01 +01:00
Dean 660e4e2b97 Merge pull request #12905 from legendary-cookie/test/hmd2-gaze-status
test(libSceHmd2): cover the gaze device and calibration status queries before initialization
2026-11-01 17:11:41 +13:00
Nicolas GonzalezandClaude Opus 5.5 132bceac18 Merge remote-tracking branch 'upstream/main' into perf/libc-write-watch-fault-ahead
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 00:49:29 -03:00
Adrià ca82d0c022 Merge pull request #13750 from camezaro-intc/fix/guest-timed-wait-ci-stability
test(libkernel): stabilize guest_timed_wait_cpu on CI
2026-11-01 04:38:04 +01:00
Dean 448920c5c1 Merge pull request #14186 from BunnyFl/feat/libsceavsetting-callback-funcs-init
feat(libSceAvSetting): initialize the callback blocks as firmware 13.42 does
2026-11-01 16:33:37 +13:00
rooklz ce6d0b6469 fix(libSceSystemService): keep the Remote Play and Share Play CPU budget exports unimplemented
AnyPS5 has no Remote Play or Share Play CPU budget service, and the
console's acquire and release results, a repeated acquire and a release
without an acquire are unmeasured, so the six exports throw on every call
as they do on main instead of reporting a made-up hold.

The guest test now asserts that all six calls throw, and the debt entry
moves to Unknown function info with the unresolved contract.
2026-11-01 03:31:19 +00:00
Dean b5705afa47 Merge pull request #14178 from rooklz/fix/libressl-documented-fault-throws
fix(libSceLibreSsl): throw the documented exception for faulting arguments
2026-11-01 16:31:00 +13:00
Adrià 97ca8c8751 Merge pull request #13832 from zaryabzip/fix/pthread-cond-signalto-esrch
fix(libkernel): return ESRCH from signalto for a handle that is not a thread
2026-11-01 04:28:11 +01:00
akkadbakkad89andDevin fe6cd4504f fix(libSceFont): correct drawup option1, sealed error path, and pool return
Firmware 4.03 re-disassembly of the drawup bodies fixes three
transliteration errors:

- Option1Flags[1] is 0x3000, not 0x2000: the option1 jump table at
  0x37fcc routes index 1 to case code that ors 0x2000 then falls into
  or 0x1000.
- Sealed paths run the shared error epilogue (store at frame+4 and
  invoke the registered callback), like every other error path; use
  DrawupRecordError instead of a bare return.
- DrawupPoolAllocate returns memory + completingNodeIndex*slotSize
  (0x1bcc0 marks slots start..start+count but returns the node whose
  span finished the run), not the run's first slot.

The 13.42 emulator report matches on all three; its callback
suppression and +0x20 pool entries are firmware differences, not
deviations here.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 04:16:05 +01:00
akkadbakkad89andDevin e215d6f0e0 fix(libSceFont): make drawup color packing use cvttss2si semantics
DrawupPackColor converted channel floats with static_cast<int32_t>,
which is undefined for NaN — the same input DrawupColorValid admits.
The firmware bodies pack with vcvttss2si into 64-bit registers, whose
invalid-conversion result is 0x8000000000000000; the low dword the
packing ORs in is 0, so an unrepresentable channel contributes a zero
byte. Implement the conversion explicitly: in-range values truncate
through int64_t, everything else contributes 0. The FlatColor NaN
regression now checks the firmware-faithful packed word (0x00000000
instead of the int32-indefinite 0x80000000 the old codegen happened to
emit). Verified under -fsanitize=float-cast-overflow
-fno-sanitize-recover on Linux: clean run, test passes.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-11-01 04:16:05 +01:00
akkadbakkad89 b258d8ed3a feat(libSceFont): implement drawup flat color and gradient record producers 2026-11-01 04:16:04 +01:00
Adrià 04c7ec8bfe Merge pull request #13816 from mkrieger95/feat/libwebrtc-vad
feat(libwebrtc): implement the voice activity detector API
2026-11-01 03:59:34 +01:00
Miguel Cox Caballero 631aa9c369 test(libSceLibcInternal): check that a failed aligned array allocation is not retried without a new handler 2026-11-01 03:52:39 +01:00
Miguel Cox Caballero a675d0e45b feat(libSceLibcInternal): implement the aligned nothrow array new and the aligned array delete
NIDs s2eGsgUF9vk (_ZnamSt11align_val_tRKSt9nothrow_t) and v09ZcAhZzSc
(_ZdaPvSt11align_val_t) forward to the libc exports of the same names
instead of throwing.
2026-11-01 03:46:44 +01:00
Adrià 240e34c3a3 Merge pull request #13808 from akkadbakkad89/font-drawup-impl
feat(libSceFont): implement drawup texture image/pattern record producers
2026-11-01 03:39:50 +01:00
Dean cf79276fee Merge pull request #12859 from hypermoist/feat/np-time
feat(libSceNpCommon): implement sce::np::Time
2026-11-01 15:24:44 +13:00
Dean a71efc880f Merge pull request #12942 from xdCloudy/feat/libSceFreeTypeOl-batch70
feat(libSceFreeTypeOl): implement 46 FreeType exports with guest ABI bridge
2026-11-01 15:24:02 +13:00
Adrià 5f5f99e682 Merge pull request #13820 from Ninot1Quyi/fix/libressl-sha512-init-buffer
fix(libSceLibreSsl): preserve SHA-512 initialization buffers
2026-11-01 03:01:26 +01:00
Dean b14af0b8c3 Merge pull request #10693 from MarcZX10/marc/sweep-np-tss
feat(libSceNpTus): implement sceNpTssGetData and sceNpTssGetDataAsync
2026-11-01 14:58:29 +13:00
Dean 88b7503129 Merge pull request #10222 from JJenkx/windows/libc-expm1f-msun
fix(libc): compute expm1f with FreeBSD msun's algorithm, as titles' libc.prx does
2026-11-01 14:57:48 +13:00
Dean 41f9c911da Merge pull request #12838 from EagleBearerYS/feat/libSceVdecCore-sourced-b268-2
feat(libSceVdecCore): implement the decoder setup exports from shadPS4
2026-11-01 14:56:26 +13:00
camezaro-intc a2e821ded0 test(libkernel): stabilize guest_timed_wait_cpu on CI 2026-10-31 19:55:01 -06:00
Adrià 7a96c6af26 Merge pull request #13811 from xdCloudy/feat/libSceCompanionHttpd-verified-zero-returns
feat(libSceCompanionHttpd): implement verified zero returns
2026-11-01 02:35:43 +01:00
Dean 90a01f0770 Merge pull request #13824 from zaryabzip/feat/sysutil-notification-with-text
feat(libSceSysUtil): send text notifications as firmware 13.42 does
2026-11-01 14:24:52 +13:00
Adrià 666d9b10a5 Merge pull request #13790 from DeveshB-1/fix/allowed-sdk-version-efault
fix(libkernel): return EFAULT from sceKernelGetAllowedSdkVersionOnSystem for an unwritable store
2026-11-01 02:23:24 +01:00