New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Network Gamepad / Streaming Netplay (todo / guide) #2486
Comments
Can this be used to support virtual gamepads running of a smartphone? |
Yes but i haven't programmed a client yet On Fri, Dec 18, 2015, 5:59 AM Dudu Akiva notifications@github.com wrote:
|
Thanks, awesome. looking forward to this. |
Very awesome. We just need that client (inside retroach) + analog support. I need to play Super Smash Bros 64 with a friend. :)) |
For the time being, you can try to use Packet Sender Working well ! |
lol that's pretty cool, I'll try to start coding a gamepad core this weekend |
Nice ! Thank you ! |
Any news? Is there a way to control now a game with Analogsticks via packages? |
@TheCherry Development has started but it is still a WIP. |
Following the previous #3246 Yes, I use the built-in ffmpeg recording. I use a rtmp server(works over net), but works in rtp,udp,... |
Yeah I used nginx once, but do you thing there is a way to do it without a server? I also tried rtp directly but that needs two streams. Still, thanks for the info I'll play with it. |
It is not necessary a server, I use server to works over network, it works too in udp. |
@dan83sama I tried your cfg and nginx it works lags is really bad, but on your video it looks perfectly smooth, any pointers? |
@fr500 Add me to steam for chat better. |
Considering this has been implemented for a while now, is Android not supported as a server? It's missing all the network gamepad options under Settings > Network, while they exist on desktop. |
Hey guys @fr500 @dan83sama , did you get anywhere with the video stream thing? Do you think it would work for netplay? |
Hey guys, sorry to come here again. I'm asking just to know, if it is worth the effort I am happy to spend some time working on it. But before doing it I'd like to know if you hit a dead end in the past |
Someone baked it out, and then something changed something that broke it. |
I baked it out because it didn't work. If you want I can bake it in again, but this time we really have to focus on making it work and also having proper documentation for it. I could not even understand how to use it last time around. I will repeat again, i will give it a fair shot and I would like to see it being an embedded core. |
rubdos on IRC asked about it and I wanted to point out what was going on. I don't have any interest on fixing this. |
Sadly I spent a few nights on this and I can't get it any lower than 10 frames. This is using a native framebuffer, intra-frame refresh, no b-frames, zerolatency preset and h264_nvenc: I figure the player is a bit part of the equation. Sadly RA's ffmpeg player doesn't even like this stream (used ffplay for testing) |
So far the implementation works but there is no client, to test, set your network gamepad port to 55400 (just commited a fix that will set that by default) under network settings, and enable the gamepads for the players you want.
Should look like this:
I open one port for each controller, so:
player1 = 55400
player2 = 55401
player3 = 55402
etc.
Then you can use any tool to generate traffic to send a character array that will be converted to the bitmask of the pressed buttons.
For instance sending "128" will be converted to 128 (with atoi) which means "press d-pad right", i guess there could be a better representation, also a better representation will be needed to send analog inputs.
To test I included a small test program that will send "128", sleep for roughly 1 frame and send 128 again, this should make a character move forward
To use it on the same host just compile it (set your port to 55400 in RetroArch to make it easier) and just run it.
gcc -o udp-test libretro-common/utils/udp-test.c
chmod +x udp-test
./udp-test
Todo:
Second part would be to hook up the built-in ffmpeg sink to be able to stream a non post processed framebuffer (and audio) to get some sort of streaming netplay ala GameStream co-op
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: