Commit Graph
97 Commits
Author SHA1 Message Date
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
Federico Marras 25b6f6e50b Merge branch 'feat/ngs2-calc-atrac9-block' into feat/ngs2-atrac9-module-loops 2026-10-23 07:22:20 +02:00
Federico Marras 767e188339 test(libSceNgs2.native): expect the module's ATRAC9 block in the frame info test 2026-10-23 07:21:17 +02:00
Federico Marras 601d6dbe38 Merge remote-tracking branch 'upstream/main' into feat/ngs2-calc-atrac9-block 2026-10-23 07:19:59 +02:00
Federico Marras 0477c9c3f2 Merge remote-tracking branch 'upstream/main' into feat/ngs2-atrac9-module-loops 2026-10-23 07:18:26 +02:00
Federico Marras 6660dd080d fix(libSceNgs2.native): throw for ATRAC9 loops inside the decoder delay and blocks past the data chunk 2026-10-23 07:18:26 +02:00
Federico Marras 04884d6784 Merge branch 'feat/ngs2-system-option-codes' into feat/ngs2-system-rate-grain-codes 2026-10-23 05:26:42 +02:00
Federico Marras ad5df50d6d Merge branch 'feat/ngs2-system-option-codes' into feat/ngs2-system-create-arguments
# Conflicts:
#	core/libs/prx/libSceNgs2.native/include/Ngs2Types.hpp
2026-10-23 05:25:39 +02:00
Federico Marras e03475e92f Merge remote-tracking branch 'upstream/main' into feat/ngs2-system-option-codes
# Conflicts:
#	core/libs/prx/libSceNgs2.native/src/System.cpp
2026-10-23 05:23:59 +02:00
Dean Galvin e51d8c57f0 Merge main into feat/ngs2-render-buffer-codes 2026-10-23 16:23:20 +13:00
Dean 01f99305be Merge pull request #8341 from KernelPanicNT/fix/ngs2-system-option-flag-bit1
fix(libSceNgs2): accept system option flag bit 1
2026-10-23 16:21:15 +13:00
Dean Galvin ae913751f0 Merge main into codex/ngs2-userfx-module-id 2026-10-23 15:53:12 +13:00
Dean a1d4803486 Merge pull request #9233 from EdouardSence/feat/ngs2-custom-gain
feat(libSceNgs2): process the custom Gain module
2026-10-23 15:32:08 +13:00
Dean Galvin 493ef8f07e Merge main into feat/ngs2-system-rate-grain-codes 2026-10-23 14:37:02 +13:00
Dean 7f3c6b9b08 Merge pull request #9145 from MarrasFederico/feat/ngs2-calc-vag-block
feat(libSceNgs2.native): map VAG waveform blocks in sceNgs2CalcWaveformBlock
2026-10-23 13:59:22 +13:00
Dean 78becbb373 Merge pull request #8528 from MarrasFederico/feat/ngs2-waveform-frame-info
feat(libSceNgs2): report the frame layout of a PCM waveform in sceNgs2GetWaveformFrameInfo
2026-10-23 12:02:28 +13:00
Dean eb8dcfebaa Merge pull request #9837 from JAB-dev/fix/ngs2-pan-init-validation
fix(libSceNgs2): return the SDK pan error codes from sceNgs2PanInit
2026-10-23 10:43:59 +13:00
Th3EvilGod b553950efd fix(ngs2): correct UserFx ids and preserve the Delay compatibility path 2026-10-23 01:17:40 +04:00
Dean Galvin 3e00103497 Merge main into feat/ngs2-custom-gain 2026-10-23 09:17:07 +13:00
Dean 5c13a1be0f Merge pull request #8692 from JAB-dev/fix/ngs2-geom-listener-errors
fix(libSceNgs2): return INVALID_GEOM_FLAG and the listener-address error from sceNgs2GeomCalcListener
2026-10-23 08:51:25 +13:00
JAB-devandClaude Sonnet 5.5 b939663075 fix(libSceNgs2): return the SDK pan error codes from sceNgs2PanInit
An unsupported speaker count returns 0x804A8451, a unit angle other than 360 or 2*pi with angles returns 0x804A8450 and a null work returns 0x804A8010, leaving the work untouched, instead of throwing.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 18:01:40 +02:00
EdouardSenceandClaude Opus 5.5 8f6f1eac86 fix(libSceNgs2): throw for a custom Gain module with an option
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 09:11:01 +02:00
Federico Marras 69b21adf32 fix(libSceNgs2.native): parse ATRAC9 smpl loops as the module does 2026-10-21 20:31:46 +02:00
Federico Marras 738308a2be fix(libSceNgs2.native): return the module's errors for render buffer counts, types and null buffers 2026-10-21 20:19:46 +02:00
Federico Marras 62799443d5 fix(libSceNgs2.native): return the module's buffer and allocator errors from sceNgs2SystemCreate and sceNgs2SystemCreateWithAllocator 2026-10-21 20:15:07 +02:00
Federico Marras 424a12fd0e fix(libSceNgs2.native): return the module's codes from sceNgs2SystemSetSampleRate and sceNgs2SystemSetGrainSamples 2026-10-21 20:12:28 +02:00
Federico Marras 310cb0c4b5 fix(libSceNgs2.native): validate the system option with the module's error codes 2026-10-21 20:06:25 +02:00
Federico Marras 6978f110ee Merge branch 'fix/ngs2-atrac9-parsed-delay' into feat/ngs2-atrac9-module-loops 2026-10-21 20:00:38 +02:00
EdouardSenceandClaude Opus 5.5 8c9444b5ae feat(libSceNgs2): process the custom Gain module
A custom submixer rack now accepts the Gain module (0x15). Its voice
parameter 0x40001500 | module index sets one linear level per channel
(37 levels, default 0), and each grain multiplies the voice's samples
by a level that ramps linearly from the previous one to the new one,
following fma-rc's reading of the PS5 12.70 module (#8039). Gain on a
custom sampler rack, whose parameter index is offset, still throws, as
do levels outside -32 to 32.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 17:51:44 +02:00
Federico Marras 3c242fdd81 feat(libSceNgs2.native): map ATRAC9 waveform blocks as the module does in sceNgs2CalcWaveformBlock 2026-10-21 15:57:30 +02:00
KernelPanicNT 9f5640af66 fix(libSceNgs2): return the custom rack creation errors
sceNgs2RackCreate and sceNgs2RackCreateWithAllocator now return the firmware's errors for a custom rack whose buffer count is outside 1 to 4 or below the submixer's max_inputs, whose module buffer id is at or above the count, or whose submixer has more than 37 channels, and for the state sizes of the Gain, Reverb and PitchShift modules, the Reverb option size and word, and the PitchShift option word. Racks that pass these checks with one of these modules or Convolution, with more than one buffer, more than 8 channels or a submixer max_inputs other than 1 or 2 still throw, and so does sceNgs2RackQueryBufferSize for the rejected options.
2026-10-21 13:35:52 +00:00
Federico Marras 2e706ed2e1 feat(libSceNgs2.native): map VAG waveform blocks in sceNgs2CalcWaveformBlock 2026-10-21 15:28:54 +02:00
Federico Marras 4fb70223dd fix(libSceNgs2.native): report one ATRAC9 frame as the parsed decoder delay 2026-10-21 15:26:05 +02:00
Federico Marras c6a2cf6042 Merge remote-tracking branch 'upstream/main' into feat/ngs2-waveform-frame-info
# Conflicts:
#	core/libs/prx/libSceNgs2.native/tests/Ngs2Atrac9.cpp
2026-10-21 14:27:59 +02:00
Federico Marras 4a446319ef docs(libSceNgs2.native): shorten the sceNgs2GetWaveformFrameInfo debt entry 2026-10-21 14:20:22 +02:00
Adrià 94b2b54e8c Merge pull request #8338 from KernelPanicNT/feat/ngs2-calc-waveform-block-pcm
feat(libSceNgs2): map waveform blocks of linear PCM and float types
2026-10-21 14:17:40 +02:00
Federico Marras e556f153ef Merge remote-tracking branch 'upstream/main' into feat/ngs2-waveform-frame-info
# Conflicts:
#	docs/dev/debt/libSceNgs2.md
2026-10-21 14:15:23 +02:00
Federico Marras 546d62d6b4 feat(libSceNgs2): report the ATRAC9 frame layout in sceNgs2GetWaveformFrameInfo 2026-10-21 13:46:12 +02:00
Federico Marras 15c0a386be Merge remote-tracking branch 'upstream/main' into feat/ngs2-waveform-frame-info
# Conflicts:
#	docs/dev/debt/libSceNgs2.md
#	docs/dev/debt/libSceNgs2.native.md
2026-10-21 12:57:17 +02:00
Federico Marras c8e99c7f71 Merge remote-tracking branch 'upstream/main' into feat/ngs2-voice-owner
# Conflicts:
#	docs/dev/debt/libSceNgs2.md
2026-10-21 12:56:14 +02:00
Dean 1fd67185b6 Merge pull request #8513 from milescoviello/fix/ngs2-destroy-in-own-render
fix(libSceNgs2): refuse a destroy from inside its own system's render
2026-10-21 17:44:56 +13:00
Dean 141a6a5104 Merge pull request #8322 from MarrasFederico/feat/ngs2-rack-user-data
feat(libSceNgs2): keep caller data on racks with sceNgs2RackSetUserData and sceNgs2RackGetUserData
2026-10-21 16:06:57 +13:00
JAB-devandClaude Sonnet 5.5 8420e13688 fix(libSceNgs2): return INVALID_GEOM_FLAG and the listener-address error from sceNgs2GeomCalcListener
A flags value above 1 returns 0x804A8463 and a null listener parameter returns 0x804A8461, both leaving the output untouched, instead of throwing.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 23:09:48 +02:00
milescovielloandClaude Opus 5.5 0ff3d32a3d fix(libSceNgs2): count a system's renders to refuse a destroy from a nested render
A render recorded only the innermost system it was rendering, so a
destroy called from the callback of a system rendered inside another
system's callback was let through, and the outer render then used the
destroyed rack. Each system now counts the renders it is in. A destroy
first waits until no other thread holds the exclusive state, so a
non-zero count can only come from the calling thread's own stack.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 19:07:53 +00:00
Federico Marras dd482733e5 feat(libSceNgs2): report the frame layout of a PCM waveform in sceNgs2GetWaveformFrameInfo 2026-10-20 17:14:56 +02:00
milescovielloandClaude Opus 5.5 f1cafaca07 fix(libSceNgs2): refuse a destroy from inside its own system's render
A voice callback runs during its system's render. A rack or system
destroyed from that callback was freed while the render still walked
it, which corrupted the heap. sceNgs2RackDestroy and
sceNgs2SystemDestroy now throw when the calling thread is rendering
that system; the console's behaviour there is not measured.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 14:23:07 +00:00