PDA

View Full Version : CoD UO: Allow 1.41 and 1.51



fabio
26th October 2016, 14:48
Hey,

I'd like to allow both Clientversions (1.41 and 1.51) on my 1.51 server. Is this even possible?
I was trying to take out the version check, but no success yet.
Maybe someone has a tip where I have to change the game..

Has anyone done this with another CoD? Will I get problems with pure-checks?


Thanks :)

php
26th October 2016, 14:50
Don't bother, most likely you have to modify a whole lot more that's way over your head and too much trouble.
I did it with 1.1 and 1.5 but as I said you have to patch a whole lot of stuff to get it working without the client disconnecting (crash) etc.

Attached is a screenshot of 1.5 and 1.1 CoD1 clients connecting to a 1.1 server if i recall. (could be 1.5, don't remember)
https://xtnded.org/screenshots/hydra.png

fabio
26th October 2016, 14:53
Uh I see..
Did the protocol change? I thought about a UDP proxy that could modify some packets, so I don't have to modify the game.. But yea, maybe I'm totally wrong

php
26th October 2016, 14:58
Uh I see..
Did the protocol change? I thought about a UDP proxy that could modify some packets, so I don't have to modify the game.. But yea, maybe I'm totally wrong

the MSG related stuff with entityState_t and so on are different (which means that the offset in memory for example position and other new/old struct fields could be in a different spot and could disconnect for some other incorrect information received from the client/server) for 1.1 and 1.5 (probably a whole lot more has changed than just this), I don't know for 1.41 and 1.51 UO but most likely there's some changes that will be quite annoying to patch.

IzNoGoD
26th October 2016, 16:45
For cod4, the protocol has NOT changed since 1.0 to 1.7 if i recall correctly. So for cod4 it could be possible.

fabio
27th October 2016, 13:32
Okay, let's say the protocol didn't change.. what else could be a problem?
How can I take out the version check? I guess the client doesn't connect to a wrong version, how can I change this server sided?

IzNoGoD
27th October 2016, 14:00
change protocol version, change shortversion, change iwd files to older/newer version.

fabio
9th January 2017, 17:48
I was able to connect to 1.51 server with 1.41 client, but I get the following error:

CL_ParsePacketEntities: end of message


Not sure how I could fix this.. Probably a change in the protocol..

Do you have any idea?

Thanks a lot!

kung foo man
9th January 2017, 22:39
Start by re-implementing this function: https://github.com/id-Software/Quake-III-Arena/blob/master/code/client/cl_parse.c#L88

Or think a bit bigger... try to understand the whole network protocol. Once you understand it, you can easily connect everything to everything. (CoD4 to CoD1 etc.). I always wanted to have something like this, but I just lack the time.

fabio
10th January 2017, 07:22
Well, for now I just modified the packets using a proxy.
This works well with protocol version, statusResponse or infoResponse.

Even the Huff-Encoded packets (e.g. "connect") work well.

I wasn't able to decode the "other" gamepackets yet.. Is there any other encryption being used?

I tried it using a proxy because it seemed a lot easier to me :p