So after one night of the script working, future tests kept turning up nil results.
Everything we tried kept showing the broadcast messages for finding a server, as well as the server response; but, the client would not connect.
Reviewing traffic over-and-over again turned up nothing new at the IP layer. Turns out, the IP address of the server is embedded in the message sent by the server. I discovered this by noticing ARP requests for my IP address on the other network. A quick fix of changing the repeater address of the "fake" server to that of a PS3-server and voila, working again.
I'll dig into the protocol to find that in the fields and release a new version of the scripts that will fix the IP on the fly. Until then, at least there is a work around.
Monday, May 9, 2011
Sunday, May 1, 2011
Red Dead while PSN is Dead, Part 2
Continuing my testing, I found that upon receiving responses from the server, the client then switched to a different port for both sending and receiving, 3658. A quick fix in the script to handle this, and voila LAN game activated.
So now I present to you 2 Python script files that will bridge 2 LANs and allow for 1v1 multiplayer in Red Dead Redemption on the PS3. Currently the scripts have been tested with one Linux and one Windows machine. Turns out there are some gotcha's between the two platforms when it comes to UDP broadcast traffic. In Windows, broadcast UDP packets will be received by a socket listening on a specific IP, whereas Linux required listening on ANY. This results in a weird scenario where the Linux box could not send from the proper socket. To host the source, I created a Google Code project, GPL-v2 licensed.
This only supports one other user, there is no voice chat (as that is carried over the PSN), and has only been rudimentary tested. Hope this helps someone while the PSN is down.
So now I present to you 2 Python script files that will bridge 2 LANs and allow for 1v1 multiplayer in Red Dead Redemption on the PS3. Currently the scripts have been tested with one Linux and one Windows machine. Turns out there are some gotcha's between the two platforms when it comes to UDP broadcast traffic. In Windows, broadcast UDP packets will be received by a socket listening on a specific IP, whereas Linux required listening on ANY. This results in a weird scenario where the Linux box could not send from the proper socket. To host the source, I created a Google Code project, GPL-v2 licensed.
This only supports one other user, there is no voice chat (as that is carried over the PSN), and has only been rudimentary tested. Hope this helps someone while the PSN is down.
Subscribe to:
Posts (Atom)