[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