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.
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.
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
With Cemu 1.15.12 's gl_PointCoord support, night stars now have proper (varying) alpha value. Should be no need for workaround anymore, just scale its size accordingly.
The game re-applies a cropped 1280x400 background in order to create the fading on the inventory borders. Not resizing it causes the background especially Link and items he is holding to become blurry and aliased mid-screen with two cutoff lines. This rule was present in pre-1.14 rules.
* Update rules.txt
Added some new 019s for scope and camera, and removes the very small 01a as they arent needed. Minimized the texture cache debug options rules mismatch error to 1, rather than a whole bunch. And chasing that one leads only to breaking graphics.
* Update and rename Resolutions/TropicalFreeze_Resolution/patches.txt to Resolutions/DonkeyKong_TropicalFreeze_Resolution/patches.txt
Fixed up game name
* Rename Resolutions/TropicalFreeze_Resolution/rules.txt to Resolutions/DonkeyKong_TropicalFreeze_Resolution/rules.txt
fixed up game name
* Rename Resolutions/DonkeyKong_TropicalFreeze_Resolution/patches.txt to Resolutions/DonkeyKongTropicalFreeze_Resolution/patches.txt
name fix
* Rename Resolutions/DonkeyKong_TropicalFreeze_Resolution/rules.txt to Resolutions/DonkeyKongTropicalFreeze_Resolution/rules.txt
name fix
* Update rules.txt
Korok Forest Hetsu Menu Fix
* Update rules.txt
Korok Hetsu Menu Fix
* Update 0f2b9ee517917425_00000000000003c9_ps.txt
Inventory aa slight upgrade
* Update f14bb57cd5c9cb77_00000000000003c9_ps.txt
small fix up
* Rename Enhancements/TropicalFreeze_!AARemoval/10ccf0cc1234d069_00000000000003c9_ps.txt to Enhancements/DonkeyKongTropicalFreeze_-AARemoval/10ccf0cc1234d069_00000000000003c9_ps.txt
name fix
* Rename Enhancements/TropicalFreeze_!AARemoval/bafe6c9c37bfca4d_00000000000003c9_ps.txt to Enhancements/DonekyKongTropicalFreeze_-AARemoval/bafe6c9c37bfca4d_00000000000003c9_ps.txt
name fix
* Rename Enhancements/DonekyKongTropicalFreeze_-AARemoval/bafe6c9c37bfca4d_00000000000003c9_ps.txt to Enhancements/DonkeyKongTropicalFreeze_-AARemoval/bafe6c9c37bfca4d_00000000000003c9_ps.txt
name fix
* Rename Enhancements/TropicalFreeze_!AARemoval/rules.txt to Enhancements/DonkeyKongTropicalFreeze_-AARemoval/rules.txt
name fix
* Delete 497a209b49886520_0000000000000000_vs.txt
not needed hopefully
* Update and rename Enhancements/XenobladeX_!AARemoval/59df1c7e1806366c_00000000000003c9_ps.txt to Enhancements/XenobladeX_AntiAliasing/59df1c7e1806366c_00000000000003c9_ps.txt
Proper Native AA and FXAA
* Update and rename Enhancements/XenobladeX_!AARemoval/rules.txt to Enhancements/XenobladeX_AntiAliasing/rules.txt
presets yeah baby
* Update 0f2b9ee517917425_00000000000003c9_ps.txt
Resolution pack Inventory AA
* Update f14bb57cd5c9cb77_00000000000003c9_ps.txt
Resolution pack World AA
* Update 0f2b9ee517917425_00000000000003c9_ps.txt
AA Pack
* Update f14bb57cd5c9cb77_00000000000003c9_ps.txt
AA Pack
* Update rules.txt
AA Pack
Fixed up Inventory Native AA and FXAA World AA
* Delete disabled_58b8411478181d7f_0000000000000079_ps.txt
not needed
* Delete disabled_58b84124c01721ff_0000000000000079_ps.txt
not needed
* Update 0f2b9ee517917425_00000000000003c9_ps.txt
Inventory AA Fixup for 1080p by rounding up
. Anything between 720p-1080p (1.0-1.5) would get rounded down to 1.0 and therefore messy/fuzzy inventory especially in 1080p. The reason it got rounded down is because all the vector data types are initialized as integers instead of normal floats for accuracy.
* Update rules.txt
Added 1600x900 resolution per request, that resolution no longer glitches out due to cemu workaround. We may never know now lol.