Twix 3DS

From GameBrew

Revision as of 12:47, 3 April 2022 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Last Updated2019/03/13
Type3DS Streaming
VersionBuild 10
LicenseCC BY-NC-SA
Build 10 Bin / Build 11 Source Download

Twix is a feature packed alternative to ntrViewer, kitkat, SnickerStream, and input redirection programs.

It's oriented more toward gamers, streamers, and people doing gameplay recordings. It supports all gamepad and joystick controllers and keyboard for input. Some other unqiue features include Turbo Fire and some next-gen effects for the video stream.

The program is written from scratch through reverse engineering the packets, save for the use of a few shaders, all of which are freely available on the Unity Asset Store for use with any project.


  • Multi-threaded (receiving the packets and decoding the video stream are on two separate threads) (build 1).
  • Supports InputRedirection via Luma on the 3DS (build 1).
  • Integrated touch-screen redirect into the bottom screen output (build 1).
  • 3D cursor for touch-screen when in a perspective projected 3D display mode (build 1).
  • Supports any and all game pads your operating system supports out of the box (build 1).
  • All redirected controls configurable to keyboard, mouse, and gamepad buttons and axes (build 1).
  • Full screen and windowed mode (build 1).
  • Easily resizable windowed mode (no having to restart with the command line like regular NTR Viewer) (build 1).
  • When virtual 3DS mode, the Dpad, A, B, X, Y, Start, Select, and Home buttons can all be clicked on with the mouse without having to configure any controls (build 1).
  • Automatically detects IP of 3DS for input redirection if RemotePlay has already been started on the 3DS (build 1).
  • Supports New3DSXL's c-stick and ZR/ZL buttons (build 1).
  • Two display modes. Virtual 3DS and Draggable Resizable Screens. Switch between them by pressing the display change button (build 3).
  • Screen size and position saved between sessions (build 7).
  • In virtual 3DS display mode, the buttons glow when pressed, to show input when recording (build 8).
  • Automatically finds your 3DS as long as bootNTR and Luma input redirection are running (build 8).
  • Configurable stream quality settings. (build 9).
  • Default stream quality settings produce acceptable quality and framerate for both top and bottom screen (build 1).
  • Turbo fire (build 9).
  • Antialiasing (build 9).
  • Post processing (build 9).
  • Pixel perfect accuracy on touch screen (build 10).
  • Cycle through different camera angles on Virtual 3DS mode (build 10).
  • Antialiasing is done on the stream directly (build 10).
  • Open source with light weight license.

User guide

How to use

  • Run bootNTR Selector on your 3DS.
  • Enable input redirection on Luma config.
  • Run Twix. If Twix doesn't know the correct IP address for your 3DS, hit Start Stream to find it. Otherwise hit Try IP.

When in Virtual 3DS Mode, use the mouse wheel to cycle between camera angles. In either mode, hit the Escape key to pull up the options window.

If your computer has a good enough video card to support post process effects, you can use a lower jpeg quality for better performance and not sacrifice quality quite as much. Granted the image is slightly blurrier, but that's mostly due to the antialiasing.


I hit Start Stream and Twix never finds my 3DS.

If Start Stream never finds your 3DS then either your 3DS isn't on the same router as your computer, the 3DS doesn't have its WiFi on, bootNTR and Luma aren't running, or your router is assigning your 3DS an IP that isn't in your computer's range. For example if your computer's LAN address is and your 3DS is on then Start Stream will very quickly find your 3DS. However if your 3DS is on 192.168.2.x, instead of 192.168.1.whatever, then it will not find it and you'll have to manually enter the IP yourself and use "Try IP" button.

By the way, it doesn't matter what your IP is. IPs are arranged like A.B.C.D, and as long as the A, B, and C are the same for the 3DS and the computer Twix is on, it should find it. The higher the D is on the 3DS the longer it'll take, though.

The stream output is glitchy and the frames keep flashing.

This happens because of network lag and there's nothing Twix nor any other stream receiver can really do about it. Check to make sure your 3DS and router are close enough, close off any torents or high bandwidth apps on your computer, make sure nothing else is using your router for high bandwidth stuff. Basically the usual slow WiFi debugging stuff.

If none of that works, try reducing the jpeg quality or otherwise adjusting the quality settings whens starting a new stream. Ideally, there would be some manner of telling the bootNTR to lower its quality in these situations, however it seems that once the stream is started, it can't be adjusted without restarting the 3DS.

The only reason other streamers don't have this problem is they're all using the reference code for interpretting the stream, which drops any incomplete or out of order frames entirely. And since this is written from scratch this was reolved to have a glitchy display instead of one that appears frozen.




Twix Build 9 turbo fire (Jenny Tokumei)

Twix Build 8 demonstration (Jenny Tokumei)

Twix Build 7 demonstration (Jenny Tokumei)

Known issues

Resizable, Draggable screens display mode has touch screen axes being wrong. Please use virtual 3DS mode only for now if you need to use the touch screen.

External links