Dolphin, the GameCube and Wii emulator - Forums

Full Version: [Unofficial] Widescreen Development Topic + Archive
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Its the Y-FOV.
(03-13-2016, 11:21 AM)gamemasterplc Wrote: [ -> ]Its Not Easy. Here's something you can try for 3D games.

Step 1.
Open Dolphin Debug Mode

Step 2.
Search for FFA01090 in the Cheat Search included with Dolphin.

Step 3.
Set a execute breakpoint on the addresses found until one is constantly executed when 3D is displayed.

Step 4.
If one is found that executes when 3D is displayed look at the function that called it for loads to f2 right before the call.

Step 5.
Try writing 40000000 to the address to see if the view has gotten wider. If not write a function that multiplies the float in f2 by 4/3 and moves it to f29 at the address that is constantly executed.

FFA01090 decodes to an instruction to moves f2 to f29.
Not all games work with this method.

I tried doing this with Pokemon Colosseum JP, but when I search for FFA01090 in Cheat Manager, it says there are too many results to display. Am I doing something wrong, or does this method just not work with this game?
You can open a RAM Dump and search for FFA01090 93E10024 and you can write a function at the adddress you get that multiplies f2 by 4/3 and moves it to f29 as an alternative way of doing step 2 and 3.
To make a RAM Dump follow the tutorial at https://www.youtube.com/watch?v=90NM58D2xYc.
Kurausukun search for 32 bit value.
So I found the value in my ram.raw dump at 0x000A15DC, but I'm not sure what you mean by "a function that multiplies f2 by 4/3 and moves it to f29." Could you explain briefly what you mean by that, and what f2 and f29 are?
The function that I'm talking about loads 3FAAAAAB into r14 first.
Then, it stores it at the address of the rtoc.
Third, it loads the value at the address of the rtoc into f19.
Fourth, it multiplies f2 by f19 then stores the result of that multiplication into f2.
Last, it moves f2 into f29

f2 and f29 are floating point registers.
The rtoc is equivalent to r2 and the value never changes.
Generic Widescreen Gecko Code:
F6000001 80008180
FFA01090 93E10024
D2000000 00000003
3DC03FAA 61CEAAAB
91C20000 C2620000
EFB300B2 00000000
E0000000 80008000
F6000001 80008180
FF601090 7C7F1B78
D2000000 00000004
3DC03FAA 61CEAAAB
91C20004 C2220004
EF7100B2 39C00000
60000000 00000000
E0000000 80008000
I think you're assuming I know more about this than I actually do. I don't know what a "register" means in this case, I have no idea where I would find one, and I have no idea how I would implement this function even though you told me what to do. I think what I'm gathering is I don't know nearly enough to be making one of these codes yet, which is a shame because I honestly don't expect someone to make a code for Colosseum JP anytime soon; I think I'd have to do it myself to get anything done. If you're willing to specifically help me, then maybe we should talk somewhere else, but I'm not assuming that you're going to assist any random person who wants to make a code.
(03-14-2016, 09:36 AM)gamemasterplc Wrote: [ -> ]Generic Widescreen Gecko Code:
F6000001 80008180
FFA01090 93E10024
D2000000 00000003
3DC03FAA 61CEAAAB
91C20000 C2620000
EFB300B2 00000000
E0000000 80008000
F6000001 80008180
FF601090 7C7F1B78
D2000000 00000004
3DC03FAA 61CEAAAB
91C20004 C2220004
EF7100B2 39C00000
60000000 00000000
E0000000 80008000

What's this? Do you want me to archive this?
Does it work for all games?