2011-12-16

Dolphin GLSL-master Git 3.0-260

EmuCR:DolphinDolphin GLSL-master Git 3.0-260 is released. Dolphin GLSL-master is a branch of Dolphin. Dolphin is the first Gamecube emulator able to run commercial games! Dolphin is a great Gamecube(NGC) and Wii emulator. It has a partial Wii support and plays most Gamecube games. Dolphin has been changed SVN to Git recently.

Dolphin GLSL-master Git changelog:
* Make sure not to try and bind UBO locations when it isn't supported

Download: Dolphin GLSL-master Git 3.0-260 x86
Download: Dolphin GLSL-master Git 3.0-260 x64
Source: Here

3 Comments:

  1. Even a little speed gain, but more speed, please.
    Certains games can run at fullspeed with a little optimization, we just talk 5 or 10 FPS, not a 50% boost...

    ReplyDelete
  2. //Pixel Shader for TEV stages
    //4 TEV stages, 2 texgens, XXX IND stages
    uniform sampler2D samp0 : register(s0), samp1 : register(s1), samp2 : register(s2), samp3 : register(s3), samp4 : register(s4), samp5 : register(s5), samp6 : register(s6), samp7 : register(s7);

    uniform float4 color[4] : register(c0);
    uniform float4 k[4] : register(c4);
    uniform float4 alphaRef[1] : register(c8);
    uniform float4 texdim[8] : register(c9);
    uniform float4 czbias[2] : register(c17);
    uniform float4 cindscale[2] : register(c19);
    uniform float4 cindmtx[6] : register(c21);
    uniform float4 cfog[3] : register(c27);
    uniform float4 cPLights[40] : register(c30);
    uniform float4 cPmtrl[4] : register(c70);
    void main(
    out float4 ocol0 : COLOR0,
    in float4 rawpos : VPOS,
    in float4 colors_0 : COLOR0,
    in float4 colors_1 : COLOR1,
    in float3 uv0 : TEXCOORD0,
    in float3 uv1 : TEXCOORD1,
    in float4 clipPos : TEXCOORD2 ) {
    float4 c0 = color[1], c1 = color[2], c2 = color[3], prev = float4(0.0f, 0.0f, 0.0f, 0.0f), textemp = float4(0.0f, 0.0f, 0.0f, 0.0f), rastemp = float4(0.0f, 0.0f, 0.0f, 0.0f), konsttemp = float4(0.0f, 0.0f, 0.0f, 0.0f);
    float3 comp16 = float3(1.0f, 255.0f, 0.0f), comp24 = float3(1.0f, 255.0f, 255.0f*255.0f);
    float4 alphabump=float4(0.0f,0.0f,0.0f,0.0f);
    float3 tevcoord=float3(0.0f, 0.0f, 0.0f);
    float2 wrappedcoord=float2(0.0f,0.0f), tempcoord=float2(0.0f,0.0f);
    float4 cc0=float4(0.0f,0.0f,0.0f,0.0f), cc1=float4(0.0f,0.0f,0.0f,0.0f);
    float4 cc2=float4(0.0f,0.0f,0.0f,0.0f), cprev=float4(0.0f,0.0f,0.0f,0.0f);
    float4 crastemp=float4(0.0f,0.0f,0.0f,0.0f),ckonsttemp=float4(0.0f,0.0f,0.0f,0.0f);

    clipPos = float4(rawpos.x, rawpos.y, clipPos.z, clipPos.w);
    uv0.xy = uv0.xy * texdim[0].zw;
    uv1.xy = uv1.xy * texdim[1].zw;
    // TEV stage 0
    tevcoord.xy = uv0.xy;
    textemp=tex2D(samp0,tevcoord.xy * texdim[0].xy).rgba;
    konsttemp = float4(k[3].aaa, k[3].a);
    ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
    // color combine
    prev.rgb = saturate((textemp.rgb)*(ckonsttemp.rgb));
    // alpha combine
    prev.a = saturate(textemp.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a);

    // TEV done
    // TEV stage 1
    tevcoord.xy = uv1.xy;
    textemp=tex2D(samp1,tevcoord.xy * texdim[1].xy).rgba;
    konsttemp = float4(k[3].aaa, k[3].a);
    ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
    // color combine
    prev.rgb = saturate((prev.rgb)+(textemp.rgb)*(float3(1.0f, 1.0f, 1.0f)-(ckonsttemp.rgb)));
    // alpha combine
    prev.a = saturate(prev.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a);

    // TEV done
    // TEV stage 2
    rastemp = colors_0.rgba;
    crastemp = frac(rastemp * (255.0f/256.0f)) * (256.0f/255.0f);
    textemp = float4(1.0f, 1.0f, 1.0f, 1.0f);
    cprev = frac(prev * (255.0f/256.0f)) * (256.0f/255.0f);
    // color combine
    prev.rgb = saturate((cprev.rgb)*(crastemp.rgb));
    // alpha combine
    prev.a = saturate(prev.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a);

    // TEV done
    // TEV stage 3
    textemp = float4(1.0f, 1.0f, 1.0f, 1.0f);
    konsttemp = float4(k[1].rgb, k[1].a);
    ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
    cprev = frac(prev * (255.0f/256.0f)) * (256.0f/255.0f);
    // color combine
    prev.rgb = saturate((ckonsttemp.rgb)*(cprev.rgb));
    // alpha combine
    prev.a = saturate(ckonsttemp.a*cprev.a);

    // TEV done
    prev.rgb = prev.rgb;
    prev.a = prev.a;
    prev = frac(4.0f + prev * (255.0f/256.0f)) * (256.0f/255.0f);
    if(!( (prev.a > alphaRef[0].r - (0.25f/255.0f)) && (prev.a < alphaRef[0].g + (0.25f/255.0f)))){ocol0 = float4(0.0f); discard;return;}
    ocol0 = prev;
    }

    ReplyDelete
  3. "#2 The idiot!!!"
    Точно, мудак :)

    ReplyDelete

Can't post a comment? Try This!