Repository containing cheatcode files, content data files, etc.
Repository containing cheatcode files, content data files, etc.
The github repository for databases used by RetroArch.
Libretro databases allow RetroArch to provide several automated cataloging functions:
.dat files in the clrmamepro DAT format, from many sources and across many categories of metadata. The system of dats is multifaceted: alternative or additional sources can be easily added and maintained in a self-contained constituent, some dats may overlap in the games they cover (see precedence), and some dats cover an exclusive niche of games or attributes..rdb files used by RetroArch, compiled and amalgamated from the .dat files. RetroArch Database format (no relation to Redis .RDB files) accommodates RetroArch's wide range of hardware/OS platforms..cht cheat code files. These are game-specific, remain in plain text, and are used as-is by RetroArch if manually selected by the user (see Cheat Code Documentation). Cheat codes are collected from any available source on the web including by manual contributions from users who have used RetroArch's built-in memory address/value search feature to construct new cheat codes. The repository contains one folder for each system (unlike dats), and multiple different cheat files may exist for the same game.The non-exhaustive list below serves as a guide to various folders in the repository.
cht Cheat codes.cursors Methods to query playlists.dat Customized DAT files maintained by the libretro team, including:metadat.)metadat Several principal third-party DATs (e.g. No-Intro, Redump, MAME, TOSEC) that each cover a large number of systems and therefore require their own folders in the repository, plus various collections of metadata (some of which may be deprecated). Examples:bbfc British Board of Film Classification's ratings for age-appropriateness.elspa Age-appropriateness/content ratings from the Entertainment and Leisure Software Publishers Association aka the Association for UK Interactive Entertainment ("Ukie").fbneo-split Includes an XML database (sourced from Logiqx's DTD ROM Management) for special use in arcade ROM scanning: it must be manually selected by the user when running a Manual Scan, it defines the component files within each ROM archive, and is not part of the .rdb compile. Also contains a typical .dat.mame Similar to fbneo-split above.hacks Data for modified (or "hacked") versions of commercially released games. Many of these data are set by direct manual commits on the Libretro Github.homebrew Data for non-officially-published games created by independent creators/programmers.libretro-dats Ad hoc databases for items that were/are not covered by upstream database groups. Currently includes fan translations of SNES games, and an additional FDS dat that may be redundant with other sources.no-intro Bulk import from upstream No-Intro databases. Generally non-disc-based systems.redump Bulk import from upstream Redump databases. Generally disc-based systems.tosec Bulk import from upstream TOSEC databases. TOSEC data overlaps with and goes beyond other data sets (No-Intro, Redump), but has lower precedence in libretro and so generally serves as a secondary stopgap.rdb The compiled RetroArch database filesscripts Various scripts that are used to maintain the database filesThe key field for matching varies by console typical file size (i.e. original media type).
CRC and serial also serve as RetroArch's primary index.
Current build script code can be viewed as a reference for which type of key field RetroArch uses for each console system.
Database entries for games at minimum specify 1) a game's name, i.e. the display name that RetroArch will assign in playlists and 2) key field data for matching/indexing and for identifying a file. Further optional metadata may appear. For reasons of informational completeness, future-proofing, and compatibility outside RetroArch, databases contain checksum and cryptographic hashes regardless of the key used for matching.
Example of database entry within metadat/no-intro/Atari - 2600.dat for the European region version of Asteroids:
game (
name "Asteroids (Europe)"
description "Asteroids (Europe)"
region "Europe"
rom ( name "Asteroids (Europe).a26" size 8192 crc 0A2F8288 md5 8CF0D333BBE85B9549B1E6B1E2390B8D sha1 1CB8F057ACAD6DC65FEF07D3202088FF4AE355CD )
)If other Atari - 2600.dat files exist in the repository and contain further metadata for the same crc, the data would be compiled together in the .rdb. For example, metadat/developer/Atari - 2600.dat would confer developer "Atari" to the above data.
description. The description " " and comment " " fields within a libretro dat's clrmamepro ( ) header should be used to clarify the origin, source, and/or purpose of the data and file. The description and comment header fields are intended for documentation purposes, are ignored by RetroArch, and can be freely changed without issue. For example, if a .dat includes 3rd party upstream data processed through a github author's build/scrape script(s), the comment and description (or other appropriate header fields) should contain information about both those aspects of the dat's origin. If the .dat file is meant to cover a particular niche of data, the description field should explain it.
name. The name field (and filename) of a .dat file header should match the database field that is specified in the .info file for the cores that use it (often but not always Manufacturer - Systemname or similar).
Databases earlier in the list have precedence over items later in the list. E.g. definitions in /dat will over-ride /metadat in the final .rdb compile if any info conflicts for the same game (i.e. for the same key field).
Many source databases are in use as listed below. The table focusses on the 3rd party sources that predominantly cover each specific console library, but other/multiple sources including manual github contributions are maintained and all are compiled together in the final .rdb files (see Repository Folder Guide and each dat's github History for details). ">" signs below indicate the precedence order when multiple sources overlap for the same subset of games/data.
| System | Source | Repository |
|---|---|---|
| Amstrad - CPC | Clean CPC DB > TOSEC | libretro-dats |
| Amstrad - GX4000 | TOSEC | libretro-dats |
| Arduboy Inc - Arduboy | No-Intro | libretro-dats |
| Atari - 2600 | No-Intro | libretro-dats |
| Atari - 5200 | No-Intro | libretro-dats |
| Atari - 7800 | No-Intro | libretro-dats |
| Atari - 8-bit | No-Intro > TOSEC | libretro-dats |
| Atari - Jaguar | No-Intro | libretro-dats |
| Atari - Lynx | No-Intro | libretro-dats |
| Atari - ST | No-Intro | libretro-dats |
| Atomiswave | ||
| Bandai - WonderSwan | No-Intro | libretro-dats |
| Bandai - WonderSwan Color | No-Intro | libretro-dats |
| Cannonball | ||
| Casio - Loopy | No-Intro | libretro-dats |
| Casio - PV-1000 | No-Intro | libretro-dats |
| Cave Story | CaveStory.org (English or Japanese) | |
| ChaiLove | ||
| CHIP-8 | ||
| Coleco - ColecoVision | No-Intro | libretro-dats |
| Commodore - 64 | [No-Intro](ht |
No open issues yet, or sync has not completed.