Commit Graph
28 Commits
Author SHA1 Message Date
boykopovar 35cf8d56cd refactor(sdk): add canonical headers for core libraries 2026-10-24 23:17:37 +03:00
Dean 7367e19f86 Merge pull request #8938 from hypermoist/feat/audioin-pad-embedded-mic
feat(libSceAudioIn): answer sceAudioInIsPadEmbeddedMic for open ports
2026-10-23 12:52:57 +13:00
Dean 5366b8b911 Merge pull request #8914 from hypermoist/feat/audioin-open-ex
feat(libSceAudioIn): open ports through the Ex calls and accept the two setters
2026-10-23 10:57:08 +13:00
hypermist 2bd2a875b2 Merge remote-tracking branch 'upstream/main' into feat/audioin-pad-embedded-mic
# Conflicts:
#	docs/dev/debt/libSceAudioIn.md
2026-10-22 15:14:15 +13:00
boykopovar 9047c23198 fix(audioin): match native hq and async open validation 2026-10-21 21:51:51 +03:00
hypermistandClaude Opus 5.5 99255c6144 feat(libSceAudioIn): answer sceAudioInIsPadEmbeddedMic for open ports
The PS5 module returns 1 when the port captures from the controller's
built-in microphone, 0 for another input device, and an error for a
handle that names no open port. Ports here capture from the host's
default input device, so an open port answers 0 and any other handle
returns 0x80260101, as the other handle calls do.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 19:40:35 +13:00
hypermistandClaude Opus 5.5 765058d430 feat(libSceAudioIn): open ports through the Ex calls and accept the two setters
sceAudioInOpenEx and sceAudioInHqOpenEx threw. In the PS5 12.00 module both
call the shared open routine that sceAudioInOpen uses, with one extra
argument in fourth place that only reaches the console's Mbus handle
registration. HqOpenEx sets the high-quality flag but skips the length,
rate and parameter checks of sceAudioInHqOpen, so both open like
sceAudioInOpen here. sceAudioInSetCompressorPreGain and
sceAudioInSetNoiseGateThreshold return 0 on the console without reading
their arguments.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-21 18:48:51 +13:00
Yuri Olive d4387fbaf7 feat(libSceAudioIn,libSceAudio3d,libSceVoice): export missing firmware interfaces 2026-10-20 07:10:28 -03:00
Federico Marras 323deb832a feat(audioin): implement sceAudioInGetGain and sceAudioInGetRerouteCount
Write the unattenuated linear gain 1.0f into *gain before checking the port handle in sceAudioInGetGain, and return 0 for open ports or SCE_AUDIO_IN_ERROR_INVALID_HANDLE (0x80260101) for closed or out-of-range handles in both sceAudioInGetGain and sceAudioInGetRerouteCount.
2026-10-19 18:57:12 +02:00
xdCloudy 78fc2c1759 feat(prx): declare verified PS5 pending exports 2026-10-19 08:28:58 +01:00
primesoul-web 3f03bc0e24 feat(libs): finish the CesCs conversions and the AudioOut, AudioIn and GameUpdate exports
libSceCesCs goes to 17 of 17: three-byte EUC-JP JIS X 0212 (0x8F)
characters convert through a table read from the Unicode consortium's
JIS0212.TXT, both directions, so sceCesEucJpToUcs2, the MbcsStrTo*
and *Get*Len forms and the context conversions accept them, and a
character with cells in both JIS X 0208 and JIS X 0212 still encodes
to the two-byte form. sceCesRefersUcsProfileCp1250 returns a profile
with the Windows-1250 table of Microsoft's bestfit1250.txt, accepted
by the SBC and context conversions.

The AudioOut HDMI bitstream Sys family follows the Ex ports: SysOpen
opens a port only for mode 5, the TrueHD MAT route EVO-PLAYER-PS5
reads from the firmware 12.70 mode tables, paced at 192 kHz with no
host device; SysConfigureOutput accepts the observed HDMI MAT switch;
SysClose closes a Sys port. sceAudioOut2MasteringGetState fills the
states by states id with the descriptors KytyPS5 declares, SetParam
answers a null parameter with the mastering invalid-API-parameter
error, Set3DLatency follows KytyPS5's output validation (0x80268001
above 2, any user), SetSystemDebugState records the debug state id,
and GetSpeakerArrayCoefficients returns the front pair KytyPS5 and
prosper both return.

sceAudioInOpen accepts param 0x10 as float mono like KytyPS5; HqOpen
answers a longer grain or a lower rate with the invalid-size and
invalid-frequency errors; AsyncOpen also accepts the 384-sample grain
SharpProspero documents. sceGameUpdateGetAddcontLatestVersion answers
a null entitlement label with 0x80412803, as prosper does.
2026-10-18 18:52:36 +02:00
Adrià 2605ad6c76 Merge pull request #3669 from MarcZX100/carry/audioin-open-variants-3340
feat(libSceAudioIn): implement sceAudioInHqOpen and sceAudioInAsyncOpen
2026-10-11 23:46:54 +02:00
David 9ac583bddd feat(libSceAudioIn): implement sceAudioInHqOpen and sceAudioInAsyncOpen
Both open the same SDL capture port as sceAudioInOpen, so Input,
GetSilentState and Close work on their handles. HqOpen accepts only a
128-sample grain at 48 kHz (SharpProspero, KytyPS5); AsyncOpen returns
INVALID_SIZE above 384 samples (SharpProspero). Values the sources
disagree on throw. Format 0x10 still throws: only KytyPS5 accepts it.

Imported by FMOD-based titles, The Smurfs Dreams (PPSA21607) and Astro
Bot (PPSA21564); Ghost of Yotei (PPSA26344) calls sceAudioInOpen.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
(cherry picked from commit 16bfdf928d0a2da0b4473db2633a2e270538cbf5)
2026-10-11 15:03:16 +00:00
Josip Parlov 93f5220d11 refactor(audioin): name X+4jdIS75P0 sceAudioInIsPadEmbeddedMic 2026-10-11 15:36:25 +02:00
husari.orozco 6ad5c61f1a build: route system dependency include paths and pin the shader cache to package versions 2026-10-11 10:18:23 +02:00
Hannah Lyons 6f1ef27953 feat(libSceAudioIn): export sceAudioInInit 2026-10-10 16:25:50 -04:00
popcoder565andClaude Opus 5.5 b2cde4a0f2 fix(audio): pace blocking audio calls with a high-resolution timer
On Windows, nanosleep and this_thread::sleep_for/sleep_until go
through winpthreads, which ends a wait on a 15.6 ms GetTickCount64
step. Blocking sceAudioOutOutput and sceAudioOut2ContextPush calls
returned in bursts about every 16 ms, a blocking sceAudio3dPortPush
ran at about 68 % of real time, and sceAudioInInput without a device
woke anywhere from 1 ms to 31 ms apart. They now sleep with
PreciseSleepUs or the new PreciseSleepUntil.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 01:31:57 +02:00
Dean 43b01023e6 Merge pull request #1084 from MathiasDevelopes/claude/mingw-link-flags
build(libs): strip the MinGW static runtime flags once for all libraries
2026-10-08 09:24:20 +13: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
Claude 121d9332b5 build(libs): strip the MinGW static runtime flags once for all libraries
Every library CMakeLists.txt ended with the same block removing -static,
-static-libgcc and -static-libstdc++ from CMAKE_EXE_LINKER_FLAGS on MinGW,
because core/libs/CMakeLists.txt only removed them after adding the library
directories. Remove them before the libc and library directories are added
so each directory inherits the stripped flags, and drop the 52 copies.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_017pTZqAyVSZy2FZmaqakPHZ
2026-10-07 10:10:38 +00:00
Adrià FranchandClaude a32a593762 fix(audioin): never return a no-device block before its deadline
Co-Authored-By: Claude <[email protected]>
2026-10-04 17:27:50 +02:00
Adrià FranchandClaude 7e5ce945e1 feat(libSceAudioIn): implement sceAudioInClose and throw for the unverified 0x10 format
Close releases the port and its host device; Input and Close on a port
that is capturing return BUSY. Format codes follow the PS5 SDK bindings
(SharpProspero) and KytyPS5: 1/2 S16 mono/stereo, 0x11/0x12 float.

Co-Authored-By: Claude <[email protected]>
2026-10-04 08:39:33 +02:00
Adrià FranchandClaude 29aa4f3cdf feat(libSceAudioIn): capture from the host's recording device
sceAudioInOpen validates the port and opens the default SDL recording
device in the requested format; sceAudioInInput returns one grain of
captured samples, padded with silence when the device falls behind and
keeping at most four grains of latency. Without a recording device a
port reports DEVICE_NONE in sceAudioInGetSilentState and delivers
silence at its sample rate.

Co-Authored-By: Claude <[email protected]>
2026-10-04 08:37:09 +02:00
SP4C3B4R-8andClaude Opus 5.5 f2deb00fa4 feat(libs): declare missing AudioPropagation, AudioIn, NpSessionSignaling and dialog exports
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Bn7CrhG7pTPR6DT13tN6Me
2026-10-01 23:44:31 +02:00
boykopovar abc72da741 feat(libs): define vabi macros + add to declarations 2026-09-10 08:07:03 +03:00
boykopovar 6123893998 feat(libs): throw not impl ex in every stub 2026-09-06 15:05:04 +03:00
boykopovar 59bee8d187 feat(libs): add libs function signatures 2026-08-20 23:18:16 +03:00