Close

Results 1 to 4 of 4
  1. #1
    Super-Moderator
    Join Date
    13.09.2017
    Posts
    386

    FPS++ with Frame Rate averaging.

    I can't count the number of times I've been asked if the judder could be fixed in fps++. It was always my theory that the judder was caused by setting the game speed every frame in combination with unstable frametimes. For example cruising along at ~60 fps and then dipping to 20 and back up to 60 would cause a big hiccup. An example of this I personally encountered was when paragliding. Others have reported link shaking while running. My thought was that averaging the fps would prevent that. In a course of 30 ish frames if 20 of them where "60fps" and only 10 of them were something lower then averaging would smooth that out and you would set the game speed to something far more accurate to what you were actually getting instead of setting the game speed low for those 10 frames. Seems like ages ago when I thought about this. Part of me wanted to go try it out and part of me didn't want to prove myself wrong. That And I've been on an AMD GPU linux system for most of the past year and hacking games is a workflow I haven't got ported over to linux yet. And lets be fair. AMD gpus on windows just aren't worth using for cemu. I kid it's fine for everything not botw or xcx.

    I finally got my windows nvidia system set back up and started working on this yesterday. Today I commented all the code so it will hopefully be more readable for people wanting to poke around in it. Credits for the arrow fix go to epigramx. We were both working on a fix for that at the same time but the one epigramx figured out was better. The one I found I couldn't rationalize a way to make it work at different frame rates. For example the value I found needed to be set to 13 in order to have proper arrow drop at 60 fps. Other than brute force trial and error there was no way i could see to scale that to current fps. Epigramx's had that covered. I really should have ported his to fps++ a long time ago. Oh well it's in there now. The discord user Crementif actually added it in to the official repo one a week ago or so. Cudos on that Crementif. As I told Serfrost a while back I intended on trying the fps averaging as soon as I got my nvidia setup back up and running. Ryzen 7 2700x, gtx 1070, 16gb 3200mhz ram for those curious. And I stayed true to my word. However Crementif started independently working on fps averaging himself. And had reported some success with averaging a few frames together. Hearing that my theory was indeed correct was certainly a boost in motivation to get this done. Thanks again crementif. I can't wait to see what your implementation looks like. Like the arrow fix your version may be better.

    Well here it is. BOTW FPS2.0.zip It still needs some testing before it goes into the repo I think. It has completely removed judder while paragliding on my end and that extra blue flash in the map screen. It currently only works on 1.5.0 so it could use some back porting as well. There are certainly still bugs over 30 fps that need fixed. I welcome anyone to poke around and try to add fixes to this.
    Last edited by Xalphenos; 14.12.2018 at 17:10.

  2. #2
    Super-Moderator epigramx's Avatar
    Join Date
    13.09.2017
    Posts
    400
    Congratulations Xalphenos. That's a great achievement.
    Author of WiimoteHook; co-author of Static FPS mods, author of guides to game assembly patching , compiling mesa and high-res screenshots

  3. #3
    @Xalphenos fps++ 2.0 does not have Best Fence enabled, unlike the previous version. Is that on purpose or something new you found out?

    Best Regards

  4. #4
    Super-Moderator
    Join Date
    13.09.2017
    Posts
    386
    Na. Nothing intentional. Code had to change positions in the patch file so I left out beat fence from the code cave until after I had finished all the averaging code and had it plugged into FPS++. And I didn’t want to be stuck with full fence going on while testing.

    Also, as I found out during this, there was a typo which broke best fence in versions prior to crementifs arrow fix port. We’re not sure how far back it was broken but no one even noticed.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •