Skip to content

Instantly share code, notes, and snippets.

@mmatyas

mmatyas/spec.md Secret

Last active January 29, 2019 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mmatyas/24014fa414773c6d22e96acec2de6286 to your computer and use it in GitHub Desktop.
Save mmatyas/24014fa414773c6d22e96acec2de6286 to your computer and use it in GitHub Desktop.
metaspec update

A metadata file consists of Collection and Game entries.

A Collection defines which files in a directory (and its subdirectories) should be treated as games, and thus appear in Pegasus. It can also store default parameters, such as how to launch the games (eg. open in emulator X), or default assets assigned for them. All games are grouped into collections, but one game can belong to as many collections as you wish.

A Game entry stores game-specific information, such as developer, release date or description. If a game need a special way to get launched, it can also be set here. A Game may consist of multiple files (eg. multiple discs), optionally with custom parameters like name or special launch command.

Both entry types are a series of data fields in key: value format:

collection: PlayStation
extensions: iso
files:
  specialgame1.bin
  specialgame2.ext
ignore-file: buggygame.iso
launch: myemulator "{file.path}"


game: Final Fantasy VII
files:
  ffvii_disc1.iso
  ffvii_disc2.iso
developer: Square
genre: Role-playing
players: 1
description: Final Fantasy VII is a 1997 role-playing video game developed by
  Square for the PlayStation console. It is the seventh main installment in the
  Final Fantasy series.
  .
  The game's story follows Cloud Strife, a mercenary who joins an eco-terrorist
  organization to stop a world-controlling megacorporation from using the planet's
  life essence as an energy source.
rating: 92%
x-scrape-source: SomeScraper
  • Keys are case insensitive, so title, Title and TitLe are the same. They always start an the beginning of the lines.
  • Values have three possible types:
    • single line text: starts and ends in the same line as the Key.
    • multiline (flowing) text: the text continues for multiple lines. The lines after the first one start with at least one space. Empty lines can be represented with a single dot (.) as their content.
    • list: a list of items, with each item on a separate line. Like with flowing text, each of them start with at least one space.
  • Lines starting with # are comments and will be ignored.

Collection entries start with a Collection: <collection name> data field, while Games with Game: <game title>.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment