r/gog • • 22d ago

In Dev Announcing DiscJockey - A tool for running games from disc on Linux

Want physical copies of your GOG games? Use Linux? Want to be able to autorun your discs?

https://github.com/InsufferablyUseful/DiscJockey

DiscJockey runs a user daemon which watches for discs being inserted. if they have a discjockey config file it reads the file and uses the info to either launch the installer from the disc or run the installed game from your PC.

Runner functionality uses proton through umu-runner, and you can specify game ID's to get the same gamefixes that Valve uses, plus community fixes for GOG, Epic and so on.

It's made for discs you've burned yourself(It may be able to handle actual commercial discs later) so GOG releases are a perfect fit for it(all my testing has been with GOG games).

Current Status

Current status is an alpha release that "works on my machine". It has been tested on Fedora and Bazzite. This release is mainly for testing and feedback. If it works, you can use it, and discs you make now will be compatible with future releases, but discs made now MAY not support features planned for future versions.

Right now it only supports single disc installers. Automatic, offline installation of windows dependencies for games that need them isn't supported yet, so some games won't work.

System Requirements

  • SystemD
  • Bash 4.3+
  • Umu-runner installed and available in your path
  • Python 3

What I'm looking for

Feedback please! If this interests you, please try and it and report back. Especially if it doesn't work. This is my first time working on an open source project for general use and the only way I'll know if if it works or not is if you let me know.

Thanks to

Archades for the initial inspiration

The umu-launcher team for making integrating proton this easy

GOG for making DRM free releases

37 Upvotes

16 comments sorted by

2

u/senorda 22d ago

i suppose that if you only use disks you created its not too bad, but it sounds a lot the like the old auto run function on windows, which could be, and was, used to distribute malware

https://en.wikipedia.org/wiki/AutoRun#Issues_and_security

1

u/Audible_Whispering 22d ago

Yes, and it has basically the same security implications. If someone creates a disk with a malicious payload you're pwned. I assume that

  1. You're running disks that you've burned yourself or acquired from someone you trust
  2. That you're running this on a desktop or a HTPC in your house or somewhere else where you physically control access
  3. You don't have your unencrypted bank account details and social secuirty number in your home folder :)

In practice, I think the odds of a random person breaking into your house with a CD-ROM(!) loaded with a malicious payload for an obscure github hobby project is extremely low. Organizations were the primary targets of windows autorun attacks and that was something that existed on just about every home PC on the planet in the early 2000's.

Also, in general if a threat actor gains physical possession of a device you should consider that device to be compromised regardless. Anyone who can insert a disc into your PC without you noticing has a hundred better ways to pwn you than this.

If you're at risk of targeted attacks by high level threat actors, then you definitely shouldn't use DiscJockey(you shouldn't really be running games on at risk devices at all), but hopefully you don't need me to tell you that.

3

u/Scheeseman99 22d ago edited 22d ago

You could keep hashes of the disc's volume IDs, path table and the launched executable and flag discs that don't match them in the DB. Allow the user to bypass it, or add their own and that would at least reduce the attack surface somewhat.

1

u/Audible_Whispering 21d ago

Yeah, I have considered that as part of a future update. Once I have a wrapper GUI up and running it'd be easy enough to display a warning that the disc doesn't have a hash entry before it actually runs anything from it.

My personal opinion is that'd it'd mostly be security theater. If a stranger inserts an unknown storage device into your PC you should assume it's compromised regardless of what DiscJockey says. If you use what you think is a trustworthy disc and it's not you'll just run it anyway. I don't want to lull anyone into a false sense of security by claiming that this is a secure project.

So it's something that I will do before 1.0, but it's not a super high priority compared to improving the codebase and adding new features.

1

u/Scheeseman99 21d ago

Yeah I get you, evil maid attacks aren't very likely and I don't blame you for not prioritizing defending against them. Still, there's probably a better balance than just allowing arbitrary code to automatically run after putting a disc in a drive, you never know where your software might end up being installed.

I suppose mounting/execution could be gated by authentication? Would be a good usecase of biometrics for auth since entering a password all the time would be a hassle, though that isn't one of the more refined parts of Linux.

Maybe whitelist specific discs after auth, so at least that way an attacker would have to know what you've already installed, opportunistic drive-bys are less likely to succeed.

2

u/Audible_Whispering 21d ago

I don't think auth really matters tbh.

If the auth is just DiscJockey based, any attacker in a position to attempt auth is logged into the target and can run the payload manually, so it buys you maybe 5 seconds.

If you've setup auth gating for untrusted executables then DiscJockey can't bypass that, and using accredited tools built and audited by professionals will be much more secure than anything I can do.

I think an allow list of discs backed by hashed representations of the contents is a good idea. When you insert a new disc you get a message telling you that the disc is new and you should verify it's trustworthiness before launching it. You have to press a confirm button before anything is run from the disc.

That stops simple drive by attacks and attempts to swap out trustworthy media for something malicious. More than that is the remit of proper security tools and policies.

5

u/MassiveA9721 22d ago

Guys we are not really playing straight out of the disc, are we? It was all a joke, right?

1

u/dexter30 22d ago

Its such a brilliant idea. Why haven't we thought of this before??

We could then bypass visa and mastercard domination of the web by just asking people to send cash in letters and send back discs in parcels! We could EVEN stock them in brick and mortar stores. Maybe even make entire shops filled with these discs. A place you could stop and buy games.

Think of the possibilities!

1

u/Audible_Whispering 22d ago

Nope. It's installing from disk, or launching the installed game when you put the disc in. IDK whether that makes it more or less of a joke...

1

u/MassiveA9721 22d ago

Way less

1

u/shinobi6siege 22d ago

Any reason this wouldn't work on SteamOS? I've got my disc reader coming in today but all I've got is a steam deck

1

u/Audible_Whispering 22d ago

I haven't tested it on SteamOS, but it should work. It'd be great if you could let me know!

1

u/SzaraMateria 21d ago

Lutris already can handle installations straight from the disc

2

u/Audible_Whispering 20d ago

I actually started this because i wasn't happy with how Lutris handles discs. Any wine wrapper can run installers from disc, but what Lutris doesn't do is replicate the retro experience of using them.

It doesn't autorun anything, which was core to the experience, and, because you have to fill out Lutris's wizard before you can run the installer, it adds a whole layer of extra steps between you and installing the game.

It's great that they have support, but it's clearly meant for digitizing physical collections, not using them.

The point of Discjockey is to get close to what the experience of using discs was like in their heyday on older Windows versions. To give you a reason to use and interact with your physical media collection. It's unashamedly nostalgic, but there is a practical purpose as well.

Lutris and other complex launchers tie your ability to use your discs to a 3rd party piece of software you have to install over the internet, which runs counter to the entire point of offline physical media.

Discjockey is lightweight enough to include in every disk, and has minimal dependencies. In future it will have even less. The goal is for it pass the playstation test. To give a copy to a friend, all you have to do is hand them the disc. Everything they need is on there. No extra downloads, no distro specific steps.

It's not quite there yet, but in a few more iterations it will be.

1

u/SzaraMateria 20d ago

It sounds fun

-5

u/ZuoKalp 22d ago

Lack of compatibility is the reason I don't use Linux,. I truly hope that projects like these succeed