http://bugs.winehq.org/show_bug.cgi?id=24009
progger1986 anubis1@linux-ecke.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |anubis1@linux-ecke.de
--- Comment #12 from progger1986 anubis1@linux-ecke.de 2011-02-25 08:17:47 CST --- (In reply to comment #0)
Created an attachment (id=30158)
--> (http://bugs.winehq.org/attachment.cgi?id=30158) [details]
Screenshot
Game start normal with "Wine Windows version" is win98.
But the camera is too close to the character, than his back can not see anything.
If I remove these lines in the code of Wine in the file "dlls/wined3d/device.c", in "process_vertices_strided" function, Viewport transformation part... :
3946,3948d3945 < x *= vp.Width / 2; < y *= vp.Height / 2; < z *= vp.MaxZ - vp.MinZ; 3950,3952d3946 < x += vp.Width / 2 + vp.X; < y += vp.Height / 2 + vp.Y; < z += vp.MinZ;
... and recompile(reinstall) wine, that CAMERA is WORKING PROPERLY, and the GAME becomes PLAYABLE!!
May be x,y,z values corrupted, or viewport scaling transformation makes by game itself.
May be wine did not recognize any special flag for the viewport transformation (maybe except the "scaling" is more modes of viewport transformation)
=============== You can download demo versions of game on one of these links: http://www.tombraiderchronicles.com/cgi-bin/dl03/dl.pl?dm_tlrdemo http://www.tombraiderchronicles.com/cgi-bin/dl03/dl.pl?dm_tlrtimesdemo or http://tombraider.ru/files/demos/pc/times_level.rar http://tombraider.ru/files/demos/pc/tr4_demo.rar =============== PS: Game used DirectX 6.1
I build a small switch, that can "disable" theese 6 code-lines.
char* scale = getenv("noscale"); if (!scale || (scale[0] != '1')) { x *= vp.Width / 2; y *= vp.Height / 2; z *= vp.MaxZ - vp.MinZ;
x += vp.Width / 2 + vp.X; y += vp.Height / 2 + vp.Y; z += vp.MinZ; }
If you use that, you can play "Tomb Raider 4" without disturbing other games: export noscale=1 wine tomp4.exe
I know that this is a quick&dirty workaround, but it works :)