• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

N64 Console Netplay

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
I was talking to some guys about 64 upon reading reddit comments how everyone assumes tournaments are played on emulator/vc and there was mention about making netplay for consoles. Thinking about it, the infrastructure is almost entirely there through kaillera and the current servers that exist. All that would be needed is a device that reads the inputs from kaillera and passes them to the console. We have adapters that read many different forms of input and translate them into the bit strings for console so I don't see much in the way of getting netplay data and doing the same translation. I think it comes down to endeavor. Is there anyone interested in doing this? I am certainly interested in creating this and I think I know a few others who might be as well.

Outline of things to do:
-Get device to read/send values to/from kaillera or use some kind of alternative with similar design
-Read over ethernet and pass values to 64.

Initial stages of the design could be for 2 players. It would have a slot in for P1, and a slot in for the ethernet connection. The device would split the controller input with one going to the output to a slot on the console and to a board which sends the input to the ethernet output. The ethernet slot would have an output to another slot on the console for passing input values.
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
I guess initial concerns are being able to send the data over fast enough, because its console, there can't be control over frame rate and lag to wait for inputs to be received.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
I guess initial concerns are being able to send the data over fast enough, because its console, there can't be control over frame rate and lag to wait for inputs to be received.
Not only that, but RNG won't be in sync. So that means you will have to completely avoid anything that uses RNG, in order to not desync.
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
Not only that, but RNG won't be in sync. So that means you will have to completely avoid anything that uses RNG, in order to not desync.
Would RNG be a problem? If the device was able to restart the console, like it does on emulator, wouldn't that solve RNG problems.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
Would RNG be a problem? If the device was able to restart the console, like it does on emulator, wouldn't that solve RNG problems.
That does help because timing does affect RNG, but there's still the problem where 2 N64's may not be perfectly in sync. If I understand correctly, RNG is affected by the value of an audio register (which I highly doubt will be exactly the same, each time). To elaborate, I'm talking about AI_LEN_REG which = "The number of remaining samples in the audio buffer that is currently being referenced." Actually, other audio registers might also affect RNG too.

Anyway, assuming I'm correct about the n64 not being 100% consistent, you'll have to either modify the game itself, or completely avoid any RNG that can expose a desync. This means no random stages or characters, no items, and no stage hazards at all. I bet people wouldn't desync as much if they disabled stage hazards. The problem I mentioned is the reason why people desync with PJ64k. Some emulators use a hack to make the values of these registers 100% deterministic, and that is why they work well for netplay, while emulators like PJ64k do not. The downside to hacking the value is that you're more prone to hearing crackling / bad audio.

I can try looking into how RNG works for this game. I already wrote down certain formula's iirc, like the duration of Dream Land's wind. Another issue is frame rate. Have you heard of XLink Kai? People are able to do netplay for systems like Ps2, gamecube, etc. I think the system has to have a network adapter, but maybe you can learn something from it, even if it won't work for N64.
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
This is interesting but what would be the benefits over emulator netplay?
Emulator sucks and I hate it.

That does help because timing does affect RNG, but there's still the problem where 2 N64's may not be perfectly in sync. If I understand correctly, RNG is affected by the value of an audio register (which I highly doubt will be exactly the same, each time). To elaborate, I'm talking about AI_LEN_REG which = "The number of remaining samples in the audio buffer that is currently being referenced." Actually, other audio registers might also affect RNG too.

Anyway, assuming I'm correct about the n64 not being 100% consistent, you'll have to either modify the game itself, or completely avoid any RNG that can expose a desync. This means no random stages or characters, no items, and no stage hazards at all. I bet people wouldn't desync as much if they disabled stage hazards. The problem I mentioned is the reason why people desync with PJ64k. Some emulators use a hack to make the values of these registers 100% deterministic, and that is why they work well for netplay, while emulators like PJ64k do not. The downside to hacking the value is that you're more prone to hearing crackling / bad audio.

I can try looking into how RNG works for this game. I already wrote down certain formula's iirc, like the duration of Dream Land's wind. Another issue is frame rate. Have you heard of XLink Kai? People are able to do netplay for systems like Ps2, gamecube, etc. I think the system has to have a network adapter, but maybe you can learn something from it, even if it won't work for N64.
I don't see how it would be different than emulator. Both get a signal to start, and then start. This rarely has DS. Unless there are differences in the hardware that affect RNG, either by the console or the cartridge, I don't see where the initial conditions could be different and therefore RNG be different. The emulators strictly get an input each frame and play it out. Because they start at the same time, the RNG turns out to be the same.
 

Madao

Moderator
Moderator
Joined
Jun 27, 2013
Messages
873
I don't see how it would be different than emulator. Both get a signal to start, and then start. This rarely has DS. Unless there are differences in the hardware that affect RNG, either by the console or the cartridge, I don't see where the initial conditions could be different and therefore RNG be different. The emulators strictly get an input each frame and play it out. Because they start at the same time, the RNG turns out to be the same.
Even if we assume that the RNG is perfectly consistent, the difference with emulators is that they sync the frame rate, so it guarantees that you're on the same frame.
 

Shears

Smash Master
Joined
Mar 13, 2008
Messages
3,146
Location
disproving indeterminism
Even if we assume that the RNG is perfectly consistent, the difference with emulators is that they sync the frame rate, so it guarantees that you're on the same frame.
The devices would sync the inputs. Which is effectively no different. Although I can see some problems I think it could turn into a suitable alternative to emulator on console with standard controller settings.

I guess the difference would be stalling the frame waiting for input instead of stalling inputs.
 
Last edited:

Capos

Smash Apprentice
Joined
Dec 13, 2014
Messages
187
But console over netplay will still feel different than local console.
 

Morin0

Smash Lord
Joined
Oct 9, 2007
Messages
1,907
Location
San Diego, CA
That is true of any online game when compared to its local counterpart. The difference here, I'm assuming, is that online console would be better than online emulator. (i.e., it'd feel more like console.)
 

pidgezero_one

((((((((((( ͡° ͜ʖ ͡°) gotta go fast!
Joined
Jul 13, 2011
Messages
4,458
Location
Toronto
NNID
pidgezero_one
3DS FC
3222-5601-4071
did someone say fast? (((((((((((((((((( ͡° ͜ʖ ͡°)
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
Synchronizing this would be really, really hard, and I would not consider it feasible. A better idea is to contiune trying to make emulators, plugins, and netplay closer to console. This is something that is being explored but I can't make any promises.
 
Top Bottom