This seems to be a common issue with a lot of homebrew apps for Gamecube. Rather than giving you the option of enabling 480p by holding B during startup (like most commercial games), 480p mode is forced if the component video cable is plugged into the Gamecube. However, there are a lot of CRT TV's that have component video inputs but do not support 480p. These same TV's are ideal for enjoying the Original video rendering mode on emulators such as snes9x-gx, FCE Ultra GX, etc. Unfortunately when you try to load these emulators on such a setup you are greeted by a black screen or a scrambled rolling picture from the mismatched scan rate.
As a workaround, I have to go through the following routine every time I want to use the Gamecube:
1. Unplug the component cable from the back of the Gamecube
2. Switch TV to composite video input
3. Turn on console and load homebrew app
4. Hot-plug the component cable back into the Gamecube
5. Switch the TV to the component video input.
6. Start playing
I have experimented with setting the Video Mode to NTSC (480i) within the video settings of FCE Ultra, snes9x, and VBA-GX rather than the default Automatic. However it seems that this setting does not take effect until after you load a game. So now the process is:
1. Turn on console with component cable plugged in
2. Load emulator (FCEU etc.)
3. Screen goes scrambled as 480p is forced
4. Blindly load a random game from the menu
5. Video mode changes to NTSC (480i) as dictated in the video settings menu
6. Return to menu and load the game I want to play
After spending the afternoon troubleshooting this problem and digging through the snes9x-gx source code trying to figure out why this is happening, and have found a few clues. It looks like the preferences are not being loaded until after the main menu has been drawn, which means the video is being initialized according to the auto-detection routine. Then I stumbled upon this gem within the function FindVideoMode in video.cpp:
#ifdef HW_DOL
/* we have component cables, but the preferred mode is interlaced
* why don't we switch into progressive?
* on the Wii, the user can do this themselves on their Wii Settings */
if(VIDEO_HaveComponentCable())
mode = &TVNtsc480Prog;
#endif
I hope I have offered a compelling case as to why we should NOT assume that just because we have component cables, it is safe to switch into progressive. The preferred mode should be interlaced, because this offers the best compatibility.
Would it be possible to have someone on the development team look into this?