mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-12-23 16:31:50 +01:00
Merge branch 'master' of https://github.com/slashiee/cemu_graphic_packs
This commit is contained in:
commit
c5009328fc
@ -60,3 +60,10 @@ moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
;0x031FA004 = nop ;disables gx2 fence
|
||||
0x031FA1D4 = nop ;disables wait for vsync
|
||||
0x031FA1F8 = nop ;disables wait for vsync loop
|
||||
|
||||
[BotwNoVsyncV208]
|
||||
moduleMatches = 0x6267BFD0
|
||||
|
||||
;0x031FAB00 = nop ;disables gx2 fence
|
||||
0x031FACD0 = nop ;disables wait for vsync
|
||||
0x031FACF4 = nop ;disables wait for vsync loop
|
@ -1,6 +1,5 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - Higher Quality Shadows"
|
||||
version = 2
|
||||
|
||||
|
@ -1,282 +0,0 @@
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
// shader d2a97b2fb99411a5
|
||||
// CRT filter - Just for fun, probably won't be fixing any issues..
|
||||
|
||||
|
||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4481800 res 768x384x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
||||
layout(location = 0) in vec4 passParameterSem0;
|
||||
layout(location = 0) out vec4 passPixelColor0;
|
||||
uniform vec2 uf_fragCoordScale;
|
||||
//
|
||||
// PUBLIC DOMAIN CRT STYLED SCAN-LINE SHADER
|
||||
//
|
||||
// by Timothy Lottes
|
||||
//
|
||||
// This is more along the style of a really good CGA arcade monitor.
|
||||
// With RGB inputs instead of NTSC.
|
||||
// The shadow mask example has the mask rotated 90 degrees for less chromatic aberration.
|
||||
//
|
||||
// Left it unoptimized to show the theory behind the algorithm.
|
||||
//
|
||||
// It is an example what I personally would want as a display option for pixel art games.
|
||||
// Please take and use, change, or whatever.
|
||||
//
|
||||
//old contrasty, or just copy paste clarity
|
||||
const float gamma = 0.95; // 1.0 is neutral
|
||||
const float exposure = 1.2; // 1.0 is neutral, first lessen to avoid truncation prob around .25 for radeon.
|
||||
const float vibrance = 0.175; // 0.0 is neutral
|
||||
const float crushContrast = 0.01; // 0.0 is neutral. loss of shadow detail
|
||||
//const float postExposure = 1.16; // 1.0 is neutral, then slightly raise exposure back up.
|
||||
|
||||
vec3 contrasty(vec3 colour) {
|
||||
vec3 fColour = (colour.xyz);
|
||||
|
||||
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;
|
||||
float mn = min(min(fColour.r, fColour.g), fColour.b);
|
||||
float mx = max(max(fColour.r, fColour.g), fColour.b);
|
||||
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
|
||||
vec3 lightness = vec3((mn + mx) / 2.0);
|
||||
// vibrance
|
||||
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
|
||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
||||
return fColour;
|
||||
}
|
||||
#define RGBA(r, g, b, a) vec4(float(r)/255.0, float(g)/255.0, float(b)/255.0, float(a)/255.0)
|
||||
|
||||
const vec3 kBackgroundColor = RGBA(0x00, 0x60, 0xb8, 0xff).rgb; // medium-blue sky
|
||||
//const vec3 kBackgroundColor = RGBA(0xff, 0x00, 0xff, 0xff).rgb; // test magenta
|
||||
//const vec3 kBackgroundColor = RGBA(0x50, 0x50, 0x50, 0xff).rgb;
|
||||
// Emulated input resolution.
|
||||
#if 1
|
||||
// Fix resolution to set amount.
|
||||
//768x384x1 // Note: 256x224 is the most common resolution of the SNES, and that of Super Mario World.
|
||||
vec2 res = vec2(
|
||||
textureSize(textureUnitPS0, 0).x / 1.0,
|
||||
textureSize(textureUnitPS0, 0).y / 2.0
|
||||
);
|
||||
#else
|
||||
// Optimize for resize.
|
||||
vec2 res = textureSize(textureUnitPS0, 0) / 6.0;
|
||||
#endif
|
||||
|
||||
// Hardness of scanline.
|
||||
// -8.0 = soft
|
||||
// -16.0 = medium
|
||||
float sHardScan = -8.0;
|
||||
|
||||
// Hardness of pixels in scanline.
|
||||
// -2.0 = soft
|
||||
// -4.0 = hard
|
||||
const float kHardPix = -2.0;
|
||||
|
||||
// Display warp.
|
||||
// 0.0 = none
|
||||
// 1.0 / 8.0 = extreme
|
||||
const vec2 kWarp = vec2(1.0 / 64.0, 1.0 / 48.0);
|
||||
//const vec2 kWarp = vec2(0);
|
||||
|
||||
// Amount of shadow mask.
|
||||
float kMaskDark = 2.0;
|
||||
float kMaskLight = 0.5;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/*
|
||||
// sRGB to Linear.
|
||||
// Assuing using sRGB typed textures this should not be needed.
|
||||
float toLinear1(float c) {
|
||||
return (c <= 0.04045) ?
|
||||
(c / 12.92) :
|
||||
pow((c + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
vec3 toLinear(vec3 c) {
|
||||
return vec3(toLinear1(c.r), toLinear1(c.g), toLinear1(c.b));
|
||||
}
|
||||
|
||||
// Linear to sRGB.
|
||||
// Assuing using sRGB typed textures this should not be needed.
|
||||
float toSrgb1(float c) {
|
||||
return(c < 0.0031308 ?
|
||||
(c * 12.92) :
|
||||
(1.055 * pow(c, 0.41666) - 0.055));
|
||||
}
|
||||
vec3 toSrgb(vec3 c) {
|
||||
return vec3(toSrgb1(c.r), toSrgb1(c.g), toSrgb1(c.b));
|
||||
}
|
||||
*/
|
||||
// Nearest emulated sample given floating point position and texel offset.
|
||||
// Also zero's off screen.
|
||||
vec4 fetch(vec2 pos, vec2 off)
|
||||
{
|
||||
pos = floor(pos * res + off) / res;
|
||||
if (max(abs(pos.x - 0.5), abs(pos.y - 0.5)) > 0.5)
|
||||
return vec4(vec3(0.0), 0.0);
|
||||
|
||||
//vec4 sampledColor = texture(textureUnitPS0, pos.xy, -16.0);
|
||||
vec4 sampledColor = texture(textureUnitPS0, pos.xy,0);
|
||||
sampledColor = vec4(
|
||||
(sampledColor.rgb * sampledColor.a) +
|
||||
(kBackgroundColor * (1.0 - sampledColor.a)),
|
||||
1.0
|
||||
);
|
||||
|
||||
return vec4(
|
||||
//toLinear(sampledColor.rgb),
|
||||
//sampledColor.a
|
||||
sampledColor.rgba
|
||||
);
|
||||
}
|
||||
|
||||
// Distance in emulated pixels to nearest texel.
|
||||
vec2 dist(vec2 pos) {
|
||||
pos = pos * res;
|
||||
return -((pos - floor(pos)) - vec2(0.5));
|
||||
}
|
||||
|
||||
// 1D Gaussian.
|
||||
float gaus(float pos, float scale) {
|
||||
return exp2(scale * pos * pos);
|
||||
}
|
||||
|
||||
// 3-tap Gaussian filter along horz line.
|
||||
vec3 horz3(vec2 pos, float off)
|
||||
{
|
||||
vec3 b = fetch(pos, vec2(-1.0, off)).rgb;
|
||||
vec3 c = fetch(pos, vec2(0.0, off)).rgb;
|
||||
vec3 d = fetch(pos, vec2(+1.0, off)).rgb;
|
||||
float dst = dist(pos).x;
|
||||
// Convert distance to weight.
|
||||
float scale = kHardPix;
|
||||
float wb = gaus(dst - 1.0, scale);
|
||||
float wc = gaus(dst + 0.0, scale);
|
||||
float wd = gaus(dst + 1.0, scale);
|
||||
// Return filtered sample.
|
||||
return (b * wb + c * wc + d * wd) / (wb + wc + wd);
|
||||
}
|
||||
|
||||
// 5-tap Gaussian filter along horz line.
|
||||
vec3 horz5(vec2 pos, float off)
|
||||
{
|
||||
vec3 a = fetch(pos, vec2(-2.0, off)).rgb;
|
||||
vec3 b = fetch(pos, vec2(-1.0, off)).rgb;
|
||||
vec3 c = fetch(pos, vec2(0.0, off)).rgb;
|
||||
vec3 d = fetch(pos, vec2(+1.0, off)).rgb;
|
||||
vec3 e = fetch(pos, vec2(+2.0, off)).rgb;
|
||||
float dst = dist(pos).x;
|
||||
// Convert distance to weight.
|
||||
float scale = kHardPix;
|
||||
float wa = gaus(dst - 2.0, scale);
|
||||
float wb = gaus(dst - 1.0, scale);
|
||||
float wc = gaus(dst + 0.0, scale);
|
||||
float wd = gaus(dst + 1.0, scale);
|
||||
float we = gaus(dst + 2.0, scale);
|
||||
// Return filtered sample.
|
||||
return (a * wa + b * wb + c * wc + d * wd + e * we) / (wa + wb + wc + wd + we);
|
||||
}
|
||||
|
||||
// Return scanline weight.
|
||||
float scan(vec2 pos, float off) {
|
||||
float dst = dist(pos).y;
|
||||
return gaus(dst + off, sHardScan);
|
||||
}
|
||||
|
||||
// Allow nearest three lines to effect pixel.
|
||||
vec3 tri(vec2 pos)
|
||||
{
|
||||
vec3 a = horz3(pos, -1.0);
|
||||
vec3 b = horz5(pos, 0.0);
|
||||
vec3 c = horz3(pos, +1.0);
|
||||
float wa = scan(pos, -1.0);
|
||||
float wb = scan(pos, 0.0);
|
||||
float wc = scan(pos, +1.0);
|
||||
return a * wa + b * wb + c * wc;
|
||||
}
|
||||
|
||||
// Distortion of scanlines, and end of screen alpha.
|
||||
vec2 warp(vec2 pos)
|
||||
{
|
||||
pos = pos * 2.0 - 1.0;
|
||||
pos *= vec2(
|
||||
1.0 + (pos.y * pos.y) * kWarp.x,
|
||||
1.0 + (pos.x * pos.x) * kWarp.y
|
||||
);
|
||||
return pos * 0.5 + 0.5;
|
||||
}
|
||||
|
||||
// Shadow mask.
|
||||
vec3 mask(vec2 pos)
|
||||
{
|
||||
pos.x += pos.y * 3.0;
|
||||
vec3 mask = vec3(kMaskDark, kMaskDark, kMaskDark);
|
||||
pos.x = fract(pos.x / 6.0);
|
||||
if (pos.x < 0.333)
|
||||
mask.r = kMaskLight;
|
||||
else if (pos.x < 0.666)
|
||||
mask.g = kMaskLight;
|
||||
else
|
||||
mask.b = kMaskLight;
|
||||
return mask;
|
||||
}
|
||||
|
||||
// Draw dividing bars.
|
||||
float bar(float pos, float bar) {
|
||||
pos -= bar;
|
||||
return (pos * pos < 4.0) ? 0.0 : 1.0;
|
||||
}
|
||||
|
||||
float rand(vec2 co) {
|
||||
return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
|
||||
}
|
||||
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);
|
||||
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;
|
||||
//R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
||||
// export
|
||||
//passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
|
||||
vec2 pos = warp(gl_FragCoord.xy / textureSize(textureUnitPS0, 0));//iResolution.xy);
|
||||
vec4 unmodifiedColor = fetch(pos, vec2(0));
|
||||
|
||||
// Unmodified.
|
||||
if (passPixelColor0.x > textureSize(textureUnitPS0, 0).x * 0.333)
|
||||
{
|
||||
passPixelColor0.rgb = contrasty(unmodifiedColor.rgb);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (passPixelColor0.x > textureSize(textureUnitPS0, 0).x * 0.666) {
|
||||
sHardScan = -12.0;
|
||||
kMaskDark = kMaskLight = 1.0;
|
||||
}
|
||||
passPixelColor0.rgb = tri(pos) * mask(gl_FragCoord.xy);
|
||||
}
|
||||
//passPixelColor0.rgb *= bar(gl_FragCoord.x, textureSize(textureUnitPS0, 0).x * 0.333) * bar(gl_FragCoord.x, textureSize(textureUnitPS0, 0).x * 0.666);
|
||||
//passPixelColor0 = vec4(
|
||||
//toSrgb(passPixelColor0.rgb),
|
||||
//1.0
|
||||
//);
|
||||
passPixelColor0 = vec4(passPixelColor0.rgb, 1.0);
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
|
||||
[Definition]
|
||||
titleIds = 000500001018DB00,000500001018DC00,000500001018DD00
|
||||
name = "Super Mario Maker - CRT filter"
|
||||
version = 2
|
35
Modifications/BreathOfTheWild_Cheats/patches.txt
Normal file
35
Modifications/BreathOfTheWild_Cheats/patches.txt
Normal file
@ -0,0 +1,35 @@
|
||||
[BotwV208]
|
||||
moduleMatches = 0x6267BFD0
|
||||
|
||||
#Cheats
|
||||
|
||||
0x02D90CC0 = fmr f29, f1; Inf Stamina
|
||||
0x02D452A4 = nop; Inf Hearts
|
||||
0x02EB6758 = nop; Inf Arrows
|
||||
0x100C4F94 = .float 3; faster arrow draw (1 is default speed)
|
||||
0x02D91DBC = fmuls f0, f13, f12; Inf Mipha's Grace
|
||||
0x02CE0328 = nop; Inf Revali's Gale
|
||||
0x02D74498 = nop; Inf Daruk's Protection
|
||||
0x02D741C8 = nop; Inf Urbosa's Fury
|
||||
0x029E949C = mr r29, r11; Inf Amiibo
|
||||
0x020957DC = fmr f12, f0; Inf Motorcycle Energy
|
||||
0x024ACBF4 = fsub f31, f31, f31; Inf Weapons, Bows and Shields (except burn damage and throwing weapon)
|
||||
|
||||
|
||||
|
||||
[BotwV176V192]
|
||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
|
||||
#Cheats
|
||||
|
||||
0x02D90724 = fmr f29, f1 ;inf stamina
|
||||
0x02D44D44 = nop ;inf hearts
|
||||
0x02EB61BC = nop ;inf arrows
|
||||
0x100C4F34 = .float 3; faster arrow draw (1 is default speed)
|
||||
0x02D91820 = fmuls f0, f13, f12; Inf Mipha's Grace
|
||||
0x02CDFE0C = nop; Inf Revali's Gale
|
||||
0x02D73EFC = nop; Inf Daruk's Protection
|
||||
0x02D73C2C = nop; Inf Urbosa's Fury
|
||||
0x029E90F0 = mr r29, r11; Inf Amiibo
|
||||
0x0209583C = fmr f12, f0; Inf Motorcycle Energy
|
||||
0x024AC850 = fsub f31, f31, f31; Inf Weapons, Bows and Shields (except burn damage and throwing weapon)
|
7
Modifications/BreathOfTheWild_Cheats/readme.txt
Normal file
7
Modifications/BreathOfTheWild_Cheats/readme.txt
Normal file
@ -0,0 +1,7 @@
|
||||
BotW Cheats by C313571N and Xalphenos.
|
||||
|
||||
All cheats are enabled by default. To disable a cheat add a semicolon ";" to the front of the line.
|
||||
Example:
|
||||
;0x02D90CC0 = fmr f29, f1; Inf Stamina
|
||||
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
|
||||
Throwing a weapon instantly destroys it.
|
4
Modifications/BreathOfTheWild_Cheats/rules.txt
Normal file
4
Modifications/BreathOfTheWild_Cheats/rules.txt
Normal file
@ -0,0 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
||||
name = "The Legend of Zelda: Breath of the Wild - Cheats (view readme)"
|
||||
version = 2
|
@ -1,3 +1,177 @@
|
||||
[BotwFPSV208]
|
||||
moduleMatches = 0x6267BFD0
|
||||
|
||||
#rodata constants
|
||||
_float1 = 0x10000670
|
||||
_float30 = 0x101E7964
|
||||
_convSub = 0x10000BB0
|
||||
|
||||
#TestCave
|
||||
codeCaveSize = 0x9C
|
||||
|
||||
_fpsCalc = 0x00000010
|
||||
0x00000000 = .float 3 ; Don't edit me!
|
||||
_lowlimit = 0x00000000
|
||||
0x00000004 = .float 62156250
|
||||
_busSpeed = 0x00000004
|
||||
_currentFPS = 0x00000008
|
||||
_speedDiv = 0x0000000C
|
||||
|
||||
0x00000010 = stw r0, 0x78(r30)
|
||||
0x00000014 = xoris r12, r12, 0x8000
|
||||
0x00000018 = stw r12, 0x12C(r30)
|
||||
0x0000001C = lis r12, 0x4330
|
||||
0x00000020 = stw r12, 0x128(r30)
|
||||
0x00000024 = lfd f10, 0x128(r30)
|
||||
0x00000028 = lis r12, _convSub@ha
|
||||
0x0000002C = lfd f12, _convSub@l(r12)
|
||||
0x00000030 = fsub f10, f10, f12
|
||||
0x00000034 = frsp f10, f10
|
||||
0x00000038 = lis r12, _float1@ha
|
||||
0x0000003C = lfs f12, _float1@l(r12)
|
||||
0x00000040 = fdivs f10, f12, f10
|
||||
0x00000044 = lis r12, _busSpeed@ha
|
||||
0x00000048 = lfs f12, _busSpeed@l(r12)
|
||||
0x0000004C = fmuls f10, f12, f10
|
||||
0x00000050 = lis r12, _currentFPS@ha
|
||||
0x00000054 = stfs f10, _currentFPS@l(r12)
|
||||
|
||||
0x00000058 = lis r12, _float30@ha
|
||||
0x0000005C = lfs f12, _float30@l(r12)
|
||||
0x00000060 = fdivs f7, f12, f10
|
||||
0x00000064 = lis r12, _lowlimit@ha
|
||||
0x00000068 = lfs f12, _lowlimit@l(r12)
|
||||
0x0000006C = lis r12, _speedDiv@ha
|
||||
0x00000070 = fcmpu cr0, f7, f12
|
||||
0x00000074 = bge .+0x0C
|
||||
|
||||
0x00000078 = stfs f7, _speedDiv@l(r12)
|
||||
0x0000007C = blr
|
||||
0x00000080 = stfs f12, _speedDiv@l(r12)
|
||||
0x00000084 = blr
|
||||
|
||||
_fenceNeg1 = 0x00000084
|
||||
0x00000088 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x0000008C = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x00000090 = blt .+0x08 #skip subtract if less than
|
||||
0x00000094 = subi r6, r6, 1 #do the subtract
|
||||
0x00000098 = blr #return
|
||||
|
||||
#codeChanges
|
||||
0x031FA97C = bla _fpsCalc
|
||||
0x03793328 = nop
|
||||
0x03793334 = nop
|
||||
0x03793378 = lis r29, _speedDiv@ha
|
||||
0x03793380 = lfs f0, _speedDiv@L(r29)
|
||||
0x0379338C = nop
|
||||
0x03415C1C = lis r12, _speedDiv@ha
|
||||
0x03415C24 = lfs f0, _speedDiv@l(r12)
|
||||
0x03415C2C = nop
|
||||
0x02D90D2C = lis r10, _currentFPS@ha
|
||||
0x02D90D30 = lfs f11, _currentFPS@l(r10)
|
||||
0x02D90D88 = lis r10, _currentFPS@ha
|
||||
0x02D90D8C = lfs f11, _currentFPS@l(r10)
|
||||
|
||||
|
||||
#break all forms of frame limiting
|
||||
0x031FAAFC = bla _fenceNeg1 ;Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
;0x031FAAE8 = li r0, 1 ;Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
;0x031FAB00 = nop ; skip fence (no waiting on GPU)
|
||||
0x031FACD0 = nop ; disable vsync
|
||||
0x031FACF4 = nop ; disable vsync loop
|
||||
|
||||
#Cheats
|
||||
;0x02D90CC0 = fmr f29, f1 ;inf stamina
|
||||
;0x02D452A4 = nop ;inf hearts
|
||||
;0x02EB6758 = nop ;inf arrows
|
||||
|
||||
[BotwFPSv176V192]
|
||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
|
||||
#rodata constants
|
||||
_float1 = 0x10000670
|
||||
_float30 = 0x101E78F4
|
||||
_convSub = 0x10000BB0
|
||||
|
||||
#TestCave
|
||||
codeCaveSize = 0x9C
|
||||
|
||||
_fpsCalc = 0x00000010
|
||||
0x00000000 = .float 3 ; Don't edit me!
|
||||
_lowlimit = 0x00000000
|
||||
0x00000004 = .float 62156250
|
||||
_busSpeed = 0x00000004
|
||||
_currentFPS = 0x00000008
|
||||
_speedDiv = 0x0000000C
|
||||
|
||||
0x00000010 = stw r0, 0x78(r30)
|
||||
0x00000014 = xoris r12, r12, 0x8000
|
||||
0x00000018 = stw r12, 0x12C(r30)
|
||||
0x0000001C = lis r12, 0x4330
|
||||
0x00000020 = stw r12, 0x128(r30)
|
||||
0x00000024 = lfd f10, 0x128(r30)
|
||||
0x00000028 = lis r12, _convSub@ha
|
||||
0x0000002C = lfd f12, _convSub@l(r12)
|
||||
0x00000030 = fsub f10, f10, f12
|
||||
0x00000034 = frsp f10, f10
|
||||
0x00000038 = lis r12, _float1@ha
|
||||
0x0000003C = lfs f12, _float1@l(r12)
|
||||
0x00000040 = fdivs f10, f12, f10
|
||||
0x00000044 = lis r12, _busSpeed@ha
|
||||
0x00000048 = lfs f12, _busSpeed@l(r12)
|
||||
0x0000004C = fmuls f10, f12, f10
|
||||
0x00000050 = lis r12, _currentFPS@ha
|
||||
0x00000054 = stfs f10, _currentFPS@l(r12)
|
||||
|
||||
0x00000058 = lis r12, _float30@ha
|
||||
0x0000005C = lfs f12, _float30@l(r12)
|
||||
0x00000060 = fdivs f7, f12, f10
|
||||
0x00000064 = lis r12, _lowlimit@ha
|
||||
0x00000068 = lfs f12, _lowlimit@l(r12)
|
||||
0x0000006C = lis r12, _speedDiv@ha
|
||||
0x00000070 = fcmpu cr0, f7, f12
|
||||
0x00000074 = bge .+0x0C
|
||||
|
||||
0x00000078 = stfs f7, _speedDiv@l(r12)
|
||||
0x0000007C = blr
|
||||
0x00000080 = stfs f12, _speedDiv@l(r12)
|
||||
0x00000084 = blr
|
||||
|
||||
_fenceNeg1 = 0x00000084
|
||||
0x00000088 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x0000008C = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x00000090 = blt .+0x08 #skip subtract if less than
|
||||
0x00000094 = subi r6, r6, 1 #do the subtract
|
||||
0x00000098 = blr #return
|
||||
|
||||
#codeChanges
|
||||
0x031F9E80 = bla _fpsCalc
|
||||
0x03792620 = nop
|
||||
0x0379262C = nop
|
||||
0x03792670 = lis r29, _speedDiv@ha
|
||||
0x03792678 = lfs f0, _speedDiv@L(r29)
|
||||
0x03792684 = nop
|
||||
0x03414EF8 = lis r12, _speedDiv@ha
|
||||
0x03414F00 = lfs f0, _speedDiv@l(r12)
|
||||
0x03414F08 = nop
|
||||
0x02D90790 = lis r10, _currentFPS@ha
|
||||
0x02D90794 = lfs f11, _currentFPS@l(r10)
|
||||
0x02D907EC = lis r10, _currentFPS@ha
|
||||
0x02D907F0 = lfs f11, _currentFPS@l(r10)
|
||||
|
||||
|
||||
#break all forms of frame limiting
|
||||
0x031FA000 = bla _fenceNeg1 ;Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
;0x031F9FEC = li r0, 1 ;Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
;0x031FA004 = nop ; skip fence (no waiting on GPU)
|
||||
0x031FA1D4 = nop ; disable vsync
|
||||
0x031FA1F8 = nop ; disable vsync loop
|
||||
|
||||
#Cheats
|
||||
;0x02D90724 = fmr f29, f1 ;inf stamina
|
||||
;0x02D44D44 = nop ;inf hearts
|
||||
;0x02EB61BC = nop ;inf arrows
|
||||
|
||||
[Botw60fpsv144]
|
||||
moduleMatches = 0x9A2CA0C7
|
||||
|
||||
@ -222,84 +396,3 @@ _fullspeed = 0x00000080
|
||||
;0x02F7DE00 = li r3, 0
|
||||
;0x02F862C4 = li r7, 1
|
||||
;0x02F86514 = li r7, 1
|
||||
|
||||
[BotwFPSv176V192]
|
||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
|
||||
#rodata constants
|
||||
_float1 = 0x10000670
|
||||
_float30 = 0x101E78F4
|
||||
|
||||
#TestCave
|
||||
codeCaveSize = 0x98
|
||||
|
||||
_fpsCalc = 0x00000008
|
||||
0x00000000 = .float 3 ; Don't edit me!
|
||||
_lowlimit = 0x00000000
|
||||
0x00000004 = .float 62156250
|
||||
_busSpeed = 0x00000004
|
||||
0x00000008 = stw r0, 0x78(r30)
|
||||
0x0000000C = xoris r12, r12, 0x8000
|
||||
0x00000010 = stw r12, 0x12C(r30)
|
||||
0x00000014 = lis r12, 0x4330
|
||||
0x00000018 = stw r12, 0x128(r30)
|
||||
0x0000001C = lfd f10, 0x128(r30)
|
||||
0x00000020 = stw r12, 0x138(r30)
|
||||
0x00000024 = lis r12, 0x8000
|
||||
0x00000028 = stw r12, 0x13C(r30)
|
||||
0x0000002C = lfd f12, 0x138(r30)
|
||||
0x00000030 = fsub f10, f10, f12
|
||||
0x00000034 = frsp f10, f10
|
||||
0x00000038 = lis r12, _float1@ha
|
||||
0x0000003C = lfs f12, _float1@l(r12)
|
||||
0x00000040 = fdivs f10, f12, f10
|
||||
0x00000048 = lis r12, _busSpeed@ha
|
||||
0x0000004C = lfs f12, _busSpeed@l(r12)
|
||||
0x00000050 = fmuls f10, f12, f10
|
||||
0x00000054 = stfs f10, 0x134(r30)
|
||||
0x00000058 = lis r12, _float30@ha
|
||||
0x0000005C = lfs f12, _float30@l(r12)
|
||||
0x00000060 = fdivs f7, f12, f10
|
||||
0x00000064 = lis r12, _lowlimit@ha
|
||||
0x00000068 = lfs f12, _lowlimit@l(r12)
|
||||
0x0000006C = fcmpu cr0, f7, f12
|
||||
0x00000070 = bge .+0x0C
|
||||
0x00000074 = stfs f7, 0x130(r30)
|
||||
0x00000078 = blr
|
||||
0x0000007c = stfs f12, 0x130(r30)
|
||||
0x00000080 = blr
|
||||
|
||||
_fenceNeg1 = 0x00000084
|
||||
0x00000084 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x00000088 = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x0000008C = blt .+0x08 #skip subtract if less than
|
||||
0x00000090 = subi r6, r6, 1 #do the subtract
|
||||
0x00000094 = blr #return
|
||||
|
||||
#codeChanges
|
||||
0x031F9E80 = bla _fpsCalc
|
||||
0x03792620 = nop
|
||||
0x0379262C = nop
|
||||
0x03792670 = lis r29, 0x1134
|
||||
0x03792678 = lfs f0, 0xFE58@l(r29)
|
||||
0x03792684 = nop
|
||||
0x03414EF8 = lis r12, 0x1134
|
||||
0x03414F00 = lfs f0, 0xFE58@l(r12)
|
||||
0x03414F08 = nop
|
||||
0x02D90790 = lis r10, 0x1134
|
||||
0x02D90794 = lfs f11, 0xFE5C@l(r10)
|
||||
0x02D907EC = lis r10, 0x1134
|
||||
0x02D907F0 = lfs f11, 0xFE5C@l(r10)
|
||||
|
||||
|
||||
#break all forms of frame limiting
|
||||
0x031FA000 = bla _fenceNeg1 ;Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
;0x031F9FEC = li r0, 1 ;Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
;0x031FA004 = nop ; skip fence (no waiting on GPU)
|
||||
0x031FA1D4 = nop ; disable vsync
|
||||
0x031FA1F8 = nop ; disable vsync loop
|
||||
|
||||
#Cheats
|
||||
;0x02D90724 = fmr f29, f1 ;inf stamina
|
||||
;0x02D44D44 = nop ;inf hearts
|
||||
;0x02EB61BC = nop ;inf arrows
|
||||
|
@ -1,4 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - 60FPS Fixes (requires stable 60FPS!)"
|
||||
version = 2
|
||||
|
@ -64,12 +64,12 @@ moduleMatches = 0xF7A78809
|
||||
#Fld_Warehouse00_Dul #Walleye Warehouse [Dojo]
|
||||
#Fld_SeaPlant00_Dul #Saltspray Rig [Dojo]
|
||||
#Fld_UpDown00_Dul #Arowana Mall [Dojo]
|
||||
#Fld_SkatePark00_Dul #Blackberry Skatepark [Dojo]
|
||||
#Fld_SkatePark00_Dul #Blackbelly Skatepark [Dojo]
|
||||
#Fld_Crank00_Vss #Urchin Underpass
|
||||
#Fld_Warehouse00_Vss #Walleye Warehouse
|
||||
#Fld_SeaPlant00_Vss #Saltspray Rig
|
||||
#Fld_UpDown00_Vss #Arowana Mall
|
||||
#Fld_SkatePark00_Vss #Blackberry Skatepark
|
||||
#Fld_SkatePark00_Vss #Blackbelly Skatepark
|
||||
#Fld_Athletic00_Vss #Camp Triggerfish
|
||||
#Fld_Amida00_Vss #Port Mackerel
|
||||
#Fld_Maze00_Vss #Kelp Dome
|
||||
@ -80,4 +80,4 @@ moduleMatches = 0xF7A78809
|
||||
#Fld_Jyoheki00_Vss #Flounder Heights
|
||||
#Fld_Pivot00_Vss #Museum d'Alfonsino
|
||||
#Fld_Hiagari00_Vss #Mahi-Mahi Resort
|
||||
#Fld_Kaisou00_Vss #Hammerhead Bridge
|
||||
#Fld_Kaisou00_Vss #Hammerhead Bridge
|
||||
|
83
Source/AmiiboFestival/rules.txt
Normal file
83
Source/AmiiboFestival/rules.txt
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
[Definition]
|
||||
titleIds = 00050000101C6400,00050000101C6500,0005000010190100
|
||||
name = "Animal Crossing: amiibo Festival - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 2048
|
||||
#height = 2048
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*2048)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*2048)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 2046
|
||||
#height = 2046
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*2046)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*2046)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
tileModesExcluded = 0x001
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 800
|
||||
height = 250
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*800)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*250)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
tileModesExcluded = 0x001
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 45
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 40
|
||||
height = 22
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*40)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*22)?>
|
@ -152,3 +152,19 @@ _aspectAddr = 0x101BF878
|
||||
# 3d aspect (calculated every frame)
|
||||
0x0386C314 = lis r28, ha16(_aspectAddr)
|
||||
0x0386C318 = lfs f12, _aspectAddr(r28)
|
||||
|
||||
[BotwAspectsV208]
|
||||
moduleMatches = 0x6267BFD0
|
||||
# rodata constants
|
||||
0x101BF8E8 = .float <?=$aspect?>
|
||||
0x1030A57C = .float <?=$aspect?>
|
||||
0x1036DD4C = .float <?=$aspect?>
|
||||
_aspectAddr = 0x101BF8E8
|
||||
|
||||
# menu link aspect (calculated every load)
|
||||
0x02E2C564 = lis r9, _aspectAddr@ha
|
||||
0x02E2C578 = lfs f4, _aspectAddr@l(r9)
|
||||
|
||||
# 3d aspect (calculated every frame)
|
||||
0x0386D01C = lis r28, ha16(_aspectAddr)
|
||||
0x0386D020 = lfs f12, _aspectAddr(r28)
|
||||
|
114
Source/BreathOfTheWild_StaticFPS/patches.txt
Normal file
114
Source/BreathOfTheWild_StaticFPS/patches.txt
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
$targetfps = $argv[1];
|
||||
$divisor = 30/$targetfps
|
||||
?>
|
||||
[BotwFPSV208] #i.e. v1.5.0
|
||||
moduleMatches = 0x6267BFD0
|
||||
|
||||
#Cave
|
||||
codeCaveSize = 0x1C
|
||||
|
||||
_divisor = 0x0 # edit the next line to change the divisor
|
||||
0x00000000 = .float <?=$divisor?> # = 30FPS / TARGET FPS, e.g. 30FPS / 18FPS = 1.66667
|
||||
_targetfps = 0x18 # edit the next line to change the target fps
|
||||
0x18 = .float <?=$targetfps?>
|
||||
|
||||
#"Best fence" by Rajkosto
|
||||
_fenceNeg1 = 0x00000004
|
||||
0x00000004 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x00000008 = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x0000000C = blt .+0x08 #skip subtract if less than
|
||||
0x00000010 = subi r6, r6, 1 #do the subtract
|
||||
0x00000014 = blr #return
|
||||
|
||||
#Extreme simplification of FPS++ by Xalphenos
|
||||
#codeChanges
|
||||
0x031FA97C = nop
|
||||
0x03793328 = nop
|
||||
0x03793334 = nop
|
||||
0x03793378 = lis r29, _divisor@ha
|
||||
0x03793380 = lfs f0, _divisor@L(r29)
|
||||
0x0379338C = nop
|
||||
0x03415C1C = lis r12, _divisor@ha
|
||||
0x03415C24 = lfs f0, _divisor@l(r12)
|
||||
0x03415C2C = nop
|
||||
0x02D90D2C = lis r10, _targetfps@ha
|
||||
0x02D90D30 = lfs f11, _targetfps@l(r10)
|
||||
0x02D90D88 = lis r10, _targetfps@ha
|
||||
0x02D90D8C = lfs f11, _targetfps@l(r10)
|
||||
|
||||
#Break all forms of frame limiting
|
||||
0x031FAAFC = bla _fenceNeg1 #Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
#0x031FAAE8 = li r0, 1 #Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
#0x031FAB00 = nop #skip fence (no waiting on GPU)
|
||||
0x031FACD0 = nop #disable vsync
|
||||
0x031FACF4 = nop #disable vsync loop
|
||||
|
||||
#Additional vsync dropping
|
||||
0x0309D030 = nop #disable vsync
|
||||
0x0309D054 = nop #disable vsync loop
|
||||
|
||||
#For testing, the original static mod lines (commented out by default):
|
||||
#0x031FB0C0 = li r0, 1
|
||||
#0x031FB104 = li r0, 1
|
||||
|
||||
#Cheats
|
||||
#0x02D90CC0 = fmr f29, f1 #inf stamina
|
||||
#0x02D452A4 = nop #inf hearts
|
||||
#0x02EB6758 = nop #inf arrows
|
||||
|
||||
[BotwFPSv176V192] #i.e. v1.4.0 and v1.4.1
|
||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
|
||||
#Cave
|
||||
codeCaveSize = 0x1C
|
||||
|
||||
_divisor = 0x0 # edit the next line to change the divisor
|
||||
0x00000000 = .float <?=$divisor?> # = 30FPS / TARGET FPS, e.g. 30FPS / 18FPS = 1.66667
|
||||
_targetfps = 0x18 # edit the next line to change the target fps
|
||||
0x18 = .float <?=$targetfps?>
|
||||
|
||||
#"Best fence" by Rajkosto
|
||||
_fenceNeg1 = 0x00000004
|
||||
0x00000004 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x00000008 = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x0000000C = blt .+0x08 #skip subtract if less than
|
||||
0x00000010 = subi r6, r6, 1 #do the subtract
|
||||
0x00000014 = blr #return
|
||||
|
||||
#Extreme simplification of FPS++ by Xalphenos
|
||||
#codeChanges
|
||||
0x031F9E80 = nop
|
||||
0x03792620 = nop
|
||||
0x0379262C = nop
|
||||
0x03792670 = lis r29, _divisor@ha
|
||||
0x03792678 = lfs f0, _divisor@L(r29)
|
||||
0x03792684 = nop
|
||||
0x03414EF8 = lis r12, _divisor@ha
|
||||
0x03414F00 = lfs f0, _divisor@l(r12)
|
||||
0x03414F08 = nop
|
||||
0x02D90790 = lis r10, _targetfps@ha
|
||||
0x02D90794 = lfs f11, _targetfps@l(r10)
|
||||
0x02D907EC = lis r10, _targetfps@ha
|
||||
0x02D907F0 = lfs f11, _targetfps@l(r10)
|
||||
|
||||
#Break all forms of frame limiting
|
||||
0x031FA000 = bla _fenceNeg1 #Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
#0x031F9FEC = li r0, 1 #Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
#0x031FA004 = nop #skip fence (no waiting on GPU)
|
||||
0x031FA1D4 = nop #disable vsync
|
||||
0x031FA1F8 = nop #disable vsync loop
|
||||
|
||||
#Additional vsync dropping
|
||||
0x0309C9A4 = nop #disable vsync
|
||||
0x0309C9C8 = nop #disable vsync loop
|
||||
|
||||
#For testing, the original static mod lines (commented out by default):
|
||||
#0x031FA5C4 = li r0, 1
|
||||
#0x031FA608 = li r0, 1
|
||||
|
||||
#Cheats
|
||||
#0x02D90724 = fmr f29, f1 #inf stamina
|
||||
#0x02D44D44 = nop #inf hearts
|
||||
#0x02EB61BC = nop #inf arrows
|
||||
|
18
Source/BreathOfTheWild_StaticFPS/readme.txt
Normal file
18
Source/BreathOfTheWild_StaticFPS/readme.txt
Normal file
@ -0,0 +1,18 @@
|
||||
This is based on an extreme simplification of the fps++ mod by Xalphenos; it
|
||||
drops dynamic FPS to prevent graphics judder. The Rajkosto "best fence" method
|
||||
is also included for performance and stability. Judder was easily noticeable
|
||||
when Link paraglides; the caveat is that the user must pick a target FPS that
|
||||
they can maintain.
|
||||
|
||||
It improves over previous static mods in that it allows ANY value as a
|
||||
static fps target and it includes the stamina fix.
|
||||
|
||||
To use it simply grab one of the provided versions or edit one with these
|
||||
changes: a) rules.txt frequency and name b) divide 30 by the target FPS c) use
|
||||
the result of that calculation and the target fps in patches.txt.
|
||||
|
||||
This readme was derived from a static <?=$argv[1] ?>FPS mod. Additional FPS targets
|
||||
and discussion are at https://forum.cemu.info/showthread.php/421. If you do
|
||||
know how to use build.sh at Slashie's repo, it supports arbitrary targets.
|
||||
|
||||
epigramx
|
7
Source/BreathOfTheWild_StaticFPS/rules.txt
Normal file
7
Source/BreathOfTheWild_StaticFPS/rules.txt
Normal file
@ -0,0 +1,7 @@
|
||||
[Definition]
|
||||
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
|
||||
name = "The Legend of Zelda: Breath of the Wild - static <?=$argv[1] ?>FPS mod"
|
||||
version = 2
|
||||
|
||||
[Control]
|
||||
vsyncFrequency = <?=$argv[1] ?>
|
@ -20,8 +20,65 @@ tileModesExcluded = 0x001
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1024
|
||||
#height = 1024
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 512
|
||||
#height = 512
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*512)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*512)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 256
|
||||
#height = 256
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*256)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 64
|
||||
#height = 64
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*64)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*64)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 32
|
||||
height = 18
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*32)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*18)?>
|
||||
|
@ -6,19 +6,134 @@ $scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
|
||||
[Definition]
|
||||
titleIds = 00050000101FFC00
|
||||
name = "Ghost Blade HD - <?=$title?>"
|
||||
name = "Ghost Blade HD - <?=$title?> "
|
||||
version = 2
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine] # gamepad
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 220
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*220)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 183
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*183)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 147
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*147)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 109
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*109)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 73
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*73)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 36
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*36)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*854)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*480)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 576
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*576)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 293
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*293)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 256
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 220
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*220)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 183
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*183)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 147
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*147)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 109
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*109)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 73
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*73)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 435
|
||||
height = 36
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*435)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*36)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 352
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*352)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
109
Source/MarioKart8/2e78a0d0a0aa66bb_0000000000000000_vs.txt
Normal file
109
Source/MarioKart8/2e78a0d0a0aa66bb_0000000000000000_vs.txt
Normal file
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader 2e78a0d0a0aa66bb
|
||||
// horizontal bloom blur texture coordinates
|
||||
const float resXScale = <?=$scaleFactorX?>;
|
||||
const float resYScale = <?=$scaleFactorY?>;
|
||||
|
||||
uniform ivec4 uf_remappedVS[1];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 1) out vec4 passParameterSem1;
|
||||
layout(location = 2) out vec4 passParameterSem2;
|
||||
layout(location = 0) out vec4 passParameterSem0;
|
||||
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 R126f = 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.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 = attrDataSem1.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
|
||||
backupReg0f = R1f.x;
|
||||
backupReg1f = R1f.y;
|
||||
R1f.x = backupReg0f;
|
||||
R1f.x *= 2.0;
|
||||
R1f.y = backupReg1f;
|
||||
R1f.y *= 2.0;
|
||||
R1f.z = 0.0;
|
||||
R1f.w = 1.0;
|
||||
R127f.y = intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x3fb13a93) / resYScale;
|
||||
PS0f = R127f.y;
|
||||
// 1
|
||||
PV1f.x = intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x404ec4f0) / resXScale;
|
||||
R126f.y = intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x40a275f7) / resYScale;
|
||||
R3f.z = R2f.x + PS0f;
|
||||
R3f.w = R2f.x;
|
||||
R3f.x = R2f.y;
|
||||
PS1f = R3f.x;
|
||||
// 2
|
||||
R0f.x = PS1f;
|
||||
R3f.y = R2f.x + -(R127f.y);
|
||||
R0f.z = R2f.x + PV1f.x;
|
||||
R0f.w = R2f.x;
|
||||
R0f.y = R2f.x + -(PV1f.x);
|
||||
PS0f = R0f.y;
|
||||
// 3
|
||||
backupReg0f = R2f.x;
|
||||
backupReg0f = R2f.x;
|
||||
backupReg0f = R2f.x;
|
||||
R2f.x = R3f.x;
|
||||
R2f.y = backupReg0f + -(R126f.y);
|
||||
R2f.z = backupReg0f + R126f.y;
|
||||
R2f.w = backupReg0f;
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
// export
|
||||
passParameterSem2 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// export
|
||||
passParameterSem0 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
|
||||
// 0
|
||||
}
|
156
Source/MarioKart8/a9bf96a840b38cc8_0000000000000000_vs.txt
Normal file
156
Source/MarioKart8/a9bf96a840b38cc8_0000000000000000_vs.txt
Normal file
@ -0,0 +1,156 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader a9bf96a840b38cc8
|
||||
//Motion blur turbo
|
||||
const float resScale = <?=$scaleFactorX?>;
|
||||
uniform ivec4 uf_remappedVS[2];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 0) out vec4 passParameterSem0;
|
||||
layout(location = 1) out vec4 passParameterSem1;
|
||||
layout(location = 2) out vec4 passParameterSem2;
|
||||
layout(location = 3) out vec4 passParameterSem3;
|
||||
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 R125f = vec4(0.0);
|
||||
vec4 R126f = 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.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)));
|
||||
// 0
|
||||
R125f.x = mul_nonIEEE(R1f.x, intBitsToFloat(uf_remappedVS[0].x));
|
||||
PV0f.x = R125f.x;
|
||||
R127f.y = intBitsToFloat(uf_remappedVS[1].w) * intBitsToFloat(0x3e124925)/resScale;
|
||||
PV0f.y = R127f.y;
|
||||
R1f.z = intBitsToFloat(uf_remappedVS[1].z);
|
||||
R127f.w = mul_nonIEEE(R1f.y, intBitsToFloat(uf_remappedVS[0].y));
|
||||
PV0f.w = R127f.w;
|
||||
R1f.w = 1.0;
|
||||
PS0f = R1f.w;
|
||||
// 1
|
||||
R126f.x = (intBitsToFloat(uf_remappedVS[1].y) * 0.5 + 0.5);
|
||||
PV1f.x = R126f.x;
|
||||
PV1f.y = PV0f.w;
|
||||
PV1f.y *= 2.0;
|
||||
PV1f.z = PV0f.x;
|
||||
PV1f.z *= 2.0;
|
||||
R123f.w = (mul_nonIEEE(PV0f.w,-(PV0f.y)) + PV0f.w);
|
||||
PV1f.w = R123f.w;
|
||||
R126f.y = (-(PV0f.y) * 2.0 + 1.0);
|
||||
PS1f = R126f.y;
|
||||
// 2
|
||||
R1f.x = PV1f.z + intBitsToFloat(uf_remappedVS[1].x);
|
||||
R1f.y = PV1f.y + intBitsToFloat(uf_remappedVS[1].y);
|
||||
R126f.z = (-(R127f.y) * intBitsToFloat(0x40400000) + 1.0);
|
||||
PV0f.z = R126f.z;
|
||||
PV0f.w = PV1f.x + PV1f.w;
|
||||
R127f.x = (mul_nonIEEE(R127f.w,PS1f) + PV1f.x);
|
||||
PS0f = R127f.x;
|
||||
// 3
|
||||
R123f.x = (mul_nonIEEE(R127f.w,PV0f.z) + R126f.x);
|
||||
PV1f.x = R123f.x;
|
||||
R125f.y = (intBitsToFloat(uf_remappedVS[1].x) * 0.5 + 0.5);
|
||||
PV1f.y = R125f.y;
|
||||
R123f.z = (mul_nonIEEE(R125f.x,-(R127f.y)) + R125f.x);
|
||||
PV1f.z = R123f.z;
|
||||
R126f.w = (-(R127f.y) * 4.0 + 1.0);
|
||||
PV1f.w = R126f.w;
|
||||
R127f.z = PV0f.w;
|
||||
PS1f = R127f.z;
|
||||
// 4
|
||||
backupReg0f = R127f.w;
|
||||
PV0f.x = PV1f.x;
|
||||
R127f.y = (mul_nonIEEE(R127f.w,PV1f.w) + R126f.x);
|
||||
PV0f.z = R127f.x;
|
||||
R127f.w = backupReg0f + R126f.x;
|
||||
R2f.x = PV1f.y + PV1f.z;
|
||||
PS0f = R2f.x;
|
||||
// 5
|
||||
backupReg0f = R126f.z;
|
||||
R3f.x = (mul_nonIEEE(R125f.x,R126f.y) + R125f.y);
|
||||
R126f.y = -(PV0f.z) + 1.0;
|
||||
R126f.z = -(PV0f.x) + 1.0;
|
||||
R125f.w = -(R127f.z) + 1.0;
|
||||
PV1f.w = R125f.w;
|
||||
R4f.x = (mul_nonIEEE(R125f.x,backupReg0f) + R125f.y);
|
||||
PS1f = R4f.x;
|
||||
// 6
|
||||
backupReg0f = R125f.x;
|
||||
backupReg0f = R125f.x;
|
||||
R125f.x = R127f.y;
|
||||
R0f.y = -(R127f.w) + 1.0;
|
||||
R127f.z = (mul_nonIEEE(backupReg0f,R126f.w) + R125f.y);
|
||||
R0f.w = PV1f.w;
|
||||
R0f.x = backupReg0f + R125f.y;
|
||||
PS0f = R0f.x;
|
||||
// 7
|
||||
R2f.y = R125f.w;
|
||||
R0f.z = R2f.x;
|
||||
R2f.w = R126f.y;
|
||||
R2f.z = R3f.x;
|
||||
PS1f = R2f.z;
|
||||
// 8
|
||||
R3f.yzw = vec3(R126f.y,R4f.x,R126f.z);
|
||||
R4f.z = R127f.z;
|
||||
PS0f = R4f.z;
|
||||
// 9
|
||||
R4f.y = R126f.z;
|
||||
R4f.w = -(R125f.x) + 1.0;
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// export
|
||||
passParameterSem2 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
|
||||
// export
|
||||
passParameterSem3 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
|
||||
// 0
|
||||
}
|
87
Source/MarioKart8/c673c0d44f779fc9_0000000000000000_vs.txt
Normal file
87
Source/MarioKart8/c673c0d44f779fc9_0000000000000000_vs.txt
Normal file
@ -0,0 +1,87 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader c673c0d44f779fc9
|
||||
// one pass blur for simple dof effect
|
||||
const float resXScale = <?=$scaleFactorX?>;
|
||||
const float resYScale = <?=$scaleFactorY?>;
|
||||
|
||||
uniform ivec4 uf_remappedVS[1];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 0) out vec4 passParameterSem3;
|
||||
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);
|
||||
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 = attrDataSem1.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
|
||||
backupReg0f = R1f.x;
|
||||
backupReg1f = R1f.y;
|
||||
R1f.x = backupReg0f;
|
||||
R1f.x *= 2.0;
|
||||
R1f.y = backupReg1f;
|
||||
R1f.y *= 2.0;
|
||||
R1f.z = intBitsToFloat(0xbf800000);
|
||||
R1f.w = 1.0;
|
||||
PS0f = R2f.x + -(intBitsToFloat(uf_remappedVS[0].x) / resXScale);
|
||||
// 1
|
||||
backupReg0f = R2f.y;
|
||||
backupReg1f = R2f.x;
|
||||
PV1f.x = R2f.y + -(intBitsToFloat(uf_remappedVS[0].y) / resYScale);
|
||||
R2f.y = backupReg0f + intBitsToFloat(uf_remappedVS[0].y) / resYScale;
|
||||
R2f.z = PS0f;
|
||||
R2f.x = backupReg1f + intBitsToFloat(uf_remappedVS[0].x) / resXScale;
|
||||
PS1f = R2f.x;
|
||||
// 2
|
||||
R2f.w = PV1f.x;
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem3 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// 0
|
||||
}
|
111
Source/MarioKart8/dd7a19be01b7b1aa_0000000000000000_vs.txt
Normal file
111
Source/MarioKart8/dd7a19be01b7b1aa_0000000000000000_vs.txt
Normal file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader dd7a19be01b7b1aa
|
||||
// vertical bloom blur texture coordinates
|
||||
const float resXScale = <?=$scaleFactorX?>;
|
||||
const float resYScale = <?=$scaleFactorY?>;
|
||||
|
||||
uniform ivec4 uf_remappedVS[1];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 0) out vec4 passParameterSem0;
|
||||
layout(location = 1) out vec4 passParameterSem1;
|
||||
layout(location = 2) 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){ 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 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.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 = attrDataSem1.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
|
||||
backupReg0f = R1f.x;
|
||||
backupReg1f = R1f.y;
|
||||
R1f.x = backupReg0f;
|
||||
R1f.x *= 2.0;
|
||||
R1f.y = backupReg1f;
|
||||
R1f.y *= 2.0;
|
||||
R1f.z = 0.0;
|
||||
R1f.w = 1.0;
|
||||
PS0f = intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x3fb13a93) / resYScale;
|
||||
// 1
|
||||
PV1f.x = intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x404ec4f0) / resYScale;
|
||||
R127f.y = intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x40a275f7) / resYScale;
|
||||
R2f.z = R2f.y + PS0f;
|
||||
PV1f.z = R2f.z;
|
||||
R2f.w = R2f.y;
|
||||
PV1f.w = R2f.w;
|
||||
R0f.y = R2f.y + -(PS0f);
|
||||
PS1f = R0f.y;
|
||||
// 2
|
||||
R0f.x = R2f.x;
|
||||
R3f.y = R2f.y + -(PV1f.x);
|
||||
R0f.z = PV1f.z;
|
||||
R0f.w = PV1f.w;
|
||||
R2f.z = R2f.y + PV1f.x;
|
||||
PS0f = R2f.z;
|
||||
// 3
|
||||
R3f.x = R2f.x;
|
||||
R4f.y = R2f.y + -(R127f.y);
|
||||
R3f.z = PS0f;
|
||||
R3f.w = R2f.y;
|
||||
R2f.z = R2f.y + R127f.y;
|
||||
PS1f = R2f.z;
|
||||
// 4
|
||||
R4f.xzw = vec3(R2f.x,PS1f,R2f.y);
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
|
||||
// export
|
||||
passParameterSem2 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
|
||||
// 0
|
||||
}
|
129
Source/MarioKart8/e02d25abb7529b7f_0000000000000000_vs.txt
Normal file
129
Source/MarioKart8/e02d25abb7529b7f_0000000000000000_vs.txt
Normal file
@ -0,0 +1,129 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader e02d25abb7529b7f
|
||||
//BFA
|
||||
const float resScale = <?=$scaleFactorX?>;
|
||||
uniform ivec4 uf_remappedVS[5];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 1) out vec4 passParameterSem1;
|
||||
layout(location = 0) out vec4 passParameterSem0;
|
||||
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 R125f = vec4(0.0);
|
||||
vec4 R126f = 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.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)));
|
||||
// 0
|
||||
R126f.x = (R1f.x > 0.0)?1.0:0.0;
|
||||
R126f.x /= 2.0;
|
||||
R127f.y = -(R1f.y);
|
||||
PV0f.y = R127f.y;
|
||||
R127f.z = (0.0 > R1f.x)?1.0:0.0;
|
||||
R127f.z /= 2.0;
|
||||
R127f.w = 1.0;
|
||||
PV0f.w = R127f.w;
|
||||
R125f.x = intBitsToFloat(uf_remappedVS[0].w) * intBitsToFloat(0x3fb13a93)/resScale;
|
||||
PS0f = R125f.x;
|
||||
// 1
|
||||
R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w)));
|
||||
PV1f.x = R0f.x;
|
||||
PV1f.y = R0f.x;
|
||||
PV1f.z = R0f.x;
|
||||
PV1f.w = R0f.x;
|
||||
R127f.x = (PV0f.y > 0.0)?1.0:0.0;
|
||||
R127f.x /= 2.0;
|
||||
PS1f = R127f.x;
|
||||
// 2
|
||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.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.y = tempf.x;
|
||||
PS0f = (0.0 > R127f.y)?1.0:0.0;
|
||||
PS0f /= 2.0;
|
||||
// 3
|
||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.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.z = tempf.x;
|
||||
R126f.z = R127f.x + -(PS0f);
|
||||
PS1f = R126f.z;
|
||||
// 4
|
||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w)));
|
||||
PV0f.x = tempf.x;
|
||||
PV0f.y = tempf.x;
|
||||
PV0f.z = tempf.x;
|
||||
PV0f.w = tempf.x;
|
||||
R0f.w = tempf.x;
|
||||
PS0f = R126f.x + -(R127f.z);
|
||||
// 5
|
||||
R126f.x = intBitsToFloat(uf_remappedVS[0].w) * intBitsToFloat(0x404ec4f0)/resScale;
|
||||
PV1f.x = R126f.x;
|
||||
R127f.y = R126f.z + 0.5;
|
||||
PV1f.y = R127f.y;
|
||||
R2f.x = PS0f + 0.5;
|
||||
PS1f = R2f.x;
|
||||
// 6
|
||||
R1f.x = PS1f;
|
||||
R2f.y = PV1f.y + -(R125f.x);
|
||||
R2f.z = PV1f.y + R125f.x;
|
||||
R2f.w = PV1f.y;
|
||||
R1f.y = PV1f.y + -(PV1f.x);
|
||||
PS0f = R1f.y;
|
||||
// 7
|
||||
R1f.z = R127f.y + R126f.x;
|
||||
R1f.w = R127f.y;
|
||||
// export
|
||||
gl_Position = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// 0
|
||||
}
|
130
Source/MarioKart8/e8266ec81590ed24_0000000000000000_vs.txt
Normal file
130
Source/MarioKart8/e8266ec81590ed24_0000000000000000_vs.txt
Normal file
@ -0,0 +1,130 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader e8266ec81590ed24
|
||||
//BFb2
|
||||
const float resScale = <?=$scaleFactorX?>;
|
||||
uniform ivec4 uf_remappedVS[5];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 1) out vec4 passParameterSem1;
|
||||
layout(location = 0) out vec4 passParameterSem0;
|
||||
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 R126f = 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.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)));
|
||||
// 0
|
||||
R127f.x = (0.0 > R1f.x)?1.0:0.0;
|
||||
R127f.x /= 2.0;
|
||||
R127f.y = (R1f.x > 0.0)?1.0:0.0;
|
||||
R127f.y /= 2.0;
|
||||
R127f.z = -(R1f.y);
|
||||
PV0f.z = R127f.z;
|
||||
R127f.w = 1.0;
|
||||
PV0f.w = R127f.w;
|
||||
R126f.y = intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3fb13a93)/resScale;
|
||||
PS0f = R126f.y;
|
||||
// 1
|
||||
R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w)));
|
||||
PV1f.x = R0f.x;
|
||||
PV1f.y = R0f.x;
|
||||
PV1f.z = R0f.x;
|
||||
PV1f.w = R0f.x;
|
||||
R126f.w = (PV0f.z > 0.0)?1.0:0.0;
|
||||
R126f.w /= 2.0;
|
||||
PS1f = R126f.w;
|
||||
// 2
|
||||
backupReg0f = R127f.z;
|
||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.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.y = tempf.x;
|
||||
R127f.z = (0.0 > backupReg0f)?1.0:0.0;
|
||||
R127f.z /= 2.0;
|
||||
PS0f = R127f.z;
|
||||
// 3
|
||||
backupReg0f = R127f.y;
|
||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.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.z = tempf.x;
|
||||
R127f.y = backupReg0f + -(R127f.x);
|
||||
PS1f = R127f.y;
|
||||
// 4
|
||||
tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w)));
|
||||
PV0f.x = tempf.x;
|
||||
PV0f.y = tempf.x;
|
||||
PV0f.z = tempf.x;
|
||||
PV0f.w = tempf.x;
|
||||
R0f.w = tempf.x;
|
||||
PS0f = R126f.w + -(R127f.z);
|
||||
// 5
|
||||
R127f.x = intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x404ec4f0)/resScale;
|
||||
PV1f.z = PS0f + 0.5;
|
||||
R127f.w = R127f.y + 0.5;
|
||||
PV1f.w = R127f.w;
|
||||
// 6
|
||||
R2f.x = PV1f.z;
|
||||
PV0f.x = R2f.x;
|
||||
R2f.y = PV1f.w + -(R126f.y);
|
||||
R2f.z = PV1f.w + R126f.y;
|
||||
R2f.w = PV1f.w;
|
||||
// 7
|
||||
R1f.x = PV0f.x;
|
||||
R1f.y = R127f.w + -(R127f.x);
|
||||
R1f.z = R127f.w + R127f.x;
|
||||
R1f.w = R127f.w;
|
||||
// export
|
||||
gl_Position = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// 0
|
||||
}
|
99
Source/MarioKart8/f5274bda2b5e1e9f_0000000000000000_vs.txt
Normal file
99
Source/MarioKart8/f5274bda2b5e1e9f_0000000000000000_vs.txt
Normal file
@ -0,0 +1,99 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader f5274bda2b5e1e9f
|
||||
// bloom blur texture coordinates
|
||||
const float resXScale = <?=$scaleFactorX?>;
|
||||
const float resYScale = <?=$scaleFactorY?>;
|
||||
|
||||
uniform ivec4 uf_remappedVS[1];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 1) out vec4 passParameterSem1;
|
||||
layout(location = 2) out vec4 passParameterSem2;
|
||||
layout(location = 0) out vec4 passParameterSem0;
|
||||
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 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.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 = attrDataSem1.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
|
||||
backupReg0f = R1f.x;
|
||||
backupReg1f = R1f.y;
|
||||
R1f.x = backupReg0f;
|
||||
R1f.x *= 2.0;
|
||||
R1f.y = backupReg1f;
|
||||
R1f.y *= 2.0;
|
||||
R1f.z = 0.0;
|
||||
R1f.w = 1.0;
|
||||
R127f.x = R2f.y + intBitsToFloat(uf_remappedVS[0].w) / resYScale;
|
||||
PS0f = R127f.x;
|
||||
// 1
|
||||
R0f.x = R2f.x + intBitsToFloat(uf_remappedVS[0].z) / resXScale;
|
||||
R0f.y = PS0f;
|
||||
PV1f.z = R2f.y + -(intBitsToFloat(uf_remappedVS[0].w) / resYScale);
|
||||
R4f.w = R2f.x;
|
||||
R3f.x = R2f.x + -(intBitsToFloat(uf_remappedVS[0].z) / resXScale);
|
||||
PS1f = R3f.x;
|
||||
// 2
|
||||
R4f.x = R2f.y;
|
||||
R3f.y = R127f.x;
|
||||
R3f.z = PV1f.z;
|
||||
R0f.w = PV1f.z;
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R0f.x, R0f.y, R0f.x, R0f.w);
|
||||
// export
|
||||
passParameterSem2 = vec4(R3f.x, R3f.y, R3f.x, R3f.z);
|
||||
// export
|
||||
passParameterSem0 = vec4(R4f.w, R4f.x, R4f.z, R4f.z);
|
||||
// 0
|
||||
}
|
@ -12,54 +12,278 @@ titleIds = 000500001010EC00,000500001010ED00,000500001010EB00
|
||||
name = "Mario Kart 8 - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
# Main Screen Resolution
|
||||
|
||||
#[TextureRedefine] #
|
||||
#width = 2048
|
||||
#height = 2048
|
||||
#overwriteWidth = <?=round($scaleFactorX*2048)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*2048)?>
|
||||
|
||||
#[TextureRedefine] #selection screen shadows
|
||||
#width = 1536
|
||||
#height = 1536
|
||||
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
formatsExcluded = 0x41A,0x431 # exclude the intro background texture, race end background
|
||||
formatsExcluded = 0x41A,0x431 # exclude the intro background texture, race end background
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
# Half Res Alpha (and DOF)
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
[TextureRedefine] #MShadows
|
||||
width = 1024
|
||||
height = 1024
|
||||
formats = 0x005 #shadows 2 lod slices
|
||||
overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
# Quarter Res Alpha (motion blur effect around edges of screen)
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
#[TextureRedefine] ##gloss, reflections, don't scale
|
||||
#width = 768
|
||||
#width = 768
|
||||
|
||||
# Multiplayer-Mode Resolution (2p)
|
||||
[TextureRedefine]
|
||||
[TextureRedefine] # Multiplayer-Mode Resolution (2p)
|
||||
width = 640
|
||||
height = 720
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
# Multiplayer-Mode Half Res Alpha (2p)
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 320
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*320)?>
|
||||
|
||||
#[TextureRedefine] #selection fmv don't scale
|
||||
#width = 512
|
||||
#height = 608
|
||||
#formatsExcluded = 0x001 #selection fmt
|
||||
|
||||
#[TextureRedefine] #shadows multiplayer?
|
||||
#width = 512
|
||||
#height = 512
|
||||
#formats = 0x005 # verify later
|
||||
#overwriteWidth = <?=round($scaleFactorX*512)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*512)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 427
|
||||
height = 240
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*427)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*240)?>
|
||||
|
||||
[TextureRedefine] #4P?
|
||||
width = 320
|
||||
height = 360
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine] # Bloom first mip, motion blur effect
|
||||
width = 320
|
||||
height = 180
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine] #
|
||||
width = 256
|
||||
height = 256
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235 #
|
||||
overwriteWidth = <?=round($scaleFactorX*256)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 199
|
||||
height = 116
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*199)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*116)?>
|
||||
|
||||
# Multiplayer-Mode Quarter Res Alpha (2p)
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 180
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine] #bloom 2nd mip
|
||||
width = 160
|
||||
height = 90
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 80
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*80)?>
|
||||
|
||||
[TextureRedefine] #
|
||||
width = 148
|
||||
height = 148
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*148)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*148)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 133
|
||||
height = 77
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*133)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*77)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 128
|
||||
height = 256
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a,0x234,0x235
|
||||
overwriteWidth = <?=round($scaleFactorX*128)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 128
|
||||
#height = 128
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*128)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*128)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 90
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine] # bloom 3rd mip
|
||||
width = 80
|
||||
height = 45
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 40
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*40)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 64
|
||||
height = 128
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*64)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*128)?>
|
||||
|
||||
#[TextureRedefine] # glossmap breaks 64 cube?
|
||||
#width = 64
|
||||
#height = 64
|
||||
|
||||
|
||||
#[TextureRedefine] #check later
|
||||
#width = 52
|
||||
#height = 52
|
||||
#formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
#overwriteWidth = 156
|
||||
#overwriteHeight = 156
|
||||
|
||||
[TextureRedefine]
|
||||
width = 49
|
||||
height = 29
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*49)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*29)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 40
|
||||
height = 45
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*40)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
[TextureRedefine] #bloom
|
||||
width = 40
|
||||
height = 22
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*40)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*22)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 40
|
||||
height = 20
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*40)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*20)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 33
|
||||
height = 19
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*33)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*19)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 32
|
||||
height = 64
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*32)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*64)?>
|
||||
|
||||
#[TextureRedefine] #
|
||||
#width = 32
|
||||
#height = 32
|
||||
#formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x816,0x01a #0x816 exclude cube
|
||||
#overwriteWidth = 96
|
||||
#overwriteHeight = 96
|
||||
|
||||
[TextureRedefine]
|
||||
width = 20
|
||||
height = 22
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*20)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*22)?>
|
||||
|
||||
|
||||
[TextureRedefine]
|
||||
width = 20
|
||||
height = 10
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
verwriteWidth = <?=round($scaleFactorX*20)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*11)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 16
|
||||
height = 32
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*16)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*32)?>
|
||||
|
||||
|
||||
#[TextureRedefine] #M
|
||||
#width = 16
|
||||
#height = 16
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*16)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*16)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 8
|
||||
height = 16
|
||||
formatsExcluded = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435,0x01a
|
||||
overwriteWidth = <?=round($scaleFactorX*8)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*16)?>
|
||||
|
||||
###MKTV###
|
||||
# MKTV screen
|
||||
[TextureRedefine]
|
||||
width = 960
|
||||
@ -90,12 +314,4 @@ width = 240
|
||||
height = 134
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
overwriteWidth = <?=round($scaleFactorX*240)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*134)?>
|
||||
|
||||
# Multiplayer kart preview
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 320
|
||||
formatsExcluded = 0x41A # exclude obvious textures
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*134)?>
|
188
Source/MarioParty10/rules.txt
Normal file
188
Source/MarioParty10/rules.txt
Normal file
@ -0,0 +1,188 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
[Definition]
|
||||
titleIds = 0005000010162D00,0005000010162E00,0005000E10161F00
|
||||
name = "Mario Party 10 - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
formatsExcluded = 0x41a,0x431
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 1024
|
||||
height = 1024
|
||||
formatsExcluded = 0x34,0x35,0x431,0x433
|
||||
overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 1022
|
||||
height = 1022
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1022)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*1022)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 960
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*854)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*960)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
formatsExcluded = 0x41a
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 838
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*838)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 716
|
||||
height = 538
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*716)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*538)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 559
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*559)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*480)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 552
|
||||
height = 414
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*552)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*414)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 536
|
||||
height = 126
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*536)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*126)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 512
|
||||
height = 512
|
||||
formatsExcluded = 0x34,0x35,0x235,0x41a,0x431
|
||||
overwriteWidth = <?=round($scaleFactorX*512)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*512)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 510
|
||||
height = 510
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*510)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*510)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 460
|
||||
height = 460
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*460)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*460)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 370
|
||||
height = 370
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*370)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*370)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 256
|
||||
height = 256
|
||||
formatsExcluded = 0x1,0x35,0x431,0x433
|
||||
overwriteWidth = <?=round($scaleFactorX*256)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 196
|
||||
height = 196
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*196)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*196)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 128
|
||||
height = 128
|
||||
formatsExcluded = 0x35,0x41a,0x431,0x433
|
||||
overwriteWidth = <?=round($scaleFactorX*128)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*128)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 45
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 64
|
||||
height = 64
|
||||
formatsExcluded = 0x34,0x431,0x433
|
||||
overwriteWidth = <?=round($scaleFactorX*64)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*64)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 40
|
||||
height = 22
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*40)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*22)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 32
|
||||
height = 32
|
||||
formatsExcluded = 0x1,0x35,0x431
|
||||
overwriteWidth = <?=round($scaleFactorX*32)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*32)?>
|
||||
|
||||
[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
width = 16
|
||||
height = 16
|
||||
formatsExcluded = 0x1,0x35,0x433
|
||||
overwriteWidth = <?=round($scaleFactorX*16)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*16)?>
|
@ -8,37 +8,287 @@ $scaleFactorY = $fullHeight / 720.0;
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
[Definition]
|
||||
titleIds = 00050000101E5300
|
||||
titleIds = 0005000010190300,00050000101E5300,00050000101E5400,0005000210190301,00050002101E5301,00050002101E5401
|
||||
name = "Mario & Sonic at the Rio 2016 Olympic Games - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
tileModesExcluded = 0x1
|
||||
formatsExcluded = 0x31
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1200
|
||||
height = 100
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1200)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*100)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1040
|
||||
height = 60
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1040)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*60)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1024
|
||||
#height = 1024
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 880
|
||||
height = 226
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*880)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*226)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 832
|
||||
height = 40
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*832)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*40)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 784
|
||||
height = 130
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*784)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*130)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 672
|
||||
height = 64
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*672)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*64)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 656
|
||||
height = 46
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*656)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*46)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
tileModesExcluded = 0x001
|
||||
height = 80
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*80)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 624
|
||||
height = 40
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*624)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*40)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 608
|
||||
height = 624
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*608)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*624)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 570
|
||||
height = 420
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*570)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*420)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 544
|
||||
height = 160
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*544)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*160)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 512
|
||||
#height = 512
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*512)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*512)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 512
|
||||
height = 34
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*512)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*34)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 400
|
||||
height = 40
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*400)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*40)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 336
|
||||
height = 60
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*336)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*60)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 40
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*40)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 24
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*24)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 280
|
||||
height = 76
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*76)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 272
|
||||
height = 50
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*272)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*50)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 256
|
||||
height = 52
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*256)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*52)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 224
|
||||
height = 52
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*224)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*52)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine] # gamepad
|
||||
width = 854
|
||||
height = 480
|
||||
#overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 46
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*46)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 38
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*38)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 128
|
||||
height = 58
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*128)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*58)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 45
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 64
|
||||
#height = 64
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*64)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*64)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 40
|
||||
height = 22
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*40)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*22)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 20
|
||||
height = 11
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*20)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*11)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 16
|
||||
#height = 16
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*16)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*16)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 10
|
||||
height = 5
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*10)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*5)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 5
|
||||
height = 2
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*5)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*2)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 4
|
||||
#height = 4
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*4)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*4)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 2
|
||||
height = 1
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*2)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*1)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1
|
||||
#height = 1
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1)?>
|
||||
|
62
Source/MinecraftStory/rules.txt
Normal file
62
Source/MinecraftStory/rules.txt
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
|
||||
[Definition]
|
||||
titleIds = 00050000101E0100,000500001020A200,000500001020A300
|
||||
name = "Minecraft: Story Mode - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1024
|
||||
#height = 1024
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1022
|
||||
#height = 1022
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1022)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1022)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 45
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
@ -0,0 +1,199 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
// shader 50e29e8929cea348
|
||||
//AA fix PS
|
||||
const float resScale = <?=$scaleFactorX?>;
|
||||
//old contrasty, or just copy paste clarity
|
||||
const float gamma = 0.95; // 1.0 is neutral
|
||||
const float exposure = 1.05; // 1.0 is neutral, first lessen to avoid truncation prob around .25 for radeon.
|
||||
const float vibrance = 0.2175; // 0.0 is neutral
|
||||
const float crushContrast = 0.000; // 0.0 is neutral. loss of shadow detail
|
||||
const float postExposure = 1.16; // 1.0 is neutral, then slightly raise exposure back up.
|
||||
|
||||
vec3 contrasty(vec3 colour) {
|
||||
vec3 fColour = (colour.xyz);
|
||||
|
||||
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;
|
||||
float mn = min(min(fColour.r, fColour.g), fColour.b);
|
||||
float mx = max(max(fColour.r, fColour.g), fColour.b);
|
||||
float sat = (1.0 - (mx - mn)) * (1.0 - mx) * luminance * 5.0;
|
||||
vec3 lightness = vec3((mn + mx) / 2.0);
|
||||
// vibrance
|
||||
fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat);
|
||||
fColour = max(vec3(0.0), fColour - vec3(crushContrast));
|
||||
return fColour;
|
||||
}
|
||||
|
||||
uniform ivec4 uf_remappedPS[3];
|
||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4240800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
||||
layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf45c5000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1
|
||||
layout(location = 0) in vec4 passParameterSem1;
|
||||
layout(location = 0) out vec4 passPixelColor0;
|
||||
uniform vec2 uf_fragCoordScale;
|
||||
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 R125f = 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;
|
||||
bool activeMaskStack[2];
|
||||
bool activeMaskStackC[3];
|
||||
activeMaskStack[0] = false;
|
||||
activeMaskStackC[0] = false;
|
||||
activeMaskStackC[1] = false;
|
||||
activeMaskStack[0] = true;
|
||||
activeMaskStackC[0] = true;
|
||||
activeMaskStackC[1] = true;
|
||||
vec3 cubeMapSTM;
|
||||
int cubeMapFaceId;
|
||||
R0f = passParameterSem1;
|
||||
if( activeMaskStackC[1] == true ) {
|
||||
R1f.xyzw = (textureGather(textureUnitPS1, R0f.xy).xyzw);
|
||||
R2f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
||||
}
|
||||
if( activeMaskStackC[1] == true ) {
|
||||
activeMaskStack[1] = activeMaskStack[0];
|
||||
activeMaskStackC[2] = activeMaskStackC[1];
|
||||
// 0
|
||||
PV0f.x = R1f.z + R1f.w;
|
||||
PV0f.y = R1f.y + -(R1f.w);
|
||||
PV0f.z = R1f.x + -(R1f.z);
|
||||
R127f.w = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedPS[0].x));
|
||||
R126f.w = min(R1f.z, R1f.w);
|
||||
PS0f = R126f.w;
|
||||
// 1
|
||||
R126f.x = PV0f.z + PV0f.y;
|
||||
PV1f.x = R126f.x;
|
||||
PV1f.y = R1f.x + PV0f.x;
|
||||
R127f.z = min(R1f.x, R1f.y);
|
||||
R125f.w = PV0f.z + -(PV0f.y);
|
||||
PV1f.w = R125f.w;
|
||||
R127f.y = max(R1f.z, R1f.w);
|
||||
PS1f = R127f.y;
|
||||
// 2
|
||||
PV0f.x = R1f.y + PV1f.y;
|
||||
PV0f.y = max(PV1f.w, -(PV1f.w));
|
||||
PV0f.z = max(PV1f.x, -(PV1f.x));
|
||||
PV0f.w = max(R1f.x, R1f.y);
|
||||
R127f.x = (mul_nonIEEE(R2f.y,intBitsToFloat(uf_remappedPS[0].y)) + R127f.w);
|
||||
PS0f = R127f.x;
|
||||
// 3
|
||||
PV1f.x = min(PV0f.z, PV0f.y);
|
||||
PV1f.y = min(R126f.w, R127f.z);
|
||||
PV1f.z = max(R127f.y, PV0f.w);
|
||||
R123f.w = (PV0f.x * intBitsToFloat(0x3d000000) + intBitsToFloat(0x3b800000));
|
||||
PV1f.w = R123f.w;
|
||||
// 4
|
||||
PV0f.x = min(R127f.x, PV1f.y);
|
||||
PV0f.y = max(R127f.x, PV1f.z);
|
||||
PV0f.w = max(PV1f.w, PV1f.x);
|
||||
// 5
|
||||
R0f.z = -(PV0f.x) + PV0f.y;
|
||||
PS1f = 1.0 / PV0f.w;
|
||||
// 6
|
||||
PV0f.x = R125f.w * PS1f;
|
||||
PV0f.y = R126f.x * PS1f;
|
||||
// 7
|
||||
PV1f.z = max(PV0f.x, intBitsToFloat(0xc0400000));
|
||||
PV1f.w = max(PV0f.y, intBitsToFloat(0xc0400000));
|
||||
// 8
|
||||
R1f.x = min(PV1f.w, intBitsToFloat(0x40400000));
|
||||
R1f.y = min(PV1f.z, intBitsToFloat(0x40400000));
|
||||
// 9
|
||||
predResult = (R0f.z > intBitsToFloat(uf_remappedPS[1].y));
|
||||
activeMaskStack[1] = predResult;
|
||||
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
|
||||
}
|
||||
else {
|
||||
activeMaskStack[1] = false;
|
||||
activeMaskStackC[2] = false;
|
||||
}
|
||||
if( activeMaskStackC[2] == true ) {
|
||||
// 0
|
||||
R3f.x = (mul_nonIEEE(R1f.x,-(intBitsToFloat(uf_remappedPS[2].z)/ resScale)) + R0f.x);
|
||||
R3f.y = (mul_nonIEEE(R1f.y,-(intBitsToFloat(uf_remappedPS[2].w)/ resScale)) + R0f.y);
|
||||
R0f.z = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[2].x)/ resScale) + R0f.x);
|
||||
R0f.w = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[2].y)/ resScale) + R0f.y);
|
||||
R3f.z = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[2].z)/ resScale) + R0f.x);
|
||||
PS0f = R3f.z;
|
||||
// 1
|
||||
R4f.x = (mul_nonIEEE(R1f.x,-(intBitsToFloat(uf_remappedPS[2].x)/ resScale)) + R0f.x);
|
||||
R4f.y = (mul_nonIEEE(R1f.y,-(intBitsToFloat(uf_remappedPS[2].y)/ resScale)) + R0f.y);
|
||||
R3f.w = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[2].w)/ resScale) + R0f.y);
|
||||
}
|
||||
if( activeMaskStackC[2] == true ) {
|
||||
R1f.xyzw = (texture(textureUnitPS0, R0f.zw).xyzw);
|
||||
R0f.xyzw = (texture(textureUnitPS0, R3f.zw).xyzw);
|
||||
R3f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw);
|
||||
R2f.xyzw = (texture(textureUnitPS0, R4f.xy).xyzw);
|
||||
}
|
||||
if( activeMaskStackC[2] == true ) {
|
||||
// 0
|
||||
R127f.x = R0f.w + R1f.w;
|
||||
R127f.x /= 2.0;
|
||||
R127f.y = R0f.z + R1f.z;
|
||||
R127f.y /= 2.0;
|
||||
R127f.z = R0f.y + R1f.y;
|
||||
R127f.z /= 2.0;
|
||||
R127f.w = R0f.x + R1f.x;
|
||||
R127f.w /= 2.0;
|
||||
// 1
|
||||
PV1f.x = R2f.w + R3f.w;
|
||||
PV1f.x /= 2.0;
|
||||
PV1f.y = R2f.z + R3f.z;
|
||||
PV1f.y /= 2.0;
|
||||
PV1f.z = R2f.y + R3f.y;
|
||||
PV1f.z /= 2.0;
|
||||
PV1f.w = R2f.x + R3f.x;
|
||||
PV1f.w /= 2.0;
|
||||
// 2
|
||||
R2f.x = R127f.w + PV1f.w;
|
||||
R2f.x /= 2.0;
|
||||
R2f.y = R127f.z + PV1f.z;
|
||||
R2f.y /= 2.0;
|
||||
R2f.z = R127f.y + PV1f.y;
|
||||
R2f.z /= 2.0;
|
||||
R2f.w = R127f.x + PV1f.x;
|
||||
R2f.w /= 2.0;
|
||||
}
|
||||
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
|
||||
// export
|
||||
|
||||
|
||||
passPixelColor0 = vec4(contrasty(R2f.xyz), R2f.w);
|
||||
//passPixelColor0 = vec4(R2f.xyz, R2f.w);
|
||||
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader 70b82af4d17024d2
|
||||
//AA fix
|
||||
const float resScale = <?=$scaleFactorX?>;
|
||||
uniform ivec4 uf_remappedVS[1];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 0) out vec4 passParameterSem1;
|
||||
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 R1f = vec4(0.0);
|
||||
vec4 R2f = vec4(0.0);
|
||||
vec4 R122f = vec4(0.0);
|
||||
vec4 R123f = 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;
|
||||
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 = attrDataSem1.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
|
||||
backupReg0f = R1f.x;
|
||||
backupReg1f = R1f.y;
|
||||
R1f.x = backupReg0f;
|
||||
R1f.x *= 2.0;
|
||||
R1f.y = backupReg1f;
|
||||
R1f.y *= 2.0;
|
||||
R1f.z = 0.0;
|
||||
R1f.w = 1.0;
|
||||
R122f.x = (-(intBitsToFloat(uf_remappedVS[0].x)/ resScale) * intBitsToFloat(0x3f266666) + R2f.x);
|
||||
PS0f = R122f.x;
|
||||
// 1
|
||||
R123f.x = (-(intBitsToFloat(uf_remappedVS[0].y)/ resScale) * intBitsToFloat(0x3f266666) + R2f.y);
|
||||
PV1f.x = R123f.x;
|
||||
R2f.z = PS0f;
|
||||
// 2
|
||||
R2f.w = PV1f.x;
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// 0
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
// shader 8d638f35cebd14dc
|
||||
//banding fix
|
||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x48ab0000 res 8x256x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 0 border: 0
|
||||
layout(location = 0) in vec4 passParameterSem0;
|
||||
layout(location = 1) in vec4 passParameterSem1;
|
||||
layout(location = 2) in vec4 passParameterSem2;
|
||||
layout(location = 3) in vec4 passParameterSem3;
|
||||
layout(location = 0) out vec4 passPixelColor0;
|
||||
layout(location = 1) out vec4 passPixelColor1;
|
||||
highp float lineRand(vec2 co)
|
||||
{
|
||||
highp float a = 12.9898;
|
||||
highp float b = 78.233;
|
||||
highp float c = 43758.5453;
|
||||
highp float dt = dot(co.xy, vec2(a, b));
|
||||
highp float sn = mod(dt, 3.14);
|
||||
return fract(sin(sn) * c);
|
||||
}
|
||||
uniform vec2 uf_fragCoordScale;
|
||||
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 R123f = 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 = passParameterSem3;
|
||||
R3f.xy = R3f.xy - (lineRand(gl_FragCoord.xy)*0.0075);
|
||||
R3f.xyz = (texture(textureUnitPS0, R3f.xy).xyz);
|
||||
// 0
|
||||
R123f.x = (mul_nonIEEE(R0f.z,R3f.z) + 0.0);
|
||||
PV0f.x = R123f.x;
|
||||
R123f.y = (mul_nonIEEE(R0f.y,R3f.y) + 0.0);
|
||||
PV0f.y = R123f.y;
|
||||
R123f.z = (mul_nonIEEE(R0f.x,R3f.x) + 0.0);
|
||||
PV0f.z = R123f.z;
|
||||
R3f.w = R0f.w + 0.0;
|
||||
R3f.w = clamp(R3f.w, 0.0, 1.0);
|
||||
R0f.w = 1.0;
|
||||
PS0f = R0f.w;
|
||||
// 1
|
||||
PV1f.x = R2f.z * R2f.z;
|
||||
R127f.y = PV0f.x + 0.0;
|
||||
R127f.y = clamp(R127f.y, 0.0, 1.0);
|
||||
R127f.z = PV0f.y + 0.0;
|
||||
R127f.z = clamp(R127f.z, 0.0, 1.0);
|
||||
R127f.w = PV0f.z + 0.0;
|
||||
R127f.w = clamp(R127f.w, 0.0, 1.0);
|
||||
PV1f.w = R127f.w;
|
||||
// 2
|
||||
tempf.x = dot(vec4(R2f.x,R2f.y,PV1f.x,-0.0),vec4(R2f.x,R2f.y,1.0,0.0));
|
||||
PV0f.x = tempf.x;
|
||||
PV0f.y = tempf.x;
|
||||
PV0f.z = tempf.x;
|
||||
PV0f.w = tempf.x;
|
||||
PS0f = R1f.x + -(PV1f.w);
|
||||
// 3
|
||||
R3f.x = (mul_nonIEEE(PS0f,R1f.w) + R127f.w);
|
||||
PV1f.z = R1f.z + -(R127f.y);
|
||||
PV1f.w = R1f.y + -(R127f.z);
|
||||
tempResultf = 1.0 / sqrt(PV0f.x);
|
||||
R127f.x = tempResultf;
|
||||
R127f.x /= 2.0;
|
||||
PS1f = R127f.x;
|
||||
// 4
|
||||
R0f.x = (mul_nonIEEE(R2f.x,PS1f) + 0.5);
|
||||
R3f.y = (mul_nonIEEE(PV1f.w,R1f.w) + R127f.z);
|
||||
R3f.z = (mul_nonIEEE(PV1f.z,R1f.w) + R127f.y);
|
||||
R0f.y = (mul_nonIEEE(R2f.y,PS1f) + 0.5);
|
||||
PS0f = R0f.y;
|
||||
// 5
|
||||
R0f.z = (mul_nonIEEE(R2f.z,R127f.x) + 0.5);
|
||||
PV1f.z = R0f.z;
|
||||
// 6
|
||||
R1f.xyz = vec3(R0f.x,R0f.y,PV1f.z);
|
||||
R1f.w = R0f.w;
|
||||
// 7
|
||||
R0f.xyz = vec3(R3f.x,R3f.y,R3f.z);
|
||||
R0f.w = R3f.w;
|
||||
// export
|
||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
||||
passPixelColor1 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = always_decimal_format($fullWidth / 1280.0);
|
||||
$scaleFactorY = always_decimal_format($fullHeight / 720.0);
|
||||
?>
|
||||
|
||||
#version 420
|
||||
#extension GL_ARB_texture_gather : enable
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_packing : enable
|
||||
// shader ec4a85d51e778437
|
||||
//box blur fix
|
||||
const float resScale = <?=$scaleFactorX?>;
|
||||
uniform ivec4 uf_remappedVS[1];
|
||||
uniform vec2 uf_windowSpaceToClipSpaceTransform;
|
||||
layout(location = 0) in uvec4 attrDataSem0;
|
||||
layout(location = 1) in uvec4 attrDataSem1;
|
||||
out gl_PerVertex
|
||||
{
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
layout(location = 0) out vec4 passParameterSem3;
|
||||
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);
|
||||
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 = attrDataSem1.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
|
||||
backupReg0f = R1f.x;
|
||||
backupReg1f = R1f.y;
|
||||
R1f.x = backupReg0f;
|
||||
R1f.x *= 2.0;
|
||||
R1f.y = backupReg1f;
|
||||
R1f.y *= 2.0;
|
||||
R1f.z = intBitsToFloat(0xbf800000);
|
||||
R1f.w = 1.0;
|
||||
PS0f = R2f.x + -(intBitsToFloat(uf_remappedVS[0].x) / resScale);
|
||||
// 1
|
||||
backupReg0f = R2f.y;
|
||||
backupReg1f = R2f.x;
|
||||
PV1f.x = R2f.y + -(intBitsToFloat(uf_remappedVS[0].y) / resScale);
|
||||
R2f.y = backupReg0f + intBitsToFloat(uf_remappedVS[0].y)/resScale;
|
||||
R2f.z = PS0f;
|
||||
R2f.x = backupReg1f + intBitsToFloat(uf_remappedVS[0].x)/ resScale;
|
||||
PS1f = R2f.x;
|
||||
// 2
|
||||
R2f.w = PV1f.x;
|
||||
// export
|
||||
gl_Position = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
|
||||
// export
|
||||
passParameterSem3 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||
// 0
|
||||
}
|
@ -6,39 +6,68 @@ $scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
|
||||
[Definition]
|
||||
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
||||
name = "New Super Mario Bros. U - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine] # tv
|
||||
[TextureRedefine] # increase colour depth, slower but less banding
|
||||
formats = 0x820
|
||||
overwriteFormat = 0x823
|
||||
|
||||
[TextureRedefine] #
|
||||
formats = 0x816
|
||||
overwriteFormat = 0x820
|
||||
|
||||
##tilemap don't scale
|
||||
#width = 2048
|
||||
#height = 512
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine] # AA pass, shadows viewport
|
||||
width = 640
|
||||
height = 360
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine] #
|
||||
width = 320
|
||||
height = 180
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
##Textures
|
||||
[TextureRedefine] # Dynamic shadows texture 3d overworld
|
||||
width = 1024
|
||||
height = 1024
|
||||
formats = 0x005 #0x034 static shadow texture, don't scale
|
||||
overwriteWidth = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
[TextureRedefine] #map shadows
|
||||
width = 1024
|
||||
height = 1024
|
||||
formats = 0x005
|
||||
overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
[TextureRedefine] # gamepad
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*854)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*480)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
## Gradient don't scale
|
||||
#width = 48
|
||||
#height = 48
|
||||
|
||||
|
91
Source/RiseOfLyric/rules.txt
Normal file
91
Source/RiseOfLyric/rules.txt
Normal file
@ -0,0 +1,91 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
|
||||
[Definition]
|
||||
titleIds = 0005000010175B00,0005000010177800,0005000010191F00
|
||||
name = "Sonic Boom: Rise of Lyric - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
tileModesExcluded = 0x1
|
||||
formatsExcluded = 0x31
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
tileModesExcluded = 0x1
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 256
|
||||
#height = 256
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*256)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 45
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 64
|
||||
#height = 64
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*64)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*64)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 16
|
||||
#height = 16
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*16)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*16)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 4
|
||||
#height = 4
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*4)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*4)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1
|
||||
#height = 1
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1)?>
|
@ -21,7 +21,7 @@ overwriteHeight = <?=round($scaleFactorY*1080)?>
|
||||
width = 1600
|
||||
height = 960
|
||||
overwriteWidth = <?=round($scaleFactorX*1600)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*1960)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*960)?>
|
||||
|
||||
[TextureRedefine] # gamepad
|
||||
width = 854
|
||||
|
@ -24,12 +24,24 @@ height = 540
|
||||
overwriteWidth = <?=round($scaleFactorX*960)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*540)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 960
|
||||
height = 360
|
||||
overwriteWidth = <?=round($scaleFactorX*960)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine] # q-res
|
||||
width = 480
|
||||
height = 270
|
||||
overwriteWidth = <?=round($scaleFactorX*480)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*270)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 480
|
||||
height = 180
|
||||
overwriteWidth = <?=round($scaleFactorX*480)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine] # o-res
|
||||
width = 240
|
||||
height = 135
|
||||
@ -78,6 +90,24 @@ height = 210
|
||||
overwriteWidth = <?=round($scaleFactorX*420)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*210)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 249
|
||||
height = 250
|
||||
overwriteWidth = <?=round($scaleFactorX*249)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*250)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 160
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*160)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 135
|
||||
height = 135
|
||||
overwriteWidth = <?=round($scaleFactorX*135)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*135)?>
|
||||
|
||||
[TextureRedefine] # gamepad
|
||||
width = 854
|
||||
height = 480
|
||||
|
132
Source/TokyoMirage/rules.txt
Normal file
132
Source/TokyoMirage/rules.txt
Normal file
@ -0,0 +1,132 @@
|
||||
<?php
|
||||
include 'Source/functions.php';
|
||||
$fullWidth = $argv[1];
|
||||
$fullHeight = $argv[2];
|
||||
$scaleFactorX = $fullWidth / 1280.0;
|
||||
$scaleFactorY = $fullHeight / 720.0;
|
||||
$title = get_title($fullWidth, $fullHeight);
|
||||
?>
|
||||
|
||||
[Definition]
|
||||
titleIds = 00050000101ED700,00050000101ED800,0005000010131D00
|
||||
name = "Tokyo Mirage Sessions FE - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 720
|
||||
tileModesExcluded = 0x001
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 340
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*340)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1147
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1147)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1024
|
||||
height = 2048
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*2048)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 1024
|
||||
#height = 1024
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*1024)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1024)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1014
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1014)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 881
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*881)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 854
|
||||
height = 342
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*854)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*342)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 853
|
||||
height = 232
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*853)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*232)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 720
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 360
|
||||
tileModesExcluded = 0x001
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 320
|
||||
height = 180
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 300
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*300)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*480)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 266
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*266)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*480)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 254
|
||||
height = 480
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*254)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*480)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 120
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*120)?>
|
@ -24,18 +24,95 @@ formatsExcluded = 0x31,0x1a
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*720)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 1280
|
||||
height = 504
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*1280)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*504)?>
|
||||
|
||||
[TextureRedefine] # tv half
|
||||
width = 640
|
||||
height = 360
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*360)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 640
|
||||
height = 252
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*640)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*252)?>
|
||||
|
||||
[TextureRedefine] # tv quarter
|
||||
width = 320
|
||||
height = 180
|
||||
overwriteWidth = <?=round($scaleFactorX*320)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*180)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 256
|
||||
#height = 256
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*256)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*256)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 160
|
||||
height = 90
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*160)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*90)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 106
|
||||
height = 60
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*106)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*60)?>
|
||||
|
||||
[TextureRedefine]
|
||||
width = 80
|
||||
height = 45
|
||||
#formatsExcluded =
|
||||
overwriteWidth = <?=round($scaleFactorX*80)?>
|
||||
overwriteHeight = <?=round($scaleFactorY*45)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 48
|
||||
#height = 48
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*48)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*48)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 32
|
||||
#height = 32
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*32)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*32)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 24
|
||||
#height = 24
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*24)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*24)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 16
|
||||
#height = 16
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*16)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*16)?>
|
||||
|
||||
#[TextureRedefine] #May unintentionally scale textures, check formatsExcluded
|
||||
#width = 8
|
||||
#height = 8
|
||||
#formatsExcluded =
|
||||
#overwriteWidth = <?=round($scaleFactorX*8)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*8)?>
|
||||
|
||||
[TextureRedefine] # gamepad full
|
||||
width = 854
|
||||
height = 480
|
||||
@ -54,126 +131,3 @@ width = 2176
|
||||
height = 1248
|
||||
#overwriteWidth = <?=round($scaleFactorX*2176)?>
|
||||
#overwriteHeight = <?=round($scaleFactorY*1248)?>
|
||||
|
||||
#The following texture resolutions need to be checked in Nsight or PerfStudio
|
||||
|
||||
#Daily Log
|
||||
#0, 0, 32, 32
|
||||
#0, 0, 16, 16
|
||||
#0, 0, 8, 8
|
||||
#0, 0, 48, 48
|
||||
#0, 0, 24, 24
|
||||
|
||||
#Internet Browser
|
||||
#0, 0, 128, 128
|
||||
#0, 0, 64, 128
|
||||
#0, 0, 256, 256
|
||||
#0, 0, 128, 256
|
||||
#0, 0, 2176, 1248
|
||||
#121, 107, 1038, 544
|
||||
#81, 72, 692, 362
|
||||
#114, 104, 1052, 551
|
||||
#77, 69, 700, 368
|
||||
#105, 99, 1070, 562
|
||||
#70, 66, 714, 374
|
||||
#94, 94, 1092, 573
|
||||
#63, 63, 728, 381
|
||||
#83, 88, 1114, 585
|
||||
#55, 59, 744, 390
|
||||
#70, 82, 1140, 598
|
||||
#47, 55, 760, 399
|
||||
#57, 76, 1166, 612
|
||||
#38, 51, 778, 407
|
||||
#45, 70, 1190, 625
|
||||
#30, 47, 794, 416
|
||||
#33, 64, 1214, 637
|
||||
#22, 43, 810, 425
|
||||
#22, 59, 1236, 648
|
||||
#15, 39, 824, 433
|
||||
#13, 54, 1254, 659
|
||||
#9, 36, 836, 439
|
||||
#6, 51, 1268, 666
|
||||
#4, 34, 846, 444
|
||||
#1, 49, 1278, 670
|
||||
#1, 33, 852, 446
|
||||
#0, 48, 1280, 672
|
||||
#0, 32, 854, 448
|
||||
#0, 47, 1280, 673
|
||||
#0, 31, 854, 449
|
||||
#0, 45, 1280, 675
|
||||
#0, 30, 854, 450
|
||||
#0, 42, 1280, 678
|
||||
#0, 28, 854, 452
|
||||
#0, 37, 1280, 683
|
||||
#0, 25, 854, 455
|
||||
#0, 32, 1280, 688
|
||||
#0, 21, 854, 459
|
||||
#0, 26, 1280, 694
|
||||
#0, 17, 854, 463
|
||||
#0, 20, 1280, 700
|
||||
#0, 13, 854, 467
|
||||
#0, 14, 1280, 706
|
||||
#0, 9, 854, 471
|
||||
#0, 8, 1280, 712
|
||||
#0, 5, 854, 475
|
||||
#0, 2, 1280, 718
|
||||
#0, 1, 854, 479
|
||||
#0, 0, 170, 256
|
||||
#0, 0, 256, 120
|
||||
#0, 0, 170, 120
|
||||
#0, 0, 424, 376
|
||||
|
||||
#Mii Maker
|
||||
#0, 0, 650, 366
|
||||
#0, 0, 256, 256
|
||||
#0, 0, 64, 64
|
||||
#0, 0, 128, 256
|
||||
#0, 0, 32, 64
|
||||
#0, 0, 128, 128
|
||||
#0, 0, 460, 460
|
||||
#0, 0, 230, 460
|
||||
|
||||
#Nintendo eShop
|
||||
#265, 170, 750, 381
|
||||
#177, 113, 500, 254
|
||||
#235, 134, 750, 381
|
||||
#157, 89, 500, 254
|
||||
#234, 133, 751, 382
|
||||
#234, 133, 752, 382
|
||||
#156, 89, 502, 254
|
||||
#233, 133, 753, 382
|
||||
#156, 88, 502, 255
|
||||
#233, 132, 754, 383
|
||||
#155, 88, 503, 256
|
||||
#232, 132, 756, 384
|
||||
#155, 88, 504, 256
|
||||
|
||||
#Parental Controls
|
||||
#0, 0, 32, 32
|
||||
#0, 0, 16, 16
|
||||
#0, 0, 8, 8
|
||||
#0, 0, 48, 48
|
||||
#0, 0, 24, 24
|
||||
#0, 0, 213, 120
|
||||
|
||||
#System Settings
|
||||
#0, 0, 32, 32
|
||||
#0, 0, 16, 16
|
||||
#0, 0, 8, 8
|
||||
#0, 0, 48, 48
|
||||
#0, 0, 24, 24
|
||||
#0, 0, 213, 120
|
||||
|
||||
#System Transfer (Crashes)
|
||||
#0, 0, 256, 256
|
||||
#0, 0, 128, 256
|
||||
#0, 0, 128, 128
|
||||
#0, 0, 48, 48
|
||||
|
||||
#User Settings
|
||||
#0, 0, 48, 48
|
||||
#0, 0, 24, 24
|
||||
#0, 0, 32, 32
|
||||
#0, 0, 16, 16
|
||||
#0, 0, 8, 8
|
||||
#0, 0, 213, 120
|
@ -12,25 +12,41 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||
name = "Xenoblade Chronicles X - <?=$title?>"
|
||||
version = 2
|
||||
|
||||
[TextureRedefine] # increase colour depth
|
||||
formats = 0x01a,0x008
|
||||
replaceFormat 0x01f
|
||||
[TextureRedefine] # increase colour depth, slower but less banding
|
||||
formats = 0x816
|
||||
overwriteFormat = 0x820
|
||||
|
||||
[TextureRedefine] # increase colour depth
|
||||
formats = 0x816,0x820
|
||||
replaceFormat 0x823
|
||||
[TextureRedefine] #
|
||||
formats = 0x810
|
||||
overwriteFormat = 0x81e
|
||||
|
||||
[TextureRedefine] # increase colour depth
|
||||
formats = 0x810
|
||||
replaceFormat 0x81e
|
||||
[TextureRedefine] #
|
||||
formats = 0x806
|
||||
overwriteFormat = 0x80e
|
||||
|
||||
[TextureRedefine] # increase colour depth
|
||||
formats = 0x806
|
||||
replaceFormat 0x80e
|
||||
[TextureRedefine] #
|
||||
formats = 0x007
|
||||
overwriteFormat = 0x00f
|
||||
|
||||
[TextureRedefine] # increase colour depth
|
||||
formats = 0x007
|
||||
replaceFormat 0x00f
|
||||
formats = 0x19,0x1a
|
||||
overwriteFormat = 0x1f
|
||||
tileModesExcluded = 0x001
|
||||
|
||||
[TextureRedefine] #
|
||||
width = 320
|
||||
height = 180
|
||||
formats = 0x19
|
||||
overwriteFormat = 0x823
|
||||
|
||||
[TextureRedefine] #
|
||||
width = 320
|
||||
height = 180
|
||||
formats = 0x1a
|
||||
overwriteFormat = 0x823
|
||||
|
||||
#[TextureRedefine] #lod override, shimmer and possible sharper textures
|
||||
#formats = 0x31,0x32,0x33,0x34,0x35,0x431,0x432,0x433,0x434,0x435
|
||||
#overwriteRelativeLodBias = -1 # don't reccomend more than -1
|
||||
|
||||
[TextureRedefine] # tv
|
||||
width = 1280
|
||||
|
@ -293,4 +293,37 @@ _lwzCheck = 0x00000020 ; null checked version of 'lwz r8, 0(r31)'
|
||||
0x038E3BE4 = bla _lwzCheck
|
||||
|
||||
0x038E3C50 = bla _lwzxCheck
|
||||
0x038E3C5C = bla _lwzCheck
|
||||
0x038E3C5C = bla _lwzCheck
|
||||
|
||||
[BotwPlsNoCrashV208]
|
||||
moduleMatches = 0x6267BFD0
|
||||
#restore the 2 instructions possibly overwritten by cemu itself
|
||||
0x038E46CC = stwu r1, -0x28(r1)
|
||||
0x038E46D0 = mflr r0
|
||||
|
||||
#null check functions
|
||||
codeCaveSize = 0x40
|
||||
|
||||
_lwzxCheck = 0x00000000 ; null checked version of 'lwzx r31, r9, r0'
|
||||
0x00000000 = add r30, r9, r0
|
||||
0x00000004 = xor r31, r31, r31
|
||||
0x00000008 = cmpwi r30, 0
|
||||
0x0000000C = beq .+0x8
|
||||
0x00000010 = lwzx r31, r9, r0
|
||||
0x00000014 = blr
|
||||
|
||||
_lwzCheck = 0x00000020 ; null checked version of 'lwz r8, 0(r31)'
|
||||
0x00000020 = xor r8, r8, r8
|
||||
0x00000024 = oris r8, r8, 0xD15A
|
||||
0x00000028 = ori r8, r8, 0xB1ED
|
||||
0x0000002C = cmpwi r31, 0
|
||||
0x00000030 = beq .+0x8
|
||||
0x00000034 = lwz r8, 0(r31)
|
||||
0x00000038 = blr
|
||||
|
||||
#replace simple loads with calls to these funcs
|
||||
0x038E4874 = bla _lwzxCheck
|
||||
0x038E4880 = bla _lwzCheck
|
||||
|
||||
0x038E48EC = bla _lwzxCheck
|
||||
0x038E48F8 = bla _lwzCheck
|
@ -1,5 +1,5 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - 30FPS Lock"
|
||||
version = 2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - DLC Fix"
|
||||
version = 2
|
||||
|
@ -15,4 +15,4 @@ _nullViewport = 0x00000000
|
||||
0x0000001C = blr
|
||||
|
||||
# patch DoF call to ktgl::CCafeGraphicsDevice::GetViewport to use our nulling out function instead
|
||||
0x02878FAC = bl _nullViewport
|
||||
0x02878FAC = bla _nullViewport
|
||||
|
@ -1,4 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - DoF Blur Removal"
|
||||
version = 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - NVIDIA Enemy Death Fix"
|
||||
version = 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 000500001017D800,000500001017D900
|
||||
titleIds = 000500001017D800,000500001017D900,000500001017CD00
|
||||
name = "Hyrule Warriors - Shadow Removal"
|
||||
version = 2
|
||||
|
7
Workaround/WindWakerHD_FPSSlowdownFix/patches.txt
Normal file
7
Workaround/WindWakerHD_FPSSlowdownFix/patches.txt
Normal file
@ -0,0 +1,7 @@
|
||||
[WWHDEU] ;OliveOperationMgrThread found by BenjaminLSR
|
||||
moduleMatches = 0xB7E748DE
|
||||
0x025AC21C = nop; SUSPEND OliveOperationMgrThread
|
||||
|
||||
[WWHDUS] ;Ported to US by Slash
|
||||
moduleMatches = 0x475BD29F
|
||||
0x025AC25C = nop; SUSPEND OliveOperationMgrThread
|
4
Workaround/WindWakerHD_FPSSlowdownFix/rules.txt
Normal file
4
Workaround/WindWakerHD_FPSSlowdownFix/rules.txt
Normal file
@ -0,0 +1,4 @@
|
||||
[Definition]
|
||||
titleIds = 0005000010143500,0005000010143600
|
||||
name = "The Legend of Zelda: The Wind Waker HD - FPS Slowdown Fix"
|
||||
version = 2
|
@ -3,8 +3,6 @@ moduleMatches = 0xB7E748DE
|
||||
|
||||
_emptyString = 0x10166948
|
||||
|
||||
0x025AC21C = nop; SUSPEND OliveOperationMgrThread
|
||||
|
||||
;is_useSsaoDirectDraw
|
||||
0x0278EED8 = lis r0, _emptyString@ha
|
||||
0x0278EEE4 = addic r0, r0, _emptyString@l
|
||||
@ -14,8 +12,6 @@ moduleMatches = 0x475BD29F
|
||||
|
||||
_emptyString = 0x1016693C
|
||||
|
||||
0x025AC25C = nop; SUSPEND OliveOperationMgrThread
|
||||
|
||||
;is_useSsaoDirectDraw
|
||||
0x0278E618 = lis r0, _emptyString@ha
|
||||
0x0278E624 = addic r0, r0, _emptyString@l
|
||||
|
26
build.sh
26
build.sh
@ -108,6 +108,23 @@ std_respack () {
|
||||
done
|
||||
}
|
||||
|
||||
mod_onearg () {
|
||||
params=( "$@" )
|
||||
subparams=( "${params[@]:1}" )
|
||||
mod_folder="${params[0]}"
|
||||
|
||||
echo -e "${GREEN}[Building] ${BCYAN}$mod_folder ${NC}with arguments: ${subparams[@]}"
|
||||
for arrg in "${subparams[@]}"
|
||||
do
|
||||
inFolder="Source/$mod_folder"
|
||||
|
||||
outFolder="Modifications/${mod_folder}_${arrg}"
|
||||
|
||||
#echo "${arrg} inFolder: $inFolder outFolder: $outFolder"
|
||||
build_dir "$inFolder" "$outFolder" "$arrg"
|
||||
done
|
||||
}
|
||||
|
||||
res16by9=( "360p" "480p" "540p" "720p" "900p" "1080p" "1440p" "1800p" "2160p" "2880p" "4320p" "5760p" )
|
||||
res21by9=( "540p219" "720p219" "900p219" "1080p219" "1440p219" "1800p219" "2160p219" "2880p219" "4320p219" "5760p219" )
|
||||
res48by9=( "360p489" "480p489" "540p489" "720p489" "900p489" "1080p489" "1440p489" "1800p489" "2160p489" "2880p489" "4320p489" "5760p489" )
|
||||
@ -116,6 +133,7 @@ just1080p=( "1080p" )
|
||||
|
||||
std_respack "AdventureTimeEtDBIDK" "${res16by9[@]/$just1080p}"
|
||||
std_respack "AdventureTimeFJI" "${res16by9[@]/$just720p}"
|
||||
std_respack "AmiiboFestival" "${res16by9[@]/$just720p}"
|
||||
std_respack "AquaTV" "${res16by9[@]/$just720p}"
|
||||
std_respack "BatmanArkham" "${res16by9[@]/$just720p}"
|
||||
std_respack "Bayonetta" "${res16by9[@]/$just720p}"
|
||||
@ -147,8 +165,11 @@ std_respack "KirbyRainbowCurse" "${res16by9[@]/$just720p}"
|
||||
std_respack "KungFuPanda" "${res16by9[@]/$just720p}"
|
||||
std_respack "LEGOCityUndercover" "${res16by9[@]/$just720p}"
|
||||
std_respack "MarioKart8" "${res16by9[@]/$just720p}" "${res21by9[@]}" "${res48by9[@]}"
|
||||
std_respack "MarioSonicRio" "${res16by9[@]/$just720p}"
|
||||
std_respack "MarioSonicSochi" "${res16by9[@]/$just720p}"
|
||||
std_respack "MarioTennis" "${res16by9[@]/$just720p}"
|
||||
std_respack "MarioParty10" "${res16by9[@]/$just720p}"
|
||||
std_respack "MinecraftStory" "${res16by9[@]/$just720p}"
|
||||
std_respack "MonsterHunter3Ultimate" "${res16by9[@]/$just1080p}"
|
||||
std_respack "NBA2K13" "${res16by9[@]/$just720p}"
|
||||
std_respack "NewSuperMarioBrosU" "${res16by9[@]/$just720p}"
|
||||
@ -161,6 +182,7 @@ std_respack "Pikmin3" "${res16by9[@]/$just720p}"
|
||||
std_respack "PokkenTournament" "${res16by9[@]/$just720p}"
|
||||
std_respack "ProjectZero" "${res16by9[@]/$just720p}"
|
||||
std_respack "PuyoPuyoTetris" "${res16by9[@]/$just1080p}"
|
||||
std_respack "RiseOfLyric" "${res16by9[@]/$just720p}"
|
||||
std_respack "SanatoryHallways" "${res16by9[@]/$just720p}"
|
||||
std_respack "ScribblenautsUnlimited" "${res16by9[@]/$just720p}"
|
||||
std_respack "ScribblenautsUnmasked" "${res16by9[@]/$just720p}"
|
||||
@ -179,6 +201,7 @@ std_respack "TNTRacers" "${res16by9[@]/$just1080p}"
|
||||
std_respack "TaikoNoTatsujin" "${res16by9[@]/$just720p}"
|
||||
std_respack "Tekken" "${res16by9[@]/$just720p}"
|
||||
std_respack "Tengami" "${res16by9[@]/$just720p}"
|
||||
std_respack "TokyoMirage" "${res16by9[@]/$just720p}"
|
||||
std_respack "TropicalFreeze" "${res16by9[@]/$just720p}" "${res21by9[@]}" "${res48by9[@]}"
|
||||
std_respack "TurboSuperStuntSquad" "${res16by9[@]/$just720p}"
|
||||
std_respack "TwilightPrincessHD" "${res16by9[@]/$just1080p}"
|
||||
@ -190,4 +213,7 @@ std_respack "WipeoutCreate" "${res16by9[@]/$just720p}"
|
||||
std_respack "Wonderful101" "${res16by9[@]/$just720p}"
|
||||
std_respack "WoollyWorld" "${res16by9[@]/$just720p}" "${res21by9[@]}" "${res48by9[@]}"
|
||||
std_respack "XenobladeX" "${res16by9[@]/$just720p}" "${res21by9[@]}" "${res48by9[@]}"
|
||||
|
||||
mod_onearg "BreathOfTheWild_StaticFPS" 30 45 60
|
||||
|
||||
echo -e "${NC}"
|
||||
|
Loading…
Reference in New Issue
Block a user