My journey into daily driving Linux is going rather well. Decided I’m gonna give myself a bit of a small challenge (or not, this might be easy).
I want to get a couple old games to work. I’ve had to do some tinkering or installed unofficial patches on these games probably since the Vista days. So I know they require some work to run on modern systems. But can’t find info on how to do it on Linux. I don’t want to do a «throw shit at the wall and see what sticks» and end up breaking something in my OS. I’m on Nobara KDE.
Installed in the EA App through Lutris:
- C&C Red Alert 2 and Tiberian sun (Black menus, game runs otherwise)
- Medal of Honor Allied Assault (Crash on startup)
Anyone wanna teach a Linux noob some tips and tricks to make this work? Or a way to install these .exe patch files and go the «windows» route? (Can this be done safely through Wine?)
I’ve played around with this. I find lutris is good for most games but sometimes you may need to do it yourself using Wine or Proton
I managed to get a game called Discworld Noir working - its almost impossible to get running in Windows itself but in wine it took relatively little effort.
The key for getting old windows 98 games running for example is to create a dedicated own Wine prefix (basically its own virtual environment) and install the needed windows packages into it. I’m using wine but you can also use the gaming focused and optimised Proton in a similar fashion.
For my method you need Wine and Winetricks. Winetricks gives you lots of easy to use tools to configure a wine prefix to your needs.
I followed this guide to create a win98 like environment: https://www.myabandonware.com/howto/wine (I appreciate the sire itself may be objectional to some but the guide itself is OK). The author doesnt quite understand wine so take some of the comments with a pinch of salt.
I’ll summarise here.
WINEARCH=win32 WINEPREFIX=~/Gaming/Win98 winecfg
The command basically tells Wine to run winecfg in the prefix; as it doesnt exist wine first creates the prefix folders for you
Winecfg will open. You can set the scaling using the graphics tab if its too small (4k screen for example). Set the DPI to around 200. This useful scales everything including games in a window if you use tools like dxwnd (mentioned later).
Close wincfg and now use Winetricks in the prefix using the terminal;
WINEARCH=win32 WINEPREFIX=~/Gaming/Win98 winetricks
This command ensures its using your specific prefix. If you run winetricks from your menu it will run on the default arch on the system, which may be the lutris one or another random default one. Using the terminal and specifying the prefix prevents any errors and is easier.
Select “select the default wineprefix” in the menu. It will stick with prefix you specified in the terminal.
In winetricks its a good idea to first install the basic windows fonts so games and installers work properly. Select “install a font” and then select Core Fonts and Tahoma then click OK. Winetricks will download and install the fonts. It will throw up a dialogue box every so often warning you that wine will be unavailable - its very annoying but not an error, it a bizarre design decision with winetricks. Just click OK/continue each time it comes up. Once it finally finishes the fonts are installed and youre back in the winetricks menu.
Next we want to install some old windows DLLs and packages. The ones listed by the website work well for me for old games. You want:
Again you’ll get lots of warning messages and popups. Just click through and agree to any old windows licneses… Allow the packages to install to their default locations - they’re installing in prefix in a folder “drive_c” which is your fake windows drive.
For my game - Discworld Noir - I then had to install the game into the prefix. I used winecfg to mount my CD drive into the prefix and ran the installer off the CD. You can launch winecfg from winetricks and also Explorer - this let’s you change settings and also browse your virtual windows machine, including launching setup files from the CD.
You can also mount ISOs using linux and winecfg will pick them up as DCD drives, or use Winetricks to launch Windows installer files. You can also use the terminal to launch the setup files directly.
WINEARCH=win32 WINEPREFIX=~/Gaming/Win98 wine /path/to/setup.exe
The game will install into the prefix as long as you run the setup file in the prefix.
Next, because my game has issues with being fullscreen in Windows I downloaded a windows program called dxwnd - https://sourceforge.net/projects/dxwnd/ This is a great tool for older games even on windows - it runs the game in emulated full screen which can solve a lot of unintended errors. It also has lots of config options for games that can help with tinkering.
Unzip the file into your prefixes fake drive C folder. For my example i put it in: ~/Gaming/Win98/drive_c/dxwnd/
Then using winetricks or the terminal, I launch dxwnd. Dxwnd contains loads of template configs for old games in its “export” folder. For my game I import the “discworld noir” config and then right click OK the new entry and select “modify”. I then point dxwnd to the location of the game exe (in my case I also needed to download a modified exe file for the game made to work on more modern systems - it patches some other game errors).
I also then changes the game resolution to 800*600 because for my game that is the source of crashes which the default config gets wrong.
Then thats it - I launch the game from the dxwnd launched and a window 800*600 appears woth the game in it. The great thing about dxwnd is that window gets scaled according to the DPI I set so its nice and big on my 4k screen.
This is an example - your games may need different config options. Or you could get them running in Steam using proton - just add a “non steam game” find the exe in the lutris wine prefix (lutris/proton both create their own Wine prefixes) and add it.
There is also a tool called proton tricks that is very similar to winetricks and allows ypu to modify the proton prefixes into the same way as winetricks for my game.
Protondb.com provides lots of information on popular and modern games, including peoples tips on how to modify the prefix or settings to use on launch to get games working.
It can seem intimidating but essentially wine and proton are doing the same thing: they create a windows environment with config files in a folder in your linux home folder. Lutris automates a lot of this installing the DLLs etc it needs for a game. But when lutris fails to work you can tinker with the lutris prefix using winecfg and Winetricks, or create your own like I did.
I like to create my own prefix as my lutris set up is now quite complex and has many games installed. So of there is one game woth unique needs and tinkering it is useful to be able to create a dedicated prefix - then you dont break your other games if you break the prefix.
Hope that helps. Its honestly not as hard as it can seem and I have managed to get games working on linux that are night imposaible to get working on Windows now.
Also havent even touched on Dosbox/dosbox-x which can run loads of dos games and even Win98 itself. And of course you can also use KVM/Qemu or VirtualBox to make Windows virtual machines. Generally though so far ive managed to get my games working on Wine.
And of course on top of all that you have emulation tools like Emulation Station, or EmuDeck, and loads of emulators. I use ScummVM for my old adventure games, and fs-uae for old Amiga games. You can do a lot with linux!