Real-time systems · Embedded audio · Opus
Wii/GameCube low-latency Opus audio
A PC-to-console audio pipeline that carries Opus packets through a GameCube controller serial port using TAStm32.
- Time to working pipeline
- About one week
- Period
- August 2026
- Role
- Transport, embedded decoding and audio output
Project outline
Audio through an unusual serial link
I built a low-latency path from a PC to Wii/GameCube homebrew by using my TAStm32 fork to stream Opus data through the controller serial port. The work spans two repositories: the STM32 controller-interface firmware and the console-side homebrew application.
Transport and loss handling
The sender turns encoded audio into packets suited to the controller link. On the console, the transport reassembles those packets and handles loss before passing complete frames to the embedded Opus decoder.
Real-time playback
Decoded samples flow through FIFO and ring buffers into the Wii audio DMA path. Buffer sizes and defaults were tuned to balance drop-out resistance against the latency that makes interactive audio feel disconnected.