Steam Deck Emulation Done Right

EP 12: Tuesday, Sep 19, 2023
Episode Banner


Alan Pope 0:00
Do I need to consolidate some services? And I might need your

Martin Wimpress 0:07
help? Are these financial services or legal services

Mark Johnson 0:11
into one affordable monthly payment by any chance?

Alan Pope 0:15
One affordable, large monthly payment? No, I have realised that I’m spending a little bit too much on internet services, as in VPS is on staff. And I haven’t been choosy enough with the pricing. So I went and found somewhere that was a bit cheaper that could provide me with Internet services. But that means I’m gonna have a new service somewhere. And I need to migrate some existing stuff in there. And I can’t quite decide how to do this. And I might need a bit of your help to convince me Okay,

Martin Wimpress 0:48
okay, so you’re actually not talking about where, but how you want to run the services? Is that the gist of this?

Alan Pope 0:56
Yes, I’ll outline what those services are. Right. Okay. So my own personal website is on a bit folk VPS that I’ve had for like a decade or more, it’s at No 432 bit, I can’t really upgrade it anymore. It’s running out of space constantly. I need some I need to do something. Yes, I could pay for a new VPS from bit folk. And I love bit folk, and I want to support him. But I can’t justify that. Because I also have a server at Linode. Running what I call Popey spades, it’s open spades and online game. It’s running a couple of servers, but it’s the tiniest of tiny loads. Those aren’t the problem. The big problem is Ubuntu dot social, which is a chunky box at Linode. And Linode, is relatively expensive. And I’ve shopped around, and I found something cheaper. And it’s a dedicated box at Hetzner, Germany. Now, brief sidebar, signing up for Hetzner was a challenge in and of itself. You go to their website, and there’s loads and loads of options for all different sizes of machines, right? And the machines are either in Finland or Germany or somewhere else. I don’t really care. It’s the internet, it’s all the same. And I clicked a button and was like by that, please. And it said, Okay, you need to sign up. So I sign up. It says, Okay, you need to put in a payment method. So I put in my credit card details. And as soon as I did that, it said we’ve detected some kind of bizarre behaviour. And we’ve deleted your account. Wow. Oh, yes. So as soon as I put in my credit card details, I was persona non grata. And I thought, well, that’s not a good start. It was all resolved by shouting at them on Twitter. And they deemed me and I went through their customer support and told them, I am a genuine human being who wishes to purchase services from you. Even after this, I still want to purchase services from you. Sidebar, because you’re quite cheap. So I have a server, and it’s a chunky box. It’s cheaper than everything. And and if I consolidate all these things together, now, that’s the end of the sidebar. I’ve got a box.

Martin Wimpress 3:08
Okay, so you say you’ve got a box? I think you said you were got you’d got like two VPS is and a chunky box. So were any of those bare metal? And is this new thing? A big VPS? Or is it actual server?

Alan Pope 3:23
It’s an actual server? Uh huh. The VPS is two of them. The bid for VPS is a Zen domain, I think is the implementation, but it doesn’t really matter. It’s just a small, I’ve got a small part of a small box. And the Linode puppy spades is like the smallest shared machine you can get. It’s tiny. It’s like a giga RAM or something. It’s super tiny. Right? Those aren’t the real problems. The big one is I need to move the whole Mastodon thing now. I have moved Mastodon in the past, you may remember, it used to run on a server in my office. And I use nginx on the outside world to proxy into and tunnel into and it worked fine for small number of users, right? Were small numbers one me and now there are more users and I want to put it on Sunday but beefy. Now, I could migrate the same way that I did last time. And that is hand wavy, arcing all the files across. Set up the config instal all the stuff, shut it down at the old place, backup everything make do one last Our Sync, backup the database, restore the database, make sure the conflict works, yada yada yada. You know, that’s it’s not hard to move services from one place to another. It’s manual, and I’ve got documentation and I’ve done it before and it isn’t like super hard, but it’s time consuming. But what I would also like to put on that box is my personal website, and Popey spades. And all of that is currently on the inverted commas bare metal. There’s no containerization of any kind. Now, I don’t like Docker. We know this You’re aware, you are aware, dear listener, that I’m not a fan of the Dockers. And so I am not quite sure what to do. Should I do that? Should I create these containers? And put everything in its own container?

Mark Johnson 5:14
is what I would do. But it depends on why you don’t like it.

Martin Wimpress 5:18
And other container runtimes are available. Yeah.

Mark Johnson 5:21
Is it that you don’t like containers? Or is it specifically something about Docker that you don’t like doing stuff with it, and you’d be happy building a container in a similar way. But running on something else?

Alan Pope 5:32
I don’t know is that the mental model of Docker? Docker is a bit weird for me, because it’s kind of inside a thing that’s a bit like a VM. But it’s not a full VM. And I’ve had problems with it in the past where I couldn’t, I couldn’t quite grok. What was inside and what was outside?

Mark Johnson 5:49
Yeah, I certainly had that problem at first. Yes. Right.

Alan Pope 5:52
So there’s a bit of a learning curve there. And part of me thinks Alan just man up, it’s 2023.

Mark Johnson 5:59
I mean, he doesn’t get around a lot of the problem of having to migrate the data, because the data that you’d be asking about is the stuff that doesn’t live inside the container. So you still need somewhere, sort of permanent for the data to live as well, which then gets mounted on the container. So even if you have the software nicely packaged and easy to deploy, you still have to think about where is all of the stuff going to live that it uses.

Alan Pope 6:27
So that’s interesting, I hadn’t thought that I thought it would all be inside this box inside a box somewhere in Germany. But if that’s the case, then I don’t really see the advantage, because I’m already pretty okay with administering Mastodon, and Postgres and all the other bits and bobs and Ruby and everything. The thing is that they’re not containerized yet. And so, you know, I will have a web server running my personal website, which is just a static website, it’s only Hugo. But then there’s this Mastodon thing on the same box. But then there’s also open space, which actually is running as snaps right now, I built a snap of open space. So those are containerized. Games. Yeah.

Mark Johnson 7:09
So the advantage that you get there, if you move them all to containers is you don’t risk them accidentally stomping all over each other when you’re upgrading things or installing things. Like if you’ve got the Macedon stuff all in its own container, you’ve got another container, which is just a web server, and then you’ve got something possibly snaps possibly another container of some sort with, with the open space stuff in and you don’t have to worry about them conflicting with each other.

Alan Pope 7:36
Yeah, well, that’s true. They already aren’t going too much, because my own website is all static HTML and CSS and images and stuff. And that’s, that’s not hard work. And there’s nothing active, and there’s no PHP or anything. And open spades, like I said, is inside a snap. And so everything that has to do with it is inside a confined directory. Yeah. I’m finding it really hard to justify the effort. But I know everyone is shouting at me, you should do it. And I can hear it over the internet, people telling me I should use containers. It’s the right practice to do. But yeah, I’m finding it really hard to justify it.

Martin Wimpress 8:15
I have a sort of kind of middle ground for you. So first of all, I’m going to say anyone that’s listening to this, and they’re about to send us feedback and the words Kubernetes are in that feedback. Don’t bother Alan isn’t going there. Right. This is this is not the direction of travel, we are headed in

Alan Pope 8:34
so I’m not I’m not spinning up 20 boxes for Kubernetes, no hyperscale. But

Martin Wimpress 8:40
what you might like is if you use Proxmox, which is the operating system that runs on the metal, and it has got a web front end, which enables you to create visualise, and you can deploy in the usual way containers. I’m going to say Docker containers, but you know, OCI containers using Docker or pod man or whatever, and also virtual machines. So you could use something like that, because I think that would help overcome this sort of inception visualisation? Sort of block that you have with what is this thing? And where is it if you can actually see through like, you know, a management interface, here are all of my containers that are running and this is what they are. And here are also the virtual machines. And I would also say that whilst Yes, containers are definitely the sort of de facto, it’s okay to use virtual machines. If you find that easier, and in some respects for something like Mastodon that may be advantageous because you could define the size and scope of the virtual machine instance more easily in order to constrain it so it doesn’t overwhelm other things that you’re running on your box.

Alan Pope 10:00
So that is a very fair point, I could rein it in a little bit with disk space and see, give it only a small number of CPUs, for example, yeah, because it is quite a beefy box is got like more CPUs than I need. And that’s actually something I should consider. I think what I need to do is make some notes and maybe put it in a blog post, and let people know what I’m thinking and then solicit the opinions of our listeners and anyone else who passes by and tells me I’m doing it wrong. And I’m I should do it differently.

Mark Johnson 10:35
I’m sure people will have opinions. This is the internet after all,

Alan Pope 10:38
how good Linux matters is part of the late night Linux family. If you enjoy the show, please consider supporting us and the rest of the late night Linux team using the PayPal or Patreon links at Linux For $5 a month on Patreon, you can enjoy an ad free feed of our show for $10 get access to all the late night Linux shows ad free, you can get in touch with us via email show at Linux, or chat with other listeners in our telegram group. All the details are at Linux

Mark Johnson 11:17
There’s a major Moodle release coming up next month. And at work I’ve been making some of my weightiest contributions so far to the upstream Moodle project. And when I mentioned this in our telegram channel, someone suggested that I talk a bit about what the process of contributing to Moodle looks like. So I thought I might have a bit of a chat about that and and give people some perspective on contributing to a large and established open source project

Alan Pope 11:46
is the first question What on earth is Moodle? Ah, now that is

Mark Johnson 11:49
a very good question. So Moodle, you will probably have encountered it if you’ve been to university or possibly a college in the past decade or so. It’s a virtual learning environment is the generic term VLE. It is, I think that provides webpages for teachers to put learning content on and run online activities with their students. The idea of it in its conception was it was built around this idea of social constructivism, which is where people learn together and teach each other. So it’s very focused to collaborative online activities. But it also works for dumping a load of PDFs on a web page and things like that.

Alan Pope 12:34
That’s been my experience of really is my my son would get told your work for the week is on the VLE. This was during the event, when via leads were coming into their own quite a bit. And it was just a dumping ground for PowerPoints and links and stuff like that. It’s got to be more than that, right?

Mark Johnson 12:53
Yeah, Moodle is a very powerful and varied and extensible platform. These days, it’s referred to more as an online learning platform rather than specifically as a VLE. It’s, it’s designed to hook into other things. And there’s a lot you can do with it. But that’s a whole other segment, I think, on on what you can do with Moodle. But it’s been around a long time, it’s over 20 years old. It was written in PHP four, originally, I think, which was before PHP had things like object oriented programming and the concepts we’re familiar with today. And it’s still mostly written in PHP with quite a lot of JavaScript, somewhere in the region of a million lines of code across those two languages. So it’s quite big. And it can be quite daunting to to start hacking away on. But the interesting thing is because it’s written in PHP, if you’re running it, you’ve also got all the source code. And if you want to make a change, you can just hack on a file and reload the page. And there it is. So what you find in the Moodle community quite a lot, is that quite a few people who were developers used to be teachers who used Moodle, and then wanted to make it better. And we’re able to do that quite easily.

Martin Wimpress 14:02
And for an established project of this size. So have you got any idea sort of what the active number of developers contributing to Moodle? Currently is?

Mark Johnson 14:13
All? That’s a good question. I know that in terms of the sort of rate of change, there’s somewhere around 40 issues are integrated each week, in terms of the actual number of developers actively involved. It’s not that easy to put a number on that, I don’t think because as well as the core project, you’ve also got a community of plugins around them, and people who are active on those, and people working in house on it. But there’s quite a few people working on it. Let’s put it that way. The conferences are always well attended by developers,

Alan Pope 14:46
and you’ve contributed to this before but there’s what you’re talking about today is a more significant contribution.

Mark Johnson 14:52
Yeah, so my first job where Moodle was about 15 years ago, and I did my first contribution which was a Online change to fix a CSS bug, although the bug was actually in PHP code, that’s another story. My main my first one line change then. But yes, these are much more significant. So there’s there’s an area of Moodle called the question bank, which is how it manages questions used for quizzes. It has some quite advanced features for that. But the UI was looking a bit dated. So why work recently has been around refreshing that and making it a bit more modern, and a bit more usable and accessible and things like that, you know, to have some of the features you expect, when you see a table on a page in an interface, you expect to be able to do things like resize the columns and move things around and filter the results and stuff like that. So I’ve made two fairly significant contributions in that regard.

Alan Pope 15:49
And so was this stuff that you decided it needed to be done, or someone else decided it needed to be done, and you went, Oh, grab that.

Mark Johnson 15:57
So actually, interestingly, this is a bit of a bit of a unique source for this contribution is actually come from a group of universities who got together and said, we’d like to make this area better. And so they clubbed together some money, and did some design work, and then basically hired my company to do the development work, because we’re a Moodle partner company. And we’ve got a lot of experience working with Moodle, with our clients. And if people need Moodle development done, we can do it. And in this case, they wanted us to do the development for them, but contribute it upstream, rather than giving it to them in house as it were,

Alan Pope 16:35
when you initially giving it to them. So they could iterate on the design or work on it with you, and then go upstream.

Mark Johnson 16:42
Yes. So yeah, so it’s been a sort of, I’ve been working with them throughout the process and getting early feedback. It’s been a, an agile, and agile development process for your buzzword bingo cards, which, you know, stuff like this is generally best done that way. Anyway, just because the way that you think someone’s going to work never ends up being the way it actually works in what you specify can always end up being wildly different from what you decide is going to work in the end. So it’s always good to work that way, if you can. So yeah, I wanted to talk a bit about once you’ve got your thing made, how do you actually get that into a project like Moodle. So Moodle has a bug tracker, which is Jira, or gyro, however you like to say it, which has been quite heavily configured, let’s say, for Moodles purposes, so works quite well for their workflow. And it’s been that way, since I’ve been involved, I don’t know if they ever had something different before. And as with most projects using Git for version control, I think I started just as they were transitioning to get they previously used CVS, which was fun. But fortunately, I didn’t, I never really had to learn that. So once you’ve got your bug, you set up your local development environment and fix the issue. So it’s a It’s Php. So you set up a LAMP stack locally, and whichever text editor or IDE you prefer, write your code. And there’s a coding style, which you follow, there’s tools for making sure you follow the coding style, as part of a development that you’re contributing upstream, you’re also expected to write and run automated tests. So there’s unit tests, which test the PHP code in isolation. But there’s also a tool more widely known as cucumber. But the PHP implementation is called Behat, which actually runs a web browser and executes functions within the web interface, and tests that it does what you’re expecting it to do. So you need to write tests like that, to prove that what you’re doing is doing what you’re saying it’s doing. So once you’ve got your code ready, and you’ve got all of this done, you then push it up to GitHub, and you link it to the issue on the tracker. So they don’t do pull requests via GitHub pull requests method, they do it separately. And when you push it up to GitHub, it will run using GitHub actions, it runs a bunch of these automated checks, runs all of the unit tests across all of Moodle, which makes sure that you don’t break other things, which is really important part of writing these automated tests, because you’re basically saying once you’ve contributed it, the community is maintaining this now. And part of your responsibility there is making sure that people know if something they’re going to do is going to break it. There’s also some checks on the tracker side to make sure that you’ve done everything there that you’re meant to do, like writing a test script that explains how this is going to be tested. And once that’s all good, and you’ve got the green light, you then submit it for peer review.

Martin Wimpress 19:42
So you said you don’t create pull requests. So I imagine you’ve forked the Moodle repository. Yes, from GitHub, to your own GitHub. org. And that brings over all of the CI CD workflows. and test infrastructure. So when you push your code to your fork, all of that test infrastructure runs, yes. And you link from your project that you have forked to the issue tracker. And that triggers the link, the awareness, the notification that you are working on something over here, and you intend for it at some point to be brought into the main project. Exactly. Okay.

Mark Johnson 20:30
And they also have some separate CI stuff, and their Behat test runner, which is all separate from GitHub, because that’s a massive thing running on Jenkins somewhere, which uses the tracker to say, these are the branches I need to test against. Okay, so peer review in the Moodle community can basically be done by anyone. And of course, when something can be done by anyone, that means it’s often done by no one. This is where it helps to work for a company which which employs other Moodle developers. But generally, you have to go out unless someone is actively looking for this to be fixed, you need to go out and find someone who’s going to peer review this for you. But it doesn’t have to be someone specific with specific credentials. It just has to be someone who knows the process and is willing to follow it for you. They do publish guidelines and a checklist of the sorts of things that you’re checking. And it’s you know, things like has the coding style be followed, which should be automatically checked, looking out for any security issues, looking out for any efficiency issues, making sure that the test script that you’ve written is sufficient and covers everything. And the automated tests cover everything, because it’s fine. Say, yo, I’ve written a test script. But there’s a difference between writing a test script and writing a test script that tests things well, and all of these sorts of things. And once they’ve done that, they can stick the ticked off checklist on the issue, and say, this is now ready for integration. And integration in Moodle is a second round of review, which is done by a member of Moodle HQ, which is the the affectionate name for Moodles main sponsor company. They are the ones who run all of this infrastructure, they own the Moodle trademark, and they employ the Moodle, core developers, who are the people who provide the integration review. So aside from this high level peer review, they’re there to really look into your code and say, Is this of sufficient quality to go into Moodle? And is it a good fit? Does this you know, following the architectural direction that we’re going in? Is this following the latest best practices that we’re adhering to? And is this something that we definitely want in Moodle core, as opposed to as a Moodle plugin?

Martin Wimpress 22:44
So those conversations don’t necessarily happen up front, then this, this is sort of a after you’ve done the work, is there some way you can discuss like ideas for changes you want to make so you don’t work on something? And go through the first two steps of contribution? And then get told? Actually, no, we’re not interested? Yes.

Mark Johnson 23:05
And it has been a bit of a bumpy road with some of the stuff I’ve been working on recently in that regard. But yes, there’s the Moodle forums, there is the issue tracker where you can discuss things up front before you start working on them. And there’s the Moodle matrix channel where you can discuss things with our developers,

Alan Pope 23:19
did anything get rejected, or you have to rework anything?

Mark Johnson 23:22
Yes, I’ve been doing quite a lot of rework on on one of them, because basically, it wasn’t following the there’s been a lot of work into the user experience, consistency and modernisation of Moodle. And some of the work I’ve done was not well aligned with the direction that was going in. So after some conversations, we agreed that I’d sort of date the the Moodle HQ, UX team gave me some designs, to adjust my work to follow better what they’re going to be doing in the future, so that we don’t end up with two completely different things in different parts of the system. So your work has landed now is in the process of landing, one of the big changes has landed, it’s in the process of landing. And the release is I think, just at the start of October. So we’re in code freeze now, which means everything’s been submitted to integration. And yet my second big change is going through the integration process as we record, which is on the fifth of September. I should just put that note in there. So depending on when you’re listening to this, it may already be out it’ll hopefully be out in Moodle 4.3.

Alan Pope 24:29
Nice. I guess the more important question is, Are your customers happy?

Mark Johnson 24:33
I think so. We can email it unless it let us know if they’re not.

Martin Wimpress 24:40
I purchased one of those refurbished steam decks from Valve. And after two weeks of ownership. I’m here to tell you if your retro gaming on the Steam deck, you’re doing it wrong. We’re here to tell you how to do it right.

Alan Pope 24:56
We are here to tell you are we

Martin Wimpress 25:00
Yeah, I’m totally throwing you under the bus with this one, Alan. So I finally capitulated I’m fully signed up host to the Linux matters podcast for it now to own a steam deck. That seems to be about 60% of our content. So I felt I should get one so I can join in the fun. So here we are with my first steam deck segment for the for the podcast.

Mark Johnson 25:24
Welcome to the cult. Yes, yes.

Martin Wimpress 25:27
So I will say if anyone’s wondering about refurbished steam decks, it’s just like a proper not refurbished one. Everything appears absolutely brand new. The one difference is is that all of the little boxes that it comes in all have the words refurbished, actually imprint properly made not stuck on with stickers. It’s all very professional.

Alan Pope 25:49
It did look just like a brand new device. Like yeah, so when you unpacked it was like, no different than mine.

Martin Wimpress 25:54
Yeah. Identical other than the addition of the word refurbished on all of the paper pull outs and all the rest of it. And when people cottoned on to the fact that I’d got a steam Deck, the first recommendation I got from of several people was you should instal em you deck because that’s how you do retro gaming on the Steam deck. And I was going to resist getting into retro gaming on the Steam deck, because I was going to keep it for PC gaming. But then, Alan, you went and found something and you totally ruined, ruined that for me.

Alan Pope 26:28
I apologise. I have not been a fan of emu deck ever. All due respect to the developers. It’s a bag of spanners. And I don’t like it and I don’t like the way it instals And I recently nuked my Steam deck, I wiped the OS completely, and start again. And when I started again, I thought, oh, I can probably play some retro stuff on here, here. What’s this? This is not a new deck, this is something else completely different. And so I found a thing called retro deck. And I installed that. And they mentioned it to Martin, and he won’t shut up about it now.

Martin Wimpress 27:06
Yes, so retro deck is what I’m here to tell you about. And it is fabulous. So there’s a few things I really like about retro deck. The first is it’s not a bag of spanners. It’s distributed as a flat pack, which you can find in flat hub. So everything is integrated in this one bundle. It is all of the things you need to run emulators, and one instal. And you’re done. And it’s all isolated together there. So that’s really tasty. I like that a lot. But then the actual architecture for how this works currently, and also where they’re going. I really like the first thing I like is it’s really easy to use, unlike some of the sort of emulation framework platforms which expose the retro arch user interface, which I am not a fan of it overwhelms me, I don’t understand what all the options are. And also, I don’t really want to know what all the options are, I just want to play some games. And retro deck does that. It just shows you the games you can play and hides all of that complicated stuff away underneath. So in terms of how it presents, it’s kind of like a Netflix like user interface. Which gets better when you download metadata. And I’ll talk about that in a little bit. But it’s very easy to use, I haven’t needed to dive into the underpinnings of retro arch and all the rest of it all of the stuff that I’ve needed to change has been exposed through its own interface.

Mark Johnson 28:54
I have played with me deck. And I agree with your sentiments. But one of the things that I do like about it is that includes a tool, which finds all of the stuff you’ve gotten set up with me deck and adds it into your steam launcher interface. And at that point, you just go into steam and you say launch this and it’s just like you’re playing a game through Steam, you don’t feel like you’re going into a new deck to play it. Does retro deck do the same sort of thing? Or is it all through its own interface?

Martin Wimpress 29:23
I don’t think it does. But I don’t know, for sure, because I haven’t looked for that feature.

Alan Pope 29:28
I don’t think it does. And I don’t want it to do that. And

Martin Wimpress 29:31
I agree with that. I

Alan Pope 29:32
don’t want my Steam cluttered up with a whole bunch of spanners. I want the one thing to launch it and then I’ve got a view on all of the emulators and all the games that I want to play. And it was the whole integrating all of these little spanners in steam UI that really put me off a new deck. And that’s the thing I love about retro deck, you launch one thing and you’re now in all the emulators and you could just go into each one

Mark Johnson 30:00
Is that launcher launched through the steam interface?

Alan Pope 30:03
Yeah, it’s add one item, and you only have one thing to add to steam and you’re done.

Martin Wimpress 30:08
Yeah. So there is one game in steam called retro deck. And then it’s a beautiful launcher. And it really is very beautiful. So some other things that I liked about it is, this was an interesting one, when you push the two buttons to quit a game, for whatever reason, when you start that game, at some point in the future, it automatically creates an autosave points so that when you start that game next time, you’re immediately bang back in the game exactly where you left it, which took me by surprise a couple of times that I realised it was doing. I liked that, because when I just do pick up and play, this is grateful, right, I’m going to put this down, I may come back to in a couple of days time, but I can pick up power and carry on from where we were. And then it also has retro achievements, which I’ve never dabbled with before. But I can totally see that I could become a retro Achievement Hunter. As a result of how nicely integrated that is into retro deck, including, like notification toasts appearing over the game as you hit certain achievements.

Mark Johnson 31:16
So that hooks into various retro games and tracks when you do certain things in them. Yeah, huh. That’s quite neat.

Martin Wimpress 31:23
Yeah, is it’s pretty cool. Not every game is supported, because obviously, there’s 10s of 1000s of retro games that you can lob on these things. But all the big ones tend to have some kind of achievements. And it’s quite a lot of fun actually doing that.

Alan Pope 31:37
The user interface that you’ve mentioned, is very beautiful. It’s based on Emulation Station, or a fork of Emulation Station, because I think that died off at some point. Yeah, which is the same UI that I’ve got on my PI Kade. My tabletop pi arcade thing. Emulation Station has been around a while. But this with themes and stuff, it’s taking it to the next level, it’s so nice to use.

Martin Wimpress 31:58
Yeah, so it uses Emulation Station desktop edition, and the retro deck team are actually contributing retro deck specific features and changes to that project that is only exposed when it’s running on the retro deck. So they’re sort of working in tandem. So it’s all very seamlessly integrated. And this is one of the things I like about like, the way the project is being led and the direction it’s headed in. Because it has got some rough edges, they signpost, those rough edges and make it very clear. This is the way it is right now. For example, there’s some zenity popups, and things like this at the moment, they fully intend to integrate into either their own UI or into the Emulation Station desktop. But it’s all been very thoughtfully put together. And the project itself is still betta. So whilst I’ve had no issues running this, I’m by no means a hardcore retro gamer. I don’t know what is shouldn’t be working on what platforms aren’t enabled, for example, I know that their intention is to enable everything that retro arch supports. I don’t think everything is right now. But I like the way they’re sort of signposting where they’re headed with this in the future. And here’s one of the things I absolutely love about this is because it’s a flat pack, you can run it on desktop, Linux, too. So actually, I’ve been mostly running it on my desktops, because I can, and I’ve got sync things sat in the background, automatically syncing my game library, between all of my machines that have retro deck installed, and all of my configuration, and save states and meta data and all of that stuff is consistent across all of these devices, including the steam deck because I did a little hack. And I got zero tear working on the Steam deck. So all of this synchronisation works between the steam deck and my desktop machine so I can manage my library in one place, one virtual place and all of these machines pick it up.

Alan Pope 34:10
You mentioned briefly that artwork. There’s a whole bunch of stuff to do with scraping as well. There is you showed me? Yeah,

Martin Wimpress 34:18
yeah, so there’s two providers that provide artwork and meta data. One of them is called Screen Scraper. It’s a French website. And there’s the other one which is the TV database. I’d never used this French one, I’ve signed up and I’m using that it’s quite slow, but it gives you a really great results because it gives you videos, and all of the cover art and all of the history behind all of the games so it very much is like Netflix when you go to a game. It has a rolling video. The theme that I’m using has like arcade cabinets that match the originals or TV sets that era accurate for the games consoles, and it’s just a very beautiful experience and in invites you to want to play these games because each time you switch to the next one, it’s colourful, and sounds great, looks amazing. And you just want to play. So, there it is. It’s retro deck, it’s retro We’ll have links to all of this in the show notes, including my instructions on how to instal zero tear on the Steam deck, which is also a nice generic way to have persistent software installations from the arch repos on a steam deck that survive steam OS updates.

Show Notes

In this episode:

You can send your feedback via or the Contact Form. If you’d like to hang out with other listeners and share your feedback with the community you can join:

If you enjoy the show, please consider supporting us using Patreon or PayPal. For $5 a month on Patreon, you can enjoy an ad-free feed of Linux Matters, or for $10, get access to all the Late Night Linux family of podcasts ad-free.


Alan Pope
Mark Johnson
Martin Wimpress