60FPS Hacks

Edit: Many of the hacks I’ve made can be found here: https://forums.dolphin-emu.org/Thread-game-modification-60-fps-hacks-and-patches?page=10

I’ve been working on figuring out how to hack 30fps games to run at 60fps or faster the past two days with some success.  In some games it is very easy to find these codes, because they have a variable frame rate. Most games that run below 60fps first poll the NTSC frame rate (60fps) then divide it by 2 or 3 to get the desired final frame rate.  Good examples of this are Pikmin 1 and Pikmin 2, ExciteBots for Wii and both N64 Legend of Zelda games.  Finding the codes is as simple as searching for “2” in the Dolphin cheat manager when the game runs at 30fps, then “1” when the game is running at 60fps.  Doing this enough will give you the memory positions of a couple of places where the code could go.  Then you can write an Action Replay code to force the memory value to 1 for a solid frame rate of 60fps.

There are other games that use a similar principle, but instead use floating point values.  Final Fantasy Fables: Chocobo’s Dungeon uses this scheme.  Searching for the floating point “0x3f800000” (1.00) during the 60fps menus and “0x40000000” during the 30fps games can net you the addresses needed.  Forcing the value to 1.00 or 0.80 gives you a frame rate of 60fps and 75fps respectively.  This website can calculate the floating point values for you by they way: http://www.h-schmidt.net/FloatConverter/IEEE754.html, if you’d like to find some on your own.

It’s not all this easy though.  Some games have side effects due to lazy programming, and have issues when the frame rate is changed.  It requires a lot of extra work to fix that!  Also, games without a variable frame rate can’t be found this way!  One idea I had was to force the easier to find NTSC frame rate in Super Mario Sunshine to a higher value, but that caused crash on initialization, so that was a failure.

Anyway, someday I think it would be worth it to figure out a way to bruteforce these codes.  A bruteforcer like this would be somewhat tricky.  How do you detect when the frame rate has changed?  You could check the frame rate indicator, but some games slow down instead (requiring the frame limit to be doubled), so that wouldn’t work for everything.  Also, do you attempt to force the memory locations, searching for 60, 30, 2 and floating point versions of these numbers?  Is it better to go through the actual functions are try and force values there?

I think we’ll have to find some more 60fps codes before this is clear!  More research is needed…

One thought on “60FPS Hacks

Leave a comment