User:Xerxes

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
Needs:


 * More meat about GameIDs, their function, how they're stored in the game, etc. so that some day when the wiki's GameID database is complete, this writeup wont be completely useless (i'll need help for this one)

This will be an in-depth guide going through all the steps to quickly and consistently add good GameIDs to the wiki. It's not particularly hard to do, it's just a bit boring and sometimes can require some investigation for obscure titles. However, once you have an understanding of how IDs work and how best to use the resources available to you, it can be done 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 Wii-Ware title, a Virtual Console title (and which Virtual Console title 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 your advantage to find out when the wiki is in error, and two games with separate pages are actually the same.


 * Example: some horribly scummy company re-releases a game a few years later with a different title, without any real signs that this is the case for someone who hasn't played both games. By seeing that both share the same characters 1-3 in their IDs, you become suspicious that they're the same game, and through some investigation you come to the conclusion that this is the case. What would've been an extremely hard to notice re-release, is actually fairly clear to see comparing IDs.


 * 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 you 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.


 * Example: page Test 123 on the wiki says that a game had only a North American release, and includes only a North American ID (region code E). It looked fine so nobody else bothered to investigate. You check the release data and find that in fact Test 123 had a European release as well, and you even find a European cover for the game on Google Images. You then know that there is a missing European ID, and after a quick search you find it and add it. What looked like a page with all IDs was actually missing one all along, and not knowing the correct release data for the game it would've gone undetected.


 * 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; the GameIDs page will be your friend here.


 * 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 while no sources besides the Dolphin wiki contain six character Virtual Console IDs, you can just fill them out yourself without much hassle. The chart below shows the Virtual Console publisher IDs.

Where do I find IDs?
Now, where do you actually find IDs at? There's five(ish) separate sources for GameID that are out there, so first we'll continue with an overview of these sources, their pros and cons, and then close out with my typical workflow that I've found the most convenient. I will list the sources in order of reliability.

Source #1: Your own dump
The only complete, 100% valid and verifiable source of GameIDs in existence. Maybe a no brainer, but if you have a dump of a game's release then you know for a fact that the ID Dolphin gives you in game preferences is correct. When all else fails, this may be the only place you can turn. The negative here is you actually have to have a copy of the game and dump it yourself.

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. So, searching for a scan of the game's cover is always a good idea when confirming IDs. The ID is also printed directly on the disc as well, in the little text along the bottom. This is a perfectly reliable source like having your own dump, but the problem is that the ID on the cover uses a different format to those used on the wiki; namely, it will only give you the first four characters, leaving out the publisher code. You can piece together the publisher code using the publisher information on the cover, separate sources like GameTDB and the GameIDs page if need be, but at the very least you know with 100% certainty the ID prefix. The other problem that can crop up is that some games just don't have good scans on the internet, so even if you find the cover, you may not actually be able to read the ID on the back, and there's not a whole lot you can do about it in that situation.

If you can't find a back cover scan for a game using the normal sources (GameFAQs, GameTDB, MobyGames, etc.), the next best place to look is actually eBay. A lot of listings use high resolutions pictures of both sides of the game's box or the disc, from which you can read off the ID prefix rather easily. If you know what region the ID was released in, you can even use region-specific eBays to narrow the search; for example, there's an Australian eBay, a British eBay, a German eBay, and even a Swedish eBay called Tradera. Of course, since these aren't databases, listings will come and go and your results will vary. However, they shouldn't be underestimated as a source; for Wii games, you'll be relying on these a lot more than you'd expect. So much so, that below is a convenient chart of all the different online auction sites that you can use while looking for cover pictures. Note that for the best results it's better to use the title in the language of the region, which can be obtained from GameTDB.

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/tmd

The  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, if you don't know the prefix to start with, you can't check that the ID exists. There's been recent efforts to just 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, in my opinion, the most valid of all third party online databases for game data, so I would consider Redump close to the game's cover in validity. When you can't find a cover and don't have the game yourself, this is the next most verifiable source. It also includes some nice formatting to help you out, like showing region flags next to the IDs in the database and telling you the languages of the games to pinpoint where European IDs had their release. Redump's main flaws are a) it uses the same four character prefixes as game covers do, and b) it only includes GameCube games, no Wii data is available. On top of having only the four character prefixes of the game covers, it doesn't actually include any publisher data like the cover does, so piecing together the last two characters is even harder. In conclusion, use Redump as a check for weird GameCube IDs from GameFAQs or GameTDB, but don't rely on it as a 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.

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.

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:

This gives an output of:

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:

Bubble sort (expanded algorithm here):