Dolphin, the GameCube and Wii emulator - Forums

Full Version: Would it be possible to hack a specific game to run at 30 fps instead of 60?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
(06-28-2014, 03:32 AM)JMC47 Wrote: [ -> ]RachelB: There are a few games that you could modify Dolphin for that work with a 30 vps hack. Melee, Brawl, Wind Waker, and Twilight Princess all get speed benefits from the hack, even though the Zelda games were already 30 fps. That actually does give a fairly big increase to FPS, or at least it used to. Nowadays with the GPU thread limitedness of Dolphin, it'd probably be less than 5 - 10% in dualcore mode.

Well bummer. Still wouldn't hurt to try that V-Beam thing, though. Right? Or am I mistaken?

Right, vps is the word we should have been using from the start. Oopsies!
I wonder if RachelB will get what we mean now ;b
From what I've read, the V-beam speed hack will make a game run faster, but not slower.

After some research, It seems that the only way to change the framerate is to find out what code in the game is controlling motion parameters. If you were to simply change the framerate itself, games would run the same as if the frame limiter in Dolphin's settings were set to a higher or lower rate, meaning faster and slower game
play. This is not what we want, and the reason this happens is because the game's motion is frame dependent. PC games do not slow down at lower frame rates because their motion is bound by time and not individual frames. This means that if you want to change the frame rate, you have to change the rate in which motion is spread across the frames. So if you wanted a lower framerate, you would increase the motion speed twice and the opposite for a higher one. Now finding out what code in the game that is responsible for motion is the most challenging part (for me anyway, given my skills). Apparently, there were some folks on the PCSX2 forums that were able to find the code in Kingdom of hearts II using Cheat Engine (Google "Kingdom of Hearts II 60fps hack" to read the thread) They show that is is possible, but it's a matter of finding the codes. One user said something about finding CE tables for motion, but I'm not sure what they meant. Anyway, that's about I could find out on how to achieve this. If we can find the codes in Cheat Engine, record them and make game specfic patches to alter the motion speed, then it seems we have a fesable way to do this. If the devs find a way to intercept the code at runtime in Dolphin itself and give the user the option to change the speed, that would be even better; however, I don't know if that's even fesable given the diversity of how games might handle motion.

So, that's about where I'm at with this so far. It would be great to have people who've done this before to offer advice about how they did it, and get some skilled coders to find these codes!
I know that F-Zero GX automatically drops the framerate from 60fps to 30fps if the game engine can't keep up.

Interestingly enough, I never noticed this happen on an actual GameCube, but it's very useful for on Dolphin. However this also means that you need to run the game at fullspeed if you want to make a 60fps video recording.
(06-28-2014, 12:56 PM)JayGee24 Wrote: [ -> ]From what I've read, the V-beam speed hack will make a game run faster, but not slower.

After some research, It seems that the only way to change the framerate is to find out what code in the game is controlling motion parameters. If you were to simply change the framerate itself, games would run the same as if the frame limiter in Dolphin's settings were set to a higher or lower rate, meaning faster and slower game
play. This is not what we want, and the reason this happens is because the game's motion is frame dependent. PC games do not slow down at lower frame rates because their motion is bound by time and not individual frames. This means that if you want to change the frame rate, you have to change the rate in which motion is spread across the frames. So if you wanted a lower framerate, you would increase the motion speed twice and the opposite for a higher one. Now finding out what code in the game that is responsible for motion is the most challenging part (for me anyway, given my skills). Apparently, there were some folks on the PCSX2 forums that were able to find the code in Kingdom of hearts II using Cheat Engine (Google "Kingdom of Hearts II 60fps hack" to read the thread) They show that is is possible, but it's a matter of finding the codes. One user said something about finding CE tables for motion, but I'm not sure what they meant. Anyway, that's about I could find out on how to achieve this. If we can find the codes in Cheat Engine, record them and make game specfic patches to alter the motion speed, then it seems we have a fesable way to do this. If the devs find a way to intercept the code at runtime in Dolphin itself and give the user the option to change the speed, that would be even better; however, I don't know if that's even fesable given the diversity of how games might handle motion.

So, that's about where I'm at with this so far. It would be great to have people who've done this before to offer advice about how they did it, and get some skilled coders to find these codes!

ahhhh right, right. I feel like I should have known this whole 'frame-based' timing 'n stuff. Silly me.

Funny enough, this kinda stuff can really break some things in games if you think about it.
If certain aspects of games rely on # of frames to calculate gameplay stuff, then you'd probably get some buggy results.

I've actually encountered this on the PC-port "Killer Is Dead". As beautiful as that game is, the port could have been waaay better. The game is always locked at 30fps, and apparently the resolution options suck. You can fix both problems, but there are some strange bugs if you want to un-cap the framerate from 30.
It makes navigating menus really difficult, the cursor just flies everywhere, and the button-mashing QTE's are nearly impossible.
Not to mention some levels just straight-up crash when un-capping the framerate from 30.

Thinking this happens on the PC port of an unreal-engine game..
I can't imagine what strange issues might come out of the console games with specific settings/engines when changing these sort of things :b
I do, however, look forward to seeing any funny bugs...
Quicktime_mistress Wrote:Funny enough, this kinda stuff can really break some things in games if you think about it.
If certain aspects of games rely on # of frames to calculate gameplay stuff, then you'd probably get some buggy results.

That is true. There was a glitch I ran into in Pikmin that would not let you pick the Pikmin out of the ground while the system was overclocked; however, I was able to play the rest of the game (albeit at really fast speeds) with no problems at all. I guess if anyone were to change the framerate on any game, it would have to be a specific title. Meaning we would have to find a few select games that would work properly with a patch, or find the most popular ones and make the framerate editable.

It would still be cool to tinker with. You never know! Some games might not have any negative effects at all.
(07-01-2014, 09:25 AM)JayGee24 Wrote: [ -> ]That is true. There was a glitch I ran into in Pikmin that would not let you pick the Pikmin out of the ground while the system was overclocked; however, I was able to play the rest of the game (albeit at really fast speeds) with no problems at all. I guess if anyone were to change the framerate on any game, it would have to be a specific title. Meaning we would have to find a few select games that would work properly with a patch, or find the most popular ones and make the framerate editable.

It would still be cool to tinker with. You never know! Some games might not have any negative effects at all.

I'm going to guess cross-platform games might be okay with a "general patch" type hack. Building an engine that would use a time-based calculations would be a lot easier to port across consoles, given varying hardware and achievable framerates... obviously seen more in the newer consoles nowadays, but I'd guess games like MoH and the sims would be programmed like this (i have no idea for sure, I think MoH was modified quake engine for the majority of their series).
Pages: 1 2