Any NetPlay Experts Around?
So Me Ans My Buddy Both Picked Up Pi3s. Got Everything working Solid. Snes Nes Psx Genesis All Play Flawless. 60 Fps No drop. We Live Probably 5 Minutes Awaybfrom Each Other. Now Using Netplay the Secons He Joins Up To Me Crazy Frame Drop And Skipping Music. Prettt Much Unplayable . Nes Seems To Be ThE Only Thing Close To Playable. Snes Genesis Are Not. We Have Messed With Frame Delay AnywhEre From 2-100 Delag With Only Worse Outcome. I Thought It Was wireless Acting Up Cause When I Ping Him It Would Spike 7ms To 160ms. So I Went Wired With A Solid 6-8ms Ping To Him. I Still Get Complete Skipping And Input Delays Or Inputs Getting Stuck. NOw I Been Researching Every Possible Setup And i See Youtube Videos Or People Playing Netplay With Minimal Lag.
Question is That Is This The Best Its Gonna Get Or Am I Missing Something . We Both Have 100+mb fiber Internet. Tried Overclocking LowerIng Resolutions different Video And Sound Drivers Different Emulators. Ports Are Forwarded. All Versions Are The Same. Can Anyone Confirm A Setup They Use Or Tell Me Anything Else I Can Tweak. I Dont Know What Any Other OptionS In The NetWork Settings Do Like Check Frames Or network Use P2 As C1. Please Any Help Is Appreciated And Excused My Stupid Caps. AppreNtly My Phone Keeps Thinking Im StaRting A New Sentence Every Word.
First, I would have both of you unplug all your modems & routers for at least 10 seconds and then plug them in.
Ports Are Forwarded
Which TCP and UDP port(s) did you forward?
I've read you open both TCP and UDP for port 55435
Also please give more information like what's described in:
ok we Both have reset the routers and yes I am the host and have tcp/udp 55435 the default port open. Without that port open it would not connect. So thats out of the way. We Both have Pi3 model b running latest retro pie version Im not 100 percent sure as I am at work I think its 4.1. We both updated all to latest updates as of last night. I am using a ps4 controller through on board bluetooth and he is using a snes usb wired pad from amazon. Only other usb device that would be in use is a usb keyboard.
Both pis images were taken from the retropie website sd card image not even 3 days ago. I have no received any error messages freezing, or disconnects. It straight just plays extremely choppy. After both of us switching to wired connections to internet the play has actually gotten worst. Emulators being used are snes9x2010 picodrive and fceumm all have been updated from binary.
I can also youtube some gameplay if you would like to show how it is playing.
What do you guys have set for your "Netplay Delay Frames"?
"Delay Frames zero is best to prevent de-syncs, works perfect on a LAN, otherwise divide the RTT (round-trip time) between server and client (ping) by 16 and that should be roughly the value you should use. These values should match on both sides."
So if you both get a ping of about 80, then divide that by 16 which will give you Netplay Delay Frames of 5
We literally live like 2 miles from each other. If I ping him from terminal average time is between 6-8 ms zero packet loss. We both change our delay frames to match always. Have tried anywhere from 0 - 100 delay frames. NES is the closest to playable with still stuttering every few seconds. Judging from our distance and ping time we should be able to set the delay fairly low without issue I would think. Pretty much as soon as he joins my game framerate goes from solid 60 to stuttering 25+ . Im just trying to narrow this down to see if its completely internet related or if something isnt set correctly. It cant possibly be too much workload for the machine itself. Is there a way I can log exactly whats happening once he connects? At this point Im assuming you have used netplay before with a pretty enjoyable experience? I have seen many talk about this being very simliar to GGPO which I am pretty familiar with after playing lots of street fighter through the years so if it is i kinda have an idea of what to expect in terms of any lag and how rollback works. Tonight Im going to start from scratch just set everything identical between us both wired internet and restart our routers and go from there.
At this point Im assuming you have used netplay before with a pretty enjoyable experience?
I've only used it on a LAN (never tired over the interent) but it should work over the internet as well. The main issue is it getting out of sync after playing awhile and having to restart.
Tonight Im going to start from scratch just set everything identical between us both wired internet and restart our routers and go from there.
It is really finicky and if any little thing is off between the 2 RPi's...well you get the picture. Hopefully this gets everything working and you might have your first bring his RPi over to your place and first get it working on a LAN.
Just as an aside I've attempted in the past just over LAN and had syncing issues just over that though I'm not sure how much development has happened since then, may have been a year.
My general consensus is that it can be pretty dodgy at times and requires lots of finicking and it's likely a lesser developed feature as it seems most people have trouble with configuring their networks and settings properly so it doesn't have the same level of testing and development as some of the other features of RetroArch.
ya I could understand over time but it instantaneously goes out of sync upon connection has to be a setting issue. Thank you for your replies.
Any particular emulator or setup you have had success with? I can understand a few hiccups but its like consistent when it happens same pauses every 1-2 seconds. Netplay over something on znes on pc cant be to far from this implementation I would think. Which I have seen that working succesfully. My friend and I are pretty determined lol. I hope its not impossible.
I guess I should also note that when I tried this it was on RetroPie 3.7 (I think) and like herb_fargus said, it was pretty dodgy.
My friend and I are pretty determined lol.
That's good, hope you guys figure it out and able to enlighten the rest of us :)
Also when you figure it out, anyone with a GitHub account can edit the official RetroPie wiki. Please put your fix up for everyone else with these same issues lol!
@h3r3tic I'm pretty sure I was using lr-snes9x2005 though I would assume all versions of snes9x should function... I was using the same exact super Mario world rom for both the host and client, though I used my PC as host and my pi as client (I think) didn't try with two pi's. But as above if you are able to add more tips to the wiki to improve it please do!
So I just tested NetPlay with my two RPi3s on my LAN, one with prebuild RetroPie 4.1 updated to 4.1.5 and the other with Raspbian 2016-11-25 with manual installed RetroPie 4.1.5. Using default port 55435, default delay frames 15, nickname RetroPie1 and RetroPie2. I first loaded up River City Ransom for NES (lr-quicknes) and it ran pretty well. The 2nd player on the Host would move a little jumpy but it looked smooth on the Client. Next I ran Clay Fighter - Tournament Edition for SNES (lr-snes9x2010) and it wasn't bad. It will freeze video for about a half second every 4-5 seconds but the sound was continual.
I still think you should get both RPi's on the same LAN and get it working there before trying the internet thing.
Sorry I didn't get a chance to mess around tonight my friend was busy. But further into this how are your graphical settings setup? Is everything on default or have you messed with anything. I'm referring to things that lessen the input lag like dispmax driver or threaded video off, GPu hard sync, swap chain. Also does dropping the delay frames being that your on the same network improve play maybe? And our pis are on 4.1.5 BTW. I'm curious is different video settings between systems can effect game play.
Sorry I didn't get a chance to mess around tonight my friend was busy.
Is everything on default or have you messed with anything. I'm referring to things that lessen the input lag like dispmax driver or threaded video off, GPu hard sync, swap chain.
My RetroArch/Libretro settings are pretty much default and I'm not using any overclocking settings.
Well I did put all CPU cores in performance mode:
echo "performance" |sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Also does dropping the delay frames being that your on the same network improve play maybe?
It might be better over a LAN connection but over the internet it might make it worse. In my test last time I just used the default settings of 15 and it wasn't bad at all.
I'm curious is different video settings between systems can effect game play.
Yes. The closer their settings match the better.
Is the performance line the same as using force_turbo?
Is the performance line the same as using force_turbo?
No, its more of disabling "CPU clock speed lowering for power saving" mode
"The CPUfreq governor 'performance' sets the CPU statically to the
highest frequency within the borders of scaling_min_freq and
I've never used force_turbo because when I first got my RPi, I read somewhere that doing that would void the warranty.
Actually changing all of these variables at the same time will void the warranty (or set the warranty bit in the Raspberry Pi)
- temp_limit > 85
- over_voltage > 0
Once the warranty bit has been marked, it can't be unmarked!
ahh well Im way past the point already. I overclock everything lol. 35 dollar gamble is fine with me. I noticed there was a little lag in snes in some games with default setting but I dont like running max clock and voltage for no reason. So maybe thats a better answer to keep the cpu from down clocking while in game. Btw Im at 1.4 now overvolt 4 and higher sdram/and gpu freq.
If it is a good substitute for that can I set that on boot? I have noticed much better performance with turbo forced but like i said I dont wanna sit idle running max clocks for no reason and yes I have a cooling fan as well.
If I remember correctly the min can't be set any higher then 600mhz and max would be 1.4 for me so where would it sit just a random spot in between there?
Edit: Nvm this is just like an android phone. Lol totally went over my head. Im a dummy. OK I know how governors work. I'll set the usage lower to like 60 percent so it'll go to max sooner but downclock when idle. Cool
So I got some time to really sit and change each setting at a time last night. We were set on SNES to go smoothly. We ironed out quite a bit but Im pretty much concluding the system cant keep up with emulation and internet while playing. Ive tried lowering just about every setting possible to make faster emulation different video drivers, sound drivers, lower resolution. If we both stand still in say tmnt 4 itll hold 60 fps no lag but once there is guys on screen and we are both putting in inputs frames drop to mid 40s. And we kept check frames between 2 and 4 just dealt with the semi skipping sound all the way to shredder with zero sync issues. So I dont believe it would make a difference on lan. If I could possible cap fps at 30 it would probably be smooth at that sacrifice though may not even be worth to play. Unless there is any possible settings or an emulator to get it to render faster and more consistent.
On a side note digging into the performance and on demand governors. echo performance doesnt do anything unless you physically edit the /etc/init.d/raspi-config through sudo nano in terminal. That file is the file loaded at boot and locks consistent unless changed or deleted. At least on these newest builds of retropie that is. I was also able to change up_threhold and rates in this files which works great for ondemand without forcing max clocks 90 percent of the time.
Do you live in the US? I know our uploads speeds are a joke here. Right now my upload speed is just under 1Mbps. I've read in most of Europe, their upload and download speeds pretty much match.
Over LAN I did notice some frame drops with lots of movement on the screen but it rarely dipped down enough to be unplayable. I think I'll try TMNT as well and see how it runs for me.
So I dont believe it would make a difference on lan.
I still think you should give it a try. Plus it's also much easier to match settings when they're side-by-side.
echo performance doesnt do anything unless you physically edit the /etc/init.d/raspi-config through sudo nano in terminal.
That's interesting! Good fine, I guess I didn't have the governor set to "performance" haha.
I live on the east coast in NJ. Verizon offers 100/100 which is what bother me and him have. Im pretty happy with it. I will eventually get around to setting it up with him side by side to see where it stands. Let me know anything you come across. I will probably try genesis tonight. Really wanna play through streets of rage.