Difference between revisions of "Netplay"

From EmuVR Wiki
Jump to: navigation, search
m
m
Line 101: Line 101:
 
You have two alternatives, use whichever is more convenient for you:<br>
 
You have two alternatives, use whichever is more convenient for you:<br>
 
* After adding and scanning your games, '''simply open this file with notepad:'''<br><code>\EmuVR\Game Scanner\emuvr_playlist.txt</code><br>This file contains the list of all your scanned games with each detected CRC code.<br>This is the only alternative for '''disc games''' like PS1 since they use a special detected ID instead of actual CRC calculation.<br><br>
 
* After adding and scanning your games, '''simply open this file with notepad:'''<br><code>\EmuVR\Game Scanner\emuvr_playlist.txt</code><br>This file contains the list of all your scanned games with each detected CRC code.<br>This is the only alternative for '''disc games''' like PS1 since they use a special detected ID instead of actual CRC calculation.<br><br>
* If you don't want to scan them first, use your installed '''7-Zip''':
+
* If you don't want to scan them first, use [https://www.7-zip.org/ 7-Zip]:
 
** If it's an '''extracted''' ROM (i.e. '''not a ''zip'' '''file), '''right click''' your file, then click '''"CRC SHA"''', and then '''"CRC-32"'''.<br>It will show a small window titled "Checksum information" saying '''"CRC32: <your CRC code here>"'''.<br>Here's [https://i.imgur.com/PdvrWqL.png how it looks.]
 
** If it's an '''extracted''' ROM (i.e. '''not a ''zip'' '''file), '''right click''' your file, then click '''"CRC SHA"''', and then '''"CRC-32"'''.<br>It will show a small window titled "Checksum information" saying '''"CRC32: <your CRC code here>"'''.<br>Here's [https://i.imgur.com/PdvrWqL.png how it looks.]
 
** If it's a '''zip''' or '''7z''' file, you'll have to '''open it with 7-Zip to see its contents,''' then look for the '''CRC column''' to the right.<br>Again: ''If it's a zipped ROM, don't right "click it", look '''inside''' it,'' or else you'll get the wrong CRC.<br>Here's [https://i.imgur.com/n4HAPHa.png how it looks.]
 
** If it's a '''zip''' or '''7z''' file, you'll have to '''open it with 7-Zip to see its contents,''' then look for the '''CRC column''' to the right.<br>Again: ''If it's a zipped ROM, don't right "click it", look '''inside''' it,'' or else you'll get the wrong CRC.<br>Here's [https://i.imgur.com/n4HAPHa.png how it looks.]

Revision as of 03:02, 1 March 2023

On this page you'll learn everything about Netplay in EmuVR: what can you do, what you need to do, what works, what does not work, and how to troubleshoot any issues.

Quick Steps

After reading this page and playing a couple of times, this will be burned into your mind:

  1. Not all consoles and games support netplay
  2. You need to have the same exact ROM as your friend
  3. Hold Menu for 1 second to show the Netplay Menu, then click Host
  4. Click to Copy your code, then send it to your friend
  5. Your friend clicks Paste, then Connect
  6. Play video games together!

But this TL;DR is the equivalent of "draw two circles, and now draw the rest of the damn owl". Keep reading this page to learn what you actually need to know to play!


The Basics

Here's what you can do in EmuVR's netplay:

  • You can invite friends to your own customized room, where you'll see each other and play (or watch) games and videos together, with built in voice chat.
  • Anyone in the room can spawn objects or games, move them around, insert games into consoles, change cables; everything you already do in single player mode.
  • All players will see the host's games selection in their own Inventory when visiting.
  • Full drop in, drop out multiplayer:
    • You can start or stop hosting at will, without the need to restart EmuVR, to reload the room, or to even restart any game you're already playing.
    • Your friends can join your room mid-session, and all your already running games will be synced to them (if they have the same games).
  • Even while friends are visiting you, you can still save and load your rooms as a host, change the season, time of day.
  • You and your friends can crossplay between desktop and VR modes together.

Playing Games

1. Not every game, console or core supports netplay.
2. Everyone must have the same game to be able to play it.

Basically, anyone in the room can "grab the controller" and control any game as player 1 or player 2 or however many players that game supports. For example, Arcade games with four players such as Teenage Mutant Ninja Turtles, or Multitap five player games like Super Bomberman 5. Anyone can "pass the controller" and swap who's controlling who on the fly.

Some example scenarios:

  • Play a 2-player game with your friend, versus or co-op.
  • Play a single player game while your friends watch. You can pass the controller on the fly and anyone can continue the game where you left while you watch them now.
  • Play a fighting game and whoever loses will pass the controller to the third player who was just watching.
  • Each player plays a singleplayer game on each TV side by side. Play different games, or how about a speedrun race with the same game?
  • Multiple pairs of players play different multiplayer games each, at same time, on different TVs in the same room. Anyone can switch controllers, swap pairs, and control any other game at any time.
  • 4 friends play Teenage Mutant Ninja Turtles (Arcade) while other 5 friends play Super Bomberman 5 (SNES with Multitap) side by side.


The limit is your hardware power and internet speed and quality. The one player with worse internet latency/ping or slower computer might bring everyone else's experiences down.

Again, not every game, console or core supports netplay, and everyone in the room must have the same exact game to play or even watch it. (Only the host needs video files though.)

Requirements

Netplay has some specific requirements to work:

  1. Everyone needs the same EmuVR version.
  2. Everyone needs the same Retroarch version (Already taken care of for you)
  3. Everyone needs the same exact Cores, same versions. (Already taken care of for you)
  4. Everyone needs the same Retroarch settings. (Already taken care of for you, to some extent)
  5. Everyone needs the same exact ROM files. (We don't provide ROMs, don't ask and don't share)
  6. The host's computer needs to be directly reachable from the internet, through port forwarding or UPnP.

You don't need to have all the same games. If you're missing some specific game, others that do have it will still be able to play it, and only you will see a blank TV for that game.


Matching Games

To be able to play or even watch a game, you and your friend will need to have the same exact ROM file for that game.

(Videos and music are an exception: only the host needs to have them. Clients don't need to have the same videos files at all.)

File names or paths do not matter. What only matters to match games are the actual file contents, which are detected when scanning them from calculating their CRC hashes, which is like a file fingerprint.

Again, to be clear: it doesn't matter if your ROMs are zipped or not, or if they have different file names or if they are in differently named folders or subfolders. Only their CRC matters.

Inventory

Joining a host is analogous to visiting a friend's house: you'll see their room with all their own games, not yours.

And that's what you'll see in your own inventory while visiting a host: their own games, with their own labels, the same way they see it while playing offline by themselves.

Even if you don't have some of the host's games, they'll still show up in your own inventory menu, they'll still exist in the room as carts / CDs with (the host's) labels, and are interactable as usual. They just won't play on TVs for you, but the host or any other visiting friend that does have that matching game will be able to see and play it on that same TV.

If anyone currently in the room doesn't have a game, this specific cartridge / CD will display a little "broken connection" icon on its label for everyone:

  • If you're the one without the matching game, you'll see a orange icon. You can interact with the physical media, but it won't play on TVs.
  • If you do have the matching game and someone else in the room does not, you'll see a green icon (even if you're the host). This will let you know that there's someone in the room who won't be able to play or even watch that game, but at least you and others with the green icon can play it.
  • If there's no icon at all on the game, it means *everyone* in the room has it.

For convenience, so that you can find currently playable games easily, games within each console list in everyone's inventory will be automatically sorted and grouped like this every time anyone joins or leaves the room:

  • Games that everyone in the room has and can play are at the top (no WiFi icon)
  • Followed by games that you have, but someone else does not (green WiFi icon)
  • Followed by games that you don't have (orange WiFi icon)

TL;DR:
Seeing a *Orange WiFi icon* on a game? You don't have it on your machine and can't play or even watch it.
Seeing a *Green WiFi icon* on a game? Someone else in the room doesn't have it but you do. Only Green-icon friends can play or watch this game with you.
No wifi icon at all (look closely) on a game's label? Everyone in the room can play and watch this game.


CRC

What's CRC? In simple words, it's like a fingerprint identifying a file. If even a single byte differs in a file, the whole CRC would be different. This is used to know if you have the same exact ROM as the other players, which is needed for netplay to work.

How to know the CRC of your ROM?

You have two alternatives, use whichever is more convenient for you:

  • After adding and scanning your games, simply open this file with notepad:
    \EmuVR\Game Scanner\emuvr_playlist.txt
    This file contains the list of all your scanned games with each detected CRC code.
    This is the only alternative for disc games like PS1 since they use a special detected ID instead of actual CRC calculation.

  • If you don't want to scan them first, use 7-Zip:
    • If it's an extracted ROM (i.e. not a zip file), right click your file, then click "CRC SHA", and then "CRC-32".
      It will show a small window titled "Checksum information" saying "CRC32: <your CRC code here>".
      Here's how it looks.
    • If it's a zip or 7z file, you'll have to open it with 7-Zip to see its contents, then look for the CRC column to the right.
      Again: If it's a zipped ROM, don't right "click it", look inside it, or else you'll get the wrong CRC.
      Here's how it looks.

Arcade games can be more complex to deal with than just CRCs though, since they contain several split files bundled in a zip, and there are many different versions tailored for different emulators.

Since the only arcade core with proper netplay support is FBNeo, using "non-merged FBNeo compatible" ROMs with matching file names is the easiest way to go.


Netplay Menu

To show the Netplay Menu, you can navigate to it from the Settings Menu, or simply use the Netplay Menu Shortcut: hold Menu for 1 second.

Point to anything there and you'll see a tooltip explaining what it does and how to use it. Everything in this section can also be read from those ingame tooltips.

There you'll be able to set your nickname, your player color, host your room, join another room, check other player's status and, if you're the host, kick them out.

If you don't write in any name, you'll be named "Player 1", "Player 2", etc.

There's an option to hide or show other player names above their heads.

If you don't pick any color (or if you click Reset Color):

  • As a host, you'll be the default blue color.
  • As a client, you'll be assigned a random color each time you join a room.

Click Host to start accepting friends. Click Copy to grab your Address Code, then send them to your friends.

Your Address Code is generated from your external IP. If your IP hasn't changed, you'll always see the same code. Actual IP addresses can be used to connect as well. (If you're connecting through LAN, you'll need to use your LAN IP address.)

To join a host, click Paste or write the code or IP you've received, write the password if needed, then click Connect. Attention: by clicking Connect, you'll reload your latest saved (or default) room state, even if your connection attempt fails.

The Players List to the right will show all players in the room, their names, color, ping, and a button to kick them if you're the host. There's also a button to mute or unmute their voices.

Notice you can still edit the password field in real time even after you've started hosting, no need to restart the room or stop hosting to change it. This is useful if you want to kick someone and not allow them to simply join back, or if you want to stop allowing more clients to join your room.

Pay attention to the *Log Panel* to the right to see helpful messages and solutions for issues you might be having related to Netplay.


TL;DR Quick Steps

  1. Hold Netplay Menu Shortcut
  2. Click Host
  3. Click Copy to grab your room Code
  4. Send the Code to your friends
  5. As a client, Paste the code, then click Connect

If you're having trouble and no one can connect to you, check the Port Forwarding section.


Controlling Games

Hosts and clients can Focus and Unfocus input into games as usual.

The first person to focus into a game will get the Player 1 controller, the next one will be Player 2, and so on. When you unfocus the game, you'll release that player slot, and the next person to focus input on that TV will use the first available controller.

Examples:

  • Two players are focused to a game, then P1 unfocus it, freeing the P1 slot
  • A third person can focus into it and become the new P1, while P2 continues to be P2, and the old P1 is now just a spectator
  • Alternatively, P2 can quickly unfocus and focus again on the game, becoming P1
  • After following the second alternative above, if the previous P1 tries to focus input back again, the first available slot for them is now the P2 controller, so both players have effectively swapped controllers

When focusing or unfocusing into a game, the screen will display a message for a second showing the nickname of who's controlling that game now, and with which controller. E.g. "John Wick is now controlling player 2"

Important: Just by joining a room, you're always connected through Retroarch's netplay for all games currently running, at least in spectator mode, even if no one is controlling them.


Supported Systems and Games

Not every game or console supports netplay.

EmuVR relies on Retroarch's own netplay for the games. Not every core supports netplay.

  • Link-cable or internet connected games such as GB, GBC, GBA aren't possible either.
    However you can still play them like any other single player game while others watch, and pass the controller to them.
  • While PS1 is not supposed to work according to Retroarch's docs, it does work well in our tests with Beetle PSX and SwanStation.
  • N64 might work depending on the game, on your hardware and your internet, but it's also prone to desync and even disconnections in some cases. More than 2 players can be even more unstable, depending on the aforementioned factors. Use the ParaLLEl N64 core for netplay, and not Mupen64Plus.
  • Computer cores, like DOS, Amiga, Commodore, generally do not support netplay.
  • Arcade games are well supported with cores FB-Neo and FB Alpha, but not with MAME.
  • Light Gun games are supported, including two-player games, but several cores that support light guns do not support netplay, like MAME or Flycast. Your best choice are PS1 (Beetle PSX) and Arcade (FB Neo) games. Some few light gun games might be prone to desync.
    Currently, the NES Zapper has experimental netplay support (clients might miss some ducks here and there depending on their ping, but hosts are good). Your usual non-light-gun NES games are pretty well supported.
  • Some games, specifically N64 and Light Gun games, will restart as soon as you click [Host] or [Stop Hosting]. That happens because they need different special settings for netplay vs offline modes which can't be changed without restarting the console.

We haven't tested every single core with netplay yet, so you can help us learn what works best, what desyncs a lot, and what uses too much CPU and RAM in netplay mode.


Videos and Music

You can watch your movies and cartoons with friends! This feature is experimental, and it will stream your own videos to visitors.

  • Not every format is supported, and it might take a couple of seconds (or not) to sync videos when joining or seeking through them. HEVC and files larger than 2GB are not supported currently.
  • Clients don't need to have the same video files on their computer for this.
  • Network streaming performance will depend on the host's video quality/bitrate, internet upload speed, and player count. If you have too many players in your room, starting a video might use up all of your available upload speed, overwhelming the whole network connection for EmuVR.

".str" files for external streaming are also supported, if the URL is reachable to everyone. This might be the preferred method if you're streaming to too many players in the room and your upload speed is not high enough, since everyone will be streaming the video from an external server instead of your machine.

* This is direct peer-to-peer streaming, no video files will be downloaded from hosts to clients.


Multitap - Games for 3 players or more

Some consoles with only two controller ports needed an adapter called Multitap to support more than two players for some games.

For example, that's how you can play Bomberman 5 with five friends on the SNES, or Micro Machines 2 with four friends on the Sega Genesis.

To learn how to enable this for each supported system, follow the instructions below.

Enabling multitap for unsupported 2-player games will break controller input for most of them (the same happens with the real hardware). Use a separate folder with a different name, like "SNES (Multitap)" for your multitap games.

For some systems it's just automatic and you don't need to do anything special to play with more than two players, specifically Arcade, Nintendo 64 and NES games.


Instructions:

  1. Download the file listed in the table below for the needed systems. It contains a zipped system folder with preset settings to enable multitap.
  2. Extract its contents to your ...\EmuVR\Games\ folder. You'll have, for example: ...\EmuVR\Games\SNES (Multitap)\ with a couple of files inside.
  3. Copy your multitap supported games to the new folder, just like you do in the Installation Guide.
  4. Open Game Scanner, do not change the pre-set folder's core or its settings, download cores if needed, and just click to scan your games.
System Preset Folder Notes
SNES SNES (Multitap).zip
Sega Genesis Sega Genesis (Multitap).zip
PlayStation
(up to 4 players)
PlayStation (Multitap).zip Some PS1 games are more prone to Desync when using Multitap.
PlayStation
(up to 8 players)
PlayStation (Multitap 8-players).zip Some PS1 games are more prone to Desync when using Multitap.
A few PS1 games support even more than 4, up to 8 players.
Do not add 4 player games to this folder or they might not work.
That's why we need separate presets for 4 and 8 players.
(Check the list below to know wich games support more than 4 players.)
Nintendo 64 Not needed The Nintendo 64 has 4 controller ports by default.
You don't need to do anything to enable 4-player games.
Arcade Not needed You don't need to do anything to enable more than 2 players.
It's automatically enabled for each supported game.
NES Not needed You don't need to do anything to enable more than 2 players.
It's automatically enabled for each supported game.
(Make sure to use the default FCEUmm core.)

TL;DR: Use the files above to create new pre-configured system folders, add *only* multitap supported games there, then scan in Game Scanner.


Multitap Supported Games List

This is not a 100% complete list, please let us know if any multitap supported game is missing.

  • Aokidensetu Shoot!
  • Bakukyuu Renpatsu!! Super B-Daman
  • Bakuto! Dochers
  • Barkley: Shut Up and Jam!
  • Battle Cross
  • Battle Jockey
  • Battlefield: Tokyo Dome
  • Bill Walsh College Football
  • Capcom's Soccer Shootout
  • Chibi Maruko Chan: Mezase! Minami No Island
  • College Slam
  • Crystal Beans From Dungeon Explorer
  • Dragon - The Bruce Lee Story
  • Dream Basketball: Dunk & Hoop
  • Dreamslam: Woman's Fire Pro Wrestling
  • Dynamic Stadium
  • Elite Soccer
  • ESPN National Hockey Night
  • FIFA International Soccer
  • FIFA Soccer 96
  • FIFA Soccer 97
  • Final Set
  • Fire Striker
  • Furi Furi Girls
  • Go! Go! Dodge League
  • Hammerlock Wrestling
  • Harapeko!
  • Hat Trick Hero
  • Hat Trick Hero 2
  • Head-On Soccer
  • Hebereke No Puzzle
  • HitBall
  • Human Grand Prix III - F1 Triple Battle
  • Human Grand Prix IV - F1 Dream Battle
  • Hungry Dinosaurs
  • International Superstar Soccer Deluxe
  • J. League Super Soccer
  • J. League Excite Stage '94
  • J. League Excite Stage '95
  • J. League Excite Stage '96
  • J. League Super Soccer '95
  • Jeopardy!
  • Jikkyou Power Pro Wrestling '96
  • Jimmy Connor's Pro Tennis Tour
  • John Madden NFL Football '94
  • Kazeno Sylphid
  • Kunio-kun no Dodge Ball dayo Zenin Shuugou!
  • Looney Tunes: B-Ball
  • Lord of the Rings, The Vol. 1
  • Madden NFL '94
  • Madden NFL '95
  • Madden NFL '96
  • Madden NFL '97
  • Madden NFL '98
  • Micro Machines
  • Micro Machines 2 - Turbo Tournament
  • Mizuki Shigeru no Youkai Hyakkiyakou
  • Multi Play Volleyball
  • Natsume Championship Wrestling
  • NBA Give 'n Go
  • NBA Hangtime
  • NBA Jam
  • NBA Jam Tournament Edition
  • NBA Live 95
  • NBA Live 96
  • NBA Live 97
  • NBA Live 98
  • NCAA Final Four Basketball
  • NCAA Football
  • New Japan Pro Wrestling
  • NFL Quarterback Club
  • NFL Quarterback Club 96
  • NHL '94
  • NHL '95
  • NHL '96
  • NHL '97
  • NHL '98
  • Olympic Summer Games
  • Olympic Summer Games 96
  • Peace Keepers
  • Pieces
  • Rap Jam Vol. 1
  • Saturday Night Slam Masters
  • Secret of Mana
  • Seiken Densetsu 2
  • SFS '94 World Cup Final Data
  • Shin Nippon Pro Wrestling '94 - Battlefield in Tokyo Dome
  • Shin Nippon Pro Wrestling - Chou Senshi in Tokyo Dome
  • Shin Nippon Pro Wrestling Kounin '95 - Tokyo Dome Battle 7
  • Shougi Club
  • Slam Dunk TV Animation
  • Smash Tennis
  • Soccer Shootout
  • Sporting News: Power Baseball
  • Sterling Sharpe's End 2 End
  • Street Hockey '95
  • Street Racer
  • Sugoi Hebereke
  • Sugoro Quest++
  • Super Bomberman
  • Super Bomberman - Panic Bomber W
  • Super Bomberman 2
  • Super Bomberman 3
  • Super Bomberman 4
  • Super Bomberman 5
  • Super Final Match Tennis
  • Super Fire Pro Wrestling - Queen's Special
  • Super Fire Pro Wrestling II
  • Super Fire Pro Wrestling III
  • Super Fire Pro Wrestling Special
  • Super Fire Pro Wrestling X Premium
  • Super Formation Soccer 94
  • Super Formation Soccer 94 - World Cup Final Data
  • Super Formation Soccer 95 della Serie A
  • Super Formation Soccer 96
  • Super Formation Soccer II
  • Super Ice Hockey
  • Super Kyousouba - Kaze no Sylphid
  • Super League Soccer
  • Super Power League
  • Super Tekkyuu Fight!
  • Super Tetris 3
  • Syndicate
  • Tenryu Genichiro no Pro Wrestling Revolution
  • Tiny Toon Adventures - Wild & Wacky Sports
  • Top Gear 2000
  • Top Gear 3000
  • Turbo Toons
  • Virtual Soccer
  • Vs. Collection
  • WCW Super Brawl
  • World Cup Striker
  • WWF Raw
  • Yuujin no Furi Furi Girls
  • Zennichi Dash All Japan Prowrestling 2
  • Zero 4 Champ RR
  • ATP Tour Championship Tennis
  • Barkley Shut Up and Jam 2
  • Chi Chi's Pro Challenge Golf
  • College Football's National Championship
  • College Football's National Championship II
  • College Slam
  • Columns III: Revenge of Columns
  • Dino Dini's Soccer
  • Dragon: The Bruce Lee Story
  • ESPN National Hockey Night
  • Fever Pitch Soccer
  • FIFA International Soccer
  • From TV Animation Slam Dunk: Kyougou Makkou Taiketsu!
  • Gauntlet IV
  • Hyokkori Hyoutanjima: Daitouryou o Mezase!
  • Hyper Dunk: The Playoff Edition
  • International Superstar Soccer Deluxe
  • J.League Pro Striker
  • J.League Pro Striker 2
  • J.League Pro Striker Kanzenban
  • Madden NFL '94
  • Mega Bomberman
  • Micro Machines 2: Turbo Tournament
  • NBA Action '94
  • NBA Action '95 Starring David Robinson
  • NBA Hang Time
  • NBA Jam
  • NBA Jam Tournament Edition
  • NBA Showdown '94
  • NCAA Final Four Basketball
  • NFL '95
  • NFL 98
  • NFL Quarterback Club
  • NFL Quarterback Club '96
  • Olympic Gold
  • Party Quiz Mega Q
  • Pepenga Pengo
  • Prime Time NFL Football Starring Deion Sanders
  • Pro Striker Final Stage
  • Puzzle & Action: Ichidant-R
  • Puzzle & Action: Tant-R
  • Sega Sports 1
  • Street Racer
  • The Lost Vikings
  • Tiny Toon Adventures: ACME All-Stars
  • Triple Play 96
  • Ultimate Soccer
  • Unnecessary Roughness '95
  • Wayne Gretzky and the NHLPA All-Stars
  • Wimbledon Championship Tennis
  • World Championship Soccer II
  • World Cup USA 94
  • Worms
  • WWF Raw
  • Yuu Yuu Hakusho: Makyou Toitsusen
  • Adidas Power Soccer
  • Atari Collection 2 (Gauntlet)
  • Battle Hunter
  • Bishi Bashi Special
  • Blast Chamber
  • Blaze and Blade Busters
  • Blaze and Blade: Eternal Quest
  • Blood Lines
  • Bomberman World (5 players)
  • Breakout
  • Brian Lara Cricket
  • Bundesliga Stars 2000
  • Capcom Generations: Blazing Guns (for MERCS only)
  • Captain Commando
  • CART World Series
  • Circuit Breakers
  • College Slam
  • Crash Bash
  • Crash Team Racing
  • Destruction Derby Raw
  • Devil Dice
  • Devil Dice (5 players)
  • Disney's Pooh's Party Game
  • ECW Anarchy Rulz
  • ECW Hardcore Revolution
  • Fantastic Four
  • FIFA 2000 (8 players)
  • FIFA 2001 (8 players)
  • FIFA 97 (8 players)
  • FIFA 98 (8 players)
  • FIFA 99 (8 players)
  • Frogger
  • Frogger 2: Swampy's Revenge
  • Hogs of War
  • Hot Shots Golf
  • Hot Shots Golf 2
  • Hunter x Hunter: Maboroshi no Greed Island
  • International Superstar Soccer Pro '98
  • International Track & Field
  • International Track & Field 2000
  • ISS Pro Evolution 2
  • Iwatobi Penguin
  • Iwatobi Penguin 2
  • Jonah Lomu Rugby
  • Klonoa Beach Volleyball
  • Madden NFL 2000 (8 players)
  • Madden NFL 98 (8 players)
  • Madden NFL 99 (8 players)
  • Micro Machines V3 (8 players)
  • Micro Maniacs (8 players)
  • Monopoly
  • NASCAR Thunder 2002
  • NASCAR Thunder 2003
  • NASCAR Thunder 2004
  • NBA Hang Time
  • NBA in the Zone (8 players)
  • NBA Jam Extreme
  • NBA Jam TE
  • NBA Live 99 (8 players)
  • NBA Showtime: NBA on NBC
  • Need for Speed: Porsche Unleashed
  • NFL Blitz 2000 & 2001
  • NFL Xtreme 2 (8 players)
  • NHL 2000 (8 players)
  • NHL 97 (8 players)
  • NHL 98 (8 players)
  • NHL 99 (8 players)
  • NHL Open Ice
  • Olympic Soccer
  • Overboard! (5 players)
  • Panzer Bandit
  • Pitball
  • Pong: The Next Level
  • Poy Poy
  • Poy Poy 2
  • Professional Underground League of Pain (8 players)
  • Quake II
  • Rakugaki Showtime
  • Rally Cross
  • Rampage 2: Universal Tour
  • Rampage Through Time
  • Road Rash: Jailbreak
  • Running Wild
  • SD Gundam G Century
  • Shipwreckers! (5 players)
  • Slam N Jam '96
  • Sled Storm
  • South Park: Chef's Luv Shack
  • Space Jam (6 players)
  • Speed Freaks / Speed Punks
  • Street Racer (8 players)
  • Striker 96
  • Supersonic Racers (8 players)
  • Sydney 2000 (8 players)
  • Syndicate Wars
  • Tales of Destiny (Co-op battle)
  • Tales of Destiny II (Co-op battle)
  • Tales of Phantasia (Co-op battle)
  • Team Buddies
  • Tetris X
  • The Game of Life (6 players)
  • This is Football (8 players)
  • Thrill Kill
  • Twisted Metal III
  • Twisted Metal 4
  • V-Rally 2
  • VR Golf '97
  • WCW Mayhem
  • World Soccer Winning Eleven 2002
  • Wu-Tang: Shaolin Style
  • WWF Attitude
  • WWF In Your House
  • WWF Smackdown!
  • WWF Smackdown! 2: Know Your Role
  • WWF War Zone

Since the Nintendo 64 always had four controller ports available for every game, most multiplayer games already have four player support.

  • 007: The World is not Enough
  • 64 Oozumou
  • 64 de Hakken! Tamagotchi Minna de Tamagotchi World
  • All Star Tennis 99
  • All-Star Baseball 2000
  • All-Star Baseball 2001
  • All-Star Baseball 99
  • Armorines: Project S.W.A.R.M.
  • Army Men: Air Combat
  • Army Men: Sarge's Heroes
  • Army Men: Sarge's Heroes 2
  • Asteroids Hyper 64
  • Automobili Lamborghini
  • Bakushou Jinsei 64: Mezase! Resort Ou
  • Banjo-Tooie
  • Battletanx
  • Battletanx: Global Assault
  • Beetle Adventure Racing
  • Bomberman 64
  • Bomberman 64: Arcade Edition
  • Bust-A-Move 3 DX
  • Centre Court Tennis
  • Chameleon Twist
  • Charlie Blast's Territory
  • Conker's Bad Fur Day
  • Cruis'n Exotica
  • Cruis'n World
  • Custom Robo V2
  • Cyber Tiger
  • Daikatana
  • Derby Stallion 64
  • Destruction Derby 64
  • Diddy Kong Racing
  • Donkey Kong 64
  • Dr. Mario 64
  • Duke Nukem 64
  • Duke Nukem Zero Hour
  • ECW Hardcore Revolution
  • Excitebike 64
  • Extreme-G
  • Extreme-G 2
  • F-Zero X
  • F-Zero X Expansion Kit
  • FIFA 64
  • FIFA 98: Road to the World Cup
  • FIFA 99
  • Fighter Destiny 2
  • Forsaken
  • Gauntlet Legends
  • Getter Love!! Chô Renai Party Game
  • Goemon: Mononoke Sugoroku
  • Goldeneye 007
  • Hexen
  • Iggy's Reckin' Balls
  • International Superstar Soccer 2000
  • International Superstar Soccer 64
  • International Superstar Soccer 98
  • International Track & Field 2000
  • J-League Dynamite Soccer 64
  • J-League Eleven Beat
  • J-League Live 64
  • Japan Pro Golf Tour 64
  • Jeremy McGrath Supercross 2000
  • Jet Force Gemini
  • Jikkyou J-League Perfect Striker
  • Jinsei Game 64
  • Kira to Kaiketsu! 64 Tanteidan
  • Kirby 64: The Crystal Shards
  • Knife Edge
  • Kobe Bryant in NBA Courtside
  • Lylat Wars
  • Madden Football 64
  • Madden NFL 2000
  • Madden NFL 2001
  • Madden NFL 2002
  • Madden NFL 99
  • Mario Artist: Paint Studio
  • Mario Artist: Polygon Studio
  • Mario Golf
  • Mario Kart 64
  • Mario Party
  • Mario Party 2
  • Mario Party 3
  • Mario Tennis
  • Michael Owen's World League Soccer 2000
  • Mickey's Speedway USA
  • Milo's Astro Lanes
  • Monopoly
  • Monster Truck Madness 64
  • Ms. Pac-Man Maze Madness
  • NBA Courtside 2 featuring Kobe Bryant
  • NBA Hangtime
  • NBA In The Zone 2000
  • NBA Jam '99
  • NBA Jam 2000
  • NBA Live 2000
  • NBA Live 99
  • NBA Pro 98
  • NBA Pro 99
  • NBA Showtime: NBA on NBC
  • NFL Blitz 2000
  • NFL Blitz 2001
  • NFL Blitz Special Edition
  • NFL QB Club 2001
  • NFL Quarterback Club '98
  • NFL Quarterback Club '99
  • NFL Quarterback Club 2000
  • NHL '99
  • NHL Breakaway '99
  • NHL Breakaway 98
  • NHL Pro '99
  • Nagano Winter Olympics 98
  • Olympic Hockey Nagano '98
  • Operation WinBack
  • PGA European Tour
  • Penny Racers
  • Perfect Dark
  • Pokemon Stadium
  • Pokemon Stadium 2
  • Polaris SnoCross
  • Quake II
  • Rally Challenge 2000
  • Rat Attack
  • Re-Volt
  • Ridge Racer 64
  • Road Rash 64
  • Roadsters
  • Rugrats in Paris
  • Rugrats: Scavenger Hunt
  • S.C.A.R.S.
  • San Francisco Rush 2049
  • Snowboard Kids
  • Snowboard Kids 2
  • South Park
  • South Park Rally
  • South Park: Chef's Luv Shack
  • Super Bowling
  • Super Smash Bros.
  • Superman
  • The New Tetris
  • Top Gear OverDrive
  • Top Gear Rally 2
  • Turok 2: Seeds Of Evil
  • Turok 3: Shadow of Oblivion
  • Turok: Rage Wars
  • Vigilante 8
  • Vigilante 8: Second Offense
  • Virtual Chess 64
  • Virtual Pro Wrestling 2: Oudou Keishou
  • Virtual Pro Wrestling 64
  • WCW Mayhem
  • WCW Nitro
  • WCW vs. NWO: World Tour
  • WCW/NWO Revenge
  • WWF Attitude
  • WWF No Mercy
  • WWF War Zone
  • WWF Wrestlemania 2000
  • Wayne Gretzky's 3D Hockey
  • Wayne Gretzky's 3D Hockey '98
  • WipeOut 64
  • World Cup 98
  • Worms Armageddon
  • Xena: Warrior Princess: The Talisman of Fate

* A few of the games below will work only with MAME (no netplay support) and not FB-Neo (has netplay support).

  • 2 On 2 Open Ice Challenge
  • Alien Storm
  • Alien vs. Predator
  • Arabian Fight
  • Arabian Magic
  • Armored Warriors
  • Atari Football
  • Atari Soccer
  • Barricade
  • Battle Circuit
  • Battle Toads
  • Blazing Tornado
  • Bomber Man World
  • Brute Force
  • Bucky O'Hare
  • Cadillacs and Dinosaurs
  • Captain America and the Avengers
  • Captain Commando
  • Car Polo
  • Championship Sprint
  • Checkmate
  • Comotion
  • Cops'n Robbers
  • Crime Fighters
  • Crypt Killer
  • Danny Sullivan's Indy Heat
  • Dark Adventure
  • Dead Connection
  • Desert Assault
  • Double Dragon 3 - The Rosetta Stone
  • Dungeons & Dragons: Shadow over Mystara
  • Dungeons & Dragons: Tower of Doom
  • Dunk Mania
  • Dynablaster
  • Escape Kids
  • Euro Champ '92
  • Exvania
  • Face Off
  • Football Champ
  • Gauntlet
  • Gauntlet II
  • GI Joe
  • Gladiator
  • Golden Axe: The Revenge of Death Adder
  • Growl
  • Hard Dunk
  • Hat Trick Hero
  • Hat Trick Hero '95
  • Heated Barrel
  • High Impact Football
  • Hit Me
  • Hit the Ice
  • Hook
  • Hot Rod
  • Hyper Sports Special
  • Ironman Stewart's Super Off-Road
  • John Elway's Team Quarterback
  • Judge Dredd
  • Karate Blazers
  • Knights of the Round
  • Knights of Valor
  • Knights of Valor 2
  • Knuckle Heads
  • Mercs
  • Metamorphic Force
  • Michael Jackson's Moonwalker
  • Muscle Bomber - The Body Explosion
  • Muscle Bomber Duo - Heat Up Warriors
  • Muscle Bomber Duo - Ultimate Team Battle
  • Mystic Warriors
  • NBA Hangtime
  • NBA Jam
  • NBA Jam Tournament Edition
  • NBA Maximum Hangtime
  • NBA on NBA Gold
  • NBA on NBC
  • NBA Showtime
  • NBA Slam Dunk
  • Nettou! Gekitou! Quiztou!!
  • NFL Blitz
  • NFL Blitz '99
  • NFL Blitz 2000/Gold
  • Ninja Baseball Batman
  • Numan Athletics
  • Oriental Legend
  • Pigout
  • Pit Fighter
  • Power Drive
  • Powered Gear: Strategic Variant Armor Equipment
  • Punk Shot
  • Quartet
  • Racin' Force
  • Rampage
  • Rampage: World Tour
  • Rampart
  • Rim Rockin' Basketball
  • Ring Rage
  • Run and Gun
  • Run and Gun 2
  • Runark
  • Rushing Heroes
  • Sangokushi II
  • Saturday Night Slam Masters
  • Senjou no Ookami II
  • Silent Dragon
  • Snow Bros. 2 - With New Elves
  • Spider-Man: The Videogame
  • Sprint 4
  • Star Guards
  • Sunset Riders
  • Super Cup Finals
  • Super High Impact
  • Super Sprint
  • Tecmo Bowl
  • Teenage Mutant Ninja Turtles
  • Teenage Mutant Ninja Turtles : Turtles in Time
  • Tenchi wo Kurau II - Sekiheki no Tatakai
  • The Combatribes
  • The King of Dragons
  • The Main Event
  • The Ninja Kids
  • The Simpsons
  • The Three Stooges In Brides Is Brides
  • TouchDown Fever
  • TouchDown Fever 2
  • Tournament Cyberball 2072
  • Tournament Table
  • Trog
  • Turbo Force
  • Undercover Cops
  • US Championship V'ball
  • Vendetta
  • Violent Storm
  • Vs. Tennis
  • Warlords
  • Warriors of Fate
  • Wayne Gretzky's 3D Hockey
  • Wheel Of Fortune
  • Wild West C.O.W.-Boys of Moo Mesa
  • World Soccer Finals
  • WWF Wrestlefest
  • X-Men (6 players)
  • Xenophobe
  • A Nightmare on Elm Street
  • Bomberman II
  • Championship Bowling
  • Danny Sullivan's Indy Heat
  • Downtown Nekketsu Koushinkyoku: Soreyuke Daiundoukai
  • Gauntlet II
  • Greg Norman's Golf Power
  • Harlem Globetrotters
  • Indy Heat
  • Kings of the Beach
  • M.U.L.E.
  • Magic Johnson's Fast Break
  • Monopoly
  • Monster Truck Rally
  • NES Play Action Football
  • Nintendo World Cup
  • R.C. Pro-Am II
  • Rackets & Rivals
  • Rock 'n Ball
  • Roundball: 2-on-2 Challenge
  • Spot
  • Super Jeopardy!
  • Super Off Road
  • Super Spike V'Ball
  • Swords and Serpents
  • Top Players' Tennis
  • Wit's


Performance

While enabling netplay mode has a negligible impact on EmuVR's performance, Retroarch's netplay will use more hardware resources depending on the core and game, even if you're just hosting and no one is connected to you yet.

  • Most 2D and older systems will not have any noticeable impact on CPU and RAM usage.
  • Some other cores however will have a dramatic impact as soon as you enable netplay mode.
  • For example, PlayStation 1 cores can increase RAM usage from 800MB to 3GB, and double CPU usage instantly when enabling netplay.
  • In the same way, Nintendo 64 cores can increase RAM usage from 1GB to 3GB, and CPU usage can increase 5 times.
  • These numbers depend on the core and game.
  • If you don't have a lot of RAM, avoid trying to play too many PS1 or N64 games at the same time with netplay.

Some cores do not support netplay at all but would still use a huge amount of RAM if you tried to run them. They can take over 8GB of your RAM instantly even if they don't really work. Since they don't actually do anything in netplay mode besides wasting your resources, these cores will be automatically disabled when you turn on netplay mode, since any visiting player could simply start one of these games and crash everyone's machines (including the host) if they didn't have enough RAM.

These systems will simply turn off instantly when you try to start them during a netplay session:

  • Dolphin (GameCube / Wii)
  • Flycast (Dreamcast)
  • PCSX2 (PlayStation 2)
  • MAME (Arcade) (FB-Neo does work well)

Notice that every running game will be using resources on each player's machine, even if you're not controlling it. If someone behind you starts a N64 game, your machine will load up that extra CPU and RAM even if you haven't noticed it.

Again, most 2D games are fine, and we've tested around 15 simultaneous and synced games in netplay mode with several players in the room, including a couple of PS1 or N64 games here and there.

* Note that the player with the slowest computer or worse internet/ping might make the games run slower for everyone else in the room until they leave. Everyone's games performance will be limited by the slowest player in the room.


Desync

TL;DR: You and your friend are seeing different things happening in the same game you're both playing. (Sometimes hard to realize until someone says "why are you driving the wrong way?" or "wait what, I didn't die, you did!")

In some rare instances, you might experience a game desync.

This means that, while the game is still running on both machines, and you're still receiving and sending button presses, the game state has diverged between you and your friend, and you're not seeing the same events happening in the game, unknowingly.

Think of it as if a tiny but decisive event somehow had different outcomes for either of you, and this forks spacetime into two different parallel universes that will keep going on each machine.
You will walk / press forward in both universes, but while your character is walking along a sidewalk on your own version, in the alternate universe other players might be seeing you cross a dangerous street instead, or maybe walking into a wall, but technically you are still "walking forward" on both universes.

This might be rare, but it's a little bit more prone to happen with some N64 or light gun games than others.

Example:

  • You're playing a Mustached Plumber Kart game with a friend. You're head to head.
  • Someone shoots a red shell in your direction!
  • For some reason, maybe bugs cosmic magic, you see the shell hit your friend, but on their machine they're actually seeing the shell hit you!
  • After that paradoxical outcome, you win the race; but to your friend, they're the one who've actually won the race.
  • Following this, on your side you might see them running into walls or doing random nonsense things, as if they're playing while blindfolded. And yet they seem happy. The reason is, on their machine, they're actually at another place in the track, maybe even on a different track, doing great, while you're the one doing weird things instead.
  • In the end, each player will think they've won, but everyone loses.

There will be no warning or any way to notice that you've desynced. If you want to help us to learn which systems or games are more likely to trigger this issue, the only way to know is to keep communicating with your friend and asking "What are you seeing on the screen?", "Are we doing this thing, in this place, in this level?", "Have I just won?", "Have I just died?", "Why are you smiling if I just killed you?", "Wait, you're saying you just beat me, what?", "No, you're lying!"

If you're winning but your friend sounds like they've just won while you see them running randomly into walls, ask why.

Force Resync Command

If you've noticed you're actually desynced, it's not the end of the world (technically).

You can simply press the Force Resync command, and all players will sync again to the host's current state.

Either the host or any client can trigger this command, but everyone will always sync to the host, the only real universe of all the diverging parallel universes.


Port Forwarding

If you're hosting, you'll need to open some specific ports or your friends won't be able to connect to you.

If you're just joining a host and not hosting yourself, you don't need to do any port forwarding.

For most modern routers, you won't need to do anything, as the ports will be automatically opened for you through UPnP / NAT Punch-through. You might still need to enable UPnP on your router, so please refer to your router's manual.

If that still doesn't work in your case, you'll need to manually forward the following ports:

  • Port 4700 UDP (For EmuVR)
  • Port 4700 to 4730 TCP (For multiple Retroarch instances)

The above means ports 4700, 4701, 4702 ... 4729, 4730, TCP. (And, again, Port 4700 UDP)

That's one port for each console you're planning to play simultaneously.

Notice that port 4700 needs to be forwarded for both UDP and TCP. (TCP 4700 is reserved for syncing custom textures and cores)

If you never plan to play more than 10 games simultaneously, you can open up to port 4710. If you have a super machine and plan to play 99 games simultaneously with friends that have super machines too, you should open up to port 4799.

To make it clear, each time you start a console, it will take up one slot, and after shutting it down, it will free that slot. If you play 50 games in a section but only one at a time, you'll use only one port, 4701. 50 games but only two at a time? You're using ports 4701 and 4702.

  • If only your port 4700 is working but 4701 and up are not, clients will still be able to join your room but their games will just restart twice and then shut down.

Since each router brand and model has a very different kind of interface, it's impossible to write a universal guide. Unfortunately this might not be easy for the inexperienced user. Here are some guides on port forwarding for several interfaces: [1], [2], [3], [4], [5]. Or just google "<your router model> port forwarding". (Avoid downloading any software claiming to help you with it)

With ISP routers, often you'll need to reboot your router after changing port settings.

If your ISP somehow doesn't allow you to forward ports on your router or to have direct internet access to your computer, you might not be able to host a room in EmuVR unfortunately, but you can still connect to other players.

Note: If you're playing on LAN (Local Area Network, i.e. computers connected in the same home network) using a LAN IP, port forwarding is not needed.

You'll need to allow EmuVR.exe and Retroarch.exe on your Firewall rules as well. Here's a guide for adding Firewall exceptions on Windows, and here's another one. If you're using a third party antivirus software, it might have its own firewall settings.

Testing Your Ports

Even if you're 100% sure you've forwarded all the needed ports correctly in your router settings but still have netplay issues, you might be missing something. Maybe it's your firewall, maybe your ISP doesn't really allow you to forward ports (CGNAT), or maybe your router interface is just too confusing to be sure.

Your settings might tell you they're open, but they might not be actually reachable to the outside world for some reason.


Here's how to test if your ports are actually open to others:

  1. Start EmuVR, open the Netplay menu, then click [Host].
  2. Start any (netplay supported) game in the room and keep it running. Don't close EmuVR or the game yet.
  3. Go to this website, change Port Number from "80" to "4700" and click Check. It should say "Port 4700 is open".
  4. Finally, try the same again with port "4701", it should also say "Port 4701 is open".

If you're really hosting and running a game and yet that tool says the ports are closed, it's time to review your port forwarding and firewall settings.


Voice Chat

With the built in voice chat feature you can communicate with other players in the room using your microphone. When enabled, it uses automatic voice detection heuristics to send voice data efficiently.

If your own voice chat is disabled, you won't be heard or hear anyone, but other players can still talk to each other even if you're the host.

In the Netplay Menu you'll be able to quickly toggle voice chat or just mute your own mic. You can also click the Voice Chat button to show the full menu with more voice settings, like changing your mic volume, other players volume, selecting your input device, tweaking the voice detection sensitivity and more. Check the Voice Chat Settings page to learn what each setting does, or just hover each one of them with your pointer ingame to see their tooltips with the same info.

In the netplay lobby, each player name in the list has an icon displaying if they're using voice chat or not, and if they're muted by you. You can also click this icon to mute them. Hover the icon with your cursor to know more.

When a player speaks through voice chat, their name in the lobby menu and the "visor" on their avatars in the room will keep flashing to indicate who's speaking.


Core Syncing

Retroarch's netplay requires the same exact core version to work. EmuVR deals with it for you automatically. This section is more about what you don't need to worry about.

When you're visiting a host and try to start a game, the host will automatically send the needed core to clients if they don't have the exact same core and version. They're cached to prevent being sent every time you join. They will not replace your own installed cores.

Without this feature, all players would have to coordinate and to be sure they all have the same exact cores before joining a host. And since many cores are updated weekly or even daily, they'd have to redo all this and replace their cores again each time they wanted to join a new host.

Core syncing allows players to connect with anyone with just a room code, no need to plan and exchange files before joining.

Netplay also requires some specific Retroarch settings and core options to be exactly same same. EmuVR will also sync this automatically for you, and when joining a host you'll use their settings.

That said, some advanced Retroarch overrides or settings cannot be synced and might cause issues. To prevent possible problems with netplay and desyncing, it's advised to have a clean Retroarch state. If in doubt, deleting retroarch.cfg and \Retroarch\config\ will usually fix this (make backups before deleting anything). Custom controller bindings however are local and safe.

Changing any Retroarch settings while EmuVR is running will not be synced to other players and can cause desyncs.

* Cores downloaded before 10/18/2020 do not support automatic syncing; you'll need to update these outdated cores using Game Scanner.


Game Saves

When hosting, all games will use your local game saves. If a client has the same game, this will not overwrite their own saves on their machines.

As a host, any game save will be committed to your files, even if it's a client playing the game, so be careful. Any visiting friend could start a game and overwrite your local saves, so make backups if needed.


Troubleshooting

First and foremost, make sure your issue is actually related to netplay.

To confirm this, disable netplay mode (by clicking Stop Hosting or Disconnect) and try your game again. If the issue persists, it's not netplay related, then please read the General Troubleshooting page.

Important: If you have any issues, pay attention to the Log Panel in the Netplay Menu to see helpful messages and possible solutions to your problems.


No one can join my room / I can't connect to a host

Make sure the host has forwarded all the needed ports correctly and set their firewall rules as explained here.


My games restart twice then turn off (only on clients)

This means the Host hasn't forwarded all their TCP ports correctly, or hasn't allowed retroarch.exe on their Firewall rules.

The host and you will see a message about this in the netplay Log Panel.

It's not your fault. Let the host know.


Some games won't load, and the console just turns off instantly

MAME, Dolphin, Flycast and PCSX2 do not support netplay at all but still can steal more than 8GB of your RAM instantly, so they're disabled while in netplay, as explained here.

If you're not using any of these cores, they're actually taking 3 seconds to turn off, and you made sure it still happens even with netplay disabled, this is not a netplay issue.


The console stays powered on, but there's nothing on the TV

This means you don't have the same game as the host, look for an orange icon on the cartridge / CD to confirm.

It can also mean you don't have your BIOS, or that for any reason your game is not working on your machine but is loading for other players. Make sure to test that game in offline mode as well.

If the game does load but for any reason Retroarch crashes or shuts down only on your machine, you'll have a blank image on your TV, but the console will stay on. You can try turning the console on again locally, and it should load and sync to the host seamlessly. If this never brings the game back at all, your game is simply not loading, for the reasons mentioned above.


We can't play Bomberman with 4 players

You need to enable Multitap mode to play 4 player games on the SNES, Sega Genesis and PlayStation.


Some videos load on the Host, but not on Clients

Your video file might have been encoded using unsupported formats for streaming, such as HEVC, or it might be larger than 2GB.

If you really want that video and can't find another source, try reencoding it using more common formats, such as h.264 mp4.


While playing videos, players and moving objects are choppy

This usually means the host's computer is maxing its internet upload speed when streaming video to many clients and that's hogging all netplay communication. Notice that the needed upload bandwidth will increase with each client in the room and each video currently being watched.

Try using lower resolution / quality videos, playing less simultaneous videos, and using ".str" files for external streaming instead, since they won't use the host's own upload bandwidth.