Update MK8 mods

adds v1 support to 60fps and resolution pack
adds new course unlock pack and vehicle unlock pack
This commit is contained in:
intra0 2024-12-13 18:36:16 -06:00 committed by GitHub
parent 0914ce04e0
commit cee416cfba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
39 changed files with 346 additions and 130 deletions

View File

@ -0,0 +1,19 @@
[MarioKart8_CourseUnlock]
moduleMatches = 0x9F0A90B7, 0xD09700CE ; v4.2(EU/NA/JP), v4.1(EU/NA/JP)
.origin = codecave
UnlockCourses:
lis r30, 0x0303
ori r30, r30, 0x0303
stw r30, 0(r11)
stw r30, 4(r11)
lbzx r30, r11, r0
blr
[MarioKart8_CourseUnlock_v42]
moduleMatches = 0x9F0A90B7 ; v4.2(EU/NA/JP)
;this mod makes every byte at 0x2e6b6668 = 3
0x024D74CC = bla UnlockCourses
[MarioKart8_CourseUnlock_v41]
moduleMatches = 0xD09700CE ; v4.1(EU/NA/JP)
0x024D7148 = bla UnlockCourses

View File

@ -0,0 +1,7 @@
[Definition]
titleIds = 000500001010EC00,000500001010ED00,000500001010EB00
name = Course Unlock
path = "Mario Kart 8/Cheats/Course Unlock"
description = Unlock Every Course + Mirror Mode!
#Credits: Intra
version = 7

View File

@ -0,0 +1,21 @@
[MarioKart8_UnlockVehicle]
moduleMatches = 0x9F0A90B7, 0xD09700CE ; v4.2(EU/NA/JP), v4.1(EU/NA/JP)
.origin = codecave
CheckandChangeCoinAmmount:
lwz r0, 0x14e0(r26)
cmpwi r0, $coinammount
bge CheckandChangeCoinAmmount_Exit
li r0, $coinammount
stw r0, 0x14e0(r26)
CheckandChangeCoinAmmount_Exit:
blr
[MarioKart8_UnlockVehicle_v42]
moduleMatches = 0x9F0A90B7 ; v4.2(EU/NA/JP)
;this mod makes 0x2e6b6128 = $coinammount
0x025A4038 = bla CheckandChangeCoinAmmount
[MarioKart8_UnlockVehicle_v41]
moduleMatches = 0xD09700CE ; v4.1(EU/NA/JP)
0x025A3E84 = bla CheckandChangeCoinAmmount

View File

@ -0,0 +1,18 @@
[Definition]
titleIds = 000500001010EC00,000500001010ED00,000500001010EB00
name = Unlock Vehicle Parts!
path = "Mario Kart 8/Mods/Unlock Vehicle Parts"
description = Unlock every non-golden vehicle part!|Must activate by pressing (-) on the main menu to view your playstats.|Then do a race to save the new value.
#Credits: Intra
version = 7
[Default]
$coinammount = 0
[Preset]
name = Unlock all non-golden parts (sets coins to 2800)
$coinammount = 2800
[Preset]
name = Unlock Golden Glider (sets coins to 10000)
$coinammount = 10000

View File

@ -0,0 +1,129 @@
#version 450
#extension GL_ARB_texture_gather : 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 shaders was auto-converted from OpenGL to Cemu.
// shader e90feef2bca6cb2e
const float bloomFactor = $bloom;
#ifdef VULKAN
layout(set = 1, binding = 2) uniform ufBlock
{
uniform ivec4 uf_remappedPS[4];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[4];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem2;
layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock
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);
vec4 R4f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R126f = vec4(0.0);
vec4 R127f = vec4(0.0);
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 = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem2;
R3f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
R1f.xyzw = (texture(textureUnitPS0, R1f.zw).xyzw);
R4f.xyzw = (texture(textureUnitPS0, R2f.xy).xyzw);
R0f.x = (texture(textureUnitPS1, R0f.xy).x);
R2f.xyzw = (texture(textureUnitPS0, R2f.zw).xyzw);
// 0
backupReg0f = R0f.x;
PV0f.x = R3f.y + R1f.y;
PV0f.x /= 2.0;
PV0f.y = R3f.x + R1f.x;
PV0f.y /= 2.0;
PV0f.z = R3f.w + R1f.w;
PV0f.z /= 2.0;
PV0f.w = R3f.z + R1f.z;
PV0f.w /= 2.0;
R127f.w = (backupReg0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
R127f.w = clamp(R127f.w, 0.0, 1.0);
PS0f = R127f.w;
// 1
R123f.x = (R4f.y * 0.5 + PV0f.x);
PV1f.x = R123f.x;
R123f.y = (R4f.x * 0.5 + PV0f.y);
PV1f.y = R123f.y;
R123f.z = (R4f.w * 0.5 + PV0f.z);
PV1f.z = R123f.z;
R123f.w = (R4f.z * 0.5 + PV0f.w);
PV1f.w = R123f.w;
R127f.z = mul_nonIEEE(PS0f, intBitsToFloat(uf_remappedPS[1].z));
PS1f = R127f.z;
// 2
R127f.x = (R2f.x * 0.5 + PV1f.y)/2.0;
PV0f.x = R127f.x;
R127f.y = (R2f.y * 0.5 + PV1f.x)/2.0;
PV0f.y = R127f.y;
R126f.z = (R2f.z * 0.5 + PV1f.w)/2.0;
PV0f.z = R126f.z;
R126f.w = (R2f.w * 0.5 + PV1f.z)/2.0;
PV0f.w = R126f.w;
// 3
tempf.x = dot(vec4(PV0f.x,PV0f.y,PV0f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),intBitsToFloat(uf_remappedPS[2].w)));
tempf.x = clamp(tempf.x, 0.0, 1.0);
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
// 4
R123f.y = (R127f.w * R127f.z + PV1f.x);
PV0f.y = R123f.y;
// 5
PV1f.x = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedPS[3].z));
// 6
R2f.x = mul_nonIEEE(R127f.x, PV1f.x * bloomFactor);
R2f.y = mul_nonIEEE(R127f.y, PV1f.x * bloomFactor);
R2f.z = mul_nonIEEE(R126f.z, PV1f.x * bloomFactor);
R2f.w = mul_nonIEEE(R126f.w, PV1f.x * bloomFactor);
// export
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
}

View File

@ -0,0 +1,26 @@
[Definition]
titleIds = 000500001010EC00,000500001010ED00,000500001010EB00
name = Bloom Adjustment
path = "Mario Kart 8/Enhancements/Bloom Adjustment"
description = Allows you to adjust how strong the bloom is. Full amount is the default intensity of bloom.
#Credits: M&&M
version = 6
[Default]
$bloom = 1.0
[Preset]
name = Full Amount (Default)
default = 1
[Preset]
name = Half Amount
$bloom = 0.5
[Preset]
name = Quarter Amount
$bloom = 0.25
[Preset]
name = Disabled
$bloom = 0.0

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -11,7 +11,7 @@
#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 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)
@ -34,8 +34,8 @@ 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 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;
@ -44,18 +44,18 @@ vec3 RGB_Gamma = vec3($redMid ,$greenMid, $blueMid); // [0.000 to 2.000] Adju
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_strength = 2.0;
const float sharp_clamp = 0.75;
const float offset_bias = 1.0;
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)));
}
#define px (1.0/1920.0*uf_fragCoordScale.x)
#define py (1.0/1080.0*uf_fragCoordScale.y)
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
#define CoefLuma vec3(0.2126, 0.7152, 0.0722)
float lumasharping(sampler2D tex, vec2 pos) {
vec4 colorInput = texture(tex, pos);
@ -93,8 +93,8 @@ vec3 LiftGammaGainPass(vec3 colorInput)
{ //reshade BSD https://reshade.me , Alexkiri port
vec3 color = colorInput;
color = color * (1.5 - 0.5 * RGB_Lift) + 0.5 * RGB_Lift - 0.5;
color = clamp(color, 0.0, 1.0);
color *= RGB_Gain;
color = clamp(color, 0.0, 1.0);
color *= RGB_Gain;
color = pow(color, 1.0 / RGB_Gamma);
return clamp(color, 0.0, 1.0);
}
@ -102,7 +102,7 @@ vec3 LiftGammaGainPass(vec3 colorInput)
vec3 contrasty(vec3 colour){
vec3 fColour = (colour.xyz);
//fColour = LiftGammaGainPass(fColour);
fColour = clamp(exposure * fColour, 0.0, 1.0);
fColour = pow(fColour, vec3(1.0 / gamma));
float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114;

View File

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Contrasty
path = "Mario Kart 8/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.
#Credits: getdls
version = 6
[Default]

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#ifdef VULKAN
layout(location = 0) in vec2 passUV;
@ -14,9 +14,9 @@ ivec2 resolution = textureSize(textureSrc,0); // Retrieve Texture Dimensions
precision highp float;
vec2 RcpFrame = vec2(1.0 / float(resolution.x), 1.0 / float(resolution.y));
/*
/*
https://github.com/haasn/gentoo-conf/blob/xor/home/nand/.mpv/shaders/LICENSE
Copyright (c) 2015 Niklas Haas
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -38,7 +38,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
/*
/*
Ordered dithering reshade
https://github.com/crosire/reshade/blob/master/LICENSE.md
@ -121,8 +121,8 @@ vec4 getreader(sampler2D tex, vec2 pos, vec2 tex_size)
}
// Ordered dithering of output
const float dither_bit = 8.0; //WiiU backbuffer RGBA_8, if used in shader, check if depth is RBG_16_A2
const float dither_bit = 8.0; //WiiU backbuffer RGBA_8, if used in shader, check if depth is RBG_16_A2
float grid_position = fract(dot(passUV, (resolution * vec2(1.0 / 16.0, 10.0 / 36.0)) + 0.25));
float dither_shift = 0.25 * (1.0 / (pow(2, dither_bit) - 1.0));
vec3 dither_shift_RGB = vec3(dither_shift, -dither_shift, dither_shift); //Shift the individual colors, subpixel dithering

View File

@ -1,8 +1,9 @@
[Definition]
titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
titleIds = 000500001010EC00,000500001010ED00,000500001010EB00
name = Debanding
path = "Mario Kart 8/Enhancements/Debanding"
description = Adds a debanding post processing shader to the game.|This pack can only be used with OpenGL.|Made by getdls.
#Credits: getdls
version = 6
rendererFilter = opengl
@ -34,29 +35,29 @@ $Range:int = 16
$Iterations:int = 8
$Grain:int = 90
# Original by N Haas GPL
# Original by N Haas GPL
# Order dither converted from reshade Crosire et al.
#
# Works better when applied to a shader (sky, video..)
# instead of as a post filter. Both for performance and fixing quantization errors.
# Works better when applied to a shader (sky, video..)
# instead of as a post filter. Both for performance and fixing quantization errors.
# The threshold of difference below which a pixel is considered to be part of
# a gradient. Higher = more debanding, but setting it too high diminishes image
# details.
# THRESHOLD 64
#
#
# The range (in source pixels) at which to sample for neighbours. Higher values
# will find more gradients, but lower values will deband more aggressively.
# RANGE 8
#
#
# The number of debanding iterations to perform. Each iteration samples from
# random positions, so increasing the number of iterations is likely to
# increase the debanding quality. Conversely, it slows the shader down.
# (Each iteration will use a multiple of the configured RANGE, and a
# successively lower THRESHOLD - so setting it much higher has little effect)
# ITERATIONS 4
#
#
# (Optional) Add some extra noise to the image. This significantly helps cover
# up remaining banding and blocking artifacts, at comparatively little visual
# quality. Higher = more grain. Setting it to 1 disables the effect.

View File

@ -3,6 +3,7 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Remove MKTV Watermark
path = "Mario Kart 8/Enhancements/Remove MKTV Watermark"
description = Removes the MKTV watermark in the replays or highlight reel.|Made by Crementif.
#Credits: Crementif
version = 6
[TextureRedefine]

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -11,7 +11,7 @@
#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 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)
@ -20,7 +20,7 @@
// shader 2e78a0d0a0aa66bb
// Used for: Horizontal (Menu) Bloom Blur
const float resScale = float($width)/float($gameWidth);
const float resScale = float($width)/float($gameWidth);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 408a66d9721b1cec //Lava bowser castle, point light offset
@ -12,7 +12,7 @@
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#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
#endif
@ -48,7 +48,7 @@ layout(location = 3) out vec4 passParameterSem4;
layout(location = 4) out vec4 passParameterSem6;
layout(location = 5) out vec4 passParameterSem10;
// end of shader inputs/outputs
const float resScale = float($width)/float($gameWidth);
const float resScale = float($width)/float($gameWidth);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 74126253134563de
@ -14,7 +14,7 @@
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#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
#endif
@ -33,7 +33,7 @@ out gl_PerVertex
};
layout(location = 0) out vec4 passParameterSem0;
// end of shader inputs/outputs
const float resScale = float($height)/float($gameHeight);
const float resScale = float($height)/float($gameHeight);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader 8e1337dde42fd224
@ -14,7 +14,7 @@ const float resYScale = float($height)/float($gameHeight);
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -11,7 +11,7 @@
#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 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)
@ -20,7 +20,7 @@
// shader ad3014302e0e49bf
// Used for: Stage Select & Menu Background Horizontal Blur
const float resScale = float($width)/float($gameWidth);
const float resScale = float($width)/float($gameWidth);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader be99d80628d31127
@ -14,7 +14,7 @@ const float resYScale = float($height)/float($gameHeight);
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
@ -219,4 +219,4 @@ activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
// export
passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
}
#endif
#endif

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader c673c0d44f779fc9 // replay DOF box blur
@ -12,7 +12,7 @@
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#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
#endif
@ -32,7 +32,7 @@ out gl_PerVertex
};
layout(location = 0) out vec4 passParameterSem3;
// end of shader inputs/outputs
const float resScale = float($height)/float($gameHeight);
const float resScale = float($height)/float($gameHeight);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader d5d751973ea3d3b4 // menu background box blur, initial downscaling.
@ -12,7 +12,7 @@
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#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
#endif
@ -32,7 +32,7 @@ out gl_PerVertex
layout(location = 0) out vec4 passParameterSem1;
layout(location = 1) out vec4 passParameterSem3;
// end of shader inputs/outputs
const float resScale = float($height)/float($gameHeight);
const float resScale = float($height)/float($gameHeight);
int clampFI32(int v)
{
if( v == 0x7FFFFFFF )

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -11,7 +11,7 @@
#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 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)
@ -20,7 +20,7 @@
// shader dd7a19be01b7b1aa
// Used for: Vertical (Menu) Bloom Blur
const float resScale = float($height)/float($gameHeight);
const float resScale = float($height)/float($gameHeight);
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
@ -10,7 +10,7 @@
#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 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)

View File

@ -1,10 +1,10 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader f5274bda2b5e1e9f
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
// Used for: reflection highlights
const float resScale = float($width)/float($gameWidth);
const float resScale = float($width)/float($gameWidth);
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
@ -15,7 +15,7 @@ const float resScale = float($width)/float($gameWidth);
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#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
#endif

View File

@ -1,4 +1,4 @@
#version 430
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
// shader fdf33c607cd1d737 //Radial blur replacement
@ -10,7 +10,7 @@
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
@ -69,12 +69,12 @@ R0f = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem2;
R3f = passParameterSem3;
vec2 coord = -1.0 + R0f.xy;
vec2 coord = -1.0 + R0f.xy;
vec2 ps = vec2(1.0)*uf_fragCoordScale.xy / textureSize(textureUnitPS0, 0);
vec2 uv = gl_FragCoord.xy *2.0 / textureSize(textureUnitPS0, 0);
//Simle radial blur jcant0n, shadertoy.com
uv -= center;
float precompute = blurWidth * (1.0 / float(nsamples - 1));
float precompute = blurWidth * (1.0 / float(nsamples - 1));
for(int i = 0; i < nsamples; i++)
{
float scale = blurStart + (float(i)* precompute);

View File

@ -1,6 +1,5 @@
[MK8_AspectRatio_Shared]
[MarioKart8_AspectRatio]
moduleMatches = 0x9F0A90B7,0xD09700CE,0x1D398493,0xBA6B1E20,0x62A5F023,0x2A2DC82C
.origin = codecave
aspectRatio:
@ -13,56 +12,38 @@ lfs f12, aspectRatio@l(r7)
fmuls f7, f9, f12
blr
[MK8_AspectRatio_V42]
moduleMatches = 0x9F0A90B7
[MarioKart8_AspectRatio_v42]
moduleMatches = 0x9F0A90B7 ; v4.2(EU/NA/JP)
0x024AEF70 = bla scaleAspectRatioCalc
0x100C359C = .float ($width/$height)
0x10121E30 = .float ($width/$height)
[MK8_AspectRatio_V41]
moduleMatches = 0xD09700CE
[MarioKart8_AspectRatio_v41]
moduleMatches = 0xD09700CE ; v4.1(EU/NA/JP)
0x024AEBEC = bla scaleAspectRatioCalc
0x100C359C = .float ($width/$height)
0x10121E30 = .float ($width/$height)
[MK8_AspectRatio_V4]
moduleMatches = 0x1D398493
[MarioKart8_AspectRatio_v4]
moduleMatches = 0x1D398493 ; v4.0(EU/NA/JP)
0x024AEBEC = bla scaleAspectRatioCalc
0x100C359C = .float ($width/$height)
0x10121D30 = .float ($width/$height)
[MK8_AspectRatio_V3]
moduleMatches = 0xBA6B1E20
[MarioKart8_AspectRatio_v3]
moduleMatches = 0xBA6B1E20 ; v3.0(EU/NA/JP)
0x024642E8 = bla scaleAspectRatioCalc
0x100AC25C = .float ($width/$height)
0x1010A730 = .float ($width/$height)
[MK8_AspectRatio_V2]
moduleMatches = 0x62A5F023
[MarioKart8_AspectRatio_v2]
moduleMatches = 0x62A5F023 ; v2.0(EU/NA/JP)
0x024376D4 = bla scaleAspectRatioCalc
0x1009E9DC = .float ($width/$height)
0x100FC030 = .float ($width/$height)
[MK8_AspectRatio_V1]
moduleMatches = 0x2A2DC82C
[MarioKart8_AspectRatio_v1]
moduleMatches = 0x2A2DC82C ; v1.0(EU/NA/JP)
0x02416760 = bla scaleAspectRatioCalc
0x10097D94 = .float ($width/$height)
0x100F3430 = .float ($width/$height)

View File

@ -1,10 +1,11 @@
[MK8_DisableFXAA_V42]
moduleMatches = 0x9F0A90B7
[MarioKart8_DisableFXAA_v42]
moduleMatches = 0x9F0A90B7 ; v4.2(EU/NA/JP)
0x027DF528 = blr
[MK8_DisableFXAA_V41]
moduleMatches = 0xD09700CE
[MarioKart8_DisableFXAA_v41]
moduleMatches = 0xD09700CE ; v4.1(EU/NA/JP)
0x027DF2F4 = blr
[MarioKart8_DisableFXAA_v1]
moduleMatches = 0x2A2DC82C ; v1.0(EU/NA/JP)
0x0271DE0C = blr

View File

@ -1,4 +1,7 @@
[MK8_LevelOfDetail_V42_V41]
moduleMatches = 0x9F0A90B7,0xD09700CE
[MarioKart8_LevelOfDetail_v42_v41]
moduleMatches = 0x9F0A90B7, 0xD09700CE ; v4.2(EU/NA/JP), v4.1(EU/NA/JP)
0x10121DF0 = .float $levelOfDetail
0x10121DF0 = .float $levelOfDetail
[MarioKart8_LevelOfDetail_v1]
moduleMatches = 0x2A2DC82C ; v1.0(EU/NA/JP)
0x100F33F0 = .float $levelOfDetail

View File

@ -1,8 +1,9 @@
[Definition]
titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
titleIds = 000500001010EC00,000500001010ED00,000500001010EB00
name = Graphic Options
path = "Mario Kart 8/Graphics"
description = Allows you to change the game's TV resolution, gamepad resolution, shadow quality, anti-aliasing, bloom intensity, motion blur quality, level of detail and anisotropic filtering quality.|Made by Crementif, theboy181 and M&&M.
description = Allows you to change the game's TV resolution, gamepad resolution, shadow quality, anti-aliasing, bloom intensity, motion blur quality, level of detail and anisotropic filtering quality.|Made by Crementif, theboy181, and M&&M.
#Credits: Crementif, theboy181, M&&M
version = 6
[Default]
@ -855,6 +856,11 @@ name = 16x
category = Anisotropic Filtering
$anisotropy = 16
[Preset]
name = 32x
category = Anisotropic Filtering
$anisotropy = 32
# Advanced Options

View File

@ -1,10 +1,11 @@
[MK8_60FPSFullDraw_V42]
moduleMatches = 0x9F0A90B7
[MarioKart8_60FPSFullDraw_v42]
moduleMatches = 0x9F0A90B7 ; v4.2(EU/NA/JP)
0x024AF384 = b .+0x54
[MK8_60FPSFullDraw_V41]
moduleMatches = 0xD09700CE
[MarioKart8_60FPSFullDraw_v41]
moduleMatches = 0xD09700CE ; v4.1(EU/NA/JP)
0x024AF000 = b .+0x54
[MarioKart8_60FPSFullDraw_v1]
moduleMatches = 0x2A2DC82C ; v1.0(EU/NA/JP)
0x02416B74 = b .+0x54

View File

@ -3,4 +3,5 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = 60FPS for 3/4 Player Splitscreen
path = "Mario Kart 8/Mods/60FPS Splitscreen"
description = Forces the game to run at 60FPS instead of 30FPS in 3/4 player splitscreen.|In those splitscreen modes, it normally alternates which screen is being updated each frame. This mod forces it to draw all the screens every frame instead.|Made by theboy181 and Xalphenos.
#Credits: theboy181, Xalphenos
version = 6

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -1,4 +1,4 @@
#version 420
#version 450
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
@ -14,7 +14,7 @@
#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 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)

View File

@ -3,4 +3,5 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
name = Remove All HUD Elements
path = "Mario Kart 8/Mods/No HUD (breaks menus)"
description = Disables any HUD while racing.|Breaks many of the menu's so don't use this if you just want to play the game.||Made by Crementif.
#Credits: Crementif
version = 6

View File

@ -1,7 +1,6 @@
[MarioKart8_ForceMultiplayerPortNumber_v81]
moduleMatches = 0x9F0A90B7
# min port range
[MarioKart8_ForceMultiplayerPortNumber_v42]
moduleMatches = 0x9F0A90B7 ; v4.2(EU/NA/JP)
; min port range
0x101a9a52 = .short $port
# max port range
; max port range
0x101a9a54 = .short $port