It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
AlpakaDream: Well what i did was that i changed the hex file on my pc and on my girlfriends pc.
because i thought chaning those LAA parameters was just for doing something like unlimited soldiers?!
(i have no idea what LAA parameters are) :)

and i don't understand that "8. Set your CPU affinity to core 0 and core 2. " thing.
avatar
JOHNB007: Hello.

You need to follow all the steps, don't skip over them.

The LAA parameter tutorial is here.

https://www.youtube.com/watch?v=N4NDi9ZnBUg

Setting CPU affinity is easy here is a tutorial.

https://www.youtube.com/watch?v=37flYSGOlaA

You have the internet? A quick search and here I have results.

If you have a dual core CPU, you don't need to set the affinity.

Now I would suggest starting from step 1.

Hope this helps.
now i did everything on your list, but still having desync problems :(
unfortunately, the desync problems are getting worser, we had a save game 1 minute before desync, and tried to load it, but the desync happens always at the same point again and again.
(of course we started new games after doing all things on the list.)
We (my girlfriend and me) tried something different now:
We installed settlers 4 again and didn't make any changes.
then i wrote us a tool that makes a safe every minute of the game, and also creates a backup.
the game is getting saved every minute automatically now, and we sometimes get desync (but not that often) and when it happens, we just can reload the last save, which is max. 1 minute old.
this way we could play 2,5 hours yesterday, with only 1 desync.

what my girlfriend also noticed:
when we play a lot of games, then the desyncs are getting more often.
after a new installation the game works better again.

i don't know if this helpes someone else, but maybe its worth a try!
Hello, update here.

May I ask if you could look at the S4_Main.exe and see if was modified the same time as the GFXEngine.dll? Its located in the 'Exe' folder.

I have noticed the S4_Main.exe is modified and I don't know if I have actually edited the exe?

I think the resolution mod edits these files but I'm not 100% sure I am going to back engineer the exe and see if I have edited any parameters.
avatar
JOHNB007: Hello, update here.

May I ask if you could look at the S4_Main.exe and see if was modified the same time as the GFXEngine.dll? Its located in the 'Exe' folder.

I have noticed the S4_Main.exe is modified and I don't know if I have actually edited the exe?

I think the resolution mod edits these files but I'm not 100% sure I am going to back engineer the exe and see if I have edited any parameters.
Hey,
on my Settlers 4 the edit dates are:
S4.exe 25/10/2000 00:28am
S4_Main.exe 08/08/2012 4:25pm

I'm not sure if we've got the same Settlers version from GOG though.
Srry I'm just not following this. :(
Hi xmorphyx,

I was wondering, how did you "fool around" in the code? Did you decompile the game somehow? Or were you just reading trough machine instructions?

I'm interested to know how you came to this fix and try some stuff out myself if possible :).

(I am a developer, just have no clue how to start modifying this game...)

Hope to hear from you!
Hi there,

I just want to let you know that this mod works fine with our settler IV Gold Edition.

A friend and me played a 2 hours multiplayer game against 2 ai´s on a standard map without any desync.

Before the modification we had the well known desync problem.

What exactly does this easy-two-hex-number-mod and how did you know where to look at?.

Thanks a lot :-)


Greats Hucky
Hello,
The shown patch does not and can not work.

It forces a conditional jump to always jump. The code in question controls how or rather if the AI is supposed to build a tower. The condition leads to either a comparatively expensive or inexpensive branch of code.
The theory at hand here is that high AI performance cost contributes to desyncs.
However the patch forces the game to constantly go the expensive code route.
Now if you go ahead and alter the behavior to always take the inexpensive code route (as I assume Morphy's removed patch did) the AI simply won't build towers anymore.
The issue is that no one here quantitatively measures how effective a supposed fix is. Which leads to all data being unusable. People play a game, get lucky and say that it works. It doesn't and it can't.

Besides, an update of the history edition of this game fixes the issue.
Hi,

As InstantMuffin2 said correctly this conditional jump hacks will lead to nowhere. :(
I was foolish enough to believe that such a hack could help somehow in this case, despite of some false positive feedback. I removed the mod info in the first post.

Thanks & TC,
morphy
Post edited January 09, 2019 by xmorphyx
Hey,
Unfortunately, I have worse news. The history edition, even though it claims to have fixed the desync issue, doesn't do ****.
I tried to contact Ubisoft two different ways to get at least part of the fatal exception errors fixed. All I have gotten was no reply, as well as a copy-pasted reply (after three weeks of waiting).
Ubisoft does not want to fix the games of our childhood. They're just in it for the cash.
Settlers IV was the first game I have bought for myself. I distinctly remember visiting the store almost 18 years ago and picking the game. It was the retail version with no addons and cost me 70 mark.
Ubisoft took over BlueByte and forced them to rush a release. THEY are at fault and caused all the bugs we encounter in SIV. Now they are trying to rip us off once again with a supposdely fixed re-release that is not fixed at all and has the lovely uplay drm.
No thank you Ubisoft.
The sad thing is they got the tools to have a look why the economy AI starts to behave differently (especially the calculation timing of the economy AI code compaired between all nodes) on the PCs in a multiplayer game.
Due to the lower price they offer the history version, I'm really afraid they stopped doing propper debugging.
But that is what they need to do to get this fixed.
The tricky thing is that the bug sometimes behaves on all nodes in the same manner. So some games suddenly seem to run wthout problems as this can avoid the desyncs. This often leads to the wrong conclusion that the bug might have been fixed.

TC,
morphy
If you follow along the xrefs of the desync message string you notice that there are different routines with different out of sync messages. There seem to be random as well as scheduled sync checks. I don't recall which messages show up in the chat, but I am wondering why there are random as well as scheduled checks at all. Also if the game itself has a way of compensating synchronization issues since they always have to appear to a certain extent.
Maybe it would be enough to do scheduled checks more often.
I am also wondering what they did in order to try to fix the desync issue in the history release of the game. And in general any kind of changes they have made. It would be interesting to look at different versions of the history release and (cross-)compare.
That said if I had the source I would sure as hell try to fix these issues myself, along with a lot of minor (visual) fixes. I'd do it for free. But you know, one can only dream...
Hello again,
I was fortunate enough to get a reply from one of Ubisoft's community representatives, not a copy-paste one!
He'll try to contact the devs, maybe we can establish a connection there. I don't know, maybe there is still hope, but I'm very skeptical about this one.
Hi,

Don't laugh. S4 has a quite good syncronisation system. I.e. the game has no problems with unconnecting and reconnecting the LAN. I never was able to trigger an desync with that and I was very bad to the game. :)
But when it comes to maintain a syncron economy AI in background (which isn't needed for human players only),
that seems to be another thing.
Last year I monitored the timing of some conditional jumps and routines in the economyai.dll on two PCs while playing an Netgame with AI inwolved.
To maintain a syncron game, every node must do the same calculation and come to the same conclusion, for planning the economy for the AI players. (Where to build towers, when building residences,when to crash buildings... etc. )
I could see that suddenly the two PCs were slowly drifting of with the occurence of these jumps in the economyai.dll.
This gets worse with time but the game seems to compensate this for a while.

I guess, the code to show the desync message will be reached at that game tick, where every AI of the inwolved nodes should order the same pre-planned/calculated building(s) on the same coordinates, but one AI of these nodes takes too long to place this order. It will be done... same building, same coordinates, but too late for everyone else.

(That is the node where i saw sudden occurece of additional jumps and calls of subroutines to come to the same conclusion like all other economy AIs. How does that make sense?)

As soon you see the desync message, the game also gives up to keep the AI for settlers/warrior movements in sync.
(This is not done in the economy AI). That is were the discussion comes up, who is loosin or winning the game. :)

I think, if the syncronisation of the economy AI cannot be properly done due to its mechanic, another way
would be that only one of the nodes/PC runs the economy AI for all nodes which are inwolved in the netgame.
The PCs today are more than powerfull enough to do this job. If that PC disconnects for some reason, another PC takes over the economy AI job.

tc,
morphy
I did notice during SP games when loading previous savegames to retry and block upcoming ai attacks that even with windows the size of 2 minutes tops the AI can make drastic changes, i.e. attacking elsewhere or a different bot attacking me altogether.
It makes me wonder how information sensitive the algorithms are, but also, if they involve randomness.
Imagine randomness in an AI that has to stay in sync between multiple clients.
Nonetheless, this is only speculation and to be honest a lot of things appear to be screwed up with the game on many many occasions. What is the purpose of a desync detection if it cannot detect where the differences are? It would be wise to trigger snapshots of the gamestates across the clients (as in automatically force them to save) as soon as a desync is detected and compare.

Also, I get the joke, but upkeeping of a connection and keeping information in sync across clients are challenges that vastly differ (in complexity). It still makes me wonder if the game does actually have its way of restoring gamestate synchronicity between clients since it has to do that when connection persistence fails. Either it does not do that on the desyncs we encounter or the desyncs occur either way which would point to a portability issue.
Post edited January 11, 2019 by InstantMuffin2