Jump to content
mojical

APB 1.30+ on Linux (new guide with Proton-GE and tweaks)

Recommended Posts

As a few of us Linux users have discovered in the 1.30 Open Beta thread, since APB’s 1.30 update it has been possible to successfully run APB:Reloaded on the Linux operating system, thanks to Little Orbit cleaning up old code that was causing crashes with previous versions.  This also applies to the Steam Deck.

 

This is accomplished with a tool like Valve’s Proton that, to put it simply, translates APB’s DirectX9 API calls to Vulkan and Windows system calls to Linux equivalents in real time. The following guide shows how to accomplish this with a few minor tweaks, all within the Steam client.

 

UPDATE 2023/12/17: Added some useful tweaks at the end of the guide to reduce stutters and improve visuals with FSR.

 

How to play APB 1.30+ on Linux

 

This guide was tested on CachyOS Linux with KDE 5.27 on both Wayland and X11, and an AMD RX 6800 GPU. 

 

I have also tested it on a Steam Deck running latest stable SteamOS. It is necessary to do the following steps in desktop mode, however once you successfully run the game it will also work in gaming mode.

 

For NVIDIA users: Make sure you are using proprietary drivers from this point on. If you need to install them, use your distribution's install method and do not use drivers downloaded from Nvidia's site.

 

Step 1: Getting Proton-GE

 

To proceed with the guide, Steam must be installed and started for the first time.

 

Proton-GE is a community version of Valve's Proton containing up to date code and a collection of game specific fixes.  Proton-GE 8-5 supports APB Reloaded (including Steam login) without any additional tweaks.

 

To install Proton-GE, the most user friendly option is to download ProtonUp-Qt from your distribution's Flatpak based app store, such as Discover in the Steam Deck's desktop mode. Then, from this tool, select "Add new version" and choose Proton-GE 8-5 or newer. This is not specific to APB so there are many guides on the Internet that help accomplish this task, such as this one

 

Personally, my preferred way to install Proton-GE is to download the latest release and untar the folder within to  $HOME/.local/share/Steam/compatibilitytools.d/ ($HOME being a placeholder for your home directory).

 

After Proton-GE is installed, Steam should be restarted to recognize it as a compatibility tool.

 

Step 2: Setting up Steam

 

Open Steam, log into your account, and open Steam's settings from the Steam menu. Navigate to "Compatibility" and check "Enable Steam Play for all other titles."

 

jiCn2hz.png

 

Go to your Library and make sure "Tools" or "All" is shown in the dropdown.  Use the search box to find the "Proton Easy AntiCheat Runtime". Install it if not already present.

 

2SFcqOZ.png

 

 

Step 3: Setting up APB

 

Install APB Reloaded from Steam's store as usual. Be sure to not run the game yet until everything is set up.

 

Once APB is installed, right click it from your library view and select "Properties" in the menu. Go to the "Compatibility" tab and select GE-Proton 8-5 or a later version of Proton GE, as shown below. If it does not show, verify that it is installed correctly and that you restarted Steam after installing it.

 

fs2jlqR.png

 

You can close the window or press Escape and your settings will be saved. The game is ready to be played at this point.

 

Optional tweaks and improvements

 

Using configs

 

If you wish to use configs such as removing the login scene, you can create a directory called "apbconfig" in your home folder and inside it, paste your configs as you would in the game's install directory. For example, if you are using a graphics config, the path "/home/(your user)/apbconfig/APBGame/Config/APBCompat.ini" would be a valid path.  You can also insert command line arguments at the end such as -nomovies in the example.

 

Then, paste the following script in the game's "Launch options". Do not use the APB Launcher's start button to start the game when using configs, start by closing the launcher instead.

%command%; yes | cp -rf "$HOME/apbconfig"/* "$STEAM_COMPAT_INSTALL_PATH"/; $HOME/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=113400 -- $HOME/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- $HOME/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/_v2-entry-point --verb=waitforexitandrun -- "${STEAM_COMPAT_TOOL_PATHS%%:*}"/proton waitforexitandrun "$STEAM_COMPAT_INSTALL_PATH/Binaries/APB.exe" -nomovies -nosteam

 

All in all, as a now single-boot Linux user I consider the release of 1.30 a great step forward to APB since compatibility went from zero to essentially fully playable just by cleaning up APB’s aged codebase. Hopefully, this compatibility will be preserved or even improved upon in future releases of this game. Also, looking forward to hear from more players who attempted this or a similar method to run APB on their Linux machine!

 

Reducing DXVK stutters

 

DXVK (the translation layer used to "translate" APB from DX9 to Vulkan in real time) has configurable options that are well suited to APB's odd way of managing memory. 

 

https://drive.google.com/file/d/1RTNG4MVHirz6fbFBusurOGDJyD_pqm2M/view?usp=sharing

 

By copying this dxvk.conf file into your Binaries folder within the game's install directory you can enable these and a few other performance enhancing options that don't have an impact on graphics or stabilty according to my tests. This is especially true for nVidia users. The file has to be in the same folder as the APB.exe binary!

 

For those already versed in editing dxvk.conf the options in question are:

d3d9.apitraceMode = True

d3d9.cachedDynamicBuffers = True

 

Note that the ApiTrace option isn't used for api tracing in this case, we are just interested in cached and coherent buffers.

 

You can test the impact of these options by shooting a vehicle with a fast-firing weapon. This should cause noticeable frametime spikes without the config which are much less noticeable after applying it.

 

Using AMD FSR

 

As with many recent games, we can use AMD FSR to upscale the game from a lower internal resolution, resulting in much higher visual quality than regular display or GPU scaling. This is especially useful if you need a larger UI and don't want to deal with the visual corruption that's caused by the "User interface size" in the game's options.

 

This requires a recent Proton-GE version (I recommend Proton-GE 8-25, the latest as of this edit)

 

Add the following variable to your launch options (either alone or before whatever options you were already using, don't forget the space after though):

 

WINE_FULLSCREEN_FSR=1

Then start the game, select "Fullscreen" in the graphics options and choose the internal resolution you prefer. FSR will add some oddball resolutions that function especially well with this scaling method. If it is done properly the UI text should be rendering with native-like quality. This works for both AMD and nVidia GPUs. 

Edited by mojical
Added tweaks regarding FSR and anti stutter configs
  • Like 10
  • Thanks 7

Share this post


Link to post
Share on other sites

Holy cow I need to try this, been dying to use my steam deck with APB. Additionally the one game left keeping me tied to Windows.

  • Like 1

Share this post


Link to post
Share on other sites

Very nice guide, I hope this helps people that use Linux / Steam deck and want to play, consider publishing it on steam too if you haven't.

 

Also smh my head not using a steam skin

Edited by Frosi

Share this post


Link to post
Share on other sites

On Steam Deck, game still does not launch... I did use the GE Proton 49 instead of the linked custom GE Proton, are there any notable differences between the two?

Share this post


Link to post
Share on other sites
4 hours ago, mojical said:

Login screen load times

APB’s login scene takes quite a while to load compared to Windows, which is a minor annoyance as it can feel like the game has frozen when trying to load it. One workaround for this is to install a custom login level (which I cannot link here due to unclear rules on this) and lower loading times considerably.

little orbit themselves have it available on https://gamersfirst.com/download so i'd think you're safe linking there

Share this post


Link to post
Share on other sites
2 hours ago, xHenryman90x said:

What's the performance difference between Windows and Linux?

 

Considering what I see what other people getting on streams, I'd say performance on Linux is at least as good as Windows. On my PC (i7 13700KF @ 5.5Ghz and AMD RX 6800) it stays on the 200fps cap I've set for the game, even in a full Asylum with shadows enabled. The reason why I've decided to cap it under my monitor's refresh rate is so that FreeSync works properly even when there are small stutters.

 

1 hour ago, Frosi said:

Very nice guide, I hope this helps people that use Linux / Steam deck and want to play, consider publishing it on steam too if you haven't.

 

Also smh my head not using a steam skin

 

I have uploaded the guide to Steam, although I think the steps described here are no rocket science and the game is really close to one-click compatibility as it is. Others have posted instructions on ProtonDB (the game's now Bronze rating instead of Borked!) and while they can help people who have tinkered with Proton for a while, some of the launch option commands need to be edited for different usernames or game install directories which isn't ideal.

 

I don't use Steam to launch this game personally, or much at all lately, which is why I have not bothered to skin it. There is an Adwaita skin that makes it look like a native Linux app but it feels buggy and sluggish to use on my machine for some reason.

 

Also, thanks for helping me forward crash logs to the devs, I played for a bit after the patch (2-3 hours, mostly FC) and it hasn't crashed since the patch, even on fullscreen mode instead of fullscreen window. I believe it was indeed related to the memory leak in 1.30's initial live build.

 

1 hour ago, Sergsininia said:

On Steam Deck, game still does not launch... I did use the GE Proton 49 instead of the linked custom GE Proton, are there any notable differences between the two?

 

I believe I should change the guide to select Proton versions in the game's properties rather than altering global settings, as these can sometimes get overridden by default. Any Proton by GE should be fine, I don't think you need the custom version at all. Does the launcher not start or does the game not show after pressing start? If it's the latter, have you tried launching the game by pressing the X icon on the launcher to close it? It may be counter intuitive, but the launcher freezing when pressing Start is nothing new to me.

 

42 minutes ago, NotZombieBiscuit said:

What if I use mac tho

 

You'd need to use a method different from Steam and find a Mac that has a GPU that is not too old, too weak or too restricted to Apple's proprietary APIs to run this game, which is a very difficult task if not impossible.

 

37 minutes ago, Yeedman said:

little orbit themselves have it available on https://gamersfirst.com/download so i'd think you're safe linking there

 

Good point, I will edit that section to link to the official G1 site. I was convinced anything that couldn't be done in a text editor was in the grey area camp. However, there is still the issue of the launcher overwriting this file, so the %command%; at the beginning of the launch options would need to be deleted to bypass the launcher.

Edited by mojical

Share this post


Link to post
Share on other sites
1 hour ago, mojical said:

select Proton versions in the game's properties rather than altering global settings

This is actually what I did on my Steam Deck - rather than global settings, as I have some games that need specific versions of Proton to run well on the handheld.

Share this post


Link to post
Share on other sites
22 hours ago, NotZombieBiscuit said:

What if I use mac tho

As shitpost as this is... Crossover is your best bet for M1 and M2 Macs irony enough.

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, El-Neko said:

As shitpost as this is... Crossover is your best bet for M1 and M2 Macs irony enough.

Can you explain this to me in windows speak.

Share this post


Link to post
Share on other sites
3 hours ago, NotZombieBiscuit said:

Can you explain this to me in windows speak.

https://www.codeweavers.com/compatibility/

Basically like Proton but closed source and paid for with supposedly great app compatibility. Never used it so no comment on it exactly, but Proton has worked wonders for me on other games where they're not listed as compatible with Linux on the steam deck.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Sergsininia said:

https://www.codeweavers.com/compatibility/

Basically like Proton but closed source and paid for with supposedly great app compatibility. Never used it so no comment on it exactly, but Proton has worked wonders for me on other games where they're not listed as compatible with Linux on the steam deck.

Okay now explain this to me in TempleOS speak.

  • Like 1

Share this post


Link to post
Share on other sites

Thank you for the Launch Command. Seems to work very well so far.

 

Arch Linux

AMD Ryzen 5800X3D

Nvidia RTX 3080
GE-Proton7-49

 

Quick video: https://www.youtube.com/watch?v=koCkQwSsUZI

 

*Yes im bad at shooting*

 

 

  • Like 1

Share this post


Link to post
Share on other sites
19 hours ago, NotZombieBiscuit said:

Can you explain this to me in windows speak.

No, you only get one from me.

  • Like 1

Share this post


Link to post
Share on other sites
On 2/18/2023 at 1:20 AM, NotZombieBiscuit said:

Okay now explain this to me in TempleOS speak.

Nah

  • Like 1

Share this post


Link to post
Share on other sites
On 3/7/2023 at 10:50 PM, Ketog said:

1068635818345889923.webp?size=128&quality=lossless great guide!

Glad you like it! I have made a few updates to it for more advanced users looking to tinker a bit. Upgrading to Wine/Proton 8 fixes mail, and I've added a launch command that automatically copies configs so they don't get overwritten by APBLauncher.

Share this post


Link to post
Share on other sites

So I've taken the time to get it running on the steam deck, and suffice to say, for the hardware, it runs more than superb.

I've had to change the specific command to be

~/.steam/steam/steamapps/common/Proton\ 7.0/Proton waitforexitandrun '/home/deck/.local/share/Steam/steam apps/common/APB Reloaded/Launcher/APBLauncher.exe' && ~/.steam/steam/steamapps/common/Proton\ 7.0/Proton waitforexitandrun '/home/deck/.local/share/Steam/steamapps/common/APB Reloaded/Binaries/APB.exe' -nosteam # %command% 

Using GE-Proton 49 I've had no issues in game.

Control scheme is whack, so do yourself a favor and just dock it with a keyboard and mouse.

Command above will use Proton to run the launcher (for updates of course) and then start should close the launcher, whilst using Proton to launch the game executable.

 

Running without steam does require a manual login and depending on your password complexity, you may have trouble.

Share this post


Link to post
Share on other sites

This is very interesting. I'm running with an Intel Arc A770 LE and in Windows 11 APB runs very poor, one big stutter mess. Its almost impossible at times to kill anyone and thats with the current latest Arc drivers.

 

I've just installed Ubuntu 22.04 LTS and compiled a 6.2 Linux Kernel (native Intel Arc support), will see how APB runs.

 

EDIT

 

Just played a FC round and it runs much better than I expected and better than Windows!

 

I am using the following for the APB launcher, Ubuntu 22.04 LTS, Steam/Proton.

 

'/home/USERNAME/.steam/steam/steamapps/common/Proton 7.0'/proton waitforexitandrun '/home/USERNAME/.steam/steam/steamapps/common/APB Reloaded/Binaries/APB.exe' -nosteam # %command%

 

 

Edited by Rade
  • Like 2

Share this post


Link to post
Share on other sites
On 3/13/2023 at 12:12 PM, Rade said:

This is very interesting. I'm running with an Intel Arc A770 LE and in Windows 11 APB runs very poor, one big stutter mess. Its almost impossible at times to kill anyone and thats with the current latest Arc drivers.

 

I've just installed Ubuntu 22.04 LTS and compiled a 6.2 Linux Kernel (native Intel Arc support), will see how APB runs.

 

EDIT

 

Just played a FC round and it runs much better than I expected and better than Windows!

 

I am using the following for the APB launcher, Ubuntu 22.04 LTS, Steam/Proton.

 

'/home/USERNAME/.steam/steam/steamapps/common/Proton 7.0'/proton waitforexitandrun '/home/USERNAME/.steam/steam/steamapps/common/APB Reloaded/Binaries/APB.exe' -nosteam # %command%

 

 

Good to hear that even Arc is running good through Linux. Maybe time for my desktop to migrate off of 10 to Linux permanently. Native AMD graphics would be a good push too.

Share this post


Link to post
Share on other sites
On 3/9/2023 at 10:16 PM, Sergsininia said:

I've had to change the specific command to be


~/.steam/steam/steamapps/common/Proton\ 7.0/Proton waitforexitandrun '/home/deck/.local/share/Steam/steam apps/common/APB Reloaded/Launcher/APBLauncher.exe' && ~/.steam/steam/steamapps/common/Proton\ 7.0/Proton waitforexitandrun '/home/deck/.local/share/Steam/steamapps/common/APB Reloaded/Binaries/APB.exe' -nosteam # %command% 

Using GE-Proton 49 I've had no issues in game.

I'll have to do more testing because it shouldn't be necessary to manually specify Proton paths, let alone home folder paths like /home/deck.  When you use the command from my post, with or without configs, does nothing happen or do you get an error screen?

 

Also, does "no issues in game" mean it's possible to have working in-game mail in Proton-GE? Do system mails lose their title and content when you select them?

On 3/13/2023 at 6:12 PM, Rade said:

This is very interesting. I'm running with an Intel Arc A770 LE and in Windows 11 APB runs very poor, one big stutter mess. Its almost impossible at times to kill anyone and thats with the current latest Arc drivers.

 

I've just installed Ubuntu 22.04 LTS and compiled a 6.2 Linux Kernel (native Intel Arc support), will see how APB runs.

I thought Intel implemented DXVK in their D3D9 performance upgrade for Windows, which is the same library used by Proton and Wine to translate DirectX9 to Vulkan. Given your experience with APB it's likely they did so on a per game basis and just forgot about poor old APB...

 

Nice that you are seeing improved performance on Linux, after all modern GPUs are designed with Vulkan or DX12 in mind and not an old API like DX9. I was looking forward to someone testing this on Arc as I had already heard of its very poor native DirectX9 performance on Windows. 

 

On another note I'm surprised you didn't run into issues due to old Mesa versions shipped by Ubuntu, their Arc support is not that great. I think it would make sense for you to either switch to a distribution that comes with gaming focused tweaks (and newer Mesa) out of the box such as PikaOS, or if you don't want to wipe your current install, upgrade your Mesa as shown in this guide.

Share this post


Link to post
Share on other sites

If you want to limit FPS use the DXVK_FRAME_RATE= setting in your run options. 

Quote

DXVK_FRAME_RATE=120 '/home/USERNAME/.steam/steam/steamapps/common/Proton 7.0'/proton waitforexitandrun '/home/USERNAME/.steam/steam/steamapps/common/APB Reloaded/Binaries/APB.exe' -nosteam # %command%

And if you really like messing about, create a ram disk for the AssetCache folder before you play the game. The example below links the AssetCache folder to RAM, essentially your AssetCache folder is a RAM drive and files are being written directly to your RAM, it has a size limit of 8GB, and will delete upon a system reboot or if you unmount it.

 

(Please don't blindly copy and paste this - educational only) - root required

Quote

mount -t tmpfs -o size=8G myramdisk /home/USERNAME/.steam/steam/steamapps/common/APB\ Reloaded/APBGame/AssetCache

Some people like to test its working by using the DD command (measure read / write speed etc) but that could be a disaster waiting to happen. I like to use a very simple technique, copy a 2GB video mp4 file to the AssetCache folder and watch your memory usage go down with whatever GUI system monitor your distro has.

Edited by Rade
  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...