libretrodb
v1.0.0
Published
A small reader for RetroArch databases
Downloads
9
Maintainers
Readme
libretrodb
A small tool to read retroarch databases.
Download the rdb files and read them using this library.
This JS / TS library is a port from libretro-db based on the rarchdb code.
Installation
npm install --save libretrodb
or
yarn add libretrodb
Usage
import { Libretrodb } from 'libretrodb';
const db = await Libretrodb.from('file.rdb');
// get all database entries
const entries = db.getEntries();
// or seeach for a hash (crc, md5 or sha1)
const entry = db.searchHash('f25b77795db4204d282453184aa6c8363bd07c42');
console.log(entry);
{
name: '007 Multispy (ZX-Guaranteed)',
description: '007 Multispy (ZX-Guaranteed)',
rom_name: '007 Multispy (1987)(ZX-Guaranteed).opd',
size: 184320,
crc: '017fa7e9',
md5: '4c8249a291081522702f81e80f6dd333',
sha1: 'f25b77795db4204d282453184aa6c8363bd07c42'
}
API
Libretrodb.from(path: string, options?: Options)
Load a database file.
- path
string
path of the database file - options
object
- bufferToString
boolean
Convert binary buffers to hex strings (optional, defaulttrue
) - indexHashes
boolean
Indexcrc
,md5
andsha1
in order to search them usingsearchHash
(optional, defaulttrue
)
- bufferToString
getEntries()
Returns the entries read.
searchHash(hex: string)
Returns the entry matching with the hash (as hex string).
Entry Results
The entries are records without any property short list. The TypeScript Entry
definition is based on a full scan of the whole rdb file list.
export type Entry<BinType extends Buffer |string> = {
name?: string;
description?: string;
rom_name?: string;
size?: number;
crc?: BinType;
md5?: BinType;
sha1?: BinType;
serial?: BinType;
genre?: string;
franchise?: string;
releasemonth?: number;
releaseyear?: number;
developer?: string;
publisher?: string;
users?: number;
edge_rating?: number;
edge_issue?: number;
esrb_rating?: string;
origin?: string;
rumble?: number;
edge_review?: string;
famitsu_rating?: number;
enhancement_hw?: string;
elspa_rating?: string;
analog?: number;
}
License
This project is licensed under the MIT License.