Hacking games to run at 60fps?

Game Hacks, Trainers, Cheats

Moderator: Ralf@gc-forever

Post Reply
koolaid
Posts: 3
Joined: Sun Jan 25, 2015 9:20 pm

Hacking games to run at 60fps?

Post by koolaid » Sun Jan 25, 2015 9:31 pm

Hello all! Hopefully this is the right board to post this in...

I made a patch for Dolphin for Super Mario Sunshine a few weeks a go that seems to make the game render double the amount of frames. By adjusting the frame limit of Dolphin or by enabling the vbeam hack, you can actually play the game in 60fps.

I made a thread with more information here. You can watch a video with the patch in action here:



For convenience, here's how to apply the patch in Dolphin:
To use in Dolphin, just follow these steps (make sure you have the NTSC-U versions of SMS, GMSE01):
1.) Right click on the game in the game list and go to Properties
2.) Click the "Patches" tab and click "Add..."
3.) Give the patch a name, tick "dword", and set the Offset to 804167B8 and Value to 3F800000
4.) Click "OK", and make sure the patch is ticked.
5.) Click "Config" at the top of the main window, and under the "General" tab set "Framelimit:" to 120. OR - enable the Vbeam hack by right clicking the game in the games list, go to Properties, and put a checkmark next to the Vbeam hack.
6.) Click "OK" and play!
But my question is, has anyone ever tried hacking other games to produce more frames? I know modifying the frame limit of certain games can cause certain side effects (breaking things, crashing, animation timing, etc), but it got me curious since now Dolphin has the ability to simulate an overclock of the cpu.

I attempted at Wind Waker/Twilight Princess/Wave Race for the past few days but had no success. I've been using the symbol mappings provided by the game, and couldn't find anything that directly affects the number of frames rendered. :(
koolaid
Posts: 3
Joined: Sun Jan 25, 2015 9:20 pm

Re: Hacking games to run at 60fps?

Post by koolaid » Wed Feb 04, 2015 3:42 pm

Small bump, but I managed to get Pikmin 2 working very well with 60fps:

The following is a Dolphin memory patch for the NTSC-U version of the game.
0x8014B778:dword:0x38800001
0x8021C674:dword:0x38800001
0x8021CF64:dword:0x38800001
0x8044CD88:dword:0x38800001

There are a few problems with the patch. The animations during cutscenes run too fast and they cause all the models to freak out sometimes, but nothing that breaks the game outright. I'm unsure if this breaks anything gameplay wise but it doesn't seem to. It even makes the multiplayer run at 60fps too. :)

I would love it if other people were looking into getting 60fps in other games as well.
q8v08
Posts: 51
Joined: Wed Dec 17, 2014 8:23 pm

Re: Hacking games to run at 60fps?

Post by q8v08 » Thu Feb 05, 2015 10:57 pm

Is this a floating point value?

3F000000 = x0.5
3F800000 = x1
3FC00000 = x1.5
40000000 = x2
etc
koolaid
Posts: 3
Joined: Sun Jan 25, 2015 9:20 pm

Re: Hacking games to run at 60fps?

Post by koolaid » Thu Feb 05, 2015 11:11 pm

38800001 is byte code for "li r4, 1" if I remember correctly. There's a function in Pikmin 2 that changes the frame rate based on the integer you pass to the function. The patch replaces the original "li r4, 2" instructions that set the function parameter with "li r4, 1". Loading 2 halves the frame rate to 30, loading 1 leaves the frame rate to run at 60. There are a few other places in the executable that look at this function, but those instances load whatever contents exist in certain registers to r4 before jumping to the function which makes it a little tricky to patch. I figured that the patch as it affects pretty much the entire game so patching those few remaining instances are unnecessary.

By the way, I forgot to mention that I could easily port the patch to other versions of the game as well. Pikmin 1 is pretty different in comparsion to Pikmin 2, so patching that game to run at 60 fps is giving me some difficulty. However, it is possible that the game can run at 60 fps (enable the VBeam hack in Dolphin and play the game and you'll see what I mean). I have no idea why this happens only in Pikmin 1 though. I'd like to create a code for this game too, but it's not as obvious as Pikmin 2.
Post Reply