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
  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 for instructions.
  3. Unpack the RetroArch zip and place 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/file
    Simply 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 -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.



As many of you may already know, my time at InMotion Hosting is ending today to pursue a career at RocketGenius.

The decision to do so certainly wasn’t easy.  Any of you who know me, know that I am an extremely loyal person and do not waver in my convictions.  In a discussion with Jeff Chandler about the transition to RocketGenius, he reminded me that I had previously stated that it would take a lot to get me to leave InMotion.  My response was simply that my goals are far surpassed with RocketGenius and I just need to take a leap of faith.

In my time at InMotion, I have learned a lot.  My experiences here have far surpassed my expectations and have skyrocketed my career.  Without InMotion, I likely wouldn’t be as active in the WordPress community, or even at all.  When I started at InMotion, my skillset was quite basic.  A little Linux, a dash hosting, some development, and a hint of marketing.  I had no idea that I would be travelling, developing plugins, and expressing my passion for WordPress.  InMotion has certainly provided me with those opportunities and I am grateful for each and every one of them.

The decision to join the team at RocketGenius was simply for personal growth.  By joining the incredibly talented minds behind GravityForms, I am able to witness product development at its finest.  While there are excellent developers at InMotion, WordPress-focused development is quite lacking.  In that sense, I was the top of the ladder; the cream of the crop.  If you’ve taken a look at my code in the past, I’m far from a senior developer.  I can get things done, but I lack the polish that comes from experience.  Simply put, I am a sponge that needs to soak up knowledge, and RocketGenius is the fire hose that will give it to me.

I look forward to joining the RocketGenius team next week.  Never before have I been so excited for a Monday.  A big thanks goes out to InMotion Hosting, the other folks who have helped me get here (I’m looking at you, Jeffro), and the RocketGenius team for giving me a chance.  Together, we can change the world.