WineHQ

Battlefield 2

The latest version from steam.

Application Details:

Version: Steam
License: Retail
URL: http://www.eagames.com/officia...
Votes: 0
Latest Rating: Gold
Latest Wine Version Tested: 7.18-staging

Maintainers: About Maintainership

Test Results

Old test results
The test results for this version are very old, and as such they may not represent the current state of Wine. Please consider submitting a new test report.
Selected Test Results

What works

Game launches, single player works, in-game menu browsing works. High graphics settings works too.

What does not

Had to enable "emulate virtual desktop" in winecfg.

Workarounds

Enable "emulate virtual desktop" in winecfg.

What was not tested

Multiplayer.

Hardware tested

Graphics:

  • GPU: AMD
  • Driver: open source

Additional Comments

Game version is 1.5.3153-802.0. I used a clean 64-bit WINEPREFIX. 

$ lshw -short | egrep -v '(volume|disk|bus)'

H/W path                    Device          Class          Description
======================================================================
                                           system         ROG Strix G733QR_G733QR
/0/0                                        memory         64KiB BIOS
/0/b                                        memory         64GiB System Memory
/0/b/0                                      memory         32GiB SODIMM DDR4 Synchronous Unbuffered (Unregistered) 3200 MHz (0.3 ns)
/0/b/1                                      memory         32GiB SODIMM DDR4 Synchronous Unbuffered (Unregistered) 3200 MHz (0.3 ns)
/0/d                                        memory         512KiB L1 cache
/0/e                                        memory         4MiB L2 cache
/0/f                                        memory         16MiB L3 cache
/0/10                                       processor      AMD Ryzen 9 5900HX with Radeon Graphics
/0/100                                      bridge         Renoir/Cezanne Root Complex
/0/100/0.2                                  generic        Renoir/Cezanne IOMMU
/0/100/1.1                                  bridge         Renoir PCIe GPP Bridge
/0/100/2.1                                  bridge         Renoir/Cezanne PCIe GPP Bridge
/0/100/2.1/0                enp2s0          network        RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/2.2                                  bridge         Renoir/Cezanne PCIe GPP Bridge
/0/100/2.2/0                /dev/fb0        network        MT7921 802.11ax PCI Express Wireless Network Adapter
/0/100/2.3                                  bridge         Renoir/Cezanne PCIe GPP Bridge
/0/100/2.3/0                /dev/nvme0      storage        Samsung SSD 970 EVO 1TB
/0/100/2.4                                  bridge         Renoir/Cezanne PCIe GPP Bridge
/0/100/2.4/0                /dev/nvme1      storage        INTEL SSDPEKNU010TZ
/0/100/8.1                                  bridge         Renoir Internal PCIe GPP Bridge to Bus
/0/100/8.1/0                                display        Cezanne
/0/100/8.1/0.1                              multimedia     Renoir Radeon High Definition Audio Controller
/0/100/8.1/0.2                              generic        Family 17h (Models 10h-1fh) Platform Security Processor
/0/100/8.1/0.3/0/1                          generic        Pixel 5
/0/100/8.1/0.3/0/2                          generic        802.11ac WLAN Adapter
/0/100/8.1/0.3/0/3                          input          N-KEY Device
/0/100/8.1/0.3/0/4                          input          N-KEY Device
/0/100/8.1/0.4/0/1                          input          USB Device
/0/100/8.1/0.4/0/4                          communication  Wireless_Device
/0/100/8.1/0.4/1/2          scsi0           storage        USB to ATA/ATAPI Bridge
/0/100/8.1/0.5                              multimedia     ACP/ACP3X/ACP6x Audio Coprocessor
/0/100/8.1/0.6                              multimedia     Family 17h/19h HD Audio Controller
/0/100/14.3                                 bridge         FCH LPC Bridge
/0/101                                      bridge         Renoir PCIe Dummy Host Bridge
/0/102                                      bridge         Renoir PCIe Dummy Host Bridge
/0/103                                      bridge         Renoir PCIe Dummy Host Bridge
/0/104                                      bridge         Cezanne Data Fabric; Function 0
/0/105                                      bridge         Cezanne Data Fabric; Function 1
/0/106                                      bridge         Cezanne Data Fabric; Function 2
/0/107                                      bridge         Cezanne Data Fabric; Function 3
/0/108                                      bridge         Cezanne Data Fabric; Function 4
/0/109                                      bridge         Cezanne Data Fabric; Function 5
/0/10a                                      bridge         Cezanne Data Fabric; Function 6
/0/10b                                      bridge         Cezanne Data Fabric; Function 7
/0/1                                        system         PnP device PNP0c01
/0/2                                        system         PnP device PNP0b00
/0/3                                        generic        PnP device ATK3001
/0/4                                        system         PnP device PNP0c02
/1                          wlp6s0f3u2      network        Wireless interface


$ glxinfo -B

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
   Vendor: AMD (0x1002)
   Device: AMD RENOIR (LLVM 14.0.0, DRM 3.47, 5.19.16-200.fc36.x86_64) (0x1638)
   Version: 22.1.7
   Accelerated: yes
   Video memory: 512MB
   Unified memory: no
   Preferred profile: core (0x1)
   Max core profile version: 4.6
   Max compat profile version: 4.6
   Max GLES1 profile version: 1.1
   Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
   VBO free memory - total: 65 MB, largest block: 65 MB
   VBO free aux. memory - total: 31302 MB, largest block: 31302 MB
   Texture free memory - total: 65 MB, largest block: 65 MB
   Texture free aux. memory - total: 31302 MB, largest block: 31302 MB
   Renderbuffer free memory - total: 65 MB, largest block: 65 MB
   Renderbuffer free aux. memory - total: 31302 MB, largest block: 31302 MB
Memory info (GL_NVX_gpu_memory_info):
   Dedicated video memory: 512 MB
   Total available memory: 32372 MB
   Currently available dedicated video memory: 65 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD RENOIR (LLVM 14.0.0, DRM 3.47, 5.19.16-200.fc36.x86_64)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 22.1.7
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6 (Compatibility Profile) Mesa 22.1.7
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.1.7
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

selected in Test Results table below
Operating systemTest dateWine versionInstalls?Runs?Used
Workaround?
RatingSubmitter
CurrentFedora 36 x86_64Oct 23 20227.18-stagingYes Yes YesGoldJohn Doe 
ShowGentoo Linux x86_64Sep 05 20172.15-stagingNo, but has workaround Yes YesSilverRob 
ShowGentoo Linux x86_64Nov 13 20151.7.54-stagingYes Yes YesGoldRob 
ShowGentoo Linux x86_64Apr 03 20141.7.15Yes Yes YesGoldRob 
ShowMac OS X 10.7 "Lion"Jul 02 20121.4Yes Yes NoSilverMac Porter Joe 

Known Bugs

Bug # Description Status Resolution Other apps affected
6351 Battlefield 2 graphics problems CLOSED FIXED View
8854 Unable to get keyboard / mouse input in multiple games CLOSED FIXED View
17402 Battlefield 2 runs unplayably slow (and mission loading takes longer) on ATi with GLSL CLOSED FIXED View
29868 Battlefield 2 can't change controls CLOSED DUPLICATE View
35371 Battlefield 2 voice setup tool crashes when "Save Settings" button is clicked (winmm.mixerGetDevCaps should also accept mixer device handles) NEW View
41925 Battlelog.co Battlefield 2/2142 Revive Launcher silently dies during installation (Squirrel installer fails) NEW View

Show open bugs

HowTo / Notes

Test Submissions ... how to avoid a rejection notice!!

These notes were last updated: 04 September 2019

Follow these guidelines to avoid embarrassment when your Test Submission is immediately rejected!!

  • Ensure the version of Wine you have installed is update-to-date and supported (hint: if it isn't - then it won't be in the drop-down list).
  • Put your PC specifications in the Extra Comments section e.g. like your CPU and system memory.1
  • When adding test results please specify video card and driver version you are using.2
  • It's also useful to mention what Desktop Environment you are using (e.g. KDE/Plasma, Gnome, Xfce, Budgie, Mate, Cinnamon, ...)
  • Specify if you installed the Battlefield 2 into a fresh Wineprefix (or not), and what other programs and games you have installed (for existing Wineprefix's).
  • Specify what version of the Windows compatibility you use for your Wineprefix (e.g. Windows XP, Windows 7). Specify if you override this for the Steam client executable.
  • Specify whether you installed into a 32-bit or a 64-bit Wineprefix.
  • Add detailed comments about what is not working for you.
  • Please check known issues - like terrian texture settings - which may vary by graphics card vendor / driver version.
  • Please indicate if you've applied additional patches to the version of Wine you are using.
  • Please, don't submit test results like "Everything is working" or "Everything isn't working".

These guidelines ensure your submitted test results are actually relevant to other users of Wine and WineHQ.


1 The console version of the lshw utility is your friend. This command will dump your System hardware specification in a clean format. Post command and output in the Extra Comments section:

sudo lshw -short | egrep -v '(volume|disk|bus)'

2 glxinfo can be used to display your OpenGL and graphics driver versions. Post the command and output in the Extra Comments section:

glxinfo -B

Post Steam-installation notes.
Ensure you have installed Steam in a 32-bit Wineprefix on a 64-bit OS (see Wine FAQ if unsure how to do this).
  1. Install BF2 in Steam client - but do not launch it immediately.
  2. To stop Steam pestering you with pointless/unneeded pre-installations each time you run BF2...
    cd "${WINEPREFIX}/drive_c/Program Files/Steam/SteamApps/common/Battlefield 2"
    rm -rf directx/ PunkBuster/ redist/
    
Online play will not be possible until a Punkbuster update is installed (see below).
Launching Game (Steam)

Set the following launch parameters for BF2.exe, using the Steam Client GUI:

+menu 1 +fullscreen 1 +szx "x-resolution" +szy "y-resolution"

... replace "x-resolution" & "y-resolution" with your native screen resolution.

Also ensure that your Battlefield 2 Video.con profile file has the correct resolution set in it (command updates all profiles):

export resolution="'x-resolution'x'y-resolution'@'frequency'Hz"
find "${WINEPREFIX}/drive_c/users/${USER}/My Documents/Battlefield 2/Profiles" -type f -name "Video.con" -printf "'%p'\n" \
    | xargs sed -i -e 's/setResolution [1-9][0-9]*x[1-9][0-9]*@[1-9][0-9]*Hz/setResolution '"${resolution}"'/g'

... replace 'x-resolution' , 'y-resolution' & 'frequency' with your native screen resolution and frequency (respectively).

To access the Battlefield 2 launch options (Steam LIBRARY):

  • Mouse left buttonRHS mouse click on Battlefield 2 entry (in Steam LIBRARY)
  • Select Properties (context menu entry) → General (tab)
  • Select SET LAUNCH OPTIONS... button
Gamespy Master Servers

Gamespy, which provided the Master Servers for many games including Battlefield 2, was officially shutdown in May 2014. See Gamespy Wikipedia for more information about this.

Various community supported efforts have sprung up to provide alternative Master Servers for the various games affected by the server shutdown.


Detailed below are installation instructions for various alternatives - to use in place of the original Gamespy Master Servers.


(1) BF2Hub


Pros

  • ☑ Supply reliable alternate Battlefield 2 Master Servers
  • ☑ Facility to import your rank, achievements and weapon unlocks from the original Gamespy databases.
  • ☑ Simple Windows XP compliant GUI launcher - without .Net dependencies!
  • ☑ Works with Punkbuster
  • ☑ Many active Servers still remain online
  • ☑ There is even a Special Forces server online!!


Cons

  • None known

Getting Started

  1. Visit BF2 Hub Website
  2. Download the latest client

Guide to Installing the BF2 Hub Launcher

Download the BF2 Hub Launcher installer.

Then simply set the BF2 Hub Launcher up in a Wineprefix - which has an existing Battlefield 2 installation:

wine bf2hub-client-setup.exe

Then to run the BF2 Hub Launcher (32-bit Wineprefix):

wine start 'C:\Program Files\BF2Hub Client\bf2hub.exe'

The BF2 Hub Client will automatically read your EA Account Details/CD key. So you should be able to play Battlefield 2 online straightaway!

The BF2 Hub Launcher uses a system tray icon. This results in a known system tray bug affecting Battlefield 2, when Wine is used in the Virtual Desktop mode. See bug: 40828.


(2) Battlelog Servers


Update: the Battelog/Revive crew were served a takedown notice by EA. So this only remaining solution, to full online play for Battlefield 2, is no longer available...


Pros

  • ☑ Supply reliable alternate Battlefield 2 Master Servers
  • ☑ Facility to import your rank, achievements and weapon unlocks from the original Gamespy databases.
  • ☑ Transparent/simple command line wrapper executable to your original BF2.exe
  • ☑ Works with Punkbuster
  • ☑ Many active Servers still remain online
  • ☑ There is even a Special Forces server online!!


Cons

  • ☒The Battlelog Launcher client frontend applications is a bit unstable under Wine
    (see Wine Bug 41925)

Getting Started

  1. Visit Battlelog.co Website
  2. Setup an account

Guide to Installing the Windows 7 Revive Launcher

The installer for the Revive Launcher doesn't currently work under Wine. This issue can be worked around however.

Ensure you are using a 32-bit Wineprefix on a 64-bit OS (see Wine FAQ if unsure how to do this).

Download the Revive Launcher installer.

Then manually extract the installer - to use it:

winetricks win7
winetricks 7zip dotnet452
cd "${WINEPREFIX}/drive_c"
mkdir -p Battlelog.co
cd Battlelog.co/
mv ~/Downloads/Setup.exe .
wine 'C:\Program Files\7-Zip/7z.exe' x Setup.exe
wine 'C:\Program Files\7-Zip/7z.exe' x bf2battlelog-*-full.nupkg -i'!lib/*'

Then to run the Revive Launcher:

cd "${WINEPREFIX}/drive_c/Battlelog.co/lib/net45"
wine start 'Revive-Launcher.exe'

If using Steam then you may need to fix the install the Steam Library install path that the Revive Launcher tries to use for BF2:

export STEAM_WPATH="$( wine reg QUERY 'HKEY_LOCAL_MACHINE\Software\Valve\Steam' /v 'InstallPath' 2>/dev/null | awk '{if (sub("InstallPath","",$1) && sub("REG_SZ","",$2)) { sub("^[[:blank:]]+|[[:blank:]]+$",""); printf("%s\0", $0); exit 0 } }' )"
export STEAM_UPATH="$( winepath -u "${STEAM_WPATH}" 2>/dev/null | dos2unix  )"
export BF2_PATH="$( find "${STEAM_UPATH}" -type d -iname "Battlefield 2" -print0 | xargs -0 winepath -w 2>/dev/null )"
export APPLICATION_DATA="$( wine reg.exe query 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' /v 'AppData' | awk '{if (sub("AppData","",$1) && sub("REG_SZ","",$2)) { sub("^[[:blank:]]+|[[:blank:]]+$",""); printf("%s\0", $0); exit 0 } }' | xargs -0 winepath -u 2>/dev/null | dos2unix )"
export DIRS_BF2="$( find "${APPLICATION_DATA}" -type f -ipath '*bf2battlelog/dirs_bf2.json' )"
sed -i -e 's|{"gameDir":"[^"]*|{"gameDir":"'"${BF2_PATH//\\/\\\\\\\\}"'|' "${DIRS_BF2}"

NB: this will only work if your Steam Library directory, for BF2, is stored below the main Steam directory.


The Revive Launcher largely works:

  • ☑ You can set BF2 launch options.
  • ☑ You can download and install the full BF2 game (including all expansion packs).
  • ☑ Revive Network status, etc. works.
  • ☑ Applying Revive CD-keys to Registry works.
    The helper executable BattlelogBootstrap.exe consistently crashes on exit (this can be ignored - just press Cancel).
  • ☒ The Revive Launcher consistently crashes - when you exit it.

Tested with Wine Staging - version 2.15.
The Revive Launcher is much less stable with earlier versions of Wine Staging. The Revive Launcher not work with any Wine Stable or Wine Development release (at present).


Revive Game CD Keys

It may be necessary to edit (specific) Registry keys, to set a special (allocated) Revive CD-key, for your BF2 install. This step will become mandatory when the Revive team enable game key verification on their Servers.

Refer to this Battlelog.co forum post: How to fix CD-Key issues (applies to both BF2 & BF2142).

  1. Enter Wine registry editor:
    wine regedit
  2. Backup existing Wine registry:
    Click on Registry (menu)
    Select Export Registry File...
    Select All checkbox
    Save backup registry file
  3. Exit regedit
  4. Visit your Revive Personal Profile page to obtain your personal Revive CD-key
  5. Insert your Revive CD-key into the (Wine) Registry for Battlefield 2:
    export REVIVE_KEY="❚❚❚❚-❚❚❚❚-❚❚❚❚-❚❚❚❚-❚❚❚❚"
    wine reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\EA Games\Battlefield 2\ergc" \
        "/v" "" "/t" "REG_SZ" "/d" "x9392${REVIVE_KEY}" "/f"
  6. Also insert your Revive CD-key into the (Wine) Registry for Battlefield 2 Special forces (if installed):
    wine reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\EA Games\Battlefield 2 Special Forces\ergc" \
        "/v" "" "/t" "REG_SZ" "/d" "x9392${REVIVE_KEY}" "/f"
Single Player Support

SPX 64-Player Mod

A Single Player mod supporting SP/coop support for Special Forces maps, with SF kits, weapons, Factions and vehicles. This guide also includes a fix for flickering terrian textures (black flickering hexagons covering terrian textures). Combining these 2 Mods allows you to achieve a good offline, single-player experience. As your stock BF2 data files are not affected, you can still play online, without being kicked by Punkbuster! 

  1. Setup an account on Battlefield SinglePlayer Forum and login into this account (this is necessary to unlock download links used in this section).

  2. Download BF2 SPX archive - version 1.2

    cd ~/Downloads
    wget -c "http://www.battlefieldsingleplayer.com/dnamro/files/BF2/BF2_SPX_1_2.zip"
    cd "${WINEPREFIX:-${HOME}/.wine}/drive_c/Program Files/Steam/steamapps/common/Battlefield 2/mods"
    mkdir BF2_SPX
    cd BF2_SPX
    unzip ~/Downloads/BF2_SPX_1_2.zip
    
  3. Download shaders client (fixed) archive
    (based on texture map files from the Forgotten Hope BF2 mod).

    cd "${WINEPREFIX:-${HOME}/.wine}/drive_c/Program Files/Steam/steamapps/common/Battlefield 2/mods/BF2_SPX"
    cp "BP_Shaders_client.zip" "BP_Shaders_client.bak.zip"
    cp ~/Downloads/Shaders_Client_Fix.zip "BP_Shaders_client.zip"
    
  4. Uncomment these 2 lines to put the stock menu movies back into the SPX mod... But why??!!

    # cd "${WINEPREFIX:-${HOME}/.wine}/drive_c/Program Files/Steam/steamapps/common/Battlefield 2/mods"
    # rsync -achv bf2/Movies/{Intro,menu,menu_loggedin}.bik BF2_SPX/Movies/
    
  5. Set the following launch parameters, for BF2, using the Steam Client GUI - to launch the SPX 64-Player Mod (for full HD resolution):
    +modPath 'mods\BF2_SPX' +menu 1 +fullscreen 1 +szx 1920 +szy 1080

Single Player Bot Changer

This is a small utility, to set the maximum number of map players and the AI strength of the game bots, for any of the (currently installed) Battlefield mods.

  1. Download BF2 SP Bot Changer - version 1.2

  2. Extract & run the utility


    cd ~/Downloads/
    unzip bf2-sp-bot-changer-21.zip
    wine 'BF2 SP Bot Change v2.1.exe'
    
Punkbuster Fixes

If you find yourself getting kicked from online multiplayer Servers... Then try refreshing your Punkbuster installation. Otherwise it's probably best not to touch it!

Ensure you are using a 32-bit WINEPREFIX (Punkbuster will not work in a 64-bit WINEPREFIX).

Note: using a 64-bit WINEPREFIX appeared not to be an issue, during online testing on 26 November 2018. Testing multiplayer, on a BF2Hub-enabled BF2 Server (with Punkbuster enabled). YMMV.

Steps to refresh your current Punkbuster files:

  1. Download and extract the final Punkbuster files supporting BF2: bf2_win32.zip:

    wget -O ~/Downloads/bf2_win32.zip -c "http://fizweb.elte.hu/battlefield/Battlefield-2/BF2-PunkBuster/bf2_win32.zip"
    export PB_DIRECTORY="$(find "${WINEPREFIX}" -type d -iname "pb")"
    mv "${PB_DIRECTORY}" "${PB_DIRECTORY}.bak"
    unzip ~/Downloads/bf2_win32.zip -d "$(dirname "${PB_DIRECTORY}")"

    NB you'll have to do this process manually - if BF2 is not installed within your current WINEPREFIX.

  2. Now update the Punkbuster service with the Punkbuster service utility: pbsvc.exe:

    wget -O ~/Downloads/pbsvc.exe -c "http://www.evenbalance.com/downloads/pbsvc/pbsvc.exe"
    wine start /unix ~/Downloads/pbsvc.exe


Recommended Video Settings

Note: for older AMD (<5xxx)/Nvidia GPU's (<8xxx) and Intel GPU's it is recommended to set:

  • LIGHTING Low
  • DYNAMIC SHADOWS Off
  • DYNAMIC LIGHT Off

  • Setting TERRAIN quality to Medium or High may lead to black hexagonal texture glitching in ground textures - this bug appears to mainly affect Nvidia GPUs.
    It has been reported that issue does not affect newer AMD radeon drivers. So setting the TERRAIN quality to High is worth testing on AMD cards.
  • ANTI-ALIASING set to 2x ... 16x (on). Will simply be ignored in-game.

The currently supported maximum in-game Video Settings (without the Shader mesh fix - detailed on this page) are:

VIDEO OPTIONS



DISPLAY MODE ????x????@???Hz


OVERALL QUALITY Custom




CUSTOM QUALITY



TERRAIN
Low


EFFECTS
High


GEOMETRY
High


TEXTURE
High


LIGHTING
High


DYNAMIC SHADOWS
High


DYNAMIC LIGHT
High


ANTI-ALIASING
Off


TEXTURE FILTERING
High


VIEW DISTANCE SCALE
100%


████

Last updated 26.11.2018 Wine-Staging 3.21, Nvidia Geforce GTX 970M, Nvidia Driver 396.54.09 (Gentoo GNU/Linux)

General Tweaks

BF2 Commandline Options

Refer to Battlefield 2 Tweak Guide: Command Line Options for a comprehensive list of command line switches to use when launching the Battlefield 2 executable.

  • For example you can also set you client to automatically login to Revive account:

    wine start 'BF2.exe' ... +playerName "name" +password "⚫⚫⚫⚫"
  • Specify a custom resolution to launch the BF2 client with, e.g. for running the game on a full HD monitor:
    wine start 'BF2.exe' ... +menu 1 +fullscreen 1 +szx 1920 +szy 1080
  • Specify a BF2 Mod to launch, with the BF2 client, e.g. for running the BF2 SPX Singleplayer Mod:
    wine start 'BF2.exe' ... +modPath mods/BF2_SPX +ignoreAsserts 1

How you append these options will depend on whether you are using the Steam Client or if you have used a retail (DVD) copy of Battlefield 2.

Comments

Back