Recently I noticed that I actually had not released GCVideo-DVI 3.0e, even though it was almost complete in my local repository... So here is the slightly late release:
https://github.com/ikorb/gcvideo/releas ... lease_3.0e
It primarily fixes some Wii issues:
- auto-detects two different board revisions of WiiDual, which could manifest as various issues when using previous versions on the unsupported board version:
- fixes glitchy-looking analog RGB video
- fixes VData0 error in diagnostics
- fixes non-working flasher
- fixes 480p detected as 960i
- BUT: This does not come for free, support for the separate VSync output and the undocumented mode switch pin had to be disabled on WiiDual. This should affect only a tiny minority of users.
removed RGB line swap for analog output on WiiDual, it now uses the same WiiDual-specific (non-Nintendo) RGB pinout as the stock WiiDual firmware
- improved boot-up speed and stability for all Wii builds, no more black screens after WC24 standby (needs a full reflash to fully apply, using the updater only fixes the WC24 standby issue)
- added a menu entry for starting ihe IR button configuration
- Wii updater is now packaged with a meta.xml file for convenient use in the Homebrew Channel
It turns out that the 54MHz signal in the Wii sometimes is not a 54MHz signal - during power-on or resume from WC24 standby(*) it starts at 54, switches to 27 for around 200 milliseconds and switches back to 54 again. The clock multipliers in the FPGA don't like that very much and sometimes fail to generate a stable output clock due to this switcheroo. Fortunately, the audio signals of the Wii start up shortly after the 54MHz clock is stable on both 90 and 65nm Wii chipsets, so GCVideo now waits until this happens before it starts the FPGA's clock multipliers. This makes it possible to use the fast config speed again, reducing the time from poweron to picture noticably though not as low as the Gamecube version(**).
I guess some people will want to make use of this increased bootup speed or maybe even have an older revision on their board that occasionally does not show a picture after turning on their Wii, but would prefer not to dismantle their Wii to connect their board to an external programmer. Therefore, I have built a special tool that updates the bootloader/flasher part of GCVideo, which a normal update does not touch. The downside is that using this tool may brick your GCVideo-DVI board because the process cannot be made 100% safe - if this happens, e.g. due to a power outage, you must dismantle your Wii and use an external programmer to fully reprogram the on-board flash.
The tool can be found here:
https://snowcat.de/flasher-updater-3.0e-wii.zip It uses a two-step process: First, it replaces the main firmware with a special flasher version, which is able to reprogram the entire memory of GCVideo-DVI. This special flasher can be recognized by its inverted black-on-white color scheme. After the old flasher has rebooted into this special flasher, it checks the flickering update data image again for a full update and writes it to the board if you tell it to. This second step is the one that has a brick chance, because there is no reliable way to provide an emergency fallback when the booter/flasher firmware is replaced. If you decide to not risk it at this point, you need to force a reguar firmware update by fully powering off your console (no WC24 standby!) followed by holding the IR config hardware button while turning it on again. This triggers the regular flasher which has not been replaced at this point and you can use the normal updater.dol to replace the special flasher with the regular firmware. If you do use the special flasher, it will do a full replacement of the firmware and your board will be updated to 3.0e in the same step.
To use the special updater, start it from the Homebrew Channel and select About->Update firmware in the GCVideo-DVI OSD. If you don't have that option in the About menu, your GCVideo-DVI firmware version is too old to be updated without using an external programmer. If you do have this option, but the flasher does not recognize the update, you may have a revision of Wii-Dual that is only supported starting from version 3.0e and you need an external programmer to install it.
Note: This special flasher is provided purely as a convenience and there is no warranty. Although it worked for me when I tested it once, it likely still contains bugs and can brick your GCVideo-DVI board. Do not use it unless you understand that you may need to dismantle your console and use an external programmer to return your GCVideo-DVI board to a working state.
(*) Recommendation: Turn off WC24 standby. The servers have been turned off a few years ago, so nowadays the only thing it has to offer is a yellow LED on the power button and increased power consumption.
(**) No, a real Gamecube does not play this clock switching game.
Oh, and I'm thinking about removing the SPDIF output at least for GCDual and WiiDual in a future release to free up some space and reduce headaches due to clock domain crossing. Enhanced DVI audio will still work.