Open athairus opened 8 years ago
Note that this only gets us titles, IDs, filenames, hashes and serials
gameID
s come from set of all parent game
tags (aka tags without a cloneof
element), assign all release
tags found within parent tag and clones of parent to this gameID
releaseID
s come from set of all release
tags, assign sibling rom
tag to this releaseID
name
element using the official tagging docs as a guideromID
s come from set of all rom
tagsNote that I am evaluating all of these sites based on what data is available for Super Metroid, a good litmus test for how well the site's categorized classic games.
TheGamesDB has some good quality boxart but seem to only track US releases.
The Cover Project has the best quality boxart I've seen anywhere on the net, far higher-res than what we need, though. Also, most of the cover images are oriented for print (example: SNES games have back, side and front covers in the same image) so they'll have to be automatically trimmed and shrunk to be usable. On the plus side, they track all kinds of regions.
GameFaqs has little to offer in terms of metadata but track not only regional boxart but also release dates. The boxart itself is just big enough for our use.
IGDB is currently in open beta. Doesn't have a lot of useful stuff quite yet.
Giant Bomb has a rich db of releases and release dates. The box art available can be very good but doesn't seem to follow any standard format making automated extraction difficult.
MobyGames has an even richer database! They mark their available box art with lists of countries they came from along with a database of releases by region. Unfortunately, they do not track revisions.
RF Generation looks promising. Tracks releases.
Online Games DatenBank German. Good amount of detail.
releaseID
s and romID
s are already done by OpenVGDB, which is where I got the names from.
Column names must be unique across all databases, along with table names, unless they are IDs. This way, we can easily take advantage of NATURAL JOIN
.
All strings must have a language name (ISO 639-1) attached as metadata. For example, the titles
table has these columns: titleID
, title
, titleLanguage
. I'm torn on allowing multiple rows with the same titleID
but each with different titles and languages. It might add some unneeded complexity.
This is worth considering as we design the schema: http://gamer.ischool.uw.edu/wp-content/uploads/2014/11/LeeClarkePerti_GameMetadataEvaluation_JASISTpreprint.pdf
This issue will define how the new Phoenix database will be organized.
Define the following IDs:
gameID
: ID denoting a set of ROMs built from the same codebase for the same platform (e.g. not ports, sequels or expansion packs)releaseID
: ID denoting region-specific release of a particular ROM with unique box art sold over a particular periodromID
: ID denoting a single ROM A singlegameID
will map to a set ofreleaseID
s. A singlereleaseID
will map to a singleromID
.For example:
gameID
0releaseID
0releaseID
1releaseID
2releaseID
3romID
0romID
1Rationale: In the end, we want to display to the user the collection of
gameID
s that they have valid ROM paths for. In order to select the right region and release we end up showing we must store the user's choice ofreleaseID
for the givengameID
. ThereleaseID
gives us all the information we need to display any metadata necessary and we can later look up the stored path to the ROM via thereleaseID
'sromID
.