The online racing simulator
0.6G broken in wine
(14 posts, started )
Invisible textures
Guys, I am having a problem (found a partial solution here in previous page) about missing/using native d3dx9_43.dll and correct loading of JPEG textures. Yes, I am using wine-1.7.29 (Compholio).

$ env WINEPREFIX="${HOME}/.wine" /usr/bin/wine C:\\\\Games\\\\LFS\\\\LFS.exe
fixme:winediag:start_process Wine-Compholio is a Wine testing version containing experimental patches.
fixme:winediag:start_process Please don't report bugs at winehq.org and use our issue tracker instead:
fixme:winediag:start_process https://github.com/compholio/wine-compholio/issues
fixme:d3d:resource_check_usage Unhandled usage flags 0x10.
fixme:winediag:AUDDRV_GetAudioEndpoint Winepulse is not officially supported by the wine project
fixme:winediag:AUDDRV_GetAudioEndpoint For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599
^[ err:d3dcompiler:compile_shader HLSL shader parsing failed.
err:d3dcompiler:compile_shader HLSL shader parsing failed.
fixme:d3dcompiler3DAssemble flags 1
...
err:d3d_surface:surface_load_location Surface 0x22db9b0 does not have any up to date location.
err:d3d_surface:surface_invalidate_location Surface 0x22db9b0 does not have any up to date location.
err:d3dcompiler:compile_shader HLSL shader parsing failed.
err:d3dcompiler:compile_shader HLSL shader parsing failed.
fixme:d3dcompiler3DAssemble flags 1

I think I should attach some pictures to be more clear.
Any help would be appreciated. Thank you!

PS: glxinfo |grep direct
direct rendering: Yes

PS2: 0.6G is more affected by this "bug".
Attached images
LFS-0.6G.png
LFS-0.6G-broken-text.png
LFS-0.6G-native-win-d3dx9_43.png
Same thing seems to be happening on OSX with Wine now too, just tested it.

Whatever happened between some of the previous test patches (early ones worked fine) and the 0.6G final version broke Wine support.
So 0.6F should work correctly?
Quote from Matrixi :Whatever happened between some of the previous test patches (early ones worked fine) and the 0.6G final version broke Wine support.

for the first time reading something like this ^^ i have no suspicion at all that wine support was broken on purpose

unfortunately i think with broken things on linux you either maintain both sides of the code yourself or have a lot of patience.
Quote from Michalxo :So 0.6F should work correctly?

Works for me atleast. Tried .6F on both Winebottler and Wineskin on OSX, no problems after injecting the d3dx9_43.dll file.

Quote from CarlLefrancois :for the first time reading something like this ^^ i have no suspicion at all that wine support was broken on purpose

unfortunately i think with broken things on linux you either maintain both sides of the code yourself or have a lot of patience.

What?
All you should need is D3DCompiler_36.dll and d3d9_36.dll or newer to get LFS working again. Mine works perfectly with rev. 43 versions of these libraries.
#7 - Ped7g
You need also GPU which supports pixel shaders (I have one).
And to install the DX dlls, like MadCatX wrote.
And some reasonably fresh wine version (lacking on my side, so I'm without working shaders too right now).

Under recent linux + ok GPU + DX dlls installed it should work well (several people reported that it works).
You do need the 43 versions:

D3DX9_43.dll
D3DCompiler_43.dll

We are not allowed to supply them in our download, unless we supply the entire runtime. But nearly everyone has it installed, and those who don't are directed to the MS site to get it. On Wine it's different but I hear you get these files by using Winetricks.
Can confirm, injected D3DCompiler_43.dll aswell and now 0.6G is running flawlessly.
#11 - PoVo
Speaking about LFS on Wine... Any idea why LFS crashes when you copy a message from the chat in-game and try to paste it somewhere else?

Copying the message is fine but when you hit CTRL+V LFS crashes instantly.
I don't know much about Wine but that sounds strange as you would LFS to be unaffected by pasting something somewhere else, even if that clipboard entry originated from LFS. Is there a crash address or offset in a crash message, so I try to see where in LFS the crash occurs, if it is in LFS?
#13 - PoVo
Here is the error log that is outputted. This only started to happen since the last couple of updates (DX9 perhaps).

err:clipboard:X11DRV_CLIPBOARD_ExportString Failed to render 000d format
err:clipboard:X11DRV_CLIPBOARD_RenderFormat hWndClipOwner is lost!
err:clipboard:X11DRV_CLIPBOARD_ExportString Failed to render 000d format
wine: Unhandled page fault on read access to 0x00000000 at address 0xf740a596 (thread 002a), starting debugger...
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0xf740a596).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:f740a596 ESP:029ae4e4 EBP:029ae548 EFLAGS:00010283( R- -- I S - - -C)
EAX:00000000 EBX:7dd78000 ECX:00000000 EDX:00000000
ESI:00000000 EDI:00000000
Stack dump:
0x029ae4e4: 00000000 00000000 7dd174b7 00000000
0x029ae4f4: 6f5334a0 029ae548 7dd17188 029ae5b4
0x029ae504: 01cc8258 7dbac029 7db74000 7db74000
0x029ae514: 6f533f20 00000000 7db5e084 6f533f2c
0x029ae524: 6f53f8f0 0000018f 7378e500 7db74000
0x029ae534: 6f533f20 7dd1715b 7dd78000 7dd17150
000c: sel=0067 base=00000000 limit=00000000 32-bit r-x
Backtrace:
=>0 0xf740a596 in libc.so.6 (+0x83596) (0x029ae548)
1 0x7dd174b7 in winex11 (+0x174b6) (0x029ae548)
2 0x7dd15874 in winex11 (+0x15873) (0x029ae5f8)
3 0x7dd1cbc6 in winex11 (+0x1cbc5) (0x029ae738)
4 0x7dd1d309 in winex11 (+0x1d308) (0x029ae768)
5 0x7eb4f9c1 in user32 (+0x8f9c0) (0x029ae7c8)
6 0x7eb16997 in user32 (+0x56996) (0x029ae938)
7 0x7eb17e85 MsgWaitForMultipleObjectsEx+0x54() in user32 (0x029ae988)
8 0x7dd13e8a in winex11 (+0x13e89) (0x029ae9d8)
9 0x7bc76830 call_thread_func_wrapper+0xb() in ntdll (0x029ae9f8)
10 0x7bc7965f call_thread_func+0xce() in ntdll (0x029aeae8)
11 0x7bc7680e RtlRaiseException+0x21() in ntdll (0x029aeb08)
12 0x7bc7f99f in ntdll (+0x6f99e) (0x029af358)
13 0xf753bf16 start_thread+0xd5() in libpthread.so.0 (0x029af428)
14 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
15 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
16 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
17 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
18 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
19 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
20 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
21 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
22 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
23 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
24 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
25 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
26 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
27 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
28 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
29 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
30 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
31 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
32 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
33 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
34 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
35 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
36 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
37 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
38 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
39 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
40 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
41 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
42 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
43 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
44 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
45 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
46 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
47 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
48 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
49 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
50 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
51 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
52 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
53 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
54 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
55 0xf74729fe __clone+0x5d() in libc.so.6 (0x00000000)
....

After linux upgrades (including wine) I gave the LFS another try, and I was still having problems with pixel shader.

When I run winetricks in GUI mode, I could not find the d3dcompiler, but running this in terminal:
winetricks d3dcompiler_43

did install the shader compiler, and now LFS 0.6G works for me too. Smile

Also while I was experimenting with winetricks, I checked also DirectX sound dll ... very bad idea Wink, you do not want this. So I reverted back (actually set it up nas (builtin, native) calling option). All's fine.

I just somehow lost keyboard config (back to default mouse LMB=accel, while I had it on "a") in the meantime (during one of OS upgrade steps, but not first one (I was going trough three of them)), weird. Not sure, if it was wine upgrade related, or LFS.exe itself action.

0.6G broken in wine
(14 posts, started )
FGED GREDG RDFGDR GSFDG