This is the first graphics pack that uses categories with graphics adjustment! TV resolution, gamepad resolution, shadow quality, and anisotrophic filtering quality settings have all been merged into one pack.
This uses a workaround for Cemu's legacy patching (so the backwards compatibility that Cemu provides for patches.txt file, and now defaults too even if Cemuhook is found) not allowing one to have symbols that refer to a memory address that's outside of the game's own executable memory.
Since 1.0 floats are very common, this float was likely used in other game code as well. Changing it to 3.0 could be bad, so it's better to just change the instruction that loads it and does the arrow loading.
The fix here is to just have a symbol available to load the lower half from, instead of hardcoding it which Cemu's backwards compatible patcher doesn't like and softlocks.
Requested (?) by https://github.com/slashiee/cemu_graphic_packs/issues/436
Also improves the naming of the character swap mod since it can be used in any mode, not just adventure mode. This might've been done because it can cause problems in some missions.
Character Swap would crash the game due to some change in Cemu 1.15.8 apparently (no real clue why although it's probably the hex values being weird). Reported by Revan.
Hyrule Warriors resolution pack has a pretty big blending bug in the menus for a bit too. Upscaling compressed formats never goes well. Reported by MelonSpeedruns.
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.