Skip to content

lioneil/obsidian-es-theme-retropie

Repository files navigation

Obsidian

Obsidian is an EmulationStation theme for RetroPie.

based on art-book by anthonycaccese - https://github.com/anthonycaccese/es-theme-art-book
based on carbon v2.5 - 2020-11-17 by Tomaz
based on carbon v2.4 by Rookervik
based on simple(c) Nils Bonenberger - [email protected] - http://blog.nilsbyte.de/
For use with EmulationStation (http://www.emulationstation.org/)

See Carbon's CHANGELOG for details regarding the Carbon Theme.

Table of Contents

Features

The theme supports RetroPie/EmulationStation's 4 gamelist view style in a 16:9 aspect ratio.

  • Basic
  • Detailed
  • Video
  • Grid

System View

Default Platform

Uses colorful platform logos from carbon theme.

Systems View - Platform

Custom Collection

Supports various game collections and series.

Systems View - Custom Collection

Custom System

Adds custom systems logos (e.g. romhacks, openbor, homebrews, etc)

Basic View

Detailed / Video View

Note

Video View is same layout as Detailed View, but a video will play in the background after a delay (requires scraping video enabled).
Disable OMX Player in the Menu if you're on Raspberry Pi.

Grid View

RetroPie Screens

System View
Basic View
Detailed / Video View
Grid View

Installation

Using Git:

cd ~/.emulationstation/themes
git clone --depth=1 [email protected]:lioneil/obsidian-es-theme-retropie.git obsidian

Manual installation:

  • Download the latest zip file (the highest tag will always be the latest stable release).
  • Extract the contents to /home/<user>/.emulationstation/themes/obsidian/ directory.

See other releases.

Scraping Game Assets

I don't think the default scraper will look right out-of-the-box. I used the other scraping tool from the RetroPie settings, skyscraper.

Here's my artwork.xml (place in ~/.skyscraper/artwork.xml):

<?xml version="1.0" encoding="UTF-8"?>
<artwork>
  <output type="cover"/>
  <output type="screenshot"/>
  <output type="texture"/>
  <output type="wheel"/>
  <output type="marquee" resource="wheel"/>
</artwork>

Launch Images

This feature is optional. See the section about installing Launch Images if you want this feature.

The theme can add custom launch images per system in place of the default runcommand screen. The runcommand screen is RetroPie's script responsible to launch your emulators/games. This screen shows the runcommand's configurations and features.

Here is the default runcommand screen:

Runcommand Default

Here is the theme's replacement launch image for NeoGeo:

Neogeo Launch Menu

Installing Launch Images

Run the script install-launch-images.sh included in this theme.

cd ~/.emulationstation/themes/obsidian # or wherever you installed the theme.
chmod a+x .bin/install-launch-images.sh # to allow it to execute under your user
.bin/install-launch-images.sh # run it

The script will simply copy files from ./assets/launchers/ to /opt/retropie/configs/. Check the script included in this theme for the code.

Make sure "Launch menu art" is Disabled. In EmulationStation, go to RetroPie Setup > configuration / tools > runcommand. Set "Launch menu art" to Disabled. Otherwise the game's scraped box art will show up on the runcommand screen. More details about Launch Menu can be found in the RetroPie docs.

There is also an uninstall script which simply removes all /opt/retropie/configs/*/launching.png files.

cd ~/.emulationstation/themes/obsidian # or wherever you installed the theme.
chmod a+x .bin/uninstall-launch-images.sh
.bin/uninstall-launch-images.sh

And of course, you can always just manually copy the files from ./assets/launching/ and paste them in /opt/retropie/configs/.

Custom Collections

The theme supports various game collections (e.g. streetfighter, megamanx, etc).

Systems View - Custom Collection

In EmulationStation, go to Menu > Game Collection Settings > Create New Custom Collection from Theme, pick the collection you want and start adding games. There is a way to automate this process, detailed below.

Automatic Custom Collection from Theme

The theme comes with a (low-tech) script to automate the collections of games.

cd ~/.emulationstation/themes/obsidian # or wherever you installed the theme.
chmod a+x .bin/generate-custom-collections.sh
.bin/generate-custom-collections.sh

# or add -f flag to DELETE ALL ~/.emulationstation/collections/custom-[supported].cfg files first
# then force regenerate them. Only supported custom collections are deleted,
# your own custom-*.cfg will not be touched.
.bin/generate-custom-collections.sh -f

# or add -n flag to only scan for a specific supported collection
.bin/generate-custom-collections.sh -n streetfighter
# add -f to force renegeration of custom-streetfighter.cfg file
.bin/generate-custom-collections.sh -fn streetfighter

This will generate custom-<collection-name>.cfg in ~/.emulationstation/collections directory.

Then in EmulationStation, go to Main Menu (press start) > Game Collection Settings > Custom Game Collections, and check all desired collections.

Please see list of currently supported game collections. The list might expand.

How it works

The script will attempt to read your roms directory, and try to regex-match the file names found againts a preset of known file names for a given custom-collection. It's pretty low-tech in a sense that the association between a custom-collection and what games goes in that collection is hardcoded in the script. Check out the script to see the list of files and it's associated custom-collection.

Splashscreens

The theme comes with its custom RetroPie Splashscreens. Please note, splashscreens are only available on the Raspberry Pi.

Choose one of the three, or randomly show on boot.

Installation

cd ~/.emulationstation/themes/obsidian # or wherever you installed the theme.
chmod a+x .bin/install-splashscreens.sh # to allow it to execute under your user
.bin/install-splashscreens.sh # run it

This will copy files from assets/splashscreens/ to ~/RetroPie/splashscreens.

Then in EmulationStation settings, choose your desired splashscreen as described in the docs.

Pause Overlays

RetroArch supports Overlays, most commonly used for bezels (border artwork, marquees, etc). Pause Overlays are custom overlays that combines RetroArch's pause state, while simultaneously toggling an overlay.

Here's another repository that does the same thing: svera/arcade-pause-overlays

The theme offers a simple pause overlay for your RetroPie:

Other Pause Overlays

Installation

Install via script:

cd ~/.emulationstation/themes/obsidian # or wherever you installed the theme.
chmod a+x .bin/install-pause-overlays.sh # to allow it to execute under your user

.bin/install-pause-overlays.sh <overlay>

# where <overlay> is one of the supported overlays.
# E.g.
.bin/install-pause-overlays.sh generic # will install the generic overlay

For list of all supported Pause Overlays, look into the assets/pause directory. Supported system will expand in future releases.

Once installed - for example the generic overlay - it will attempt to override values in /opt/retropie/configs/all/retroarch.cfg:

input_overlay_enable = true
input_overlay = "~/.config/retroarch/overlays/pause/generic/obsidian-generic-pause-overlay.cfg"

Then there is a bit of manual setup for you to do. In /opt/retropie/configs/all/retroarch.cfg, override the input overlay trigger to be the same as pause toggle key:

input_pause_toggle = "p"  # keyboard "P"
input_overlay_next = "p"  # same as the pause toggle key

input_pause_toggle_btn = "10" # specify your controller pause, 10 might not be the correct value for your controller
input_overlay_next_btn = "10" # specify your controller pause

Pausing any RetroArch-run game, will look something like:

Screenshot - Pause Overlay

The input settings can also be done in RetroArch GUI > Configuration > Input.

Once installation is done, feel free to go into ~/.config/retroarch/overlays/pause/ directory and modify the .cfg file to your liking.

Conclusion

Thank you for checking out the theme! ❤️

I will be looking to expand the supported custom collection, splashscreens, and pause overlays in future releases. I am also looking into per-game pause overlay, where you can cycle through characters movelist when you pause the game (maybe on a separate repository).


Attributions