RetroArch 1.4.1 Netplay
-
@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.
-
@mediamogul I've not revisited the netplay for some time, but since the changes we probably need to adjust our stuff - will look into it.
-
When "Launch ROM with Netplay" is selected, RetroArch exits back to Emulation Station unrecognized option '--frames'
Yesterday evening I added a netplay_nickname to my
all/retroarch.cfg
and then loaded up lr-snes9x2010 with Final Fight. I started my own netplay game and updated the list and I could see my nickname on the list. I did not Launch ROM with Netplay support from the Runcommand (I actually forgot to do this). After this I downloaded the database and started it scanning my games and then went to bed. -
Thanks, that would be most appreciated. This will be really amazing when operational. By eliminating several of the steps previously needed, forum members will be able to coordinate multiplayer games much easier. Also, the fact that most all of us are using the same distribution through the RetroPie setup, having an identical core won't be much of an issue either. I expect that static IPs and having an identical ROM will be the only hurdles at that point.
I did not Launch ROM with Netplay support from the Runcommand (I actually forgot to do this).
It could be that none of the previous steps are necessary to get this new functionality to work. I'm going to continue looking into it a little bit, but finding information has been pretty difficult so far.
-
How long does it take to scan your ROMs roughly?
-
It seemed to take about 3 seconds per ROM. At that rate, the entire NES licensed library of 713 games would take close to 36 minutes.
-
@mediamogul and by scan I think you mean this screen right?
https://goo.gl/photos/qmLRajCJFGDW9J4F7
It hasn't told me it's doing anything but the fact it's frozen I am assuming it's scanning.
-
How long does it take to scan your ROMs roughly?
Depending how many ROMs your asking it to scan, It will freeze like that for a few seconds (or minutes) then will show you what it is scanning at very bottom. I had it scan all my ROMs from /home/pi/RetroPie/roms/ and I think it took all night. I started it at about 11pm before I went to bed but woke up around 3:30am and it was still scanning. When I got up this morning at about 7:00am it had already finished.
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.