Difference between revisions of "Nintendo OpenGL"
m (→Description) |
|||
(29 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
This page's goal is to describe parts of Nintendo's OpenGL implementation for the 3DS as we reverse engineer it to better understand how to use the PICA200. | This page's goal is to describe parts of Nintendo's OpenGL implementation for the 3DS as we reverse engineer it to better understand how to use the PICA200. | ||
+ | Some of the information on this page is specific to Steeldiver : Sub Wars. The reason for this is that it's a fairly graphics-heavy game that's available on the eShop for '''free''', so it seems like a good target for a community REing effort. | ||
== Description == | == Description == | ||
− | The PICA200 is an | + | The PICA200 is an OpenGL ES 1.1 compliant GPU manufactured by DMP. It comes loaded with a number of extensions that make it similar to an OpenGL ES 2.0 compliant GPU (ability to run programmable vertex/geometry shaders, for instance). Because of this, Nintendo wrapped GPU access into an OpenGL ES 2.0 implementation with some limitations. As the fragment stage of the pipeline is non-programmable, Nintendo instead gives developers the ability to configure a number of fragment-related values through glGetUniformLocation and glUniformXX. See below for the full list. |
== Shader program structure == | == Shader program structure == | ||
− | When uniform values are set, they are attached to the current shader program and stored into the corresponding shader program structure. | + | When uniform values are set (in shm_uniformfv/shm_uniformiv), they are attached to the current shader program and stored into the corresponding shader program structure. They are later written to the GPU command buffer in __shv_validateShaderValidator or equivalent. |
Shader program struct : | Shader program struct : | ||
Line 38: | Line 39: | ||
| 0x04 | | 0x04 | ||
| Number of program-specific uniforms | | Number of program-specific uniforms | ||
+ | |- | ||
+ | | 0x414 | ||
+ | | 0x04 | ||
+ | | Pointer to vertex shader struct | ||
|- | |- | ||
| 0x64C | | 0x64C | ||
Line 101: | Line 106: | ||
| 0x04 | | 0x04 | ||
| dmp_FragmentLightSource[k].distanceAttenuationScale (float) | | dmp_FragmentLightSource[k].distanceAttenuationScale (float) | ||
+ | |} | ||
+ | |||
+ | vertex/geometry shader struct: | ||
+ | {| class="wikitable" border="1" | ||
+ | ! Offset | ||
+ | ! Size | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x0 | ||
+ | | 0x4 | ||
+ | | Pointer to shader code data | ||
+ | |- | ||
+ | | 0x4 | ||
+ | | 0x4 | ||
+ | | Size of shader code (in words) | ||
+ | |- | ||
+ | | 0x8 | ||
+ | | 0x4 | ||
+ | | Pointer to shader opdesc data | ||
+ | |- | ||
+ | | 0xC | ||
+ | | 0x4 | ||
+ | | Size of shader opdescs (in words) | ||
|} | |} | ||
Line 106: | Line 134: | ||
1. Choose a "uniform" you want to RE below | 1. Choose a "uniform" you want to RE below | ||
+ | |||
2. Take note of its ID and type ! | 2. Take note of its ID and type ! | ||
− | 3. Depending on whether its a float or not, go through the gigantic switches in shm_uniformfv or shm_uniformiv (non-float) based on the ID of your uniform | + | |
+ | 3. Depending on whether its a float or not, go through the gigantic switches in shm_uniformfv or shm_uniformiv (non-float) based on the ID of your uniform (in the case of '''steeldiver: sub wars''' you can now just go directly to the handler as it's listed in the table below) | ||
+ | |||
4. Once you find the piece of code specific to your uniform, take note of how the values passed to shm_uniformfv/shm_uniformiv are written to the shader object | 4. Once you find the piece of code specific to your uniform, take note of how the values passed to shm_uniformfv/shm_uniformiv are written to the shader object | ||
+ | |||
5. Go through __shv_validateShaderValidator looking for where those fields written to in shm_uniformfv/shm_uniformiv are used and written to the GPU command buffer either directly or through __cb_writeRegs, __cb_multiWriteReg or __cb_fillRegs. | 5. Go through __shv_validateShaderValidator looking for where those fields written to in shm_uniformfv/shm_uniformiv are used and written to the GPU command buffer either directly or through __cb_writeRegs, __cb_multiWriteReg or __cb_fillRegs. | ||
+ | |||
6. Document findings on 3Dbrew ! (that's the most important step) | 6. Document findings on 3Dbrew ! (that's the most important step) | ||
Line 118: | Line 151: | ||
! Type | ! Type | ||
! Name | ! Name | ||
+ | ! Handler address (Steeldiver : Sub Wars) | ||
+ | ! Shader Program struct offset | ||
+ | ! GPU Register | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_Texture[0].perspectiveShadow | | dmp_Texture[0].perspectiveShadow | ||
+ | | 0x0012A504 | ||
+ | | ? | ||
+ | | 0x008B bit0 (0 = enable??) | ||
|- | |- | ||
| 0x1 | | 0x1 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_Texture[0].shadowZBias | | dmp_Texture[0].shadowZBias | ||
+ | | 0x00155584 | ||
+ | | 0xE44 | ||
+ | | ? | ||
|- | |- | ||
| 0x2 | | 0x2 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_Texture[0].shadowZScale | | dmp_Texture[0].shadowZScale | ||
+ | | 0x001556A0 | ||
+ | | 0xE48 | ||
+ | | ? | ||
|- | |- | ||
| 0x3 | | 0x3 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[0].samplerType | | dmp_Texture[0].samplerType | ||
+ | | 0x0012A5D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[1].samplerType | | dmp_Texture[1].samplerType | ||
+ | | 0x0012A6F8 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x5 | | 0x5 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[2].samplerType | | dmp_Texture[2].samplerType | ||
+ | | 0x0012A774 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x6 | | 0x6 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].samplerType | | dmp_Texture[3].samplerType | ||
+ | | 0x0012A7F0 | ||
+ | | ? | ||
+ | | 0x0080 bit10 (?) | ||
|- | |- | ||
| 0x7 | | 0x7 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[2].texcoord | | dmp_Texture[2].texcoord | ||
+ | | 0x0012A8B4 | ||
+ | | ? | ||
+ | | 0x0080 bit13 (1 = use texcoords from texture unit 1) | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].texcoord | | dmp_Texture[3].texcoord | ||
+ | | 0x0012A97C | ||
+ | | ? | ||
+ | | 0x0080 bit8-9 (0-2 = use texcoords from texture unit 0-2 resp., 3 = forbidden?) | ||
|- | |- | ||
| 0x9 | | 0x9 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptRgbMap | | dmp_Texture[3].ptRgbMap | ||
+ | | 0x0012AA54 | ||
+ | | ? | ||
+ | | 0x00A8 bit6-9 | ||
|- | |- | ||
| 0xA | | 0xA | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptAlphaMap | | dmp_Texture[3].ptAlphaMap | ||
+ | | 0x0012AB94 | ||
+ | | ? | ||
+ | | 0x00A8 bit10-13 | ||
|- | |- | ||
| 0xB | | 0xB | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_Texture[3].ptAlphaSeparate | | dmp_Texture[3].ptAlphaSeparate | ||
+ | | 0x0012ACD4 | ||
+ | | ? | ||
+ | | 0x00A8 bit14 | ||
|- | |- | ||
| 0xC | | 0xC | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptClampU | | dmp_Texture[3].ptClampU | ||
+ | | 0x0012ADB8 | ||
+ | | ? | ||
+ | | 0x00A8 bit0-2 | ||
|- | |- | ||
| 0xD | | 0xD | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptClampV | | dmp_Texture[3].ptClampV | ||
+ | | 0x0012AEC0 | ||
+ | | ? | ||
+ | | 0x00A8 bit3-5 | ||
|- | |- | ||
| 0xE | | 0xE | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptShiftU | | dmp_Texture[3].ptShiftU | ||
+ | | 0x0012AFD0 | ||
+ | | ? | ||
+ | | 0x00A8 bit16-17 | ||
|- | |- | ||
| 0xF | | 0xF | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptShiftV | | dmp_Texture[3].ptShiftV | ||
+ | | 0x0012B0A0 | ||
+ | | ? | ||
+ | | 0x00A8 bit18-19 | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptMinFilter | | dmp_Texture[3].ptMinFilter | ||
+ | | 0x0012B168 | ||
+ | | ? | ||
+ | | 0x00AC bit0-2 | ||
|- | |- | ||
| 0x11 | | 0x11 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptTexWidth | | dmp_Texture[3].ptTexWidth | ||
+ | | 0x0012B270 | ||
+ | | ? | ||
+ | | 0x00AC bit11-18 | ||
|- | |- | ||
| 0x12 | | 0x12 | ||
| GL_INT | | GL_INT | ||
| dmp_Texture[3].ptTexOffset | | dmp_Texture[3].ptTexOffset | ||
+ | | 0x0012B334 | ||
+ | | ? | ||
+ | | 0x00AD bit0-7 | ||
|- | |- | ||
| 0x13 | | 0x13 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_Texture[3].ptTexBias | | dmp_Texture[3].ptTexBias | ||
+ | | 0x001556B4 | ||
+ | | 0xE10 | ||
+ | | 0x00A8 bit20-27 | ||
|- | |- | ||
| 0x14 | | 0x14 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_Texture[3].ptNoiseEnable | | dmp_Texture[3].ptNoiseEnable | ||
+ | | 0x0012B3E0 | ||
+ | | ? | ||
+ | | 0x00A8 bit15 | ||
|- | |- | ||
| 0x15 | | 0x15 | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_Texture[3].ptNoiseU | | dmp_Texture[3].ptNoiseU | ||
+ | | 0x00155878 | ||
+ | | 0xE14 | ||
+ | | 0x00A9, 0x00AB | ||
|- | |- | ||
| 0x16 | | 0x16 | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_Texture[3].ptNoiseV | | dmp_Texture[3].ptNoiseV | ||
+ | | 0x00155A7C | ||
+ | | 0xE20 | ||
+ | | 0x00AA, 0x00AB | ||
|- | |- | ||
| 0x17 | | 0x17 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerRgbMap | | dmp_Texture[3].ptSamplerRgbMap | ||
+ | | 0x0012B4B0 | ||
+ | | 0xDF0 | ||
+ | | ? | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerAlphaMap | | dmp_Texture[3].ptSamplerAlphaMap | ||
+ | | 0x0012B4F4 | ||
+ | | 0xDF4 | ||
+ | | ? | ||
|- | |- | ||
| 0x19 | | 0x19 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerNoiseMap | | dmp_Texture[3].ptSamplerNoiseMap | ||
+ | | 0x0012B540 | ||
+ | | 0xDF8 | ||
+ | | ? | ||
|- | |- | ||
| 0x1A | | 0x1A | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerR | | dmp_Texture[3].ptSamplerR | ||
+ | | 0x0012B58C | ||
+ | | 0xDFC | ||
+ | | ? | ||
|- | |- | ||
| 0x1B | | 0x1B | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerG | | dmp_Texture[3].ptSamplerG | ||
+ | | 0x0012B5D8 | ||
+ | | 0xE00 | ||
+ | | ? | ||
|- | |- | ||
| 0x1C | | 0x1C | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerB | | dmp_Texture[3].ptSamplerB | ||
+ | | 0x0012B624 | ||
+ | | 0xE04 | ||
+ | | ? | ||
|- | |- | ||
| 0x1D | | 0x1D | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Texture[3].ptSamplerA | | dmp_Texture[3].ptSamplerA | ||
+ | | 0x0012B670 | ||
+ | | 0xE08 | ||
+ | | ? | ||
|- | |- | ||
| 0x1E | | 0x1E | ||
| GL_INT | | GL_INT | ||
| dmp_FragOperation.mode | | dmp_FragOperation.mode | ||
+ | | 0x0012B6BC | ||
+ | | 0xE38 | ||
+ | | ? | ||
|- | |- | ||
| 0x1F | | 0x1F | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragOperation.penumbraScale | | dmp_FragOperation.penumbraScale | ||
+ | | 0x00155C98 | ||
+ | | 0xE40 | ||
+ | | ? | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragOperation.penumbraBias | | dmp_FragOperation.penumbraBias | ||
+ | | 0x00155D8C | ||
+ | | 0xE3C | ||
+ | | ? | ||
|- | |- | ||
| 0x21 | | 0x21 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragOperation.wScale | | dmp_FragOperation.wScale | ||
+ | | 0x00155E9C | ||
+ | | 0xE4C | ||
+ | | ? | ||
|- | |- | ||
| 0x22 | | 0x22 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragOperation.enableClippingPlane | | dmp_FragOperation.enableClippingPlane | ||
+ | | 0x0012EAEC | ||
+ | | 0x568 | ||
+ | | 0x0047 bit0 | ||
|- | |- | ||
| 0x23 | | 0x23 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragOperation.clippingPlane | | dmp_FragOperation.clippingPlane | ||
+ | | 0x00159474 | ||
+ | | 0xE50 | ||
+ | | ? | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragOperation.enableAlphaTest | | dmp_FragOperation.enableAlphaTest | ||
+ | | 0x0012EBAC | ||
+ | | 0x64C | ||
+ | | ? | ||
|- | |- | ||
| 0x25 | | 0x25 | ||
| GL_INT | | GL_INT | ||
| dmp_FragOperation.alphaTestFunc | | dmp_FragOperation.alphaTestFunc | ||
+ | | 0x0012EC64 | ||
+ | | 0x64C | ||
+ | | ? | ||
|- | |- | ||
| 0x26 | | 0x26 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragOperation.alphaRefValue | | dmp_FragOperation.alphaRefValue | ||
+ | | 0x0015971C | ||
+ | | 0x64C ? | ||
+ | | ? | ||
|- | |- | ||
| 0x27 | | 0x27 | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_Gas.lightXY | | dmp_Gas.lightXY | ||
+ | | 0x001560EC | ||
+ | | 0xE84 | ||
+ | | 0x0120 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23) | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_Gas.lightZ | | dmp_Gas.lightZ | ||
+ | | 0x00156268 | ||
+ | | 0xE90 | ||
+ | | 0x0121 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23), 0x0122 (vec[3] -> bit 0-7) | ||
|- | |- | ||
| 0x29 | | 0x29 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_Gas.deltaZ | | dmp_Gas.deltaZ | ||
+ | | 0x001564D4 | ||
+ | | 0xEA0 | ||
+ | | 0x0126 bit0-23 | ||
|- | |- | ||
| 0x2A | | 0x2A | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_Gas.accMax | | dmp_Gas.accMax | ||
+ | | 0x001565C0 | ||
+ | | 0xEA4 | ||
+ | | 0x00E5 | ||
|- | |- | ||
| 0x2B | | 0x2B | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_Gas.autoAcc | | dmp_Gas.autoAcc | ||
+ | | 0x0012B790 | ||
+ | | 0xE74 | ||
+ | | ? | ||
|- | |- | ||
| 0x2C | | 0x2C | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_Gas.attenuation | | dmp_Gas.attenuation | ||
+ | | 0x00156684 | ||
+ | | 0xEA8 | ||
+ | | 0x00E4 | ||
|- | |- | ||
| 0x2D | | 0x2D | ||
| GL_INT | | GL_INT | ||
| dmp_Gas.colorLutInput | | dmp_Gas.colorLutInput | ||
+ | | 0x0012B7A4 | ||
+ | | 0x640 | ||
+ | | 0x0122 bit8 (0x6060/0x6061 -> 0/1) | ||
|- | |- | ||
| 0x2E | | 0x2E | ||
| GL_INT | | GL_INT | ||
| dmp_Gas.shadingDensitySrc | | dmp_Gas.shadingDensitySrc | ||
+ | | 0x0012B854 | ||
+ | | 0x624 | ||
+ | | 0x00E0 bit3 (0x605E/0x605F -> 0/1) | ||
|- | |- | ||
| 0x2F | | 0x2F | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Gas.samplerTR | | dmp_Gas.samplerTR | ||
+ | | 0x0012B910 | ||
+ | | 0xE78 | ||
+ | | ? | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Gas.samplerTG | | dmp_Gas.samplerTG | ||
+ | | 0x0012B95C | ||
+ | | 0xE7C | ||
+ | | ? | ||
|- | |- | ||
| 0x31 | | 0x31 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Gas.samplerTB | | dmp_Gas.samplerTB | ||
+ | | 0x0012B9A8 | ||
+ | | 0xE80 | ||
+ | | ? | ||
|- | |- | ||
| 0x32 | | 0x32 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLighting.enabled | | dmp_FragmentLighting.enabled | ||
+ | | 0x0012B9F4 | ||
+ | | 0x590 | ||
+ | | 0x00A8 bit0, 0x01C6 (0 = enabled) | ||
|- | |- | ||
| 0x33 | | 0x33 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLighting.ambient | | dmp_FragmentLighting.ambient | ||
+ | | 0x00156744 | ||
+ | | 0xA10 | ||
+ | | 0x01C0? | ||
|- | |- | ||
| 0x34 | | 0x34 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentMaterial.emission | | dmp_FragmentMaterial.emission | ||
+ | | 0x00156E1C | ||
+ | | 0xDE0 | ||
+ | | 0x01C0? | ||
|- | |- | ||
| 0x35 | | 0x35 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentMaterial.ambient | | dmp_FragmentMaterial.ambient | ||
+ | | 0x0015696C | ||
+ | | 0xDA0 | ||
+ | | 0x01C0 | ||
|- | |- | ||
| 0x36 | | 0x36 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentMaterial.diffuse | | dmp_FragmentMaterial.diffuse | ||
+ | | 0x00157048 | ||
+ | | 0xDB0 | ||
+ | | ? | ||
|- | |- | ||
| 0x37 | | 0x37 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentMaterial.specular0 | | dmp_FragmentMaterial.specular0 | ||
+ | | 0x001572E0 | ||
+ | | 0xDC0 | ||
+ | | ? | ||
|- | |- | ||
| 0x38 | | 0x38 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentMaterial.specular1 | | dmp_FragmentMaterial.specular1 | ||
+ | | 0x0015756C | ||
+ | | 0xDD0 | ||
+ | | ? | ||
|- | |- | ||
| 0x39 | | 0x39 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].enabled | | dmp_FragmentLightSource[0].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+0*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x3A | | 0x3A | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].enabled | | dmp_FragmentLightSource[1].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+1*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x3B | | 0x3B | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].enabled | | dmp_FragmentLightSource[2].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+2*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x3C | | 0x3C | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].enabled | | dmp_FragmentLightSource[3].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+3*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x3D | | 0x3D | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].enabled | | dmp_FragmentLightSource[4].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+4*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x3E | | 0x3E | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].enabled | | dmp_FragmentLightSource[5].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+5*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x3F | | 0x3F | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].enabled | | dmp_FragmentLightSource[6].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+6*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x40 | | 0x40 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].enabled | | dmp_FragmentLightSource[7].enabled | ||
+ | | 0x0012BD24 | ||
+ | | 0xA20+7*0x70+0x00 | ||
+ | | 0x01C5 | ||
|- | |- | ||
| 0x41 | | 0x41 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[0].ambient | | dmp_FragmentLightSource[0].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+0*0x70+0x04 | ||
+ | | 0x0143 | ||
|- | |- | ||
| 0x42 | | 0x42 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[1].ambient | | dmp_FragmentLightSource[1].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+1*0x70+0x04 | ||
+ | | 0x0153 | ||
|- | |- | ||
| 0x43 | | 0x43 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[2].ambient | | dmp_FragmentLightSource[2].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+2*0x70+0x04 | ||
+ | | 0x0163 | ||
|- | |- | ||
| 0x44 | | 0x44 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[3].ambient | | dmp_FragmentLightSource[3].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+3*0x70+0x04 | ||
+ | | 0x0173 | ||
|- | |- | ||
| 0x45 | | 0x45 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[4].ambient | | dmp_FragmentLightSource[4].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+4*0x70+0x04 | ||
+ | | 0x0183 | ||
|- | |- | ||
| 0x46 | | 0x46 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[5].ambient | | dmp_FragmentLightSource[5].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+5*0x70+0x04 | ||
+ | | 0x0193 | ||
|- | |- | ||
| 0x47 | | 0x47 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[6].ambient | | dmp_FragmentLightSource[6].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+6*0x70+0x04 | ||
+ | | 0x01A3 | ||
|- | |- | ||
| 0x48 | | 0x48 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[7].ambient | | dmp_FragmentLightSource[7].ambient | ||
+ | | 0x001579CC | ||
+ | | 0xA20+7*0x70+0x04 | ||
+ | | 0x01B3 | ||
|- | |- | ||
| 0x49 | | 0x49 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[0].diffuse | | dmp_FragmentLightSource[0].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+0*0x70+0x14 | ||
+ | | 0x0142 | ||
|- | |- | ||
| 0x4A | | 0x4A | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[1].diffuse | | dmp_FragmentLightSource[1].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+1*0x70+0x14 | ||
+ | | 0x0152 | ||
|- | |- | ||
| 0x4B | | 0x4B | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[2].diffuse | | dmp_FragmentLightSource[2].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+2*0x70+0x14 | ||
+ | | 0x0162 | ||
|- | |- | ||
| 0x4C | | 0x4C | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[3].diffuse | | dmp_FragmentLightSource[3].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+3*0x70+0x14 | ||
+ | | 0x0172 | ||
|- | |- | ||
| 0x4D | | 0x4D | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[4].diffuse | | dmp_FragmentLightSource[4].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+4*0x70+0x14 | ||
+ | | 0x0182 | ||
|- | |- | ||
| 0x4E | | 0x4E | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[5].diffuse | | dmp_FragmentLightSource[5].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+5*0x70+0x14 | ||
+ | | 0x0192 | ||
|- | |- | ||
| 0x4F | | 0x4F | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[6].diffuse | | dmp_FragmentLightSource[6].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+6*0x70+0x14 | ||
+ | | 0x01A2 | ||
|- | |- | ||
| 0x50 | | 0x50 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[7].diffuse | | dmp_FragmentLightSource[7].diffuse | ||
+ | | 0x00157C10 | ||
+ | | 0xA20+7*0x70+0x14 | ||
+ | | 0x01B2 | ||
|- | |- | ||
| 0x51 | | 0x51 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[0].specular0 | | dmp_FragmentLightSource[0].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+0*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x52 | | 0x52 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[1].specular0 | | dmp_FragmentLightSource[1].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+1*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x53 | | 0x53 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[2].specular0 | | dmp_FragmentLightSource[2].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+2*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x54 | | 0x54 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[3].specular0 | | dmp_FragmentLightSource[3].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+3*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x55 | | 0x55 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[4].specular0 | | dmp_FragmentLightSource[4].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+4*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x56 | | 0x56 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[5].specular0 | | dmp_FragmentLightSource[5].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+5*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x57 | | 0x57 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[6].specular0 | | dmp_FragmentLightSource[6].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+6*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x58 | | 0x58 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[7].specular0 | | dmp_FragmentLightSource[7].specular0 | ||
+ | | 0x00157E5C | ||
+ | | 0xA20+7*0x70+0x24 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x59 | | 0x59 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[0].specular1 | | dmp_FragmentLightSource[0].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+0*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x5A | | 0x5A | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[1].specular1 | | dmp_FragmentLightSource[1].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+1*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x5B | | 0x5B | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[2].specular1 | | dmp_FragmentLightSource[2].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+2*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x5C | | 0x5C | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[3].specular1 | | dmp_FragmentLightSource[3].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+3*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x5D | | 0x5D | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[4].specular1 | | dmp_FragmentLightSource[4].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+4*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x5E | | 0x5E | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[5].specular1 | | dmp_FragmentLightSource[5].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+5*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x5F | | 0x5F | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[6].specular1 | | dmp_FragmentLightSource[6].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+6*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x60 | | 0x60 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[7].specular1 | | dmp_FragmentLightSource[7].specular1 | ||
+ | | 0x001580B4 | ||
+ | | 0xA20+7*0x70+0x34 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x61 | | 0x61 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[0].position | | dmp_FragmentLightSource[0].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+0*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x62 | | 0x62 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[1].position | | dmp_FragmentLightSource[1].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+1*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x63 | | 0x63 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[2].position | | dmp_FragmentLightSource[2].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+2*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x64 | | 0x64 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[3].position | | dmp_FragmentLightSource[3].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+3*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x65 | | 0x65 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[4].position | | dmp_FragmentLightSource[4].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+4*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x66 | | 0x66 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[5].position | | dmp_FragmentLightSource[5].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+5*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x67 | | 0x67 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[6].position | | dmp_FragmentLightSource[6].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+6*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x68 | | 0x68 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_FragmentLightSource[7].position | | dmp_FragmentLightSource[7].position | ||
+ | | 0x001584B0 | ||
+ | | 0xA20+7*0x70+0x44 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x69 | | 0x69 | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[0].spotDirection | | dmp_FragmentLightSource[0].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+0*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x6A | | 0x6A | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[1].spotDirection | | dmp_FragmentLightSource[1].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+1*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x6B | | 0x6B | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[2].spotDirection | | dmp_FragmentLightSource[2].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+2*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x6C | | 0x6C | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[3].spotDirection | | dmp_FragmentLightSource[3].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+3*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x6D | | 0x6D | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[4].spotDirection | | dmp_FragmentLightSource[4].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+4*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x6E | | 0x6E | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[5].spotDirection | | dmp_FragmentLightSource[5].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+5*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x6F | | 0x6F | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[6].spotDirection | | dmp_FragmentLightSource[6].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+6*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x70 | | 0x70 | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_FragmentLightSource[7].spotDirection | | dmp_FragmentLightSource[7].spotDirection | ||
+ | | 0x001587E4 | ||
+ | | 0xA20+7*0x70+0x54 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x71 | | 0x71 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].shadowed | | dmp_FragmentLightSource[0].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x72 | | 0x72 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].shadowed | | dmp_FragmentLightSource[1].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x73 | | 0x73 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].shadowed | | dmp_FragmentLightSource[2].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x74 | | 0x74 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].shadowed | | dmp_FragmentLightSource[3].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x75 | | 0x75 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].shadowed | | dmp_FragmentLightSource[4].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x76 | | 0x76 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].shadowed | | dmp_FragmentLightSource[5].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x77 | | 0x77 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].shadowed | | dmp_FragmentLightSource[6].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x78 | | 0x78 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].shadowed | | dmp_FragmentLightSource[7].shadowed | ||
+ | | 0x0012C20C | ||
+ | | 0x7C0 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x79 | | 0x79 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].geomFactor0 | | dmp_FragmentLightSource[0].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x0149 bit2 | ||
|- | |- | ||
| 0x7A | | 0x7A | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].geomFactor0 | | dmp_FragmentLightSource[1].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x0159 bit2 | ||
|- | |- | ||
| 0x7B | | 0x7B | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].geomFactor0 | | dmp_FragmentLightSource[2].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x0169 bit2 | ||
|- | |- | ||
| 0x7C | | 0x7C | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].geomFactor0 | | dmp_FragmentLightSource[3].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x0179 bit2 | ||
|- | |- | ||
| 0x7D | | 0x7D | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].geomFactor0 | | dmp_FragmentLightSource[4].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x0189 bit2 | ||
|- | |- | ||
| 0x7E | | 0x7E | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].geomFactor0 | | dmp_FragmentLightSource[5].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x0199 bit2 | ||
|- | |- | ||
| 0x7F | | 0x7F | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].geomFactor0 | | dmp_FragmentLightSource[6].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x01A9 bit2 | ||
|- | |- | ||
| 0x80 | | 0x80 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].geomFactor0 | | dmp_FragmentLightSource[7].geomFactor0 | ||
+ | | 0x0012C018 | ||
+ | | 0x7D8 | ||
+ | | 0x01B9 bit2 | ||
|- | |- | ||
| 0x81 | | 0x81 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].geomFactor1 | | dmp_FragmentLightSource[0].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x0149 bit3 | ||
|- | |- | ||
| 0x82 | | 0x82 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].geomFactor1 | | dmp_FragmentLightSource[1].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x0159 bit3 | ||
|- | |- | ||
| 0x83 | | 0x83 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].geomFactor1 | | dmp_FragmentLightSource[2].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x0169 bit3 | ||
|- | |- | ||
| 0x84 | | 0x84 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].geomFactor1 | | dmp_FragmentLightSource[3].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x0179 bit3 | ||
|- | |- | ||
| 0x85 | | 0x85 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].geomFactor1 | | dmp_FragmentLightSource[4].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x0189 bit3 | ||
|- | |- | ||
| 0x86 | | 0x86 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].geomFactor1 | | dmp_FragmentLightSource[5].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x0199 bit3 | ||
|- | |- | ||
| 0x87 | | 0x87 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].geomFactor1 | | dmp_FragmentLightSource[6].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x01A9 bit3 | ||
|- | |- | ||
| 0x88 | | 0x88 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].geomFactor1 | | dmp_FragmentLightSource[7].geomFactor1 | ||
+ | | 0x0012C114 | ||
+ | | 0x7D8 | ||
+ | | 0x01B9 bit3 | ||
|- | |- | ||
| 0x89 | | 0x89 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].twoSideDiffuse | | dmp_FragmentLightSource[0].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x0149 bit1 | ||
|- | |- | ||
| 0x8A | | 0x8A | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].twoSideDiffuse | | dmp_FragmentLightSource[1].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x0159 bit1 | ||
|- | |- | ||
| 0x8B | | 0x8B | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].twoSideDiffuse | | dmp_FragmentLightSource[2].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x0169 bit1 | ||
|- | |- | ||
| 0x8C | | 0x8C | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].twoSideDiffuse | | dmp_FragmentLightSource[3].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x0179 bit1 | ||
|- | |- | ||
| 0x8D | | 0x8D | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].twoSideDiffuse | | dmp_FragmentLightSource[4].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x0189 bit1 | ||
|- | |- | ||
| 0x8E | | 0x8E | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].twoSideDiffuse | | dmp_FragmentLightSource[5].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x0199 bit1 | ||
|- | |- | ||
| 0x8F | | 0x8F | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].twoSideDiffuse | | dmp_FragmentLightSource[6].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x01A9 bit1 | ||
|- | |- | ||
| 0x90 | | 0x90 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].twoSideDiffuse | | dmp_FragmentLightSource[7].twoSideDiffuse | ||
+ | | 0x0012BF10 | ||
+ | | 0x7D8 | ||
+ | | 0x01B9 bit1 | ||
|- | |- | ||
| 0x91 | | 0x91 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[0].samplerSP | | dmp_FragmentLightSource[0].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+0*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x92 | | 0x92 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[1].samplerSP | | dmp_FragmentLightSource[1].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+1*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x93 | | 0x93 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[2].samplerSP | | dmp_FragmentLightSource[2].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+2*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x94 | | 0x94 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[3].samplerSP | | dmp_FragmentLightSource[3].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+3*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x95 | | 0x95 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[4].samplerSP | | dmp_FragmentLightSource[4].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+4*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x96 | | 0x96 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[5].samplerSP | | dmp_FragmentLightSource[5].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+5*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x97 | | 0x97 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[6].samplerSP | | dmp_FragmentLightSource[6].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+6*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x98 | | 0x98 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[7].samplerSP | | dmp_FragmentLightSource[7].samplerSP | ||
+ | | 0x0012C31C | ||
+ | | 0xA20+7*0x70+0x60 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0x99 | | 0x99 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].spotEnabled | | dmp_FragmentLightSource[0].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit3 (1 = disable?) | ||
|- | |- | ||
| 0x9A | | 0x9A | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].spotEnabled | | dmp_FragmentLightSource[1].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit4 (1 = disable?) | ||
|- | |- | ||
| 0x9B | | 0x9B | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].spotEnabled | | dmp_FragmentLightSource[2].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit5 (1 = disable?) | ||
|- | |- | ||
| 0x9C | | 0x9C | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].spotEnabled | | dmp_FragmentLightSource[3].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit6 (1 = disable?) | ||
|- | |- | ||
| 0x9D | | 0x9D | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].spotEnabled | | dmp_FragmentLightSource[4].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit7 (1 = disable?) | ||
|- | |- | ||
| 0x9E | | 0x9E | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].spotEnabled | | dmp_FragmentLightSource[5].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit8 (1 = disable?) | ||
|- | |- | ||
| 0x9F | | 0x9F | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].spotEnabled | | dmp_FragmentLightSource[6].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit9 (1 = disable?) | ||
|- | |- | ||
| 0xA0 | | 0xA0 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].spotEnabled | | dmp_FragmentLightSource[7].spotEnabled | ||
+ | | 0x0012C380 | ||
+ | | ? | ||
+ | | 0x01C4 bit10 (1 = disable?) | ||
|- | |- | ||
| 0xA1 | | 0xA1 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[0].distanceAttenuationBias | | dmp_FragmentLightSource[0].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+0*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA2 | | 0xA2 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[1].distanceAttenuationBias | | dmp_FragmentLightSource[1].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+1*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA3 | | 0xA3 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[2].distanceAttenuationBias | | dmp_FragmentLightSource[2].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+2*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA4 | | 0xA4 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[3].distanceAttenuationBias | | dmp_FragmentLightSource[3].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+3*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA5 | | 0xA5 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[4].distanceAttenuationBias | | dmp_FragmentLightSource[4].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+4*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA6 | | 0xA6 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[5].distanceAttenuationBias | | dmp_FragmentLightSource[5].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+5*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA7 | | 0xA7 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[6].distanceAttenuationBias | | dmp_FragmentLightSource[6].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+6*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA8 | | 0xA8 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[7].distanceAttenuationBias | | dmp_FragmentLightSource[7].distanceAttenuationBias | ||
+ | | 0x00158AE8 | ||
+ | | 0xA20+7*0x70+0x64 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xA9 | | 0xA9 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[0].distanceAttenuationScale | | dmp_FragmentLightSource[0].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+0*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xAA | | 0xAA | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[1].distanceAttenuationScale | | dmp_FragmentLightSource[1].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+1*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xAB | | 0xAB | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[2].distanceAttenuationScale | | dmp_FragmentLightSource[2].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+2*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xAC | | 0xAC | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[3].distanceAttenuationScale | | dmp_FragmentLightSource[3].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+3*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xAD | | 0xAD | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[4].distanceAttenuationScale | | dmp_FragmentLightSource[4].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+4*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xAE | | 0xAE | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[5].distanceAttenuationScale | | dmp_FragmentLightSource[5].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+5*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xAF | | 0xAF | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[6].distanceAttenuationScale | | dmp_FragmentLightSource[6].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+6*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB0 | | 0xB0 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_FragmentLightSource[7].distanceAttenuationScale | | dmp_FragmentLightSource[7].distanceAttenuationScale | ||
+ | | 0x00158C44 | ||
+ | | 0xA20+7*0x70+0x68 | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB1 | | 0xB1 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[0].distanceAttenuationEnabled | | dmp_FragmentLightSource[0].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB2 | | 0xB2 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[1].distanceAttenuationEnabled | | dmp_FragmentLightSource[1].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB3 | | 0xB3 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[2].distanceAttenuationEnabled | | dmp_FragmentLightSource[2].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB4 | | 0xB4 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[3].distanceAttenuationEnabled | | dmp_FragmentLightSource[3].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB5 | | 0xB5 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[4].distanceAttenuationEnabled | | dmp_FragmentLightSource[4].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB6 | | 0xB6 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[5].distanceAttenuationEnabled | | dmp_FragmentLightSource[5].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB7 | | 0xB7 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[6].distanceAttenuationEnabled | | dmp_FragmentLightSource[6].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB8 | | 0xB8 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_FragmentLightSource[7].distanceAttenuationEnabled | | dmp_FragmentLightSource[7].distanceAttenuationEnabled | ||
+ | | 0x0012C4A0 | ||
+ | | ? | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xB9 | | 0xB9 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[0].samplerDA | | dmp_FragmentLightSource[0].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+0*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xBA | | 0xBA | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[1].samplerDA | | dmp_FragmentLightSource[1].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+1*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xBB | | 0xBB | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[2].samplerDA | | dmp_FragmentLightSource[2].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+2*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xBC | | 0xBC | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[3].samplerDA | | dmp_FragmentLightSource[3].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+3*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xBD | | 0xBD | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[4].samplerDA | | dmp_FragmentLightSource[4].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+4*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xBE | | 0xBE | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[5].samplerDA | | dmp_FragmentLightSource[5].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+5*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xBF | | 0xBF | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[6].samplerDA | | dmp_FragmentLightSource[6].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+6*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xC0 | | 0xC0 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentLightSource[7].samplerDA | | dmp_FragmentLightSource[7].samplerDA | ||
+ | | 0x0012C578 | ||
+ | | 0xA20+7*0x70+0x6C | ||
+ | | 0x01C8 ? | ||
|- | |- | ||
| 0xC1 | | 0xC1 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputD0 | | dmp_LightEnv.absLutInputD0 | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit12 (1 = disable?) | ||
|- | |- | ||
| 0xC2 | | 0xC2 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputD1 | | dmp_LightEnv.absLutInputD1 | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit13 (1 = disable?) | ||
|- | |- | ||
| 0xC3 | | 0xC3 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputSP | | dmp_LightEnv.absLutInputSP | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit14 (1 = disable?) | ||
|- | |- | ||
| 0xC4 | | 0xC4 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputFR | | dmp_LightEnv.absLutInputFR | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit15 (1 = disable?) | ||
|- | |- | ||
| 0xC5 | | 0xC5 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputRB | | dmp_LightEnv.absLutInputRB | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit16 (1 = disable?) | ||
|- | |- | ||
| 0xC6 | | 0xC6 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputRG | | dmp_LightEnv.absLutInputRG | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit17 (1 = disable?) | ||
|- | |- | ||
| 0xC7 | | 0xC7 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.absLutInputRR | | dmp_LightEnv.absLutInputRR | ||
+ | | 0x0012C5D8 | ||
+ | | ? | ||
+ | | 0x01D0 bit18 (1 = disable?) | ||
|- | |- | ||
| 0xC8 | | 0xC8 | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputD0 | | dmp_LightEnv.lutInputD0 | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit0-2 | ||
|- | |- | ||
| 0xC9 | | 0xC9 | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputD1 | | dmp_LightEnv.lutInputD1 | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit4-6 | ||
|- | |- | ||
| 0xCA | | 0xCA | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputSP | | dmp_LightEnv.lutInputSP | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit8-10 | ||
|- | |- | ||
| 0xCB | | 0xCB | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputFR | | dmp_LightEnv.lutInputFR | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit12-14 | ||
|- | |- | ||
| 0xCC | | 0xCC | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputRB | | dmp_LightEnv.lutInputRB | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit16-18 | ||
|- | |- | ||
| 0xCD | | 0xCD | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputRG | | dmp_LightEnv.lutInputRG | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit20-22 | ||
|- | |- | ||
| 0xCE | | 0xCE | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.lutInputRR | | dmp_LightEnv.lutInputRR | ||
+ | | 0x0012C6E8 | ||
+ | | ? | ||
+ | | 0x01D1 bit24-26 | ||
|- | |- | ||
| 0xCF | | 0xCF | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleD0 | | dmp_LightEnv.lutScaleD0 | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | | 0x01D2 bit0-3 | ||
|- | |- | ||
| 0xD0 | | 0xD0 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleD1 | | dmp_LightEnv.lutScaleD1 | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | | 0x01D2 bit4-7 | ||
|- | |- | ||
| 0xD1 | | 0xD1 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleSP | | dmp_LightEnv.lutScaleSP | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | | 0x01D2 bit8-11 | ||
|- | |- | ||
| 0xD2 | | 0xD2 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleFR | | dmp_LightEnv.lutScaleFR | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | | 0x01D2 bit12-15 | ||
|- | |- | ||
| 0xD3 | | 0xD3 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleRB | | dmp_LightEnv.lutScaleRB | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | |0x01D2 bit16-19 | ||
|- | |- | ||
| 0xD4 | | 0xD4 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleRG | | dmp_LightEnv.lutScaleRG | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | | 0x01D2 bit20-23 | ||
|- | |- | ||
| 0xD5 | | 0xD5 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_LightEnv.lutScaleRR | | dmp_LightEnv.lutScaleRR | ||
+ | | 0x00155404 | ||
+ | | ? | ||
+ | | 0x01D2 bit24-27 | ||
|- | |- | ||
| 0xD6 | | 0xD6 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentMaterial.samplerD0 | | dmp_FragmentMaterial.samplerD0 | ||
+ | | 0x0012C7D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xD7 | | 0xD7 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentMaterial.samplerD1 | | dmp_FragmentMaterial.samplerD1 | ||
+ | | 0x0012C7D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xD8 | | 0xD8 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentMaterial.samplerFR | | dmp_FragmentMaterial.samplerFR | ||
+ | | 0x0012C7D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xD9 | | 0xD9 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentMaterial.samplerRB | | dmp_FragmentMaterial.samplerRB | ||
+ | | 0x0012C7D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xDA | | 0xDA | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentMaterial.samplerRG | | dmp_FragmentMaterial.samplerRG | ||
+ | | 0x0012C7D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xDB | | 0xDB | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_FragmentMaterial.samplerRR | | dmp_FragmentMaterial.samplerRR | ||
+ | | 0x0012C7D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xDC | | 0xDC | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.shadowSelector | | dmp_LightEnv.shadowSelector | ||
+ | | 0x0012CE44 | ||
+ | | ? | ||
+ | | 0x01C3 bit24-25 | ||
|- | |- | ||
| 0xDD | | 0xDD | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.bumpSelector | | dmp_LightEnv.bumpSelector | ||
+ | | 0x0012CD88 | ||
+ | | ? | ||
+ | | 0x01C3 bit22-23 | ||
|- | |- | ||
| 0xDE | | 0xDE | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.bumpMode | | dmp_LightEnv.bumpMode | ||
+ | | 0x0012D4B4 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xDF | | 0xDF | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.bumpRenorm | | dmp_LightEnv.bumpRenorm | ||
+ | | 0x0012D8A0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE0 | | 0xE0 | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.config | | dmp_LightEnv.config | ||
+ | | 0x0012D5E4 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE1 | | 0xE1 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.invertShadow | | dmp_LightEnv.invertShadow | ||
+ | | 0x0012CF04 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE2 | | 0xE2 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.shadowPrimary | | dmp_LightEnv.shadowPrimary | ||
+ | | 0x0012CFD4 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE3 | | 0xE3 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.shadowSecondary | | dmp_LightEnv.shadowSecondary | ||
+ | | 0x0012D1B8 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE4 | | 0xE4 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.shadowAlpha | | dmp_LightEnv.shadowAlpha | ||
+ | | 0x0012D350 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE5 | | 0xE5 | ||
| GL_INT | | GL_INT | ||
| dmp_LightEnv.fresnelSelector | | dmp_LightEnv.fresnelSelector | ||
+ | | 0x0012D720 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE6 | | 0xE6 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.clampHighlights | | dmp_LightEnv.clampHighlights | ||
+ | | 0x0012D9B0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE7 | | 0xE7 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.lutEnabledD0 | | dmp_LightEnv.lutEnabledD0 | ||
+ | | 0x0012DA80 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE8 | | 0xE8 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.lutEnabledD1 | | dmp_LightEnv.lutEnabledD1 | ||
+ | | 0x0012DB58 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xE9 | | 0xE9 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_LightEnv.lutEnabledRefl | | dmp_LightEnv.lutEnabledRefl | ||
+ | | 0x0012C83C | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0xEA | | 0xEA | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[0].combineRgb | | dmp_TexEnv[0].combineRgb | ||
+ | | 0x0012DC2C | ||
+ | | ? | ||
+ | | 0xC2 | ||
|- | |- | ||
| 0xEB | | 0xEB | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[1].combineRgb | | dmp_TexEnv[1].combineRgb | ||
+ | | 0x0012DC2C | ||
+ | | ? | ||
+ | | 0xCA | ||
|- | |- | ||
| 0xEC | | 0xEC | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[2].combineRgb | | dmp_TexEnv[2].combineRgb | ||
+ | | 0x0012DC2C | ||
+ | | ? | ||
+ | | 0xD2 | ||
|- | |- | ||
| 0xED | | 0xED | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[3].combineRgb | | dmp_TexEnv[3].combineRgb | ||
+ | | 0x0012DC2C | ||
+ | | ? | ||
+ | | 0xDA | ||
|- | |- | ||
| 0xEE | | 0xEE | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[4].combineRgb | | dmp_TexEnv[4].combineRgb | ||
+ | | 0x0012DC2C | ||
+ | | ? | ||
+ | | 0xF2 | ||
|- | |- | ||
| 0xEF | | 0xEF | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[5].combineRgb | | dmp_TexEnv[5].combineRgb | ||
+ | | 0x0012DC2C | ||
+ | | ? | ||
+ | | 0xFA | ||
|- | |- | ||
| 0xF0 | | 0xF0 | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[0].combineAlpha | | dmp_TexEnv[0].combineAlpha | ||
+ | | 0x0012DD9C | ||
+ | | ? | ||
+ | | 0xC2 | ||
|- | |- | ||
| 0xF1 | | 0xF1 | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[1].combineAlpha | | dmp_TexEnv[1].combineAlpha | ||
+ | | 0x0012DD9C | ||
+ | | ? | ||
+ | | 0xCA | ||
|- | |- | ||
| 0xF2 | | 0xF2 | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[2].combineAlpha | | dmp_TexEnv[2].combineAlpha | ||
+ | | 0x0012DD9C | ||
+ | | ? | ||
+ | | 0xD2 | ||
|- | |- | ||
| 0xF3 | | 0xF3 | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[3].combineAlpha | | dmp_TexEnv[3].combineAlpha | ||
+ | | 0x0012DD9C | ||
+ | | ? | ||
+ | | 0xDA | ||
|- | |- | ||
| 0xF4 | | 0xF4 | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[4].combineAlpha | | dmp_TexEnv[4].combineAlpha | ||
+ | | 0x0012DD9C | ||
+ | | ? | ||
+ | | 0xF2 | ||
|- | |- | ||
| 0xF5 | | 0xF5 | ||
| GL_INT | | GL_INT | ||
| dmp_TexEnv[5].combineAlpha | | dmp_TexEnv[5].combineAlpha | ||
+ | | 0x0012DD9C | ||
+ | | ? | ||
+ | | 0xFA | ||
|- | |- | ||
| 0xF6 | | 0xF6 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[0].srcRgb | | dmp_TexEnv[0].srcRgb | ||
+ | | 0x0012DF08 | ||
+ | | ? | ||
+ | | 0xC0 | ||
|- | |- | ||
| 0xF7 | | 0xF7 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[1].srcRgb | | dmp_TexEnv[1].srcRgb | ||
+ | | 0x0012DF08 | ||
+ | | ? | ||
+ | | 0xC8 | ||
|- | |- | ||
| 0xF8 | | 0xF8 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[2].srcRgb | | dmp_TexEnv[2].srcRgb | ||
+ | | 0x0012DF08 | ||
+ | | ? | ||
+ | | 0xD0 | ||
|- | |- | ||
| 0xF9 | | 0xF9 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[3].srcRgb | | dmp_TexEnv[3].srcRgb | ||
+ | | 0x0012DF08 | ||
+ | | ? | ||
+ | | 0xD8 | ||
|- | |- | ||
| 0xFA | | 0xFA | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[4].srcRgb | | dmp_TexEnv[4].srcRgb | ||
+ | | 0x0012DF08 | ||
+ | | ? | ||
+ | | 0xF0 | ||
|- | |- | ||
| 0xFB | | 0xFB | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[5].srcRgb | | dmp_TexEnv[5].srcRgb | ||
+ | | 0x0012DF08 | ||
+ | | ? | ||
+ | | 0xF8 | ||
|- | |- | ||
| 0xFC | | 0xFC | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[0].srcAlpha | | dmp_TexEnv[0].srcAlpha | ||
+ | | 0x0012E0FC | ||
+ | | ? | ||
+ | | 0xC0 | ||
|- | |- | ||
| 0xFD | | 0xFD | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[1].srcAlpha | | dmp_TexEnv[1].srcAlpha | ||
+ | | 0x0012E0FC | ||
+ | | ? | ||
+ | | 0xC8 | ||
|- | |- | ||
| 0xFE | | 0xFE | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[2].srcAlpha | | dmp_TexEnv[2].srcAlpha | ||
+ | | 0x0012E0FC | ||
+ | | ? | ||
+ | | 0xD0 | ||
|- | |- | ||
| 0xFF | | 0xFF | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[3].srcAlpha | | dmp_TexEnv[3].srcAlpha | ||
+ | | 0x0012E0FC | ||
+ | | ? | ||
+ | | 0xD8 | ||
|- | |- | ||
| 0x100 | | 0x100 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[4].srcAlpha | | dmp_TexEnv[4].srcAlpha | ||
+ | | 0x0012E0FC | ||
+ | | ? | ||
+ | | 0xF0 | ||
|- | |- | ||
| 0x101 | | 0x101 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[5].srcAlpha | | dmp_TexEnv[5].srcAlpha | ||
+ | | 0x0012E0FC | ||
+ | | ? | ||
+ | | 0xF8 | ||
|- | |- | ||
| 0x102 | | 0x102 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[0].operandRgb | | dmp_TexEnv[0].operandRgb | ||
+ | | 0x0012E2F0 | ||
+ | | ? | ||
+ | | 0xC1 | ||
|- | |- | ||
| 0x103 | | 0x103 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[1].operandRgb | | dmp_TexEnv[1].operandRgb | ||
+ | | 0x0012E2F0 | ||
+ | | ? | ||
+ | | 0xC9 | ||
|- | |- | ||
| 0x104 | | 0x104 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[2].operandRgb | | dmp_TexEnv[2].operandRgb | ||
+ | | 0x0012E2F0 | ||
+ | | ? | ||
+ | | 0xD1 | ||
|- | |- | ||
| 0x105 | | 0x105 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[3].operandRgb | | dmp_TexEnv[3].operandRgb | ||
+ | | 0x0012E2F0 | ||
+ | | ? | ||
+ | | 0xD9 | ||
|- | |- | ||
| 0x106 | | 0x106 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[4].operandRgb | | dmp_TexEnv[4].operandRgb | ||
+ | | 0x0012E2F0 | ||
+ | | ? | ||
+ | | 0xF1 | ||
|- | |- | ||
| 0x107 | | 0x107 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[5].operandRgb | | dmp_TexEnv[5].operandRgb | ||
+ | | 0x0012E2F0 | ||
+ | | ? | ||
+ | | 0xF9 | ||
|- | |- | ||
| 0x108 | | 0x108 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[0].operandAlpha | | dmp_TexEnv[0].operandAlpha | ||
+ | | 0x0012E51C | ||
+ | | ? | ||
+ | | 0xC1 | ||
|- | |- | ||
| 0x109 | | 0x109 | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[1].operandAlpha | | dmp_TexEnv[1].operandAlpha | ||
+ | | 0x0012E51C | ||
+ | | ? | ||
+ | | 0xC9 | ||
|- | |- | ||
| 0x10A | | 0x10A | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[2].operandAlpha | | dmp_TexEnv[2].operandAlpha | ||
+ | | 0x0012E51C | ||
+ | | ? | ||
+ | | 0xD1 | ||
|- | |- | ||
| 0x10B | | 0x10B | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[3].operandAlpha | | dmp_TexEnv[3].operandAlpha | ||
+ | | 0x0012E51C | ||
+ | | ? | ||
+ | | 0xD9 | ||
|- | |- | ||
| 0x10C | | 0x10C | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[4].operandAlpha | | dmp_TexEnv[4].operandAlpha | ||
+ | | 0x0012E51C | ||
+ | | ? | ||
+ | | 0xF1 | ||
|- | |- | ||
| 0x10D | | 0x10D | ||
| GL_INT_VEC3 | | GL_INT_VEC3 | ||
| dmp_TexEnv[5].operandAlpha | | dmp_TexEnv[5].operandAlpha | ||
+ | | 0x0012E51C | ||
+ | | ? | ||
+ | | 0xF9 | ||
|- | |- | ||
| 0x10E | | 0x10E | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[0].scaleRgb | | dmp_TexEnv[0].scaleRgb | ||
+ | | 0x00155464 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x10F | | 0x10F | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[1].scaleRgb | | dmp_TexEnv[1].scaleRgb | ||
+ | | 0x00155464 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x110 | | 0x110 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[2].scaleRgb | | dmp_TexEnv[2].scaleRgb | ||
+ | | 0x00155464 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x111 | | 0x111 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[3].scaleRgb | | dmp_TexEnv[3].scaleRgb | ||
+ | | 0x00155464 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x112 | | 0x112 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[4].scaleRgb | | dmp_TexEnv[4].scaleRgb | ||
+ | | 0x00155464 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x113 | | 0x113 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[5].scaleRgb | | dmp_TexEnv[5].scaleRgb | ||
+ | | 0x00155464 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x114 | | 0x114 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[0].scaleAlpha | | dmp_TexEnv[0].scaleAlpha | ||
+ | | 0x00158EDC | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x115 | | 0x115 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[1].scaleAlpha | | dmp_TexEnv[1].scaleAlpha | ||
+ | | 0x00158EDC | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x116 | | 0x116 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[2].scaleAlpha | | dmp_TexEnv[2].scaleAlpha | ||
+ | | 0x00158EDC | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x117 | | 0x117 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[3].scaleAlpha | | dmp_TexEnv[3].scaleAlpha | ||
+ | | 0x00158EDC | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x118 | | 0x118 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[4].scaleAlpha | | dmp_TexEnv[4].scaleAlpha | ||
+ | | 0x00158EDC | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x119 | | 0x119 | ||
| GL_FLOAT | | GL_FLOAT | ||
| dmp_TexEnv[5].scaleAlpha | | dmp_TexEnv[5].scaleAlpha | ||
+ | | 0x00158EDC | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x11A | | 0x11A | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[0].constRgba | | dmp_TexEnv[0].constRgba | ||
+ | | 0x00158FF4 | ||
+ | | ? | ||
+ | | 0xC3 | ||
|- | |- | ||
| 0x11B | | 0x11B | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[1].constRgba | | dmp_TexEnv[1].constRgba | ||
+ | | 0x00158FF4 | ||
+ | | ? | ||
+ | | 0xCB | ||
|- | |- | ||
| 0x11C | | 0x11C | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[2].constRgba | | dmp_TexEnv[2].constRgba | ||
+ | | 0x00158FF4 | ||
+ | | ? | ||
+ | | 0xD3 | ||
|- | |- | ||
| 0x11D | | 0x11D | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[3].constRgba | | dmp_TexEnv[3].constRgba | ||
+ | | 0x00158FF4 | ||
+ | | ? | ||
+ | | 0xDB | ||
|- | |- | ||
| 0x11E | | 0x11E | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[4].constRgba | | dmp_TexEnv[4].constRgba | ||
+ | | 0x00158FF4 | ||
+ | | ? | ||
+ | | 0xF3 | ||
|- | |- | ||
| 0x11F | | 0x11F | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[5].constRgba | | dmp_TexEnv[5].constRgba | ||
+ | | 0x00158FF4 | ||
+ | | ? | ||
+ | | 0xFB | ||
|- | |- | ||
| 0x120 | | 0x120 | ||
| GL_FLOAT_VEC4 | | GL_FLOAT_VEC4 | ||
| dmp_TexEnv[0].bufferColor | | dmp_TexEnv[0].bufferColor | ||
+ | | 0x001591C0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x121 | | 0x121 | ||
| GL_INT_VEC2 | | GL_INT_VEC2 | ||
| dmp_TexEnv[1].bufferInput | | dmp_TexEnv[1].bufferInput | ||
+ | | 0x0012E6D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x122 | | 0x122 | ||
| GL_INT_VEC2 | | GL_INT_VEC2 | ||
| dmp_TexEnv[2].bufferInput | | dmp_TexEnv[2].bufferInput | ||
+ | | 0x0012E6D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x123 | | 0x123 | ||
| GL_INT_VEC2 | | GL_INT_VEC2 | ||
| dmp_TexEnv[3].bufferInput | | dmp_TexEnv[3].bufferInput | ||
+ | | 0x0012E6D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x124 | | 0x124 | ||
| GL_INT_VEC2 | | GL_INT_VEC2 | ||
| dmp_TexEnv[4].bufferInput | | dmp_TexEnv[4].bufferInput | ||
+ | | 0x0012E6D0 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x125 | | 0x125 | ||
| GL_INT | | GL_INT | ||
| dmp_Fog.mode | | dmp_Fog.mode | ||
+ | | 0x0012E7F8 | ||
+ | | ? | ||
+ | | 0x00E0 bit0-2 (5 -> fog (0x0B60), 7 -> gas (0x6050)) | ||
|- | |- | ||
| 0x126 | | 0x126 | ||
| GL_FLOAT_VEC3 | | GL_FLOAT_VEC3 | ||
| dmp_Fog.color | | dmp_Fog.color | ||
+ | | 0x00159338 | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
| 0x127 | | 0x127 | ||
| GL_BOOL | | GL_BOOL | ||
| dmp_Fog.zFlip | | dmp_Fog.zFlip | ||
+ | | 0x0012E9DC | ||
+ | | ? | ||
+ | | 0x00E0 bit16 | ||
|- | |- | ||
| 0x128 | | 0x128 | ||
| GL_SAMPLER_1D | | GL_SAMPLER_1D | ||
| dmp_Fog.sampler | | dmp_Fog.sampler | ||
+ | | 0x0012EAA4 | ||
+ | | ? | ||
+ | | ? | ||
+ | |} | ||
+ | |||
+ | On steeldiver's uniform handlers : R1 is a pointer to the current shader program object, R12 is a pointer to the data the uniform is being set to. | ||
+ | |||
+ | == Other Symbols == | ||
+ | |||
+ | The list above is not exhaustive. A number of other strings specific to Nintendo's rendering framework have been found. Below is a table listing those strings including the location they were found in. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Name | ||
+ | ! Context | ||
+ | ! Occurrence | ||
+ | |- | ||
+ | | dmp_Point.viewport.xy | ||
+ | | Name of a shader uniform | ||
+ | | CTRAging's romfs:/gpu/GasCessna/shader.shbin | ||
+ | |- | ||
+ | | dmp_Point.distanceAttenuation | ||
+ | | Name of a shader uniform | ||
+ | | CTRAging's romfs:/gpu/GasCessna/shader.shbin | ||
+ | |- | ||
+ | | dmp_Point.Position | ||
+ | | Name of a shader uniform | ||
+ | | CTRAging's romfs:/gpu/GasCessna/shader.shbin | ||
+ | |- | ||
+ | | dmp_Point.PointSize | ||
+ | | Name of a shader uniform | ||
+ | | CTRAging's romfs:/gpu/GasCessna/shader.shbin | ||
|} | |} |
Latest revision as of 18:38, 25 August 2015
This page's goal is to describe parts of Nintendo's OpenGL implementation for the 3DS as we reverse engineer it to better understand how to use the PICA200. Some of the information on this page is specific to Steeldiver : Sub Wars. The reason for this is that it's a fairly graphics-heavy game that's available on the eShop for free, so it seems like a good target for a community REing effort.
Description[edit]
The PICA200 is an OpenGL ES 1.1 compliant GPU manufactured by DMP. It comes loaded with a number of extensions that make it similar to an OpenGL ES 2.0 compliant GPU (ability to run programmable vertex/geometry shaders, for instance). Because of this, Nintendo wrapped GPU access into an OpenGL ES 2.0 implementation with some limitations. As the fragment stage of the pipeline is non-programmable, Nintendo instead gives developers the ability to configure a number of fragment-related values through glGetUniformLocation and glUniformXX. See below for the full list.
Shader program structure[edit]
When uniform values are set (in shm_uniformfv/shm_uniformiv), they are attached to the current shader program and stored into the corresponding shader program structure. They are later written to the GPU command buffer in __shv_validateShaderValidator or equivalent.
Shader program struct :
Offset | Size | Description |
---|---|---|
0x000 | 0x04 | Value 0x0 ? |
0x004 | 0x04 | Program ID |
0x008 | 0x04 | Value -1 ? |
0x01C | 0x04 | Pointer to program-specific uniform table |
0x020 | 0x04 | Total number of uniforms for program |
0x028 | 0x04 | Number of program-specific uniforms |
0x414 | 0x04 | Pointer to vertex shader struct |
0x64C | 0x04 | Value for GPU register 0x0104 |
0x7C0 | 0x04 | Bitfield containing dmp_FragmentLightSource[n].shadowed values |
0x7D8 | 0x04 | Bitfield containing dmp_FragmentLightSource[n].geomFactor0 / dmp_FragmentLightSource[n].geomFactor1 / dmp_FragmentLightSource[n].twoSideDiffuse values |
0xA20 | 0x70*8 | Table of structs for 8 dmp_FragmentLightSource |
dmp_FragmentLightSource struct:
Offset | Size | Description |
---|---|---|
0x00 | 0x01 | dmp_FragmentLightSource[k].enabled |
0x04 | 0x10 | dmp_FragmentLightSource[k].ambient (float[4]) |
0x14 | 0x10 | dmp_FragmentLightSource[k].diffuse (float[4]) |
0x24 | 0x10 | dmp_FragmentLightSource[k].specular0 (float[4]) |
0x34 | 0x10 | dmp_FragmentLightSource[k].specular1 (float[4]) |
0x44 | 0x10 | dmp_FragmentLightSource[k].position (float[4]) |
0x54 | 0x10 | dmp_FragmentLightSource[k].spotDirection (float[3]) |
0x60 | 0x04 | dmp_FragmentLightSource[k].samplerSP (u32) |
0x64 | 0x04 | dmp_FragmentLightSource[k].distanceAttenuationBias (float) |
0x68 | 0x04 | dmp_FragmentLightSource[k].distanceAttenuationScale (float) |
vertex/geometry shader struct:
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | Pointer to shader code data |
0x4 | 0x4 | Size of shader code (in words) |
0x8 | 0x4 | Pointer to shader opdesc data |
0xC | 0x4 | Size of shader opdescs (in words) |
Proposed REing methodology[edit]
1. Choose a "uniform" you want to RE below
2. Take note of its ID and type !
3. Depending on whether its a float or not, go through the gigantic switches in shm_uniformfv or shm_uniformiv (non-float) based on the ID of your uniform (in the case of steeldiver: sub wars you can now just go directly to the handler as it's listed in the table below)
4. Once you find the piece of code specific to your uniform, take note of how the values passed to shm_uniformfv/shm_uniformiv are written to the shader object
5. Go through __shv_validateShaderValidator looking for where those fields written to in shm_uniformfv/shm_uniformiv are used and written to the GPU command buffer either directly or through __cb_writeRegs, __cb_multiWriteReg or __cb_fillRegs.
6. Document findings on 3Dbrew ! (that's the most important step)
Fragment "uniform" list[edit]
Uniform ID | Type | Name | Handler address (Steeldiver : Sub Wars) | Shader Program struct offset | GPU Register |
---|---|---|---|---|---|
0x0 | GL_BOOL | dmp_Texture[0].perspectiveShadow | 0x0012A504 | ? | 0x008B bit0 (0 = enable??) |
0x1 | GL_FLOAT | dmp_Texture[0].shadowZBias | 0x00155584 | 0xE44 | ? |
0x2 | GL_FLOAT | dmp_Texture[0].shadowZScale | 0x001556A0 | 0xE48 | ? |
0x3 | GL_INT | dmp_Texture[0].samplerType | 0x0012A5D0 | ? | ? |
0x4 | GL_INT | dmp_Texture[1].samplerType | 0x0012A6F8 | ? | ? |
0x5 | GL_INT | dmp_Texture[2].samplerType | 0x0012A774 | ? | ? |
0x6 | GL_INT | dmp_Texture[3].samplerType | 0x0012A7F0 | ? | 0x0080 bit10 (?) |
0x7 | GL_INT | dmp_Texture[2].texcoord | 0x0012A8B4 | ? | 0x0080 bit13 (1 = use texcoords from texture unit 1) |
0x8 | GL_INT | dmp_Texture[3].texcoord | 0x0012A97C | ? | 0x0080 bit8-9 (0-2 = use texcoords from texture unit 0-2 resp., 3 = forbidden?) |
0x9 | GL_INT | dmp_Texture[3].ptRgbMap | 0x0012AA54 | ? | 0x00A8 bit6-9 |
0xA | GL_INT | dmp_Texture[3].ptAlphaMap | 0x0012AB94 | ? | 0x00A8 bit10-13 |
0xB | GL_BOOL | dmp_Texture[3].ptAlphaSeparate | 0x0012ACD4 | ? | 0x00A8 bit14 |
0xC | GL_INT | dmp_Texture[3].ptClampU | 0x0012ADB8 | ? | 0x00A8 bit0-2 |
0xD | GL_INT | dmp_Texture[3].ptClampV | 0x0012AEC0 | ? | 0x00A8 bit3-5 |
0xE | GL_INT | dmp_Texture[3].ptShiftU | 0x0012AFD0 | ? | 0x00A8 bit16-17 |
0xF | GL_INT | dmp_Texture[3].ptShiftV | 0x0012B0A0 | ? | 0x00A8 bit18-19 |
0x10 | GL_INT | dmp_Texture[3].ptMinFilter | 0x0012B168 | ? | 0x00AC bit0-2 |
0x11 | GL_INT | dmp_Texture[3].ptTexWidth | 0x0012B270 | ? | 0x00AC bit11-18 |
0x12 | GL_INT | dmp_Texture[3].ptTexOffset | 0x0012B334 | ? | 0x00AD bit0-7 |
0x13 | GL_FLOAT | dmp_Texture[3].ptTexBias | 0x001556B4 | 0xE10 | 0x00A8 bit20-27 |
0x14 | GL_BOOL | dmp_Texture[3].ptNoiseEnable | 0x0012B3E0 | ? | 0x00A8 bit15 |
0x15 | GL_FLOAT_VEC3 | dmp_Texture[3].ptNoiseU | 0x00155878 | 0xE14 | 0x00A9, 0x00AB |
0x16 | GL_FLOAT_VEC3 | dmp_Texture[3].ptNoiseV | 0x00155A7C | 0xE20 | 0x00AA, 0x00AB |
0x17 | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerRgbMap | 0x0012B4B0 | 0xDF0 | ? |
0x18 | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerAlphaMap | 0x0012B4F4 | 0xDF4 | ? |
0x19 | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerNoiseMap | 0x0012B540 | 0xDF8 | ? |
0x1A | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerR | 0x0012B58C | 0xDFC | ? |
0x1B | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerG | 0x0012B5D8 | 0xE00 | ? |
0x1C | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerB | 0x0012B624 | 0xE04 | ? |
0x1D | GL_SAMPLER_1D | dmp_Texture[3].ptSamplerA | 0x0012B670 | 0xE08 | ? |
0x1E | GL_INT | dmp_FragOperation.mode | 0x0012B6BC | 0xE38 | ? |
0x1F | GL_FLOAT | dmp_FragOperation.penumbraScale | 0x00155C98 | 0xE40 | ? |
0x20 | GL_FLOAT | dmp_FragOperation.penumbraBias | 0x00155D8C | 0xE3C | ? |
0x21 | GL_FLOAT | dmp_FragOperation.wScale | 0x00155E9C | 0xE4C | ? |
0x22 | GL_BOOL | dmp_FragOperation.enableClippingPlane | 0x0012EAEC | 0x568 | 0x0047 bit0 |
0x23 | GL_FLOAT_VEC4 | dmp_FragOperation.clippingPlane | 0x00159474 | 0xE50 | ? |
0x24 | GL_BOOL | dmp_FragOperation.enableAlphaTest | 0x0012EBAC | 0x64C | ? |
0x25 | GL_INT | dmp_FragOperation.alphaTestFunc | 0x0012EC64 | 0x64C | ? |
0x26 | GL_FLOAT | dmp_FragOperation.alphaRefValue | 0x0015971C | 0x64C ? | ? |
0x27 | GL_FLOAT_VEC3 | dmp_Gas.lightXY | 0x001560EC | 0xE84 | 0x0120 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23) |
0x28 | GL_FLOAT_VEC4 | dmp_Gas.lightZ | 0x00156268 | 0xE90 | 0x0121 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23), 0x0122 (vec[3] -> bit 0-7) |
0x29 | GL_FLOAT | dmp_Gas.deltaZ | 0x001564D4 | 0xEA0 | 0x0126 bit0-23 |
0x2A | GL_FLOAT | dmp_Gas.accMax | 0x001565C0 | 0xEA4 | 0x00E5 |
0x2B | GL_BOOL | dmp_Gas.autoAcc | 0x0012B790 | 0xE74 | ? |
0x2C | GL_FLOAT | dmp_Gas.attenuation | 0x00156684 | 0xEA8 | 0x00E4 |
0x2D | GL_INT | dmp_Gas.colorLutInput | 0x0012B7A4 | 0x640 | 0x0122 bit8 (0x6060/0x6061 -> 0/1) |
0x2E | GL_INT | dmp_Gas.shadingDensitySrc | 0x0012B854 | 0x624 | 0x00E0 bit3 (0x605E/0x605F -> 0/1) |
0x2F | GL_SAMPLER_1D | dmp_Gas.samplerTR | 0x0012B910 | 0xE78 | ? |
0x30 | GL_SAMPLER_1D | dmp_Gas.samplerTG | 0x0012B95C | 0xE7C | ? |
0x31 | GL_SAMPLER_1D | dmp_Gas.samplerTB | 0x0012B9A8 | 0xE80 | ? |
0x32 | GL_BOOL | dmp_FragmentLighting.enabled | 0x0012B9F4 | 0x590 | 0x00A8 bit0, 0x01C6 (0 = enabled) |
0x33 | GL_FLOAT_VEC4 | dmp_FragmentLighting.ambient | 0x00156744 | 0xA10 | 0x01C0? |
0x34 | GL_FLOAT_VEC4 | dmp_FragmentMaterial.emission | 0x00156E1C | 0xDE0 | 0x01C0? |
0x35 | GL_FLOAT_VEC4 | dmp_FragmentMaterial.ambient | 0x0015696C | 0xDA0 | 0x01C0 |
0x36 | GL_FLOAT_VEC4 | dmp_FragmentMaterial.diffuse | 0x00157048 | 0xDB0 | ? |
0x37 | GL_FLOAT_VEC4 | dmp_FragmentMaterial.specular0 | 0x001572E0 | 0xDC0 | ? |
0x38 | GL_FLOAT_VEC4 | dmp_FragmentMaterial.specular1 | 0x0015756C | 0xDD0 | ? |
0x39 | GL_BOOL | dmp_FragmentLightSource[0].enabled | 0x0012BD24 | 0xA20+0*0x70+0x00 | 0x01C5 |
0x3A | GL_BOOL | dmp_FragmentLightSource[1].enabled | 0x0012BD24 | 0xA20+1*0x70+0x00 | 0x01C5 |
0x3B | GL_BOOL | dmp_FragmentLightSource[2].enabled | 0x0012BD24 | 0xA20+2*0x70+0x00 | 0x01C5 |
0x3C | GL_BOOL | dmp_FragmentLightSource[3].enabled | 0x0012BD24 | 0xA20+3*0x70+0x00 | 0x01C5 |
0x3D | GL_BOOL | dmp_FragmentLightSource[4].enabled | 0x0012BD24 | 0xA20+4*0x70+0x00 | 0x01C5 |
0x3E | GL_BOOL | dmp_FragmentLightSource[5].enabled | 0x0012BD24 | 0xA20+5*0x70+0x00 | 0x01C5 |
0x3F | GL_BOOL | dmp_FragmentLightSource[6].enabled | 0x0012BD24 | 0xA20+6*0x70+0x00 | 0x01C5 |
0x40 | GL_BOOL | dmp_FragmentLightSource[7].enabled | 0x0012BD24 | 0xA20+7*0x70+0x00 | 0x01C5 |
0x41 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[0].ambient | 0x001579CC | 0xA20+0*0x70+0x04 | 0x0143 |
0x42 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[1].ambient | 0x001579CC | 0xA20+1*0x70+0x04 | 0x0153 |
0x43 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[2].ambient | 0x001579CC | 0xA20+2*0x70+0x04 | 0x0163 |
0x44 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[3].ambient | 0x001579CC | 0xA20+3*0x70+0x04 | 0x0173 |
0x45 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[4].ambient | 0x001579CC | 0xA20+4*0x70+0x04 | 0x0183 |
0x46 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[5].ambient | 0x001579CC | 0xA20+5*0x70+0x04 | 0x0193 |
0x47 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[6].ambient | 0x001579CC | 0xA20+6*0x70+0x04 | 0x01A3 |
0x48 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[7].ambient | 0x001579CC | 0xA20+7*0x70+0x04 | 0x01B3 |
0x49 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[0].diffuse | 0x00157C10 | 0xA20+0*0x70+0x14 | 0x0142 |
0x4A | GL_FLOAT_VEC4 | dmp_FragmentLightSource[1].diffuse | 0x00157C10 | 0xA20+1*0x70+0x14 | 0x0152 |
0x4B | GL_FLOAT_VEC4 | dmp_FragmentLightSource[2].diffuse | 0x00157C10 | 0xA20+2*0x70+0x14 | 0x0162 |
0x4C | GL_FLOAT_VEC4 | dmp_FragmentLightSource[3].diffuse | 0x00157C10 | 0xA20+3*0x70+0x14 | 0x0172 |
0x4D | GL_FLOAT_VEC4 | dmp_FragmentLightSource[4].diffuse | 0x00157C10 | 0xA20+4*0x70+0x14 | 0x0182 |
0x4E | GL_FLOAT_VEC4 | dmp_FragmentLightSource[5].diffuse | 0x00157C10 | 0xA20+5*0x70+0x14 | 0x0192 |
0x4F | GL_FLOAT_VEC4 | dmp_FragmentLightSource[6].diffuse | 0x00157C10 | 0xA20+6*0x70+0x14 | 0x01A2 |
0x50 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[7].diffuse | 0x00157C10 | 0xA20+7*0x70+0x14 | 0x01B2 |
0x51 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[0].specular0 | 0x00157E5C | 0xA20+0*0x70+0x24 | 0x01C8 ? |
0x52 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[1].specular0 | 0x00157E5C | 0xA20+1*0x70+0x24 | 0x01C8 ? |
0x53 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[2].specular0 | 0x00157E5C | 0xA20+2*0x70+0x24 | 0x01C8 ? |
0x54 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[3].specular0 | 0x00157E5C | 0xA20+3*0x70+0x24 | 0x01C8 ? |
0x55 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[4].specular0 | 0x00157E5C | 0xA20+4*0x70+0x24 | 0x01C8 ? |
0x56 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[5].specular0 | 0x00157E5C | 0xA20+5*0x70+0x24 | 0x01C8 ? |
0x57 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[6].specular0 | 0x00157E5C | 0xA20+6*0x70+0x24 | 0x01C8 ? |
0x58 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[7].specular0 | 0x00157E5C | 0xA20+7*0x70+0x24 | 0x01C8 ? |
0x59 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[0].specular1 | 0x001580B4 | 0xA20+0*0x70+0x34 | 0x01C8 ? |
0x5A | GL_FLOAT_VEC4 | dmp_FragmentLightSource[1].specular1 | 0x001580B4 | 0xA20+1*0x70+0x34 | 0x01C8 ? |
0x5B | GL_FLOAT_VEC4 | dmp_FragmentLightSource[2].specular1 | 0x001580B4 | 0xA20+2*0x70+0x34 | 0x01C8 ? |
0x5C | GL_FLOAT_VEC4 | dmp_FragmentLightSource[3].specular1 | 0x001580B4 | 0xA20+3*0x70+0x34 | 0x01C8 ? |
0x5D | GL_FLOAT_VEC4 | dmp_FragmentLightSource[4].specular1 | 0x001580B4 | 0xA20+4*0x70+0x34 | 0x01C8 ? |
0x5E | GL_FLOAT_VEC4 | dmp_FragmentLightSource[5].specular1 | 0x001580B4 | 0xA20+5*0x70+0x34 | 0x01C8 ? |
0x5F | GL_FLOAT_VEC4 | dmp_FragmentLightSource[6].specular1 | 0x001580B4 | 0xA20+6*0x70+0x34 | 0x01C8 ? |
0x60 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[7].specular1 | 0x001580B4 | 0xA20+7*0x70+0x34 | 0x01C8 ? |
0x61 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[0].position | 0x001584B0 | 0xA20+0*0x70+0x44 | 0x01C8 ? |
0x62 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[1].position | 0x001584B0 | 0xA20+1*0x70+0x44 | 0x01C8 ? |
0x63 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[2].position | 0x001584B0 | 0xA20+2*0x70+0x44 | 0x01C8 ? |
0x64 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[3].position | 0x001584B0 | 0xA20+3*0x70+0x44 | 0x01C8 ? |
0x65 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[4].position | 0x001584B0 | 0xA20+4*0x70+0x44 | 0x01C8 ? |
0x66 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[5].position | 0x001584B0 | 0xA20+5*0x70+0x44 | 0x01C8 ? |
0x67 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[6].position | 0x001584B0 | 0xA20+6*0x70+0x44 | 0x01C8 ? |
0x68 | GL_FLOAT_VEC4 | dmp_FragmentLightSource[7].position | 0x001584B0 | 0xA20+7*0x70+0x44 | 0x01C8 ? |
0x69 | GL_FLOAT_VEC3 | dmp_FragmentLightSource[0].spotDirection | 0x001587E4 | 0xA20+0*0x70+0x54 | 0x01C8 ? |
0x6A | GL_FLOAT_VEC3 | dmp_FragmentLightSource[1].spotDirection | 0x001587E4 | 0xA20+1*0x70+0x54 | 0x01C8 ? |
0x6B | GL_FLOAT_VEC3 | dmp_FragmentLightSource[2].spotDirection | 0x001587E4 | 0xA20+2*0x70+0x54 | 0x01C8 ? |
0x6C | GL_FLOAT_VEC3 | dmp_FragmentLightSource[3].spotDirection | 0x001587E4 | 0xA20+3*0x70+0x54 | 0x01C8 ? |
0x6D | GL_FLOAT_VEC3 | dmp_FragmentLightSource[4].spotDirection | 0x001587E4 | 0xA20+4*0x70+0x54 | 0x01C8 ? |
0x6E | GL_FLOAT_VEC3 | dmp_FragmentLightSource[5].spotDirection | 0x001587E4 | 0xA20+5*0x70+0x54 | 0x01C8 ? |
0x6F | GL_FLOAT_VEC3 | dmp_FragmentLightSource[6].spotDirection | 0x001587E4 | 0xA20+6*0x70+0x54 | 0x01C8 ? |
0x70 | GL_FLOAT_VEC3 | dmp_FragmentLightSource[7].spotDirection | 0x001587E4 | 0xA20+7*0x70+0x54 | 0x01C8 ? |
0x71 | GL_BOOL | dmp_FragmentLightSource[0].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x72 | GL_BOOL | dmp_FragmentLightSource[1].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x73 | GL_BOOL | dmp_FragmentLightSource[2].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x74 | GL_BOOL | dmp_FragmentLightSource[3].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x75 | GL_BOOL | dmp_FragmentLightSource[4].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x76 | GL_BOOL | dmp_FragmentLightSource[5].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x77 | GL_BOOL | dmp_FragmentLightSource[6].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x78 | GL_BOOL | dmp_FragmentLightSource[7].shadowed | 0x0012C20C | 0x7C0 | 0x01C8 ? |
0x79 | GL_BOOL | dmp_FragmentLightSource[0].geomFactor0 | 0x0012C018 | 0x7D8 | 0x0149 bit2 |
0x7A | GL_BOOL | dmp_FragmentLightSource[1].geomFactor0 | 0x0012C018 | 0x7D8 | 0x0159 bit2 |
0x7B | GL_BOOL | dmp_FragmentLightSource[2].geomFactor0 | 0x0012C018 | 0x7D8 | 0x0169 bit2 |
0x7C | GL_BOOL | dmp_FragmentLightSource[3].geomFactor0 | 0x0012C018 | 0x7D8 | 0x0179 bit2 |
0x7D | GL_BOOL | dmp_FragmentLightSource[4].geomFactor0 | 0x0012C018 | 0x7D8 | 0x0189 bit2 |
0x7E | GL_BOOL | dmp_FragmentLightSource[5].geomFactor0 | 0x0012C018 | 0x7D8 | 0x0199 bit2 |
0x7F | GL_BOOL | dmp_FragmentLightSource[6].geomFactor0 | 0x0012C018 | 0x7D8 | 0x01A9 bit2 |
0x80 | GL_BOOL | dmp_FragmentLightSource[7].geomFactor0 | 0x0012C018 | 0x7D8 | 0x01B9 bit2 |
0x81 | GL_BOOL | dmp_FragmentLightSource[0].geomFactor1 | 0x0012C114 | 0x7D8 | 0x0149 bit3 |
0x82 | GL_BOOL | dmp_FragmentLightSource[1].geomFactor1 | 0x0012C114 | 0x7D8 | 0x0159 bit3 |
0x83 | GL_BOOL | dmp_FragmentLightSource[2].geomFactor1 | 0x0012C114 | 0x7D8 | 0x0169 bit3 |
0x84 | GL_BOOL | dmp_FragmentLightSource[3].geomFactor1 | 0x0012C114 | 0x7D8 | 0x0179 bit3 |
0x85 | GL_BOOL | dmp_FragmentLightSource[4].geomFactor1 | 0x0012C114 | 0x7D8 | 0x0189 bit3 |
0x86 | GL_BOOL | dmp_FragmentLightSource[5].geomFactor1 | 0x0012C114 | 0x7D8 | 0x0199 bit3 |
0x87 | GL_BOOL | dmp_FragmentLightSource[6].geomFactor1 | 0x0012C114 | 0x7D8 | 0x01A9 bit3 |
0x88 | GL_BOOL | dmp_FragmentLightSource[7].geomFactor1 | 0x0012C114 | 0x7D8 | 0x01B9 bit3 |
0x89 | GL_BOOL | dmp_FragmentLightSource[0].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x0149 bit1 |
0x8A | GL_BOOL | dmp_FragmentLightSource[1].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x0159 bit1 |
0x8B | GL_BOOL | dmp_FragmentLightSource[2].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x0169 bit1 |
0x8C | GL_BOOL | dmp_FragmentLightSource[3].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x0179 bit1 |
0x8D | GL_BOOL | dmp_FragmentLightSource[4].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x0189 bit1 |
0x8E | GL_BOOL | dmp_FragmentLightSource[5].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x0199 bit1 |
0x8F | GL_BOOL | dmp_FragmentLightSource[6].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x01A9 bit1 |
0x90 | GL_BOOL | dmp_FragmentLightSource[7].twoSideDiffuse | 0x0012BF10 | 0x7D8 | 0x01B9 bit1 |
0x91 | GL_SAMPLER_1D | dmp_FragmentLightSource[0].samplerSP | 0x0012C31C | 0xA20+0*0x70+0x60 | 0x01C8 ? |
0x92 | GL_SAMPLER_1D | dmp_FragmentLightSource[1].samplerSP | 0x0012C31C | 0xA20+1*0x70+0x60 | 0x01C8 ? |
0x93 | GL_SAMPLER_1D | dmp_FragmentLightSource[2].samplerSP | 0x0012C31C | 0xA20+2*0x70+0x60 | 0x01C8 ? |
0x94 | GL_SAMPLER_1D | dmp_FragmentLightSource[3].samplerSP | 0x0012C31C | 0xA20+3*0x70+0x60 | 0x01C8 ? |
0x95 | GL_SAMPLER_1D | dmp_FragmentLightSource[4].samplerSP | 0x0012C31C | 0xA20+4*0x70+0x60 | 0x01C8 ? |
0x96 | GL_SAMPLER_1D | dmp_FragmentLightSource[5].samplerSP | 0x0012C31C | 0xA20+5*0x70+0x60 | 0x01C8 ? |
0x97 | GL_SAMPLER_1D | dmp_FragmentLightSource[6].samplerSP | 0x0012C31C | 0xA20+6*0x70+0x60 | 0x01C8 ? |
0x98 | GL_SAMPLER_1D | dmp_FragmentLightSource[7].samplerSP | 0x0012C31C | 0xA20+7*0x70+0x60 | 0x01C8 ? |
0x99 | GL_BOOL | dmp_FragmentLightSource[0].spotEnabled | 0x0012C380 | ? | 0x01C4 bit3 (1 = disable?) |
0x9A | GL_BOOL | dmp_FragmentLightSource[1].spotEnabled | 0x0012C380 | ? | 0x01C4 bit4 (1 = disable?) |
0x9B | GL_BOOL | dmp_FragmentLightSource[2].spotEnabled | 0x0012C380 | ? | 0x01C4 bit5 (1 = disable?) |
0x9C | GL_BOOL | dmp_FragmentLightSource[3].spotEnabled | 0x0012C380 | ? | 0x01C4 bit6 (1 = disable?) |
0x9D | GL_BOOL | dmp_FragmentLightSource[4].spotEnabled | 0x0012C380 | ? | 0x01C4 bit7 (1 = disable?) |
0x9E | GL_BOOL | dmp_FragmentLightSource[5].spotEnabled | 0x0012C380 | ? | 0x01C4 bit8 (1 = disable?) |
0x9F | GL_BOOL | dmp_FragmentLightSource[6].spotEnabled | 0x0012C380 | ? | 0x01C4 bit9 (1 = disable?) |
0xA0 | GL_BOOL | dmp_FragmentLightSource[7].spotEnabled | 0x0012C380 | ? | 0x01C4 bit10 (1 = disable?) |
0xA1 | GL_FLOAT | dmp_FragmentLightSource[0].distanceAttenuationBias | 0x00158AE8 | 0xA20+0*0x70+0x64 | 0x01C8 ? |
0xA2 | GL_FLOAT | dmp_FragmentLightSource[1].distanceAttenuationBias | 0x00158AE8 | 0xA20+1*0x70+0x64 | 0x01C8 ? |
0xA3 | GL_FLOAT | dmp_FragmentLightSource[2].distanceAttenuationBias | 0x00158AE8 | 0xA20+2*0x70+0x64 | 0x01C8 ? |
0xA4 | GL_FLOAT | dmp_FragmentLightSource[3].distanceAttenuationBias | 0x00158AE8 | 0xA20+3*0x70+0x64 | 0x01C8 ? |
0xA5 | GL_FLOAT | dmp_FragmentLightSource[4].distanceAttenuationBias | 0x00158AE8 | 0xA20+4*0x70+0x64 | 0x01C8 ? |
0xA6 | GL_FLOAT | dmp_FragmentLightSource[5].distanceAttenuationBias | 0x00158AE8 | 0xA20+5*0x70+0x64 | 0x01C8 ? |
0xA7 | GL_FLOAT | dmp_FragmentLightSource[6].distanceAttenuationBias | 0x00158AE8 | 0xA20+6*0x70+0x64 | 0x01C8 ? |
0xA8 | GL_FLOAT | dmp_FragmentLightSource[7].distanceAttenuationBias | 0x00158AE8 | 0xA20+7*0x70+0x64 | 0x01C8 ? |
0xA9 | GL_FLOAT | dmp_FragmentLightSource[0].distanceAttenuationScale | 0x00158C44 | 0xA20+0*0x70+0x68 | 0x01C8 ? |
0xAA | GL_FLOAT | dmp_FragmentLightSource[1].distanceAttenuationScale | 0x00158C44 | 0xA20+1*0x70+0x68 | 0x01C8 ? |
0xAB | GL_FLOAT | dmp_FragmentLightSource[2].distanceAttenuationScale | 0x00158C44 | 0xA20+2*0x70+0x68 | 0x01C8 ? |
0xAC | GL_FLOAT | dmp_FragmentLightSource[3].distanceAttenuationScale | 0x00158C44 | 0xA20+3*0x70+0x68 | 0x01C8 ? |
0xAD | GL_FLOAT | dmp_FragmentLightSource[4].distanceAttenuationScale | 0x00158C44 | 0xA20+4*0x70+0x68 | 0x01C8 ? |
0xAE | GL_FLOAT | dmp_FragmentLightSource[5].distanceAttenuationScale | 0x00158C44 | 0xA20+5*0x70+0x68 | 0x01C8 ? |
0xAF | GL_FLOAT | dmp_FragmentLightSource[6].distanceAttenuationScale | 0x00158C44 | 0xA20+6*0x70+0x68 | 0x01C8 ? |
0xB0 | GL_FLOAT | dmp_FragmentLightSource[7].distanceAttenuationScale | 0x00158C44 | 0xA20+7*0x70+0x68 | 0x01C8 ? |
0xB1 | GL_BOOL | dmp_FragmentLightSource[0].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB2 | GL_BOOL | dmp_FragmentLightSource[1].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB3 | GL_BOOL | dmp_FragmentLightSource[2].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB4 | GL_BOOL | dmp_FragmentLightSource[3].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB5 | GL_BOOL | dmp_FragmentLightSource[4].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB6 | GL_BOOL | dmp_FragmentLightSource[5].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB7 | GL_BOOL | dmp_FragmentLightSource[6].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB8 | GL_BOOL | dmp_FragmentLightSource[7].distanceAttenuationEnabled | 0x0012C4A0 | ? | 0x01C8 ? |
0xB9 | GL_SAMPLER_1D | dmp_FragmentLightSource[0].samplerDA | 0x0012C578 | 0xA20+0*0x70+0x6C | 0x01C8 ? |
0xBA | GL_SAMPLER_1D | dmp_FragmentLightSource[1].samplerDA | 0x0012C578 | 0xA20+1*0x70+0x6C | 0x01C8 ? |
0xBB | GL_SAMPLER_1D | dmp_FragmentLightSource[2].samplerDA | 0x0012C578 | 0xA20+2*0x70+0x6C | 0x01C8 ? |
0xBC | GL_SAMPLER_1D | dmp_FragmentLightSource[3].samplerDA | 0x0012C578 | 0xA20+3*0x70+0x6C | 0x01C8 ? |
0xBD | GL_SAMPLER_1D | dmp_FragmentLightSource[4].samplerDA | 0x0012C578 | 0xA20+4*0x70+0x6C | 0x01C8 ? |
0xBE | GL_SAMPLER_1D | dmp_FragmentLightSource[5].samplerDA | 0x0012C578 | 0xA20+5*0x70+0x6C | 0x01C8 ? |
0xBF | GL_SAMPLER_1D | dmp_FragmentLightSource[6].samplerDA | 0x0012C578 | 0xA20+6*0x70+0x6C | 0x01C8 ? |
0xC0 | GL_SAMPLER_1D | dmp_FragmentLightSource[7].samplerDA | 0x0012C578 | 0xA20+7*0x70+0x6C | 0x01C8 ? |
0xC1 | GL_BOOL | dmp_LightEnv.absLutInputD0 | 0x0012C5D8 | ? | 0x01D0 bit12 (1 = disable?) |
0xC2 | GL_BOOL | dmp_LightEnv.absLutInputD1 | 0x0012C5D8 | ? | 0x01D0 bit13 (1 = disable?) |
0xC3 | GL_BOOL | dmp_LightEnv.absLutInputSP | 0x0012C5D8 | ? | 0x01D0 bit14 (1 = disable?) |
0xC4 | GL_BOOL | dmp_LightEnv.absLutInputFR | 0x0012C5D8 | ? | 0x01D0 bit15 (1 = disable?) |
0xC5 | GL_BOOL | dmp_LightEnv.absLutInputRB | 0x0012C5D8 | ? | 0x01D0 bit16 (1 = disable?) |
0xC6 | GL_BOOL | dmp_LightEnv.absLutInputRG | 0x0012C5D8 | ? | 0x01D0 bit17 (1 = disable?) |
0xC7 | GL_BOOL | dmp_LightEnv.absLutInputRR | 0x0012C5D8 | ? | 0x01D0 bit18 (1 = disable?) |
0xC8 | GL_INT | dmp_LightEnv.lutInputD0 | 0x0012C6E8 | ? | 0x01D1 bit0-2 |
0xC9 | GL_INT | dmp_LightEnv.lutInputD1 | 0x0012C6E8 | ? | 0x01D1 bit4-6 |
0xCA | GL_INT | dmp_LightEnv.lutInputSP | 0x0012C6E8 | ? | 0x01D1 bit8-10 |
0xCB | GL_INT | dmp_LightEnv.lutInputFR | 0x0012C6E8 | ? | 0x01D1 bit12-14 |
0xCC | GL_INT | dmp_LightEnv.lutInputRB | 0x0012C6E8 | ? | 0x01D1 bit16-18 |
0xCD | GL_INT | dmp_LightEnv.lutInputRG | 0x0012C6E8 | ? | 0x01D1 bit20-22 |
0xCE | GL_INT | dmp_LightEnv.lutInputRR | 0x0012C6E8 | ? | 0x01D1 bit24-26 |
0xCF | GL_FLOAT | dmp_LightEnv.lutScaleD0 | 0x00155404 | ? | 0x01D2 bit0-3 |
0xD0 | GL_FLOAT | dmp_LightEnv.lutScaleD1 | 0x00155404 | ? | 0x01D2 bit4-7 |
0xD1 | GL_FLOAT | dmp_LightEnv.lutScaleSP | 0x00155404 | ? | 0x01D2 bit8-11 |
0xD2 | GL_FLOAT | dmp_LightEnv.lutScaleFR | 0x00155404 | ? | 0x01D2 bit12-15 |
0xD3 | GL_FLOAT | dmp_LightEnv.lutScaleRB | 0x00155404 | ? | 0x01D2 bit16-19 |
0xD4 | GL_FLOAT | dmp_LightEnv.lutScaleRG | 0x00155404 | ? | 0x01D2 bit20-23 |
0xD5 | GL_FLOAT | dmp_LightEnv.lutScaleRR | 0x00155404 | ? | 0x01D2 bit24-27 |
0xD6 | GL_SAMPLER_1D | dmp_FragmentMaterial.samplerD0 | 0x0012C7D0 | ? | ? |
0xD7 | GL_SAMPLER_1D | dmp_FragmentMaterial.samplerD1 | 0x0012C7D0 | ? | ? |
0xD8 | GL_SAMPLER_1D | dmp_FragmentMaterial.samplerFR | 0x0012C7D0 | ? | ? |
0xD9 | GL_SAMPLER_1D | dmp_FragmentMaterial.samplerRB | 0x0012C7D0 | ? | ? |
0xDA | GL_SAMPLER_1D | dmp_FragmentMaterial.samplerRG | 0x0012C7D0 | ? | ? |
0xDB | GL_SAMPLER_1D | dmp_FragmentMaterial.samplerRR | 0x0012C7D0 | ? | ? |
0xDC | GL_INT | dmp_LightEnv.shadowSelector | 0x0012CE44 | ? | 0x01C3 bit24-25 |
0xDD | GL_INT | dmp_LightEnv.bumpSelector | 0x0012CD88 | ? | 0x01C3 bit22-23 |
0xDE | GL_INT | dmp_LightEnv.bumpMode | 0x0012D4B4 | ? | ? |
0xDF | GL_BOOL | dmp_LightEnv.bumpRenorm | 0x0012D8A0 | ? | ? |
0xE0 | GL_INT | dmp_LightEnv.config | 0x0012D5E4 | ? | ? |
0xE1 | GL_BOOL | dmp_LightEnv.invertShadow | 0x0012CF04 | ? | ? |
0xE2 | GL_BOOL | dmp_LightEnv.shadowPrimary | 0x0012CFD4 | ? | ? |
0xE3 | GL_BOOL | dmp_LightEnv.shadowSecondary | 0x0012D1B8 | ? | ? |
0xE4 | GL_BOOL | dmp_LightEnv.shadowAlpha | 0x0012D350 | ? | ? |
0xE5 | GL_INT | dmp_LightEnv.fresnelSelector | 0x0012D720 | ? | ? |
0xE6 | GL_BOOL | dmp_LightEnv.clampHighlights | 0x0012D9B0 | ? | ? |
0xE7 | GL_BOOL | dmp_LightEnv.lutEnabledD0 | 0x0012DA80 | ? | ? |
0xE8 | GL_BOOL | dmp_LightEnv.lutEnabledD1 | 0x0012DB58 | ? | ? |
0xE9 | GL_BOOL | dmp_LightEnv.lutEnabledRefl | 0x0012C83C | ? | ? |
0xEA | GL_INT | dmp_TexEnv[0].combineRgb | 0x0012DC2C | ? | 0xC2 |
0xEB | GL_INT | dmp_TexEnv[1].combineRgb | 0x0012DC2C | ? | 0xCA |
0xEC | GL_INT | dmp_TexEnv[2].combineRgb | 0x0012DC2C | ? | 0xD2 |
0xED | GL_INT | dmp_TexEnv[3].combineRgb | 0x0012DC2C | ? | 0xDA |
0xEE | GL_INT | dmp_TexEnv[4].combineRgb | 0x0012DC2C | ? | 0xF2 |
0xEF | GL_INT | dmp_TexEnv[5].combineRgb | 0x0012DC2C | ? | 0xFA |
0xF0 | GL_INT | dmp_TexEnv[0].combineAlpha | 0x0012DD9C | ? | 0xC2 |
0xF1 | GL_INT | dmp_TexEnv[1].combineAlpha | 0x0012DD9C | ? | 0xCA |
0xF2 | GL_INT | dmp_TexEnv[2].combineAlpha | 0x0012DD9C | ? | 0xD2 |
0xF3 | GL_INT | dmp_TexEnv[3].combineAlpha | 0x0012DD9C | ? | 0xDA |
0xF4 | GL_INT | dmp_TexEnv[4].combineAlpha | 0x0012DD9C | ? | 0xF2 |
0xF5 | GL_INT | dmp_TexEnv[5].combineAlpha | 0x0012DD9C | ? | 0xFA |
0xF6 | GL_INT_VEC3 | dmp_TexEnv[0].srcRgb | 0x0012DF08 | ? | 0xC0 |
0xF7 | GL_INT_VEC3 | dmp_TexEnv[1].srcRgb | 0x0012DF08 | ? | 0xC8 |
0xF8 | GL_INT_VEC3 | dmp_TexEnv[2].srcRgb | 0x0012DF08 | ? | 0xD0 |
0xF9 | GL_INT_VEC3 | dmp_TexEnv[3].srcRgb | 0x0012DF08 | ? | 0xD8 |
0xFA | GL_INT_VEC3 | dmp_TexEnv[4].srcRgb | 0x0012DF08 | ? | 0xF0 |
0xFB | GL_INT_VEC3 | dmp_TexEnv[5].srcRgb | 0x0012DF08 | ? | 0xF8 |
0xFC | GL_INT_VEC3 | dmp_TexEnv[0].srcAlpha | 0x0012E0FC | ? | 0xC0 |
0xFD | GL_INT_VEC3 | dmp_TexEnv[1].srcAlpha | 0x0012E0FC | ? | 0xC8 |
0xFE | GL_INT_VEC3 | dmp_TexEnv[2].srcAlpha | 0x0012E0FC | ? | 0xD0 |
0xFF | GL_INT_VEC3 | dmp_TexEnv[3].srcAlpha | 0x0012E0FC | ? | 0xD8 |
0x100 | GL_INT_VEC3 | dmp_TexEnv[4].srcAlpha | 0x0012E0FC | ? | 0xF0 |
0x101 | GL_INT_VEC3 | dmp_TexEnv[5].srcAlpha | 0x0012E0FC | ? | 0xF8 |
0x102 | GL_INT_VEC3 | dmp_TexEnv[0].operandRgb | 0x0012E2F0 | ? | 0xC1 |
0x103 | GL_INT_VEC3 | dmp_TexEnv[1].operandRgb | 0x0012E2F0 | ? | 0xC9 |
0x104 | GL_INT_VEC3 | dmp_TexEnv[2].operandRgb | 0x0012E2F0 | ? | 0xD1 |
0x105 | GL_INT_VEC3 | dmp_TexEnv[3].operandRgb | 0x0012E2F0 | ? | 0xD9 |
0x106 | GL_INT_VEC3 | dmp_TexEnv[4].operandRgb | 0x0012E2F0 | ? | 0xF1 |
0x107 | GL_INT_VEC3 | dmp_TexEnv[5].operandRgb | 0x0012E2F0 | ? | 0xF9 |
0x108 | GL_INT_VEC3 | dmp_TexEnv[0].operandAlpha | 0x0012E51C | ? | 0xC1 |
0x109 | GL_INT_VEC3 | dmp_TexEnv[1].operandAlpha | 0x0012E51C | ? | 0xC9 |
0x10A | GL_INT_VEC3 | dmp_TexEnv[2].operandAlpha | 0x0012E51C | ? | 0xD1 |
0x10B | GL_INT_VEC3 | dmp_TexEnv[3].operandAlpha | 0x0012E51C | ? | 0xD9 |
0x10C | GL_INT_VEC3 | dmp_TexEnv[4].operandAlpha | 0x0012E51C | ? | 0xF1 |
0x10D | GL_INT_VEC3 | dmp_TexEnv[5].operandAlpha | 0x0012E51C | ? | 0xF9 |
0x10E | GL_FLOAT | dmp_TexEnv[0].scaleRgb | 0x00155464 | ? | ? |
0x10F | GL_FLOAT | dmp_TexEnv[1].scaleRgb | 0x00155464 | ? | ? |
0x110 | GL_FLOAT | dmp_TexEnv[2].scaleRgb | 0x00155464 | ? | ? |
0x111 | GL_FLOAT | dmp_TexEnv[3].scaleRgb | 0x00155464 | ? | ? |
0x112 | GL_FLOAT | dmp_TexEnv[4].scaleRgb | 0x00155464 | ? | ? |
0x113 | GL_FLOAT | dmp_TexEnv[5].scaleRgb | 0x00155464 | ? | ? |
0x114 | GL_FLOAT | dmp_TexEnv[0].scaleAlpha | 0x00158EDC | ? | ? |
0x115 | GL_FLOAT | dmp_TexEnv[1].scaleAlpha | 0x00158EDC | ? | ? |
0x116 | GL_FLOAT | dmp_TexEnv[2].scaleAlpha | 0x00158EDC | ? | ? |
0x117 | GL_FLOAT | dmp_TexEnv[3].scaleAlpha | 0x00158EDC | ? | ? |
0x118 | GL_FLOAT | dmp_TexEnv[4].scaleAlpha | 0x00158EDC | ? | ? |
0x119 | GL_FLOAT | dmp_TexEnv[5].scaleAlpha | 0x00158EDC | ? | ? |
0x11A | GL_FLOAT_VEC4 | dmp_TexEnv[0].constRgba | 0x00158FF4 | ? | 0xC3 |
0x11B | GL_FLOAT_VEC4 | dmp_TexEnv[1].constRgba | 0x00158FF4 | ? | 0xCB |
0x11C | GL_FLOAT_VEC4 | dmp_TexEnv[2].constRgba | 0x00158FF4 | ? | 0xD3 |
0x11D | GL_FLOAT_VEC4 | dmp_TexEnv[3].constRgba | 0x00158FF4 | ? | 0xDB |
0x11E | GL_FLOAT_VEC4 | dmp_TexEnv[4].constRgba | 0x00158FF4 | ? | 0xF3 |
0x11F | GL_FLOAT_VEC4 | dmp_TexEnv[5].constRgba | 0x00158FF4 | ? | 0xFB |
0x120 | GL_FLOAT_VEC4 | dmp_TexEnv[0].bufferColor | 0x001591C0 | ? | ? |
0x121 | GL_INT_VEC2 | dmp_TexEnv[1].bufferInput | 0x0012E6D0 | ? | ? |
0x122 | GL_INT_VEC2 | dmp_TexEnv[2].bufferInput | 0x0012E6D0 | ? | ? |
0x123 | GL_INT_VEC2 | dmp_TexEnv[3].bufferInput | 0x0012E6D0 | ? | ? |
0x124 | GL_INT_VEC2 | dmp_TexEnv[4].bufferInput | 0x0012E6D0 | ? | ? |
0x125 | GL_INT | dmp_Fog.mode | 0x0012E7F8 | ? | 0x00E0 bit0-2 (5 -> fog (0x0B60), 7 -> gas (0x6050)) |
0x126 | GL_FLOAT_VEC3 | dmp_Fog.color | 0x00159338 | ? | ? |
0x127 | GL_BOOL | dmp_Fog.zFlip | 0x0012E9DC | ? | 0x00E0 bit16 |
0x128 | GL_SAMPLER_1D | dmp_Fog.sampler | 0x0012EAA4 | ? | ? |
On steeldiver's uniform handlers : R1 is a pointer to the current shader program object, R12 is a pointer to the data the uniform is being set to.
Other Symbols[edit]
The list above is not exhaustive. A number of other strings specific to Nintendo's rendering framework have been found. Below is a table listing those strings including the location they were found in.
Name | Context | Occurrence |
---|---|---|
dmp_Point.viewport.xy | Name of a shader uniform | CTRAging's romfs:/gpu/GasCessna/shader.shbin |
dmp_Point.distanceAttenuation | Name of a shader uniform | CTRAging's romfs:/gpu/GasCessna/shader.shbin |
dmp_Point.Position | Name of a shader uniform | CTRAging's romfs:/gpu/GasCessna/shader.shbin |
dmp_Point.PointSize | Name of a shader uniform | CTRAging's romfs:/gpu/GasCessna/shader.shbin |