You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lark/metadata
Emily Frost bce55ec9b5
Added patches section to metadata concepts.
4 years ago
..
README.md Added patches section to metadata concepts. 4 years ago

README.md

Metadata definitions

TODO

  • Decide on a file structure. This shouldn't be one giant json file, but it needs to be split in useful ways.

Image

A stored copy of a game's disk image. For example: - Star Fox 64 (U) v1.2.z64 - Star Fox 64 (U) v1.2.v64

* UUID
	- A unique identifier for this specific data object.
* format
	- The format this image is stored in. For example: bin, iso, chd, z64, v64
* sha1sum
	- The sha1sum hash of this specific image.
* release
	- The release that this image was taken from.
* dump credit
	- Where the hash came from, who dumped it, etc

Release

A single release of a game. For example: Star Fox 64 (U) v1.2

* UUID
* name
	- The release's name in the language and script it was released in.
* region
	- The official release code for the game.
* version
	- The release version of the game. Some are verison numbers, some are just sequential
		release numbers.
* disambiguation (can be empty)
	- If this release is different in a way that isn't region or version, that information goes
		here.
* release group
	- The UUID of release group that this release belongs to.
* platform
	- The UUID of the platform that this release is built for.

Release group

A container for all languages and versions of a release. For example, the Star Fox 64 release group would contain all of the following releases: - Star Fox 64 (U) v1.2 - Star Fox 64 (U) v1.0 - Star Fox 64 (J) v1.0 - Lylat Wars (E) v1.0

* UUID
* name
	- The English name for the release group. This is largely for contributors to quickly
		understand the raw data, as frontends should ideally pull the name from a configured
		region or something.

Platform

A single set of hardware and/or software that shares compatibility. For example: - Nintendo Entertainment System - Microsoft Windows 7 - Microsoft Windows 98

* UUID
* name
	- The English name of the platform. As with release group names, this is mostly for
		hand-editing data.
* regional_names
	- A hash map with the keys being language identifers (en-US, jp, fr, etc) and the values
		being the platform's name in the language and script it was released in.
* shortcode
	- A small, three-letter code for the platform. This is essentially for directory names.

Patches

Unofficial patches or mods for a game, usually called romhacks.

* UUID
* name
	- The patch's name in it's original language.
* file sha1sum
	- The patch file's sha1sum.
* target image
	- The UUID of the image that the patch is intended to be applied to.

Design notes

  • This spec is designed with the intent to be imported into databases while also being reasonably hand-editable for contributors.

  • Everything has a UUID because formats and hashing algorithms change, and this should be made as long-term and language-agnostic as is reasonable.

  • Releases have multiple images to account for different formats. The z64 and v64 images of the same N64 game are different files with different hashes.