diff options
| author | gigaherz <gigaherz@gmail.com> | 2008-11-26 02:07:29 +0000 |
|---|---|---|
| committer | gigaherz <gigaherz@gmail.com> | 2008-11-26 02:07:29 +0000 |
| commit | 3f52c6951375fe93095ccdc72814933d7d15f4e2 (patch) | |
| tree | 2c6f2b41c0995c2a2db6770ab6848d8498cfacfa /Source | |
| parent | 5c490950691430c1d4352e13b6ce6e918049c73c (diff) | |
Added some ugly shitty code which will let ppl paste the masterkey in hex into a masterkey.txt file and let the emu convert it to binary.
Feel free to make it nicer if you want to.
Requested by ector.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1300 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Common/Src/Paths.h | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/Src/VolumeCreator.cpp | 34 |
2 files changed, 34 insertions, 2 deletions
diff --git a/Source/Core/Common/Src/Paths.h b/Source/Core/Common/Src/Paths.h index cb3e19b6a4..54dad7d1c8 100644 --- a/Source/Core/Common/Src/Paths.h +++ b/Source/Core/Common/Src/Paths.h @@ -59,6 +59,7 @@ #define GC_MEMCARDB "MemoryCardB.raw" #define WII_MASTERKEY "masterkey.bin" +#define WII_MASTERKEY_HEX "masterkey.txt" #define WII_EUR_SETTING "setting-eur.txt" #define WII_USA_SETTING "setting-usa.txt" #define WII_JAP_SETTING "setting-jpn.txt" @@ -109,6 +110,7 @@ #define DSP_COEF_FILE FULL_GC_SYS_DIR DSP_COEF #define WII_MASTERKEY_FILE FULL_WII_SYS_DIR WII_MASTERKEY +#define WII_MASTERKEY_FILE_HEX FULL_WII_SYS_DIR WII_MASTERKEY_HEX #define WII_EUR_SETTING_FILE FULL_WII_SYS_DIR WII_EUR_SETTING #define WII_USA_SETTING_FILE FULL_WII_SYS_DIR WII_USA_SETTING #define WII_JAP_SETTING_FILE FULL_WII_SYS_DIR WII_JAP_SETTING diff --git a/Source/Core/DiscIO/Src/VolumeCreator.cpp b/Source/Core/DiscIO/Src/VolumeCreator.cpp index 862cb028bf..69b846b86b 100644 --- a/Source/Core/DiscIO/Src/VolumeCreator.cpp +++ b/Source/Core/DiscIO/Src/VolumeCreator.cpp @@ -127,8 +127,38 @@ IVolume* CreateVolumeFromCryptedWiiImage(IBlobReader& _rReader, u32 _VolumeType) FILE* pT = fopen(WII_MASTERKEY_FILE, "rb");
if (pT == NULL)
{
- PanicAlert("Can't open " WII_MASTERKEY_FILE);
- return NULL;
+ PanicAlert("Can't open '" WII_MASTERKEY_FILE "'.\n If you know the key, now it's the time to paste it into '" WII_MASTERKEY_FILE_HEX "' before pressing [OK].");
+
+ pT = fopen(WII_MASTERKEY_FILE_HEX, "r");
+ if(pT==NULL)
+ return NULL;
+
+ static char hexkey[32];
+ if(fread(hexkey,1,32,pT)<32)
+ {
+ fclose(pT);
+ return NULL;
+ }
+ fclose(pT);
+
+ static char binkey[16];
+ char *t=hexkey;
+ for(int i=0;i<16;i++)
+ {
+ char h[3]={*(t++),*(t++),0};
+ binkey[i] = strtol(h,NULL,16);
+ }
+
+ pT = fopen(WII_MASTERKEY_FILE, "wb");
+ if(pT==NULL)
+ return NULL;
+
+ fwrite(binkey,16,1,pT);
+ fclose(pT);
+
+ pT = fopen(WII_MASTERKEY_FILE, "rb");
+ if(pT==NULL)
+ return NULL;
}
fread(g_MasterKey, 16, 1, pT);
|
