Page 1 of 1
Sync warnings (singleplayer) SOLVED
Posted: 23 May 2007, 17:44
by jamestr234
Hi all, I've been having fun with TASpring v73b1, thanks to the developers for this excellent game!
I am getting constant sync warnings with v74b3 in singleplayer.
the warnings begin as soon as spring.exe starts and are continuous.
also, v74b2 hangs with assertion failure (pregame.cpp - expression: good-fpu-control-registers)
my system is
-xp w/sp1
-e6400 cpu
-2gb ram
-nvidia 7900gs w/latest drivers
-realtek audio software
-pci expansion card (siig 4-port IDE)
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("before CGameServer creation")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("after CGameServer creation")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CPreGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CPreGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CPreGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CPreGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CPreGame::Update")
Posted: 23 May 2007, 18:26
by AF
Spring*
Are you running it via the lobby?
I'd suggest running it via springSP or running spring.exe directly.
Posted: 24 May 2007, 14:17
by jamestr234
I get constant sync warnings when i startup using springsp.exe or spring.exe.
below is the log file from springsp
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("before CGameServer creation")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("after CGameServer creation")
Map: Mars.smf
Mod: "XTA v8.1" from XTAPE.sd7
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CPreGame::Update")
Number of damage types: 5
Spring 0.74b3
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Player Player joined as 0
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::SimFrame")
AI\Bot-libs\AAI.dll has C++ interface
GlobalAI1: New BuildTable has been created
GlobalAI1: land map detected
GlobalAI1: New map-learning file created
GlobalAI1: AAI loaded
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::SimFrame")
Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::SimFrame")
......
solved
Posted: 24 May 2007, 23:54
by jamestr234
no sync errors occur if i do NOT run 'macro express' before starting spring. yeahhhhhhh!
(or terminate it before running spring, it loads at boot)
if i terminate it after starting spring the errors continue in spring.
Posted: 25 May 2007, 17:38
by Tobi
Ah that is nice, finally found a guilty program!
Posted: 26 May 2007, 23:33
by smoth
actually I get something similar when running google talk while using spring single player...
why would I get an error message when a message is sent to me? is this possibly linkable/the cause of a desync issue?

Posted: 27 May 2007, 11:31
by Tobi
I really have no clue why apps can (apparently) influence each other's CPU state... All resources I read about it (MSDN etc.) say that the FPU control word is stored per thread in Windows, but it seems Windows allows quite some exceptions to that rule
And yeah, if you get this warning (esp. continuously) there's an increased chance you'll desync (hence it's a sync warning

)
Posted: 27 May 2007, 15:22
by smoth
that is what I am wondering about tobi, ever since spring started to be ported to linux we saw desync. I used to play 4-5 hour games with no desync, I have been wondering if the cause was some cross platform code added into spring.. this is just unfounded speculation feel free to ignore it.
however, the issue still remains that if the program can now receive a sort of interference from other applications, can this be corrected?
Posted: 27 May 2007, 15:31
by Tobi
Not really. In the first place, according to docs from MS etc. this interference is theoretically impossible. In the second place, Spring already tries hard to get the control word correct before executing synced code: each time you see the warning it resets it to the correct value, and this check is just before it enters the CGame::SimFrame function, which is the toplevel function of all synced code (apart from the before game loading etc.).
Posted: 27 May 2007, 16:06
by smoth
Well crap, I was hoping the info/thought was useful. :\. Oh well, it is the thought that counts right?
Posted: 27 May 2007, 16:27
by Kloot
smoth wrote:actually I get something similar when running google talk while using spring single player...
why would I get an error message when a message is sent to me? is this possibly linkable/the cause of a desync issue?
Could be that getting a message involves some DLL (loaded by GoogleTalk) function call that messes with the CW and doesn't put it back, but such a change just shouldn't be visible to Spring in the first place... :/
Posted: 27 May 2007, 16:58
by Tobi
That should only be possible if it hooks into the Spring process some way (not sure what's possible with intercepting window messages (note the macro recording program that caused this FPUCW change too), or if the Windows scheduler / task switcher is seriously borked.