Games is available as a Flatpak, either as a stable version available through the gnome-apps Flatpak repository, or alternatively as a nightly version from the gnome-nightly-apps repository. The stable version is the recommended way of getting Games. Make sure that your distribution supports Flatpak in order to use these.
You should be able to install Games by simply opening the *.flatpakref file with Software. If this does not work, you can just run one of the following commands to install Games:
flatpak install --from https://git.gnome.org/browse/gnome-apps-nightly/plain/gnome-games.flatpakref?h=stable
flatpak install --from https://git.gnome.org/browse/gnome-games/plain/flatpak/gnome-games-nightly.flatpakref
Alternatively, your software distribution may offer you packages for Games. Here is a list of known supporting distros:
Debian unstable: install the gnome-games-app package
openSUSE Tumbleweed: install the gnome-games package
Ubuntu 17.04: install the gnome-games-app package
Games tries to present all your games regardless of their origin platform, but for non-native games to be launched, other pieces of software are needed; see "Running games" below
As of 3.22, Games will present you:
- games you can already find in your applications list, i.e your native desktop games
installed Steam games
- games for several game engines:
- and games for many retro video game systems:
Amiga: *.adf files
Atari 2600 and Atari 7800: *.26 and *.78 files
Dreamcast: *.dc files
Famicom/NES: *.nes files
Game Boy, Game Boy Color and Game Boy Advance: *.gb, *.gbc and *.gba files
GameCube, Wii and WiiWare: *.gc, *.wii and *.wad files
Game Gear: *.gg files
Mega Drive/Genesis, Super 32X/Sega 32X/Mega-32X and Mega-CD/Sega CD: *.gen, *.32x and *.cue + *.bin files (*.md files need to be renamed to *.gen)
Neo Geo and arcade MAME games: *.zip files (not uncompressed)
Neo Geo Pocket and NGP Color: *.ngp files
Nintendo 64: *.n64 files
Nintendo DS: *.nds files
PC-Engine/TurboGrafx-16 and CD-ROM²/TurboGrafx-CD: *.pce and *.cue + *.bin files
PlayStation: *.cue + *.bin files
Sega Mark III/Master System: *.sms files
Sega Saturn: *.cue + *.bin files
SG-1000: *.sg files
Super Famicom/Super Nintendo/SNES: *.sfc files
In order for Games to discover your games, they have to be located in a searchable place. If your games don't show up, follow these steps:
- open the GNOME Control Center and click on "Search"
- click on the "gear" button in the bottom right of the Control Center window
- setup the places where Games is allowed to search for your games (for example, in a "Games" directory located in your home directory)
Please note that ROM files need to be unzipped for Games to list them, besides MAME ROMs which must be zipped.
Games fetchs your games' cover art from TheGamesDB, an open video game database that anyone can freely contribute to. If you find a missing cover, contributing to TheGamesDB should make it appear in Games.
If your game is represented by a file, you can use the image of your choice as the game's cover by putting it alongside the game's file and by giving it a similar filename, as demonstrated in the screenshots below:
Alternatively, you could name the file cover.* or folder.*.
Games is relying on Libretro cores to make retro games work.
Currently, the Flatpak release of Games comes bundled with these functional Libretro cores, hand-picked for their good accuracy, their reasonable system requirements, their free license and their independence from proprietary (and forbidden to share) BIOS files:
Nestopia (for Famicom/Disk System/NES games)
Gambatte (for Game Boy/Game Boy Color games)
Beetle/Mednafen PCE FAST (for NEC PC Engine/TurboGrafx-16/CD-ROM² games)
bsnes (for Super Famicom/Super Nintendo games)
Beetle/Mednafen NGP (for Neo Geo Pocket/NGP Color games)
PCSX ReARMed (for PlayStation games)
It is theoretically possible to run more retro game platforms inside Games by installing other Libretro cores, but Libretro cores alone (such as the ones that your distro may already provide) are not sufficient to work properly with Games; they need to come with additional files describing them. This is an issue we're working on with the Libretro project upstream, so the required files could be directly provided with Libretro cores in the future. In the meanwhile, more Libretro cores will be added to the Flatpak bundle; more information about it can be found in our design page.
Games using the LÖVE framework require LÖVE to be installed on your machine. As usual, check if your distribution supports LÖVE (the official LÖVE website provides PPAs for Ubuntu).
Games currently does not have a user interface to handle the gamepads. Controllers are automatically assigned to players, following this scheme:
- when a gamepad is plugged in, it is assigned to the first player with no gamepad;
- when a gamepad is plugged out, the player which had it have no gamepad instead and any other player keep its controller;
- the keyboard is assigned to the first player with no controller after reassigning the gamepads.
The following gamepads have been tested with Games and should work out-of-the-box:
- Xbox 360 Controller for Windows (Wired)
DUALSHOCK 3 (for wireless support, BlueZ needs to be installed on your system)
Mouse peripherals such as the Super NES Mouse (required by games such as Mario Paint) are currently not supported.
Gamepad layouts are provided by the SDL_GameControllerDB project.
In most of the situations, no external firmware (BIOS) file should be required to play retro games.
Some Libretro cores can or must use an external firmware, they describe them in their Libretro Core Descriptor file. You firmwares files for a specific platform will be looked for in the ~/.config/gnome-games/platforms/PLATFORM/system directory, where PLATFORM is the corresponding platform as defined here. The files must match the ones described by the core's descriptor.
Packaging Libretro cores
Games supports only Libretro cores shipping a Libretro Core Descriptor file. The cores and their descriptors are looked for in $(libdir)/libretro directory and in paths defined in the LIBRETRO_PLUGIN_PATH environment variable.