diff --git a/Resolutions/DevilsThird_Resolution/161904c2816b059d_0000000000000000_vs.txt b/Resolutions/DevilsThird_Resolution/161904c2816b059d_0000000000000000_vs.txt index 433ee9b7..b4588784 100644 --- a/Resolutions/DevilsThird_Resolution/161904c2816b059d_0000000000000000_vs.txt +++ b/Resolutions/DevilsThird_Resolution/161904c2816b059d_0000000000000000_vs.txt @@ -1,15 +1,40 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 161904c2816b059d // Used for: Horizontal & Vertical Bloom Blur Pass float resScale = ($width/$gameWidth); +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[5]; -uniform vec2 uf_windowSpaceToClipSpaceTransform; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem8; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem8; out gl_PerVertex { vec4 gl_Position; @@ -77,7 +102,7 @@ backupReg0f = R1f.x; R1f.xyz = vec3(backupReg0f,backupReg1f,backupReg1f) + vec3(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z)); R1f.w = backupReg0f + intBitsToFloat(uf_remappedVS[4].w)/resScale; // export -gl_Position = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x, R2f.y, R2f.z, R2f.w)); // export passParameterSem129 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/DevilsThird_Resolution/888e5d95da8037e2_0000000000000079_ps.txt b/Resolutions/DevilsThird_Resolution/888e5d95da8037e2_0000000000000079_ps.txt index eb0ca08a..0408f0f9 100644 --- a/Resolutions/DevilsThird_Resolution/888e5d95da8037e2_0000000000000079_ps.txt +++ b/Resolutions/DevilsThird_Resolution/888e5d95da8037e2_0000000000000079_ps.txt @@ -1,13 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 888e5d95da8037e2 // Used for: Horizontal & Vertical Blur Pass float resScale = ($width/$gameWidth); +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[1]; +uniform vec4 uf_fragCoordScale; +}; +#else uniform ivec4 uf_remappedPS[1]; uniform vec2 uf_fragCoordScale; -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x15c36000 res 320x180x1 dim 1 tm: 4 format 0810 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; layout(location = 0) in vec4 passParameterSem129; layout(location = 0) out vec4 passPixelColor0; int clampFI32(int v) diff --git a/Resolutions/DevilsThird_Resolution/rules.txt b/Resolutions/DevilsThird_Resolution/rules.txt index 51d86c27..1213b1e7 100644 --- a/Resolutions/DevilsThird_Resolution/rules.txt +++ b/Resolutions/DevilsThird_Resolution/rules.txt @@ -3,7 +3,7 @@ titleIds = 0005000010177600,0005000010177700,0005000010197d00 name = Resolution path = "Devil's Third/Graphics/Resolution" description = Changes the resolution of the game. Made by Crementif. -version = 3 +version = 4 [Preset] name = 1280x720 (Default) diff --git a/Resolutions/TwilightPrincessHD_Resolution/15e4acf324eb0912_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/15e4acf324eb0912_0000000000000000_vs.txt index 5c96f35d..6f9ef524 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/15e4acf324eb0912_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/15e4acf324eb0912_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 15e4acf324eb0912 missing //map mission objectives missing const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -117,7 +140,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export // skipped export to semanticId 255 // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/18893ce415f2fcc7_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/18893ce415f2fcc7_0000000000000000_vs.txt index f919cc49..41ea814a 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/18893ce415f2fcc7_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/18893ce415f2fcc7_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 18893ce415f2fcc7 //Map icon position const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export // skipped export to semanticId 255 // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/1caed2ca3d14f36b_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/1caed2ca3d14f36b_0000000000000000_vs.txt index 0e6f672a..562791c9 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/1caed2ca3d14f36b_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/1caed2ca3d14f36b_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 1caed2ca3d14f36b //object box bg 2 const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[10]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[10]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -112,7 +135,7 @@ R1f.w = tempf.x; R0f.xyz = vec3(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z)); R0f.w = intBitsToFloat(uf_remappedVS[7].w); // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // 0 diff --git a/Resolutions/TwilightPrincessHD_Resolution/24b09ef9b11b98d5_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/24b09ef9b11b98d5_0000000000000000_vs.txt index 1ba3f153..a20830fc 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/24b09ef9b11b98d5_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/24b09ef9b11b98d5_0000000000000000_vs.txt @@ -1,17 +1,40 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 24b09ef9b11b98d5 //UI text front const float UIx = $UIAspectX; const float UIy = $UIAspectY; const float UItransp = $UItransp; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -117,7 +140,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R3f.w = tempf.x; // export -gl_Position = vec4(R3f.x*UIx, R3f.y*UIy, R3f.z, R3f.w); +SET_POSITION(vec4(R3f.x*UIx, R3f.y*UIy, R3f.z, R3f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w*UItransp); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/27b429c755f71162_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/27b429c755f71162_0000000000000000_vs.txt index 2a072c2c..ca7d0475 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/27b429c755f71162_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/27b429c755f71162_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 27b429c755f71162 //Map arrows const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[11]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[11]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -122,7 +145,7 @@ R2f.w = tempf.x; R5f.z = R126f.w; PS0f = R5f.z; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/4f5f72f9eec53a90_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/4f5f72f9eec53a90_0000000000000000_vs.txt index 625616b6..6ad4801d 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/4f5f72f9eec53a90_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/4f5f72f9eec53a90_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 4f5f72f9eec53a90 //BG box 3 const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[9]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[9]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/5f2ae4dbd2256d0c_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/5f2ae4dbd2256d0c_0000000000000000_vs.txt index 87aad91c..31cf0552 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/5f2ae4dbd2256d0c_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/5f2ae4dbd2256d0c_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 5f2ae4dbd2256d0c //minimap const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -115,7 +138,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem1 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/6dc0977212eae7b3_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/6dc0977212eae7b3_0000000000000000_vs.txt index 55c9a54c..b0ab55eb 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/6dc0977212eae7b3_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/6dc0977212eae7b3_0000000000000000_vs.txt @@ -1,17 +1,40 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 6dc0977212eae7b3 //hearts const float UIx = $UIAspectX; const float UIy = $UIAspectY; const float UItransp = $UItransp; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -120,7 +143,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w*UItransp); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/70e776430cd020a9_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/70e776430cd020a9_0000000000000000_vs.txt index 53c6fcd1..71e0de96 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/70e776430cd020a9_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/70e776430cd020a9_0000000000000000_vs.txt @@ -1,14 +1,37 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 70e776430cd020a9 //box bg 5 const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[10]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[10]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ R1f.w = tempf.x; R0f.xyz = vec3(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z)); R0f.w = intBitsToFloat(uf_remappedVS[7].w); // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/7674f1be5f1b1e0c_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/7674f1be5f1b1e0c_0000000000000000_vs.txt index ea6a78be..6c6f66d6 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/7674f1be5f1b1e0c_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/7674f1be5f1b1e0c_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 7674f1be5f1b1e0c //object box BG const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[9]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[9]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/7c5a0f2532be049f_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/7c5a0f2532be049f_0000000000000000_vs.txt index 40b55fca..97f9e398 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/7c5a0f2532be049f_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/7c5a0f2532be049f_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 7c5a0f2532be049f //Map highlight const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -119,7 +142,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/7fc573264230ed00_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/7fc573264230ed00_0000000000000000_vs.txt index d6a48db7..a2a64901 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/7fc573264230ed00_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/7fc573264230ed00_0000000000000000_vs.txt @@ -1,14 +1,37 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 7fc573264230ed00 //lights bloom sensor const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[10]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[10]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -111,7 +134,7 @@ R1f.w = tempf.x; R0f.xyz = vec3(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z)); R0f.w = intBitsToFloat(uf_remappedVS[7].w); // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // 0 diff --git a/Resolutions/TwilightPrincessHD_Resolution/827afe113fd67658_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/827afe113fd67658_0000000000000000_vs.txt index 8a27d4e9..afca3cff 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/827afe113fd67658_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/827afe113fd67658_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 827afe113fd67658 //lamp oil indicator const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[9]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[9]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -113,7 +136,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // 0 diff --git a/Resolutions/TwilightPrincessHD_Resolution/85b15b7fe92662bb_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/85b15b7fe92662bb_0000000000000000_vs.txt index 5733212e..0856326a 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/85b15b7fe92662bb_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/85b15b7fe92662bb_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 85b15b7fe92662bb //map dungeon BG const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem1 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/95a5a89d62998e0d_0000000000000079_ps.txt b/Resolutions/TwilightPrincessHD_Resolution/95a5a89d62998e0d_0000000000000079_ps.txt index ad28ce48..b780fd7a 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/95a5a89d62998e0d_0000000000000079_ps.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/95a5a89d62998e0d_0000000000000079_ps.txt @@ -1,12 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader 95a5a89d62998e0d // blur +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else uniform ivec4 uf_remappedPS[3]; -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf59ff000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 -layout(location = 0) out vec4 passPixelColor0; uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock int clampFI32(int v) { if( v == 0x7FFFFFFF ) @@ -38,7 +64,7 @@ ivec4 ARi = ivec4(0); bool predResult = true; vec3 cubeMapSTM; int cubeMapFaceId; -R0f = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw); +R0f = GET_FRAGCOORD(); scaler = uf_fragCoordScale.x; // 0 R7f.x = R0f.x * intBitsToFloat(0x3b088889); diff --git a/Resolutions/TwilightPrincessHD_Resolution/TPHD_Readme.md b/Resolutions/TwilightPrincessHD_Resolution/TPHD_Readme.md index da6e9f8f..37131893 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/TPHD_Readme.md +++ b/Resolutions/TwilightPrincessHD_Resolution/TPHD_Readme.md @@ -1,18 +1,18 @@ ------ -### The Legend of Zelda: Twilight Princess HD +### TLoZ Twilight Princess HD ------ -### Graphic Options +### Graphic options -3840x4320 vert x2 SSAA - Runs the game at double vertical res balancing look and performance when super sampling. Run full screen scaling in stretched and bilinear when activating this option. +3840x4320 vert x2 SSAA - Runs the game at double vertical res balancing look and performance when super sampling. Run full screen scaling in stretched and bilinear when activating this option. -0.5 Sub scaling - Runs transparencies and blur at half resolution, slight performance improvement (in higher resolutions). +0.5 Sub scaling - Runs transparances and blur at half resolution, slight performance improvement (in higher resolutions). -UI 25% transparency - Dims static GUI elements, making them slightly transparent. Reduces chance of burn in when using Oled or plasma display. +UI 25% transp - Dims static GUI elements, making them slightly transparent. Reduces chance of burn in when using Oled or plasma display. -### Nice to know when creating a custom resolution +### Nice to know when creating a custom resolution -There are some issues with AO and light sources, to mitigate this some “sub” viewports need to scale evenly. XCX uses a similar approach to get smooth shadow transitions. +There are some issues with AO and light sources, to mitigate this some “sub” viewports need to scale evenly. XCX uses a similar approach to get smooth shadow transitions. Example: ``` @@ -43,4 +43,6 @@ formats = 0x001 overwriteWidth = ($width/$gameWidth) * (1024*$lightSource*$scaleShader) overwriteHeight = ($height/$gameHeight) * (544*$lightSource) ``` -![21:9](https://i.imgur.com/jVQrzpm.jpg) +![21:9](TP21_9.jpg) + + diff --git a/Resolutions/TwilightPrincessHD_Resolution/acbedb86f89efae4_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/acbedb86f89efae4_0000000000000000_vs.txt index a51c310d..ea36ce3f 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/acbedb86f89efae4_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/acbedb86f89efae4_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader acbedb86f89efae4 //mapscreen bg const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -115,7 +138,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem1 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/aebb1e76797684a2_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/aebb1e76797684a2_0000000000000000_vs.txt index 0c1e2dde..cc91fbc6 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/aebb1e76797684a2_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/aebb1e76797684a2_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader aebb1e76797684a2 //UI text bg const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -118,7 +141,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/b5241d6db4feef42_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/b5241d6db4feef42_0000000000000000_vs.txt index d34e75de..c8f9b843 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/b5241d6db4feef42_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/b5241d6db4feef42_0000000000000000_vs.txt @@ -1,14 +1,37 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader b5241d6db4feef42 //selection highlight const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[10]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[10]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ R1f.w = tempf.x; R0f.xyz = vec3(intBitsToFloat(uf_remappedVS[7].x),intBitsToFloat(uf_remappedVS[7].y),intBitsToFloat(uf_remappedVS[7].z)); R0f.w = intBitsToFloat(uf_remappedVS[7].w); // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/c14019840473ff86_00000000000003c9_ps.txt b/Resolutions/TwilightPrincessHD_Resolution/c14019840473ff86_00000000000003c9_ps.txt index d3e787d2..d1cacd35 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/c14019840473ff86_00000000000003c9_ps.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/c14019840473ff86_00000000000003c9_ps.txt @@ -1,14 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader c14019840473ff86 //scale boxblur fx -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4001000 res 1920x1080x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 -layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf5187000 res 1920x1080x1 dim 1 tm: 4 format 0011 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0 +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; layout(location = 0) in vec4 passParameterSem0; layout(location = 0) out vec4 passPixelColor0; +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else uniform vec2 uf_fragCoordScale; +#endif int clampFI32(int v) { if( v == 0x7FFFFFFF ) diff --git a/Resolutions/TwilightPrincessHD_Resolution/c612390d4c70f430_0000000000000079_ps.txt b/Resolutions/TwilightPrincessHD_Resolution/c612390d4c70f430_0000000000000079_ps.txt index 7b584bb4..3ca91bda 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/c612390d4c70f430_0000000000000079_ps.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/c612390d4c70f430_0000000000000079_ps.txt @@ -1,12 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader c612390d4c70f430 //cutscene focus n bloom +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else uniform ivec4 uf_remappedPS[5]; -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf597f000 res 480x270x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 0 -layout(location = 0) out vec4 passPixelColor0; uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock int clampFI32(int v) { if( v == 0x7FFFFFFF ) @@ -38,7 +64,7 @@ ivec4 ARi = ivec4(0); bool predResult = true; vec3 cubeMapSTM; int cubeMapFaceId; -R0f = vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw); +R0f = GET_FRAGCOORD(); scaler = uf_fragCoordScale.x; // 0 R7f.x = R0f.x * intBitsToFloat(0x3b088889); diff --git a/Resolutions/TwilightPrincessHD_Resolution/ce7aa5fffc34aab0_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/ce7aa5fffc34aab0_0000000000000000_vs.txt index c795378f..7cdf23c5 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/ce7aa5fffc34aab0_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/ce7aa5fffc34aab0_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader ce7aa5fffc34aab0 //action buttons const float UIx = $UIAspectX; const float UIy = $UIAspectY; const float UItransp = $UItransp; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -116,7 +139,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R3f.w = tempf.x; // export -gl_Position = vec4(R3f.x*UIx, R3f.y*UIy, R3f.z, R3f.w); +SET_POSITION(vec4(R3f.x*UIx, R3f.y*UIy, R3f.z, R3f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w*UItransp); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/e9d455979cba2505_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/e9d455979cba2505_0000000000000000_vs.txt index f805c551..858bf01a 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/e9d455979cba2505_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/e9d455979cba2505_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader e9d455979cba2505 //dungeon objects const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -117,7 +140,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export // skipped export to semanticId 255 // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/eec9403a9d54137e_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/eec9403a9d54137e_0000000000000000_vs.txt index d8edd868..e1f6f842 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/eec9403a9d54137e_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/eec9403a9d54137e_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader eec9403a9d54137e //Map bg middle layer const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -118,7 +141,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/f017fcfaf1bd28ab_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/f017fcfaf1bd28ab_0000000000000000_vs.txt index 5afb080e..c927d51f 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/f017fcfaf1bd28ab_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/f017fcfaf1bd28ab_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader f017fcfaf1bd28ab const float UIx = $UIAspectX; const float UIy = $UIAspectY; //amiibo +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; out gl_PerVertex { vec4 gl_Position; @@ -114,7 +137,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R1f.w = tempf.x; // export -gl_Position = vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w); +SET_POSITION(vec4(R1f.x*UIx, R1f.y*UIy, R1f.z, R1f.w)); // export passParameterSem1 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/f5034fe4aa1fec23_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/f5034fe4aa1fec23_0000000000000000_vs.txt index 3d3529e2..38bbc8b5 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/f5034fe4aa1fec23_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/f5034fe4aa1fec23_0000000000000000_vs.txt @@ -1,16 +1,39 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader f5034fe4aa1fec23 //map fade const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -119,7 +142,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y*UIy, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/fc148873ef522f50_0000000000000000_vs.txt b/Resolutions/TwilightPrincessHD_Resolution/fc148873ef522f50_0000000000000000_vs.txt index cf954f5d..3f0108a5 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/fc148873ef522f50_0000000000000000_vs.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/fc148873ef522f50_0000000000000000_vs.txt @@ -1,15 +1,38 @@ #version 420 #extension GL_ARB_texture_gather : enable #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shading_language_packing : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + // shader fc148873ef522f50 // objective shadow const float UIx = $UIAspectX; const float UIy = $UIAspectY; +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ uniform ivec4 uf_remappedVS[7]; -layout(location = 0) in uvec4 attrDataSem0; -layout(location = 1) in uvec4 attrDataSem1; -layout(location = 2) in uvec4 attrDataSem2; +}; +#else +uniform ivec4 uf_remappedVS[7]; +#endif +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; out gl_PerVertex { vec4 gl_Position; @@ -119,7 +142,7 @@ PV0f.z = tempf.x; PV0f.w = tempf.x; R2f.w = tempf.x; // export -gl_Position = vec4(R2f.x*UIx, R2f.y, R2f.z, R2f.w); +SET_POSITION(vec4(R2f.x*UIx, R2f.y, R2f.z, R2f.w)); // export passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); // export diff --git a/Resolutions/TwilightPrincessHD_Resolution/rules.txt b/Resolutions/TwilightPrincessHD_Resolution/rules.txt index 217c35cf..c9c373fb 100644 --- a/Resolutions/TwilightPrincessHD_Resolution/rules.txt +++ b/Resolutions/TwilightPrincessHD_Resolution/rules.txt @@ -3,7 +3,7 @@ titleIds = 000500001019C800,000500001019E600,000500001019E500 name = Resolution path = "The Legend of Zelda: Twilight Princess HD/Graphics/Resolution" description = Changes the resolution of the game. Made by getdls. -version = 3 +version = 4 [Preset] name = 1920x1080 (Native)