Back to the main site

Problem with directx 9 game

Hello, and let me first thank you for this great work! I recently transitioned to Linux (Manjaro) and I would have never thought that the Battlenet games work so smooth right out of the box.

I tried to make a game work which I loved to play in the past. It is no more working on Win10 so I had to make a Win7 VM in order to be able to play it. So I wanted to give Wine a try.

This is the game: https://appdb.winehq.org/objectManager.php?sClass=version&iId=14070

I tried to create everything like it is described in the article and I could make the game running but the framerate in the main menu is like 0.5 fps and in the game it is like 1 frame per 1 minute…

What I tried so far: I installed vcrun2005 and the physix driver from the cd like recommended in the article in a new wineprefix. The directx9 package in winetricks is deprecated so I used the “d3dx9” one. This led to the behavior I discribed.
I then tried newly created prefixes with different d3dx9_xx versions without success. The best performance I got by using d9vk. The menu was in a very high fps but unfortunately the game could not start and hang.

So before I try further endlessly I wanted to ask you to guide me in the right direction. Or maybe you can tell me from my description already that it is hopeless. I really want to try around a bit in order to understand everything on my own and maybe be able in the future to help others.

Thank you in advance

You would maybe probably use the d9vk version and get a log from the game running then file a bug report for d9vk now dxvk.

However, winetricks does seem to have dx9 and it has d9vk but you don’t install d9vk from there. Lutris already should include it.

What you might want to do is remove it from Lutris. Delete the prefixes for the game. Add it again to Lutris. Install vcrun2005 and correct physx. Check in the Lutris settings for the game for dxvk enabled as dxvk includes d9vk now. Then see how it runs and get a log from that. If still problem, make report here: https://github.com/doitsujin/dxvk

Alternatively, do that but try disabling dxvk and installing dx9 from winetricks instead or something like that.

Its possible too that its a regression with newer Wine versions and in that case, file a regression with the Wine devs. But you should try to do your best to make sure its Wine at fault before doing that.

Thank you for the fast reply.

Is there some resource which shows how to do that? In fact I only used wine and winetricks up to now. But I asked my question here, because I think the lutris community is better in wine for gaming. Should I create the prefix somewhere in Lutris?

This I already tried. I used only wine and winetricks because there is no runner for this game

Right click on the application/game in Lutris > configure > runner options > scroll all the way down > set “output debugging info” to enabled.

Play the game or whatever until whatever happens (eg crash).

Click on the application/game in Lutris and under the play button is a terminal icon to show the log. You would then select all and paste into a new text file then upload that file.

I haven’t looked into if this will work exactly as I expect it to work, but I did just do a test, and it looks like it does.

Additional see here: Please read before asking for help

That also states that for eg Wine output, that must be manually enabled as well. This might work for that if you need something further: Where are Wine debug log or how to obtain it?

But also might require using wine debugger which I’m not getting into.

Hello,

so here is the status: I checked the install script from a quite similar game (“The Settlers II 10th Anniversary”) and saw that it at first installs “d3dx9” and afterwards “d3dx9_36”. I would never have thought of that.
But which made the game run perfectly in the end was the disabling of “CSMT”.

Well but as the game now runs I face a hard crash after a couple of minutes. Where can I upload the log file? Or should I just paste it here in the post?

Type three backtics (the one under the tilde, the key left of the 1/! key)

`

Hit enter

Paste log

Type three backtics (the one under the tilde, the key left of the 1/! key)

Result:

Log contents. With scrollbar when contents is long.

Here you go:

002b:fixme:d3d_shader:print_glsl_info_log     -----------
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[0].zw" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[1].zw" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[3]" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[4]" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[5]" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[6]" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[7]" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[9]" might be used before being initialized
002b:fixme:d3d_shader:print_glsl_info_log     0(27) : warning C7050: "vs_out[11]" might be used before being initialized
002b:fixme:msvcrt:__clean_type_info_names_internal (0x10063cb8) stub
Game is considered exited.
All monitored processes have exited.
Exit with returncode 0

I gave only the last part because I would reach character maximum otherwise.