Freelancer network protocols
-
New version on my site. I’ve split it into two: PacketLog now just writes the raw binary data; PacketDump converts that to text. Client packets are included; most packets are decoded (albeit with a lot of unknowns). There’s no direct hash translation, but Flunhash (and an updated CreateID) takes care of it.
-
Oh wow, nice job with all that, adoxa!
Just a slight thing I noticed which could be improved on. (I think.)
The server news’ reversal is broken.
18:17:37.106: size = 58, FLPACKET_SERVER_MISCOBJUPDATE, offset = 0x25C28
flag = 0x0010
name = abcdefghijklm
001E: 6E 00 6F 00 70 00 71 00 72 00 73 00 74 00 75 00 n.o.p.q.r.s.t.u.
002E: 76 00 77 00 78 00 79 00 7A 00 v.w.x.y.z. -
Figuring out of the network protocols etc. might give knowledge enough to program a Linux server.
Another thought, IPv4 is really close to dying, and IPv6 is also faster. Figuring out of this could also allow to make FL compatible with IPv6, even though DirectPlay 8 doesn’t like IPv6.
-
Wolfie wrote:
Figuring out of the network protocols etc. might give knowledge enough to program a Linux server.Another thought, IPv4 is really close to dying, and IPv6 is also faster. Figuring out of this could also allow to make FL compatible with IPv6, even though DirectPlay 8 doesn’t like IPv6.
Really nice idea! If you need any help, write me an PN!
-
I don’t have the programming knowledge to do that sadly,sorry for writing in it such a way that it was easy to misunderstand.
I do have my knowledge when it comes to computers,but I didn’t get learning a programming language yet. I know HTML4, a little bit javascript and basic C++.
However, That should be possible doing; so I suggest that the FL community comes together to do it.
-
Huh. You ask someone else to do all the work for you so you can write an article about it?
Isn’t that a little… counterintuitive?
-
Oh man, I disassembled the GLS/GUN protocol through WireShark and emulated the packet transactions through a Java program a few months ago. It had full client support, and I was finishing up the server listing support on it before my hard drive crashed. Wish I backed that up…
-
Omicron wrote:
Oh man, I disassembled the GLS/GUN protocol through WireShark and emulated the packet transactions through a Java program a few months ago. It had full client support, and I was finishing up the server listing support on it before my hard drive crashed. Wish I backed that up…Hiren’s Boot Cd - Victoria - Your HDD - F1 - F2 -Advanced Remap - Loop Test
May help to restore hdd
-
Hiren’s Boot Cd - Victoria - Your HDD - F1 - F2 -Advanced Remap - Loop Test
May help to restore hdd
The drive itself suffered physical platter damage and was no longer covered by warranty. Otherwise, yeah, I would have attempted recovery. I might just work on it again this upcoming break though.
-
Oh, cool. Well, give me a shout if you do. I’ll be on the IRC. (irc.quakenet.org #the-starport)
-
Hi,
just found this thread via google. Looking for “Freelancer multiplayer protocol”.I searched for that, because I’m thinking about starting to program an open-source server for Freelancer. Maybe using Java or C++ .
First thing to look at is the protocol.
So @topic, did anyone of you start anything like this?? Anyone who has knowladge about the used protocol, directplay etc.??
The aim would be to create an open-source extensible freelancer server in java or c++…
-
SP4C3 wrote:
Hi,
just found this thread via google. Looking for “Freelancer multiplayer protocol”.I searched for that, because I’m thinking about starting to program an open-source server for Freelancer. Maybe using Java or C++ .
First thing to look at is the protocol.
So @topic, did anyone of you start anything like this?? Anyone who has knowladge about the used protocol, directplay etc.??
The aim would be to create an open-source extensible freelancer server in java or c++…
This idea has been brought up several times before over the years, and it was a good one, but I don’t think anyone ever went along and got the basics of one working.
I could show you a PHP script I made to pretend to be an FL client and query the GLS for a list of servers. I have another which can be used to pretend to be a server, but there’s no way I’m going to release it yet as I’m not sure how much it could be abused. A third one is capable of querying a server for it’s information directly, just like the FL client does. Crazy runs the community’s GLS, so he might be able to tell you more about the server-side of things for the list.
Apart from that, I know very little about the protocol.
-
I wouldnt recommend starting from scratch. You could use FLHook and extend the plugin calls for sending network packets (make sure to commit it to the sdk on the svn) and suppress the calls to HkIServerImpl.
That way, you can implement your own logic while still using the native Freelancer network protocol (which isnt too bad). Replacing the whole network layer as well would be a massive undertaking which you dont just do within a year in your free time. Replacing the actual logic and reversing more network stuff is already a huge task and I also dont think you can do that in a foreseeable timeframe. But that would be the most straight forward approach IMO.