RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Configure Netplay on Retropie. Am I doing this right?

    Scheduled Pinned Locked Moved Help and Support
    netplaylobbyretropie
    24 Posts 7 Posters 5.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • X
      xwons
      last edited by xwons

      Ok, so I wanted to try netplay on retropie on my raspberry pi. If possible, I would like to use the lobbies to find and connect to games, as it is much more user friendly. I mainly want to play NES/SNES/MegaDrive games.

      If I am not mistaken, the steps I have to follow to configure it are the following:

      1. Update retropie to the last version using the retropie-setup.sh script
      2. Launch any game.
      3. Enter the retroarch menu (Select+Triangle if using a playstation controller). (Optional, switch to the "ozone" interface in Settings / Drivers / Menu, save settings and restart retroarch, it is much more clear than the default one.)
      4. Online Updater / Update Databases (if that option is hidden, enable it in the UI settings)
      5. Import Content / Scan Directory. Select the Rom folder for your system (e.g. SNES). Wait until it finishes (it can take a while). This step checks if your roms match the database you have downloaded in the previous step. You should do this for every rom folder.

      Now you can either host a game, or join an existing room.

      To host a game:
      6.1) Enter the Netplay menu. Turn on Use Relay Server if you are behind a firewall or NAT and you don't want to open ports. Also publicly announce the game if you want others to see it on the list (should be ON by default).
      6.2) Host / Start netplay host. At this point your game will launch normally. You will receive a notification when a second player connects to your game.

      To join a room:
      6.1) Netplay / Refresh Room List.
      6.2) Select game from the room list, and launch it. In theory, if you have that same rom and emulator. The game should launch and connect as Player 2.

      Am I doing this right? Is it possible to use the current rom folder without a database (or let RetroArch generate the CRC for every rom?). I am using the no-intro dataset for these consoles, so it should be quite standard... Also, the database and scanning the folders may not be necessary if you are the one hosting, right?

      Anyone wants to try to play a game with me? I am hosting Super Mario Kart right now.

      saccublendaS 1 Reply Last reply Reply Quote 0
      • saccublendaS
        saccublenda @xwons
        last edited by

        @xwons I’ve tried many times, never been able to start netplay.

        1 Reply Last reply Reply Quote 1
        • X
          xwons
          last edited by xwons

          Right after I wrote the post, I hosted a Super Mario Kart game and played two complete tournaments against a stranger. So at least I know it works from "host" side of things, which I believe doesn't require actually downloading the databases or scanning rom folders.

          I'll try now to scan some more rom folders and see if I can join games created by someone else. I'll report back.

          Anyway, I believe that the whole process could be much more simple. Apparently it works from a technical perspective, but the user experience is terrible and not at all user friendly.

          Update: I was unable to join any games using the lobby system. Aparently Retroarch has no idea where to find the roms and the cores, even after scanning the directories, so I couldn't start any game. I tried to follow the instructions posted here, but they seem to be outdated and no longer apply. Hosting the game was fine, though, and a friend could join and play using a windows retroarch client.

          saccublendaS 1 Reply Last reply Reply Quote 0
          • V
            Vegz78
            last edited by Vegz78

            Anyone who've gotten Netplay in lobbies to work, as a client from Retropie, or who could confirm the status of this in Retropie?

            I also followed the instructions from @mediamogul that @xwons links to above, making sure, Retroarch, core and content/ROM versions were the same and the latest on host and client. Also scanned directories.

            The closest I came on the client when trying to connect, was a success message about compatible content found, then another error message about ""suitable core or content not found, try manual load".

            Every possible combinations of loading and launching after that ended in the same error message, and stuck like here: https://github.com/libretro/RetroArch/issues/6872

            I've tried both Tetris with on lr-tgbdual and Blades of Steel on lr-fceumm. Both work with direct connection from client to host in RetroPie runncommand launch and through RetroArch, but none of the work through the lobby.

            Any help or information would be greatly appreciated, as would working Netplay through this lobby system!

            Br,
            Vegard

            1 Reply Last reply Reply Quote 0
            • X
              xwons
              last edited by

              I was able to host a game from my raspberry, and people from the pc client could join and play, but I never managed to join a game in the lobby from my raspberry.

              1 Reply Last reply Reply Quote 0
              • V
                Vegz78
                last edited by Vegz78

                Yeah, seems like even @mediamogul only had a half of dozen of several dozen attempts success rate, as well: https://retropie.org.uk/forum/topic/12793/netplay/20

                But is there anyone out there who has had consistent success in connecting a RetroPie client to a netplay game in the lobby on a Raspberry Pi, or who could confirm the status of/plans for this in Retropie?

                I've heard it works on Recalbox?

                Anyways, thanks for a great product! My kids and I use RetroPie all the time.

                Br,
                Vegard

                1 Reply Last reply Reply Quote 0
                • saccublendaS
                  saccublenda @xwons
                  last edited by saccublenda

                  I made some test today, and I confirm what @xwons said.
                  I was running Retropie on a Pi4 and Retroarch on my laptop (same Retroarch version, same core, same rom). I did not perform any rom scan on neither system (see below), I was just launching the same rom on the same emulator. On the host side I went in Retroarch menu Netplay->Host->Start Netplay Host. On the guest side I went in Retroarch menu Netplay->Refresh Room List and selected the host room.

                  • Retropie is able to serve as a netplay host, that is, I was able to join the Retropie netplay host room as a guest from Retroarch running on the laptop.
                  • Retropie cannot join netplay as a guest, that is, when I try to join the host room of Retroarch running on the laptop, I get the message "Failed to locate matching content by either CRC or filename". This also happen on any netplay host room I see in the room list, despite running the same core and the same rom (same CRC)

                  I also tried installing Retropie on an Ubuntu virtual machine, obtaining the same results.
                  I add that also I tried to create a playlist by scanning the rom directory, by going in Retroarch menu Main Menu->Load Content->Playlist->Scan Directory, selecting the rom directory and then Scan This Directory. On Retroarch running on the laptop this correctly created a playlist with the roms found in the directory, while Retropie is not able to find any content.

                  1 Reply Last reply Reply Quote 0
                  • saccublendaS
                    saccublenda
                    last edited by saccublenda

                    I was discussing this on RetroPie-Setup github, and @mitu found a workaround to make netplay guest work on Retropie. The main point is RetroArch expects to find the cores in the same location where the core info file is stored.

                    1. Go into the RetroArch menu Main Menu -> Online Updater -> Update Core Info Files
                    2. Create a symbolic link to the RetroArch core you want to use for netplay in the directory where the core info file was stored, for example
                      ln -s /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so $HOME/.config/retroarch/cores
                      This should be repeated for every RetroArch core you want to use with netplay

                    With this workaround I was able to join netplay rooms as a guest. Load the right rom with the right core and it should work. Some times I get a mysterious Failed to initialize netplay error, but other times I was able to join netplay and actually play.

                    Optional: with the previous workaround you should also be able to create playlists, that save you the hassle of loading the right rom with the right core every time you want to join netplay.

                    1. Go into the RetroArch menu Main Menu -> Online Updater -> Update Databases
                    2. Load a rom with a system you want to use in netplay. Go into the RetroArch menu Main Menu -> Load Content -> Playlists -> Scan Directory and select the directory containing the system roms (for arcade cores with zipped roms you may have to use Manual Scan).
                      This should be repeated for every system you want to use with netplay

                    In this way you should create a playlist of roms (matching the system database) for the system you loaded. Roms should come from standard No-Intro or Goodsets to be actually recognized and added to playlists.
                    When trying to join a netplay room, RetroArch should check if the rom the host is playing with a given system is contained in your playlist of the same system (matching the CRC). If it is, RetroArch should automatically load the right rom with the right core, and start netplay.

                    1 Reply Last reply Reply Quote 4
                    • B
                      BGallagherLA
                      last edited by

                      I've been playing Netplay with my brother like 1800 miles away for awhile now, on my RetroPie, first on my Pi 2 and still on my Pi 4. I think one of the main things you need to make it work is if you host, you have to have a port open on your router. It works great.

                      saccublendaS 1 Reply Last reply Reply Quote 0
                      • saccublendaS
                        saccublenda @BGallagherLA
                        last edited by saccublenda

                        @BGallagherLA I don't know what version of RetroPie you are using with your brother, but this is simply not true for latest RetroPie with 1.8.8 RetroArch. It has been tested and confirmed that without this workaround it does not work even if you have manually loaded the right core and rom, and even if the two RetroPies are on the same lan. Also I don't think that the distance is particularly relevant.

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          BGallagherLA @saccublenda
                          last edited by

                          @saccublenda I'm using RetroPie 4.6. Not sure what version of RetroArch but whatever version 4.6 came with I guess. I have myself set up as the Host as you set up in the RetroPie menu on the Pi. I start a game, hit a button to bring up that menu where you can choose emulators and whatnot. From there I scroll to Launch with Netplay enabled and then tell my brother it's up. He goes to the RetroArch Netplay lobby and finds me and connects to my game and it works great.

                          There are games that don't work and such, but we've gotten it to work regularly.

                          1 Reply Last reply Reply Quote 0
                          • B
                            BGallagherLA
                            last edited by

                            But like I said, I think the key is to make sure you have a port forwarded/open on your router if you are hosting and it will work.

                            X saccublendaS 2 Replies Last reply Reply Quote 0
                            • X
                              xwons @BGallagherLA
                              last edited by

                              @BGallagherLA When using Netplay from a PC, I usually activate the option to use a Relay server. For some reason, games stutter less and you don't need to open ports. Have you tried that in RetroPie?

                              1 Reply Last reply Reply Quote 0
                              • saccublendaS
                                saccublenda @BGallagherLA
                                last edited by

                                @BGallagherLA The problem is related to using RetroPie as guest, not as host.

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  BGallagherLA @saccublenda
                                  last edited by

                                  @saccublenda Ohh. I see. I guess that would make sense then. My brother usually plays through RetroArch on his PC or his phone. We tried to get my other brother to play through his Pi and it never worked.

                                  1 Reply Last reply Reply Quote 0
                                  • strohsephS
                                    strohseph
                                    last edited by

                                    @saccublenda Thank you soooooooo much for that workaround. It worked for me and my brother. Linked up all my configs for the emulators we will be using. Can't express how thankful I am.

                                    saccublendaS 1 Reply Last reply Reply Quote 0
                                    • saccublendaS
                                      saccublenda @strohseph
                                      last edited by

                                      @strohseph You should thank @mitu since he found out this workaround, I am just reporting it.

                                      1 Reply Last reply Reply Quote 0
                                      • strohsephS
                                        strohseph
                                        last edited by strohseph

                                        Well thank you @mitu

                                        For those wanting to implement this workaround, here is a list of the libretro coresI have on my build so you can copy paste the ones you want or all of them like I did.

                                        ln -s /opt/retropie/libretrocores/lr-81/81_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-atari800/atari800_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-lynx/mednafen_lynx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-ngp/mednafen_ngp_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-pce-fast/mednafen_pce_fast_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-pcfx/mednafen_pcfx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-psx/mednafen_psx_hw_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-supergrafx/mednafen_supergrafx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-vb/mednafen_vb_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-beetle-wswan/mednafen_wswan_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-bluemsx/bluemsx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-caprice32/cap32_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-desmume/desmume_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-dosbox/dosbox_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-fbalpha2012/fbalpha2012_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-fbneo/fbneo_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-flycast/reicast_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-fmsx/fmsx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-freechaf/freechaf_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-freeintv/freeintv_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-fuse/fuse_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-gambatte/gambatte_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-genesis-plus-gx/genesis_plus_gx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-gpsp/gpsp_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-gw/gw_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-handy/handy_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-hatari/hatari_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2000/mame2000_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2003_midway/mame2003_midway_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2003-plus/mame2003_plus_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2010/mame2010_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2015/mame2015_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mame2016/mamearcade2016_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mesen-s/mesen-s_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mess/mess_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mgba/mgba_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mrboom/mrboom_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mupen64plus/mupen64plus_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-mupen64plus-next/mupen64plus_next_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-neocd/neocd_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-nestopia/nestopia_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-np2kai/np2kai_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-nxengine/nxengine_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-o2em/o2em_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-opera/4do_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-parallel-n64/parallel_n64_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-pcsx-rearmed/pcsx_rearmed_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-pokemini/pokemini_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-ppsspp/ppsspp_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-prboom/prboom_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-prosystem/prosystem_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-puae/puae_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-px68k/px68k_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-quasi88/quasi88_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-quicknes/quicknes_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-scummvm/scummvm_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-snes9x2002/snes9x2002_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-snes9x2005/snes9x2005_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-snes9x2010/snes9x2010_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-stella2014/stella2014_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-tgbdual/tgbdual_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-tyrquake/tyrquake_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-vba-next/vba_next_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-vecx/vecx_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-vice/vice_x64_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-virtualjaguar/virtualjaguar_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-x1/x1_libretro.so $HOME/.config/retroarch/cores
                                        ln -s /opt/retropie/libretrocores/lr-yabause/yabause_libretro.so $HOME/.config/retroarch/cores
                                        

                                        (Ignore the random code highlighting)

                                        Cheers.

                                        mpnuttallM AddisonA 2 Replies Last reply Reply Quote 2
                                        • mpnuttallM
                                          mpnuttall @strohseph
                                          last edited by

                                          @strohseph strohseph Hello! Sorry to ask such a basic question, but how and where should I paste these shortcuts? I read @saccublenda post, but don't know how to to create them - I'm no good with console stuff and generally only mess around with settings via the Retropie and Retroarch UIs. Is there an idiots step by step of how to add these? Thanks so much, Mark.

                                          saccublendaS 1 Reply Last reply Reply Quote 0
                                          • saccublendaS
                                            saccublenda @mpnuttall
                                            last edited by

                                            @mpnuttall As explained in my post, the command ln -s will create the symbolic link. For example
                                            ln -s /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so $HOME/.config/retroarch/cores
                                            will create a symbolic link to the file /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so in the directory $HOME/.config/retroarch/cores.

                                            mpnuttallM 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.