frederic-mahe / Hardware-Target-Game-Database

Flash-cart optimized file and folder layouts.
GNU General Public License v3.0
659 stars 76 forks source link

Conventions for region placement #606

Closed tjanas closed 3 years ago

tjanas commented 3 years ago

@RastaJedi @frederic-mahe as discussed here, I believe these should be the rules on where to place an entry in regards to its region:

Outside of Game Series Collections, there should be only one entry for a specific checksum.

If an entry is tagged World, it goes in US only. Exception: if this World entry is tagged for only one specific language, consider it to belong to the region associated with that language: (Ja) -> Japan, (Fr) -> France

If filename is tagged USA and any other region, it goes in US only.

Else, if filename is tagged Japan and not US, it goes in Japan only.

Else, if filename is tagged Europe and not USA or Japan, it goes in Europe only.

Else, if is tagged United Kingdom, it goes in Europe only.

Else, it is likely tagged with only one region that is not listed above, and it should belong in that tagged region.

Within a region directory, generally there should be only one copy of a game, usually the latest cart revision; if there is a virtual console release for that cart revision, use the cart release. Those not selected go in the Revisions directory.

Some examples:

SD2SNES/1 US - T-Z/Trials of Mana (World) (Rev 1) (Collection of Mana).sfc
SD2SNES/2 Other Regions - A-Z/France/Trials of Mana (World) (Fr) (Rev 1) (Collection of Mana).sfc
SD2SNES/2 Other Regions - A-Z/Germany/Trials of Mana (World) (De) (Rev 1) (Collection of Mana).sfc
SD2SNES/2 Other Regions - A-Z/Spain/Trials of Mana (World) (Es) (Rev 1) (Collection of Mana).sfc
SD2SNES/4 Betas, Prototypes, Revisions/Revisions/Other Regions/Trials of Mana (World) (De) (Collection of Mana).sfc
SD2SNES/4 Betas, Prototypes, Revisions/Revisions/Other Regions/Trials of Mana (World) (Es) (Collection of Mana).sfc
SD2SNES/4 Betas, Prototypes, Revisions/Revisions/Other Regions/Trials of Mana (World) (Fr) (Collection of Mana).sfc
SD2SNES/4 Betas, Prototypes, Revisions/Revisions/USA/Trials of Mana (World) (Collection of Mana).sfc
SD2SNES/2 Japan - A-Z/Japan P-R/Panel de Pon (Japan).sfc
SD2SNES/4 Betas, Prototypes, Revisions/Revisions/Japan/Panel de Pon (World) (Ja) (Rev 1) (Virtual Console, Switch Online).sfc
Mega EverDrive/2 Japan - A-Z/Japan - P-Z/Puyo Puyo Tsuu (Japan) (Rev A).md
Mega EverDrive/4 Betas, Prototypes, Revisions/Revisions/Japan/Puyo Puyo Tsuu (Japan).md
Mega EverDrive/4 Betas, Prototypes, Revisions/Revisions/Japan/Puyo Puyo Tsuu (World) (Ja) (Rev A) (Virtual Console).md
Mega EverDrive/1 US - G-P/Pete Sampras Tennis (USA, Europe) (Rev 1) (MDST17FF) (J-Cart).md
Mega EverDrive/2 Europe - A-Z/Europe - M-R/Pete Sampras Tennis (Europe) (Rev 2) (MDSTEE13).md
RastaJedi commented 3 years ago

I like the idea of keeping Mini or Virtual Console ROMs away from the main folders. I think the region organization you proposed is sound and sane, in my opinion anyways. I hadn't realized it should be this way, simply because of the entire that go against this. I know the thought is to keep copies down, and while we can use hard links on PC storage, I guess those don't work for SD, and I hadn't even really though of that. It's too bad you can't do symlinks on SD for the GSC. If this is what's agreed upon for the convention, I will try my best to help update the files to reflect it :).

tjanas commented 3 years ago

I feel that some Mini / Virtual Console releases may be appropriate to put in the main folders when it is an officially licensed digital release of an old game that runs on real hardware without a physical release for that region. These situations are rare, only a few USA/World examples come to mind:

NES: Kid Dracula SNES: Trials of Mana Genesis: Darius Genesis: Monster World IV Genesis: Tetris

Having multiple copies results in more maintenance, more errors, larger database files, and inconsistency with regards to those tagged as World. Most people probably don't look in the Europe directory to play a game that was not exclusive to Europe.

frederic-mahe commented 3 years ago

I agree with Terry's proposal.

Outside of Game Series Collections, there should be only one entry for a specific checksum.

I will add that to the wiki.

@RastaJedi this parsimonious US-centric approach reduces file duplication in the main folders. However, if storage is not an issue, the Game Series Collections section is there to host alternative classifications, for example all the games released in Spain, whether or not the same games were also released in other regions (that would be a rather large set, but why not).

tjanas commented 3 years ago

On a similar topic, in regards to filenames, generally the official name in the latest no-intro dat is preferred. There are some personal exceptions I have for this rule.

Example:

Streets of Rage - Bare Knuckle - Ikari no Tekken (World) (Rev A).md
Streets of Rage 2 (USA).md
Streets of Rage 3 (USA).md
Thunder Force IV - Lightening Force - Quest for the Darkstar (USA).md

The official no-intro name for this first Streets of Rage game is different: "Bare Knuckle - Ikari no Tekken ~ Streets of Rage (World) (Rev A).md", while the name for the sequels match no-intro. It seems more intuitive to have them grouped together, and it seems like a judgement call by no-intro that they decided to name it "Bare Knuckle - Ikari no Tekken ~ Streets of Rage (World) (Rev A).md" instead of "Streets of Rage ~ Bare Knuckle - Ikari no Tekken (World) (Rev A).md" (no-intro uses ~ in the filename to separate region naming differences).

The official no-intro name for Thunder Force IV is "Lightening Force - Quest for the Darkstar (USA).md", but the official no-intro name for Thunder Force III is "Thunder Force III (Japan, USA).md".

tjanas commented 3 years ago

Here's another annoying example: SeaQuest DSV (USA).md No-intro name is "seaQuest DSV (USA).md" (note that it begins with a lower-case letter). If we used the no-intro name, it would be alphabetically sorted following entries beginning with upper-case Z.

tjanas commented 3 years ago

I agree with Terry's proposal.

Outside of Game Series Collections, there should be only one entry for a specific checksum.

I will add that to the wiki.

I can think of one exception to this rule, specifically those that are marked as "NT Fixed" in Legacy/Noir Nt Mini packs. For those, there is typically an additional sub-directory per core named NT Fixed that contain an extra copy.

frederic-mahe commented 3 years ago

Here's another annoying example: SeaQuest DSV (USA).md No-intro name is "seaQuest DSV (USA).md" (note that it begins with a lower-case letter). If we used the no-intro name, it would be alphabetically sorted following entries beginning with upper-case Z.

That can be fixed in the parse_pack.py script with filenames.sort(key=lambda v: v.upper()) or filenames.sort(key=lambda v: (v.upper(), v[0].islower())) to make sure sea is listed just after Sea.

Fixed in b406a7269fd58234a828cb33fa45537b1eaaf563

frederic-mahe commented 3 years ago

I've updated the wiki and fixed the issue with parse_pack.py. I am going to mark this issue as closed.