Playing SNES Games (and many others) With Online Multiplayer

For the last week or so, I had been passively looking for a way to play against friends of mine online in NBA Jam for the SNES.  Last night, I resolved that issue with absolutely no lag whatsoever and incredibly smooth gameplay.  Here’s how to do it:

SNES Netplay On Windows

  1. First you’ll need to grab a few files:
    RetroArch and the LibRetro cores
    Phoenix launcher for RetroArch (not necessarily needed, but makes things way easier)
  2. Once downloaded, unpack all of the files.  Typically, you’ll want to toss the contents all in the same folder for easier access.
  3. Launch the Phoenix loader.
  4. Once the Phoenix loader is loaded up, You’ll need to make a few adjustments.  First up is the RetroArch path option.  Set that retroarch.exe which was located inside the RetroArch zip file you extracted.
  5. For SNES games, set the libretro core path to snes9x_next_libretro.dll that was inside the cores zip file.  RetroArch supports a ton of different emulators, although not all support NetPlay.
  6. Player 1 will need to start the server.  To do so, check the Netplay checkbox and set the radio button to Server on player 1’s machine.  Player 2 will also enable the Netplay option, but select Client.
  7. The client now needs to set the Host IP field.  Here, enter the IP of payer 1’s server.
  8. For smooth play, set the Delay Frames option.  This will vary based on your bandwidth, but we have had the best luck with this set to 4.  Your mileage may vary.  For slower internet connections, you may want to set it a bit higher.
  9. Next up, be sure that port 55435 is open and forwarded on your router.  If you’re not sure how to forward ports, check out portforward.com.
  10. Next up, you need to select the SNES ROM that you want to play.  Both players should have the exact same ROM if possible for smoothest play.  Different copies of the same game will sometimes work, but I can’t guarantee anything with that.  In the Normal ROM Path field, browse to your ROM file on both the client and server machines.
  11. You’re all ready to go (with the exception of your controls which can be configured using Settings>Input.  On the server computer (Player 1), click the Start RetroArch button.  Once the server is launched, do the same on the client (Player 2).  You should now be playing together!

SNES NetPlay on Mac

Mac requires a bit more as there is not a launcher like Phoenix for Mac, but can be done easily through the command line.  Here’s how to do it:

  1. Download RetroArch and the LibRetro cores for Mac.
  2. Be sure that port 55435 is open and forwarded on both players’ routers.  If you’re not sure how to do so, check out portforward.com for instructions.
  3. Unpack the RetroArch zip and place RetroArch.app into your Applications folder.  Unpack the Cores zip wherever you can easily access it.
  4. Next, launch the terminal.
  5. You will need to launch everything from a command line.  The server will use a command like the following.  For the client, go to step 5.
    RetroArch -L /path/to/libretro/snes9x_next/core -H -F 4 /path/to/your/rom/fileSimply put, this command is launching RetroArch with the snes9x_next core, launching the server with the -H flag, setting the frame delay to 4 using the -F flag, then setting the SNES ROM that should be loaded.
  6. On the client computer (player 2) use a command like the following:
    RetroArch -L /path/to/libretro/snes9x_next/core -C 123.123.123.123 -F 4 /path/to/your/rom/file
    As you can see here, it is very similar to launching the server, but instead you are replacing -H with -C and inserting the IP address of the server you are connecting to.
  7. You should now be all set and ready to play together!

Have a blast!  Things are much easier with a controller as well so if you need one, check out Amazon for a USB SNES controller.

 


10 comments

  1. Followed instructions perfectly and when launching as a server on phoenix the server window appears for half a second and disappears. :/

    1. This is likely a failure to load the ROM file, the server you’re connecting to doesn’t exist, or ports are closed on that server.

Leave a Reply