Dolphin, the GameCube and Wii emulator - Forums

Full Version: Compressed collection to GCZ, now none of my games work
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
(08-12-2017, 03:34 AM)JosJuice Wrote: [ -> ]Are you sure that you need to do this? GCZ files were only broken in this way if you created them using a version between 5.0-1758 (inclusive) and 5.0-1991 (exclusive). 10 days passed between the regression and the fix.

In case you do need to do this: You need to begin with building Dolphin on your own, if you haven't done that already. There are some instructions at https://github.com/dolphin-emu/dolphin/blob/master/Readme.md. Please respond once you've done that or if you run into any problems with doing it.

The data that you're supposed to add to the beginning of the file is different for each game, but many games will run somewhat correctly even if you use data that's from another game that's for the same console.
Hi!

Yes I need to do this, I had that version of Dolphin, and didn't know compression was a thing. My friend told me to do so. And since I already saw the same files in Dolphin menu, I thought all of them were replaced and I then deleted all my ISO collection Sad

I'll get back to you after dealing with the page you sent me.

Thank you!
I got a PM from Tayyo asking what do to next, but I figured I would post the reply in here instead of in a PM in case it's useful to someone else too.

There are many places in the code where you could add the call to DecompressBlobToFile. I'm going to suggest one place that I think provides a good balance of being easy to add to the code (even if you don't know any C++) and not being too obnoxious to use. (A proper solution would require more code but would be a lot more user-friendly.)

Open the file Source/Core/DolphinWX/GameListCtrl.cpp and search for this line: all_good &= DiscIO::DecompressBlobToFile(iso->GetFileName().c_str(), OutputFileName.c_str(),

Replace iso->GetFileName().c_str() with the path to a GCZ file that you want to decompress. The path must be in quotes. You should use / instead of \ in the path, because otherwise you will have to escape every \. So for instance, it might look like this: all_good &= DiscIO::DecompressBlobToFile("C:/Users/your name/Desktop/example.gcz", OutputFileName.c_str(),

Now, when you want to decompress a GCZ file, put any valid GCZ file in the game list, right-click on it, and press the option for decompressing it. Dolphin will decompress the file that you've entered the path for rather than the file that you actually selected in the game list. You will have to rebuild Dolphin if you want to change the path that's used, so if you want to decompress multiple files, I suggest renaming/moving files one by one to match the path that you entered.

As for the bytes that you'll need to hex edit in afterwards... The first six are the game ID, which you can find on e.g. gametdb.com. The first four bytes of the game ID are also visible on the game box and the inner edge of the game disc. 0x6 is 1 if this is the second disc of a 2-disc game, and 0 otherwise. 0x7 is the revision, which is hard to know accurately without having the correct header from a dump. (It might be visible on the inner edge of the game disc, though...? Either way, this is often 0, so 0 is a good guess if you don't know.) 0x8 and 0x9 are 0 if your game is not on this list. If the game is on that list, 0x8 is 1, but I'm less sure what 0x9 is supposed to be. 0x1C-0x1F must be 0xC2339F3D for GameCube games, and 0x18-0x1B must be 0x5D1C9EA3 for Wii games. All other bytes of the 0x20 bytes (32 bytes in decimal) that you need to add are supposed to be 0.
Actually, on second thought, the list that I linked to isn't entirely accurate for this purpose, because some games enable DTK (i.e. 0x8 is 1) even if they don't use it (i.e. the game is on the list). This shouldn't affect your ability to play the game, though. (I mean, Dolphin doesn't even check that byte the way things are right now...)
On third thought... You could probably have skipped building Dolphin on your own. Using an unmodified build of Dolphin, if you put a valid GCZ file in the game list, then replace that GCZ file with an identically named corrupted GCZ file after Dolphin has scanned the game list, and then select to decompress the GCZ file that's listed in the game list, Dolphin should decompress the corrupted GCZ file. Sorry for not thinking of that earlier Sad
(08-12-2017, 05:24 AM)JosJuice Wrote: [ -> ]On third thought... You could probably have skipped building Dolphin on your own. Using an unmodified build of Dolphin, if you put a valid GCZ file in the game list, then replace that GCZ file with an identically named corrupted GCZ file after Dolphin has scanned the game list, and then select to decompress the GCZ file that's listed in the game list, Dolphin should decompress the corrupted GCZ file. Sorry for not thinking of that earlier Sad

Hahah! Low tech beats the high tech! Smile  No need to be sorry, you've spent your valuable time to help me, that is what counts. THANK YOU! 

Though the hex editing thing is way above my level. I'll have to dump my games again. Luckily I only had sixteen games.

Have a good weekend!
Pages: 1 2