Accéder au contenu principal

Have You Played Atari Today? 🎵

This is a guest article by Laurent « Hell Pé » Pointecouteau, the Alfred Pennyworth of GNOME Games who relentlessly works in the shadows to help make Games what it is, when he’s not busy writing in French about video games or slacking on Twitter.

I used to be really excited at New Stable Release Blog Posts™ like this one, back in the day when you had to wait six months for getting new GNOME stable releases (and matching Ubuntu PPAs) in order to discover what was new in your favourite apps. But nowadays, these blog posts, while still a delight to read, are just a little less surprising than before, and we’ve got Flatpak to thank for that!

So, here’s a quick reminder: Games can be obtained by two ways. The old-school way, with the version provided by your distro; and soon, hopefully, your distro will upgrade to the brand-new 3.26 stable version that we’ve just released. And the Flatpak way, the one we actually recommend if your system is ready for it: it’ll give you the choice between the 3.26 version — packed with our hand-picked selection of emulation cores! — and the Unstable Nightly version, where you can test (at your own risk as usual) all of the good stuff Adrien and folks have been working on during all this time.

So, either you already had a taste of all the new stuff in Games 3.26 and just need a recap, or you’re only using the stable version and want to know what’s new in store: in both cases, this New Stable Release Blog Post™ is for you!

  • You can now just double-click your ROM files in Files (or any file manager), and it will automatically be launched in Games, just like your music or video files already behave. That’s because Game URIs can now be passed as command line arguments. Launching a game this way will make it appear permanently into your games library ; you can also add it manually using the new "Add game files" button.
  • You can also setup a custom gamepad configuration, if the default one does not suit you, using a new wizard in the Preferences page. Many thanks to Abhinav Singh, who did a wonderful job on this as its Google Summer of Code project, on which you can learn more on Singh’s personal blog here : https://theawless.github.io/GSoC-Final-Report/
  • We’ve brought up some visual tweaks to make Games better integrate with your desktop themes, alongside Flatpak improvements that already help make Games look better. You will probably notice them if you’re using a different GTK theme than the default Adwaita one.
  • For those of you using the Flatpak version of Games, you may now enjoy your Atari 2600, Game Boy Advance, WonderSwan and WonderSwan Color games with 3.26, fully integrated as usual! We’ve also begun to list the Atari Lynx and MS-DOS games you may have on your computer, but they cannot be launched yet.
  • And finally, a lot of code was rewritten and revamped to improve game detection (especially for PlayStation games), gamepad handling, the retro-gtk plugin infrastructure and more.

So that’s what in store for you with Games version 3.26! What’s next, you may ask?

  • More cores! No true ludothèque can be taken seriously without some Sega games, and we may be able to bring you state-of-the-art Mega Drive/Genesis and Mark III/Master System emulation very soon.
  • Since the first release of Games, we’re pulling our cover arts from TheGamesDB.net, which is a nice open database but not always very accurate. While looking for an alternate solution, we’ve discovered the very promising Screenscraper project, already used on the well-known Raspberry Pi-focused distributions, Recalbox and Retropie. So, we are considering migrating to Screenscraper for all our database needs at some point in the future, not without the help of the Grilo team of course (shoutout to our trusty friend Bastien Nocera 😉)
  • Some even bigger code refactoring is in order, with Adrien tirelessly working on porting retro-gtk from Vala to C. You’ll soon learn everything about it in a future blog post.
  • We’ve got a couple of high-priority bugs that we really want to squash out for the next release, especially the one that prevent Linux (including Steam) games from being launched from the Flatpak version of Games. Of course, any help on this would be very much appreciated!
  • And of course, we’ve got a lot of projects for Games: to get a good glimpse, go check out our ever-growing Roadmap.

So now, you know how it works: you can enjoy the latest release of Games by directly downloading and launching the flatpakref file provided on our GNOME Wiki page, or you can give the Unstable Nightly version (again, at your own risk) a try — or you can do both, since it’s all safely sandboxed by Flatpak of course.

Commentaires

  1. Why are you porting from Vala to C?

    How long is taking that process of conversion?

    RépondreSupprimer
    Réponses
    1. I'll detail all of that in the next article so I recommend to save your questions for that one. But to sum things up:
      - retro-gtk does too many low-level memory management and has to interface too much with C for Vala to be a good choice: too much of the code was there to expose the C parts in Vala,
      - it wouldn't be too long for an application, but porting a library exposing a VAPI is very tricky, an hence, long.

      Supprimer

Enregistrer un commentaire

Posts les plus consultés de ce blog

GTK+ Apps on Phones

As some of you may already know, I recently joined Purism to help developing GTK+ apps for the upcoming Librem 5 phone . Purism and GNOME share a lot of ideas and values, so the GNOME HIG and GNOME apps are what we will focus on primarily: we will do all we can to not fork nor to reinvent the wheel but to help allowing existing GTK+ applications to work on phones. How Fit are Existing GTK+ Apps? Phones are very different from laptops and even tablets: their screen is very small and their main input method is a single thumb on a touchscreen. Luckily, many GNOME applications are touch-friendly and are fit for small screens. Many applications present you a tree of information you can browse and I see two main layouts used by for GNOME applications to let you navigate it. A first kind of layout is found in applications like Documents, I'll call it stack UI : it uses all the available space to display the collection of information sources (in that case, documents), clicking a...

libhandy 0.0.10

libhandy 0.0.10 just got released, and it comes with a few new adaptive widgets for your GTK app. You can get this new version here . The View Switcher GNOME applications typically use a GtkStackSwitcher to switch between their views. This design works fine on a desktop, but not so well on really narrow devices like mobile phones, so Tobias Bernard designed a more modern and adaptive replacement — now available in libhandy as the HdyViewSwitcher . In many ways, the HdyViewSwitcher functions very similarly to a GtkStackSwitcher : you assign it a GtkStack containing your application's pages, and it will display a row of side-by-side, homogeneously-sized buttons, each representing a page. It differs in that it can display both the title and the icon of your pages, and that the layout of the buttons automatically adapts to a narrower version, depending on the available width. We have also added a view switcher bar, designed to be used at he bottom of the window: HdyView...

My Name is Handy, Lib Handy

Libhandy 0.0.7 just got released! I didn't blog about this mobile and adaptive oriented GTK widget library since the release of its 0.0.4 version three months ago , so let's catch up on what has been added since. List Rows A common pattern in GNOME applications is lists , which are typically implemented via GtkListBox . More specific patterns arose, where rows have a title at the start, an optional subtitle below it, actions at the end and an icon or some other widget like a radio button as a prefix. These rows can also be expanded to reveal nested rows or anything else that fits the need. So far every application using these patterns implemented the rows by hand for each and every row. It made using these a bit cumbersome and it led to inconsistencies in sizing, even inside a single application. To make these patterns easier to use, we implemented HdyActionRow , HdyComboRow and HdyExpanderRow . HdyActionRow The action row is a simple and flexible row, it lets...