Sync warnings (singleplayer) SOLVED

Sync warnings (singleplayer) SOLVED

Discuss your problems with the latest release of the engine here. Problems with games, maps or other utilities belong in their respective forums.

Moderator: Moderators

Post Reply
jamestr234
Posts: 4
Joined: 23 May 2007, 15:10

Sync warnings (singleplayer) SOLVED

Post 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")
Last edited by jamestr234 on 24 May 2007, 23:54, edited 1 time in total.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Spring*

Are you running it via the lobby?

I'd suggest running it via springSP or running spring.exe directly.
jamestr234
Posts: 4
Joined: 23 May 2007, 15:10

Post 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")
......
jamestr234
Posts: 4
Joined: 23 May 2007, 15:10

solved

Post 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.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Ah that is nice, finally found a guilty program!
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Post 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?
Image
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post 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 ;-))
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Post 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?
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post 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.).
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Post by smoth »

Well crap, I was hoping the info/thought was useful. :\. Oh well, it is the thought that counts right?
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post 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... :/
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post 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.
Post Reply

Return to “Help & Bugs”