Last updated: 04/06/2018 (v1.00) - "The Definitive Update": Multiple 3DS streaming, a ton of new screen layouts and extra features all around! And now officially out of beta! Yep, Snickerstream's back from the dead and is better than ever, bringing much better performance when streaming, lots of new features, bugfixes and more - all in a proper release this time instead of a mere PoC! (Also, the only reason I'm calling this a beta is because I still want to code in some more stuff, but I feel that this version is stable enough for everyday use!) If you don't know what Snickerstream is, here's a quote from the readme: Warning: Spoilers inside! Snickerstream is a completely new streaming client for NTR CFW. It aims to become a complete NTRViewer replacement with lots of extra features, including stuff such as better netcode, more screen layouts and less RAM usage. This is different than kit-kat/NitroStream as the formers still uses NTRViewer as its internal streaming client while Snickerstream has been completely written from scratch, making it the first real NTR streaming client alternative (also, if you've tried UWPStreamer or cuteNTR then you can say you've already tried Snickerstream in a way, as they used or have previously used part of its code internally!) Now, I hear you ask, why reinvent the wheel? Why make this if there's already something that does a very similiar thing? The reason is simple: I wanted to add some functions to NTRViewer, but some of the stuff I had in mind simply wouldn't be possible without altering its source code, and considering that NTRViewer wasn't properly updated in a while I took the opportunity of making this complete rewrite. So, you may ask, what does Snickerstream bring to the table compared to other alternatives? Well, here's list of improvements over NTRViewer: Warning: Spoilers inside! - Real time screen scaling - Pixel interpolation, which improves the image quality if the window has been scaled - Two rendering libraries are supported: Direct2D (hardware accelerated if available) and GDI+ (software only) - Way less resource usage under Direct2D - Better netcode, it will automatically try to recover any lost frames if needed - No DLL files needed, as it uses the Windows API to draw the GUI and Direct2D/GDI+ to draw the screens (keep in mind that kit-kat still uses DLLs, they just get extracted to a temporary directory) - Native x64 version for better performance on x64 computers - MANY more screen layouts, such borderless fullscreen and inverted layouts - Pop-up secondary screen for fullscreen layouts - More options that will make Snickerstream work better on crappy computers or networks - Better default settings that will make streaming smoother on most networks - Built-in screenshot function (press S while streaming to create a screenshot) - Built in NFC patching - 7 different remoteplay presets are available, with support for creating customized ones - Automatic remoteplay init, so you only need to click connect and Snickerstream will care about everything else - Auto-disconnects if the 3DS has stopped streaming (was shutdown/rebooted/etc, can be customized or disabled) - Has a built-in frame limiter (disabled by default) if you wish to have a smoother stream - It will try allow itself through Windows Firewall if ran as admin - Toggable automatic screen centering for all layouts - Customizable hotkeys - Support for multiple NTR streaming to the same PC via NTR Patching And this is this version's full changelog, highlighting what has been added, modified and fixed! **New features:** * A brand new “Advanced” settings menu which lets you change all variables that could only be changed by directly editing the INI file before. * Multiple 3DS streaming to a single PC is now supported (after patching NTR & changing the listen port, click here for a guide) * (D2D Only) Individual screen scaling – finally! You can either set this via the Advanced menu or by editing/adding TopScalingFactor and BottomScalingFactor in the INI. * (D2D Only) You can now pop up the other screen in full screen modes with the push of a button! (default: Spacebar) The screen can also be scaled using the previously mentioned individual screen scaling function. * Hotkeys can now be customized by editing/adding a “Hotkeys” key to the INI. They have to be specified as a string of seven hexadecimal key codes separated by a vertical bar, ex. 26|28|25|27|0D|53|20|1B. The functions corresponding to the key codes are: Scale up, Scale down, Change interp. (plus), Change interp. (minus), Return to the connection window, Capture a screenshot, Show secondary screen popup (only in fullscreen modes), Exit Snickerstream. A full list of keycodes supported by AutoIt is available here. * You can now choose whether to center the screens or not (via Advanced menu or by editing/adding CenterScreens to settings.ini) * New screen layouts! Non-streched fullscreen (top), Non-streched fullscreen (bottom), stretched fullscreen (bottom) and separate windows! (Keep in mind that all of these are D2D only except for stretched fullscreen bottom) * You can now specify the settings INI file’s name and path manually by passing it as a command line argument to Snickerstream. Useful if you want to connect multiple 3DSes. Example usage: ‘snickerstream.exe C:\Path\to\setting\file.ini’ * Added support for custom presets. Custom presets will only change the remoteplay settings (except for the IP), they don’t need you to reopen Snickerstream each time you want to change them (but you will need to restart your 3DS if remoteplay has already been started) and are stored on a separate INI file, making them very useful if you wish to save different settings for your games. Snickerstream will always look for the presets.ini in the same directory as the settings INI, even if you specified a custom path for it. Thanks to ElderCub for the suggestion! * A shiny new icon made by Trinsid! **Improvements & Bug fixes:** * The quality value will be set to 10 if it’s too low (10 is the lowest quality value allowed by NTR). * Snickerstream will no longer pause if you right-click on its tray icon. * Snickerstream now returns to the connection window if it’s not able to receive the stream after initializing remoteplay (instead of hanging on a black screen) and tells the user to double check its firewall rules/listening ports. * A completely redesigned about screen! On a quick note, I want to underline that update is called "The Definitive Update" because I've coded each and every single thing I originally wanted for Snickerstream now. This doesn't mean there won't be any future updates tho! There's still some very experimental stuff that I want to try... If you want a quick tutorial, there's one included in the readme file. Also, if you have any problems, check the "troubleshooting" section of the readme and, if you don't resolve your issue this way, feel free to ask help in this thread! (Be sure to include a log with a loglevel of 3! You can change Loglevel to 3 in settings.ini and Snickerstream will start logging to log.txt when you open it.) There's also a list of FAQs now. And now the good stuff: download links! Releases / Source (GitHub) Happy streaming!