The How-To: The Ultimate Linux Fun Machine

On Friday Nov 11th, I got the urge of getting some older games to work on my Linux machine. Games like Diablo 2, Mass Effect 3, Age of Empires 2, Sid Meyer Alpha Centauri, and a lot of NES, SNES, MAME and GameBoy Roms. My idea is that I can turn my Linux desktop into a fun machine. Now that I am running Linux, getting both to work presents some challenges. After some research, I found that not only it is possible to turn Linux into a retro gaming fun box, but also getting there is super easy to do.

This simple tutorial is my experience on setting up my fun box. I shouldn't turn my dev machine into a fun machine. But I just couldn't help myself pushing this against the limit of my computer.

Setting Up ROM Emulators

I was a big fan of the Dragon Warrior/Dragon Quest NES and SNES games. Getting an NES/SNES emulators working on my computer is always a must. On Windows, this would be easy. And it was very easy on Linux as well. I was also a fan of the Street Fighter 2 and Warrior of Fate on MAME. The problem for me is that I cannot get MAME to work on Linux. Even though it was super easy to get the MAME roms, I wasn't able to play them. It was very frustrating.

On Friday 11/11, it was my latest try. After googling the best Arcade emulator. The application RetroArch came up. I decided to try. Once I got to the official home page, I found out that this application offers AppImage. I downloaded it and tried it out. Turned out this application is the perfect emulator shell there is. To get Retro Arch, please go to the official web site:

https://www.retroarch.com/?page=platforms

There is a section for download links for Linux. Choose the one called "Download (AppImage)". Or if you prefer, you can choose "Download (AppImage) [QT Version]". I just chose the non-QT version. Once the AppImage file is available, I have to set it to executable (in the file Proprties popup).

After opening the AppImage, RetroArch has two open options:

  • Open Core
  • Open Content

They are confusing names. The only to understand them is to try them. Apparently, "Open Core" means load the emulator engine that runs the ROM. For example SNes9X would be an emulator engine. At first, there is none available. And RetroArch provided options to download them one by one. And I downloaded all the ones I know of. There is no harm of having them. "Open Content" means opening the ROM file. Once the ROM file is loaded, you can choose an emulator engine to run the ROM. Since I downloaded all the emulator engines, I can just try them against the loaded ROM. Whatever that can play the ROM file would be the correct emulator for it.

RetroArch also works with pre-configured SNES joystick controller. I was able to plug the controller and it would work as expected. Using RetroArch and downloaded emulator engines, I was able to run all my NES, SNES, GameBoy SD, and MAME games. It was so awesome when I started Warriors of Fate on it. I really didn't thought there is such a simple solution. And there is. This is great.

There are, however, more complicated games than Arcade. They are more than 10 years old. They are primarily running on Windows 98/NT/7/10 with DirectX. What do I do?

Using Wine Playing Old Windows Games

Wine, that is the answer to my question. Wine is a brilliant emulator for Windows application. Even Photoshop can run on Linux fantastically using Wine. I didn't install it before because I wanted full immersion with Linux. There is no windows application that I care so much and I couldn't let go. This is why I didn't install it to run Windows applications.

I thought I didn't have anything I wouldn't let go. And I was wrong. There are a couple applications I wouldn't let go, like Diablo 2, Quake 3 Arena, Mass Effect 3, Fallout 3 and Fallout New Vegas. Age of Empires 2, Sid Meyer's Alpha Centauri, Call of Duty 1 and 2. and the original StarCraft. There are a couple more, which I would mention them later.

I installed Wine, then Q4Wine (a GUI shell on top of Wine), and DirectX. Diablo 2 was first I got it to work. The issue is that, Diablo 2 works pretty badly in full screen mode (it messed up with screen resolution). And worked really well with windowed mode.

The next one I got it working is Fallout 2. Again, it was working well in windowed mode. After Fallout 2, I decided it would be nice if I can get Quake 3 Arena working. This one needed some work, I had to install the NVIDIA library to run it. And it runs badly in windowed mode. I had to run it in full screen mode and it was awesome.

Seeing all these are working out really exceeded my expectation. I decided to try my luck again with more complicated games. Fallout 3 is the next I tried. It didn't work. The stack trace does not make any sense. It seems that game only works on Windows XP. I was never able to make that game running on Windows 10 or Intel HD graphic cards. Fuck, this game sucks. I guess I will just play it on Xbox 360. I have it with the disk.

Unable to play Fallout 3 is a huge disappointment. And I decided to try Fallout New Vegas. Guess what, that game worked out perfectly with Wine. Yep. Fallout New Vegas is a well designed game that was just works. Black Isle is a great game studio and their game products are just awesome. In my opinion, this really proves their superiority in game development.

After that, I tried Mass Effect 3 and it worked out well on windowed mode. BioWare is also a studio I liked, but they really fucked up Mass Effect Andromeda. Anyways, Mass Effect 2 and 3 are the best of the trilogy. I think I am going to get Mass Effect 2 as well. Anyways, Mass Effect 3 works but some times it will stagger. I guess my graphics card is just not good enough, or it is caused by the emulation or something. I won't try Mass Effect 2 because I have 2 versions of Mass Effect Legendary Edition sitting downstairs.

Call of Duty 1 and 2 are not working. I didn't want to try making them working.

Later, I added Age of Empires 1 and didn't work. It is too old. Age of Empires 2 worked as expected in windowed mode. I also tried Sid Meyer's Alpha Centauri and it works too. These are all the software I think I can't let go on Windows.

Open Source Red Alert Games

On Monday 11/14, I found something surprise. There are AppImage of Red Alert, Tyberian Dawn, and Dune 2000. These are skeleton game application, and I can download the game data for free. Then all three game can run on Linux. And all these are less than 100MB total.

I tested all three and they worked out really well. I am not a big fan of Red Alert. But I loved Tyberian Dawn and Dune 2000. Anyways, I will probably regretting getting all these fun stuff added to my Linux work PC. I should not mix fun and spare time work. They can distract me from the important work I am doing.

Summary

This has been fun. I installed a bunch of games in my Linux dev PC. I was trying to see what I can do to make a Linux computer a fun machine that fulfills all the nostalgia I needed. I missed these games. I used to spent so much time on them. And I am glad that when I have moved on for so many years, and still I can get them back into my life.

This tutorial focuses on how to use RetroArch for ROM emulation, and how to use Wine emulation to run old Windows games. I find some of the games I can play well with Linux, and some just fails to load. It is always a game of trials and errors. This just proves that even though I use a Linux machine. If I want to use it for fun, I can do it with some applications to help me get that. After all, all work and no play makes Jack a dull boy.

I just hope, installing all these won't distract me from the work I will do. These games, I played them when I was young and single. And now I have a lot more things going on in my life and I still can't let go of them. I guess this is one of the things that will define me for who I am. There are certain things that is long into my past, and I cannot let them go. I revisit them from time to time and I find peace in these feelings.

Your Comment


Required
Required
Required

All Related Comments

Loading, please wait...
{{cmntForm.errorMsg}}
{{cmnt.guestName}} commented on {{cmnt.createDate}}.

There is no comments to this post/article.