September 21, 2024

Intro To Running Wine Games

Some pointers about Wine on Linux.

Intro

This post is intended as a running (and repeatedly updated) post with tips for playing old Windows games on Linux using Wine.

I’m going to make posts specific to particular games, but I need a post with introductory help that I can refer back to.

Wine

The app you want is Bottles. The easiest way to install Bottles is probably on Flathub.

Bottles is a UI for Wine, and it’s Wine that actually runs your games. The hard part about Wine, though, is that it’s command line only.

What’s great about Bottles is it gets you out of the command line and lets you just click buttons to manage your Windows OS.

As someone who is good with Terminal, this is still a much better route to go and I’m happy to recommend this app to others.

Once you figure out the UI of Bottles it’s pretty straightforward and easy to manipulate the OS to accomidate your games.

BONUS: You can make backups of your Bottles. In my case, I have a son who really likes these games and it makes it easy for me to pass him pre-installed games.

Most of the posts on this blog are going to be instructions about how I got my games to work, and I’ll be using these terms below…

Glossary

Terms you need to know about as you setup your Windows OS in Bottles.

  • “Arch” - Around 2015, games switched from being 32-bit to 64-bit architecture, and your games have to be installed on a Bottle that has the right architecture. Likely you want 32-bit.

  • “Runner” - The Bottles app lets you choose different engines to run Windows. I exclusively use the Wine install that I manage myself on my computer, as opposed to the ones Bottles lets you install. For me sys-wine-9.0.

  • “DXVK” - A compatibility layer that turns Windows DirectX video driver API commands into Vulkan video driver API commands (and makes it run better). For me dxvk-1.10.

  • “Discrete Graphics” - This has to do with if your machine has a dedicated video card for games, and if so, you definitely want this on. You want to be using your beefy graphics card to play your games.

  • “Gamescope” - I just recently discovered this and it’s pretty handy. It forces your game to play in a window size of your choosing. I set mine to 1920x1080. Most of my games don’t need it, but some of them it really helps by a) scaling the game to my screen, and b) letting ALT-TAB work w/out freezing the game.

  • “Windows Version” - Sometimes a game will tell you that it won’t run on the version of Windows that you picked. I usually use Windows XP but sometimes I have to move it up to Windows 8 or something. Generally this setting rarely matters.

  • “Command Arguments” - This setting in Bottles is where you can pass arguments / parameters to a game when it’s launched. It would usually be something like -nointro or similar that the game would recognize.

  • “Feral Gamemode” - This is a settings package for Linux machines that sets it up for maximum gaming performance. You basically want this on and you’ll just leave it on.

Pro Tips & Troubleshooting

  • If you are looking for an old game that you don’t actually possess, you can probably find it on Archive.org. Many of these games are now freeware and the companies that created them no longer exist.

  • When using Bottles, some features I turn on or off depending on the game – such as Gamescope. I make a little note reminding me in the game title if that game needs it.

  • In order to install games on Bottles the files have to actually be on the Windows drive. The Bottle can’t see any files outside of itself, which is a security thing. That means you might have to mount an ISO file for a game install and manually copy the install files to your Bottle disk.

  • Some of the games have dependencies that they require, like d3dx9 (DirectX9). Bottles has a section where you can find and install these, but you might have difficulty discovering that you need them at all for your game. My posts here about games I’ve installed should help with that.

  • Sometimes you can get on the Wine or Proton sites, type in your game, and find a tip that tells you about some command argument or dependency you need to get your game working.

  • If Bottles won’t run your game or is behaving weird, just turn it off and turn it back on to see if it fixes your problem. You might also do a sudo apt update && sudo apt upgrade and reboot your machine.

  • If Bottles still won’t run your game – and you are freaking out thinking you’ll never get to play your games ever again – you can try a hard update on the app: flatpak update com.usebottles.bottles. I had to do this once when Diablo II refused to play.

  • Consider changing your computer resolution to 1080p (1920x1080) before you complain about tiny UIs in your games.

  • If your game (or installer) crashes immediately when you try to run it, you might need to check if it’s a 32-bit/64-bit game and you’re using the wrong architecture.

Black Screen

I’m making this issue a distinct category w/ it’s own header.

If you have a game that is giving you a black screen, but you can hear the music playing, it is probably something easily fixable.

I have had this problem w/ several games and all I had to do is grab the ddraw.dll from CNC-DDraw. You put that file in your game directory, and then in Bottles settings you go to Override DLLs and input that name: ddraw.dll.

Then blamo, your game will work.

DDraw is a video library that Windows uses, and FunkyFr3sh re-programmed it to make super old games work w/ modern computers. By putting that file in your game directory you override the default Windows one.

How To Install Wine

If you’re like me, and you want Bottles to use the version of Wine you have on your machine, you will need this.

Because some Linux systems come with old versions of Wine, here are some Terminal commands to get the latest:

// remove existing
$ sudo apt-get remove --purge wine* --autoremove

// tap repository
$ wget -nc https://dl.winehq.org/wine-builds/winehq.key
$ sudo gpg -o /etc/apt/trusted.gpg.d/winehq.key.gpg --dearmor winehq.key
$ sudo apt-add-repository "deb http://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -cs) main"

// update and install
$ sudo apt update
$ sudo apt install --install-recommends winehq-stable
$ sudo apt install winetricks

// check your version
$ wine --version

// how to switch from stable to development
$ sudo apt remove winehq-stable
$ sudo apt install winehq-devel