Compability with TrueCombat: CQB

Added by yks about 6 years ago

People at True Combat community are discussing about ET:L and Coroner experienced compability issues with ET:L.

Look at 2nd post:
http://www.truecombatelite.com/forums/viewtopic.php?f=48&t=2084&start=45

Could these issuses be fixed?

EDIT: Some of this discussion: http://www.truecombatelite.com/forums/viewtopic.php?f=45&t=2393&start=60


Replies (38)

RE: Compability with TrueCombat: CQB - Added by Radegast about 6 years ago

I was really excited when Coroner was considering to use ET:L as the base engine for True Combat. In my opinion, both of our communities could only benefit from this partnership. However, Coroner found ET:L performance to be inferior compared to the vanilla ET, so CQB would probably be better off using ET GPL sources if Coroner is not interested in helping us improve the performance.

I wanted to give him a hand with testing, but I am using Mac and there is no OS X release of CQB yet. I would probably need to get access to CQB source code anyway to do any meaningful debugging. Moreover, I have several projects in various stages of development centred around ET:L and I am starting a new job, so I don’t have much free time left.

Coroner is a seasoned programmer, so he wouldn’t make the same rookie mistakes as I did if he were to start a new project based on ET GPL source code release. However, it would still take a LOT of time and dedication to get the sources into some kind of order. Most of this work would just be mirroring of what we have done in the past. Whatever is decided, developing open-source engine side is a step in the good direction for your project.

RE: Compability with TrueCombat: CQB - Added by Dragonji about 6 years ago

Sounds badly to me

In my opinion both sides would benefit more if concentrating on one project only. I believe most of the ET-TC engine commits will be ones merged from ET:L. IMHO investing time in optimizing ET:L instead of copying its commits would be a better solution.

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Hi, I successfully launched TC:Elite and TC:CQB from ET:Legacy 2.71RC4 on GNU/Linux right now, and I successfully join a TC:Elite and a TC:CQB server from ET:Legacy (so I answered myself to one of my questions ) and played against bots.

I was trying to play to TC:E or TC:CQB since many years, this is the first time in my life I do it.

All these screenshots were taken with ET:Legacy.

It is almost impossible to get the exact configuration that True Combat mods require. Because to play it’s needed to have the official Wolf: ET working, then check the patch for Wolf: ET, then check the mod, then check the patch for the mod, then check the patch for the patch etc. Sometime you must tweak your distro too because these binaries are so old! If you are lucky, perhaps the game can launch before crashing later, for example by loading a map.

I had never succeeded before, I tried often.

This time, I have done only one thing, I made a symlink from my previously installed ~/.etwolf/tcetest to ~/.etlegacy/tcetest and a symlink from ~/.etwolf/cqbtest to ~/.etlegacy/cqbtest. And it works out of the box. That means that my setup was good because I have not changed anything, I just switched the engine.

It is the first time in my life after many years of attempt I played a True Combat mod. And I succeeded with Et:Legacy, and ET:Legacy only.

Nice job guys.

It has never worked with any official release of Wolf:ET here, but it works on my computer with ET:Legacy without doing anything.

I tried on a widely used distro (Ubuntu Linux), and only ET:Legacy seems to be able to launch successfully TC:E and TC:CQB.

To me, ET:Legacy seems the only viable way to play to TrueCombat:Close Quarters Battle.

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Hi, I wrote this little thing this morning: https://github.com/illwieckz/pimi .

It’s a tool to download and install TCE and CQB in etlegacy without falling into hell.

It seems we can only join online servers. It seems to not work on local connection. [Edit: I must investigate more since I believe that my first screenshot above was taken on local connection].

There is two japan servers up that can be used to test.

You can do something like that:

pimi.sh cqbtest tcetest

Then, something like that:

etl +set fs_game cqbtest +connect 153.186.113.46:27962

Or:

etl +set fs_game tcetest +connect 157.7.139.242.27975

Enjoy!

RE: Compability with TrueCombat: CQB - Added by Spyhawk about 5 years ago

Nice. You might want to post this information in the TC forums

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

HI, when I try to launch a local game, I got this error:

ERROR: Bad game system trap: 202
********************
----- Server Shutdown -----
==== ShutdownGame ====
recursive error 'Bad game system trap: 201' after: Bad game system trap: 202

I see that Coroner got the same error in the past when he tried before (2013-06-30).

On the TC:E/CQB forums Radegast speaks about botlib.

Do you know if there is an easy workaround? ET:L already works to join servers but can’t host local games.

Also, I tried to launch a dedicated server and I got this:

$ etlded +set fs_game cqbtest +map cqb_sample
[...]
execing preset_high.cfg
Referenced paks: cqbtest/pak5 cqbtest/pak4 cqbtest/pak3 cqbtest/pak2 cqbtest/pak1 cqbtest/pak0 cqbtest/mp_bin etmain/pak2 etmain/pak1 etmain/pak0 etmain/pak2 etmain/pak1 etmain/pak0 etmain/mp_bin
********************
ERROR: Invalid or modified paks referenced, can not run official server.

********************
----- Server Shutdown -----

But etmain and cqbtest installs are fresh, there is no more paks neither modified paks.

RE: Compability with TrueCombat: CQB - Added by Mateos about 5 years ago

Same for 2.60b, it’s on their side...

RE: Compability with TrueCombat: CQB - Added by IR4T4 about 5 years ago

illwieckz wrote:

HI, when I try to launch a local game, I got this error:

[...]

This ERROR: Bad game system trap: 202 is thrown because we did remove the botlib and there is no workaround available.

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Ok thanks, and do you know why ET:Legacy said me "Invalid or modified paks" since they are not invalid and not modified? (the same install works with Wolf:ET).

RE: Compability with TrueCombat: CQB - Added by IR4T4 about 5 years ago

illwieckz wrote:

... "Invalid or modified paks" ...

Is this the exact error? We don’t have such a message in the code so I do assume it’s CQB related.

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Yes it is the exact error, so it is probably CQB related, you right.

I think this message is related to the file "official.dat" shipped with CQB (we have a different but similar message if we remove this file).

It was easy to verify:

$ for so in .etlegacy/cqbtest/*.so ; do strings $so | grep 'Invalid or modified paks' && echo $so; done
Invalid or modified paks referenced, can not run official server.
.etlegacy/cqbtest/qagame.mp.i386.so

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Hi this is a successfull tutorial to host CQB games with ETLegacy:

$ cd ~/.etlegacy/cqbtest/

$ <<\EOF base64 -d > qagame.mp.i386.so.bspatch
QlNESUZGNDCWAAAAAAAAADAAAAAAAAAAdaYXAAAAAABCWmg5MUFZJlNZZe2vuAAAbW/9/3/gQCAA
IAAgAACAACBBAIIAkAAGDiIABAAAgCAAcipoZGmEGjCMIxqCU0kmnijNIZBhNGg3NGc4DreraKdL
YWcYqnCFLoyxuZgGrEyQO+UBpoIabanpPUY1mQjMQS0zd/CCPxVfjb3JtU0nDy+GYLBZWZQFscBH
/F3JFOFCQZe2vuBCWmg5MUFZJlNZETPM2AAL31AAwABAAAAIIAAwzAmqaaBBbUBBeLuSKcKEgIme
ZsBCWmg5MUFZJlNZDMRIcgAAAmBwyAAABAQAQAAAAIAIIAAxDAEPUwhJBDMrvi7kinChIBmIkOQ=
EOF

$ mv qagame.mp.i386.so qagame.mp.i386.so.original

$ bspatch qagame.mp.i386.so.original qagame.mp.i386.so.patched qagame.mp.i386.so.bspatch

$ ln -s qagame.mp.i386.so.patched qagame.mp.i386.so

For your information:

$ sha512sum qagame.mp.i386.so*
65bf0c1c0715b125c2367f23a30b01262750b4f0f4800196ef491b5fa3a120bfebe7612c0c9175ba4143126a6c3e938371456c8aa077959b16fb9b0252d91a11  qagame.mp.i386.so.bspatch
87f22b5de05a147302cd1b30c88c725b7039bbe03d9bddd40b0cd4b988fef8d1ae7b2485a39d109912675693b45a86f4cc90caa9c53bdf7257d9ffcd5900fb4e  qagame.mp.i386.so.original
07aebd5e5b45a37d1b13f38ed9a7feba714f5bf6d8dfd9995376eeda9a435acc61b7227cb12bab26f2821b8898d6617f8b468e07d4f4a0497bd699c86bd05f86  qagame.mp.i386.so.patched

The binary patch overwrites checks for "Invalid or modified paks" with NOP. It also overwrite sv_pure 1 check and sv_official 1 check too. It seems the first modification only (modified paks) is needed, therefore I can publish a smaller bspatch.

You can host a game like that:

etlded +set fs_game cqbtest +map cqb_sample

Beware, you will not be able to join any server (and not be able to join your own server) if you launch ET:Legacy as a client with a modified qagame.mp.i386.so. The binary patch is only needed for ET:Legacy server and must not be used with ET:Legacy clients.

So, if you want to host game and play with the same computer, host the server with one user, and play with another user.

[Edit: this was tested with ET:Legacy 2.71rc4 only]

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Welcome to etlmodexep

Usage:

./etlmodexep.sh ~/.etlegacy/cqbtest/qagame.mp.i386.so

This version patches only the “Invalid or modified paks” check, not the sv_pure and sv_official checks that don’t need to be patched.
Instead of applying a bsdiff patch, this script rewrite the file part by part, writing some NOP when needed (you can read how it works ).

I will probably add TC:E support too since it has the same problem and this problem is probably the only one too.

Must be used for server only. It will break your CQB client.

RE: Compability with TrueCombat: CQB - Added by Spyhawk about 5 years ago

That’s great, many thanks!!

I guess I’ll create a wiki page for TCE/CQB then

Edit: I’ve added some preliminarily info on the Compatible_mods page, feel free to improve!

RE: Compability with TrueCombat: CQB - Added by RaFaL about 5 years ago

Well there are 2 issues I am using win so same issue with that 201 trap which means no server for me and with framesynch even if turn on

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

The 201 trap issue appears only if your launch a server from ET:Legacy client. If you launch a dedicated server, you will not have this error.

Unfortunately the mod seems to verify itself its own files and ET:Legacy files to check if they are correct, and badly, this check fail, this is the only thing that prevent cqbtest to be hosted by ET:Legacy servers. My binary patch skip this check to enable ET:Legacy to host cqbtest. But it is a binary patch so it is arch-dependent, and since I only have GNU/Linux on my computer, this is a GNU/Linux-centric patch.

In fact the “official” check use the official.dat file, but I don’t know how this file works, if someone knows how to generate a new official.dat for ET:Legacy, perhaps it will not be needed to patch the binary to enable all systems historically supported by cqbtest.

The server launch from ET:Legacy client itself will probably never work, due to the 201 trap issue.

For your information, I host a CQB dedicated server with ET:Legacy, you can go to gg.illwieckz.net:27962 to play, but there is no bot at all.
If you want to try a full ET:Legacy CQB game, playing to CQB with ET:Legacy client on ET:Legacy server, you can.

You can check my CQB server status here: http://gg.illwieckz.net/ . This page is written in French, but you will understand easily if the server is up.

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

Spyhawk, I created a TrueCombat Mods page to help users to install them on ET:Legacy clients and servers. I’m not very good in English so feel free to rewrite parts.

RE: Compability with TrueCombat: CQB - Added by Spyhawk about 5 years ago

Thanks, well done!

RE: Compability with TrueCombat: CQB - Added by illwieckz about 5 years ago

I’ve updated etlmodexep to patch TCE too. I have updated the TrueCombat Mods page with this information.

On this page I’ve also added some information on library dependencies (etlded and cqbtest need only libc6:i386 but tcetest needs libc6:i386 and libstdc++5:i386).

For demonstration and experimentation, I host a TC:E/ET:Legacy server at address gg.illwieckz.net:27963.

RE: Compability with TrueCombat: CQB - Added by Spyhawk about 5 years ago

illwieckz wrote:

I’ve updated etlmodexep to patch TCE too.

This is fantastic, many thanks to you!

I am not sure adding the dependencies requirement on this page is really relevant, since there are a lot of differences between distributions. I’ll probably move that info on a general "Linux" page later on.

RE: Compability with TrueCombat: CQB - Added by illwieckz almost 5 years ago

I am not sure adding the dependencies requirement on this page is really relevant, since there are a lot of differences between distributions. I’ll probably move that info on a general "Linux" page later on.

I first not wrote this information on this page, but when I attempted to install TCE, I discover that it needs a dependency that is not an ETL nor a CQB dependency.

ETL client needs

  • libc6
  • libstdc++6
  • others

ETL server needs

  • libc6 only

CQB qagame.mp.so needs

  • libc6 only

TCE qagame.mp.so

  • libc6
  • libstdc++5

libstdc++5 is not common at all today. People can be stuck on this problem for a long time.

Yes I wrote Debian-centric package names and we can write this information with other words, but I think this information is important, mostly for TCE. An user can have a fully functionnal ET:Legacy setup and get a cryptic unrelated error like "axis soldier not found" because libstdc++5 is missing.

Edit: I wrote a message about etlmodexep on TrueCombat forum .

RE: Compability with TrueCombat: CQB - Added by IR4T4 almost 5 years ago

illwieckz wrote:

The server launch from ET:Legacy client itself will probably never work, due to the 201 trap issue.

System traps 200-203 have been added back. They are just in w/o functionality.
'etmain’ mod has had the same issue with the listen server. Now it starts again.

RE: Compability with TrueCombat: CQB - Added by illwieckz almost 5 years ago

Hi, nice to read that!

Is it this commit ? so it means that the 2.71a release does not ship this fix yet?

RE: Compability with TrueCombat: CQB - Added by Jacker almost 5 years ago

illwieckz wrote:

Hi, nice to read that!

Is it this commit ? so it means that the 2.71a release does not ship this fix yet?

We will most likely ship another fix release before the end of the year.

1 2 (1-25/38)