We do often include affiliate links to earn us some pennies. See more here.

How-to: upscale old games on Linux

By -

Any tool that makes it easier to play older Windows games on Linux deserves some praise, and none more so than Lutris in my book. But...have you tried running a really old game and found that it is hilariously minuscule on your fancy modern HiDPI monitor? Resolutions which are commonplace today were not even dreamed of back in the 1990's. Take a game like Space Cadet, the classic pinball game many of us spent an embarrassing amount of time with.


3D Pinball for Windows – Space Cadet

This game was originally bundled with Microsoft Plus! 95, a sort of enhancement pack for Windows 95. We're talking 1995 here, 25 years ago at the time of writing. Colloquially known as Space Cadet pinball, the actual title is 3D Pinball for Windows – Space Cadet and is essentially a single pinball table rewrite of the original game Full Tilt!, using mostly the original art.

Note: I will not include any links nor instructions how to obtain a copy of this game.

Running "Space Cadet pinball" in Lutris is as simple as adding the game, using any recent Wine version. I personally recommend using a separate Wine prefix for each game. There are any number of instruction videos available on this topic if you're unsure how to do that, but know that all the default settings are fine as-is in Lutris.

The game runs without fuss and looks something like this on a modern Linux PC. You may have to zoom in a bit to see it! Screenshot resolution is 3440x1440. 

What is this, a game for ants? Although Lutris has some tricks up its sleeve, virtual desktop does not help, and running the game in fullscreen doesn't make it any larger. Xephyr is a possible solution but since it also requires extra packages and is a more complex solution, I have something else in store for you.

 

Enter xpra

Very simplified description: xpra is a clever little thing that allows you to run an application in an X server inside another X server. It can do this locally or remotely, which may interest some of you, but we're only interested in upscaling a tiny window this time.

We'll use the excellent script run_scaled by kaueraal and install it systemwide for your current user. This way you can use this script for any other game as well. 

These instructions are specific to Debian, if you're using a Debian based distro like Ubuntu or derivatives thereof, you should be good to go. Others may have to adapt the instructions to their distro of choice. 
 

Instructions

  • sudo apt install xpra xvfb

Clone the run_scaled script with git, alternatively download it manually from the link above. Copy it to your preferred binary executable directory, in this example we're using the current user directory ~/.local/bin/ but if you prefer something else, simply modify this path. Just make sure it is listed in your $PATH environment variable.

  • git clone https://github.com/kaueraal/run_scaled.git
  • cd run_scaled/
  • cp run_scaled ~/.local/bin/

Open Lutris, select the game and choose Configure, System options tab, scroll down to Command prefix and input the script along with desired scaling factor. In the example image I used a factor of 3, you can use fractional scaling to fine tune it for your resolution. You can use values smaller than 1 as well.

  • run_scaled --scale=3

With that done: this is how it looks with 3x scaling on the same monitor. 

Much better. There's going to be a few drawbacks, as nothing is perfect. It can possibly reduce performance, introduce blurring and probably more but it's an option that does work. If other solutions for your old favourite classic didn't work, perhaps this will.

Article taken from GamingOnLinux.com.
Tags: HOWTO, Wine
30 Likes
About the author -
author picture
Using the powers of Debian for great justice.
See more from me
The comments on this article are closed.
37 comments
Page: 1/4»
  Go to:

legluondunet Apr 11, 2020
very interesting, thanks.
Linas Apr 11, 2020
View PC info
  • Supporter Plus
This is cool. Didn't know about xpra before. Although this will definitely reduce performance, because the script starts a virtual X server via xvfb, which is non-accelerated, and neither is xephyr as far as I know. Not that it matters for pinball.

One thing that would be interesting to try is starting another real X server, and then using xpra to connect to that.
heidi.wenger Apr 11, 2020
Thanks but if only this could be easier... the scale of those instructions for a simple thing once again make me dizzy

Could it be possible to integrate somehow, someday to Lutris?

I suppose a snap or a flatpak solution wouldn't be of help here?
Linas Apr 11, 2020
View PC info
  • Supporter Plus
Quoting: heidi.wengerCould it be possible to integrate somehow, someday to Lutris?
Cannot imagine it ever will. While it is cool, it is basically a hack. Not something for general purpose use.
dpanter Apr 11, 2020
This also works with Dosbox by the way, in case you need more than the 3x scaling it provides. 320x200 with 3x scaling is 960x600, that's still kinda small on higher resolutions. In theory it'll work with anything. Wayland not tested... :)

Quoting: heidi.wengerThanks but if only this could be easier... the scale of those instructions for a simple thing once again make me dizzy

Could it be possible to integrate somehow, someday to Lutris?

I suppose a snap or a flatpak solution wouldn't be of help here?
Unless you also need help with installing a game in Lutris, the specific instructions for this are just 4 terminal commands, plus adding the command prefix in Lutris. If you don't have git installed, simply add git to the first install command, like so:
sudo apt install xpra xvfb git

You can always manually download the script. Replace the 'git clone' command then with extracting the downloaded archive, then follow the rest of the instructions. Arch users can find run_scaled-git in the AUR.

Xephyr is another possible solution that Lutris incorporates in the settings, but like I mentioned, it requires installing another package and also doesn't do scaling easily. You have to fiddle with xrandr scaling there. It's a more complex way to do pretty much the same thing.

Lutris could do with some improvements in this area. :)
Dunc Apr 11, 2020
Ah, you rich folks with your fancy big monitors. The other alternative is to stick with 1280x1024, like God intended. :P

(I'm seriously considering going back to a CRT. In fact, I'm actually using a small 14" one as a secondary monitor at the moment so I can have livestreams on in the background to take my mind off... er, Current Events. I'd forgotten, but the image quality on those things is amazing.)
jkaart Apr 11, 2020
Quoting: GuestI remember this game. Time flies.
Yes! I was about 15y old when I first time played that game in school computer which had Windows XP! :D
Year was 2001.
Linas Apr 11, 2020
View PC info
  • Supporter Plus
Quoting: DuncI'm seriously considering going back to a CRT.
No, thank you. I'm quite happy those are getting extinct. I remember having a 19" CRT monitor back in the day, which was huge. And I don't mean the screen estate, which was quite amazing back in the day, but it was the size of a goddamn minifridge.
robvv Apr 11, 2020
Quoting: Dunc(I'm seriously considering going back to a CRT. In fact, I'm actually using a small 14" one as a secondary monitor at the moment so I can have livestreams on in the background to take my mind off... er, Current Events. I'd forgotten, but the image quality on those things is amazing.)

I used to have an Iiyama 19" CRT with a fancy flat screen (it had two very feint bars across the image which was part of the flattening process!). The actual image was amazing compared to the flat-screen jobs I've had since!

In some ways I miss the CRT, but LED monitors are much more convenient for me these days.
WorMzy Apr 11, 2020
I'm not sure what this has to do with Lutris? All the tools involved appear to be standalone, and any game helper that allows you to set your own launch parameters could use them, no?

Anyway, it seems xpra can be built without gtk3, so this might be something to keep an eye on if I ever need it.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.