cemu-project / cemu_graphic_packs

Community Graphic Packs for Cemu
https://cemu-project.github.io/cemu_graphic_packs/
Creative Commons Zero v1.0 Universal
1.3k stars 583 forks source link

[BOTW] While being throwed away, the remote bomb bounces in the mid air with FPS++, not paracurve. #601

Open zhm86 opened 1 year ago

zhm86 commented 1 year ago

In the vallina game, the trail of remote bomb is a paracurve. With FPS++ on, it bounces in the mid air, just after it getting out of the hands.

Many mechanisms in game bind to the frame rate. There might be mechanism changes while using FPS++ that has not been noticed or fixed by people. Is it possible to make a mod that increasing performance in CEMU while not change the 30fps cap and game mechanisms?

I tried many PCs, BOTW never maintain 30fps without mods in CEMU. But the same PC could maintain 30fps while using Yuzu emulator with even higher resolution.

Crementif commented 1 year ago

You can set the FPS limit inside the FPS++ settings to 30FPS. But there really aren't that many issues anymore, there's a pretty incredible amount we've fixed already. Minor bugs like the throwing of bombs are very difficult to fix and are far from experience ruining. So honestly I'd just recommend playing at 60FPS.

Anyway, this is a known issue and is a pretty low priority for us.

zhm86 commented 1 year ago

Thanks for your and the other modder's hard work. By the way, is it easy to port LOD, shadow distance and draw distance mod to Yuzu? I tried using IDAPro on both 1.5.0 version of wiiu and switch BOTW, but port these mods is far beyond my ability. I don't how hard it is for you talented modders. I'd like to support if there is a Patreon.

zhm86 commented 1 year ago

Here are my findings of BOTW(switch) 1.5.0 and 1.6.0 in IDAPro. 1.5.0 0x7101254C74 setActorDrawDistanceMultiplier (cemu-mod: Actor draw distance) 1.6.0 0x7101586b5c *(_DWORD)(a1 + 8836) = 0x3F333333 This is ActorDrawDistanceMultiplier

1.5.0 0x7100D4A8C0 setObjectDrawDistance (cemu-mod: Object draw distance) (Object::getDispDistance in mapObject.cpp of https://github.com/zeldaret/botw) 1.6.0 0x7101557700 v33=1.0 This is ObjectDrawDistanceMultiplier

1.5.0 0x7100d4c038 setObjectDrawDistanceDivider (cemu-mod: Object draw distance) 1.6.0 0x71015641c0 v177=sub_7101562440(a1, 0) This is ObjectDrawDistanceDivider

1.5.0 0x7100f08328 treeDrawDistance (cemu-mod: Tree billboard draw distance) 1.6.0 0x71017a7f84

1.5.0 0x7101153CBC (cemu-mod: Grass blades draw distance) 1.6.0 0x7101B30d0c 1000.0 is Grass blades draw distance

I tried to modify these, but the result is strange, it does not work as what it like in CEMU, some objects disappeared however.