10-17-2016, 06:16 AM
"xBRZ" is not a shader, but a cpu scaler which ppsspp uses for texture scaling, you can select it's scale in options, but it doesn't really have anything to do with shaders.
If you however ment to write "2xBR" then sure, it's pretty much a variant of 5xBR, added it as an option to my custom shader just now, if you want a separate 2xBR, just grab 5xBR from PPSSPP find and replace this line on the end:
with all of this code:
and it will turn into 2xBR, should look exactly same on lower display resolutions.
No idea what you mean by overlay shader, if by PNG you ment texture in-game - PPSSPP only supports simple "postprocessing" shaders, the only "texture" those sees is the output.
If you however ment to write "2xBR" then sure, it's pretty much a variant of 5xBR, added it as an option to my custom shader just now, if you want a separate 2xBR, just grab 5xBR from PPSSPP find and replace this line on the end:
Code:
vec3 res = nc.x ? px.x ? F : H : nc.y ? px.y ? B : F : nc.z ? px.z ? D : B : nc.w ? px.w ? H : D : E;Code:
vec3 E0 = E.xyz;
vec3 E1 = E.xyz;
vec3 E2 = E.xyz;
vec3 E3 = E.xyz;
vec3 P[4];
P[0] = px.x ? F : H;
P[1] = px.y ? B : F;
P[2] = px.z ? D : B;
P[3] = px.w ? H : D;
if (edr.x) {
if (edr_left.x && edr_up.x) {
E3 = mix(E3 , P[0], 0.833333);
E2 = mix(E2 , P[0], 0.25);
E1 = mix(E1 , P[0], 0.25);
} else if (edr_left.x) {
E3 = mix(E3 , P[0], 0.75);
E2 = mix(E2 , P[0], 0.25);
} else if (edr_up.x) {
E3 = mix(E3 , P[0], 0.75);
E1 = mix(E1 , P[0], 0.25);
} else {
E3 = mix(E3 , P[0], 0.5);
}
}
if (edr.y) {
if (edr_left.y && edr_up.y) {
E1 = mix(E1 , P[1], 0.833333);
E3 = mix(E3 , P[1], 0.25);
E0 = mix(E0 , P[1], 0.25);
} else if (edr_left.y) {
E1 = mix(E1 , P[1], 0.75);
E3 = mix(E3 , P[1], 0.25);
} else if (edr_up.y) {
E1 = mix(E1 , P[1], 0.75);
E0 = mix(E0 , P[1], 0.25);
} else {
E1 = mix(E1 , P[1], 0.5);
}
}
if (edr.z) {
if (edr_left.z && edr_up.z) {
E0 = mix(E0 , P[2], 0.833333);
E1 = mix(E1 , P[2], 0.25);
E2 = mix(E2 , P[2], 0.25);
} else if (edr_left.z) {
E0 = mix(E0 , P[2], 0.75);
E1 = mix(E1 , P[2], 0.25);
} else if (edr_up.z) {
E0 = mix(E0 , P[2], 0.75);
E2 = mix(E2 , P[2], 0.25);
} else {
E0 = mix(E0 , P[2], 0.5);
}
}
if (edr.w) {
if (edr_left.w && edr_up.w) {
E2 = mix(E2 , P[3], 0.833333);
E0 = mix(E0 , P[3], 0.25);
E3 = mix(E3 , P[3], 0.25);
} else if (edr_left.w) {
E2 = mix(E2 , P[3], 0.75);
E0 = mix(E0 , P[3], 0.25);
} else if (edr_up.w) {
E2 = mix(E2 , P[3], 0.75);
E3 = mix(E3 , P[3], 0.25);
} else {
E2 = mix(E2 , P[3], 0.5);
}
}
vec3 res = (fp.x < 0.50) ? (fp.y < 0.50 ? E0 : E2) : (fp.y < 0.50 ? E1: E3);No idea what you mean by overlay shader, if by PNG you ment texture in-game - PPSSPP only supports simple "postprocessing" shaders, the only "texture" those sees is the output.
http://forums.ppsspp.org/showthread.php?tid=6594 - Custom PPSSPP Shaders!
http://forums.ppsspp.org/showthread.php?tid=3590&pid=117172#pid117172 - simple CE scripts to help creating CWCheats,
https://github.com/LunaMoo/PPSSPP_workarounds - CWCheat workarounds.
http://forums.ppsspp.org/showthread.php?tid=3590&pid=117172#pid117172 - simple CE scripts to help creating CWCheats,
https://github.com/LunaMoo/PPSSPP_workarounds - CWCheat workarounds.

