[Bug 27594] Indiana Jones and the Emperor's Tomb: error message "invalid floating point camera matrix" (SSE2 control word handling in msvcrt __control87)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun May 6 15:43:43 CDT 2012
http://bugs.winehq.org/show_bug.cgi?id=27594
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
CC| |focht at gmx.net
Summary|Indiana Jones and the |Indiana Jones and the
|emperor's tomb opens a |Emperor's Tomb: error
|message error box |message "invalid floating
| |point camera matrix" (SSE2
| |control word handling in
| |msvcrt __control87)
Ever Confirmed|0 |1
--- Comment #12 from Anastasius Focht <focht at gmx.net> 2012-05-06 15:43:43 CDT ---
Hello,
confirming.
--- snip ---
0024:Call msvcrt._control87(00000100,00000300) ret=004012a3
0024:trace:msvcrt:__control87_2 x86 flags=000a011f newval=00000100
mask=00000300
0024:trace:msvcrt:__control87_2 sse2 flags=0008011f newval=00000100
mask=00000300
0024:Ret msvcrt._control87() retval=000a011f ret=004012a3
0024:Call msvcrt._control87(00000000,00000000) ret=004012a9
0024:trace:msvcrt:__control87_2 x86 flags=000a011f newval=00000000
mask=00000000
0024:trace:msvcrt:__control87_2 sse2 flags=0008011f newval=00000000
mask=00000000
0024:Ret msvcrt._control87() retval=000a011f ret=004012a9
...
0024:Call msvcrt._vsnprintf(0032f120,000003e8,1001cef0 "An invalid floating
point camera matrix was passed to the D3D driver!",0032f52c) ret=10017b37
0024:trace:msvcrt:pf_printf_a Format is: "An invalid floating point camera
matrix was passed to the D3D driver!"
0024:Ret msvcrt._vsnprintf() retval=00000045 ret=10017b37
...
0024:Call user32.MessageBoxA(00020028,0561e7bc "(Render) An invalid floating
point camera matrix was passed to the D3D driver!",004aa434 "ABORT",00000110)
ret=00401ade
--- snip ---
It is as Henri said in comment #5 -> the addition of SSE2 control word handling
(MXCSR manipulation) breaks the thing here.
If you disable it the app works (msvcrt_init_math -> sse2_supported = 0).
Of course native 'msvcrt' override works too.
Source:
http://source.winehq.org/git/wine.git/blob/7bfe648666355585b74e1f31c286ddd1d86aa894:/dlls/msvcrt/math.c#l1022
$ du -sh indyetdemo_JeuxVideo.com_5589.exe
225M indyetdemo_JeuxVideo.com_5589.exe
$ sha1sum indyetdemo_JeuxVideo.com_5589.exe
wd9c8b61616e29ef8ab75d1c72c55d30cf923471e indyetdemo_JeuxVideo.com_5589.exe
$ wine --version
wine-1.5.3-164-gdec3d50
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list