User:Xerxes

From Dolphin Emulator Wiki
Jump to navigation Jump to search

I test games and enjoy boring pedantic work. If I do something wrong/stupid please tell me on my discussion page or right here, I don't care where.

GameID adding guide

This will be an in-depth guide going through all the steps to quickly and consistently add reliable GameIDs to the wiki. It's not particularly hard to do, however it can be tedious and sometimes requires investigation for obscure titles. However, once an understanding is reached of how IDs work and how best to use the resources available, most GameCube or Wii IDs can be added or confirmed without too much trouble.

How are IDs formatted?

Every ID is a unique six-character code made up of letters and numbers which identifies a specific version of every Wii or GameCube game. Each character holds its own meaning in the ID, as follows:

  • Character 1 tells you what console the game was released on, or in the case of the Wii, it'll tell you whether it's a WiiWare title, a Virtual Console title (and which Virtual Console specifically), or a retail game.
  • Characters 2 and 3 are the two unique characters which identify the actual game. Though there are some rare exceptions (usually Japanese releases), this normally stays consistent through all the different versions of a specific game. This can be used to find out when the wiki is in error, and two games with separate pages are actually the same. See R8XE52 and R8XZ52 as an example.
  • Character 4 is the region code. This is the most common changed character between different IDs for a single title and probably the most useful. By knowing the regions a game is released in, looking for missing region codes can help greatly in spotting missing IDs. Therefore, knowing correct release data for a game is crucial to knowing which IDs are valid and which IDs are missing.
  • Characters 5 and 6 reflect publisher, and these are the most confusing of all characters as they can be all over the place depending on the title. Sometimes titles will have different publishers for each region, the same publishers in all regions except one, all the same publisher, the same publisher but with a different last two characters that's actually valid, etc. However, they do follow patterns, even though they may be confusing patterns; see GameIDs for documentation on common trends.
    • Note that for Virtual Console titles, each different console gets its own unique publisher ID that stays uniform for the console. For example, all Sega titles have publisher code 8P. This means that only the prefix is needed for confirmation of Virtual Console IDs as the final two characters can be filled in without much hassle. The chart below shows all known Virtual Console publisher IDs.

Virtual Console Publisher IDs

System Code
Commodore 64 GX
Neo Geo, MSX J8
Sega Master System, Sega Genesis 8P
NES, Super Nintendo, Nintendo 64 01
TurboGrafx-16, TurboGrafx-16 CD 18

Where do I find IDs?

The following is a list of publicly available sources for obtaining both GameCube and Wii IDs, in order of reliability.

Source #1: A personal dump

Since the wiki's IDs are used for functionality in Dolphin, the database here has to align to what Dolphin gives for different games (given that the dump is valid). Therefore, the perfect source of IDs for the wiki is by obtaining them through Dolphin itself. However, this requires owning a copy of the game and being capable of dumping it and viewing its properties within Dolphin.

Source #2: The game's cover/disc

On the back of all GameCube and Wii games (besides Asian releases where it's on the front), near the barcode, the Game's ID will actually be printed out. This makes searching for a scan of the game's cover a viable means of confirming IDs. The ID is also printed directly on the disc as well, in the little subscript text along the edge. This can be considered a perfectly reliable source, however the ID on the cover uses a different format from those used in Dolphin; namely, the four character product code is used, which leaves out the publisher code. The publisher code can be pieced together using the publisher information on the cover, separate sources like GameTDB, and the GameIDs page if need be, however complete reliance on these sources is not recommended.

While this may theoretically be a good source of IDs, in many cases certain games just might not have high quality cover scans publicly available. If a cover scan for a game cannot be acquired using normal sources (GameFAQs, GameTDB, MobyGames, etc.), eBay is another possible option. A lot of listings use high resolutions pictures of both sides of the game's box or the disc, from which the ID prefix can be obtained. By knowing the regions of a game's release, region-specific eBays can be used to further narrow the search; for example, there's an Australian eBay, a British eBay, a German eBay, and a Swedish eBay called Tradera, among others. Since these aren't databases, keep in mind listings will come and go and results may vary, so results may be hit or miss. Note also that for the best results it's more effective to use the title of the game in the language of the region, which can be obtained from GameTDB or Redump. Below is a chart listing online auction sites for various reasons for convenience.

List of online auction sites by region
Region Site
Australia eBay
France eBay
Germany eBay
Ireland eBay
Italy eBay
Japan Yahoo!
Netherlands eBay
North America eBay
Spain eBay
Sweden Tradera
Taiwan Yahoo!
United Kingdom eBay

Source #2.5: Nintendo's Update Server

The above method of looking for IDs on game covers is effective, but around half the games with pages on the wiki are digital titles that don't have a cover. So, the IDs instead need to be acquired from somewhere else. Thankfully, Nintendo's update server is publicly accessible from any web browser, and allows anyone to freely download TMD files with title information. This can be done by using the following link:

http://ccs.cdn.shop.wii.com/ccs/download/00010001<ID prefix>/tmd

The <ID prefix> bit needs to be replaced with the first four characters of the ID you're trying to confirm in hex (here is a working link for prefix JALT as an example). If the prefix exists, a download will begin for an extensionless file named "tmd"; otherwise, a 404 will be reached. This file can then be opened with a hex editor, and the full ID can be seen (with a small gap between the prefix and publisher code) around halfway through the file in cleartext.

The major problem with this method is that it can only be used for ID confirmation and not addition, since the prefix must be known ahead of time. There's been efforts to scrape the entire update server for all TMDs and therefore never run into this problem, but the work is still pending.

Source #3: Redump.org

Redump.org is a trustworthy site dedicated to disc preservation across many different game consoles; its archives can be considered close to the game's cover in validity. When there's no good cover scans available for a title, this is the next most verifiable source for IDs available. The site itself also includes some helpful formatting, such as showing region flags next to the IDs in the database and listing game languages to pinpoint where European IDs had their release. Redump's main flaws are: a) it uses the same four character prefixes that game covers do, and b) it only includes GameCube games, no Wii data is available. On top of having only the four character prefixes, Redump doesn't document any publisher data like the cover does, so piecing together the last two characters is even more challenging. In conclusion, Redump is a great place to check outlier GameCube IDs, but it doesn't quite have enough information on its own overall to be a good main source.

Source #4: GameTDB

GameTDB is huge and contains almost all GameCube and Wii IDs and covers, along with some other miscellaneous data like game languages similar to redump. The problem though is that GameTDB is not as reliable. There are invalid entries on GameTDB, low resolution/wrong covers making it hard to check entry validity (___X__ region European IDs having ___P__ region covers as a consistent problem), questionable developer and publisher information, etc. The actual IDs though are generally correct, and this is the only source other than a personal dump or the NUS that contains full 6 character IDs like the Dolphin wiki uses. I would say the IDs from GameTDB are around 80% accurate, with the other 20% generally being flat-out missing IDs or false entries (for example wrong publisher code). Because this is pretty trustworthy but not perfectly so, I still recommend checking against one of the more reliable sources above before mindlessly posting IDs from GameTDB onto the wiki. However, in the case of a retail Wii game with no good cover scans for example, this becomes the most reliable source and there's no choice but to trust it until someone with the game comes to confirm/deny your addition.

Now this is a little tip to really help you get the best out of GameTDB. The way that the website is organized, every single ID has a set of links at the top that allow you to go to the next or previous ID alphabetically. At first this might seem like an oddity but it's one of the best features of the site. This will sometimes start you down trails of investigation that can lead to finding out that, for example, the wiki erroneously contains two separate pages for the same game. The thing about multi region releases is, they often don't share a name, so sometimes overseas if a publisher is not clear that it's the same title, databases can get confused and list them as separate. However the IDs don't lie (or at least they haven't so far to me anyways), and when you find two IDs with the same 3 character prefix but different region and name, with two different pages on the wiki, this generally means that it's really the same game in disguise. If you put in the time to prove that they're the same title, and can get someone else to agree with you, then feel free to merge the pages. The one flaw with the next/previous ID system is that GameTDB lists hacked IDs in along with their normal IDs, so for very popular titles like New Super Mario Bros. Wii for example, you'll have to go through a ton of page loads to get to the real IDs. In these situations, try and use their .txt inventory of all IDs instead, which you can get here (starts download).

Source #5: GameFAQs

I'm not going to lie. GameFAQs, on the whole, is a terrible place to get IDs. But as I do recommend looking into release data for games while you do this, you'll usually go to GameFAQs anyways as their release information is extremely good. The rule of thumb here is, never trust their IDs without a second source. The first three characters are all you can get from them; not only do they omit the publisher code again, they also just fill in the region code by the region of release, NOT what the ID actually is. So do NOT blindly trust the region codes from GameFAQs; instead check their uploaded covers instead.

How do I add an ID?

Adding a GameID to the wiki is rather simple on a technical level. You simply create a new page for the 6 character ID that redirects to the main page of the game that it's an ID for. That's it.

  • Example: suppose you wanted to add ID "G12E34" for the game "Test 123". All you need to do is create a new page on the wiki titled exactly "G12E34" and as its contents write #REDIRECT [[Test 123]].

Note that it takes a little while to catch up and reflect your IDs on the game's infobox, so don't freak out if it doesn't pop up right away. (If you're impatient, you can force the new IDs to show up with purge.)

Currently the wiki is undergoing an effort to try and understand some of the odd IDs that can appear. Examples of this would be games which have a different first three characters for different region releases (usually happens with Japanese versions), special Walmart/Best Buy release versions, V/H region IDs, etc. Once you get a feel for how IDs usually behave, whenever you spot an odd ID of this format, underneath your #REDIRECT line, feel free to add some details of what you know about that release. For example, often the X/Y/Z region IDs are just different language versions of the European release, so something that I'll do is I will change all the European IDs to add their languages, as that's usually the primary distinguishing factor. No need to get fancy or anything, just a one sentence little jot down like "Best Buy release" or "EN, FR language release" or something along those lines. It won't interfere with the function of the ID or with the redirect, UNLESS you add a second [[link]] to a page after the redirect. Don't do this, it breaks everything, so just write out the name of the page normally with no link.

Example workflow

I start out by figuring out the game's release dates, with a special focus on regions. GameFAQs is my first source for this information, using Wikipedia's writeups on different titles' development and developer/publisher histories for elusive games. Next I open another tab to GameTDB and search for the game's title. Once I find one for the console I want, I click only that one and ignore all other results for the same console. GameTDB has this wonderful feature which lets you click to the next ID or previous ID alphabetically; trusting this over the general search and the game's raw title can find you games which had releases with different names in different regions. Using this, I go as far back as I can and as far forward as I can before I reach different games, all in new tabs; this generally leaves me with 2-4 tabs of different IDs for each game. Then I do a quick sanity check, making sure that there aren't any IDs for regions the game wasn't released in, and expanding the covers on GameTDB I try and confirm as many of them against the codes on the back as possible. If they have an entry for GameCube that their covers don't substantiate, then I will check Redump for it; however, if there's a Wii ID with no back cover, then things get a bit more complicated, and I'll start scowering the internet to find it. Once I'm satisfied that the IDs are correct, I'll fix the release data on the wiki page (assuming it had any errors) and then start creating redirects for each ID, closing the tabs as I go. If there's an ID I absolutely cannot confirm, then I'll make a note of it on the talk page for the game and give a bit of details about the ID and why I can't confirm it.

The whole process on average, when things go smoothly, takes less than five minutes per game. If you really have to dig and use all of sources 2-5, start reading Wikipedia writeups, and search for outside second opinions (for example with elusive publishers), it can get up to around 20-30 minutes, but this is pretty rare, and in my opinion I think it's kind of fun in a way. Really the idea here is to understand the patterns of IDs and the limitations of your source. Once you fully grasp these things then you'll find it pretty easy to pick up on missing IDs or fake ones. Once again, don't be afraid to use the talk pages to ask about weird IDs, they exist for a reason.

Miscellaneous tips

DPL

Because this is a wiki, there's a nearly Turing-complete scripting language and all its extensions available to find patterns in the wiki's IDs. The most useful of those extensions is DPL. DPL is the primary method used on the wiki for interacting with IDs both inside and outside of templates, and a familiarity with it is almost crucial. Take the following as a small example of what be done:

{{#dpl:titlematch=____28|ordermethod=lastedit|order=ascending|redirects=only|mode=inline|inlinetext=<nowiki>, </nowiki>|notcategory=Not GameID|notcategory=Unofficial GameID}}

This gives an output of:

GEMJ28, GBMJ28, GUSJ28, GP9J28

What this does, is finds all IDs on the wiki with publisher ID 28, and lists them from the last edited to the most recent. With this someone could easily go through and add an edit to each ID, and the same DPL would update during the process to keep the oldest edit on top.

TODO

  • Validate GameIDs and add missing ones using data from first party sources.
  • Investigate digital IDs further.
  • Finish game lists (pending on digital ID stuff).
  • Make pages look nicer - consistency in general formatting.

Trivia

As of today (August 20, 2017), I've handwritten the words "improve infobox" in an edit summary five hundred and two times since I made my account. Maybe someone will get a chuckle out of that.

On September 3-5, 2017, I got to watch User:Lucario and User:Kolano make a near-perfect forgery of MediaWiki's default header because it seemed like a better place to put a link.

Random numbers of the day: 742542 6377 534027 325519 589350 380818 908509 172322 699995 227618 491451 282927 546803 338270 865919

Bubble sort (expanded algorithm here):

  • 6377
  • 172322
  • 227618
  • 282927
  • 325519
  • 338270
  • 380818
  • 491451
  • 534027
  • 546803
  • 589350
  • 699995
  • 742542
  • 865919
  • 908509