I searched through quite a bit of commits to properly credit some packs. Some of the credits are based off memory. Please let me know if I incorrectly credited or forgot to credit somebody.
Should fix the native anti-aliasing preset most importantly, but since I ported all of the packs now the script "watermark" is at least a proper sentence, heh.
Also, I fixed the porting scripts. Basically, there were a bug in the verification script that wouldn't check if the uf_* variables matched and the conversion script also had a fun bug where it wasn't automatically fixing an incorrect order of the uf_* variables. So that basically made both of them slip through. Both are now fixed however.
Don't know if it's needed to check the previously ported graphic packs to see if the error affected those, but it might not hurt.
A wrong fps estimation can have visual artifacts among others. Even an estimation without visual artifacts will not be accurate emulation unless the fps was constant anyway.
But now done properly! Basically, a bunch of improvements were made to the script. The previous attempt at this conversion was quickly followed by a rollback since I realized that the script was overlooking certain things that made most of the packs hit or miss whether they would work. A few things missing were:
- It only tested the values from 1 preset. Now, each shader gets compiled per each preset, like what Cemu would do. It also merges the changes done for each preset into one. This should solve cases where one shader would define things separately or repeatedly from preset to preset.
- All* of the shaders are tested to see if they use the converter used the right values for the locations for Vulkan.
Both of these *should* mean that they should both compile and be linkable in Vulkan, which means that I don't have to test each individual shader to see if they work. I will release the two scripts (one used for converting, one used for checking the right values for the locations) tomorrow so that other people might be able to help, if they want. It's fairly straightforward now at least.
* Organize workaround graphic packs
Pretty hard to organize these correctly, but according to our discord discussion, this was the best layout from a bunch I proposed, together with some suggestions.
* Add V4 converter script and instructions on how to use it
Now everyone BotW is done and all of the bugs have been kinked out using it (hopefully...), here's the release of the converter script in all of it's very badly coded glory. I hope I didn't leave too much debug glory in there...
Also, I hope that I didn't make too many grammatical mistakes in the instructions, but hopefully it's easy enough to follow.
Detected some faulty presets with my script, since logging these kind of issues make sense. Doing these separately since otherwise the big commit will make these changes invisible.
Since it's not possible to update 300+ shaders manually and automation was possible, I thought that I'd take the honor and create a script that's able to automatically convert all of the shaders to be cross-compatible with Vulkan. And change the graphic pack versions to version 4 of course.
Also, the script has some nifty testing code which compiled every shader as OpenGL and Vulkan, but for that see the details that I've written below.
**Here's the script that I've made to do all of this. No manual edits were needed:**
https://gist.github.com/Crementif/8d98a855b95f219d95298fb3db99deae
- Split "Offline Squad" and "more tickets" into 2 separate mods (#389)
- Offline squad now have mission selector presets.
- Fix issue with the "Equipment - Force type" mod not working for ground weapons (#398)
- Fix issue with the "Materials - Drop ratio" mod when 100% preset was selected (#392)
- Fix issue with the "Treasure Quality" mod with regular presets
(#xx) refers to Github issues.
...Also added 'glow' in the file name to be more specific.
Add brightness scaling for Guardians, scale original brightness of others instead of overwriting them.
Hmmmmmmmmmmmmmmmmmm...
Many of these new versions had weird white-lines, missing EU and Japan titles. Also changed the name to 3 and 4 multiplayer titles since the 30FPS cap is also there with 30FPS. Changed the description to be more descriptive. Fixed spelling of warriors orochi.
Added a disclaimer to not go online, probably will scare off most people. I thought about patching the online functionality out of this game with this graphic pack, so that you couldn't go online with it, but you would just save and reload Cemu with online enabled...
Accidentally budged up performance fence which would be active when it wasn't selected...
Also added comments, so the code should be slightly easier to understand.
Should be clear now which packs are required. Also, gone with the multiple fence skip packs. Instead, there's now a confusing mess for devs to sort out.
No longer a proof of concept. The game checks if the value isn't correct, so it would be overwritten. This just freezes the value using some code cave code nearby the fence skip thing.
Mod "Equipment - Force Type" now allows to select a specific sub-type (for example only loot dual guns ground weapon). But this works only for ground weapons, ground armors and skells armors (not skells weapons).
Experience mods (Inner, Class and Battle) now affect points gained in battle, missions, quests and exploration (previously only battle was affected).
Since vsync = 60hz graphic packs keep popping up , I may as well commit
this even if it’s a bit lame...
Patches gameplay and cutscenes to 60fps , keeps them in sync
Known issues:
Battle animation speed is ok, but event times are cut in half
Switchover from cinematic to ingame cutscene end too early
NPCs and Cars move too fast
Converted the existing v2 rules.txt into v3 using exact TextureRedefine values. Not sure if anything under the hood changed that would affect the values. Tested this by playing in Master Mode. There were no apparent visual or performance issues.
Switch over to Xalphenos version since his version now has a dynamically sized "oldest frame" (there's not really a good name for what it does) thing which was one of the main things in my version.
Once FPS++ progress is halted, I'll clean up the comments again to something similar what I had in my version, which I feel is more understandable for people that want to see what it does and maybe improve it.
If testing is correct, the previous version also had stability drops or something in comparison with this version. If anything, this update only pushes the arrow time stamina drain fix.
Only works on the latest game version for now!
It's a completely new FPS averaging implementation from the one Xalphenos posted on the Cemu forum, but they do pretty much the same thing. This version has some added things like being able to change the amount of frames it averages in the rules.txt. It's also relatively faster then Xalphenos implementation... but it's not noticeable in any way.
I've ported over his comments and shared some of the info I've learned from looking at his code and formatted it a little bit.
P.S. Xalphenos also suggested a change to the low FPS limiter. This might fix weird physics when < 15FPS (see things like guardians).
P.P.S. The cheats got removed since we've got them in separate packs.