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.

TMD scrape script
Adapted from User:PowerKitten's script to work on Linux.

Open a terminal, make a TMDs directory, then save the following script to your desktop in a text editor as :


 * 1) !/bin/bash

cd ~/TMDs && curl -f http://ccs.cdn.shop.wii.com/ccs/download/00010001{41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F,50,51,52,53,54,55,56,57,58,59,5A}{30,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F,50,51,52,53,54,55,56,57,58,59,5A}{30,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F,50,51,52,53,54,55,56,57,58,59,5A}{41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F,50,51,52,53,54,55,56,57,58,59,5A}/tmd --output 00010001#1#2#3#4.tmd

Then in your terminal run  and it'll begin scraping the 850,000 possible IDs.

Make a copy of the ~/TMDs directory to ~/TMDcopy, and make another folder ~/renamedTMD. This is the C program I used to rename them all to Dolphin's 6-character IDs (pls no bully I wrote this, not portable, requires changing all the numbers and the username from "xerxes" to your username because I'm garbage):


 * 1) include 
 * 2) include 

char hexToChar(int n) { switch (n) {		case 0x0: return '0'; case 0x1: return '1'; case 0x2: return '2'; case 0x3: return '3'; case 0x4: return '4'; case 0x5: return '5'; case 0x6: return '6'; case 0x7: return '7'; case 0x8: return '8'; case 0x9: return '9'; case 0xA: return 'A'; case 0xB: return 'B'; case 0xC: return 'C'; case 0xD: return 'D'; case 0xE: return 'E'; case 0xF: return 'F'; default: return '0'; }	return '0'; }

int main {	char fromfilename[100] = {0}; strcpy(fromfilename, "/home/xerxes/TMDcopy/000100014A414A4A.tmd\0"); char tofilename[100] = {0}; strcpy(tofilename, "/home/xerxes/renamedTMD/JAJJ01.tmd\0"); char buffer[2] = {0}; FILE *file; int count = 1; int i, k, m, o;	for (i = 0x41; i <= 0x5A; ++i) {		fromfilename[29] = hexToChar(i / 16); fromfilename[30] = hexToChar(i % 16); for (k = 0x30; k <= 0x5A; ++k) {			if (k == 0x3A) {				k = 0x41; }			fromfilename[31] = hexToChar(k / 16); fromfilename[32] = hexToChar(k % 16); for (m = 0x30; m <= 0x5A; ++m) {				if (m == 0x3A) {					m = 0x41; }				fromfilename[33] = hexToChar(m / 16); fromfilename[34] = hexToChar(m % 16); for (o = 0x41; o <= 0x5A; ++o) {					fromfilename[35] = hexToChar(o / 16); fromfilename[36] = hexToChar(o % 16); ++count; if ((file = fopen(fromfilename, "rb"))) {						tofilename[24] = i;						tofilename[25] = k;						tofilename[26] = m;						tofilename[27] = o;						fseek(file, 0x198, SEEK_SET); fread(buffer, 1, 2, file); tofilename[28] = buffer[0]; tofilename[29] = buffer[1]; printf("%d\t\t%s\n", count, tofilename); fclose(file); rename(fromfilename, tofilename); }				}			}		}	} }

With that done, this should rename and then move each TMD file to an appropriate "ID".tmd file with the ID used by Dolphin within the ~/renamedTMD folder. Then you're done!

Trivia
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.