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.
93 lines
2.9 KiB
Markdown
93 lines
2.9 KiB
Markdown
# 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.
|