Update Tokyo Mirage to v4

Couldn't verify vertex shader 3259d3b3ca333bf3, but the rest came out okay. Do note that Vulkan still has issues with this game.
This commit is contained in:
Michele 2020-01-20 13:47:02 -08:00
parent 142ed07b27
commit 38e98abbf2
15 changed files with 383 additions and 66 deletions

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 04d0827b9471eb22 // shader 04d0827b9471eb22
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -70,7 +95,7 @@ R0f.y = R2f.y + -(R127f.z);
R0f.z = PV0f.y; R0f.z = PV0f.y;
R0f.w = PV0f.x; R0f.w = PV0f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem137 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); passParameterSem137 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 201bd8dfd2a9e7d3 // shader 201bd8dfd2a9e7d3
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -145,7 +170,7 @@ PV1f.y = R123f.y;
R2f.z = PV1f.y; R2f.z = PV1f.y;
R2f.w = PV1f.x; R2f.w = PV1f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem141 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem141 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 23c5bbfda0fc3b0f // shader 23c5bbfda0fc3b0f
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -81,7 +106,7 @@ PV1f.y = R123f.y;
R2f.z = PV1f.y; R2f.z = PV1f.y;
R2f.w = PV1f.x; R2f.w = PV1f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem137 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem137 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 3259d3b3ca333bf3 // shader 3259d3b3ca333bf3
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -99,7 +124,7 @@ PV1f.y = R123f.y;
R2f.z = PV1f.y; R2f.z = PV1f.y;
R2f.w = PV1f.x; R2f.w = PV1f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem138 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem138 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 39863f29c6d85cb8 // shader 39863f29c6d85cb8
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -69,7 +94,7 @@ R2f.y = R127f.x + R127f.z;
R2f.z = PV1f.y; R2f.z = PV1f.y;
R2f.w = PV1f.x; R2f.w = PV1f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem136 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem136 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
} }

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 59fca914f0dcb060 // shader 59fca914f0dcb060
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -165,7 +190,7 @@ PV1f.w = R123f.w;
R7f.z = PV1f.w; R7f.z = PV1f.w;
R7f.w = PV1f.z; R7f.w = PV1f.z;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem138 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem138 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export // export

View File

@ -1,15 +1,38 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 61b51be479ffa5dc // shader 61b51be479ffa5dc
//text aspect //text aspect
const float UI = $UIAspectX; const float UI = $UIAspectX;
const float UIY = $UIAspectY; const float UIY = $UIAspectY;
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[4]; uniform ivec4 uf_remappedVS[4];
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem3; #else
layout(location = 2) in uvec4 attrDataSem8; uniform ivec4 uf_remappedVS[4];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem3;
ATTR_LAYOUT(0, 2) in uvec4 attrDataSem8;
out gl_PerVertex out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -104,7 +127,7 @@ R5i.x = ((R127i.y == 0)?(R2i.x):(R2i.x));
R5i.y = ((R127i.y == 0)?(R2i.y):(R2i.y)); R5i.y = ((R127i.y == 0)?(R2i.y):(R2i.y));
R4i.z = ((R127i.y == 0)?(R1i.z):(R1i.z)); R4i.z = ((R127i.y == 0)?(R1i.z):(R1i.z));
// export // export
gl_Position = vec4(intBitsToFloat(R0i.x)*UI, intBitsToFloat(R0i.y)*UIY, intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); SET_POSITION(vec4(intBitsToFloat(R0i.x)*UI, intBitsToFloat(R0i.y)*UIY, intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)));
// export // export
passParameterSem131 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); passParameterSem131 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 88ae6940d510eea5 // shader 88ae6940d510eea5
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -65,7 +90,7 @@ R2f.w = R2f.y + PV0f.w;
R2f.z = PV0f.x; R2f.z = PV0f.x;
PS1f = R2f.z; PS1f = R2f.z;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem136 = vec4(R0f.x, R0f.y, R0f.z, R0f.y); passParameterSem136 = vec4(R0f.x, R0f.y, R0f.z, R0f.y);
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 8cdd68cf2a074404 // shader 8cdd68cf2a074404
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -130,7 +155,7 @@ PV1f.y = R123f.y;
R2f.z = PV1f.y; R2f.z = PV1f.y;
R2f.w = PV1f.x; R2f.w = PV1f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem140 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem140 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export // export

View File

@ -1,16 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 94986f08df872394 // shader 94986f08df872394
//gui aspect //gui aspect
const float UI = $UIAspectX; const float UI = $UIAspectX;
const float UIY = $UIAspectY; const float UIY = $UIAspectY;
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[9]; uniform ivec4 uf_remappedVS[9];
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem3; #else
layout(location = 2) in uvec4 attrDataSem8; uniform ivec4 uf_remappedVS[9];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem3;
ATTR_LAYOUT(0, 2) in uvec4 attrDataSem8;
out gl_PerVertex out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -126,7 +149,7 @@ R1f.y = mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedVS[8].y));
R1f.z = mul_nonIEEE(backupReg2f, intBitsToFloat(uf_remappedVS[8].z)); R1f.z = mul_nonIEEE(backupReg2f, intBitsToFloat(uf_remappedVS[8].z));
R1f.w = mul_nonIEEE(backupReg3f, intBitsToFloat(uf_remappedVS[8].w)); R1f.w = mul_nonIEEE(backupReg3f, intBitsToFloat(uf_remappedVS[8].w));
// export // export
gl_Position = vec4(R2f.x*UI, R2f.y*UIY, R2f.z, R2f.w); SET_POSITION(vec4(R2f.x*UI, R2f.y*UIY, R2f.z, R2f.w));
// export // export
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
// export // export

View File

@ -1,15 +1,38 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 aae570d2455724bc // shader aae570d2455724bc
//BG fx //BG fx
const float UI = $UIAspectX; const float UI = $UIAspectX;
const float UIY = $UIAspectY; const float UIY = $UIAspectY;
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[9]; uniform ivec4 uf_remappedVS[9];
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem3; #else
layout(location = 2) in uvec4 attrDataSem8; uniform ivec4 uf_remappedVS[9];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem3;
ATTR_LAYOUT(0, 2) in uvec4 attrDataSem8;
out gl_PerVertex out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -134,7 +157,7 @@ PS0f = R3f.z;
// 9 // 9
R3f.w = R127f.x; R3f.w = R127f.x;
// export // export
gl_Position = vec4(R2f.x*UI, R2f.y*UIY, R2f.z, R2f.w); SET_POSITION(vec4(R2f.x*UI, R2f.y*UIY, R2f.z, R2f.w));
// export // export
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
// export // export

View File

@ -1,14 +1,39 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 b181218b85619285 // shader b181218b85619285
const float resXScale = float($width)/float($gameWidth); const float resXScale = float($width)/float($gameWidth);
const float resYScale = float($height)/float($gameHeight); const float resYScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1]; uniform ivec4 uf_remappedVS[1];
uniform vec2 uf_windowSpaceToClipSpaceTransform; // uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[1];
// 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 out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -112,7 +137,7 @@ PV1f.y = R123f.y;
R2f.z = PV1f.y; R2f.z = PV1f.y;
R2f.w = PV1f.x; R2f.w = PV1f.x;
// export // export
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w); SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export // export
passParameterSem139 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); passParameterSem139 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export // export

View File

@ -1,14 +1,37 @@
#version 420 #version 420
#extension GL_ARB_texture_gather : enable #extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : 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 dda6656146476243 // shader dda6656146476243
//Video aspect //Video aspect
const float UI = $UIAspectX; const float UI = $UIAspectX;
const float UIY = $UIAspectY; const float UIY = $UIAspectY;
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[5]; uniform ivec4 uf_remappedVS[5];
layout(location = 0) in uvec4 attrDataSem0; };
layout(location = 1) in uvec4 attrDataSem8; #else
uniform ivec4 uf_remappedVS[5];
#endif
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem8;
out gl_PerVertex out gl_PerVertex
{ {
vec4 gl_Position; vec4 gl_Position;
@ -87,7 +110,7 @@ R0f.w = tempf.x;
R1f.xyz = vec3(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z)); R1f.xyz = vec3(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z));
R1f.w = intBitsToFloat(uf_remappedVS[4].w); R1f.w = intBitsToFloat(uf_remappedVS[4].w);
// export // export
gl_Position = vec4(R0f.x*UI, R0f.y*UIY, R0f.z, R0f.w); SET_POSITION(vec4(R0f.x*UI, R0f.y*UIY, R0f.z, R0f.w));
// export // export
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
// export // export

View File

@ -3,7 +3,7 @@ titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
name = Resolution name = Resolution
path = "Tokyo Mirage Sessions FE/Graphics/Resolution" path = "Tokyo Mirage Sessions FE/Graphics/Resolution"
description = Changes the resolution of the game. Made by getdls. description = Changes the resolution of the game. Made by getdls.
version = 3 version = 4
[Preset] [Preset]
name = 1280x720 (Default) name = 1280x720 (Default)

View File

@ -388,7 +388,7 @@
"Tokyo Mirage Sessions ♯FE": "Tokyo Mirage Sessions ♯FE":
nativeRes: 720 nativeRes: 720
compatLink: "http://compat.cemu.info/wiki/Tokyo_Mirage_Sessions_#FE" compatLink: "http://compat.cemu.info/wiki/Tokyo_Mirage_Sessions_#FE"
version: 3 version: 4
hasUltrawide: true hasUltrawide: true
"Turbo: Super Stunt Squad": "Turbo: Super Stunt Squad":
nativeRes: 720 nativeRes: 720