I’m using Steam on Arch Linux (see the Arch Linux: Steam installation).
And I have Civilization V game here – my favorite game for last N-years.
I have NVIDIA drivers installed and most of the games work fine, even World Of Tanks, but I wasn’t able to play Civilization from the moment I’ve installed Steam here.
The issue and its solution aren’t’ specific to the Arch Linux and must be working for any Linux-based OS.
Contents
The issue
Actually, the messages during start and errors look like the next:
[simterm]
... Game update: AppID 8930 "", ProcID 1463098, IP 0.0.0.0:0 Starting app 8930 >>> Adding process 1463098 for game ID 8930 GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to WaitingGameWindow with "" ERROR: ld.so: object '/home/setevoy/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/setevoy/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to Completed with "" >>> Adding process 1463099 for game ID 8930 ... [0427/121055.396740:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits. Game removed: AppID 8930 "", ProcID 1463099 ... Uploaded AppInterfaceStats to Steam Exiting app 8930
[/simterm]
The investigation (aka “googling)
When I faced that issue for the first time – I’ve tried to google by the “from LD_PRELOAD cannot be preloaded” error, and found nothing helpful, so I left it and occasionally rebooted to Windows.
But today I noticed another message here:
[0427/121055.396740:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
And googling led me to this discussion, 22 Feb. 2018 (!)
So, the solution is just to get rid of video-files used during game start, because my CPU has only 4 cores with 1 thread each, which is causing the BinkPlayer to stop working, check the Civ5-LinuxPatch.md for details:
[simterm]
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 ...
[/simterm]
The solution
Go to the game’s directory:
[simterm]
$ cd .local/share/Steam/steamapps/common/Sid\ Meier\'s\ Civilization\ V
[/simterm]
Rename all .mov
video files into the .mov_bak
:
[simterm]
$ for m in `find . -name \*.mov -type f`; do mv "$m" "$m"_bak; done
[/simterm]
Here the are:
[simterm]
$ find . -name *_bak ./steamassets/civ5_opening_movie_en_us.mov_bak ./steamassets/civ5_opening_movie_fr_fr.mov_bak ./steamassets/civ5_opening_movie_de_de.mov_bak ./steamassets/assets/dlc/expansion2/civ5xp2_opening_movie_en_us.mov_bak ./steamassets/assets/dlc/expansion/civ5xp_opening_movie_en_us.mov_bak
[/simterm]
And start the game:
Done.