Sonic Heroes EX --- Is a collection of enhancements for the GameCube version of Sonic Heroes.
Idea 1: Hi, I'm a Sonic fan. I like it when the games I play are rich on features and content. So check it out Sonic Heroes on the GameCube lacks an option to switch the character voices to Japanese! How can this be? The previous games had this option! It's always bothered me, I tried just playing the Japanese version, but I never quite liked having two copies of the same game with minor differences. Not really minor but it is minor in terms of space, 300 MB vs 800 MB of other identical game data. I needed to bring the two together, so I did. Now you just hold the Y button during boot up to switch to the Japanese audio, simply press reset to switch back, or do the reset combo B+X+Start.
Idea 2: Hi, again. Remember when I said I like games rich on features and content? Well Sonic Heroes is a game that has all that if you ask me. See, there's just one problem, when the game has extra content and it locks it away from you in some way. Sonic Heroes did this by including groovy character costumes and not allowing the player to use them outside a (very) limited play mode. File replacement is easy, lazy, and uninteresting, what I did was make use of the costumes without having to alter any files, it's all done in memory and is enabled the same way you would do in multiplayer mode. By holding Y+A before loading a stage, the characters will appear in their metal costumes.
The rest: I just wanted those two things, but since the English subtitles always display the same dumb errors I decided to hunt for all the errors I could find, about 14 errors have been corrected. Finally, this game has an interesting issue with one of the settings, the Anti-Flicker controls a GC feature commonly called deflicker, which blurs the screen to prevent flicker, the setting works... in-game, but if you turned it OFF the next time you load the game it will be enabled again! Since the DF stuff is pointless on Wii because Nintendont can force it on/off, I decided to use this setting to toggle a special mode that makes the player unable to collect rings! Simple yet effective, it forces the player to use the less risky attacks.
Technical info 1: The code works in three stages, it first checks to see you're at boot stage, during this stage the game copies a file to memory and never accesses again from the disc (unless you reset.) This file which is around 1MB contains a small amount of character voices used for quick access, "I'll take it from here!" type of lines. Luckily the NTSC-U version contains the file for these Japanese lines already! So that's easy, I just change it in memory, the second stage loads the huge AFS file containing the rest of the voices, this file is accessed every time a line is called, but it must be changed at boot time otherwise you end up with wrong sounds. The game is missing this file, so I make use of an unused file and inject the Japanese AFS into it using a GC image rebuilder and change in memory the AFS path to the desired one. The third and final stage is a hidden setting in the Sonic Heroes save file, which controls audio timings, without patching this the Japanese voices can be overlapped by other lines, most notably during the "Let's blast through with sonic speed!" where there will be a big gap between Sonic's line and Tails' Knuckles' lines will play at near the same time. Fortunately I am able to patch this without affecting the save file, so if you switch to the regular voices I just let the game reset this.
Technical info 2: For the metal costumes there's not much to say, I just check if we're on a loading screen, and then just patch away, once the loading screen is done, I reset the values. Button checking is active throughout the loading screen that means that if you're too late the result will be different, for example, if you hold Y+A during the middle part of the loading screen, there's a chance only the power character will be metal, or both flight and power will be metal but not speed. Only the speed character is at a risk of missing textures if you hold at the wrong time.
What's in the download?
A guide on how to set things up, a mod of nintendont ready to be loaded from the homebrew channel, and the files needed to build the new ISO image.
Here's a quick overview: you take a clean ISO and extract it, replace the files, rebuild, you put the modded ISO in your SD/USB along with the .gct file, you boot the special nintendont build from the hbc and you're done.
You absolutely need to use the included nintendont version because there's a hard limit on how big GameCube ISOs can be in the official version. If you fail to follow this it will shut down the console.
SuperrSonic (Diego A.) - Main idea, modified Nintendont, and the rest of the codes.
Dolphin wiki for the 2P 60fps code.
libertyernie for making nincfg possible via meta.xml args.
Sewer56 for the Hint Editor.