WineHQ

Battlefield 4

Latest version installed from Origin

Application Details:

Version: Origin
License: Retail
URL: http://www.battlefield.com/bat...
Votes: 2
Latest Rating: Gold
Latest Wine Version Tested: 5.0-rc5-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

Installing Origin, downloading the game in Origin, playing the game online via Origin.

What does not

Origin generally is troublesome in Wine, but it works well enough with the mentioned workarounds.

The game itself works flawlessly. The ICMP restrictions are Linux-specific (see Wine FAQ, but it doesn't mention to explicitly allow it for wineserver binary, which definitely is the case).

Workarounds

Apply "origin_downloads_e4ca5dbe_revert.mypatch" patch to make downloading in Origin work:

https://github.com/Tk-Glitch/PKGBUILDS/tree/master/community-patches/wine-tkg-git


In Origin, disable its overlay. Otherwise the game will hang at start.


Allow ICMP to make ping detection work in-game (some servers kick otherwise):

sudo setcap cap_net_raw+epi /usr/bin/wine64-preloader
sudo setcap cap_net_raw+epi /usr/bin/wine-preloader

Also explicitly apply to wineserver, otherwise punkbuster won't work correctly with ping detection and kicks from server:

sudo setcap cap_net_raw+epi /usr/bin/wineserver

What was not tested

Singleplayer campaign, but it should work fine.

Hardware tested

Graphics:

  • GPU: AMD
  • Driver: open source

Additional Comments

Custom wine-staging-tkg build, DXVK

It's usually good practice to install some native components into the prefix:

winetricks corefonts d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 d3dx10_43 d3dx11_42 d3dx11_43 d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43 vcrun2017 vcrun2013 vcrun2012 vcrun2010 vcrun2008 vcrun2005

Set prefix OS back to Win7/10 afterwards.

selected in Test Results table below
Operating systemTest dateWine versionInstalls?Runs?Used
Workaround?
RatingSubmitter
CurrentArch Linux x86_64Jan 12 20205.0-rc5-stagingYes Yes YesGoldaufkrawall 
ShowGentoo Linux x86_64Aug 13 20183.13-stagingYes Yes NoPlatinumcallum haynes 
ShowArch Linux x86_64Aug 07 20183.13-stagingYes Yes YesGoldMark 
ShowArch Linux x86_64Jul 24 20183.11-stagingYes Yes NoPlatinumJoseph Kogut 
ShowArch Linux x86_64Apr 18 20183.5Yes Yes NoSilverJoseph Kogut 

Known Bugs

Bug # Description Status Resolution Other apps affected
8332 Applications and games using ICMP ping request report 'no connection to internet' (Wine 32-bit/64-bit preloader requires CAP_NET_RAW to create raw sockets) STAGED View

Show all bugs

Comments

The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.

Persistent setpcap when using Debian/Ubuntu/derivatives packages
by Luca Boccassi on Friday April 10th 2020, 9:41
Due to the nature of packages and file-based capabilities, using setcap to add cap_net_raw to avoid being kicked/banned due to non-functional anticheat (it needs to send/receive raw IP packets) means it will get lost on every package upgrade.

A simple solution that any user can do is to add a dpkg hook in /etc/dpkg/dpkg.cfg.d/ - this assumes the wine-staging packages built by the wine team on OBS are used, adjust for path otherwise. Example:

$ cat /etc/dpkg/dpkg.cfg.d/wine-setcap
post-invoke=if { test "$DPKG_HOOK_ACTION" = configure; } && test -f /opt/wine-staging/bin/wine-preloader && ! /sbin/getcap /opt/wine-staging/bin/wine-preloader | grep -qs "cap_net_raw"; then /sbin/setcap "cap_net_raw=epi" /opt/wine-staging/bin/wine-preloader; fi
post-invoke=if { test "$DPKG_HOOK_ACTION" = configure; } && test -f /opt/wine-staging/bin/wine64-preloader && ! /sbin/getcap /opt/wine-staging/bin/wine64-preloader | grep -qs "cap_net_raw"; then /sbin/setcap "cap_net_raw=epi" /opt/wine-staging/bin/wine64-preloader; fi
post-invoke=if { test "$DPKG_HOOK_ACTION" = configure; } && test -f /opt/wine-staging/bin/wineserver && ! /sbin/getcap /opt/wine-staging/bin/wineserver | grep -qs "cap_net_raw"; then /sbin/setcap "cap_net_raw=epi" /opt/wine-staging/bin/wineserver; fi
Back