While you're here, please consider supporting GamingOnLinux on:
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register
-
Golf With Your Friends adds a hilarious new Speed Golf …
- Pyretic -
Open source evolution sim Thrive gets upgraded to Godot…
- Pyretic -
Bazzite 3.0 out now with Steam Deck OLED support nearly…
- Pyretic -
Open source evolution sim Thrive gets upgraded to Godot…
- Purple Library Guy -
Zink driver startup time squashed with new patches
- ShabbyX - > See more comments
Latest Forum Posts
- Weekend Players' Club 4/26/2024
- Mezron - Penguins in Gaming
- StoneColdSpider - Nintendo-style gaming, without Nintendo!
- Pengling - Free Steam Keys!
- robvv - Company of Heroes 2 Benchmark
- Vortex_Acherontic - See more posts
View PC info
Ah, Just Cause 2. 'Twas a lovely game of a guy going to a tropical island with a grappling hook, overthrowing the government, and just causing a lot of trouble. (heh heh, no one's ever made that joke before.) There's just one problem. IT'S A DIRECTX 10 game. Ah DirectX 10, the bastard version that was exclusive to the oh so beloved Windows Vista! Windows 7 had come out less than a year ago at least, but so many of us were on Windows XP so we couldn't play it! And while disgust over Vista caused a few Linux converts, the idea of Linux gaming back then was somewhat laughable (nervously eyes this site's age) and either way, many of us stuck with XP way past its shelf life, eventually moving to Windows 7. And all was well. Until Microsoft released 8 and 10... the straw that broke my back, and here I am desperately trying to get everything working on Linux! (For a while, it's been a long process.)
Oh right. It's 10 years later. Native Linux ports are slightly common! Steam supports it! Gog supports it! And Wine has made incredible progress, almost any game from the Windows XP era onward works by now. But not Just Cause 2. This game was a thorn in my side, one of the only games I couldn't get running with Wine/XP or older. (Since it's a DX10 game... As for anything requiring XP and older that still doesn't work... I'll just live with running older Windows on old hardware.) For a lot of you, if you try to play it, you'll get a fatal DirectX error or nothing at all. It just won't work.
The key here (for me at least) is Vulkan... you need to remove it. You probably think that sounds crazy... well, it is. But for some reason it works. Now, before you read that, read on.
The problem with this damned game is that it's 32-bit, 64-bit systems not being that common back then. (Guess they really needed to appeal to those Pentium 4 gamers... running Vista/7 with a DX10 GPU? ...idk...) With our distros all (varyingly) going all 64-bit, this can cause problems. Of course normally all you need to do is enable multilib... but here's the thing: DXVK. You see, DXVK, if you weren't aware, requires Vulkan libraries in the same arch as the Windows program itself. If you're playing a more recent 64-bit game, great, it will probably just work. But with a 32-bit game like this, if you don't have 32-bit Vulkan libraries installed on your system, DXVK will fail to load and you'll fall back on Wine's own D3D10 implementation, which would not seem feature complete enough to allow this game to run.
Reading through Lutris's guide to installing 32-bit Vulkan libraries (https://github.com/lutris/lutris/wiki/Installing-drivers) I ran into a snag with that, when it came to installing the 32-bit libraries, apt would complain it couldn't due to the lack of libvulkan1:i386 (in other words, the 32-bit Vulkan library). So I install it... and apt complains that libvulkan1:i386 can't be installed due to a dependency conflict with... libvulkan1. The 64-bit version of the very same library. What, so you can't have 32-bit and 64-bit Vulkan installed on the system? That's dumb... Yeah, for a while I had just given up, not thinking it's important. I didn't think removing the 64-bit version of the library was a good idea. ...Until I decided to just stop caring (frustration in life...) and try it anyway just to see what happens.
Now removing Vulkan will also remove anything that lists it as a dependency. For me that was vlc and some gstreamer packages, mostly. Copy the list of packages into a text editor so you can reinstall them after. After you've ripped poor Vulkan out of your system, install the 32-bit lib... and it'll pull in the 64-bit version of itself as a dependency. That's freaking weird, and I don't really understand what happened there. (Did something happen to my package that removing it fixed? I did see apt listing different versions for the 32 and 64 libs...) So now that you have those both Vulkans installed, reinstall those other packages apt removed along with it.
Next I just used Lutris's script to install the game with Steam running in Wine. I couldn't get the game to work in Proton yet but there's some fixes listed on ProtonDB I haven't tried yet. Really, it seems running it in any Wine prefix that also has DirectX installed, and possibly some other libraries installed will work.
The game does have some interesting bugs still. Sometimes it will lock up when you try to quit, so you'll have to kill its process. When you first load the game it'll lag to hell but it goes away after a few minutes... I think that might be shader compilation? And full screen only seems to work with it in a virtual desktop. (Lutris's script configures it that way by default... complete with a cheesy background of the game's logo.) But it seems quite playable.
tl;dr:
1. You need 32-bit Vulkan libraries installed
2. If you can't install them REMOVE VULKAN FROM YOUR SYSTEM, (write down anything else it removes) then install the i386 libs
3. This will put 64-bit Vulkan back on your system. (Phew.) Reinstall any other packages you removed with Vulkan.
4. Install the game and DXVK in a Wine prefix.
5. The game will (hopefully) work! You don't need a cracked EXE like I've seen claims of, it worked fine in Steam.
Video of it running: https://www.youtube.com/watch?v=SmWIvMCAG4Q (Note: in the video I made the game run without virtual desktop, this is because I couldn't show the Steam startup process, but I wanted you to be able to see I'm not faking the video...)
(Hope this was okay, I guess I rambled a bit.)
thanks for this guide.
sudo apt-get install mesa-vulkan-drivers:i386
probably you are not installing them the correct way... It worked for me that way.
also adding this line to the launch options could help
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json
Last edited by Koopacabras on 2 May 2020 at 5:07 am UTC
View PC info
Anyway, it doesn't seem to work in Proton at all, either in Steam or standalone. It would seem the hacks Proton does to make Windows games better integrated with the Linux Steam client interfere with the DRM... and the Windows Steam client, for that matter. (Good job.) I guess that's why people were saying to use cracks to play the game. (But it works without cracks in the Windows Steam client within regular Wine, at least.)
I actually ended up playing the game until 4 AM last night, ha ha whoops. The game didn't seem affected by the explosion bug I've read about, because I blew lots of stuff up (even going through a mission) and the game kept playing at full speed. Guess that's only an Nvidia bug, ironically. (Bug with their Vulkan implementation?)
Just Cause 4 is so easy that is almost boring.
Last edited by Koopacabras on 3 May 2020 at 9:59 am UTC
View PC info
I dunno about difficulty, admittedly I'm playing on the easiest setting, but I hopped into one of those turrets on top of a military vehicle and just started raining down a torrent of hellfire, blowing up every vehicle and killing everyone in sight... even some of the factions trying to fight alongside me. (Oops.) I lasted quite a while doing this and even got an achievement out of it.
Spoiler, click me
here's the first mission, stable 60fps with Highest settings.
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
Last edited by Koopacabras on 10 May 2020 at 1:47 pm UTC
We can’t because your profile is private.
View PC info
View PC info
Sorry, I didn't realize that. It's fixed now, thanks.
Last edited by obscurenforeign on 11 May 2020 at 1:30 am UTC