LoginLogin

Need thoughts on "router" concept

Root / General / [.]

Missingno50Created:
A long time ago, I learned of Petitmodem. I still don't quite understand how it works, but I've been diving into it and I might know how to recreate its system to a degree. But, with this, I've come up with an idea that's not very original. What if I could use it to connect to a server, rather than just transfer a file? The idea is rather simple. You have a program on your 3DS that's connected to your PC, and there's a program on your PC that will read and send data through that line. Something else that could potentially be done is let other 3DSes connect to this 3DS, so the 3DS would act like a router for up to three devices. This program could either just let the other devices read through a selected folder, or send data to some receiving server to be processed. This has a lot of potential applications, from something as simple as multiplayer across the internet to something as complex as entire freakin' web browsers written in SmileBasic. Additionally, if the Switch supports a microphone input(which, unfortunately, it does not seem to be able to), it could even lead to crossplay between a Switch, a DSi and a 3DS all at the same time(obviously not to the same computer.) So, I want your guy's opinions on this, and how practical this could potentially be. Keep in mind, the 3DS doesn't have to just act as a router, it could actually be playing a game with the proper code to connect to the program on the computer, essentially offering the same access to the connective network.

This has been discussed and contemplated probably a couple times on this site. I can't find the threads because the search function is kinda weak, but I think the decided main hindrance was that the bandwidth would be too small to do most useful things. One idea I remember thinking was that if you had some program, say a Terraria-style sandbox game, and the latency was low enough, you could offload some of the more computationally intensive tasks to the more-capable PC, like computing dynamic lighting and shaders or physics calculations. The information could be passed back to the 3ds in compact event packets. (I wonder now if it's any practical to do the same but with an additional or more 3DSes via multiplayer. Wish I still had my backup one to test it out.)

I had an idea for something similar a while ago. Simply put, it'd be a Bell 103 modem (to start) implemented in software, which would then allow for things such as BBS and dial-up internet access. Of course, for internet access, I'd also need an IP stack. I chose Bell 103 over rolling my own system since it would allow me to use existing infrastructure (dial-up ISPs and such). Nothing ever came of it since I had no idea what I was doing and nobody seemed to be interested in such a system anyways.

but I think the decided main hindrance was that the bandwidth would be too small to do most useful things.
Currently, looking at Petitmodem's speeds, the maximum is supposedly 2400 bits per second. Although that's... not great(2.4 bytes a second,) it's still workable in general context, especially for slower paced games, like an idea I've had for a competitive multiplayer colony management game inspired by Rimworld. The computer program would simply need to hold the data and transmit slightly slower. But there's also potential for me to try to squeeze more data into that, or perhaps create(or just steal) a compression algorithm if it would work. Perhaps I could even increase it, since my idea is simply just dialup internet using the computer as a modem, seeing as 56k is technically the maximum speed if I'm unrestrained by any limitations of the 3DS and Smilebasic itself. If you're smart enough, you could even stretch those 2.4 bytes to do a lot more than it would normally be able to do, although it would never amount to an ideal situation.
I had an idea for something similar a while ago. Simply put, it'd be a Bell 103 modem (to start) implemented in software, which would then allow for things such as BBS and dial-up internet access. Of course, for internet access, I'd also need an IP stack. I chose Bell 103 over rolling my own system since it would allow me to use existing infrastructure (dial-up ISPs and such). Nothing ever came of it since I had no idea what I was doing and nobody seemed to be interested in such a system anyways.
I don't think this is quite what I'm going for, but I'm still quite interested. I wasn't going to repurpose anything other than just programming a program that would act kind of like a "gateway", by sending data to both an IP address with a specific port and a 3DS, and receiving data from both, basically acting AS a router or modem without needing to repurpose anything other than taking a break from your computer and turning on this program. In other news, I'm happy to announce the Switch does indeed actually support microphones despite lacking an independent microphone jack. So far, Fortnite is the only game I know of that actually takes advantage of this support, but it's apparently there, which means there is a possibility SmileBasic 4 has support too(although I haven't read anything about SmileBasic 4 so perhaps I'm giving myself false hope.)

but I think the decided main hindrance was that the bandwidth would be too small to do most useful things.
Currently, looking at Petitmodem's speeds, the maximum is supposedly 2400 bits per second. Although that's... not great(2.4 bytes a second,) it's still workable in general context, especially for slower paced games, like an idea I've had for a competitive multiplayer colony management game inspired by Rimworld. The computer program would simply need to hold the data and transmit slightly slower. But there's also potential for me to try to squeeze more data into that, or perhaps create(or just steal) a compression algorithm if it would work. Perhaps I could even increase it, since my idea is simply just dialup internet using the computer as a modem, seeing as 56k is technically the maximum speed if I'm unrestrained by any limitations of the 3DS and Smilebasic itself. If you're smart enough, you could even stretch those 2.4 bytes to do a lot more than it would normally be able to do, although it would never amount to an ideal situation.
I had an idea for something similar a while ago. Simply put, it'd be a Bell 103 modem (to start) implemented in software, which would then allow for things such as BBS and dial-up internet access. Of course, for internet access, I'd also need an IP stack. I chose Bell 103 over rolling my own system since it would allow me to use existing infrastructure (dial-up ISPs and such). Nothing ever came of it since I had no idea what I was doing and nobody seemed to be interested in such a system anyways.
I don't think this is quite what I'm going for, but I'm still quite interested. I wasn't going to repurpose anything other than just programming a program that would act kind of like a "gateway", by sending data to both an IP address with a specific port and a 3DS, and receiving data from both, basically acting AS a router or modem without needing to repurpose anything other than taking a break from your computer and turning on this program. In other news, I'm happy to announce the Switch does indeed actually support microphones despite lacking an independent microphone jack. So far, Fortnite is the only game I know of that actually takes advantage of this support, but it's apparently there, which means there is a possibility SmileBasic 4 has support too(although I haven't read anything about SmileBasic 4 so perhaps I'm giving myself false hope.)
2400 bps is 300 bytes per second, not 2.4.

2400 bps is 300 bytes per second, not 2.4.
You could have EASILY just quoted my miscalculation but thanks, I was for some reason trying to convert bits to kilobits and pass it off as bytes, I think. 300 bytes per second is FAR better, because of how I planned to go about this. My original rough sketch of a plan was to have each 3DS have a pool of 256 bytes they could pull from(plus an additional 256 that they couldn't write to but could read to, and a signal that tells the router 3DS to go "more information please" to the computer.) With 300 bytes per second, it would not be a stretch to say it could service atleast 2 devices at a "reasonable" speed. Honestly the biggest benefit I'm deriving of this is 3DS to computer capability while still having music on atleast ONE 3DS.

Assuming the connection to the pc is consistent enough that you can expect bytes to never get dropped, 300 bytes should be plenty for making a multiplayer game. If you adopt the input sync method where the game will wait for the other players inputs to arrive before advancing frame, and your game is totally deterministic, you could theoretically support up to even 4 players, if the pc does most of the heavy lifting. You could use a single byte per frame to sync inputs (4 bits for dpad, 4 bits for general buttons—this faces the limitation of no touch screen and not more than 4 buttons, but you could maybe afford another byte for extremely coarse use of these, at the cost of dropping player count) and have the pc fill in information like frame ID and client information and organize the packets in order to give the inputs to the 3ds in a way it’d comprehend. At 60 fps you could get away with sending only 240 bytes to the 3ds with a grand total of 5 players—you plus 4 other players. Giving 60 byte leniency because theoretical maximums will definitely not be achieved. Double that player count to 8 other players if it’s 30 FPS—though maybe you would also want to reserve a bit in the input packet to indicate a system message or something (ex. Joining player, sync them up) It’d be a very impressive undertaking to try, but completely realistically doable.

Cool! That's all I really needed to know:If it was REMOTELY realistic. And in theory, with SB V3 atleast, I would be able to support far more than that by allowing the maximum usable sound range through the auxiliary cord, although I need to test it. Does anyone know if Petitcomputer has microphone support? I have it on a homebrew 2DS but haven't toyed around with it yet. I remember there being a version of Petitmodem having transfer capabilities from PC to DSi but that could just be a false memory. If it does, this could be the first step into crossplay, demonstrated with a new engine I'm going to work on afterwards.

I'm pretty sure SmileBoom supported PC -> DSi and vise versa via a QR transfer tool that was available on their site. Also, why go all the way back to Petit Computer though?

Also, why go all the way back to Petit Computer though?
Why shouldn't I? It's good practice, and it lets those with older systems who never wanted to upgrade to continue using it effectively. In other news, I want to call it trouter(stylized as +Router). Why? Because I can and also it just sounds catchy to me. Trouter trouter trouter.

Petitcomputer has microphone support?
No. The only way to transfer files from PC to DSi is to convert PTC files into QR codes and read on the DSi,. But you can't load QR codes while running program. You have to stop your program and return to the menu.

The only way to transfer files from PC to DSi is to convert PTC files into QR codes and read on the DSi,. But you can't load QR codes while running program. You have to stop your program and return to the menu.
That's unfortunate. Oh well, I'm sure I can probably get something worked out there. A friend told me that programs can have camera support, is this true?

A friend told me that programs can have camera support, is this true?
No.