Releases: samaBR85/3DSnickerStream
Release list
v2.6 — Upscaling Filters (GPU)
3DSnickerStream v2.6 adds Upscaling Filters — sharpen and clean up the little 3DS picture on
your big screen, in real time on the GPU. 🔍
The 3DS screen is tiny (400×240); stretched to a monitor it gets blurry or jagged. These filters fix
that — from a light sharpen to true edge-directed pixel-art upscalers to a neural network. Pick one from
the new Upscale dropdown in the stream bar.
The filters
| Filter | Best for |
|---|---|
| Sharp | crisp, hard pixels — a fast general sharpen |
| xBR | 2D pixel art — smooth, clean diagonals (the classic emulator look) |
| Super-xBR | 2D pixel art — like xBR but anti-aliased edges |
| ScaleFX | 2D pixel art — the reference edge-interpolation upscaler; the smoothest of all |
| FSR | 3D games — AMD-style edge-adaptive upscale + sharpen |
| Anime4K | cel-shaded / line art — smooth base + strong line sharpening |
| Anime4K CNN | a real neural-network upscaler running live on the GPU |
pixel-art tip: xBR / Super-xBR / ScaleFX shine on clean edges — pair them with a Lossless
compression mode for the best result. For 3D games, FSR is the pick.
How it works
Everything runs on your PC's GPU (the stream still comes from the 3DS as before). The filters are
faithful ports of well-known GPU shaders to Avalonia's Skia engine — no external dependencies, still a
single portable download. The multi-pass filters (ScaleFX, Anime4K CNN) chain several shader passes
through GPU textures; if your machine has no GPU, they gracefully fall back to a CPU path.
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 |
The CI ships Windows + Linux; the macOS build is produced locally — see
BUILD-MACOS.md.
Credits
The upscaling algorithms are the work of their original authors, ported here with thanks:
xBR by Hyllian, ScaleFX by Sp00kyFox (both from the libretro shader collection), Anime4K by
bloc97, and FSR by AMD (FidelityFX).
Full changelog: v2.5...v2.6
v2.5 — Lossless (Reliable Stream, Delta)
3DSnickerStream v2.5 adds the Lossless Delta mode — and with it, all six NTR-HR compression
formats are now supported. 🎉
New: "Lossless (Reliable Stream, Delta)"
The sixth and final Compression option:
- Lossless (Reliable Stream, Delta) — the lossless codec, but each frame only carries what changed
since the last one. Artifact-free colour at a lower bitrate than plain Lossless, so quality and
framerate hold up better — great for mostly-static scenes.
It's a port of ntrviewer-hr's do_decode_lossless_delta_compressed: the lossless codec plus a per-block
temporal predictor (each 30-pixel run picks prediction from the previous frame or the spatial median).
Verified clean on real hardware.
The full set
| Mode | Best for |
|---|---|
| JPEG Compat (UDP) | maximum compatibility |
| Uncompressed (UDP) | colour fidelity over plain UDP |
| JPEG (Reliable Stream) | smooth, reliable everyday streaming |
| JPEG (Reliable Stream, Delta) | lowest bandwidth / best framerate under load |
| Lossless (Reliable Stream) | artifact-free colour on a strong link |
| Lossless (Reliable Stream, Delta) | artifact-free colour at a lower bitrate |
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 |
The CI ships Windows + Linux; the macOS build is produced locally — see
BUILD-MACOS.md.
Requires NTR-HR running on the 3DS.
Credits
NTR-HR and all six compression formats are the work of xzn, ported from
ntrviewer-hr. Thank you! 🙏
Full changelog: v2.4...v2.5
v2.4 — Lossless (Reliable Stream)
3DSnickerStream v2.4 adds the Lossless reliable-stream mode — artifact-free colour over NTR-HR's
reliable transport.
New: "Lossless (Reliable Stream)"
A fifth Compression option (NTR panel):
- Lossless (Reliable Stream) — a true lossless image codec delivered over the reliable transport:
no JPEG blocking, no colour banding — clean, faithful colour, retransmitted so nothing tears. Uses more
bandwidth than the JPEG modes, so best on a solid (ideally 5 GHz) Wi-Fi link.
Under the hood it's a port of ntrviewer-hr's do_decode_lossless_compressed: a median edge predictor
with Huffman-coded residuals, planar YCbCr with bilinear chroma upsampling. It reuses the same entropy
decoder built for the Reliable-Stream JPEG modes — verified byte-exact on real hardware at ~40 fps.
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 |
The CI ships Windows + Linux; the macOS build is produced locally — see
BUILD-MACOS.md.
Requires NTR-HR running on the 3DS.
Credits
NTR-HR and all its compression formats — including this lossless codec — are the work of
xzn, ported from ntrviewer-hr. Thank you! 🙏
Full changelog: v2.3...v2.4
v2.3 — JPEG (Reliable Stream, Delta)
3DSnickerStream v2.3 adds the delta reliable-stream mode — the most bandwidth-efficient way to
stream — plus a round of window/UI fixes.
New: "JPEG (Reliable Stream, Delta)"
A fourth Compression option (NTR panel), building on v2.2's Reliable Stream:
- JPEG (Reliable Stream, Delta) — same reliable, tear-free delivery, but each frame only carries
what changed since the last one. Far less data on the wire, so quality and framerate hold up
better — especially in busy scenes.
This is a from-scratch port of ntrviewer-hr's bespoke delta JPEG decoder: its own Huffman codec,
floating-point IDCT, chroma upsampling and YCbCr→RGB, with temporal prediction in the DCT-coefficient
domain (each frame is a signed delta accumulated onto the previous one, tracked per screen). Verified on
real hardware at a smooth ~60 fps.
Fixes & polish
- Stream no longer clips when you shrink the window — at a fixed zoom the picture now scales down to
stay fully visible instead of being cut off by the window edge. - Move the window in Hide UI mode — with the title bar hidden, just drag the picture to reposition it,
like dragging a title bar. - Connect menu locked to its size — it can no longer be dragged small enough to clip the form.
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 |
The CI ships Windows + Linux; the macOS build is produced locally — see
BUILD-MACOS.md.
Requires NTR-HR (or HzMod) running on the 3DS.
Credits
The delta format — and all the NTR-HR reliable compression modes — are the work of
xzn, ported from ntrviewer-hr. Thank you! 🙏
Full changelog: v2.2...v2.3
v2.2 — JPEG (Reliable Stream)
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
v2.1 — Uncompressed (UDP)
3DSnickerStream v2.1 adds the first NTR-HR native compression mode.
New: "Uncompressed (UDP)"
The connect screen now has a Compression dropdown (NTR panel) to choose between:
- JPEG Compat (UDP) — the classic mode (unchanged).
- Uncompressed (UDP) — NTR-HR's lossless-family stream: a bespoke YCbCr 4:2:0 decode ported from
ntrviewer-hr, for higher colour fidelity than JPEG.
Uncompressed is best-effort over plain UDP — heavy and lossy by nature (as in the reference
viewer), so expect variable framerate and the occasional stale band under Wi-Fi packet loss. Smooth,
reliable streaming is the job of the Reliable-Stream (KCP) modes coming in the next releases.
Downloads
| Platform | File | Notes |
|---|---|---|
| Windows | …-win-x64.zip |
unzip, run |
| macOS (Apple Silicon / Intel) | …-osx-arm64.zip / …-osx-x64.zip |
unsigned — right-click → Open; if "damaged", xattr -cr 3DSnickerStream.app, or build locally |
| Linux | …-linux-x86_64.AppImage / …-linux-x64.tar.gz |
chmod +x the AppImage |
Everything else is unchanged from v2.0. Requires NTR-HR (or HzMod) running on the 3DS.
v2.0 — cross-platform
3DSnickerStream v2.0 — the first unified, cross-platform release. The app has been rebuilt from the ground up on Avalonia UI, so the same features now run natively on Windows, macOS and Linux from a single codebase.
Downloads
| Platform | File |
|---|---|
| Windows (x64) | 3DSnickerStream-v2.0-win-x64.zip |
| macOS (Apple Silicon) | 3DSnickerStream-v2.0-osx-arm64.zip |
| macOS (Intel) | 3DSnickerStream-v2.0-osx-x64.zip |
| Linux | 3DSnickerStream-v2.0-linux-x86_64.AppImage or …-linux-x64.tar.gz |
All builds are self-contained — no .NET install needed.
- macOS: unsigned — first launch, right-click → Open (or
xattr -dr com.apple.quarantine 3DSnickerStream.app). - Linux:
chmod +xthe AppImage and run it.
Highlights
- NTR & HzMod remoteplay — dual-screen NTR, top-screen HzMod (beta).
- Live layouts, rotation, per-screen zoom / gap / scale.
- Per-screen color adjustment (brightness / contrast / saturation).
- Ambient glow ambilight backdrop, clean mode and fullscreen.
- Copy text from the stream (OCR) with a hex mode tuned for RNG HUDs.
- Find on network, auto-connect / auto-reconnect, quality presets, saved-IP bookmarks and remappable shortcuts.
OCR works out of the box on Windows; on macOS/Linux install a system Tesseract (
brew install tesseract/apt install tesseract-ocr).
Original Snickerstream by RattletraPM. Licensed under GPLv3.
v1.4
Feature update — Windows.
New in 1.4
- 📋 Copy text from the stream (OCR) — press T (or the toolbar icon), drag a box over the screen, and the recognized text is copied to your clipboard in an editable, draggable popup. A Hex mode tuned for RNG HUDs reads seeds and
[n]markers reliably. - 💬 Readable dark tooltips on every button.
- ⌨️ Keyboard Shortcuts window laid out in two columns.
The Windows build is self-contained — unzip and run 3DSnickerStream.exe, keeping the x64 and tessdata folders next to it.
v1.3
Feature update — available on macOS and Windows (both builds attached).
New in 1.3
- 🎨 Per-screen color adjust (brightness/contrast/saturation/highlights/shadows) with Copy between screens.
- 🔍 Zoom (Fit / 100–300% native) and a clean mode (
H) that hides the UI, with an optional pinned FPS overlay. ↔️ Adjustable screen gap and per-screen scale live while streaming.- 🧩 Responsive controls that reflow as the window shrinks (usable down to a tiny window).
- 📡 Reworked Find on network (scan-on-startup / auto-connect / auto-reconnect).
Downloads
- macOS (Apple Silicon):
3DSnickerStream-mac.zip— first launch: right-click → Open. - Windows (10/11):
3DSnickerStream-win.zip— SmartScreen: More info → Run anyway.
Requires a 3DS on the same network running NTR CFW (or HzMod).
🤖 Built with Claude Code
v1.2
Feature update — available on macOS and Windows (both builds attached below).
New in 1.2
- 🎨 Per-screen color adjust — Brightness / Contrast / Saturation / Highlights / Shadows, independently for each screen, with Reset.
↔️ Adjustable screen gap (0 = screens touching); screenshots honor it.- 🔍 Zoom — Fit or fixed 100 / 150 / 200 / 300% at native resolution (crisp), window grows to fit.
- 📐 Per-screen scale live while streaming.
- 🧼 Clean mode — hide all UI (default
H), Esc/Hto restore. - 📡 Smarter networking — inline scan status, plus Scan on startup, Auto-connect, and Try reconnect (auto-reconnect on a dropped stream).
Downloads
- macOS (Apple Silicon):
3DSnickerStream-mac.zip— first launch: right-click → Open. - Windows (10/11):
3DSnickerStream-win.zip— SmartScreen: More info → Run anyway.
Requires a 3DS on the same network running NTR CFW (or HzMod).
🤖 Built with Claude Code