Skip to content

green-nx 1.0.5

Choose a tag to compare

@rmrf404 rmrf404 released this 22 Jul 13:51

Audio fixed

The scratchy / stuttering / freezing sound present since 1.0.0 is gone. It had three root causes, all below the app's own playback code:

  • SDL2's Switch audio backend is broken: it queues one hardware buffer at a time and busy-waits for it to start playing before accepting more audio, in 5 ms audio-renderer steps. The device ends up consuming audio at ~85% of real time with a 5 ms gap whenever a cycle loses the race. green-nx now feeds the console's audout service directly, keeping four 10 ms buffers queued at all times — gapless by construction.
  • Packet reordering: Opus audio packets are now reordered by RTP sequence number before decoding (Opus is stateful — decoding out of order is audible). Required a libpeer fix to stop stripping the RTP header from generic payloads.
  • Clock-skew servo: the server's 48 kHz and the console's 48 kHz are different physical clocks. A depth servo now stretches/shrinks decoded audio by up to 0.2% (inaudible) to hold buffering at a 100 ms target, so drift can never accumulate into a dropout.

Also adds per-second audio telemetry to stream-log.txt — if you ever hear an issue, the log now shows exactly which stage caused it.

Install

Copy green-nx.nro to /switch/ on your SD card.