Company of Heroes: Eastern Front

Author Topic: Eastern Front Patch 2.2.2.0  (Read 28858 times)

Offline Blackbishop

  • Administrator
  • Poster of the Soviet Union
  • *
  • Posts: 12053
  • Community Manager, Programmer and Kicker
    • View Profile
Eastern Front Patch 2.2.2.0
« on: March 12, 2014, 08:46:57 PM »

Hello comrades,

It has a while since the last announcement happened, and we have been literally offline since last year Christmas week... but now we have returned! Thanks to Cope who had fixed our FactionFix.dll, he really did an outstanding job; thanks to Relic and Smoking Gun Interactive as well because they have been supporting us since that patch released around Christmas!

If someone wonders what was the problem and what was needed to do every time Cope updates our DLL, you can read it here:

As requested, here are some details on what is actually causing crashes. This may be somewhat technical.

As you may be aware, in the past EF had problems with recrewing weapons. This is because CoH is hardcoded to only read capture squads for the 4 basic factions from team weapon entities. If you try to capture a team weapon with a Soviet squad, the game will crash because it cannot find the appropriate entry in the RGD (and subsequently runs into invalid memory sooner or later).

What I did back then was writing a custom DLL FactionFix.dll which for all purposes acts like the original game DLL (WW2Mod.dll; in fact it just forwards any calls to that DLL) but does some in memory patching, i.e. it changes some parts of the code in the original DLL. The code that is changed is the code that controls which squads are spawned when a team weapon is picked up. Whenever a non-standard faction tries to pick up such a weapon, my code jumps in and calls a certain ScaR function that returns the RGD-path of the appropriate squad. (To get the actual Lua-state of the ScaR-instance, I make use of Corsix' LuaExtCore.dll.).

Everytime a patch containing more than just balance changes is released, there is a chance that the address of the code that is to be patched has been changed. If parts of the DLL have been recompiled, it is even possible that parts of the fix have to be rewritten: Because we only have the binary files (i.e. the compiled code), my code needs to seamlessly interface with x86 assembler (which I very much like). Unfortunately that means, that if the compiler thinks it is better to put some value that was in some register EAX last time around into EBX this time, I have to rewrite parts of the code and spend sometime reverse engineering the data flow. These are all things that can be done rather quickly (even if some engineer at Relic decides that what has been an __stdcall up to v2.601 should be a __thiscall in 2.700).

The ugly part is if things do not work out immediately: This stuff is impossible to debug; without proper debug symbols even the stack traces of DMP-files are bogus and most applications totally don't like being debugged. Furthermore, debugging without any source code is tedious and not fruitful (especially when you are working with a system where you do not even have the faintest idea what most of the functions actually do!).

So what I currently have is the following:
I have updated the DLL accordingly and I have noted that besides some changes in the offsets, WW2Mod.dll has not been changed in the parts relevant to this patch. Still, the patch is not working as intended: Sometimes it works, sometimes it crashes, and sometimes it does not even allow a weapon to be recrewed (the cursor does not change into the right symbol and no action is possible). This (in a way) is the worst case scenario: My code seems fine (it is the same as for the last version and it worked for that one), but the behavior is somewhat non-deterministic. Sometimes you can capture a weapon, yet other times it won't work (using the same squad type and weapon type). If the game was crashing consistently, I could just look at where it is crashing and backtrace from there. But it does not.

I am not sure what causes this behavior. I have already witnessed similar behavior when I only patched an irrelevant part of the code (swapping two independent opcodes). This could indicate that some kind of memory protection mechanism is employed, yet I am not willing to believe this (why would it show that specific behavior? Why wouldn't it just crash all the time?). Non-determinism in behavior may also be indicative of multiple threads using the same code with non-thread-local data, but I highly doubt that because my testing setup was fairly isolated and it seems unreasonable to distribute the game logic to different threads, at least for this specific case. Another possibility is that I am missing a new piece of code that was inserted, but I was unable to find anything.

As you can clearly see, this problem is specific to mods that have additional factions.

To clarify another thing: I am not getting paid for this. Nobody here is getting paid for anything. And even if you did, you would not be entitled to anything because quite obviously, you did not pay for anything ;).

We released a small patch containing the new compiled DLL that will fix the crashes when playing with the New Steam version of Company of Heroes. Also, due to popular demand, we will release a patch that will make the mod compatible with 2.602 (Old Steam version or Retail). But remember, while this is a small assistance for those who don't want to play it in the new version, we don't offer support for it so, play it under your own risk.

We intended to release more content and balance changes, but we still need to finish the new models and to test more the balance changes, so we expect to release a new patch in the next two weeks, three at most, featuring all the content we have shown in pictures in the past weeks. But we certainly have changes that no one expects for Ostheer and Soviets.

So, the plan right now is:

1) To release the new DLL so everyone can enjoy Eastern Front. Changelog here.

2) To finish the pending models and balance changes and release the big patch.

3) Start working on the reward Command trees for Soviets and Ostheer.

Problems with the download? Look here.

Want the compatibility fix for 2.602? Look here. Mirrors: SpeedyShare MediaFire.

This Weekend we will talk about what you will see in the next patch so, stay tunned because we are back in business!


Thanks for downloading and continue to enjoy,

Archaic Entertainment Team
« Last Edit: March 13, 2014, 08:03:23 AM by Blackbishop »
Mors Indecepta

Might controls everything, and without strength you cannot protect anything. Let alone yourself...

Offline dbkblk

  • Ingenery
  • *
  • Posts: 45
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #1 on: March 12, 2014, 09:22:50 PM »
Thanks a lot :)

Offline Blackbishop

  • Administrator
  • Poster of the Soviet Union
  • *
  • Posts: 12053
  • Community Manager, Programmer and Kicker
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #2 on: March 12, 2014, 09:39:18 PM »
Added patch for 2.602 version.
Mors Indecepta

Might controls everything, and without strength you cannot protect anything. Let alone yourself...

Offline SollingDown

  • Ingenery
  • *
  • Posts: 15
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #3 on: March 12, 2014, 10:42:30 PM »
ITS 'BOUT TIME!

wothan

  • Guest
Re: Eastern Front Patch 2.2.2.0
« Reply #4 on: March 13, 2014, 12:50:09 AM »
Ah good news   :)

Offline Panzer4life

  • Axis Commander
  • Commissar
  • *
  • Posts: 291
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #5 on: March 13, 2014, 04:17:28 AM »
Yay, played the mod for the first time in about two months, and I am glad you got the crashing to stop. :)

Now, I have a tiny question; does the EF mod team have any plans for other mods, maybe for CoH2 or some other RTS?
No one can stop the German panzer divisions.

Offline Grand Duke

  • Strelky
  • **
  • Posts: 79
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #6 on: March 13, 2014, 04:37:56 AM »
HOOORAH! Great job, guys! I knew we can count on you and this mod isn't dead yet ;). Looking forward for the new updates.

Offline minhvn

  • Beta Testers
  • Strelky
  • *
  • Posts: 64
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #7 on: March 13, 2014, 05:03:01 AM »
Excuse me, but uhm what to do with the " the compatibility fix for 2.602"? Should i download and install the actual patch of Eastern Front on the retail version and then install this "fix" ?

Offline Blackbishop

  • Administrator
  • Poster of the Soviet Union
  • *
  • Posts: 12053
  • Community Manager, Programmer and Kicker
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #8 on: March 13, 2014, 06:07:14 AM »
Compatibility fix is for people who play only with the 2.602 version. If you use the new Steam version, you don't need it.
Mors Indecepta

Might controls everything, and without strength you cannot protect anything. Let alone yourself...

Offline minhvn

  • Beta Testers
  • Strelky
  • *
  • Posts: 64
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #9 on: March 13, 2014, 06:32:13 AM »
Compatibility fix is for people who play only with the 2.602 version. If you use the new Steam version, you don't need it.
I mean we first install the EF mod on retail version THEN install the fix, right?
I figured it out anyways.

Offline salil lemos

  • Ingenery
  • *
  • Posts: 1
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #10 on: March 13, 2014, 06:34:35 AM »
Sir,
     I am having Eastern front ostheer version 2.2.2.0 and launcher version 3.2.0.0. Normal coh also patched upto 2.602. also i have coh(New Steam Version). But when i play as ostheer the game crashes....pls advise... :(

Offline Blackbishop

  • Administrator
  • Poster of the Soviet Union
  • *
  • Posts: 12053
  • Community Manager, Programmer and Kicker
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #11 on: March 13, 2014, 08:01:23 AM »
@salil lemos
If you don't use the compatibility patch for 2.602 your game is not going to work on that version. The default 2.2.2.0 patch makes it work with the new steam version only.

@minhvn
Yes, the compatibility patch is the last thing you should install, just to make sure it is not overwritten by another patch.
Mors Indecepta

Might controls everything, and without strength you cannot protect anything. Let alone yourself...

Offline Foofighter

  • Ingenery
  • *
  • Posts: 45
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #12 on: March 13, 2014, 09:47:56 AM »
Thank you Blackbishop and the entire team responsible for getting EF back up and running.  I played EF for the first time in a LONG time and life now has new purpose once again.  Thanks for keeping us informed throughout the process and for a very favorable outcome as well.

Offline Miles Dixon

  • Donor
  • Guard
  • *
  • Posts: 108
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #13 on: March 13, 2014, 05:18:19 PM »
Thanks on the hands on. Just to make sure, it seems that the New Steam Version cannot being play offline now right? When I choose offline, it shows that cannot connect to server (which is quite troublesome sometimes).

Tried both versions with and without mod and it seems that the latest patch screws the offline mode.
« Last Edit: March 13, 2014, 05:20:44 PM by miles_dixon »

Offline Dann88

  • Soviet Commander
  • Major
  • *
  • Posts: 513
    • View Profile
Re: Eastern Front Patch 2.2.2.0
« Reply #14 on: March 14, 2014, 02:33:09 PM »
Nice!
I'm drunk now, I'm outranked you in philosophy.