When trying to set up netplay with the 20131013 64-bit release, with the bSNES Performance core playing the US ROM of Secret of Mana, between a player in South America (me) and a player in North America (friend), I have been getting consistently and unplayably poor performance, in the vicinity of 4-9 fps. Why is the performance so poor? zSNES is long obsolete and RetroArch delivering terible performance is heartbreaking. Neither of us is using Hamachi or any other VPN applications, by the way; it’s al direct connection.
Have you tried a less demanding core like SNES9x? I mean, bSNES syncing locally is taxing enough by itself - let alone over a network…
Yes…that’s not the first time I get this exact problem.
I had tried before with the 20130927 64-bit release and I got like 10 fps even when using one of the SNES9X cores.
IIRC, bsnes will lose sync at some point anyway (see ilari’s patches for lsnes-rr), so it’s probably not a good candidate for netplay to begin with. This is compounded by the fact that each lag frame you include represents an additional frame of action that has to be emulated within the space of ~16 ms (hence, the suggestion to use a lighter core).
How many lag frames are you entering vs what is your ping to your friend? Playing across continents is likely to require a hefty number of lag frames, which will result in some noticeable rollbacks. When maister and I were testing Norway to NA, we needed 6 lag frames!
Duked is apparently working on a less finicky netplay implementation, but I don’t know how that’s coming along and haven’t heard what strategy he is using. In the meantime, I would recommend looking into Mednafen’s netplay, and you can still use ZSNES, right?
My shortcut to host in RA looks like this: C:\RetroArch-20131013-Win64-megapack\retroarch.exe -H --menu And it means that I’m not specifiying a number of lag frames at all! According to the help option when running it, it is the -F parameter that specifies the amount of lag frames. But who uses it, the host only, or both players?
Oh yeah, that’s likely the problem, then
It’s been awhile since I’ve used netplay, but I believe the host and client both need to enter them, and they’ll be the same for both, since you should use ping divided by 16 for the number of frames.
Yes, don’t use bSNES for netplay (SNES9x is good). bSNES doesn’t have perfectly working savestate sync between clients apparently, and it’s slower than what you need.
Also, both clients and host use lag frames (they don’t have to be configured the same however). The protocol says nothing about rollback at all actually. If you don’t have lag frames, everything will slow down to a complete crawl.
Perhaps ‘rollback’ isn’t the correct phrasing, but I was referring to the times when things jump around from the catchup.
Will netplay be supported on ios sometime?
Perhaps eventually, but not in its current incarnation. It would likely have to be a more conventional, “laggy” implementation. One guy may be working on such a thing, but I don’t personally know how that’s going.