mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-22 09:39:17 +01:00
[TMS:FE] Update to V7 graphic packs
Haven't implemented the inMEM = 1 feature to fix the menus yet, but this is a working version.
This commit is contained in:
parent
d3231ac80d
commit
e329d63186
@ -1,102 +0,0 @@
|
|||||||
#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 04d0827b9471eb22
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
|
||||||
{
|
|
||||||
uniform ivec4 uf_remappedVS[1];
|
|
||||||
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
|
|
||||||
};
|
|
||||||
#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
|
|
||||||
{
|
|
||||||
vec4 gl_Position;
|
|
||||||
float gl_PointSize;
|
|
||||||
};
|
|
||||||
layout(location = 1) out vec4 passParameterSem137;
|
|
||||||
layout(location = 0) out vec4 passParameterSem136;
|
|
||||||
int clampFI32(int v)
|
|
||||||
{
|
|
||||||
if( v == 0x7FFFFFFF )
|
|
||||||
return floatBitsToInt(1.0);
|
|
||||||
else if( v == 0xFFFFFFFF )
|
|
||||||
return floatBitsToInt(0.0);
|
|
||||||
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
|
||||||
}
|
|
||||||
float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));}
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 R0f = vec4(0.0);
|
|
||||||
vec4 R1f = vec4(0.0);
|
|
||||||
vec4 R2f = vec4(0.0);
|
|
||||||
vec4 R3f = vec4(0.0);
|
|
||||||
vec4 R127f = vec4(0.0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
|
|
||||||
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
|
|
||||||
float PS0f = 0.0, PS1f = 0.0;
|
|
||||||
vec4 tempf = vec4(0.0);
|
|
||||||
float tempResultf;
|
|
||||||
int tempResulti;
|
|
||||||
ivec4 ARi = ivec4(0);
|
|
||||||
bool predResult = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID));
|
|
||||||
attrDecoder = attrDataSem0;
|
|
||||||
attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
|
|
||||||
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(int(attrDecoder.w)));
|
|
||||||
attrDecoder.xy = attrDataSem8.xy;
|
|
||||||
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
|
|
||||||
attrDecoder.z = 0;
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
|
|
||||||
// 0
|
|
||||||
R3f.x = R2f.x;
|
|
||||||
R3f.y = R2f.y;
|
|
||||||
PV0f.z = intBitsToFloat(uf_remappedVS[0].z) + 0.0;
|
|
||||||
// 1
|
|
||||||
R127f.z = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), PV0f.z);
|
|
||||||
PV1f.z = R127f.z;
|
|
||||||
PV1f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), PV0f.z);
|
|
||||||
// 2
|
|
||||||
PV0f.x = R2f.y + PV1f.z;
|
|
||||||
PV0f.y = R2f.x + PV1f.w;
|
|
||||||
R0f.x = R2f.x + -(PV1f.w);
|
|
||||||
PS0f = R0f.x;
|
|
||||||
// 3
|
|
||||||
R0f.y = R2f.y + -(R127f.z);
|
|
||||||
R0f.z = PV0f.y;
|
|
||||||
R0f.w = PV0f.x;
|
|
||||||
// export
|
|
||||||
SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
|
|
||||||
// export
|
|
||||||
passParameterSem137 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
// export
|
|
||||||
passParameterSem136 = vec4(R3f.x, R3f.y, R3f.z, R3f.z);
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
|
||||||
name = AA Removal
|
|
||||||
path = "Tokyo Mirage Sessions FE/Enhancements/AA Removal"
|
|
||||||
description = Removes AA, no performance gain. Used for clean look or injecting external AA. Made by getdls.
|
|
||||||
version = 4
|
|
@ -1,118 +0,0 @@
|
|||||||
#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 dda6656146476243
|
|
||||||
//Video aspect
|
|
||||||
const float UI = $UIAspectX;
|
|
||||||
const float UIY = $UIAspectY;
|
|
||||||
#ifdef VULKAN
|
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
|
||||||
{
|
|
||||||
uniform ivec4 uf_remappedVS[5];
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
uniform ivec4 uf_remappedVS[5];
|
|
||||||
#endif
|
|
||||||
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
|
|
||||||
ATTR_LAYOUT(0, 1) in uvec4 attrDataSem8;
|
|
||||||
out gl_PerVertex
|
|
||||||
{
|
|
||||||
vec4 gl_Position;
|
|
||||||
float gl_PointSize;
|
|
||||||
};
|
|
||||||
layout(location = 0) out vec4 passParameterSem131;
|
|
||||||
layout(location = 1) out vec4 passParameterSem136;
|
|
||||||
int clampFI32(int v)
|
|
||||||
{
|
|
||||||
if( v == 0x7FFFFFFF )
|
|
||||||
return floatBitsToInt(1.0);
|
|
||||||
else if( v == 0xFFFFFFFF )
|
|
||||||
return floatBitsToInt(0.0);
|
|
||||||
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
|
||||||
}
|
|
||||||
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 R0f = vec4(0.0);
|
|
||||||
vec4 R1f = vec4(0.0);
|
|
||||||
vec4 R2f = vec4(0.0);
|
|
||||||
vec4 R3f = vec4(0.0);
|
|
||||||
uvec4 attrDecoder;
|
|
||||||
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
|
|
||||||
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
|
|
||||||
float PS0f = 0.0, PS1f = 0.0;
|
|
||||||
vec4 tempf = vec4(0.0);
|
|
||||||
float tempResultf;
|
|
||||||
int tempResulti;
|
|
||||||
ivec4 ARi = ivec4(0);
|
|
||||||
bool predResult = true;
|
|
||||||
vec3 cubeMapSTM;
|
|
||||||
int cubeMapFaceId;
|
|
||||||
R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID));
|
|
||||||
attrDecoder.xyz = attrDataSem0.xyz;
|
|
||||||
attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0)));
|
|
||||||
attrDecoder.xy = attrDataSem8.xy;
|
|
||||||
attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24));
|
|
||||||
attrDecoder.z = 0;
|
|
||||||
attrDecoder.w = 0;
|
|
||||||
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
|
|
||||||
// 0
|
|
||||||
R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,R1f.w),vec4(intBitsToFloat(uf_remappedVS[0].x),intBitsToFloat(uf_remappedVS[0].y),intBitsToFloat(uf_remappedVS[0].z),intBitsToFloat(uf_remappedVS[0].w)));
|
|
||||||
PV0f.x = R0f.x;
|
|
||||||
PV0f.y = R0f.x;
|
|
||||||
PV0f.z = R0f.x;
|
|
||||||
PV0f.w = R0f.x;
|
|
||||||
R3f.x = R2f.x;
|
|
||||||
PS0f = R3f.x;
|
|
||||||
// 1
|
|
||||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R1f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w)));
|
|
||||||
PV1f.x = tempf.x;
|
|
||||||
PV1f.y = tempf.x;
|
|
||||||
PV1f.z = tempf.x;
|
|
||||||
PV1f.w = tempf.x;
|
|
||||||
R0f.y = tempf.x;
|
|
||||||
R3f.y = R2f.y;
|
|
||||||
PS1f = R3f.y;
|
|
||||||
// 2
|
|
||||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R1f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w)));
|
|
||||||
PV0f.x = tempf.x;
|
|
||||||
PV0f.y = tempf.x;
|
|
||||||
PV0f.z = tempf.x;
|
|
||||||
PV0f.w = tempf.x;
|
|
||||||
R0f.z = tempf.x;
|
|
||||||
// 3
|
|
||||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R1f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w)));
|
|
||||||
PV1f.x = tempf.x;
|
|
||||||
PV1f.y = tempf.x;
|
|
||||||
PV1f.z = tempf.x;
|
|
||||||
PV1f.w = tempf.x;
|
|
||||||
R0f.w = tempf.x;
|
|
||||||
// 4
|
|
||||||
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);
|
|
||||||
// export
|
|
||||||
SET_POSITION(vec4(R0f.x*UI, R0f.y*UIY, R0f.z, R0f.w));
|
|
||||||
// export
|
|
||||||
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
|
||||||
// export
|
|
||||||
passParameterSem136 = vec4(R3f.x, R3f.y, R3f.z, R3f.z);
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
|
||||||
name = Video pan n scan
|
|
||||||
path = "Tokyo Mirage Sessions FE/Graphics/Video pan n scan"
|
|
||||||
description = 21:9 Video, cuts of sides instead of pillar-boxing. Made by getdls.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 21:9 Pan n scan (Cut top, bottom)
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (2560.0 / 1080.0) / (1280.0/720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 16:10 Pan n scan (Cut sides)
|
|
||||||
$UIAspectX = (1280.0/720.0) / (3840.0 / 2400.0)
|
|
||||||
$UIAspectY = 1.0
|
|
@ -1,50 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
|
||||||
name = Adjust Cutscene Blur
|
|
||||||
path = "Tokyo Mirage Sessions FE/Graphics/Adjust Cutscene Blur"
|
|
||||||
description = Changes the in-game cut-scenes blur. Made by getdls.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 100% Blur (Original)
|
|
||||||
$Blur = 1.0
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 90% Blur
|
|
||||||
$Blur = 0.9
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 80% Blur
|
|
||||||
$Blur = 0.8
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 70% Blur
|
|
||||||
$Blur = 0.7
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 60% Blur
|
|
||||||
$Blur = 0.6
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 50% Blur
|
|
||||||
$Blur = 0.5
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 40% Blur
|
|
||||||
$Blur = 0.4
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 30% Blur
|
|
||||||
$Blur = 0.3
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 20% Blur
|
|
||||||
$Blur = 0.2
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 10% Blur
|
|
||||||
$Blur = 0.1
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = Disabled
|
|
||||||
$Blur = 0.0
|
|
@ -1,38 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
|
||||||
name = Negative texture LOD bias
|
|
||||||
path = "Tokyo Mirage Sessions FE/Enhancements/Negative Texture LOD"
|
|
||||||
description = Texture LOD override, possible shimmer but sharper textures. Made by getdls.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD Default
|
|
||||||
$LOD = 0
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD -1 (Sharper)
|
|
||||||
$LOD = -1
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD -2
|
|
||||||
$LOD = -2
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD -3
|
|
||||||
$LOD = -3
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD -4
|
|
||||||
$LOD = -4
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD -8
|
|
||||||
$LOD = -8
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = LOD -16 (Sharpest)
|
|
||||||
$LOD = -16
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
formats = 0x01a,0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435
|
|
||||||
overwriteRelativeLodBias = $LOD
|
|
@ -1,14 +0,0 @@
|
|||||||
[TMS_60FPS] # Tested on unpatched EU version
|
|
||||||
moduleMatches = 0x2249A57A
|
|
||||||
|
|
||||||
0x1002A6E4 = .float 0.016666667
|
|
||||||
_frameTime = 0x1002A6E4
|
|
||||||
|
|
||||||
0x021A7654 = lis r10, _frameTime@ha # cinematic timing
|
|
||||||
0x021A765C = lfs f1, _frameTime@l(r10) #
|
|
||||||
|
|
||||||
0x0244D434 = li r4, 1 #
|
|
||||||
0x0248BF04 = nop # kill vsync
|
|
||||||
0x0248B11C = nop #kill vsync
|
|
||||||
|
|
||||||
#0x10065E50 = .float 0.033333335 # cinematic animation speed, for future ref
|
|
@ -1,27 +0,0 @@
|
|||||||
------
|
|
||||||
### Tokyo mirage sessions FE #
|
|
||||||
------
|
|
||||||
### Graphic options
|
|
||||||
|
|
||||||
3840x4320 vert x2 SSAA - Runs the game at double vertical res balancing look and performance when super sampling. Aspect is still 16:9 so run full screen scaling in stretched and bilinear when activating this option.
|
|
||||||
By default game scales GUI and pillar boxes video.
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
```
|
|
||||||
[Preset]
|
|
||||||
name = 2560x2160 ("21:9")
|
|
||||||
$width = 2560
|
|
||||||
$height = 2160 <- double vertical res
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = (1280.0/720.0) / (2560.0 / 1080.0) <- UI aspect 21:9 scale
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (2560.0 / 1080.0) <- 3d aspect 21:9 scale
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Known issues Cemu 15:11.x
|
|
||||||
Shadows are broken
|
|
||||||
Touchpad seonsor aspect doesnt scale ie 21:9 graphics still has 16:9 sensor size
|
|
||||||
Portraits are missing due to gfx pack scaling similar values in-game
|
|
@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
[TMS_219_EUv16]
|
|
||||||
moduleMatches = 0x2249A57A
|
|
||||||
|
|
||||||
0x10006C18 = .float $GameAspect
|
|
||||||
0x10014400 = .float $GameAspect
|
|
||||||
0x10067140 = .float $GameAspect
|
|
@ -1,479 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
|
||||||
name = Resolution
|
|
||||||
path = "Tokyo Mirage Sessions FE/Graphics/Resolution"
|
|
||||||
description = Changes the resolution of the game. Made by getdls.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1280x720 (Default)
|
|
||||||
$width = 1280
|
|
||||||
$height = 720
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
// Performance
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 320x180
|
|
||||||
$width = 320
|
|
||||||
$height = 180
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 640x360
|
|
||||||
$width = 640
|
|
||||||
$height = 360
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 960x540
|
|
||||||
$width = 960
|
|
||||||
$height = 540
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
// Common HD Resolutions
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1600x900
|
|
||||||
$width = 1600
|
|
||||||
$height = 900
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1920x1080
|
|
||||||
$width = 1920
|
|
||||||
$height = 1080
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x1440
|
|
||||||
$width = 2560
|
|
||||||
$height = 1440
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3200x1800
|
|
||||||
$width = 3200
|
|
||||||
$height = 1800
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x2160
|
|
||||||
$width = 3840
|
|
||||||
$height = 2160
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 5120x2880
|
|
||||||
$width = 5120
|
|
||||||
$height = 2880
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 7680x4320
|
|
||||||
$width = 7680
|
|
||||||
$height = 4320
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1280.0 / 720.0)
|
|
||||||
|
|
||||||
// Common Ultrawide Resolutions
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x1080 ("21:9")
|
|
||||||
$width = 2560
|
|
||||||
$height = 1080
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = (1280.0/720.0) / (2560.0 / 1080.0)
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (2560.0 / 1080.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3440x1440 ("21:9") #2.388
|
|
||||||
$width = 3440
|
|
||||||
$height = 1440
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = (1280.0/720.0) / (3440.0 / 1440.0)
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (3440.0 / 1440.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x1600 ("21:9") #2.4
|
|
||||||
$width = 3840
|
|
||||||
$height = 1600
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = (1280.0/720.0)/ (3840.0 / 1600.0)
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (3840.0 / 1600.0)
|
|
||||||
|
|
||||||
// Common 16:10 Resolutions
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1440x900 (16:10)
|
|
||||||
$width = 1440
|
|
||||||
$height = 900
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (1440.0 / 900.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (1440.0 / 900.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1680x1050 (16:10)
|
|
||||||
$width = 1680
|
|
||||||
$height = 1050
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (1680.0 / 1050.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (1680.0 / 1050.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1920x1200 (16:10)
|
|
||||||
$width = 1920
|
|
||||||
$height = 1200
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (1920.0 / 1200.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (1920.0 / 1200.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x1600 (16:10)
|
|
||||||
$width = 2560
|
|
||||||
$height = 1600
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (2560.0 / 1600.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (2560.0 / 1600.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2880x1800 (16:10)
|
|
||||||
$width = 2880
|
|
||||||
$height = 1800
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (2880.0 / 1800.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (2880.0 / 1800.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x2400 (16:10)
|
|
||||||
$width = 3840
|
|
||||||
$height = 2400
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (3840.0 / 2400.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (3840.0 / 2400.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 5120x3200 (16:10)
|
|
||||||
$width = 5120
|
|
||||||
$height = 3200
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = (5120.0 / 3200.0) / (1280.0/720.0)
|
|
||||||
$GameAspect = (5120.0 / 3200.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = -- Double vertical res for SSAA, disable keep aspect ratio --
|
|
||||||
$width = 2560
|
|
||||||
$height = 2880
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (2560.0 / 1440.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1920x2160
|
|
||||||
$width = 1920
|
|
||||||
$height = 2160
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (1920.0 / 1080.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x2160 ("21:9")
|
|
||||||
$width = 2560
|
|
||||||
$height = 2160
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = (1280.0/720.0) / (2560.0 / 1080.0)
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (2560.0 / 1080.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x2880
|
|
||||||
$width = 2560
|
|
||||||
$height = 2880
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (2560.0 / 1440.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x3200 ("21:9") #2.4
|
|
||||||
$width = 3840
|
|
||||||
$height = 3200
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = (1280.0/720.0)/ (2840.0 / 1600)
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (3840.0 / 1600.0)
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x4320
|
|
||||||
$width = 3840
|
|
||||||
$height = 4320
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
$UIAspectY = 1.0
|
|
||||||
$GameAspect = (3840.0 / 2160.0)
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteFormat = 0x01f
|
|
||||||
$UIAspectX = 1.0
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x810
|
|
||||||
overwriteFormat = 0x81e
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 640
|
|
||||||
height = 368
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 640
|
|
||||||
height = 360
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine] #
|
|
||||||
width = 640
|
|
||||||
height = 368
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 320
|
|
||||||
height = 192
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 320
|
|
||||||
height = 180
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 160
|
|
||||||
height = 128
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 160
|
|
||||||
height = 120
|
|
||||||
formats = 0x816
|
|
||||||
overwriteFormat = 0x820
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x01a,0x816,0x80e,0x001
|
|
||||||
tileModesExcluded = 0x001
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 1280
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 720
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 340
|
|
||||||
#formats =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 1280
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 340
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1014
|
|
||||||
height = 720
|
|
||||||
#formats =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 1014
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 720
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 896
|
|
||||||
height = 480
|
|
||||||
formats = 0x001
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 896
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 480
|
|
||||||
|
|
||||||
[TextureRedefine] # Pad
|
|
||||||
width = 864
|
|
||||||
height = 480
|
|
||||||
#formats =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 864
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 480
|
|
||||||
|
|
||||||
[TextureRedefine] # Pad
|
|
||||||
width = 854
|
|
||||||
height = 480
|
|
||||||
#formats =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 854
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 480
|
|
||||||
|
|
||||||
[TextureRedefine] # Pad
|
|
||||||
width = 674
|
|
||||||
height = 574
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 674
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 574
|
|
||||||
|
|
||||||
[TextureRedefine] # Pad
|
|
||||||
width = 657
|
|
||||||
height = 574
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 657
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 574
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 640
|
|
||||||
height = 720
|
|
||||||
#formats =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 640
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 720
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 640
|
|
||||||
height = 368
|
|
||||||
#formats = 0x816,0x001
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 640
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 368
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 640
|
|
||||||
height = 360
|
|
||||||
#formats = 0x816,0x001
|
|
||||||
tileModesExcluded = 0x001
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 640
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 360
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 320
|
|
||||||
height = 192
|
|
||||||
formats = 0x816
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 320
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 192
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 320
|
|
||||||
height = 180
|
|
||||||
formats = 0x816
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 320
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 180
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 160
|
|
||||||
height = 128
|
|
||||||
formats = 0x816
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 160
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 128
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 160
|
|
||||||
height = 120
|
|
||||||
formats = 0x816
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 160
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 120
|
|
||||||
|
|
||||||
#[TextureRedefine] # Shadows cemu scaling broken?
|
|
||||||
#width = 1024
|
|
||||||
#height = 2048
|
|
||||||
#formats = 0x011,0x811
|
|
||||||
#overwriteWidth = ($height/$gameHeight) * 1024
|
|
||||||
#overwriteHeight = ($height/$gameHeight) * 2048
|
|
||||||
|
|
||||||
#[TextureRedefine] #Shadows, cemu scaling broken?
|
|
||||||
#width = 1024
|
|
||||||
#height = 1024
|
|
||||||
#formats = 0x011,0x811
|
|
||||||
#overwriteWidth = ($height/$gameHeight) * 1024
|
|
||||||
#overwriteHeight = ($height/$gameHeight) * 1024
|
|
||||||
|
|
||||||
#[TextureRedefine] # Don't scale
|
|
||||||
#width = 512
|
|
||||||
#height = 512
|
|
||||||
#formats = 0x01a #GUI bar + alpha nope
|
|
||||||
#overwriteWidth = 1024
|
|
||||||
#overwriteHeight = 1024
|
|
||||||
|
|
||||||
#[TextureRedefine] # Don't scale
|
|
||||||
#width = 128
|
|
||||||
#height = 1024
|
|
||||||
#formats = 0x034 #text + alpha
|
|
||||||
#overwriteWidth = 256
|
|
||||||
#overwriteHeight = 2048
|
|
@ -20,6 +20,26 @@
|
|||||||
|
|
||||||
// shader a7f4801a8d29e333
|
// shader a7f4801a8d29e333
|
||||||
|
|
||||||
|
const float hazeFactor = 0.1;
|
||||||
|
|
||||||
|
const float gamma = $gamma; // 1.0 is neutral Botw is already colour graded at this stage
|
||||||
|
const float exposure = $exposure; // 1.0 is neutral
|
||||||
|
const float vibrance = $vibrance; // 0.0 is neutral
|
||||||
|
const float crushContrast = $crushContrast; // 0.0 is neutral. Use small increments, loss of shadow detail
|
||||||
|
const float contrastCurve = $contrastCurve;
|
||||||
|
|
||||||
|
|
||||||
|
vec3 RGB_Lift = vec3($redShadows, $greenShadows, $blueShadows); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue.
|
||||||
|
vec3 RGB_Gamma = vec3($redMid, $greenMid, $blueMid); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue.
|
||||||
|
vec3 RGB_Gain = vec3($redHilight, $greenHilight, $blueHilight); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue.
|
||||||
|
|
||||||
|
//lumasharpen
|
||||||
|
const float sharp_mix = $sharp_mix;
|
||||||
|
const float sharp_strength = 2.0;
|
||||||
|
const float sharp_clamp = 0.75;
|
||||||
|
const float offset_bias = 1.0;
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 1, binding = 1) uniform ufBlock
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
{
|
{
|
||||||
@ -31,25 +51,7 @@ uniform ivec4 uf_remappedPS[3];
|
|||||||
uniform vec2 uf_fragCoordScale;
|
uniform vec2 uf_fragCoordScale;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const float hazeFactor = 0.1;
|
|
||||||
|
|
||||||
const float gamma = $gamma; // 1.0 is neutral Botw is already colour graded at this stage
|
|
||||||
const float exposure = $exposure; // 1.0 is neutral
|
|
||||||
const float vibrance = $vibrance; // 0.0 is neutral
|
|
||||||
const float crushContrast = $crushContrast; // 0.0 is neutral. Use small increments, loss of shadow detail
|
|
||||||
const float contrastCurve = $contrastCurve;
|
|
||||||
|
|
||||||
|
|
||||||
vec3 RGB_Lift = vec3($redShadows, $greenShadows , $blueSadows); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue.
|
|
||||||
vec3 RGB_Gamma = vec3($redMid ,$greenMid, $blueMid); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue
|
|
||||||
vec3 RGB_Gain = vec3($redHilight, $greenHilight, $blueHilight); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue
|
|
||||||
//lumasharpen
|
|
||||||
const float sharp_mix = $sharp_mix;
|
|
||||||
const float sharp_strength = 2.0;
|
|
||||||
const float sharp_clamp = 0.75;
|
|
||||||
const float offset_bias = 1.0;
|
|
||||||
float Sigmoid (float x) {
|
float Sigmoid (float x) {
|
||||||
|
|
||||||
return 1.0 / (1.0 + (exp(-(x - 0.5) * 5.5)));
|
return 1.0 / (1.0 + (exp(-(x - 0.5) * 5.5)));
|
||||||
}
|
}
|
||||||
|
|
@ -2,93 +2,119 @@
|
|||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||||
name = Contrasty
|
name = Contrasty
|
||||||
path = "Tokyo Mirage Sessions FE/Enhancements/Contrasty"
|
path = "Tokyo Mirage Sessions FE/Enhancements/Contrasty"
|
||||||
description = This pack tweaks the colors and contrast to whatever preset you set it as. You can also make your own preset by editing the Default preset in the Contrasty folder from the game's graphic packs. Made by getdls.
|
description = This pack tweaks the colors and contrast to whatever preset you set it as.|You can also make your own preset by editing the Normal preset in the Contrasty folder from the game's graphic packs.||Made by getdls.
|
||||||
version = 4
|
version = 7
|
||||||
|
|
||||||
[Preset]
|
[Default]
|
||||||
name = Default
|
|
||||||
$redShadows = 1.0
|
$redShadows = 1.0
|
||||||
$greenShadows = 1.0
|
$greenShadows = 1.0
|
||||||
$blueSadows = 1.0
|
$blueShadows = 1.0
|
||||||
$redMid = 1.0
|
$redMid = 1.0
|
||||||
$greenMid = 1.0
|
$greenMid = 1.0
|
||||||
$blueMid = 1.0
|
$blueMid = 1.0
|
||||||
$redHilight = 1.0
|
$redHilight = 1.0
|
||||||
$greenHilight =1.0
|
$greenHilight = 1.0
|
||||||
$blueHilight = 1.0
|
$blueHilight = 1.0
|
||||||
|
|
||||||
$contrastCurve = 0.0
|
$contrastCurve = 0.0
|
||||||
$hazeFactor = 1.0
|
$hazeFactor = 1.0
|
||||||
$bloom = 1.0
|
$bloom = 1.0
|
||||||
$gamma = 1.0
|
$gamma = 1.0
|
||||||
$exposure = 1.0
|
$exposure = 1.0
|
||||||
$vibrance = 0.0
|
$vibrance = 0.0
|
||||||
|
$crushContrast = 0.0
|
||||||
|
$bleach = 1.0
|
||||||
|
$sharp_mix = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Preset
|
||||||
|
name = Normal
|
||||||
|
$redShadows = 1.0
|
||||||
|
$greenShadows = 1.0
|
||||||
|
$blueShadows = 1.0
|
||||||
|
$redMid = 1.0
|
||||||
|
$greenMid = 1.0
|
||||||
|
$blueMid = 1.0
|
||||||
|
$redHilight = 1.0
|
||||||
|
$greenHilight = 1.0
|
||||||
|
$blueHilight = 1.0
|
||||||
|
|
||||||
|
$contrastCurve = 0.0
|
||||||
|
$hazeFactor = 1.0
|
||||||
|
$bloom = 1.0
|
||||||
|
$gamma = 1.0
|
||||||
|
$exposure = 1.0
|
||||||
|
$vibrance = 0.0
|
||||||
$crushContrast = 0.0
|
$crushContrast = 0.0
|
||||||
$bleach = 1.0
|
$bleach = 1.0
|
||||||
$sharp_mix = 0.0
|
$sharp_mix = 0.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
|
category = Preset
|
||||||
name = High Contrasty
|
name = High Contrasty
|
||||||
$redShadows = 1.0
|
$redShadows = 1.0
|
||||||
$greenShadows = 1.0
|
$greenShadows = 1.0
|
||||||
$blueSadows = 1.0
|
$blueShadows = 1.0
|
||||||
$redMid = 0.98
|
$redMid = 0.98
|
||||||
$greenMid = 0.98
|
$greenMid = 0.98
|
||||||
$blueMid = 0.9
|
$blueMid = 0.9
|
||||||
$redHilight = 1.0
|
$redHilight = 1.0
|
||||||
$greenHilight =1.0
|
$greenHilight = 1.0
|
||||||
$blueHilight = 1.0
|
$blueHilight = 1.0
|
||||||
|
|
||||||
$contrastCurve = 0.6
|
$contrastCurve = 0.6
|
||||||
$hazeFactor = 0.25
|
$hazeFactor = 0.25
|
||||||
$bloom = 0.85
|
$bloom = 0.85
|
||||||
$gamma = 1.1
|
$gamma = 1.1
|
||||||
$exposure = 1.05
|
$exposure = 1.05
|
||||||
$vibrance = 0.25
|
$vibrance = 0.25
|
||||||
$crushContrast = 0.00
|
$crushContrast = 0.0
|
||||||
$bleach = 0.85
|
$bleach = 0.85
|
||||||
$sharp_mix = 0.1
|
$sharp_mix = 0.1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Colourful
|
category = Preset
|
||||||
|
name = Colorful
|
||||||
$redShadows = 0.999
|
$redShadows = 0.999
|
||||||
$greenShadows = 0.98
|
$greenShadows = 0.98
|
||||||
$blueSadows = 0.98
|
$blueShadows = 0.98
|
||||||
$redMid = 1.0
|
$redMid = 1.0
|
||||||
$greenMid = 0.99
|
$greenMid = 0.99
|
||||||
$blueMid = 0.99
|
$blueMid = 0.99
|
||||||
$redHilight = 1.0
|
$redHilight = 1.0
|
||||||
$greenHilight =0.99
|
$greenHilight = 0.99
|
||||||
$blueHilight = 0.99
|
$blueHilight = 0.99
|
||||||
|
|
||||||
$contrastCurve = 0.15
|
$contrastCurve = 0.15
|
||||||
$hazeFactor = 1.0
|
$hazeFactor = 1.0
|
||||||
$bloom = 0.85
|
$bloom = 0.85
|
||||||
$gamma = 1.05
|
$gamma = 1.05
|
||||||
$exposure = 1.01
|
$exposure = 1.01
|
||||||
$vibrance = 0.4
|
$vibrance = 0.4
|
||||||
$crushContrast = 0.00
|
$crushContrast = 0.0
|
||||||
$bleach = 0.85
|
$bleach = 0.85
|
||||||
$sharp_mix = 0.1
|
$sharp_mix = 0.1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
|
category = Preset
|
||||||
name = Neutral Contrasty
|
name = Neutral Contrasty
|
||||||
$redShadows = 1.01
|
$redShadows = 1.01
|
||||||
$greenShadows = 1.01
|
$greenShadows = 1.01
|
||||||
$blueSadows = 1.01
|
$blueShadows = 1.01
|
||||||
$redMid = 1.0
|
$redMid = 1.0
|
||||||
$greenMid = 1.0
|
$greenMid = 1.0
|
||||||
$blueMid = 1.0
|
$blueMid = 1.0
|
||||||
$redHilight = 0.99
|
$redHilight = 0.99
|
||||||
$greenHilight =0.99
|
$greenHilight = 0.99
|
||||||
$blueHilight = 0.99
|
$blueHilight = 0.99
|
||||||
|
|
||||||
$contrastCurve = 0.30
|
$contrastCurve = 0.30
|
||||||
$hazeFactor = 1.0
|
$hazeFactor = 1.0
|
||||||
$bloom = 0.85
|
$bloom = 0.85
|
||||||
$gamma = 1.075
|
$gamma = 1.075
|
||||||
$exposure = 1.01
|
$exposure = 1.01
|
||||||
$vibrance = 0.15
|
$vibrance = 0.15
|
||||||
$crushContrast = 0.00
|
$crushContrast = 0.0
|
||||||
$bleach = 0.85
|
$bleach = 0.85
|
||||||
$sharp_mix = 0.1
|
$sharp_mix = 0.1
|
102
src/TokyoMirage/Enhancements/LODBias/rules.txt
Normal file
102
src/TokyoMirage/Enhancements/LODBias/rules.txt
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||||
|
name = LOD Bias
|
||||||
|
path = "Tokyo Mirage Sessions FE/Enhancements/LOD Bias"
|
||||||
|
description = Setting your Level Of Detail bias changes the detail level of the textures that are used.|Increasing the distant texture detail will make textures in the distance look sharper. Lowering the texture detail might improve performance however. Might introduce graphical bugs.
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$advancedOptions = 0
|
||||||
|
$lodBias = 0
|
||||||
|
|
||||||
|
|
||||||
|
# Show Experimental Options
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Show Experimental Options
|
||||||
|
name = Disabled
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Show Experimental Options
|
||||||
|
name = Enabled (for screenshots/testing)
|
||||||
|
$advancedOptions = 1
|
||||||
|
|
||||||
|
|
||||||
|
# Texture Detail
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Lowest (Not Recommended, +16)
|
||||||
|
condition = $advancedOptions == 1
|
||||||
|
$lodBias = +16
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Extremely low (Not Recommended, +8)
|
||||||
|
condition = $advancedOptions == 1
|
||||||
|
$lodBias = +8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Very low (Not Recommended, +4)
|
||||||
|
condition = $advancedOptions == 1
|
||||||
|
$lodBias = +4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Much lower (+3)
|
||||||
|
$lodBias = +3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Lower (+2)
|
||||||
|
$lodBias = +2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Slightly lower (+1)
|
||||||
|
$lodBias = +1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Normal (+0)
|
||||||
|
default = 1
|
||||||
|
$lodBias = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Slightly Higher (-1)
|
||||||
|
$lodBias = -1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Higher (-2)
|
||||||
|
$lodBias = -2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Much higher (-3)
|
||||||
|
$lodBias = -3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Very high (Not Recommended, -4)
|
||||||
|
condition = $advancedOptions == 1
|
||||||
|
$lodBias = -4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Extremely high (Not Recommended, -8)
|
||||||
|
condition = $advancedOptions == 1
|
||||||
|
$lodBias = -8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Distant Texture Detail
|
||||||
|
name = Highest (Not Recommended, -16)
|
||||||
|
condition = $advancedOptions == 1
|
||||||
|
$lodBias = -16
|
||||||
|
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
formats = 0x01a,0x031,0x032,0x033,0x034,0x035,0x431,0x432,0x433,0x434,0x435
|
||||||
|
overwriteRelativeLodBias = $lodBias
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
||||||
@ -80,11 +82,22 @@ R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)
|
|||||||
// 0
|
// 0
|
||||||
R3f.x = R2f.x;
|
R3f.x = R2f.x;
|
||||||
R3f.y = R2f.y;
|
R3f.y = R2f.y;
|
||||||
|
|
||||||
|
#if ($disableAntiAliasing == 0)
|
||||||
PV0f.z = intBitsToFloat(uf_remappedVS[0].z) + 0.5;
|
PV0f.z = intBitsToFloat(uf_remappedVS[0].z) + 0.5;
|
||||||
// 1
|
// 1
|
||||||
R127f.z = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y) / resYScale, PV0f.z);
|
R127f.z = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y) / resYScale, PV0f.z);
|
||||||
PV1f.z = R127f.z;
|
PV1f.z = R127f.z;
|
||||||
PV1f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x) / resXScale, PV0f.z);
|
PV1f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x) / resXScale, PV0f.z);
|
||||||
|
#else
|
||||||
|
PV0f.z = intBitsToFloat(uf_remappedVS[0].z) + 0.0;
|
||||||
|
// 1
|
||||||
|
R127f.z = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].y), PV0f.z);
|
||||||
|
PV1f.z = R127f.z;
|
||||||
|
PV1f.w = mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), PV0f.z);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// 2
|
// 2
|
||||||
PV0f.x = R2f.y + PV1f.z;
|
PV0f.x = R2f.y + PV1f.z;
|
||||||
PV0f.y = R2f.x + PV1f.w;
|
PV0f.y = R2f.x + PV1f.w;
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -19,9 +19,11 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader 61b51be479ffa5dc
|
// shader 61b51be479ffa5dc
|
||||||
//text aspect
|
// Used for: Text Rendering
|
||||||
const float UI = $UIAspectX;
|
const float calcYScale = (float($width)/float($height))/(float($gameWidth)/float($gameHeight));
|
||||||
const float UIY = $UIAspectY;
|
const float calcXScale = (float($gameWidth)/float($gameHeight))/(float($width)/float($height));
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
||||||
@ -126,8 +128,17 @@ PS0i = R4i.y;
|
|||||||
R5i.x = ((R127i.y == 0)?(R2i.x):(R2i.x));
|
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
|
|
||||||
SET_POSITION(vec4(intBitsToFloat(R0i.x)*UI, intBitsToFloat(R0i.y)*UIY, intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)));
|
|
||||||
|
|
||||||
|
#if ($ultrawideGUIScaling == 0)
|
||||||
|
SET_POSITION(vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)));
|
||||||
|
#elif ($ultrawideGUIScaling == 1)
|
||||||
|
if (calcXScale < 1.0) SET_POSITION(vec4(intBitsToFloat(R0i.x)*calcXScale, intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)));
|
||||||
|
if (calcYScale < 1.0) SET_POSITION(vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y)*calcYScale, intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// 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
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -19,9 +19,10 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader 94986f08df872394
|
// shader 94986f08df872394
|
||||||
//gui aspect
|
// Used for: GUI Rendering
|
||||||
const float UI = $UIAspectX;
|
const float calcYScale = (float($width)/float($height))/(float($gameWidth)/float($gameHeight));
|
||||||
const float UIY = $UIAspectY;
|
const float calcXScale = (float($gameWidth)/float($gameHeight))/(float($width)/float($height));
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
@ -148,8 +149,16 @@ R1f.x = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedVS[8].x));
|
|||||||
R1f.y = mul_nonIEEE(backupReg1f, intBitsToFloat(uf_remappedVS[8].y));
|
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
|
|
||||||
SET_POSITION(vec4(R2f.x*UI, R2f.y*UIY, R2f.z, R2f.w));
|
|
||||||
|
#if ($ultrawideGUIScaling == 0)
|
||||||
|
SET_POSITION(vec4(R2f.x, R2f.y, R2f.z, R2f.w));
|
||||||
|
#elif ($ultrawideGUIScaling == 1)
|
||||||
|
if (calcXScale < 1.0) SET_POSITION(vec4(R2f.x*calcXScale, R2f.y, R2f.z, R2f.w));
|
||||||
|
if (calcYScale < 1.0) SET_POSITION(vec4(R2f.x, R2f.y*calcYScale, R2f.z, R2f.w));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// export
|
// export
|
||||||
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||||
// export
|
// export
|
@ -19,9 +19,10 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader aae570d2455724bc
|
// shader aae570d2455724bc
|
||||||
//BG fx
|
// Used for: Background Effects
|
||||||
const float UI = $UIAspectX;
|
const float calcYScale = (float($width)/float($height))/(float($gameWidth)/float($gameHeight));
|
||||||
const float UIY = $UIAspectY;
|
const float calcXScale = (float($gameWidth)/float($gameHeight))/(float($width)/float($height));
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
||||||
@ -156,8 +157,16 @@ R3f.z = R126f.z;
|
|||||||
PS0f = R3f.z;
|
PS0f = R3f.z;
|
||||||
// 9
|
// 9
|
||||||
R3f.w = R127f.x;
|
R3f.w = R127f.x;
|
||||||
// export
|
|
||||||
SET_POSITION(vec4(R2f.x*UI, R2f.y*UIY, R2f.z, R2f.w));
|
|
||||||
|
#if ($ultrawideGUIScaling == 0)
|
||||||
|
SET_POSITION(vec4(R2f.x, R2f.y, R2f.z, R2f.w));
|
||||||
|
#elif ($ultrawideGUIScaling == 1)
|
||||||
|
if (calcXScale < 1.0) SET_POSITION(vec4(R2f.x*calcXScale, R2f.y, R2f.z, R2f.w));
|
||||||
|
if (calcYScale < 1.0) SET_POSITION(vec4(R2f.x, R2f.y*calcYScale, R2f.z, R2f.w));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// export
|
// export
|
||||||
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||||
// export
|
// export
|
@ -21,6 +21,8 @@
|
|||||||
// 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
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -19,9 +19,11 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader dda6656146476243
|
// shader dda6656146476243
|
||||||
//Video aspect
|
// Used for: Cutscene Videos
|
||||||
const float UI = $UIAspectX;
|
const float calcYScale = (float($width)/float($height))/(float($gameWidth)/float($gameHeight));
|
||||||
const float UIY = $UIAspectY;
|
const float calcXScale = (float($gameWidth)/float($gameHeight))/(float($width)/float($height));
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
||||||
@ -109,8 +111,22 @@ R0f.w = tempf.x;
|
|||||||
// 4
|
// 4
|
||||||
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
|
|
||||||
SET_POSITION(vec4(R0f.x*UI, R0f.y*UIY, R0f.z, R0f.w));
|
|
||||||
|
#if ($ultrawideCutsceneMode == 0)
|
||||||
|
// Keeps the cutscenes stretched
|
||||||
|
SET_POSITION(vec4(R0f.x, R0f.y, R0f.z, R0f.w));
|
||||||
|
#elif ($ultrawideCutsceneMode == 1)
|
||||||
|
// Squeeze the cutscenes back
|
||||||
|
if (calcXScale < 1.0) SET_POSITION(vec4(R0f.x*calcXScale, R0f.y, R0f.z, R0f.w));
|
||||||
|
if (calcYScale < 1.0) SET_POSITION(vec4(R0f.x, R0f.y*calcYScale, R0f.z, R0f.w));
|
||||||
|
#elif ($ultrawideCutsceneMode == 2)
|
||||||
|
// Cut the black bars of the video by zooming in. Extends the side of the video that didn't get stretched.
|
||||||
|
if (calcXScale < 1.0) SET_POSITION(vec4(R0f.x, R0f.y*calcXScale, R0f.z, R0f.w));
|
||||||
|
if (calcYScale < 1.0) SET_POSITION(vec4(R0f.x*calcYScale, R0f.y, R0f.z, R0f.w));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// export
|
// export
|
||||||
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
passParameterSem131 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||||
// export
|
// export
|
6
src/TokyoMirage/Graphics/patch_AspectRatio.asm
Normal file
6
src/TokyoMirage/Graphics/patch_AspectRatio.asm
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[TMS_AspectRatio_v16]
|
||||||
|
moduleMatches = 0x2249A57A
|
||||||
|
|
||||||
|
0x10006C18 = .float ($width/$height)
|
||||||
|
0x10014400 = .float ($width/$height)
|
||||||
|
0x10067140 = .float ($width/$height)
|
394
src/TokyoMirage/Graphics/rules.txt
Normal file
394
src/TokyoMirage/Graphics/rules.txt
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||||
|
name = Game Resolution
|
||||||
|
path = "Tokyo Mirage Sessions FE/Graphics"
|
||||||
|
description = Changes the resolution of the game. Requires the latest update to use the ultrawide resolutions properly.||Made by getdls.
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$width = 1280
|
||||||
|
$height = 720
|
||||||
|
$gameWidth = 1280
|
||||||
|
$gameHeight = 720
|
||||||
|
$ultrawideCutsceneMode:int = 0
|
||||||
|
$ultrawideGUIScaling:int = 0
|
||||||
|
$disableAntiAliasing:int = 0
|
||||||
|
|
||||||
|
|
||||||
|
# TV Resolution
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 640x360
|
||||||
|
$width = 640
|
||||||
|
$height = 360
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 960x540
|
||||||
|
$width = 960
|
||||||
|
$height = 540
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 1280x720 (Default)
|
||||||
|
default = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 1600x900
|
||||||
|
$width = 1600
|
||||||
|
$height = 900
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 1920x1080
|
||||||
|
$width = 1920
|
||||||
|
$height = 1080
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 2560x1440
|
||||||
|
$width = 2560
|
||||||
|
$height = 1440
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 3200x1800
|
||||||
|
$width = 3200
|
||||||
|
$height = 1800
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 3840x2160
|
||||||
|
$width = 3840
|
||||||
|
$height = 2160
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 5120x2880
|
||||||
|
$width = 5120
|
||||||
|
$height = 2880
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 7680x4320
|
||||||
|
$width = 7680
|
||||||
|
$height = 4320
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 1680x1050 (16:10)
|
||||||
|
$width = 1680
|
||||||
|
$height = 1050
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 1920x1200 (16:10)
|
||||||
|
$width = 1920
|
||||||
|
$height = 1200
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 2560x1080 (21:9)
|
||||||
|
$width = 2560
|
||||||
|
$height = 1080
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 3440x1440 (21:9)
|
||||||
|
$width = 3440
|
||||||
|
$height = 1440
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 5120x2160 (21:9)
|
||||||
|
$width = 5120
|
||||||
|
$height = 2160
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 3840x1080 (32:9)
|
||||||
|
$width = 3840
|
||||||
|
$height = 1080
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Resolution
|
||||||
|
name = 5120x1440 (32:9)
|
||||||
|
$width = 5120
|
||||||
|
$height = 1440
|
||||||
|
|
||||||
|
|
||||||
|
# Ultrawide Cutscene Scaling
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide Cutscene Scaling
|
||||||
|
name = N/A
|
||||||
|
condition = 0
|
||||||
|
$ultrawideCutsceneMode:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide Cutscene Scaling
|
||||||
|
name = Pillarbox Videos (Default)
|
||||||
|
condition = $width*9/16 != $height # Equals to "$width/$height != (16/9)" which is bugged in Cemu, since it'll be equal when the $width and $height is a 16:10 resolution
|
||||||
|
$ultrawideCutsceneMode:int = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide Cutscene Scaling
|
||||||
|
name = Zoom Into Videos (loses video edges)
|
||||||
|
condition = $width*9/16 != $height
|
||||||
|
$ultrawideCutsceneMode:int = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide Cutscene Scaling
|
||||||
|
name = None/Stretched Videos
|
||||||
|
condition = $width*9/16 != $height
|
||||||
|
$ultrawideCutsceneMode:int = 0
|
||||||
|
|
||||||
|
|
||||||
|
# Ultrawide GUI Scaling
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide GUI Scaling
|
||||||
|
name = N/A
|
||||||
|
condition = 0
|
||||||
|
default = 1
|
||||||
|
$ultrawideGUIScaling:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide GUI Scaling
|
||||||
|
name = Scale (Default)
|
||||||
|
condition = $width*9/16 != $height
|
||||||
|
$ultrawideGUIScaling:int = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Ultrawide GUI Scaling
|
||||||
|
name = Stretch
|
||||||
|
condition = $width*9/16 != $height
|
||||||
|
$ultrawideGUIScaling:int = 0
|
||||||
|
|
||||||
|
# Anti Aliasing
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Anti Aliasing
|
||||||
|
name = Enabled (Default, Recommended)
|
||||||
|
default = 1
|
||||||
|
$disableAntiAliasing:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Anti Aliasing
|
||||||
|
name = Disabled (jagged edges)
|
||||||
|
condition = $height <= 1080
|
||||||
|
$disableAntiAliasing:int = 1
|
||||||
|
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Anti Aliasing
|
||||||
|
name = Disabled
|
||||||
|
condition = $height > 1080
|
||||||
|
$disableAntiAliasing:int = 1
|
||||||
|
|
||||||
|
|
||||||
|
# Improve texture banding by using texture formats with more depth
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteFormat = 0x01f
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x810
|
||||||
|
overwriteFormat = 0x81e
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 640
|
||||||
|
height = 368
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 640
|
||||||
|
height = 360
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 640
|
||||||
|
height = 368
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 320
|
||||||
|
height = 192
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 320
|
||||||
|
height = 180
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 160
|
||||||
|
height = 128
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 160
|
||||||
|
height = 120
|
||||||
|
formats = 0x816
|
||||||
|
overwriteFormat = 0x820
|
||||||
|
|
||||||
|
|
||||||
|
# Texture Redefines
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x001,0x80e,0x816
|
||||||
|
tileModesExcluded = 0x1
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 1280
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 720
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x01a
|
||||||
|
tileModesExcluded = 0x1
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 1280
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 720
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 340
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 1280
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 340
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1014
|
||||||
|
height = 720
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 1014
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 720
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 896
|
||||||
|
height = 480
|
||||||
|
formats = 0x001
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 896
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 480
|
||||||
|
|
||||||
|
[TextureRedefine] # Gamepad
|
||||||
|
width = 864
|
||||||
|
height = 480
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 864
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 480
|
||||||
|
|
||||||
|
[TextureRedefine] # Gamepad
|
||||||
|
width = 854
|
||||||
|
height = 480
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 854
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 480
|
||||||
|
|
||||||
|
[TextureRedefine] # Gamepad
|
||||||
|
width = 674
|
||||||
|
height = 574
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 674
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 574
|
||||||
|
|
||||||
|
[TextureRedefine] # Gamepad
|
||||||
|
width = 657
|
||||||
|
height = 574
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 657
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 574
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 640
|
||||||
|
height = 720
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 640
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 720
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 640
|
||||||
|
height = 368
|
||||||
|
#formats = 0x816,0x001
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 640
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 368
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 640
|
||||||
|
height = 360
|
||||||
|
#formats = 0x816,0x001
|
||||||
|
tileModesExcluded = 0x1
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 640
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 360
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 320
|
||||||
|
height = 192
|
||||||
|
formats = 0x816
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 320
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 192
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 320
|
||||||
|
height = 180
|
||||||
|
formats = 0x816
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 320
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 180
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 160
|
||||||
|
height = 128
|
||||||
|
formats = 0x816
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 160
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 128
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 160
|
||||||
|
height = 120
|
||||||
|
formats = 0x816
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 160
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 120
|
||||||
|
|
||||||
|
|
||||||
|
#[TextureRedefine] # Shadows - Scaling broken
|
||||||
|
#width = 1024
|
||||||
|
#height = 2048
|
||||||
|
#formats = 0x011,0x811
|
||||||
|
#overwriteWidth = ($height/$gameHeight) * 1024
|
||||||
|
#overwriteHeight = ($height/$gameHeight) * 2048
|
||||||
|
|
||||||
|
#[TextureRedefine] # Shadows - Scaling broken
|
||||||
|
#width = 1024
|
||||||
|
#height = 1024
|
||||||
|
#formats = 0x011,0x811
|
||||||
|
#overwriteWidth = ($height/$gameHeight) * 1024
|
||||||
|
#overwriteHeight = ($height/$gameHeight) * 1024
|
||||||
|
|
||||||
|
#[TextureRedefine] # Don't scale
|
||||||
|
#width = 512
|
||||||
|
#height = 512
|
||||||
|
#formats = 0x01a # GUI bar + alpha nope
|
||||||
|
#overwriteWidth = 1024
|
||||||
|
#overwriteHeight = 1024
|
||||||
|
|
||||||
|
#[TextureRedefine] # Don't scale
|
||||||
|
#width = 128
|
||||||
|
#height = 1024
|
||||||
|
#formats = 0x034 # text + alpha
|
||||||
|
#overwriteWidth = 256
|
||||||
|
#overwriteHeight = 2048
|
14
src/TokyoMirage/Mods/60FPS/patch_60FPS.asm
Normal file
14
src/TokyoMirage/Mods/60FPS/patch_60FPS.asm
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[TMS_60FPS]
|
||||||
|
moduleMatches = 0x2249A57A
|
||||||
|
|
||||||
|
0x1002A6E4 = .float 0.016666667
|
||||||
|
0x0202034C = _frameTime:
|
||||||
|
|
||||||
|
0x021A7654 = lis r10, _frameTime@ha ; Cutscene Speed
|
||||||
|
0x021A765C = lfs f1, _frameTime@l(r10) ; Gameplay Speed
|
||||||
|
|
||||||
|
0x0244D434 = li r4, 1 ; Change vsync mode
|
||||||
|
0x0248BF04 = nop ; Disable vsync
|
||||||
|
0x0248B11C = nop ; Disable vsync
|
||||||
|
|
||||||
|
; 0x10065E50 = .float 0.033333335 ; cinematic animation speed, for future reference
|
@ -1,6 +1,6 @@
|
|||||||
[Definition]
|
[Definition]
|
||||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||||
name = 60FPS
|
name = 60FPS
|
||||||
path = "Tokyo Mirage Sessions FE/Mods/Static 60FPS"
|
path = "Tokyo Mirage Sessions FE/Mods/60FPS"
|
||||||
description = Important: This patches the gameplay to be in 60FPS. Getting under 60FPS will slow down the game's speed. Made by getdls.
|
description = Important: This patches the gameplay to be in 60FPS. Getting under 60FPS will slow down the game's speed.||Made by getdls.
|
||||||
version = 4
|
version = 7
|
@ -18,9 +18,10 @@
|
|||||||
#endif
|
#endif
|
||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader 4d96f8f88575bcab -- Used to blur out the main frame in various cutscenes
|
// shader 4d96f8f88575bcab
|
||||||
|
// Used for: Blurs in various cutscenes
|
||||||
|
const float blurAmount = float($blurAmount);
|
||||||
|
|
||||||
float blur = $Blur;
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 1, binding = 2) uniform ufBlock
|
layout(set = 1, binding = 2) uniform ufBlock
|
||||||
@ -121,5 +122,5 @@ PV0i.w = floatBitsToInt(min(intBitsToFloat(PV1i.x), 1.0));
|
|||||||
R0i.w = ((R127i.x == 0)?(PV0i.x):(PV0i.w));
|
R0i.w = ((R127i.x == 0)?(PV0i.x):(PV0i.w));
|
||||||
}
|
}
|
||||||
// export
|
// export
|
||||||
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w) * blur );
|
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)*blurAmount);
|
||||||
}
|
}
|
64
src/TokyoMirage/Mods/Cutscene Blur/rules.txt
Normal file
64
src/TokyoMirage/Mods/Cutscene Blur/rules.txt
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||||
|
name = Cutscene Blur Amount
|
||||||
|
path = "Tokyo Mirage Sessions FE/Mods/Cutscene Blur"
|
||||||
|
description = Allows you to change the amount/strenght of the blur used in cutscenes.||Made by getdls.
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$blurAmount = 1.0
|
||||||
|
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 100% (Default)
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 90%
|
||||||
|
$blurAmount = 0.9
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 80%
|
||||||
|
$blurAmount = 0.8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 70%
|
||||||
|
$blurAmount = 0.7
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 60%
|
||||||
|
$blurAmount = 0.6
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 50%
|
||||||
|
$blurAmount = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 40%
|
||||||
|
$blurAmount = 0.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 30%
|
||||||
|
$blurAmount = 0.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 20%
|
||||||
|
$blurAmount = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 10%
|
||||||
|
$blurAmount = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Amount
|
||||||
|
name = 0%
|
||||||
|
$blurAmount = 0.0
|
Loading…
Reference in New Issue
Block a user