Commit Graph
200 Commits
Author SHA1 Message Date
Adrià acd13871af Merge pull request #11354 from edubox/feat/ngs2-peak-meter
feat(ngs2): implement the sampler and submixer peak meter
2026-10-28 15:16:05 +01:00
edubox dfc5c7c6c7 fix(ngs2): reset the custom filter selected by the parameter index 2026-10-28 09:02:55 +01:00
Eduardo Ruiz a2d5b03456 fix(ngs2): clear the peak-meter mode on a voice reset 2026-10-28 09:02:36 +01:00
Eduardo Ruiz f20abed467 test(ngs2): cover the peak-meter history and reset 2026-10-28 09:02:36 +01:00
edubox d62e8f42ea feat(ngs2): implement the sampler and submixer peak meter 2026-10-28 09:02:36 +01:00
Dean 5d52b06ff3 Merge pull request #9324 from MarrasFederico/feat/ngs2-parse-format-codes
fix(libSceNgs2.native): return 0x804A8432 for waveform formats the module does not parse
2026-10-27 21:35:03 +13:00
Dean 66beccdd49 Merge pull request #10944 from ahmadmuj/fix/anyps5-unbuilt-split-exports
fix(prx): build and export the stubs that eight libraries never shipped
2026-10-27 10:56:58 +13:00
Ahmad Mujahid a073f12cd0 test: check the split-export stubs are linked without calling them 2026-10-26 18:34:31 +04:00
Ahmad Mujahid d7b1c96333 Merge remote-tracking branch 'origin/main' into fix/anyps5-unbuilt-split-exports 2026-10-26 18:33:16 +04:00
Federico Marras b09af0dc73 test(libSceNgs2.native): stop requiring the unparsed waveform routes to throw 2026-10-26 14:29:51 +01:00
Federico Marras 735b905120 Merge remote-tracking branch 'origin/main' into feat/ngs2-parse-format-codes 2026-10-26 13:40:23 +01:00
Felipebmaitan c40ba98945 test(ngs2): stop asserting unimplemented audio behavior 2026-10-26 09:04:33 -03:00
Felipebmaitan 0c3f104067 chore(ngs2): merge current main for audio routing 2026-10-26 09:03:02 -03:00
Dean 65c2713b6c Merge pull request #10410 from JAB-dev/fix/ngs2-mastering-gain-ps5
fix(libSceNgs2): clamp the mastering gain to +-32 and keep NaN, as the PS5 module does
2026-10-26 22:01:52 +13:00
Dean 346a1be323 Merge pull request #10127 from Felipebmaitan/feat/ngs2-pcm-playback
feat(ngs2): play additional PCM sampler formats
2026-10-26 12:10:04 +13:00
Dean 1240c09878 Merge pull request #9148 from MarrasFederico/feat/ngs2-parse-pcm-depths
feat(libSceNgs2.native): parse 8-, 24- and 32-bit PCM and float waveforms
2026-10-26 11:01:52 +13:00
Dean 59bf9480f7 Merge pull request #10432 from JAB-dev/fix/ngs2-pan-ps5
fix(libSceNgs2): return the PS5 pan codes and accept NaN pan inputs
2026-10-26 06:14:03 +13:00
Felipebmaitan 1cccff9441 test(ngs2): preserve PCM playback after empty setup 2026-10-25 13:41:29 -03:00
Felipebmaitan 00f048de3a test(ngs2): avoid asserting unimplemented PCM behavior 2026-10-25 13:40:19 -03:00
Felipebmaitan 08587dfa7e feat(ngs2): play additional PCM sampler formats 2026-10-25 13:40:18 -03:00
JAB-devandClaude Sonnet 5.5 e84640cd83 test(libSceNgs2): drop the throw assertion for a NaN gain into PCM_I16L
NaN-to-PCM_I16L output is marked unimplemented in Render.cpp and the debt entry,
and the test rule excludes asserting that an unimplemented path throws. The
production exception and the debt entry stay.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 14:47:07 +02:00
JAB-devandClaude Sonnet 5.5 ef6f00b33b test(libSceNgs2): keep the mastering gain test's waveforms alive while it renders
The test's chain helper built its PCM vector as a local and handed the sampler a
pointer into it, so every render read freed memory. Windows left the old samples
in place; Linux overwrote them and the first case rendered 0.1875 instead of 16.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 14:29:44 +02:00
JAB-devandClaude Sonnet 5.5 0abe9d8f4b Merge main into fix/ngs2-mastering-gain-ps5
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 14:21:57 +02:00
Ahmad Mujahid 11b193cf35 fix(prx): build and export the stubs that eight libraries never shipped
The 2026-10-21 split PRs added Export.cpp stub files to seven libraries
that have their own CMakeLists.txt, so core/libs/CMakeLists.txt never
adds Export.cpp for them and no target compiled the 101 stubs. A title
that imports one fails to load instead of throwing on the call.

Ngs2, Ngs2.native and AvPlayer.native build with hidden visibility, so
their stub files also need default visibility. libSceNgs2 already
compiled PendingExports.cpp, but its 6 stubs stayed local.
2026-10-25 15:10:46 +04:00
Adrià 1ca0c5d86c Merge pull request #9926 from JAB-dev/fix/ngs2-play-without-setup
fix(libSceNgs2): return INVALID_VOICE_ACCESS for PLAY on a voice that was never set up
2026-10-25 10:22:17 +01:00
Felipebmaitan e50cbf349d test(ngs2): distinguish custom safety refusals 2026-10-25 02:06:55 -03:00
Felipebmaitan a43a610bbf fix(ngs2): reject routes changed during recursive rendering 2026-10-25 01:52:16 -03:00
Felipebmaitan 2da1332bff test(ngs2): expose callback route mutation 2026-10-25 01:50:47 -03:00
Felipebmaitan 19f088c8ff test(ngs2): cover custom processing reentry boundaries 2026-10-25 01:46:22 -03:00
Felipebmaitan 93b887e514 feat(ngs2): route custom submixer buffers through Gain 2026-10-25 01:34:10 -03:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
Dean fe0207e20f Merge pull request #10347 from hugodearaujo/fix/ngs2-reverb-channel-conversion
fix(libSceNgs2.native): accept a reverb voice with different input and output channel counts
2026-10-25 01:53:08 +13:00
Kapy2003 a25aa36641 feat(libSceNgs2): support custom mastering rack 0x4003
Accept SCE_NGS2_RACK_ID_CUSTOM_MASTERING (0x4003) using the 0x508-byte
custom rack option layout without modules. Channels above NGS2_MAX_CHANNELS
(8) and non-zero module counts throw runtime_error as unsupported. Support
mastering voice control parameters 0x40030000 (setup), 0x40030004 (gain),
and 0x40030005 (output), write active mastering voices to render buffers,
and return voice state flags in sceNgs2VoiceGetState.

References #8039.
2026-10-24 09:58:09 +05:30
JAB-devandClaude Sonnet 5.5 b307813438 test(libSceNgs2): pin the PS5 pan codes, NaN LFE level and radian wrap throw
The tests now check the SDK values of the pan error constants, that 0 params leaves the output untouched, that a NaN param angle keeps its LFE level with 7 speakers, and that a param one float below the first speaker in radians throws. The throw messages and the debt entry say the PS5 module did not return within 60 s for those inputs instead of claiming it never returns.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 02:06:01 +02:00
JAB-devandClaude Sonnet 5.5 8da1a2dc0b fix(libSceNgs2): return the PS5 pan codes and accept NaN pan inputs
sceNgs2PanGetVolumeMatrix now returns the PS5 error codes in the PS5 check order instead of throwing, and lets NaN angles and distances through as the PS5 module does. sceNgs2PanInit gives the 7-speaker degree defaults for 0 speakers without angles, stores NaN speaker angles and leaves unused slots untouched. Inputs on which the PS5 library never returns still throw.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 00:51:07 +02:00
JAB-devandClaude Sonnet 5.5 3f18aed2a5 fix(libSceNgs2): clamp the mastering gain to +-32 as the PS5 module does
The PS5 libSceNgs2.native (firmware 3.20 and 4.03) accepts every value of the mastering gain param 0x30000004 with return code 0, clamps each level to [-32, 32] (so +-inf gives +-32) and keeps NaN, which then gives NaN samples. Ours threw on NaN and inf and did not clamp. A NaN sample in a PCM_I16L render buffer now throws, since the PS5 conversion was only measured into float buffers.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 00:10:35 +02:00
hugodearaujo 716498d4e1 test(libSceNgs2.native): drop the reverb setup flags expectation 2026-10-23 18:11:57 -03:00
hugodearaujo 1762c1dfca test(libSceNgs2.native): check the 2-in, 8-out reverb layout PPSA03747 sets up 2026-10-23 17:08:07 -03:00
hugodearaujo 7b19b87f27 fix(libSceNgs2.native): accept a reverb voice with different input and output channel counts 2026-10-23 15:31:33 -03:00
Dean 1fc30716fa Merge pull request #10024 from ags-arnab/feat/ngs2-matrix-module-info
feat(libSceNgs2): implement sceNgs2VoiceGetMatrixInfo and sceNgs2CustomRackGetModuleInfo
2026-10-24 01:43:41 +13:00
JAB-devandClaude Sonnet 5.5 2375223a92 fix(libSceNgs2): an all-zero sampler setup leaves an earlier setup untouched, as the PS5 module does
The PS5 libSceNgs2.native module (firmware 3.20 and 4.03) accepts a setup with an all-zero format on a configured voice and keeps its format, so a play afterwards succeeds. The guard for a play on a voice with no channels would otherwise fail it.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:00:47 +02:00
JAB-devandClaude Sonnet 5.5 45b061fa6c Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/ngs2-play-without-setup
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 13:59:13 +02:00
Dean c188e01a42 Merge pull request #9315 from MarrasFederico/feat/ngs2-system-rate-grain-codes
fix(libSceNgs2.native): return the module's codes from sceNgs2SystemSetSampleRate and sceNgs2SystemSetGrainSamples
2026-10-23 22:54:32 +13:00
Federico Marras 74c6791861 Merge remote-tracking branch 'upstream/main' into feat/ngs2-system-rate-grain-codes
# Conflicts:
#	docs/dev/debt/libSceNgs2.native.md
2026-10-23 11:08:40 +02:00
Federico Marras 012b87293b Merge remote-tracking branch 'upstream/main' into feat/ngs2-render-buffer-codes
# Conflicts:
#	docs/dev/debt/libSceNgs2.native.md
2026-10-23 11:07:02 +02:00
Dean 6ee38720fc Merge pull request #9327 from MarrasFederico/feat/ngs2-atrac9-module-loops
fix(libSceNgs2.native): parse ATRAC9 smpl loops as the module does
2026-10-23 21:47:55 +13:00
Dean 3d9c01daed Merge pull request #9337 from Th3EvilGod/codex/ngs2-userfx-module-id
fix(ngs2): correct UserFx ids and preserve Delay compatibility
2026-10-23 20:24:20 +13:00
JAB-dev 2cf37664d2 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/ngs2-play-without-setup
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceNgs2.native/include/Ngs2Types.hpp
2026-10-23 08:29:14 +02:00
JAB-devandClaude Sonnet 5.5 9723f7af66 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/ngs2-play-without-setup
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 07:58:53 +02:00
Federico Marras 25b6f6e50b Merge branch 'feat/ngs2-calc-atrac9-block' into feat/ngs2-atrac9-module-loops 2026-10-23 07:22:20 +02:00