#define HLSL_SOURCE_CODE 0 #define SHADER_ASSEMBLY_CODE 0 // A paletted texture shader #if HLSL_SOURCE_CODE // Technically, Palette only needs to be a sampler1D, but that // produces assembly code to copy index.x to index.y, which is // totally unnecessary. sampler2D Image : register(s0); sampler2D Palette : register(s1); float4 Flash : register(c0); float4 InvFlash : register(c1); float4 PaletteMod : register(c2); float4 main (float2 texCoord : TEXCOORD0) : COLOR { float4 index = tex2D (Image, texCoord); index.x = index.x * PaletteMod.x + PaletteMod.y; float4 rgb = tex2D (Palette, index); return Flash + rgb * InvFlash; } #elif SHADER_ASSEMBLY_CODE // // Generated by Microsoft (R) D3DX9 Shader Compiler 9.15.779.0000 // // fxc paltex.ps /Tps_1_4 /VnPalTexShader14Def /Fh // // // Parameters: // // float4 Flash; // sampler2D Image; // float4 InvFlash; // sampler2D Palette; // float4 PaletteMod; // // // Registers: // // Name Reg Size // ------------ ----- ---- // Flash c0 1 // InvFlash c1 1 // PaletteMod c2 1 // Image s0 1 // Palette s1 1 // ps_1_4 texld r0, t0 mad r0.x, r0.x, c2.x, c2.y phase texld r1, r0 mad r0, r1, c1, c0 // approximately 4 instruction slots used (2 texture, 2 arithmetic) #endif const DWORD PalTexShader14Def[] = { 0xffff0104, 0x0043fffe, 0x42415443, 0x0000001c, 0x000000d3, 0xffff0104, 0x00000005, 0x0000001c, 0x00000100, 0x000000cc, 0x00000080, 0x00000002, 0x00020001, 0x00000088, 0x00000000, 0x00000098, 0x00000003, 0x00000001, 0x000000a0, 0x00000000, 0x000000b0, 0x00010002, 0x00020001, 0x00000088, 0x00000000, 0x000000b9, 0x00010003, 0x00000001, 0x000000a0, 0x00000000, 0x000000c1, 0x00020002, 0x00020001, 0x00000088, 0x00000000, 0x73616c46, 0xabab0068, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x67616d49, 0xabab0065, 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x46766e49, 0x6873616c, 0x6c615000, 0x65747465, 0x6c615000, 0x65747465, 0x00646f4d, 0x315f7370, 0x4d00345f, 0x6f726369, 0x74666f73, 0x29522820, 0x44334420, 0x53203958, 0x65646168, 0x6f432072, 0x6c69706d, 0x39207265, 0x2e35312e, 0x2e393737, 0x30303030, 0xababab00, 0x00000042, 0x800f0000, 0xb0e40000, 0x00000004, 0x80010000, 0x80000000, 0xa0000002, 0xa0550002, 0x0000fffd, 0x00000042, 0x800f0001, 0x80e40000, 0x00000004, 0x800f0000, 0x80e40001, 0xa0e40001, 0xa0e40000, 0x0000ffff }; #if SHADER_ASSEMBLY_CODE ps_2_0 dcl t0.xy dcl_2d s0 dcl_2d s1 texld r0, t0, s0 mad r0.x, r0.x, c2.x, c2.y texld r0, r0, s1 mov r1, c1 mad r0, r0, r1, c0 mov oC0, r0 // approximately 6 instruction slots used (2 texture, 4 arithmetic) #endif const DWORD PalTexShader20Def[] = { 0xffff0200, 0x0043fffe, 0x42415443, 0x0000001c, 0x000000d3, 0xffff0200, 0x00000005, 0x0000001c, 0x00000100, 0x000000cc, 0x00000080, 0x00000002, 0x00020001, 0x00000088, 0x00000000, 0x00000098, 0x00000003, 0x00000001, 0x000000a0, 0x00000000, 0x000000b0, 0x00010002, 0x00020001, 0x00000088, 0x00000000, 0x000000b9, 0x00010003, 0x00000001, 0x000000a0, 0x00000000, 0x000000c1, 0x00020002, 0x00020001, 0x00000088, 0x00000000, 0x73616c46, 0xabab0068, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x67616d49, 0xabab0065, 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x46766e49, 0x6873616c, 0x6c615000, 0x65747465, 0x6c615000, 0x65747465, 0x00646f4d, 0x325f7370, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x44334420, 0x53203958, 0x65646168, 0x6f432072, 0x6c69706d, 0x39207265, 0x2e35312e, 0x2e393737, 0x30303030, 0xababab00, 0x0200001f, 0x80000000, 0xb0030000, 0x0200001f, 0x90000000, 0xa00f0800, 0x0200001f, 0x90000000, 0xa00f0801, 0x03000042, 0x800f0000, 0xb0e40000, 0xa0e40800, 0x04000004, 0x80010000, 0x80000000, 0xa0000002, 0xa0550002, 0x03000042, 0x800f0000, 0x80e40000, 0xa0e40801, 0x02000001, 0x800f0001, 0xa0e40001, 0x04000004, 0x800f0000, 0x80e40000, 0x80e40001, 0xa0e40000, 0x02000001, 0x800f0800, 0x80e40000, 0x0000ffff }; // A texture that doesn't look up colors from a palette. // Can be used for RGB textures. #if HLSL_SOURCE_CODE sampler2D Image : register(s0); float4 Flash : register(c0); float4 InvFlash : register(c1); float4 main (float2 texCoord : TEXCOORD0) : COLOR { float4 index = tex2D (Image, texCoord); return Flash + index * InvFlash; } #elif SHADER_ASSEMBLY_CODE // // Generated by Microsoft (R) D3DX9 Shader Compiler 9.15.779.0000 // // fxc shadetex.ps /Tps_1_4 /VnPlainShaderDef /Fh // // // Parameters: // // float4 Flash; // sampler2D Image; // float4 InvFlash; // // // Registers: // // Name Reg Size // ------------ ----- ---- // Flash c0 1 // InvFlash c1 1 // Image s0 1 // ps_1_4 texld r0, t0 mad r0, r0, c1, c0 // approximately 2 instruction slots used (1 texture, 1 arithmetic) #endif const DWORD PlainShaderDef[] = { 0xffff0104, 0x0034fffe, 0x42415443, 0x0000001c, 0x00000098, 0xffff0104, 0x00000003, 0x0000001c, 0x00000100, 0x00000091, 0x00000058, 0x00000002, 0x00020001, 0x00000060, 0x00000000, 0x00000070, 0x00000003, 0x00000001, 0x00000078, 0x00000000, 0x00000088, 0x00010002, 0x00020001, 0x00000060, 0x00000000, 0x73616c46, 0xabab0068, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x67616d49, 0xabab0065, 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x46766e49, 0x6873616c, 0x5f737000, 0x00345f31, 0x7263694d, 0x666f736f, 0x52282074, 0x33442029, 0x20395844, 0x64616853, 0x43207265, 0x69706d6f, 0x2072656c, 0x35312e39, 0x3937372e, 0x3030302e, 0xabab0030, 0x00000042, 0x800f0000, 0xb0e40000, 0x00000004, 0x800f0000, 0x80e40000, 0xa0e40001, 0xa0e40000, 0x0000ffff }; // A shader that just returns the value of c1 #if HLSL_SOURCE_CODE float4 Color : register(c1); float4 main () : COLOR { return Color; } #elif SHADER_ASSEMBLY_CODE // // Generated by Microsoft (R) D3DX9 Shader Compiler 9.15.779.0000 // // fxc dimshader.ps /Tps_1_1 /VnDimShader /Fh // // // Parameters: // // float4 Color; // // // Registers: // // Name Reg Size // ------------ ----- ---- // Color c1 1 // ps_1_1 mov r0, c1 // approximately 1 instruction slot used #endif const DWORD DimShaderDef[] = { 0xffff0101, 0x0022fffe, 0x42415443, 0x0000001c, 0x0000004f, 0xffff0101, 0x00000001, 0x0000001c, 0x00000100, 0x00000048, 0x00000030, 0x00010002, 0x00020001, 0x00000038, 0x00000000, 0x6f6c6f43, 0xabab0072, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x315f7370, 0x4d00315f, 0x6f726369, 0x74666f73, 0x29522820, 0x44334420, 0x53203958, 0x65646168, 0x6f432072, 0x6c69706d, 0x39207265, 0x2e35312e, 0x2e393737, 0x30303030, 0xababab00, 0x00000001, 0x800f0000, 0xa0e40001, 0x0000ffff };