In short… Mafia (2002) (for the record… is my #1 game experience outright) is a DirectX8 game but uses WINED3D instead of DXVK (currently v2.4.1) which gives noticeably worse performance, especially in certain areas in the game. I can get it to use DXVK but I got to set it up manually either through the usual DXVK, or through Crosire’s (d3d9.dll which converts DirectX8 to 9) or through AlpyneDreams (d3d8.dll which is apparently more proper).
more details…
even with a completely fresh Wine prefix… I am not sure if this is a bug in Lutris v0.5.17 (which is the newest currently) but I suspect it is since the game uses WINED3D instead of DVXK like it should as while I can see in the "C:\Windows\syswow64" (which is apparently for 32-bit games (which Mafia (2002) is) where as ‘system32’ folder is for 64-bit) has what I think are symlinks automatically setup by Lutris to stuff like d3d9.dll which redirects to where Lutris stores those files it downloads (i.e. “~/.local/share/lutris/runtime/dxvk/v2.4.1/”), it does NOT do that for the d3d8.dll file specifically which that’s the file I can replace and then DXVK v2.4.1 will show up as active in the game when I add the entry for ‘Libraries’ in relation to the games main exe (game.exe) etc. but I suspect while I could use that as a temporary work around I wonder if that could potentially cause issues in the future as DXVK is automatically updated in Lutris it would point to the new DXVK entries with those symlinks and I would basically be mixing d3d8.dll for DXVK v2.4.1 with a potential future version’s newer files which does not sound like a good idea (I suspect I could force a certain version in Lutris for this Mafia (2002) game as that might help prevent it, but still, what’s happening does not seem proper and I would imagine needs fixing).
so what I am doing currently, which is probably best or at least good enough for now, is to just use the ‘d3d8.dll’ file from… Releases · AlpyneDreams/d8vk · GitHub (I think this sort of stuff was added into DXVK v2.4.0 etc on change log page) ; basically I put the ‘d3d8.dll’ file from that release in the root of game directory and then I simply run the ‘Wine configuration’ stuff and add the ‘d3d8’ entry in the ‘Libraries’ tab (for the game.exe specifically) at which point the game will use DXVK as it shows up as ‘DXVK d8vk-v1.0’ (as you can see it shows this if I add environment variable ‘DXVK=version’ in Lutris options). when I am using the replacement ‘d3d8.dll’ from official DXVK v2.4.1 in the ‘C:\windows\syswow64’ it shows up as ‘DXVK 2.4.1’ in the game so I know it’s using it. note: I used the MangoHud to see it’s using ‘WINED3D’ before I setup DXVK stuff.
so while this generally won’t be a problem for many games, since I would expect a lot of what random people play will use the usual DirectX9-11 game variations, as in that regard things work as expected. but not for this Mafia (2002) game which is DirectX8 as it always defaults to WINED3D instead of DXVK which I suspect is because Lutris does not create a what I think is a symlink to ‘d3d8.dll’. even then, I would still have to add the ‘d3d8’ to Libraries for it to use it (unless there is a way for Lutris to use this stuff automatically like it does for modern games in general(?) like DirectX9 or newer), but at least one can use it once they do that.
so I suspect Lutris needs to fix this in next release unless there is some legitimate reason this is not done(?)
p.s. also, I noticed with the current newest GE 8-26 runner that it will not play the videos in game, which uses “.bik” file extensions. playing around with other things I can sometimes get to play the video but then there is always no sound (once in the actual game stuff appears to work as expected though as it’s strictly in relation to “.bik” videos on this game). but when switching back to GE 8-12 for example everything works as expected. so maybe this is a issue with GE runners somewhere after 8-12(?). so I currently have GE 8-12 setup with the game in a clean wine prefix and the videos etc work as expected.