RattletraPM / Snickerstream

Unified NTR and HzMod streaming client for the 3DS
GNU General Public License v3.0
322 stars 20 forks source link

No multiple DS support #19

Closed k20stitch closed 6 years ago

k20stitch commented 6 years ago

Came here because of the claim that this was a brand new client, not just a re-use of the old client but it is still plagued by all the same issues kitkat had. Why is support for multiple 3DS not an option.

RattletraPM commented 6 years ago

I haven't looked into in mainly because I only own one New3DS and right now I'm still focusing on coding key features (remember that even if stable, Snickerstream is still in beta). I don't even know if NTR allows this (and if it doesn't then there's no way to code it in) but I've heard that somebody might've managed to make it work.

I suspect what NTR does when two different N3DSes start remoteplay is just to use a different port but if you've got any info then please tell me!

ElderCub commented 6 years ago

I'd just like to give my 2 cents that there are other who would appreciate this feature. I'm currently using a second PC and an hdmi capture card to bring a second 3ds into the mix. This will no longer be possible for me once I have a third or fourth player. To provide some insight as to what happens when 2 3ds's connect (I've even tried running snicker, kitkat, and nitro in different combinations and the same thing always happens) is that it will flicker every other frame. I understand you don't have another 3ds, so I don't expect this to be your first priority, it is quite niche after all. If you do feel like making progress on this, feel free to contact me and can test builds for you.

k20stitch commented 6 years ago

I experience the same issue both screens alternate frames in the same ntr viewer. I suspect it’s using the same port viewer side. Typically, client side ports are random but this appears to be hardcoded...

Unless the 3ds is the client and NTR viewer is the host but I doubt it

Sent from my iPhone

On Jan 16, 2018, at 13:13, ElderCub notifications@github.com wrote:

I'd just like to give my 2 cents that there are other who would appreciate this feature. I'm currently using a second PC and an hdmi capture card to bring a second 3ds into the mix. This will no longer be possible for me once I have a third or fourth player. To provide some insight as to what happens when 2 3ds's connect (I've even tried running snicker, kitkat, and nitro in different combinations and the same thing always happens) is that it will flicker every other frame. I understand you don't have another 3ds, so I don't expect this to be your first priority, it is quite niche after all. If you do feel like making progress on this, feel free to contact me and can test builds for you.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

k20stitch commented 6 years ago

Can this issue get some love? If you really want to set yourself aside from all of the NTR Viewers, this is it. I have 9 3DS and can run what ever testing or debugging you want.

RattletraPM commented 6 years ago

It is getting some love - I have tried looking into it a few times already. I might have found something that could make this work, but I haven't made any promises publicly because so far it's all theory, so I don't know if it will work in practice.

Another thing that slows me down here is the fact that I own a single N3DS (and all my IRL friends who bought a 3DS were early adopters so they all own old ones) so there isn't a whole lot of testing I can do. Howerer, as I've said on GBATemp some time ago, I made a private tool that simulates a console streaming frames via NTR as accurately as possible, which not only helped me to refine Snickerstream a bit, but will also help me to check if multiple 3DS streaming might be a thing in the future. The only reason why this tool isn't public yet is because, as you might imagine, right now it's pretty useless to an end user, but this might change in the future.

Still, hey - if you have 9 3DSes with CFW then you might be definitely help in testing this feature! I'll let you know if I'll be able to do something.

ElderCub commented 6 years ago

I've made some small progress on my side. I figured out that I can host a windows virtual machine on my computer and each "computer" can host a different 3ds. This method does seem to have some impact on capture performance, 5-10 fps loss on both systems.

What would happen if we were to be able to modify the receiving or sending port. I know on one side, it's not up to you, but rather Nanquitas and their BootNTR. I wonder how difficult it would be to spoof multiple IP's on the same pc and assign two copies of Snicker to either IP without running a virtual machine.

RattletraPM commented 6 years ago

It isn't really Nanquitas' fault, it's simply that NTR has a hardcoded port for sending UDP packets. If we were able to change that then we would likely be able to stream multiple 3DSes on the same PC without using VMs or other workarounds. NTR is open source now, so it should be able to change the port by recompiling it, but for some reason even if I'm able to build it from source, it gives me an error when loading it on my N3DS, so I have to think about something else.

k20stitch commented 6 years ago

I tried creating a virtual NIC with a different IP address and created a route that would force traffic to 3ds “b” to use NIC “b”, in theory, changing the source address for the second connection.

Unfortunately, code still chooses the default IP address of the machine. This is likely because it calls “localhost”. Being able to modify the port sounds like the real solution

Sent from my iPhone

On Mar 31, 2018, at 19:08, RattletraPM notifications@github.com wrote:

It isn't really Nanquitas' fault, it's simply that NTR has a hardcoded port for sending UDP packets. If we were able to change that then we would likely be able to stream multiple 3DSes on the same PC without using VMs or other workarounds. NTR is open source now, so it should be able to change the port by recompiling it, but for some reason even if I'm able to build it from source, it gives me an error when loading it on my N3DS, so I have to think about something else.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

RattletraPM commented 6 years ago

Modifying the port will be the best possible solution, but you might want to try setting PcIpAddr to your alt NIC in the meantime (by default, Snickerstream listens to all IP addresses associated to your computer, which is likely why this workaround didn't work for you at the moment)

k20stitch commented 6 years ago

I’ll give it a whirl and try again.

Sent from my iPhone

On Apr 1, 2018, at 03:09, RattletraPM notifications@github.com wrote:

Modifying the port will be the best possible solution, but you might want to try setting PcIpAddr to your alt NIC in the meantime (by default, Snickerstream listens to all IP addresses associated to your computer, which is likely why this workaround didn't work for you at the moment)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

RattletraPM commented 6 years ago

Good news! I might've been able to get multiple 3DS streaming on a single computer via NTR working. As I said before I've tested it using a real 3DS and my private NTR Remoteplay Simulator so I'm going to need someone to test it on two real 3DSes, but everything indicates that it should work just fine.

If anyone wants to test this feature, feel free to send me a message!

ElderCub commented 6 years ago

Sounds good, seems like were both pretty eager to go for this. I can test it out tomorrow evening.

RattletraPM commented 6 years ago

I don't know if I'll be able to make a proper build by tomorrow (and by proper I mean something that doesn't require manual editing to get everything working) but I'll tell you when I have one. In the meantime, feel free to add me on Telegram/Steam or Discord (RattletraPM #0747)!

ElderCub commented 6 years ago

I see. I only said send it over because I thought you had something ready, not to discredit the work you've already done. Which is fantastic by the way.

RattletraPM commented 6 years ago

No worries! By the way, I've accepted your friend invite now. (I didn't do it yesterday because I got it while it was very late over here)

RattletraPM commented 6 years ago

Alrighty, I think it's now pretty safe to say that this feature is working properly and will be added in the next version! (All private beta tests have been succesful, including one with three N3DSes streaming at the same time)

Keep an eye out for the next release!

k20stitch commented 6 years ago

Welcome to the new premier ntr viewer

Sent from my iPhone

On Apr 28, 2018, at 10:44, RattletraPM notifications@github.com wrote:

Alrighty, I think it's now pretty safe to say that this feature is working properly and will be added in the next version! (All private beta tests have been succesful, including one with three N3DSes streaming at the same time)

Keep an eye out for the next release!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

ElderCub commented 6 years ago

Impressive work. Congratulations Shinji!

knattii commented 6 years ago

When is the update coming? Can't wait! Really excited for this feature. And thanks for the good work.

RattletraPM commented 6 years ago

I'm really sorry it's taking so long! I know you've probably read this a thousand times but I had to study for an exam IRL so I didn't have a lot of time to do stuff.

knattii commented 6 years ago

That is okay! I go to university myself so I know how that feels. Just really excited 😸

RattletraPM commented 6 years ago

Don't you worry then - it shouldn't take too long before it's released (it looks like I've been able to code individual screen resizing for vertical layouts just now)! I've also promised to make a video showing an early peek at the new features, so be sure to stay tuned!

RattletraPM commented 6 years ago

Forgot to post it here - yesterday I've released the video I was talking about in the previous comment https://www.youtube.com/watch?v=cyaGBJrANfk

RattletraPM commented 6 years ago

Added in commit df20702 (version 1.0). If you have any issues (hopefully not) please open another issue or use the GBATemp thread!