Sign in to follow this  
chaos

HOW TO: Netplay over RetroArch

Recommended Posts

Netplay via RetroArch

Netplay with RetroArch is very simple. Since RetroArch is a frontend for multiple emulator cores, setting up netplay for any core is very simple (as long as it supports it!), and is the same procedure.

For Genesis, we are using the Genesis Plus GX core for netplay.

For SNES, we are using the Snes9x core for netplay.

For installing RetroArch , please check out this page on nhl94online.com - Getting Started

The advantages to using RetroArch for netplay over Gens or ZSNES are numerous. Though ZSNES 1.42 has great netplay, we still require Hamachi for connections, since ZBattle does not exist anymore. Gens uses Kaillera for netplay, we still need Hamachi, and suffers from numerous lag, stutter, and desyncs, depending on the connection.

With RetroArch, we can use what they call a relay server, similar to the server option in Kaillera. This could possibly eliminate the need to use Hamachi, or the need to forward ports on your router, which would make netplay incredibly simple to set up and play.

Not only that, but RetroArch uses rollback netplay (some of you might not like this). This is very big in the fighting game community. The goal of rollback netplay is too keep the experience "lag-free" as possible. This makes the game play very smooth. If there is a lag spike, the game will actually "rewind", to the point where if someone scored during a MAJOR lag spike, it erases the goal (hehe). It's less noticable than you would think, except in major cases. But, it's very hard to desync, and if you do desync, you can reconnect, and continue play where you left off, or the host can even load a save state while you are connected (ZSNES did this as well). Thus, the advantage of recovering from a desync and the overall smoother play should make everyone happy.

Beforehand, you should ask your opponent if you would like to use the relay server or direct connect. Direct connect may work without Hamachi/port forwarding, but it is not guaranteed. Currently, I recommend using the relay server. If you downloaded the package from nhl94online.com, the relay server option is already enabled.

Make sure you also have the SAME EXACT ROM!!! If not, there will be a disconnect and an error along the lines of "Cannot retrieve header".

 

1. The player acting as the host (home team on Genesis, either team on SNES) starts the game - Go to Netplay in the Main Menu, and click "Start netplay host".

Netplay Window.png

 

Netplay will not actually start until you load the ROM. Load the ROM, either using the "Load Core...", then "Load Content..." window or the "Load Recent" menu (if you've played the game before).

When the game starts up, you should see a few messages on the bottom of the screen. Look for one that says "Connected to NICK". NICK is name of the relay server. Almost immediately after, you should see "Joined as Player 1". This is a good sign. You can now notify your opponent that they are able to connect to you.

Nick.PNG

If they try to connect before you see these messages, it's very possible it will not connect.

At this point, just let the game sit there until your opponent connects. I usually wait at the in-game main menu.

 

2. The player acting as the client (away team on Genesis, the person not hosting on SNES) connects to the host - The player who will be connecting to the host will now go to Netplay in the Main Menu and select "Refresh Room List". You will see a list populate like below. Look for the name of the person you are playing, and select them. You do not need to have the ROM already open (it's optional). When you select their name, the game (as long as it is on your "Load Recent" list, i.e. you've loaded it once before) will automatically start up. When you connect, you should see a message like above, "Connected to NICK", and it will say "You have joined as player 2".

netplay list.PNG 

 

3. Save the state at the end of the game - Play the game, at the end of the game, either on the 3-stars screen, or the game end menu, make a save state (press F5). This will be used to upload to the nhl94online.com site. Check this post for more information - 

The "Connect to netplay host" option in the Netplay menu is not used. This asks you to put an IP address in. You do not need it, as you can use the Room List instead.

 

Troubleshooting

Cannot connect, keeps saying "Connected as Player 1" for the client - If there is an issue and you did not connect, it will either give you an error, or it will just say " Connected as Player 1", and start loading the beginning of the game, which means you did not connect to the host. At this point, both players will need to go back into the Netplay menu, the host will "Stop netplay host", and the client will "Disconnect from netplay host". If using the relay server, the host has to wait about 45 sec or so before trying again (so the game is removed from the netplay host list). You can check by selecting "Refresh Room List" and checking until the host's name disappears (both can see this). (See "Game Desync") I suggest the host waiting to tell the opponent to connect once he reaches the Setup Game Screen.

Game Stutters -  I noticed this occurs right when first connecting. It takes a few frames for the 2 games to sync up, so you may see some graphic glitches and menu stuttering. It goes away once you start actually playing.

Game Desync -  If you desync, you will see a message "Netplay Disconnected". This happens mostly when one of the players have the emulator paused for a long period of time (I'd say 10 sec or so), or if the internet drops out. If you disconnect, the host should keep the game running, pause (hit Start to go to the in-game menu), make a save state just in case, pull up the Quick Menu (F1 button), back out to the Main Menu, and select Netplay. Then, select "Stop netplay host". Then select "Refresh room list", every few seconds or so, until you see your name disappears from the list (the netplay server dumps the game from the server, like above). After this, you can select "Start netplay host", wait till you see the "Connected to NICK", "Joined as Player 1" messages, and notify your opponent that they can reconnect now. 

The client, in the meantime, should back out to the Main Menu, go to Netplay, and select "Disconnect from netplay host", wait for their opponent to notify them, and then reconnect to the host. Once connected, you will both be at the point where the host paused the game, and can continue.

If there is an issue, and the client cannot reconnect to the live game, or if the host closes the game at some point, reconnect as stated above, and once connected, the host can load the save state. Once the save state is loaded, you can continue play. No more need to game stitch or restart if there is a desync!!

 

Please let me know if there are any issues!

 

 

 

No Name.png

  • Thanks 1

Share this post


Link to post
Share on other sites

Bumping this, had a few desyncs today due to disconnects from Hotel wifi. Please see above for the update. It's important that the host "Stop netplay host", then wait until their name disappears from the "Refresh room list" before trying to host again. Once the client reconnects after hosting again, the game will continue where the host left it (please pause the game before doing these steps!).

  • Thanks 1

Share this post


Link to post
Share on other sites

Bump, updated a few items in this.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this