Someone at Sumo Digital thought fanart of Sonia from Sonic Underground was official Amy art. This game released for other consoles and this error was quickly patched.
The Wii version on the other hand was doomed to keep the Sonia artwork forever... That is until I found out I wanted to know how difficult it would be to change it myself.
First I used Dolphin and load into the Roulette Road level to dump the textures to get the exact dimensions.
Here's the one for the black queen, there is also a red queen version.
I guess a cool thing would be to make Red Queen Amy and Black Queen Blaze, but since the amount of care is almost as low as Sumo Digital's I'm going to stick with Blaze.
Using the file monitor in Dolphin we can see which files are loaded when the level is selected. Two files stick out: CasinoPark_Medium.sif (8MB) and CasinoPark_Medium.sig (6MB)
Now switching to a hex editor to see what's inside these files, the .sif files contained names for the textures but no sign of the textures themselves. However the .sig file seemed to be nothing but textures stacked on top of each, with the amount of detail these levels have it was safe to assume the texture format was probably gonna be CMPR.
Dolphin does have a handy "texture format overlay" option to id a loaded texture's format, we can use that to confirm the format right away.
We now know the width/height and format, which gives us the exact size too, 0x2000 bytes.
So how do we track this tiny texture in a 6 MB file? I thought corruption would be a good option, but that quickly revealed a problem, because the texture is stamped on a bunch of surrounding things, getting rid of textures randomly breaks the visual for the Sonia texture, without actually modifying the texture I want.
Now, another option would be to write various 00s and use dolphin's dumper until you spot the modified texture, but this would take way too long.
In the end I found a very easy fix: just get a bunch of texture converters for the dumped texture and compare the result of each in a hex editor, select various patterns and use them to look for the texture in the .sig file. I used brawlbox and gxtexconv from libogc to convert the texture.
After just a few tries I found the matching texture, but a new issue popped up, I also need to find the mipmaps, otherwise the game will swap between Sonia to Blaze as I get closer in-game. Luckily, I just guessed the mipmaps would be after the texture in the .sig file, it uses 64x64, 32x32, 16x16, 8x8, and 4x4. There's not much reason to replace the really low ones though.
Turns out it wasn't hard to achieve this after all, though everything did work in my favor.
Result:
DL mirror
Pack contains the modified .sig file, plus an xml to load it with Riivolution, however if you want to rebuild as an iso/wbfs, and you want to keep both the Sonia and Blaze files for whatever reason,
this code will allow the game to load CasinoPark_Mediu2.si* (meaning both .sig and .sif are affected.) So, all you have to do is copy those files, rename, and rebuild with "wit" wiimms iso tool. If you go this route, you might as well save some space by deleting the video copies with 25 in the title, these are unused in the NTSC-U version at least, and some of the root files as well (.elf), you can get it from 2.52 GB to 2.30 GB.
The Wii version on the other hand was doomed to keep the Sonia artwork forever... That is until I found out I wanted to know how difficult it would be to change it myself.
First I used Dolphin and load into the Roulette Road level to dump the textures to get the exact dimensions.
Here's the one for the black queen, there is also a red queen version.
I guess a cool thing would be to make Red Queen Amy and Black Queen Blaze, but since the amount of care is almost as low as Sumo Digital's I'm going to stick with Blaze.
Using the file monitor in Dolphin we can see which files are loaded when the level is selected. Two files stick out: CasinoPark_Medium.sif (8MB) and CasinoPark_Medium.sig (6MB)
Now switching to a hex editor to see what's inside these files, the .sif files contained names for the textures but no sign of the textures themselves. However the .sig file seemed to be nothing but textures stacked on top of each, with the amount of detail these levels have it was safe to assume the texture format was probably gonna be CMPR.
Dolphin does have a handy "texture format overlay" option to id a loaded texture's format, we can use that to confirm the format right away.
We now know the width/height and format, which gives us the exact size too, 0x2000 bytes.
So how do we track this tiny texture in a 6 MB file? I thought corruption would be a good option, but that quickly revealed a problem, because the texture is stamped on a bunch of surrounding things, getting rid of textures randomly breaks the visual for the Sonia texture, without actually modifying the texture I want.
Now, another option would be to write various 00s and use dolphin's dumper until you spot the modified texture, but this would take way too long.
In the end I found a very easy fix: just get a bunch of texture converters for the dumped texture and compare the result of each in a hex editor, select various patterns and use them to look for the texture in the .sig file. I used brawlbox and gxtexconv from libogc to convert the texture.
After just a few tries I found the matching texture, but a new issue popped up, I also need to find the mipmaps, otherwise the game will swap between Sonia to Blaze as I get closer in-game. Luckily, I just guessed the mipmaps would be after the texture in the .sig file, it uses 64x64, 32x32, 16x16, 8x8, and 4x4. There's not much reason to replace the really low ones though.
Turns out it wasn't hard to achieve this after all, though everything did work in my favor.
Result:
DL mirror
Pack contains the modified .sig file, plus an xml to load it with Riivolution, however if you want to rebuild as an iso/wbfs, and you want to keep both the Sonia and Blaze files for whatever reason,
this code will allow the game to load CasinoPark_Mediu2.si* (meaning both .sig and .sif are affected.) So, all you have to do is copy those files, rename, and rebuild with "wit" wiimms iso tool. If you go this route, you might as well save some space by deleting the video copies with 25 in the title, these are unused in the NTSC-U version at least, and some of the root files as well (.elf), you can get it from 2.52 GB to 2.30 GB.
Code:
Keep Sonia texture as CasinoPark_Mediu2
287D8120 00006D00
027D8120 00003200
E0000000 80008000