mirror of
https://github.com/thug1src/thug.git
synced 2025-01-22 05:43:47 +00:00
219 lines
11 KiB
C++
219 lines
11 KiB
C++
// Xbox Shader Assembler 1.00.4705.1
|
|
D3DPIXELSHADERDEF psd;
|
|
ZeroMemory(&psd, sizeof(psd));
|
|
psd.PSCombinerCount=PS_COMBINERCOUNT(
|
|
8,
|
|
PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_UNIQUE_C1);
|
|
psd.PSTextureModes=PS_TEXTUREMODES(
|
|
PS_TEXTUREMODES_PROJECT2D,
|
|
PS_TEXTUREMODES_PROJECT2D,
|
|
PS_TEXTUREMODES_PROJECT2D,
|
|
PS_TEXTUREMODES_PROJECT2D);
|
|
psd.PSInputTexture=PS_INPUTTEXTURE(0,0,0,0);
|
|
psd.PSDotMapping=PS_DOTMAPPING(
|
|
0,
|
|
PS_DOTMAPPING_ZERO_TO_ONE,
|
|
PS_DOTMAPPING_ZERO_TO_ONE,
|
|
PS_DOTMAPPING_ZERO_TO_ONE);
|
|
psd.PSCompareMode=PS_COMPAREMODE(
|
|
PS_COMPAREMODE_S_LT | PS_COMPAREMODE_T_LT | PS_COMPAREMODE_R_LT | PS_COMPAREMODE_Q_LT,
|
|
PS_COMPAREMODE_S_LT | PS_COMPAREMODE_T_LT | PS_COMPAREMODE_R_LT | PS_COMPAREMODE_Q_LT,
|
|
PS_COMPAREMODE_S_LT | PS_COMPAREMODE_T_LT | PS_COMPAREMODE_R_LT | PS_COMPAREMODE_Q_LT,
|
|
PS_COMPAREMODE_S_LT | PS_COMPAREMODE_T_LT | PS_COMPAREMODE_R_LT | PS_COMPAREMODE_Q_LT);
|
|
|
|
//------------- Stage 0 -------------
|
|
psd.PSRGBInputs[0]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[0]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[0]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_R0,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[0]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_R0,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[0] = 0x40404040;
|
|
psd.PSConstant1[0] = 0x00000000;
|
|
|
|
//------------- Stage 1 -------------
|
|
psd.PSRGBInputs[1]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T1 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[1]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T1 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[1]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[1]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[1] = 0x40404040;
|
|
psd.PSConstant1[1] = 0x00000000;
|
|
|
|
//------------- Stage 2 -------------
|
|
psd.PSRGBInputs[2]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T2 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[2]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T2 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[2]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[2]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[2] = 0x40404040;
|
|
psd.PSConstant1[2] = 0x00000000;
|
|
|
|
//------------- Stage 3 -------------
|
|
psd.PSRGBInputs[3]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T3 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[3]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T3 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[3]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[3]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[3] = 0x40404040;
|
|
psd.PSConstant1[3] = 0x00000000;
|
|
|
|
//------------- Stage 4 -------------
|
|
psd.PSRGBInputs[4]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[4]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[4]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[4]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[4] = 0x00000000;
|
|
psd.PSConstant1[4] = 0x00000000;
|
|
|
|
//------------- Stage 5 -------------
|
|
psd.PSRGBInputs[5]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T1 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[5]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T1 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[5]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[5]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[5] = 0x00000000;
|
|
psd.PSConstant1[5] = 0x00000000;
|
|
|
|
//------------- Stage 6 -------------
|
|
psd.PSRGBInputs[6]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T2 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[6]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T2 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[6]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[6]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[6] = 0x00000000;
|
|
psd.PSConstant1[6] = 0x00000000;
|
|
|
|
//------------- Stage 7 -------------
|
|
psd.PSRGBInputs[7]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T3 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_RGB | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_RGB | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSAlphaInputs[7]=PS_COMBINERINPUTS(
|
|
PS_REGISTER_T3 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY,
|
|
PS_REGISTER_C0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_NEGATE,
|
|
PS_REGISTER_ZERO | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_UNSIGNED_INVERT,
|
|
PS_REGISTER_R0 | PS_CHANNEL_ALPHA | PS_INPUTMAPPING_SIGNED_IDENTITY);
|
|
psd.PSRGBOutputs[7]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSAlphaOutputs[7]=PS_COMBINEROUTPUTS(
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_DISCARD,
|
|
PS_REGISTER_R0,
|
|
PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_CD_SUM);
|
|
psd.PSConstant0[7] = 0x00000000;
|
|
psd.PSConstant1[7] = 0x00000000;
|
|
|
|
psd.PSC0Mapping = 0x76543210;
|
|
psd.PSC1Mapping = 0xffffffff;
|
|
psd.PSFinalCombinerConstants = 0x000001ff;
|