http://bugs.winehq.org/show_bug.cgi?id=22780
Summary: Trackmania United Forever crashes with complex shaders enabled Product: Wine Version: 1.1.44 Platform: x86 URL: http://www.trackmania.com/ OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: dendron2000@mail.ru
Created an attachment (id=28107) --> (http://bugs.winehq.org/attachment.cgi?id=28107) Log
TMU crashes with recent Wine versions (at least 1.1.42-44)
When I select SM 2.0 or any enhanced graphical options (such as 'Blur') the game crashes in a few seconds.
http://bugs.winehq.org/show_bug.cgi?id=22780
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Alias|Trackmania |
http://bugs.winehq.org/show_bug.cgi?id=22780
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #1 from joaopa jeremielapuree@yahoo.fr 2010-05-20 00:43:29 --- You should try the latest git. there is a big work done for assembler shaders in these latest days.
If it still does work, as a workaround, if you have a windows license, you can put a native d3dx9_36.dll in the folder ~/.wine/drive_c/windows/system32
http://bugs.winehq.org/show_bug.cgi?id=22780
Roderick Colenbrander thunderbird2k@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |matteo.mystral@gmail.com
--- Comment #2 from Roderick Colenbrander thunderbird2k@gmail.com 2010-05-20 05:42:01 --- For sure you should be able to run this game using native d3dx9_*.dll but the game might not be far of working using our own version. To me it looks like the game uses precompiled shaders but because they can't be loaded it tries to compile the HLSL which we don't support. I think there is a chance the game works if the asm loaded. I'm attaching Matteo to this bug since he is working on the d3dx9 assembler.
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #3 from Denis Rut'kov dendron2000@mail.ru 2010-05-20 08:02:27 --- Tested the latest git with same results.I used native d3dx9_*.dlls before, but with them enhanced graphical features are not availiable, so I'd like to see working wine shader implementation.
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #4 from Denis Rut'kov dendron2000@mail.ru 2010-05-20 08:03:32 --- Created an attachment (id=28122) --> (http://bugs.winehq.org/attachment.cgi?id=28122) Git(20.05.10) log
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #5 from Denis Rut'kov dendron2000@mail.ru 2010-05-20 08:15:19 --- Created an attachment (id=28123) --> (http://bugs.winehq.org/attachment.cgi?id=28123) Git(20.05.10) log, lowest graphics
Update: TMU crashes even with the lowest graphical options selected. Only this time it actually starts, shows the profile selection screen and crahes right after selecting a profile.
http://bugs.winehq.org/show_bug.cgi?id=22780
Denis Rut'kov dendron2000@mail.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #28123|application/octet-stream |text/plain mime type| |
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #6 from Matteo Bruni matteo.mystral@gmail.com 2010-05-20 14:59:56 --- The assembler shaders in Trackmania (at least up to the crash) use shader version 1.1, which is not yet supported by builtin d3dx9. Anyway I get the same behavior even with some more patches to let the assember work. The game also calls the shader compiler (which is unimplemented now, and will continue to be unimplemented for quite some time probably) but seems to go on, somewhat managing the failure. The game then exits without crashing, maybe with a failed assertion when calling D3DXGetImageInfoFromFileInMemory "Not a JPEG file: starts with 0x00 0x10". We could investigate further on this (maybe after the code freeze :)).
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #7 from Vincent Povirk madewokherd@gmail.com 2010-05-26 13:38:47 --- That's likely a libjpeg error. We really should catch those somehow.
http://bugs.winehq.org/show_bug.cgi?id=22780
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wine-bugs@winehq.org Component|directx-d3d |directx-d3dx9
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #8 from Matteo Bruni matteo.mystral@gmail.com 2010-07-23 10:59:15 --- Created an attachment (id=29788) --> (http://bugs.winehq.org/attachment.cgi?id=29788) Patch for the windowscodecs failure
OK, in current git the assembler shaders are processed correctly, and the game indeed aborts because of a libjpeg error. Specifically it's a windowscodecs bug triggered by D3DXGetImageInfoFromFileInMemory. Let me try to explain...
D3DXGetImageInfoFromFileInMemory calls IWICImagingFactory_CreateDecoderFromStream, which then enumerates and checks the decoders until it finds a matching one. Once found a suitable decoder, it calls IWICBitmapDecoder_Initialize (then calling JpegDecoder_Initialize) which fails because the stream was never reset after the many MatchesPattern (MatchesPattern, for each pattern, seeks the stream and reads the requested bytes, without resetting the stream pointer afterwards).
The attached patch fixes the issue for me (is that the correct approach?), the game is now playable with low shaders settings. The game uses D3DXLoadSurfaceFromFileInMemory and D3DXCompileShader which are currently stubbed, but somewhat still manages to work.
BTW, this leaves the general question of catching libjpeg failures open.
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #9 from Vincent Povirk madewokherd@gmail.com 2010-07-23 11:15:57 --- Yes, the decoder should seek to the beginning of the stream. But there's no reason to use source_mgr_init_source for this. Just seek to the start in Initialize.
Possibly CreateDecoderFromStream and/or MatchesPattern needs to be modified, but that requires a test.
http://bugs.winehq.org/show_bug.cgi?id=22780
--- Comment #10 from Matteo Bruni matteo.mystral@gmail.com 2010-07-30 14:39:19 --- A modified version of the patch was committed as 23e173109dd4ee2fa6c7a5a600233825289bf57a, that should fix the crash.
http://bugs.winehq.org/show_bug.cgi?id=22780
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #11 from Austin English austinenglish@gmail.com 2012-03-19 13:59:42 CDT --- (In reply to comment #10)
A modified version of the patch was committed as 23e173109dd4ee2fa6c7a5a600233825289bf57a, that should fix the crash.
Should be fixed, no response in 6 months.
http://bugs.winehq.org/show_bug.cgi?id=22780
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org 2012-03-30 13:35:42 CDT --- Closing bugs fixed in 1.5.1.
https://bugs.winehq.org/show_bug.cgi?id=22780
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Fixed by SHA1| |23e173109dd4ee2fa6c7a5a6002 | |33825289bf57a CC| |focht@gmx.net
https://bugs.winehq.org/show_bug.cgi?id=22780
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.trackmania.com/ |https://web.archive.org/web | |/20210506155315/https://nad | |eo-download.cdn.ubi.com/tra | |ckmaniaforever/tmnationsfor | |ever_setup.exe