[Bug 24009] Tomb Raider 4: Wrong camera position (Unnecessary Viewport Scaling transformation)
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Feb 25 08:17:48 CST 2011
http://bugs.winehq.org/show_bug.cgi?id=24009
progger1986 <anubis1 at linux-ecke.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |anubis1 at linux-ecke.de
--- Comment #12 from progger1986 <anubis1 at 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 :)
--
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