Commit Graph
8546 Commits
Author SHA1 Message Date
Adrià e98466797f Merge pull request #1082 from MuhammadUmair1019/fix/oracle-explicit-float-modes
fix(oracle)!: require explicit float modes
2026-10-08 07:56:13 +02:00
Adrià 058dead176 Merge pull request #1058 from Celegans12/feat/agc-r8-srgb-color-target
feat(agc): implement 8 srgb color targets through rgba8 srgb proxies
2026-10-08 07:52:45 +02:00
Adrià a9c66ebfd6 Merge pull request #1065 from alfalfa-star/fix/radv-descriptor-pool-tail
fix(agc): keep RADV's descriptor pool overrun inside the pool's pages
2026-10-08 07:49:38 +02:00
MathiasDevelopesandClaude Opus 5.5 77ef75c1da feat(libkernel): implement sceKernelGetModuleInfoFromAddr on Windows
Read the module layout from the PE image that holds the address. A
relinked image reports its .elf sections as segments and the
eh_frame_hdr recorded in .ehmeta; any other image reports its sections
with memory access and its .ehfram section. The eh_frame_hdr and
eh_frame helpers are shared with the Linux path, and the guest module
info test now also runs on Windows.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-08 05:46:48 +00:00
Adrià 311c0493bd Merge pull request #957 from JAB-dev/feat/kernel-flexible-internal-hint
feat(libkernel): accept flag 0x8000 in sceKernelMapNamedFlexibleMemoryInternal
2026-10-08 07:42:56 +02:00
Gjon Gojcevic 88e77da57b feat(libSceNgs2.native): stream 16-bit PCM waveforms through appended waveform blocks
A 16-bit PCM block whose num_samples exceed its data starts a stream, and waveform blocks with flag 0x2 append more data to it. The voice outputs silence while it has played all appended data and CONTINUE is set, and ends at num_samples or when CONTINUE is cleared.
2026-10-08 07:35:59 +02:00
Dean 78cac62f30 Merge pull request #1137 from Sanjaysrinivas/fix/progress-shared-sources
fix(progress): report shared-source libraries
2026-10-08 18:29:17 +13:00
Dean 0ce1e45091 Merge pull request #1083 from ctz23/docs/linux-x11-build-requirements-20261007
docs(build): list Linux X11 development dependencies
2026-10-08 18:29:03 +13:00
Dean 7753fb0165 Merge pull request #1407 from hugodearaujo/fix/voiceqos-init-error-codes
fix(voiceqos): return the console's sceVoiceQoSInit argument errors
2026-10-08 18:23:39 +13:00
TibixDev e6324faef6 fix(npmanager): track reachability callback registration
Validate registration and unregister state in the existing offline model. Add lifecycle and invalid-argument coverage.

Written with AI assistance.
2026-10-08 08:23:31 +03:00
Dean 461ab16f0d Merge pull request #1104 from jeffrey12cali/docs/libs-target-not-default
docs(build): say that the libs target is not part of the default build
2026-10-08 18:22:17 +13:00
Adrià c6bb7c1025 Merge pull request #904 from merwie/fix/kernel-module-info-for-unwind
fix(libkernel): report guest unwind tables in sceKernelGetModuleInfoForUnwind
2026-10-08 07:21:21 +02:00
Dean d521209a3a Merge pull request #1161 from krishnaraya4/docs/build-windows-ca-bundle
docs(build): name the CA bundle the WinLibs CMake needs for the FFmpeg download
2026-10-08 18:20:11 +13:00
Dean 8180dc5b9c Merge pull request #1118 from TideOPL/feat/pad-is-remote-controller
feat(libScePad): implement scePadIsRemoteController
2026-10-08 18:19:30 +13:00
Dean e0924e28f1 Merge pull request #1160 from orbz22/feat/font-glyph-define-attribute
feat(font): accept sceFontGlyphDefineAttribute as a silent stub
2026-10-08 18:19:01 +13:00
Dean fd2eb90c69 Merge pull request #1158 from orbz22/feat/ppsa01325-missing-exports
feat(libs): provide the exports PPSA01325 imports that no library has
2026-10-08 18:18:53 +13:00
Dean 10cb0d208e Merge pull request #1092 from kjhq/feat/libscehttp2-async
feat(libSceHttp2): complete asynchronous requests through the kqueue option
2026-10-08 18:18:26 +13:00
Dean 5850a6cd11 Merge pull request #1374 from gjonn/feat/tts2-unavailable
feat(libSceTextToSpeech2): report the speech engine as unavailable
2026-10-08 17:39:02 +13:00
Dean cf3823dffe Merge pull request #1354 from gjonn/feat/bluetoothhid-no-devices
feat(libSceBluetoothHid): add Bluetooth HID with no devices attached
2026-10-08 17:30:03 +13:00
Dean 9ba908c202 Merge pull request #1356 from gjonn/feat/pad-open-ext-special
feat(libScePad): report special controllers as not connected in scePadOpenExt
2026-10-08 17:27:00 +13:00
Dean 893af87af0 Merge pull request #1353 from gjonn/feat/mbus-no-devices
feat(libSceMbus): add the device service with no devices attached
2026-10-08 17:26:49 +13:00
popcoder565andClaude Opus 5.5 f8c1e0c64f fix(libkernel): keep sceKernelRaiseException redirects out of NtContinue
A raised exception redirects the target thread to a stub that runs the handler and returns through RtlRestoreContext. On Windows 10 (19045) RtlRestoreContext restores in user mode only when the context flags are exactly CONTEXT_FULL | CONTEXT_SEGMENTS (CONTEXT_XSTATE aside); for the CONTEXT_FULL | CONTEXT_FLOATING_POINT context it was given, it calls NtContinue. When the next raise suspended the thread inside that system call, NtContinue then replaced the redirected context with the one it was restoring, so the handler never ran although sceKernelRaiseException had returned 0. guest_raise_exception lost such a delivery to its busy thread in about one run in five and hung until the ctest timeout.

The context is now read with CONTEXT_SEGMENTS, so the handler returns through the user-mode restore, and a raise that finds the thread inside NtContinue or NtContinueEx (an APC or an exception handler returning) resumes it and suspends it again.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 23:48:16 -04:00
Dean a9ba39c927 Merge pull request #1258 from MathiasDevelopes/feat/audioout2-mastering-setparam
feat(libSceAudioOut): accept sceAudioOut2MasteringSetParam
2026-10-08 16:35:16 +13:00
hugodearaujoandClaude Opus 5.5 56e4ee3565 fix(voiceqos): return the console's sceVoiceQoSInit argument errors
Measured on a PS5 (firmware 13.60) through dlopen of
libSceVoiceQoS.sprx: a null block, any size other than exactly 0x40000,
and an app type other than 0x20000000 or 0x10000000 all return
0x804E0902 without touching the block, instead of throwing. A second
initialization returns 0x804E0905, as prosper reads from the module.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 23:34:15 -03:00
Gjon Gojcevic 8d1d430599 feat(libSceTextToSpeech2): report the speech engine as unavailable
sceTextToSpeech2Initialize fails so titles skip narration; the other imported exports throw.
2026-10-08 15:31:10 +13:00
Gjon Gojcevic 54ed8e7f9c feat(libScePad): report special controllers as not connected in scePadOpenExt
Add scePadOpenExt for special ports, which return DEVICE_NOT_CONNECTED because the host has no special controller, and the extended read and report exports, which throw.
2026-10-08 15:31:10 +13:00
Gjon Gojcevic cb00552dd6 feat(libSceBluetoothHid): add Bluetooth HID with no devices attached
Initialization and callback and device registration succeed, no device ever connects, and calls that need a device throw.
2026-10-08 15:30:58 +13:00
Gjon Gojcevic 10e5b0c33a feat(libSceMbus): add the device service with no devices attached
Initialization and termination succeed, no device events are reported and device queries return no entries.
2026-10-08 15:30:58 +13:00
Dean b015323ef0 Merge pull request #1363 from gjonn/feat/share-running-status
feat(libSceShare): report no running share feature in sceShareGetRunningStatus
2026-10-08 15:18:42 +13:00
Dean 4979afbe1e Merge pull request #1347 from gjonn/feat/hmd2-unavailable
feat(libSceHmd2): add PS VR2 modules that report the runtime as unavailable
2026-10-08 15:18:06 +13:00
Dean 497bd113d5 Merge pull request #1243 from tv7/feat/player-review-dialog
feat(libSceCdlgPlayerReview): add the player review dialog
2026-10-08 15:17:45 +13:00
Gjon Gojcevic b692e320c3 feat(recompiler): accept lwe on MIMG samples and gathers
The LOD warning lwe adds to the texel status is texture-streaming feedback,
which is not reported for the T# MIN_LOD_WARN either. Accept lwe on sample
and gather instructions as it already is on loads and stores; lwe on
image_get_lod still throws.
2026-10-07 21:18:19 -04:00
Gjon Gojcevic 35e3b69a2b feat(libSceShare): report no running share feature in sceShareGetRunningStatus
The host never records or broadcasts, so the first status word is cleared and the call succeeds; a null status is rejected.
2026-10-07 20:21:26 -04:00
Gjon Gojcevic a988b8b1d0 feat(libSceHmd2): add PS VR2 modules that report the runtime as unavailable
sceHmd2Initialize fails, so titles skip their VR set-up; the other libSceHmd2 and libSceVrTracker2 exports throw.
2026-10-07 19:58:01 -04:00
MerijnandClaude Opus 5.5 b86370285b fix(kernel): throw on unsupported unwind tables in sceKernelGetModuleInfoForUnwind
Once an image has .ehmeta, an eh_frame_hdr version other than 1, an
eh_frame_ptr encoding other than absptr or pcrel, a 64-bit record length,
an eh_frame_ptr outside the image or a missing terminator now throw
instead of returning the empty answer. The test queries a fixture DLL
whose .ehmeta it can break, since the unwinder reads the same section.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 00:54:43 +02:00
TibixDev 97f16be342 fix(savedata): keep progress dialogs running until closed
Opening a save progress dialog immediately reported FINISHED. Skyrim
waited for RUNNING before writing SAVEDATA.DAT and never resumed. Keep
progress-bar mode running through polling and progress updates until
Close, retaining the existing automatic responses for other dialog modes.

Add lifecycle regression coverage for repeated polling, completion,
reopening, result metadata and ordinary selection dialogs. The test
failed on the previous implementation and passes with the fix on Fedora
44 Release. Correcting the live dialog state recovered a blocked Skyrim
save without restarting its session.

Written with AI assistance.
2026-10-08 01:37:34 +03:00
hugodearaujoandClaude Opus 5.5 a156104cba fix(rtc): parse RFC 2822, RFC 850 and asctime text like the console
Measured on a PS5 (firmware 13.60) through dlopen of libSceRtc.sprx.
The weekday is required in any case or length, month names may be
full, RFC 2822 and RFC 850 share one lenient grammar with 2-digit years
split at 50, and the asctime zone is ignored. Zones come from a name
table, a military letter, or +HHMM without a range check. Text the
console rejects returns a parse error with the tick untouched, and an
invalid calendar date returns 0 with only the offset applied to the
tick, as the console does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 19:08:10 -03:00
hugodearaujoandClaude Opus 5.5 32dd014efe fix(rtc): parse ISO text in sceRtcParseDateTime by the RFC 3339 rules
On a PS5 (firmware 13.60) every input that starts with a digit gets the
same result and tick from sceRtcParseDateTime as from
sceRtcParseRFC3339, except that leading spaces and tabs are skipped
first. A string without a zone, or with a space instead of T, is a
parse error rather than UTC.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 19:04:17 -03:00
Karan Shrivastava 954d6f19b1 fix(libSceRtc): answer out-of-range years in sceRtcGetDosTime
A year before 1980 or after 2107 cannot be packed into the DOS time, so
GetDosTime threw. Following the disassembly-derived fpPS4
reimplementation of the PS4 library, it now returns INVALID_YEAR after
writing 0 for an earlier year and 0xff9fbf7d, the largest encodable
time, for a later one. The TechnicalDebt entry now records fpPS4 as the
source for the SetDosTime year decode as well.
2026-10-07 17:18:42 -04:00
Adrià fb0d627ff6 Merge pull request #839 from merwie/fix/audioout2-read-grain-at-playback
fix(audioout2): read grains at the next push and play them behind a cushion
2026-10-07 22:29:12 +02:00
Adrià e674a6384d Merge pull request #760 from merwie/feat/kernel-raise-exception-windows
feat(libkernel): deliver sceKernelRaiseException on Windows
2026-10-07 22:27:39 +02:00
Adrià 003e699b27 Merge pull request #910 from Pacuka/feat/smurfs-exports
feat(libs): add sceAudioInAsyncOpen and sceHttp2SetMinSslVersion
2026-10-07 22:23:15 +02:00
Dean 7e7ef7a73f Merge pull request #1247 from gjonn/feat/razorcpu-plot-value-bookmark
feat(libSceRazorCpu): add sceRazorCpuPlotValue and sceRazorCpuWriteBookmark
2026-10-08 09:22:46 +13:00
Dean 76543c2e89 Merge pull request #1020 from gjonn/feat/ngs2-parse-waveform-file
feat(libSceNgs2.native): implement sceNgs2ParseWaveformFile and parse 16-bit PCM waveforms
2026-10-08 09:21:16 +13:00
Adrià d964601c08 Merge pull request #844 from merwie/feat/agc-get-eq-context-id
feat(agc): implement sceAgcDriverGetEqContextId
2026-10-07 22:21:01 +02:00
MerijnandClaude Opus 5.5 cd7735ceab fix(audioout): drop captured buffers of a port whose slot was reused
A captured grain stored only the port slot and data pointer, so a port
created in a destroyed port's slot before the next push mixed the old
pointer with its own format. Ports now carry a generation that the
capture records. TechnicalDebt notes that the last grain pushed before a
title stops is never played.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 22:13:30 +02:00
Celegans12 a0d4b45591 fix(shader): mask EXEC copies to the host subgroup's lanes
A wave64 graphics program on a 32-lane host runs one guest lane per
invocation, yet an EXEC written as a value keeps all 64 bits: the NGG
prologue's s_lshr_b64 exec, -1, 64 - count reads count 0 and sets -1.
A waterfall loop that copies EXEC with s_mov_b64 and retires one key
per pass then never empties its copy, since no ballot sets the lanes
the host lacks, and its v_readlane picks lane 32 and up.

readRawU32 now ANDs EXEC with a ballot of true when it is read as a
value (s_mov_b64, ALU sources, src_execz), and s_*_saveexec and
s_*_wrexec store that masked copy. EXEC's own words, threadBit and the
saveexec combination keep the raw words, so s_orn2_saveexec_b64 vcc,
exec still sets all 64 bits. On subgroups under 32 lanes the EXEC_LO
copies of agc_driver_scalar_sop1 now hold only the subgroup's lanes.
2026-10-07 22:11:59 +02:00
Sanjaysrinivas dbf10824a7 docs(shader): avoid src2 PR overlap 2026-10-07 22:06:03 +02:00
Adrià FranchandClaude 5b28b82af2 fix(libs): give sceAudioInAsyncOpen its signature and move the Http2 TechnicalDebt line
Co-Authored-By: Claude <[email protected]>
2026-10-07 22:01:29 +02:00
PacukaandClaude Opus 5.5 23398893cd feat(libs): add sceAudioInAsyncOpen and sceHttp2SetMinSslVersion
The Smurfs Dreams imports both and no library exports them, so eager
binding stops the title before it starts. sceAudioInAsyncOpen throws
like the other AudioIn opens that have no implementation;
sceHttp2SetMinSslVersion returns success like the other Http2 SSL
setters, as no request reaches the network.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 22:01:17 +02:00