RetroArch 1.4.1 Netplay
-
The latest version of RetroArch has brought with it a huge update to NetPlay functionality, with auto matching:
https://www.libretro.com/index.php/retroarch-1-4-1-open-beta-released-highlights/
Will we be able to use this functionality in RetroPie?
-
I hope this gets more popular when it's released. Would love to see a public room feature added to retropie if it's possible.
-
I was reading this today as well. I updated a few days ago and I think pie is only on 1.3.6 so I guess we have to wait?
-
@eDrinker 1.4.1 is included if you update.
-
The latest version of RetroArch has brought... NetPlay... auto matching
Will we be able to use this functionality in RetroPie?I'll test this tonight with some 'Dr. Mario' and report back.
-
@vretro
Thanks for the info! I read further down on the link you posted and I noticed they are porting RetroArch to DOS/Windows 9x/Windows 2K. I wouldn't think there is much of a demand for this. I think if you had an old Win9x/2k PC that you would be better off to just put Linux on it and just run the Linux version of RetroArch. If you had a really old PC with just DOS (and maybe Win3.x) it wouldn't really be powerful enough to do much emulation (be much better to get a Raspberry Pi). -
I noticed they are porting RetroArch to DOS/Windows 9x/Windows 2K.
Wow, that is surprising. It'll allow new life for a lot of machines that are collecting dust, though.
-
@BuZz thanks I just upgraded. Will be interested to know if they fixed/improved any of the dysnc issues.
-
I just tested the Netplay rooms feature and I can see this as being really nice. Once you invoke the RetroArch GUI while in a game (select+x), you then navigate to 'Netplay' and the 'Netplay Rooms'. You can then choose to start a hosting session, or refresh the list of available servers. If you choose to start a hosting session, your nickname should appear in the list of available servers. Refreshing the list populates the menu with these servers for you to select, listed by nickname.
One thing that troubles me is that my RetroArch netplay nickname is set to be 'Pseudoscience'. However, when I refreshed the list, my nickname was listed as being my IP address. So instead of telling people that I'm starting to play 'Dr. Mario' and that anyone who wants to join can find me under the nickname 'Pseudoscience', I would have to list my IP address for all to see on a public forum. Should this even be a concern, or am I just over thinking it?
-
Yeah I'd rather have my nickname than my IP address.
-
OK, I figured out how to set the netplay nickname, but it's somewhat in conflict with the RetroPie method. Normally, all the netplay settings (including the nickname) are entered into the 'RetroArch Netplay' configuration menu in the 'RetroPie' menu of Emulation Station. However, while RetroArch honors the IP address configured there, it ignores the nickname setting. To set it manually, you can of course alter the
/opt/retropie/configs/all/retroarch.cfg
file using SSH or the built-in 'Configuration Editor', also found in the 'RetroPie' menu of Emulation Station. The particular setting in question will be:#netplay_nickname =
And it will need to altered to:
netplay_nickname = InsertNicknameHere
After playing around with this a bit more, I'm starting to wonder if this feature's discovery method is currently compatible with RetroPie. In order for it to work, you first must scan the roms folder from within the RetroArch GUI. It then makes a playlist of the games it was able to discover using a successful CRC check. RetroArch is then able to match content between users with this list, meaning that if you click on someone's name, a sub-menu will pop up telling you which games are compatible between the two users.
I'm probably missing something here, but every time I scan my roms folder using RetroArch, no playlist is made. I don't know if this is due to a RetroArch issue, or a RetroPie issue in how RetroArch is set up. The CRC checks all succeeded with several other scanning and scraping methods, so I'm reasonably positive that's not an issue.
-
@mediamogul we have discussed netplay as that is part of retropie that has rarely been touched. We just haven't gotten to it yet, so it is good to get feedback on how it is supposed to work and what needs to be changed with retropie to make it work that way
-
That's good to hear. It really is mind-blowing once you sit down and consider everything that a RetroPie setup is capable of. However, the lengths it takes to keep all those functions operational shouldn't be underestimated or taken for granted. I've said it before, but it never hurts to repeat that we're all very grateful.
I feel like I'm a little bit closer to getting this running. I came across this reported issue that mentions that the current stable release of RetroArch is unable to scan content that is zipped unless a core has been downloaded that references the
.zip
extension, such as FBA or a MAME core.I believe this presents a problem for RetroPie, as it always launches the core alongside RetroArch at runtime and never has a listing of what cores are actually available. A Fix was issued 10 days ago that supposedly solves this, but I thought it might be an easier solution to launch MAME and try scanning for content with the core active. Unfortunately this didn't work, but it could be because RetroArch is still unaware of what cores are available in RetroPie, even when a core is running.
I've been updating RetroArch from source as I write this and it just has finished, so I'll see if the most recent fix changed anything on my end and report back.
-
Well, that didn't work either. I even tried unzipping all my ROMs and scanning, but still no playlist was made. If anyone thinks of something else to try, I'll be happy to guinea pig it, but for now I'm out of ideas.
-
@mediamogul could it have something to do with the save on exit something or other?
-
I always have to give up before I can find the answer to something. There has to be some eastern zen philosophy in that. Anyway, to get scanning to work, invoke the RetroArch GUI while in a game (select+x), then navigate to 'Online Updater' and select 'Update Databases'. This will download RetroArch's own ROM definitions to identify content. This is really kind of nice because once this is downloaded, I assume future scans can be done offline.
After it downloads and unzips, then you can scan the whole roms folder, or just a system folder, or even just a single file. Afterwards, in theory, this should all work. Unfortunately, there's currently only three people online to try this with and either none of them have 'Dr. Mario' (the only ROM I've scanned so far), or they currently don't have their systems configured correctly (or I still don't somehow). I plan on scanning my whole NES collection overnight and we'll see if I can match up to anyone as early as tomorrow evening.
It should also be noted that I moved back to the binary release version and was still able to scan, so updating RetroArch from source is not necessary.
-
@mediamogul how long does scanning take?
-
I watched a few very brief demo videos of people connecting and I'm starting to wonder if you do in fact have to scan. It looks like both parties just load up an identical ROM and core, one of them starts a netplay host session and then the other selects the user's nickname from the netplay room list. I believe that downloading the RetroArch database is still necessary so that it can tell if the two games are compatible.
The big problem here is that there's no documentation yet, so a good bit of this is guess work. Moving forward we should see if any users have been discussing how it all works on the RetroArch forums. It's really late here, so I'll look around a bit tomorrow. If anyone finds something before then, please share.
-
@mediamogul Thanks, it's morning here and I just spent about an hour searching the web for documentation. There is virtually no documentation as you say (RetroArch 1.4.1 and Netplay with Retropie). Also there is no YouTube videos showing how the new feature works on Retropie either.
Previous to this update I have tested Netplay but we had a lot of desync issues. We used to do it with the same emulator and same ROM with one person hosting and connecting to a IP address. We did this without any scanning and just followed this:
https://github.com/RetroPie/RetroPie-Setup/wiki/Netplay
I really want to test this again so if you want me to test anything let me know. My time zone is GMT +1 .
-
@eDrinker said in RetroArch 1.4.1 Netplay:
We did this without any scanning and just followed this:
https://github.com/RetroPie/RetroPie-Setup/wiki/NetplayI'm glad you mentioned this. I decided to take a step back and try launching a netplay game using this manual method which made me realize that in RetroPie, the netplay nickname is only set when launched with netplay options selected in the runcommand menu. However, it seems that launching this way may be currently broken. When "Launch ROM with Netplay" is selected, RetroArch exits back to Emulation Station
unrecognized option '--frames'
appearing in/dev/shm/runcommand.log
. The entire log can be seen below. I only changed my IP toxx.xx.xx.xxx
.nes lr-fceumm /home/pi/RetroPie/roms/nes/Contra (USA).zip /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg "/home/pi/RetroPie/roms/nes/Contra (USA).zip" /opt/retropie/configs/all/runcommand-onstart.sh: line 31: [: too many arguments Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg "/home/pi/RetroPie/roms/nes/Contra (USA).zip" --appendconfig /dev/shm/retroarch.cfg -C xx.xx.xx.xxx --port 55435 --frames 15 --nick ''Pseudoscience'' /opt/retropie/emulators/retroarch/bin/retroarch: unrecognized option '--frames' RetroArch: Frontend for libretro -- v1.4.1=================================================================== -- d8855ca -- Compiler: GCC (4.9.2) 32-bitBuilt: Feb 4 2017 =================================================================== Usage: /opt/retropie/emulators/retroarch/bin/retroarch [OPTIONS]... [FILE] -h, --help Show this help message. -v, --verbose Verbose logging. --log-file=FILE Log messages to FILE. --version Show version. --features Prints available features compiled into program. --menu Do not require content or libretro core to be loaded, starts directly in menu. If no arguments are passed to the program, it is equivalent to using --menu as only argument. -s, --save=PATH Path for save files (*.srm). -S, --savestate=PATH Path for the save state files (*.state). -f, --fullscreen Start the program in fullscreen regardless of config settings. -c, --config=FILE Path for config file. By default looks for config in $XDG_CONFIG_HOME/retroarch/retroarch.cfg, $HOME/.config/retroarch/retroarch.cfg, and $HOME/.retroarch.cfg. If a default config is not found, the program will attempt to create one based on the skeleton config (/etc/retroarch.cfg). --appendconfig=FILE Extra config files are loaded in, and take priority over config selected in -c (or default). Multiple configs are delimited by '|'. -L, --libretro=FILE Path to libretro implementation. Overrides any config setting. --subsystem=NAME Use a subsystem of the libretro core. Multiple content files are loaded as multiple arguments. If a content file is skipped, use a blank ("") command line argument. Content must be loaded in an order which depends on the particular subsystem used. See verbose log output to learn how a particular subsystem wants content to be loaded. -N, --nodevice=PORT Disconnects controller device connected to PORT (1 to 16). -A, --dualanalog=PORT Connect a DualAnalog controller to PORT (1 to 16). -d, --device=PORT:ID Connect a generic device into PORT of the device (1 to 16). Format is PORT:ID, where ID is a number corresponding to the particular device. -P, --bsvplay=FILE Playback a BSV movie file. -R, --bsvrecord=FILE Start recording a BSV movie file from the beginning. --eof-exit Exit upon reaching the end of the BSV movie file. -M, --sram-mode=MODE SRAM handling mode. MODE can be 'noload-nosave', 'noload-save', 'load-nosave' or 'load-save'. Note: 'noload-save' implies that save files *WILL BE OVERWRITTEN*. -H, --host Host netplay as user 1. -C, --connect=HOST Connect to netplay server as user 2. --port=PORT Port used to netplay. Default is 55435. --stateless Use "stateless" mode for netplay (requires a very fast network). --check-frames=NUMBER Check frames when using netplay. --command Sends a command over UDP to an already running program process. Available commands are listed if command is invalid. --nick=NICK Picks a username (for use with netplay). Not mandatory. -r, --record=FILE Path to record video file. Using .mkv extension is recommended. --recordconfig Path to settings used during recording. --size=WIDTHxHEIGHT Overrides output video size when recording. -U, --ups=FILE Specifies path for UPS patch that will be applied to content. --bps=FILE Specifies path for BPS patch that will be applied to content. --ips=FILE Specifies path for IPS patch that will be applied to content. --no-patch Disables all forms of content patching. -D, --detach Detach program from the running console. Not relevant for all platforms. --max-frames=NUMBER Runs for the specified number of frames, then exits.
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.