Implement GameCube/Wii audio playback via libansnd
Allocates an ansnd voice per stream and configures/starts it in single-buffer mode (no continuous re-feed needed yet, matching the PSP/Linux single-shot approach). Real linear panning from directionality via left/right voice volume. ansnd has no polling API for voice state, so finish detection uses a voice_callback (fired from ansnd's own audio DMA interrupt, not the main thread) that sets a flag audioStreamDolphinIsFinished() reads. Links libansnd (new for this project) and wires duskdolphin/audio into the CMake build for the first time. Verified via the dusk-dolphin toolchain: both GameCube and Wii targets compile and link cleanly. Runtime verification in headless Dolphin was inconclusive - confirmed via an A/B test against a pre-audio baseline build that a pre-existing MMIO flood (unrelated to this change, reproduces identically with zero audio code present) keeps the harness from reaching the game's own steady state before timing out.
This commit is contained in:
@@ -61,6 +61,7 @@ target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PRIVATE
|
||||
zstd
|
||||
z
|
||||
lzma
|
||||
ansnd
|
||||
)
|
||||
|
||||
if(DUSK_DOLPHIN_BUILD_TYPE STREQUAL "ISO")
|
||||
|
||||
Reference in New Issue
Block a user