User Tools

Site Tools


NTR Viewer Plus

There's already pretty neat software for 3DS wireless streaming and input redirection such as Kit-Kat, however I thought Kit-Kat was missing two major features:

  • Rescaling the screens without relaunching.
  • Touchscreen input with the bottom stream.

There's also Kit-Kat-Touch that's a mod of Kit-Kat but it's not a one-click solution and still no scaling. cuteNTR has rescaling but doesn't seem to have input redirection at all; it's also written in C++ and aimed for Linux. Doesn't look like I could just resize the windows though.

Rather than modify Kit-Kat I decided to reimplement the NTR protocol myself in a C# program using OpenTK/OpenGL which handles the dynamic scaling and mouse input.

Update: With a recent Luma update adding input redirection (that supports ZL/ZR/C-Stick), I've added being able to swap to using that instead of with BootNTR (which still does the video streaming).

No release yet, it's still missing some features Kit-Kat has and not sure if I'm satisfied with the stream performance.

If you want to preview the code:

Missing/Planned Features

  • Keyboard input (may never be implemented)
  • Automatic gamepad selection (currently fixed to vendor/product ID)
  • ZL / ZR and C-Stick input (not supported by Input Redirection?) Luma IR supports this.
  • Automatically finding the 3DS's IP address
  • NTRViewer Console / Debugger
  • FPS and stream quality.
  • Live settings update (seems only the first NTR connect sets the settings)


  • When Xbox Controller falls asleep some inputs are sent.
  • The generic NFC patch doesn't allow Input Redirection or reconnecting (seems to affect Kit-Kat as well). Using Luma's IR it'll patch NFC without this issue.
  • There's no indication that the connection has dropped.
  • You can't click the same pixel on the touchscreen twice in a row.
  • The touchscreen has a drift the further from the center you click. This affects both X and Y in letterbox and pillarbox.
  • Can't use ZL and ZR at the same time with an Xbox controller (the triggers are technically the same axis). Using XInput would solve this but I kinda don't want to… How many games need you to press both anyway?
ntrvp.txt · Last modified: 2018/09/17 13:35 by jas2o

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki