Join us on our own very special Reddit: /r/Linuxers

How-to: upscale old games on Linux

By - | Views: 20,298

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
27 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
About the author -
author picture
Using the powers of Debian for great justice.
See more from me
32 comments
Page: «2/4»
  Go to:

Dunc 11 Apr
Quoting: Linas
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.
Oh, that's certainly true. I have a 19" one lying around, which is the one I've been thinking of using, and it's a workout just to move it. But where my current monitor is, I think I have the space. I dunno. When I say “seriously considering”, I mean every weekend it pops into my head, “Hey, I should try that to see how I get along with it...”.

They really do look good though, especially on lower resolutions. I have the one I've set up here running at 800x600 (it can go a bit higher), so the streams I'm watching are only in 480p (keeps the bandwidth down :) ), and it's only when there's small text on the screen that it's properly noticeable. Even then, it's not as... messy-looking as upscaling on an LCD.
dpanter 11 Apr
Quoting: WorMzyI'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?
Correct. I used Lutris in the article as it is a superb game manager/launcher and easily allows customizations like these. Other similar applications can of course be used, as well as custom .desktop files, shell scripts etc.

You can even add a non-Steam game in the Steam client and make this work, although it's a bit messy. If you desperately need to know how, let me know and I'll write it up.
Faalagorn 11 Apr
I think the same can be achieved with gamescope? This DXVK discussion led me to this idea, though I didn't manage to figure out how exactly achieve this on my Wayland (sway) display, but maybe I didn't try hard enough (sadly gamescope lacks documentation).
x_wing 11 Apr
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?

If all this sounds difficult to you, bare in mind that you can also use zoom effect of your DE. That's probably the easiest solution without perf penalties.
Liam Dawe 11 Apr
Quoting: WorMzyI'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?
Lutris is practically a well-known "brand name" type of thing at this point. More to the point, it's what the author uses to have the game setup and running. No different to articles like "do x on Ubuntu" or "do y on Fedora" - it's all about the name, and associations that come with it.
WorMzy 11 Apr
My point is that the article title makes it seem like this is a Lutris-specific thing, but the article is about a "game manager"-agnostic solution which just happens to be usable in Lutris.

If the author wants to include Lutris-specific instructions, that's their prerogative. I just think "How-to: upscale old games on Linux" works perfectly well as a title (although "on Linux" is redundant) and doesn't potentially put off some potential readers who don't think the article will be useful for them since they don't use Lutris.
MayeulC 11 Apr
Quoting: FaalagornI think the same can be achieved with gamescope? This DXVK discussion led me to this idea, though I didn't manage to figure out how exactly achieve this on my Wayland (sway) display, but maybe I didn't try hard enough (sadly gamescope lacks documentation).

It would be trivial to add a mechanism for a wayland compositor to upscale a given window. Maybe we should ask for a feature request?

I'm using xpra almost daily. My use-case is that I have a piece of software (a big EDA tool I won't name) that I have to access over the network with X forwarding. Fine for LAN, but a lot less so over long distances. Xpra allows me to tune the quality/responsivity balance to my needs, and handles disconnections quite well, whereas X11 would just close the client application. So much for "network transparency"... Xpra makes X forwarding closer to vnc or wayland, it's a bit like GNU screen for X.

As for CRTs... I definitely agree on there being something to their quality. It could be multiple things, like the non-square grid pattern (some recent phones have this), but what I really think makes a lot of difference is the ultra low persistence of the display. I'm considering buying a monitor with strobed backlight to imitate this (AKA blur reduction, or ULMB). High framerates help, to an extent (it reduces the ceiling on the persistence value, but not as much as CRTs or strobed backlights).
Linas 11 Apr
View PC info
  • Supporter Plus
Quoting: MayeulCI'm considering buying a monitor with strobed backlight to imitate this (AKA blur reduction, or ULMB).
Is this something like the flickery backlight dimming on some panels? Because that messes me up quite bad. Cannot look at it for more than a few seconds.
MayeulC 11 Apr
Quoting: Linas
Quoting: MayeulCI'm considering buying a monitor with strobed backlight to imitate this (AKA blur reduction, or ULMB).
Is this something like the flickery backlight dimming on some panels? Because that messes me up quite bad. Cannot look at it for more than a few seconds.

Yeah, that could be it, though it should be imperceptible, depending on the frequency. Some specific conditions can make this worse (freesync with huge spikes in framerate, special content). Do you see lights flicker at 60Hz? (Though the waveforms are different, 80Hz seems to be the point where flicker starts to disappear to our eyes.
It can also be unrelated, with some crappy pulse-width-modulation applied to the backlight to dim it.


Last edited by MayeulC on 11 April 2020 at 10:08 pm UTC
Linas 11 Apr
View PC info
  • Supporter Plus
Quoting: MayeulCDo you see lights flicker at 60Hz?
Don't really know what my threshold is, and like you mentioned it most likely depends on the implementation.

I don't think I have ever seen an actual strobing backlight, but some OLED TVs use black frame insertion for blur reduction. And I know some people like it. I personally cannot stand it, because the whole thing just feels flickery.
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just 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!

You need to Register and Login to comment, submit articles and more.


Or login with...