I would've posted this on gc-forever but I lost the password and the password reset system doesn't email me, and I refuse to post on gbatemp anymore.
Since I already went through the trouble of getting the game and testing it I might as well send it your way.
I don't know about those tools you tried, the widescreen code here is very small and it's a bit overkill to inject the gecko code handler to write and check every frame, or several times a frame depending on the hook. So I decided to breakpoint on the address that's checked by the gecko code, and branch to an asm version of the gecko code. That means the execution of the code only occurs every time the game wants to write to that address. It should effectively work the same way as the gecko code but better, though you never really know without testing the whole game.
From what I gather, the code is always writing to make 3D projection widescreen but if the main menu is active it's switched back to 4:3.
Besides the main.dol, this game loads default.dol from the root of the fst, both are identical so you can apply these changes to both of them. However, default.dol seems to be the only one used by the game.
Here's what you need to do:
- Extract default.dol from the game files.
- Open it in a hex editor like HxD.
- Go to dol address 0x818 and you should see the bytes "93 DF 00 10" change them to "48 1C 7E B8"
- Now go to address 0x1C86D0, you should see some debug text, this space is always unused in GC and Wii games so I like to use it for small hacks like this.
- Starting at 0x1C86D0 overwrite the bytes with: 93DF0010 3D20802E 3C003FE3 60008E39 6129B2D8 90090000 3D60801D 616B43F0 800B0000 2F800001 40BE0010 3C003F9B 6000E76D 90090000 4BE38114
Devolution doesn't remove deflicker when forcing progressive scan, so at address 0x167466 you can replace the bytes with 00 00 15 16 15 00 00 to make the game even sharper.