[SOLVED] Battlefield 2 under Lutris issue - DirectX or Nvidia drivers related


I have recently started to install my old Battlefield games within Lutris, and I managed to succesfully install & run Battlefield 1942 and Battlefield Vietnam, however I am running into some issues with Battlefield 2.

I have 4 scenarios:

  1. I run it via Proton 8.8 runner, in fullscreen. I get a message saying DirectX 9.0c is needed to run BF2 and that I need to install DirectX 9.0c and then try again. After clicking OK, I get back to the desktop. Game doesn’t run.
  2. I run it via Proton 8.8 runner, windowed. I get a black screen and I am forced to Alt-F4 out of it as it does not do anything else.
  3. I run it via Wine 8.7 runner, in fullscreen. It crashes back with “BF2.exe has stopped working” (error is in my OS, not in Wine) and my desktop resolution remains messed up unless I put that checkmark to restore the resolution. Game does not start at all.
  4. I run it via Wine 8.7 runner, windowed. Game starts and I can get inside the menus, but right at the login window, within the game, it tells me I need Nvidia drivers (they are installed though, it should not ask for them).

Pastebin outputs included in every link.

Screenshots below, where applicable:


Lutris issue report json file here.

I suspect there is some issue in which Lutris reads the Nvidia/DirectX drivers, as it works well in fullscreen if I run BF2.exe outside Lutris via system winetricks. Including hardware acceleration.
Weird thing is, even if I pick system winetricks in Lutris, I still can’t get it to work as it does outside Lutris.

Any help would be greatly appreciated.

My scope here is to be able to run it in Fullscreen, preferably with Proton 8.8 (this is how I run BF1942 and BF Vietnam).

Thank you!

LE: Forgot to mention, I use Zorin OS 16.2 64-bit. Latest Nvidia drivers (530) with all libraries included.

LLE: If I run latest Nvidia drivers (530), both BF1942 and Vietnam work. If I switch e.g. to 470, only BF1942 still works, Vietnam no longer.

LLLE: Only thing that ultimately worked for me was upgrading to version 1.5 and using a 32-bit wineprefix. Marking thread as solved.