diff --git a/Resolutions/KirbyRainbow_Resolution/2258c1c082f929aa_0000000000000000_vs.txt b/Resolutions/KirbyRainbow_Resolution/2258c1c082f929aa_0000000000000000_vs.txt new file mode 100644 index 00000000..1e4cf0d7 --- /dev/null +++ b/Resolutions/KirbyRainbow_Resolution/2258c1c082f929aa_0000000000000000_vs.txt @@ -0,0 +1,84 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 2258c1c082f929aa +// Used for: Stage Background Blur, Clay Texture Blur +const float resXScale = ($width/$gameWidth); +const float resYScale = ($height/$gameHeight); + +uniform ivec4 uf_uniformRegisterVS[256]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(location = 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 2) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 0) out vec4 passParameterSem2; +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() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.x = attrDataSem0.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), 0, 0, 1); +// 0 +R1i.w = 0x3f800000; +R127i.z = floatBitsToInt(float(R1i.x)); +PS0i = R127i.z; +// 1 +tempResultf = intBitsToFloat(PS0i); +tempResultf = floor(tempResultf); +tempResultf = clamp(tempResultf, -256.0, 255.0); +ARi.x = int(tempResultf); +PV1i.x = floatBitsToInt(tempResultf); +// 2 +R1i.xyz = ivec3(uf_uniformRegisterVS[ARi.x+0].x,uf_uniformRegisterVS[ARi.x+0].y,uf_uniformRegisterVS[ARi.x+0].z); +// 3 +R0i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[4].x)/resXScale + intBitsToFloat(uf_uniformRegisterVS[ARi.x+7].x)); +R0i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[4].y)/resYScale + intBitsToFloat(uf_uniformRegisterVS[ARi.x+7].y)); +// 4 +R2i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[5].x)/resXScale + intBitsToFloat(uf_uniformRegisterVS[ARi.x+7].x)); +R2i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[5].y)/resYScale + intBitsToFloat(uf_uniformRegisterVS[ARi.x+7].y)); +// 5 +R3i.x = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[6].x)/resXScale + intBitsToFloat(uf_uniformRegisterVS[ARi.x+7].x)); +R3i.y = floatBitsToInt(intBitsToFloat(uf_uniformRegisterVS[6].y)/resYScale + intBitsToFloat(uf_uniformRegisterVS[ARi.x+7].y)); +// export +gl_Position = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.z)); +// export +passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.z)); +// export +passParameterSem2 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.z)); +} diff --git a/Resolutions/KirbyRainbow_Resolution/rules.txt b/Resolutions/KirbyRainbow_Resolution/rules.txt new file mode 100644 index 00000000..720970bd --- /dev/null +++ b/Resolutions/KirbyRainbow_Resolution/rules.txt @@ -0,0 +1,299 @@ +[Definition] +titleIds = 00050000101ABC00,00050000101B5100 +name = Resolution +path = "Kirby and the Rainbow Curse & Paintbrush/Graphics/Resolution" +description = Changes the resolution of the game. +version = 3 + +[Preset] +name = 1280x720 (Default) +$width = 1280 +$height = 720 +$gameWidth = 1280 +$gameHeight = 720 + +// Performance + +[Preset] +name = 320x180 +$width = 320 +$height = 180 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 640x360 +$width = 640 +$height = 360 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 960x540 +$width = 960 +$height = 540 +$gameWidth = 1280 +$gameHeight = 720 + +// Common HD Resolutions + +[Preset] +name = 1600x900 +$width = 1600 +$height = 900 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 1920x1080 +$width = 1920 +$height = 1080 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 2560x1440 +$width = 2560 +$height = 1440 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 3200x1800 +$width = 3200 +$height = 1800 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 3840x2160 +$width = 3840 +$height = 2160 +$gameWidth = 1280 +$gameHeight = 720 + +[Preset] +name = 5120x2880 +$width = 5120 +$height = 2880 +$gameWidth = 1280 +$gameHeight = 720 + + +[TextureRedefine] # TV Resolution +width = 1280 +height = 720 +tileModesExcluded = 0x001 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] # Gamepad resolution +width = 854 +height = 480 +formats = 0x011,0x816,0810,0x005,0x21a +overwriteWidth = ($width/$gameWidth) * 854 +overwriteHeight = ($height/$gameHeight) * 480 + +[TextureRedefine] # Stage rendering resolution +width = 1024 +height = 576 +formats = 0x011,0x816,0x21a,0x810 +overwriteWidth = ($width/$gameWidth) * 1024 +overwriteHeight = ($height/$gameHeight) * 576 + +[TextureRedefine] +width = 1056 +height = 592 +formats = 0x41a +overwriteWidth = ($width/$gameWidth) * 1056 +overwriteHeight = ($height/$gameHeight) * 592 + +[TextureRedefine] +width = 1025 +height = 577 +formats = 0x41a +overwriteWidth = ($width/$gameWidth) * 1025 +overwriteHeight = ($height/$gameHeight) * 577 + +[TextureRedefine] # Stage rendering resolution for gamepad +width = 864 +height = 480 +formats = 0x011,0x816,0x21a,0x810 +overwriteWidth = ($width/$gameWidth) * 864 +overwriteHeight = ($height/$gameHeight) * 480 + +[TextureRedefine] +width = 864 +height = 496 +formats = 0x41a +overwriteWidth = ($width/$gameWidth) * 864 +overwriteHeight = ($height/$gameHeight) * 496 + +[TextureRedefine] +width = 855 +height = 481 +formats = 0x41a +overwriteWidth = ($width/$gameWidth) * 855 +overwriteHeight = ($height/$gameHeight) * 481 + +[TextureRedefine] # Depth buffer +width = 896 +height = 480 +formats = 0x005 +overwriteWidth = ($width/$gameWidth) * 896 +overwriteHeight = ($height/$gameHeight) * 480 + +# Stage depth + +[TextureRedefine] +width = 640 +height = 608 +formats = 0x005 +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 608 + +[TextureRedefine] +width = 600 +height = 600 +formats = 0x005 +overwriteWidth = ($width/$gameWidth) * 600 +overwriteHeight = ($height/$gameHeight) * 600 + +# Background Stage Blur + +[TextureRedefine] # Shared with clay texture blur +width = 512 +height = 288 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 288 + +[TextureRedefine] +width = 256 +height = 144 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 256 +overwriteHeight = ($height/$gameHeight) * 144 + +[TextureRedefine] # Gamepad stage background blur, also shared with clay texture blur +width = 448 +height = 240 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 448 +overwriteHeight = ($height/$gameHeight) * 240 + +[TextureRedefine] +width = 427 +height = 240 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 427 +overwriteHeight = ($height/$gameHeight) * 240 + +[TextureRedefine] +width = 224 +height = 128 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 224 +overwriteHeight = ($height/$gameHeight) * 128 + +[TextureRedefine] +width = 213 +height = 120 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 213 +overwriteHeight = ($height/$gameHeight) * 120 + +# Clay texture blur + +[TextureRedefine] +width = 128 +height = 80 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 80 + +[TextureRedefine] +width = 128 +height = 72 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 72 + +[TextureRedefine] +width = 106 +height = 60 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 106 +overwriteHeight = ($height/$gameHeight) * 60 + +[TextureRedefine] +width = 64 +height = 48 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 64 +overwriteHeight = ($height/$gameHeight) * 48 + +[TextureRedefine] +width = 64 +height = 36 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 64 +overwriteHeight = ($height/$gameHeight) * 36 + +[TextureRedefine] +width = 53 +height = 30 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 53 +overwriteHeight = ($height/$gameHeight) * 30 + +[TextureRedefine] # Gamepad clay texture blur +width = 128 +height = 64 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 80 + +[TextureRedefine] +width = 64 +height = 32 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 64 +overwriteHeight = ($height/$gameHeight) * 48 + +# Fxaa (?) + +[TextureRedefine] +width = 1152 +height = 592 +formats = 0x001 +overwriteWidth = ($width/$gameWidth) * 1152 +overwriteHeight = ($height/$gameHeight) * 592 + +[TextureRedefine] +width = 1025 +height = 577 +formats = 0x001 +overwriteWidth = ($width/$gameWidth) * 1025 +overwriteHeight = ($height/$gameHeight) * 577 + +[TextureRedefine] # Gamepad variant +width = 896 +height = 480 +formats = 0x001 +overwriteWidth = ($width/$gameWidth) * 896 +overwriteHeight = ($height/$gameHeight) * 480 + +[TextureRedefine] +width = 896 +height = 496 +formats = 0x001 +overwriteWidth = ($width/$gameWidth) * 896 +overwriteHeight = ($height/$gameHeight) * 496 + +[TextureRedefine] +width = 855 +height = 481 +formats = 0x001 +overwriteWidth = ($width/$gameWidth) * 855 +overwriteHeight = ($height/$gameHeight) * 481 diff --git a/docs/_data/GameTitles.yml b/docs/_data/GameTitles.yml index de83364e..c5f10dda 100644 --- a/docs/_data/GameTitles.yml +++ b/docs/_data/GameTitles.yml @@ -141,7 +141,7 @@ "Kirby and the Rainbow Curse": nativeRes: 720 compatLink: "http://compat.cemu.info/wiki/Kirby_and_the_Rainbow_Curse" - version: 2 + version: 3 "Kung Fu Panda: Showdown of Legendary Legends": nativeRes: 720 compatLink: "http://compat.cemu.info/wiki/Kung_Fu_Panda:_Showdown_of_Legendary_Legends"