Remote 2^nd player
#1
Hi everyone,
I'd like to substitute the local 2^nd player with a remote one.
That's I want to do is playing an hypotetical vs mode (for instance tekken's vs mode) but with the 2^nd player playing from a different LAN using a different PC.
In particular, if you know it, I'm wondering if PCSX2 has got an epsxe's netplay-like plugin.
All I found is DEV9 plugin, but it just let me play the online's contents of the game if there is at least one server still up.
Reply

Sponsored links

#2
nope, this feature doesn't exist. one guy started his own fork quite a few years ago, but finally gave up.
CPU : AMD Ryzen 7 3800X
Mobo : Asus PRIME B450-PLUS
GPU : NVIDIA GeForce RTX 3070
RAM : 16 Go
Reply
#3
Then I could try to implement it by myself, does a manual exist that could help me to read the source code?
I need to read how PCSX2 interfaced with PADS, in particular I'd like to find out where INPUTS are sent to PCSX2 because I have to intercept it
Reply
#4
(12-26-2014, 06:52 PM)DavideXX92 Wrote: Then I could try to implement it by myself, does a manual exist that could help me to read the source code?
I need to read how PCSX2 interfaced with PADS, in particular I'd like to find out where INPUTS are sent to PCSX2 because I have to intercept it

Is your remote player gonna be running their own instance of PCSX2?

If so, then it's far more than just PAD that you need to modify. Both clients need to stay perfectly synced. It's a HELL of a lot of work, and why that guy gave up.

If not then, how do you plan for the remote player to see the screen?
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#5
(12-26-2014, 08:14 PM)Blyss Sarania Wrote: Is your remote player gonna be running their own instance of PCSX2?

If so, then it's far more than just PAD that you need to modify. Both clients need to stay perfectly synced. It's a HELL of a lot of work, and why that guy gave up.

If not then, how do you plan for the remote player to see the screen?

My idea is quite simple, both players run their own instance of PCSX2.
They have to configure the netplay plugin with ip Address of the remote player and the ports (I think I'll need to use 2 ports).
After that the commands of the 2^nd player could be simply forwarded to the 1^st player's instance of PCSX2, but because of latency the 2 screens could be not synced.
To solve this problem I thought to intercept the commands between the PAD and PCSX2.
Commands of local playerA, instead of being sent directly to PCSX2, has to go to the remote playerB's PCSX2 then playerB's PCSX2 instance forwards those commands both to its own instance of the game and the playerA's instance.
The 2 clients won't be perfectly synced but with low latency the 2 players shouldn't notice that.
Moreover players will notice about latency just moving their own character in the game.
Below there's a picture showing the path that the command 's' of player A have to follow to reach the instances of the 2 players.
[Image: 14y7bdh.jpg]
Reply
#6
Well, you can give it a try.

Have a look here: https://github.com/alexsharoff/pcsx2-online

That's the previous attempt. He gave up because the games would desync almost constantly.

See, not only does the latency of the connection itself matter. What if one of the PCSX2 instances has a frame drop for say, .5 seconds? Then they are desynced by .5 seconds.

Even on identical computers, the instances will desync pretty quickly. Try running two instances of PCSX2 on different computers, with the same game, and watch how quickly they start to not match up.

But it CAN be done, it's just not simple. A possible idea would be to set a "pacing timer" that ticks every 50/60 frames, and if one of the PCSX2 is behind, delay the other one til it catches up. There is also the fact that each instance doesn't know it's part of an online play, so they may pick different random numbers when they shouldn't, different stages in a fighting game, and things like that. If you do succeed, we would surely like to see your work. This type of online play is something many people want(what with most official game servers being down, and very few games having unofficial ones.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#7
I thought about this feature playing Tekken, in case of 1v1 pvp the desynchronization could not be a problem as long as it doesn't become huge, while it's important that player's commands are processed in the same order in both PCSX2 instances.

I think my architecture could ignore low desynchronization during fights, however it will probably cause problems for racing but I will think about it if I manage to run my plugin on Tekken.

My work would be shorter if I found a manual showing how PCSX2 manages the events triggered by a key pressed, does it exist?
Reply
#8
(12-27-2014, 04:40 AM)DavideXX92 Wrote: I thought about this feature playing Tekken, in case of 1v1 pvp the desynchronization could not be a problem as long as it doesn't become huge, while it's important that player's commands are processed in the same order in both PCSX2 instances.

I think my architecture could ignore low desynchronization during fights, however it will probably cause problems for racing but I will think about it if I manage to run my plugin on Tekken.

My work would be shorter if I found a manual showing how PCSX2 manages the events triggered by a key pressed, does it exist?
Don't think such a manual exists.

You might get in touch with KrossX who still comes around from time to time and he wrote a pad plugin for PCSX2. So he might have some insight.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#9
(12-27-2014, 04:40 AM)DavideXX92 Wrote: I thought about this feature playing Tekken, in case of 1v1 pvp the desynchronization could not be a problem as long as it doesn't become huge

How much is huge? For fighting games, I think even 0.5 second is huge.
Reply
#10
0.5s or 30 frames 0.0

That's enough to eat a few EWGF's from Kazuya and have half of your HP bar taken down
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply




Users browsing this thread: 1 Guest(s)