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?)

  • BananaTrifleViolin@lemmy.world
    link
    fedilink
    English
    arrow-up
    27
    ·
    edit-2
    2 days ago

    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.

    1. Create a wine prefix using the command below. The guide I linked creates a prefix into the default folder .wine, but I’d create something named like Win98. The .wine folder is too generic for making dedicated environments and may already exist. You can have as many prefixes as you want in different folders. Also the command below sets it as Win32 but this is redundant on the bleeding edge version of Wine; win64 will be fine if you’re on the latest version (lots of gaming distros like Nobara) use the bleeding edge, just change Win32 to Win64 if you get an error about wow64 :

    WINEARCH=win32 WINEPREFIX=~/Gaming/Win98 winecfg

    The command basically tells Wine to run winecfg in the prefix; as the prefix doesnt exist wine first creates the prefix folders for you then launches the generic winecfg tool.

    1. Winecfg will open. You can set the scaling for the prefix using the graphics tab if its too small (4k screen for example). Set the DPI to around 200 for 4k works well. This useful scales everything including games in a window if you use tools like dxwnd (mentioned later).

    2. 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 linux menu it will run on the default prefix for the system, which may be the lutris one or more likely another random default one. You can select a prefix inside winetricks but it can be annoying each time you launch it. Using the terminal to specify the prefix prevents any errors and is just easier imo.

    1. Select the option “select the default wineprefix” in the menu. It will stick with prefix you specified in the terminal.

    2. In winetricks its a good idea to first install the basic windows fonts so old 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. You may also get wow64 warning boxes if youre on a gaming distro/bleeding edge wine- also annoying but not an error.

    3. 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:

    • d3dx9_3
    • dotnet40
    • dotnet452
    • vb6run
    • vcrun6sp6

    You may need slightly different packages for your games.

    Again you’ll get lots of warning messages and popups. Just click through and agree to any old windows licenses. Allow the packages to install to their default locations - they’re installing into the prefix in a folder “drive_c” which is your fake windows drive.

    1. Once its done you have a functioning Windows prefix which is optimised as if it was 1998.

    2. 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 launch Explorer - this shows you the folders inside your prefix. Running both let’s you change settings and also browse your virtual windows machine, including launching setup files from the CD. Note winecfg doesnt auto update if things change in the host linux system (like yoy mount a new drive). Close and reopen winecfg to see changes - can be important if youre swapping CDs for an install. To be clear the system changes do auto apply to wine, you just can’t see them live update in winecfg.

    You can also mount ISOs using linux and winecfg will pick them up as CD drives, or also use Winetricks to launch Windows installer files directly. 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.

    1. 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 also patches some other game errors so is still needednin my win98 fake machine).

    I also then change the game resolution to 800*600 in dxwnd 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 launcher and a window 800*600 appears with the game in it. The great thing about dxwnd is that window gets scaled according to the DPI I set in winecfg 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 protontricks 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 (launch them from within lutris), or create your own like I did.

    I like to create my own prefix for probelmatic games as my lutris set up is now quite complex and has many games installed. So if there is one game with 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 nigh imposaible to get working on Windows now.

    Also I havent even touched on Dosbox/dosbox-x which can run loads of dos games and even run Win98 itself. And of course you can also use KVM/Qemu or VirtualBox to make Windows virtual machines as another route. Generally though so far ive managed to get my windows 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!