Stone-game

Second Working Draft

Implementation Mandatory

Formats Involved

  • SQL (Stone expects SQLite, however any implementation of SQL may be used)
  • JSON (Javascript Object Notation is the standard serialization format in Stone. For the purposes of Stone-game, no other serialization format may be used)

Introduction

Stone-game is a specification on how to store information in relation to a Game and it's ROM file. It specifies how information about the game is to be stored, how to access the information later, and what pieces of information are mandatory in order to represent a Game in a Stone-compliant frontend. Stone-game does not mandate moving the file of the ROM to another location, however doing so is not in violation of Stone-game.

A game must store a Platform ID A Unique Identifier The file name to the main executable or ROM file of the game The human-readable title of the Game as it was on original release Miscellaneous metadata about the game such as description or publisher The CRC32 of the file name as specified earlier

SQL Schema

This section describes the table schema in how information on a game is to be stored.

Column Type Description
platform_id TEXT Platform ID associated with the game's platform. See Stone-platform
uuid TEXT PRIMARY KEY 22 character unique identifier of the game
filename TEXT The path to the game
name TEXT The human-readable name or title of the game
metadata TEXT JSON-serialized representation of game metadata. Any valid JSON object can be stored here.
crc32 TEXT The CRC32 value of the ROM file as specified by the filename column

Metadata

Stone-compliant emulator frontends may store whatever string metadata they wish about the game in the metadata column. However, some pieces of metadata have keys that are specified by Stone. Such items should be stored and accessed under these keys. These keys do not have to be present, however, if the content described is stored, it should be stored under these keys in string format. It is suggested, that if media such as cover art is stored, that it be stored as specified in the kori specification, however it is not mandatory when implementing Stone.

Key Description
game_description The description of the game, such as the text on the back of the box or optional text
game_title The title of the game. Redundant to name
game_releasedate The original release date of the game in format "YYYY-MM-DD"
game_publisher The publisher of the game
game_developer The developer of the game
game_region The region in which the game was released. See Regions
game_playtime The playtime of the game if the emulator frontend supports playtime tracking
snowflake_mediastorekey If using snowflake mediastore, the mediastore key

All other metadata can be stored freely per emulator frontend. Stone does not have restrictions on how any other metadata is stored in the metadata column.

Regions

Stone-game generally follows GoodTools conventions when specifying country.

Code Region
A Australia
As Asia
B Brazil
C Canada
Ch China
D Netherlands (Dutch)
E Europe
F France
G Germany
Gr Greece
HK Hong Kong
I Italy
J Japan
K Korea
Nl Netherlands
No Norway
R Russia
S Spain
Sw Sweden
U United States
UK United Kingdom
W World
Unl Unlicensed
PD Public domain, free software and freeware
Unk Unknown country