Homebrew Snickerstream - Unified NTR and HzMod streaming client for the 3DS

D

Deleted User

Guest
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:
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:
- 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! :D

Too bad I don't have a n3DS
 
  • Like
Reactions: Yoni Arousement

RattletraPM

Well-Known Member
OP
Member
Joined
Jan 18, 2017
Messages
897
Trophies
1
XP
8,341
Country
Italy
https://imgur.com/a/wcPgnhT

What should i do if i keep getting this? Windows Firewall is already off so that's not the problem for sure...


Are there any kind of logs i can provide you or something?
Double check if NTRViewer or any other NTR Streaming client works on your machine. If they also don't work then there's something wrong with your setup.

In that case, even if windows firewall is off you still want to allow Snickerstream through it (some users have reported that their firewall was switched on again by the OS at random, so it's always a good idea to allow it). Running Snickerstream as Admin will make it try to allow itself through but you might want to try to do it manually aswell. Another thing you might want to check is your router as some of them have a built-in firewall. Also if you have an antivirus installed try to add Snickerstream to its whitelist too as some AVs don't like AutoIt scripts.

Lastly, if all else fails, set your loglevel to 3 in the advanced menu and post your log.txt here. Again, if you've tried everything and nothing works then it's definitely a problem with your individual setup, but I'll try to look at your log nevertheless.
 

Strifept

Active Member
Newcomer
Joined
Jul 23, 2015
Messages
26
Trophies
0
Age
30
XP
104
Country
___ _ _ _
/ __|_ _ (_)__| |_____ _ _ __| |_ _ _ ___ __ _ _ __
\__ \ ' \| / _| / / -_) '_(_-< _| '_/ -_) _` | ' \
|___/_||_|_\__|_\_\___|_| /__/\__|_| \___\__,_|_|_|_|
----------------------------------------------------------------------------------
*whispers* AL9H.
----------------------------------------------------------------------------------
VERSION : v1.00
LOGLEVEL: 3
----------------------------------------------------------------------------------
[22:02] Logging started.
[22:02] WARNING: The loglevel is now set to 3. This will produce GIANT logfiles.
[22:02] You should set your loglevel to something else unless you're troubleshooting some issues!
[22:02] CPU: Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz@3401MHz
[22:02] GPU: Radeon (TM) RX 480 Graphics
[22:02] OS: WIN_10
[22:02] WARNING: Snickerstream was run as admin and will now allow itself in Windows Firewall.
[22:02] Done. It's strongly recommended to run Snickerstream as a normal user from now on.
[22:02] PC IP address: 0.0.0.0
[22:02] 3DS IP address: 192.168.10.2
[22:02] Priority: 1
[22:02] Priority factor: 5
[22:02] Image quaility: 70
[22:02] QoS: 20
[22:02] Interpolation mode: 0
[22:02] Screen layout: 0
[22:02] Using Direct2D: True
[22:02] Listening port: 8001
[22:02] Top Screen scaling factor: 1
[22:02] Bottom Screen scaling factor: 1
[22:02] -NOTE- The IP addresses should be internal. If you set them to public DO NOT share this log online!
[22:02] Starting remoteplay on 3DS.
[22:02] Quitting.


Here goes.
 

Strifept

Active Member
Newcomer
Joined
Jul 23, 2015
Messages
26
Trophies
0
Age
30
XP
104
Country
Also the screen changes colours so i'm preety sure it's trying to connect at least, but then i get that error
 

RattletraPM

Well-Known Member
OP
Member
Joined
Jan 18, 2017
Messages
897
Trophies
1
XP
8,341
Country
Italy
Also the screen changes colours so i'm preety sure it's trying to connect at least, but then i get that error
Both the log and the settings look fine. It's confirmed to be something on your setup causing this issue then, especially because initing remoteplay succesfully (screens flashing) but being unable to receive the stream and the fact that other viewers don't work are both issues related to something blocking the packets.

If you can I'd either try streaming on a different router/network or using a WiFi hotspot.
 

Strifept

Active Member
Newcomer
Joined
Jul 23, 2015
Messages
26
Trophies
0
Age
30
XP
104
Country
Small update:
If i ping my ds from the CMD, i get 4 clear responses. Also the firewall is down and on the log it doesn't say anything about being blocked by it.
 

Strifept

Active Member
Newcomer
Joined
Jul 23, 2015
Messages
26
Trophies
0
Age
30
XP
104
Country
So this will probably be my last post about it buthere goes.
So far i've tried:
  • Two different computers
  • Formatted one of them and still same problem
  • Different NTR versions(3.3 and 3.6) from boot selector
  • Allowing everything through the firewall
  • Reset my router settings and even tried a mobile hotspot
Nothing works. I'm gonna try to connect my old 2ds to see if it works, if so it's probably my homebrew issue and i'll need to fix it up. Thanks for trying to help
 

OkazakiTheOtaku

no thanks, I don't want a custom title
Member
Joined
Jul 20, 2016
Messages
1,461
Trophies
1
Location
127.0.0.1
XP
3,114
Country
Japan
Hey, I know this software isn't officially supported on anything but Windows, but just for the heck of it I'll ask:
This is what I get when opening SS under Wine on Linux or Mac:
XSuOiWZ.jpg
Is there any solution for this?
 

RattletraPM

Well-Known Member
OP
Member
Joined
Jan 18, 2017
Messages
897
Trophies
1
XP
8,341
Country
Italy
Hey, I know this software isn't officially supported on anything but Windows, but just for the heck of it I'll ask:
This is what I get when opening SS under Wine on Linux or Mac:
XSuOiWZ.jpg
Is there any solution for this?
Try the version I posted here. I was going to try this myself: I don't know if it'lll work, but if it does, please tell me and I'll push a minor update.
 
Last edited by RattletraPM,

RattletraPM

Well-Known Member
OP
Member
Joined
Jan 18, 2017
Messages
897
Trophies
1
XP
8,341
Country
Italy
So Nintendo released firmware 11.7... that was unexpected.
I can confirm, however, that Snickerstream (and generally speaking, NTR 3.6) works on it without the need to patch or update anything.
 
  • Like
Reactions: ImInsane

RattletraPM

Well-Known Member
OP
Member
Joined
Jan 18, 2017
Messages
897
Trophies
1
XP
8,341
Country
Italy
so is this better then NTR viewer?
You might say my opinion could be biased as I've made this tool, but considering that nowadays performance is at least as good as NTRViewer and at the same time packs a lot more features, I'd say so.
Also if you want to stream more than one 3DS on the same PC via NTR, as of now, this is the only client that will let you do that.
 

DJPlace

going hire Ronald McDonald To Gun Down Nintendo.
Member
Joined
Apr 16, 2008
Messages
5,840
Trophies
2
Age
41
XP
4,528
Country
United States
is there a guide some where on how to use this on youtube or something? i tried looking and i did not see a good one.
 

DJPlace

going hire Ronald McDonald To Gun Down Nintendo.
Member
Joined
Apr 16, 2008
Messages
5,840
Trophies
2
Age
41
XP
4,528
Country
United States
i am trying to use this with a 2ds XL and its not working for me... i keep getting it's not connecting and stuff like that... also is there a discord i can talk to you guys about my issues?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    OctoAori20 @ OctoAori20: Nice nice-