Pegasus Frontend Configuration

Introduction

Pegasus is a powerful and flexible frontend for launching games, similar to EmulationStation. It provides a unified interface for interacting with various emulators, eliminating the need to manage multiple emulator interfaces separately.

Getting Started

ROM Directory Structure

By default, Pegasus is configured to look for ROMs in the /ROMs directory, with subdirectories for each platform. You can either create the ROM directories in the format below or edit Pegasus to use your preferred location.

/ROMs/3do
/ROMs/amiga
/ROMs/amigacd32
/ROMs/arcade
/ROMs/atari2600
/ROMs/atari5200
/ROMs/atari7800
/ROMs/atarijaguar
/ROMs/atarijaguarcd
/ROMs/atarilynx
/ROMs/atarist
/ROMs/gb
/ROMs/gba
/ROMs/gbc
/ROMs/gc
/ROMs/genesis
/ROMs/megacd
/ROMs/model2
/ROMs/model3
/ROMs/n64
/ROMs/naomi
/ROMs/neogeo
/ROMs/nes
/ROMs/ngp
/ROMs/ngpc
/ROMs/ps2
/ROMs/ps3
/ROMs/psp
/ROMs/psx
/ROMs/saturn
/ROMs/sega32x
/ROMs/segacd
/ROMs/snes
/ROMs/snes_widescreen
/ROMs/switch
/ROMs/virtualboy
/ROMs/wii
/ROMs/wiiu
/ROMs/wonderswan
/ROMs/wonderswancolor
/ROMs/xbox

Setting Up ROM Directories

To make your roms accessible to Pegasus within the container, you need to create a bind mount that maps your host ROM folder to the /ROMs directory in the container. This is done by editing the config.toml file.

Configuration

Setting Up Bind Mounts for ROMs

To create a bind mount for your ROMs, add the following line to the "HostConfig" section of your config.toml:

"Binds": [
    "/path/to/roms:/ROMs"
]

Replace /path/to/roms with the actual path to your ROM directory on the host system.

Example Configuration

Here’s an example of how the Pegasus configuration might look in your config.toml file:

[[apps]]
title = "Pegasus"
start_virtual_compositor = true

[apps.runner]
type = "docker"
name = "WolfEmulators"
image = "ghcr.io/games-on-whales/pegasus:edge"
mounts = [
    "/mnt/PATH_TO_ROMS_IN_YOUR_HOST/:/ROMs/:rw" # <-- EDIT HERE
]
env = [
"RUN_SWAY=1",
"GOW_REQUIRED_DEVICES=/dev/input/event* /dev/dri/* /dev/nvidia*",
]
devices = []
ports = []
base_create_json = """
{
  "HostConfig": {
    "Binds": [],
    "IpcMode": "host",
    "CapAdd": ["NET_RAW", "MKNOD", "NET_ADMIN", "SYS_ADMIN", "SYS_NICE"],
    "Privileged": false,
    "DeviceCgroupRules": ["c 13:* rmw"]
  }
}
"""

Emulators

Pegasus is preconfigured with several popular emulators. Each emulator is designed to run games for specific platforms. For detailed information on configuring and using these emulators, please refer to their respective documentation:

Customization

Theming

Pegasus supports extensive customization through themes. You can change the look and feel of your frontend to suit your preferences.

To install a theme, you need to launch the Pegasus app at least once, then download the theme and place in:

<hostapps_folder>/Pegasus/.config/pegasus-frontend/themes

On the next Pegasus launch, you will be able to select the theme from within the settings.

Troubleshooting and Additional Resources

If you encounter any issues or need more information, consider the following resources:

For specific issues related to this container or its configuration, please refer to the project’s issue tracker or community support channels.