Skip to content

v2.2 — JPEG (Reliable Stream)

Choose a tag to compare

@github-actions github-actions released this 05 Jul 05:40

3DSnickerStream v2.2 adds the first reliable NTR-HR streaming mode — smooth, in-order, tear-free.

New: "JPEG (Reliable Stream)"

The Compression dropdown (NTR panel) gains a third option alongside JPEG Compat and Uncompressed:

  • JPEG (Reliable Stream) — the same JPEG picture, but delivered over NTR-HR's custom reliable
    transport (a KCP-style protocol with NACK-based retransmission). Lost packets are re-sent instead of
    dropping the frame, so the image stays clean and tear-free even under Wi-Fi packet loss.

Under the hood this is a full port from ntrviewer-hr: the reliable
transport, the per-core frame framing, and on-the-fly baseline JPEG header synthesis (standard
Annex-K quant/Huffman tables) so the raw scan data the 3DS sends decodes as an ordinary JPEG — no
libjpeg-turbo needed on the client.

Performance (real hardware, over Wi-Fi): ~66 fps on the Home menu and light games, ~36 fps in
heavy scenes. The heavy-scene number is the 3DS encoder's ceiling, not the client's — the reference
viewer behaves the same. This is the smooth mode; prefer it over Uncompressed for everyday streaming.

Downloads

Platform File Notes
Windows …-win-x64.zip unzip, run 3DSnickerStream.exe
Linux …-linux-x86_64.AppImage / …-linux-x64.tar.gz chmod +x the AppImage, or extract the tarball and run ./3DSnickerStream
macOS (Apple Silicon / Intel) build locally a few minutes with the .NET SDK — no Gatekeeper hassle

From v2.2 the CI ships Windows + Linux; the macOS build is produced locally — see
BUILD-MACOS.md.

Requires NTR-HR (or HzMod) running on the 3DS. Everything else is unchanged from v2.1.

Credits

NTR-HR and its Reliable-Stream compression format are the work of xzn
this mode is ported from ntrviewer-hr. Thank you! 🙏

Full changelog: v2.1...v2.2