Game Modification: 60 FPS Hacks in Dolphin

Playing a game in Dolphin instead of the GameCube or Wii can make a huge difference in visual quality. With HD output, Dolphin can bring the best out of many stunning titles. But beyond that, an assortment of crazy enhancements, including 3D output, free camera, widescreen hacks, a higher clocked emulated CPU and much more, can absolutely transform titles into new experiences even for veterans after many playthroughs.

Super Mario Sunshine is a beautiful GameCube platformer released in 2002. While its sequels on the Wii, Super Mario Galaxy 1 and 2 run at a fluid 60 frames per second, Super Mario Sunshine is only a 30 FPS (or 25 in PAL) game.

While an emulator can't do much on its own to increase the framerate of a game, one of our users, ehw, believed that it would be possible to modify the game to run at a higher framerate. Mixed with the enhancements in Dolphin, ehw modified Super Mario Sunshine to run at 60 FPS without doubling the speed of the game!


Super Mario Sunshine @ 60 FPS

Watch in 1080p60 for the best experience!


Super Mario Sunshine's current 60 FPS hack comprises of three (and an optional fourth) part. Firstly, the vbeam speedhack has to be turned on in order to modify the timings of the emulator. It's possible that simply flipping Dolphin's framelimit to run at 120 FPS would be fine, but the emulator stretches audio at non-standard framerates, blocking this possiblity for now. Secondly, a small game patch is applied. This actually makes the gameplay run half speed at 30 FPS. Thirdly, Dolphin's audio timings are modified to run at half speed; so the game also sounds normal at double speed. Lastly, on some versions of the hack, the level select cheat is required to get into certain stages.


Super Mario Sunshine Higher FPS Patches

  • 0x804167B8:dword:0x3F600000 - Slightly slower 60 FPS Patch, but runs perfectly.

  • 0x804167B8:dword:0x3F800000 - even smoother 60 FPS Patch, but breaks things.

  • 0x804167B8:dword:0x40000000 - 120 FPS hack for those with high framerate monitors.


By applying patch into Dolphin's INI and then enabling it, along with the steps above, Super Mario Sunshine will run at 60 FPS. This is the key ingredient that makes it all work. For a more technical, the creator wrote an explanation on the inner workings of the process and final patch.

Depending on the value of the patch, you can get a near perfect 60 FPS hack where the game is completable, or an even smoother variant that breaks certain stage portals. There is also a 120 FPS hack for those with high framerate monitors and T.V.s, but it breaks things just like the smoother variant of the 60 FPS hack. Super Mario Sunshine is an absolute joy to play at 60 FPS, and fans of the game should truly enjoy the work put forth.

On another note, ehw also came up with more hacks for Pikmin 2 and Gauntlet: Dark Legacy. Pikmin 2 is completely playable with just the patch, but some cutscenes seem to play at double speed. Gauntlet Dark Legacy requires setting the framelimit to 120 and setting the CPU Clock Override value to 300 - 400% (!) in order to maintain 60 FPS at all times, and even then some animations are a tiny bit strange due to running at 30 FPS with no interpolation. This makes the game very difficult to run at 60 FPS on all but the most powerful computers. Considering that it was a 15 - 20FPS game on console, the difference here is even greater than the other hacks.


Pikmin 2 @ 60 FPS


Pikmin 1 is even stranger; it requires no game-side patch. Simply enable the vbeam speedhack and tell Dolphin's audio output to make it run at 60 FPS without side effects! There are also a variety of hacks/patches that have existed for Super Smash Bros. Melee and Brawl to make them run at pretty much any framerate without problems, including 30 FPS, 120 FPS and beyond. This is mostly done by using the settings for their slow motion modes, and unfortunately can't be done in other games.

With these four games brought up to 60 FPS, it can only make people wonder if other titles could be brought to 60 FPS in a similar way. Think about all of the seminal titles with huge, sprawling worlds that could be made more beautiful with an even better framerate. Anyone can experiment, dig around and try things as long as they have the game. Do note that reverse engineering chops may be needed for some games more than others.

Hopefully with the potential power of these patches on full display, Dolphin will see more patches and better versions of the existing patches in the future!

For those looking for more information on the patches and how they were made, please checkout the following links.

Super Mario Sunshine - http://jul.rustedlogic.net/thread.php?id=17475
Pikmin 2 - http://jul.rustedlogic.net/thread.php?id=17484

For users wondering about the audio hack. It was this line in SystemTimers.cpp that was modified:

int period = CPU_CORE_CLOCK / (AudioInterface::GetAIDSampleRate() * 4 / 32 * fields);

By adding a multiplier of two at the end (before the semicolon), you'll break audio in almost everything except certain titles running with a 60 FPS patch. This is how audio was fixed in Super Mario Sunshine, for instance.


Update

As of 4.0-5432 the vbeam speedhack was removed due to concerns that more 60 FPS patches would rely on broken behavior. In order to promote well made patches (that could in theory work on console even, given enough power) the hack was removed. What does this mean for the featured Super Mario Sunshine and Pikmin 2 hacks? Not all that much. For Super Mario Sunshine, simply setting the framelimiter to 120, and things will continue to work as per normal.

This was a concern that was no expressed until multiple 60 FPS hacks showed up relying on the vbeam speedhack. Developers realized that the (incomplete and broken) vbeam speedhack was not in Dolphin's long term plans, and thus axed it before there was a heavy reliance on it by potential framerate hacks.

Du kan fortsette diskusjonen i forumtråden for denne artikkelen.

Neste oppføring

Forrige oppføring

Liknende oppføringer

  • No similar entries.