Nintendo OpenGL: Difference between revisions

Smea (talk | contribs)
Neobrain (talk | contribs)
 
(26 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 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.
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 ==
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 109: Line 137:
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
Line 123: Line 151:
!  Type
!  Type
!  Name
!  Name
!  Handler address in Steeldiver : Sub Wars
!  Handler address (Steeldiver : Sub Wars)
!  Shader Program struct offset
!  GPU Register
|-  
|-  
| 0x0
| 0x0
Line 129: Line 159:
| dmp_Texture[0].perspectiveShadow
| dmp_Texture[0].perspectiveShadow
| 0x0012A504
| 0x0012A504
| ?
| 0x008B bit0 (0 = enable??)
|-  
|-  
| 0x1
| 0x1
Line 134: Line 166:
| dmp_Texture[0].shadowZBias
| dmp_Texture[0].shadowZBias
| 0x00155584
| 0x00155584
| 0xE44
| ?
|-  
|-  
| 0x2
| 0x2
Line 139: Line 173:
| dmp_Texture[0].shadowZScale
| dmp_Texture[0].shadowZScale
| 0x001556A0
| 0x001556A0
| 0xE48
| ?
|-  
|-  
| 0x3
| 0x3
Line 144: Line 180:
| dmp_Texture[0].samplerType
| dmp_Texture[0].samplerType
| 0x0012A5D0
| 0x0012A5D0
| ?
| ?
|-  
|-  
| 0x4
| 0x4
Line 149: Line 187:
| dmp_Texture[1].samplerType
| dmp_Texture[1].samplerType
| 0x0012A6F8
| 0x0012A6F8
| ?
| ?
|-  
|-  
| 0x5
| 0x5
Line 154: Line 194:
| dmp_Texture[2].samplerType
| dmp_Texture[2].samplerType
| 0x0012A774
| 0x0012A774
| ?
| ?
|-  
|-  
| 0x6
| 0x6
Line 159: Line 201:
| dmp_Texture[3].samplerType
| dmp_Texture[3].samplerType
| 0x0012A7F0
| 0x0012A7F0
| ?
| 0x0080 bit10 (?)
|-  
|-  
| 0x7
| 0x7
Line 164: Line 208:
| dmp_Texture[2].texcoord
| dmp_Texture[2].texcoord
| 0x0012A8B4
| 0x0012A8B4
| ?
| 0x0080 bit13 (1 = use texcoords from texture unit 1)
|-  
|-  
| 0x8
| 0x8
Line 169: Line 215:
| dmp_Texture[3].texcoord
| dmp_Texture[3].texcoord
| 0x0012A97C
| 0x0012A97C
| ?
| 0x0080 bit8-9 (0-2 = use texcoords from texture unit 0-2 resp., 3 = forbidden?)
|-  
|-  
| 0x9
| 0x9
Line 174: Line 222:
| dmp_Texture[3].ptRgbMap
| dmp_Texture[3].ptRgbMap
| 0x0012AA54
| 0x0012AA54
| ?
| 0x00A8 bit6-9
|-  
|-  
| 0xA
| 0xA
Line 179: Line 229:
| dmp_Texture[3].ptAlphaMap
| dmp_Texture[3].ptAlphaMap
| 0x0012AB94
| 0x0012AB94
| ?
| 0x00A8 bit10-13
|-  
|-  
| 0xB
| 0xB
Line 184: Line 236:
| dmp_Texture[3].ptAlphaSeparate
| dmp_Texture[3].ptAlphaSeparate
| 0x0012ACD4
| 0x0012ACD4
| ?
| 0x00A8 bit14
|-  
|-  
| 0xC
| 0xC
Line 189: Line 243:
| dmp_Texture[3].ptClampU
| dmp_Texture[3].ptClampU
| 0x0012ADB8
| 0x0012ADB8
| ?
| 0x00A8 bit0-2
|-  
|-  
| 0xD
| 0xD
Line 194: Line 250:
| dmp_Texture[3].ptClampV
| dmp_Texture[3].ptClampV
| 0x0012AEC0
| 0x0012AEC0
| ?
| 0x00A8 bit3-5
|-  
|-  
| 0xE
| 0xE
Line 199: Line 257:
| dmp_Texture[3].ptShiftU
| dmp_Texture[3].ptShiftU
| 0x0012AFD0
| 0x0012AFD0
| ?
| 0x00A8 bit16-17
|-  
|-  
| 0xF
| 0xF
Line 204: Line 264:
| dmp_Texture[3].ptShiftV
| dmp_Texture[3].ptShiftV
| 0x0012B0A0
| 0x0012B0A0
| ?
| 0x00A8 bit18-19
|-  
|-  
| 0x10
| 0x10
Line 209: Line 271:
| dmp_Texture[3].ptMinFilter
| dmp_Texture[3].ptMinFilter
| 0x0012B168
| 0x0012B168
| ?
| 0x00AC bit0-2
|-  
|-  
| 0x11
| 0x11
Line 214: Line 278:
| dmp_Texture[3].ptTexWidth
| dmp_Texture[3].ptTexWidth
| 0x0012B270
| 0x0012B270
| ?
| 0x00AC bit11-18
|-  
|-  
| 0x12
| 0x12
Line 219: Line 285:
| dmp_Texture[3].ptTexOffset
| dmp_Texture[3].ptTexOffset
| 0x0012B334
| 0x0012B334
| ?
| 0x00AD bit0-7
|-  
|-  
| 0x13
| 0x13
Line 224: Line 292:
| dmp_Texture[3].ptTexBias
| dmp_Texture[3].ptTexBias
| 0x001556B4
| 0x001556B4
| 0xE10
| 0x00A8 bit20-27
|-  
|-  
| 0x14
| 0x14
Line 229: Line 299:
| dmp_Texture[3].ptNoiseEnable
| dmp_Texture[3].ptNoiseEnable
| 0x0012B3E0
| 0x0012B3E0
| ?
| 0x00A8 bit15
|-  
|-  
| 0x15
| 0x15
Line 234: Line 306:
| dmp_Texture[3].ptNoiseU
| dmp_Texture[3].ptNoiseU
| 0x00155878
| 0x00155878
| 0xE14
| 0x00A9, 0x00AB
|-  
|-  
| 0x16
| 0x16
Line 239: Line 313:
| dmp_Texture[3].ptNoiseV
| dmp_Texture[3].ptNoiseV
| 0x00155A7C
| 0x00155A7C
| 0xE20
| 0x00AA, 0x00AB
|-  
|-  
| 0x17
| 0x17
Line 244: Line 320:
| dmp_Texture[3].ptSamplerRgbMap
| dmp_Texture[3].ptSamplerRgbMap
| 0x0012B4B0
| 0x0012B4B0
| 0xDF0
| ?
|-  
|-  
| 0x18
| 0x18
Line 249: Line 327:
| dmp_Texture[3].ptSamplerAlphaMap
| dmp_Texture[3].ptSamplerAlphaMap
| 0x0012B4F4
| 0x0012B4F4
| 0xDF4
| ?
|-  
|-  
| 0x19
| 0x19
Line 254: Line 334:
| dmp_Texture[3].ptSamplerNoiseMap
| dmp_Texture[3].ptSamplerNoiseMap
| 0x0012B540
| 0x0012B540
| 0xDF8
| ?
|-  
|-  
| 0x1A
| 0x1A
Line 259: Line 341:
| dmp_Texture[3].ptSamplerR
| dmp_Texture[3].ptSamplerR
| 0x0012B58C
| 0x0012B58C
| 0xDFC
| ?
|-  
|-  
| 0x1B
| 0x1B
Line 264: Line 348:
| dmp_Texture[3].ptSamplerG
| dmp_Texture[3].ptSamplerG
| 0x0012B5D8
| 0x0012B5D8
| 0xE00
| ?
|-  
|-  
| 0x1C
| 0x1C
Line 269: Line 355:
| dmp_Texture[3].ptSamplerB
| dmp_Texture[3].ptSamplerB
| 0x0012B624
| 0x0012B624
| 0xE04
| ?
|-  
|-  
| 0x1D
| 0x1D
Line 274: Line 362:
| dmp_Texture[3].ptSamplerA
| dmp_Texture[3].ptSamplerA
| 0x0012B670
| 0x0012B670
| 0xE08
| ?
|-  
|-  
| 0x1E
| 0x1E
Line 279: Line 369:
| dmp_FragOperation.mode
| dmp_FragOperation.mode
| 0x0012B6BC
| 0x0012B6BC
| 0xE38
| ?
|-  
|-  
| 0x1F
| 0x1F
Line 284: Line 376:
| dmp_FragOperation.penumbraScale
| dmp_FragOperation.penumbraScale
| 0x00155C98
| 0x00155C98
| 0xE40
| ?
|-  
|-  
| 0x20
| 0x20
Line 289: Line 383:
| dmp_FragOperation.penumbraBias
| dmp_FragOperation.penumbraBias
| 0x00155D8C
| 0x00155D8C
| 0xE3C
| ?
|-  
|-  
| 0x21
| 0x21
Line 294: Line 390:
| dmp_FragOperation.wScale
| dmp_FragOperation.wScale
| 0x00155E9C
| 0x00155E9C
| 0xE4C
| ?
|-  
|-  
| 0x22
| 0x22
Line 299: Line 397:
| dmp_FragOperation.enableClippingPlane
| dmp_FragOperation.enableClippingPlane
| 0x0012EAEC
| 0x0012EAEC
| 0x568
| 0x0047 bit0
|-  
|-  
| 0x23
| 0x23
Line 304: Line 404:
| dmp_FragOperation.clippingPlane
| dmp_FragOperation.clippingPlane
| 0x00159474
| 0x00159474
| 0xE50
| ?
|-  
|-  
| 0x24
| 0x24
Line 309: Line 411:
| dmp_FragOperation.enableAlphaTest
| dmp_FragOperation.enableAlphaTest
| 0x0012EBAC
| 0x0012EBAC
| 0x64C
| ?
|-  
|-  
| 0x25
| 0x25
Line 314: Line 418:
| dmp_FragOperation.alphaTestFunc
| dmp_FragOperation.alphaTestFunc
| 0x0012EC64
| 0x0012EC64
| 0x64C
| ?
|-  
|-  
| 0x26
| 0x26
Line 319: Line 425:
| dmp_FragOperation.alphaRefValue
| dmp_FragOperation.alphaRefValue
| 0x0015971C
| 0x0015971C
| 0x64C ?
| ?
|-  
|-  
| 0x27
| 0x27
Line 324: Line 432:
| dmp_Gas.lightXY
| dmp_Gas.lightXY
| 0x001560EC
| 0x001560EC
| 0xE84
| 0x0120 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23)
|-  
|-  
| 0x28
| 0x28
Line 329: Line 439:
| dmp_Gas.lightZ
| dmp_Gas.lightZ
| 0x00156268
| 0x00156268
| 0xE90
| 0x0121 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23), 0x0122 (vec[3] -> bit 0-7)
|-  
|-  
| 0x29
| 0x29
Line 334: Line 446:
| dmp_Gas.deltaZ
| dmp_Gas.deltaZ
| 0x001564D4
| 0x001564D4
| 0xEA0
| 0x0126 bit0-23
|-  
|-  
| 0x2A
| 0x2A
Line 339: Line 453:
| dmp_Gas.accMax
| dmp_Gas.accMax
| 0x001565C0
| 0x001565C0
| 0xEA4
| 0x00E5
|-  
|-  
| 0x2B
| 0x2B
Line 344: Line 460:
| dmp_Gas.autoAcc
| dmp_Gas.autoAcc
| 0x0012B790
| 0x0012B790
| 0xE74
| ?
|-  
|-  
| 0x2C
| 0x2C
Line 349: Line 467:
| dmp_Gas.attenuation
| dmp_Gas.attenuation
| 0x00156684
| 0x00156684
| 0xEA8
| 0x00E4
|-  
|-  
| 0x2D
| 0x2D
Line 354: Line 474:
| dmp_Gas.colorLutInput
| dmp_Gas.colorLutInput
| 0x0012B7A4
| 0x0012B7A4
| 0x640
| 0x0122 bit8 (0x6060/0x6061 -> 0/1)
|-  
|-  
| 0x2E
| 0x2E
Line 359: Line 481:
| dmp_Gas.shadingDensitySrc
| dmp_Gas.shadingDensitySrc
| 0x0012B854
| 0x0012B854
| 0x624
| 0x00E0 bit3 (0x605E/0x605F -> 0/1)
|-  
|-  
| 0x2F
| 0x2F
Line 364: Line 488:
| dmp_Gas.samplerTR
| dmp_Gas.samplerTR
| 0x0012B910
| 0x0012B910
| 0xE78
| ?
|-  
|-  
| 0x30
| 0x30
Line 369: Line 495:
| dmp_Gas.samplerTG
| dmp_Gas.samplerTG
| 0x0012B95C
| 0x0012B95C
| 0xE7C
| ?
|-  
|-  
| 0x31
| 0x31
Line 374: Line 502:
| dmp_Gas.samplerTB
| dmp_Gas.samplerTB
| 0x0012B9A8
| 0x0012B9A8
| 0xE80
| ?
|-  
|-  
| 0x32
| 0x32
Line 379: Line 509:
| dmp_FragmentLighting.enabled
| dmp_FragmentLighting.enabled
| 0x0012B9F4
| 0x0012B9F4
| 0x590
| 0x00A8 bit0, 0x01C6 (0 = enabled)
|-  
|-  
| 0x33
| 0x33
Line 384: Line 516:
| dmp_FragmentLighting.ambient
| dmp_FragmentLighting.ambient
| 0x00156744
| 0x00156744
| 0xA10
| 0x01C0?
|-  
|-  
| 0x34
| 0x34
Line 389: Line 523:
| dmp_FragmentMaterial.emission
| dmp_FragmentMaterial.emission
| 0x00156E1C
| 0x00156E1C
| 0xDE0
| 0x01C0?
|-  
|-  
| 0x35
| 0x35
Line 394: Line 530:
| dmp_FragmentMaterial.ambient
| dmp_FragmentMaterial.ambient
| 0x0015696C
| 0x0015696C
| 0xDA0
| 0x01C0
|-  
|-  
| 0x36
| 0x36
Line 399: Line 537:
| dmp_FragmentMaterial.diffuse
| dmp_FragmentMaterial.diffuse
| 0x00157048
| 0x00157048
| 0xDB0
| ?
|-  
|-  
| 0x37
| 0x37
Line 404: Line 544:
| dmp_FragmentMaterial.specular0
| dmp_FragmentMaterial.specular0
| 0x001572E0
| 0x001572E0
| 0xDC0
| ?
|-  
|-  
| 0x38
| 0x38
Line 409: Line 551:
| dmp_FragmentMaterial.specular1
| dmp_FragmentMaterial.specular1
| 0x0015756C
| 0x0015756C
| 0xDD0
| ?
|-  
|-  
| 0x39
| 0x39
Line 414: Line 558:
| dmp_FragmentLightSource[0].enabled
| dmp_FragmentLightSource[0].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+0*0x70+0x00
| 0x01C5
|-  
|-  
| 0x3A
| 0x3A
Line 419: Line 565:
| dmp_FragmentLightSource[1].enabled
| dmp_FragmentLightSource[1].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+1*0x70+0x00
| 0x01C5
|-  
|-  
| 0x3B
| 0x3B
Line 424: Line 572:
| dmp_FragmentLightSource[2].enabled
| dmp_FragmentLightSource[2].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+2*0x70+0x00
| 0x01C5
|-  
|-  
| 0x3C
| 0x3C
Line 429: Line 579:
| dmp_FragmentLightSource[3].enabled
| dmp_FragmentLightSource[3].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+3*0x70+0x00
| 0x01C5
|-  
|-  
| 0x3D
| 0x3D
Line 434: Line 586:
| dmp_FragmentLightSource[4].enabled
| dmp_FragmentLightSource[4].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+4*0x70+0x00
| 0x01C5
|-  
|-  
| 0x3E
| 0x3E
Line 439: Line 593:
| dmp_FragmentLightSource[5].enabled
| dmp_FragmentLightSource[5].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+5*0x70+0x00
| 0x01C5
|-  
|-  
| 0x3F
| 0x3F
Line 444: Line 600:
| dmp_FragmentLightSource[6].enabled
| dmp_FragmentLightSource[6].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+6*0x70+0x00
| 0x01C5
|-  
|-  
| 0x40
| 0x40
Line 449: Line 607:
| dmp_FragmentLightSource[7].enabled
| dmp_FragmentLightSource[7].enabled
| 0x0012BD24
| 0x0012BD24
| 0xA20+7*0x70+0x00
| 0x01C5
|-  
|-  
| 0x41
| 0x41
Line 454: Line 614:
| dmp_FragmentLightSource[0].ambient
| dmp_FragmentLightSource[0].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+0*0x70+0x04
| 0x0143
|-  
|-  
| 0x42
| 0x42
Line 459: Line 621:
| dmp_FragmentLightSource[1].ambient
| dmp_FragmentLightSource[1].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+1*0x70+0x04
| 0x0153
|-  
|-  
| 0x43
| 0x43
Line 464: Line 628:
| dmp_FragmentLightSource[2].ambient
| dmp_FragmentLightSource[2].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+2*0x70+0x04
| 0x0163
|-  
|-  
| 0x44
| 0x44
Line 469: Line 635:
| dmp_FragmentLightSource[3].ambient
| dmp_FragmentLightSource[3].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+3*0x70+0x04
| 0x0173
|-  
|-  
| 0x45
| 0x45
Line 474: Line 642:
| dmp_FragmentLightSource[4].ambient
| dmp_FragmentLightSource[4].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+4*0x70+0x04
| 0x0183
|-  
|-  
| 0x46
| 0x46
Line 479: Line 649:
| dmp_FragmentLightSource[5].ambient
| dmp_FragmentLightSource[5].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+5*0x70+0x04
| 0x0193
|-  
|-  
| 0x47
| 0x47
Line 484: Line 656:
| dmp_FragmentLightSource[6].ambient
| dmp_FragmentLightSource[6].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+6*0x70+0x04
| 0x01A3
|-  
|-  
| 0x48
| 0x48
Line 489: Line 663:
| dmp_FragmentLightSource[7].ambient
| dmp_FragmentLightSource[7].ambient
| 0x001579CC
| 0x001579CC
| 0xA20+7*0x70+0x04
| 0x01B3
|-  
|-  
| 0x49
| 0x49
Line 494: Line 670:
| dmp_FragmentLightSource[0].diffuse
| dmp_FragmentLightSource[0].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+0*0x70+0x14
| 0x0142
|-  
|-  
| 0x4A
| 0x4A
Line 499: Line 677:
| dmp_FragmentLightSource[1].diffuse
| dmp_FragmentLightSource[1].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+1*0x70+0x14
| 0x0152
|-  
|-  
| 0x4B
| 0x4B
Line 504: Line 684:
| dmp_FragmentLightSource[2].diffuse
| dmp_FragmentLightSource[2].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+2*0x70+0x14
| 0x0162
|-  
|-  
| 0x4C
| 0x4C
Line 509: Line 691:
| dmp_FragmentLightSource[3].diffuse
| dmp_FragmentLightSource[3].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+3*0x70+0x14
| 0x0172
|-  
|-  
| 0x4D
| 0x4D
Line 514: Line 698:
| dmp_FragmentLightSource[4].diffuse
| dmp_FragmentLightSource[4].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+4*0x70+0x14
| 0x0182
|-  
|-  
| 0x4E
| 0x4E
Line 519: Line 705:
| dmp_FragmentLightSource[5].diffuse
| dmp_FragmentLightSource[5].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+5*0x70+0x14
| 0x0192
|-  
|-  
| 0x4F
| 0x4F
Line 524: Line 712:
| dmp_FragmentLightSource[6].diffuse
| dmp_FragmentLightSource[6].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+6*0x70+0x14
| 0x01A2
|-  
|-  
| 0x50
| 0x50
Line 529: Line 719:
| dmp_FragmentLightSource[7].diffuse
| dmp_FragmentLightSource[7].diffuse
| 0x00157C10
| 0x00157C10
| 0xA20+7*0x70+0x14
| 0x01B2
|-  
|-  
| 0x51
| 0x51
Line 534: Line 726:
| dmp_FragmentLightSource[0].specular0
| dmp_FragmentLightSource[0].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+0*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x52
| 0x52
Line 539: Line 733:
| dmp_FragmentLightSource[1].specular0
| dmp_FragmentLightSource[1].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+1*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x53
| 0x53
Line 544: Line 740:
| dmp_FragmentLightSource[2].specular0
| dmp_FragmentLightSource[2].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+2*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x54
| 0x54
Line 549: Line 747:
| dmp_FragmentLightSource[3].specular0
| dmp_FragmentLightSource[3].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+3*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x55
| 0x55
Line 554: Line 754:
| dmp_FragmentLightSource[4].specular0
| dmp_FragmentLightSource[4].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+4*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x56
| 0x56
Line 559: Line 761:
| dmp_FragmentLightSource[5].specular0
| dmp_FragmentLightSource[5].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+5*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x57
| 0x57
Line 564: Line 768:
| dmp_FragmentLightSource[6].specular0
| dmp_FragmentLightSource[6].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+6*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x58
| 0x58
Line 569: Line 775:
| dmp_FragmentLightSource[7].specular0
| dmp_FragmentLightSource[7].specular0
| 0x00157E5C
| 0x00157E5C
| 0xA20+7*0x70+0x24
| 0x01C8 ?
|-  
|-  
| 0x59
| 0x59
Line 574: Line 782:
| dmp_FragmentLightSource[0].specular1
| dmp_FragmentLightSource[0].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+0*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x5A
| 0x5A
Line 579: Line 789:
| dmp_FragmentLightSource[1].specular1
| dmp_FragmentLightSource[1].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+1*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x5B
| 0x5B
Line 584: Line 796:
| dmp_FragmentLightSource[2].specular1
| dmp_FragmentLightSource[2].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+2*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x5C
| 0x5C
Line 589: Line 803:
| dmp_FragmentLightSource[3].specular1
| dmp_FragmentLightSource[3].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+3*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x5D
| 0x5D
Line 594: Line 810:
| dmp_FragmentLightSource[4].specular1
| dmp_FragmentLightSource[4].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+4*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x5E
| 0x5E
Line 599: Line 817:
| dmp_FragmentLightSource[5].specular1
| dmp_FragmentLightSource[5].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+5*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x5F
| 0x5F
Line 604: Line 824:
| dmp_FragmentLightSource[6].specular1
| dmp_FragmentLightSource[6].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+6*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x60
| 0x60
Line 609: Line 831:
| dmp_FragmentLightSource[7].specular1
| dmp_FragmentLightSource[7].specular1
| 0x001580B4
| 0x001580B4
| 0xA20+7*0x70+0x34
| 0x01C8 ?
|-  
|-  
| 0x61
| 0x61
Line 614: Line 838:
| dmp_FragmentLightSource[0].position
| dmp_FragmentLightSource[0].position
| 0x001584B0
| 0x001584B0
| 0xA20+0*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x62
| 0x62
Line 619: Line 845:
| dmp_FragmentLightSource[1].position
| dmp_FragmentLightSource[1].position
| 0x001584B0
| 0x001584B0
| 0xA20+1*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x63
| 0x63
Line 624: Line 852:
| dmp_FragmentLightSource[2].position
| dmp_FragmentLightSource[2].position
| 0x001584B0
| 0x001584B0
| 0xA20+2*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x64
| 0x64
Line 629: Line 859:
| dmp_FragmentLightSource[3].position
| dmp_FragmentLightSource[3].position
| 0x001584B0
| 0x001584B0
| 0xA20+3*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x65
| 0x65
Line 634: Line 866:
| dmp_FragmentLightSource[4].position
| dmp_FragmentLightSource[4].position
| 0x001584B0
| 0x001584B0
| 0xA20+4*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x66
| 0x66
Line 639: Line 873:
| dmp_FragmentLightSource[5].position
| dmp_FragmentLightSource[5].position
| 0x001584B0
| 0x001584B0
| 0xA20+5*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x67
| 0x67
Line 644: Line 880:
| dmp_FragmentLightSource[6].position
| dmp_FragmentLightSource[6].position
| 0x001584B0
| 0x001584B0
| 0xA20+6*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x68
| 0x68
Line 649: Line 887:
| dmp_FragmentLightSource[7].position
| dmp_FragmentLightSource[7].position
| 0x001584B0
| 0x001584B0
| 0xA20+7*0x70+0x44
| 0x01C8 ?
|-  
|-  
| 0x69
| 0x69
Line 654: Line 894:
| dmp_FragmentLightSource[0].spotDirection
| dmp_FragmentLightSource[0].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+0*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x6A
| 0x6A
Line 659: Line 901:
| dmp_FragmentLightSource[1].spotDirection
| dmp_FragmentLightSource[1].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+1*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x6B
| 0x6B
Line 664: Line 908:
| dmp_FragmentLightSource[2].spotDirection
| dmp_FragmentLightSource[2].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+2*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x6C
| 0x6C
Line 669: Line 915:
| dmp_FragmentLightSource[3].spotDirection
| dmp_FragmentLightSource[3].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+3*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x6D
| 0x6D
Line 674: Line 922:
| dmp_FragmentLightSource[4].spotDirection
| dmp_FragmentLightSource[4].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+4*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x6E
| 0x6E
Line 679: Line 929:
| dmp_FragmentLightSource[5].spotDirection
| dmp_FragmentLightSource[5].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+5*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x6F
| 0x6F
Line 684: Line 936:
| dmp_FragmentLightSource[6].spotDirection
| dmp_FragmentLightSource[6].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+6*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x70
| 0x70
Line 689: Line 943:
| dmp_FragmentLightSource[7].spotDirection
| dmp_FragmentLightSource[7].spotDirection
| 0x001587E4
| 0x001587E4
| 0xA20+7*0x70+0x54
| 0x01C8 ?
|-  
|-  
| 0x71
| 0x71
Line 694: Line 950:
| dmp_FragmentLightSource[0].shadowed
| dmp_FragmentLightSource[0].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x72
| 0x72
Line 699: Line 957:
| dmp_FragmentLightSource[1].shadowed
| dmp_FragmentLightSource[1].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x73
| 0x73
Line 704: Line 964:
| dmp_FragmentLightSource[2].shadowed
| dmp_FragmentLightSource[2].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x74
| 0x74
Line 709: Line 971:
| dmp_FragmentLightSource[3].shadowed
| dmp_FragmentLightSource[3].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x75
| 0x75
Line 714: Line 978:
| dmp_FragmentLightSource[4].shadowed
| dmp_FragmentLightSource[4].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x76
| 0x76
Line 719: Line 985:
| dmp_FragmentLightSource[5].shadowed
| dmp_FragmentLightSource[5].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x77
| 0x77
Line 724: Line 992:
| dmp_FragmentLightSource[6].shadowed
| dmp_FragmentLightSource[6].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x78
| 0x78
Line 729: Line 999:
| dmp_FragmentLightSource[7].shadowed
| dmp_FragmentLightSource[7].shadowed
| 0x0012C20C
| 0x0012C20C
| 0x7C0
| 0x01C8 ?
|-  
|-  
| 0x79
| 0x79
Line 734: Line 1,006:
| dmp_FragmentLightSource[0].geomFactor0
| dmp_FragmentLightSource[0].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x0149 bit2
|-  
|-  
| 0x7A
| 0x7A
Line 739: Line 1,013:
| dmp_FragmentLightSource[1].geomFactor0
| dmp_FragmentLightSource[1].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x0159 bit2
|-  
|-  
| 0x7B
| 0x7B
Line 744: Line 1,020:
| dmp_FragmentLightSource[2].geomFactor0
| dmp_FragmentLightSource[2].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x0169 bit2
|-  
|-  
| 0x7C
| 0x7C
Line 749: Line 1,027:
| dmp_FragmentLightSource[3].geomFactor0
| dmp_FragmentLightSource[3].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x0179 bit2
|-  
|-  
| 0x7D
| 0x7D
Line 754: Line 1,034:
| dmp_FragmentLightSource[4].geomFactor0
| dmp_FragmentLightSource[4].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x0189 bit2
|-  
|-  
| 0x7E
| 0x7E
Line 759: Line 1,041:
| dmp_FragmentLightSource[5].geomFactor0
| dmp_FragmentLightSource[5].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x0199 bit2
|-  
|-  
| 0x7F
| 0x7F
Line 764: Line 1,048:
| dmp_FragmentLightSource[6].geomFactor0
| dmp_FragmentLightSource[6].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x01A9 bit2
|-  
|-  
| 0x80
| 0x80
Line 769: Line 1,055:
| dmp_FragmentLightSource[7].geomFactor0
| dmp_FragmentLightSource[7].geomFactor0
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x01B9 bit2
|-  
|-  
| 0x81
| 0x81
Line 774: Line 1,062:
| dmp_FragmentLightSource[0].geomFactor1
| dmp_FragmentLightSource[0].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x0149 bit3
|-  
|-  
| 0x82
| 0x82
Line 779: Line 1,069:
| dmp_FragmentLightSource[1].geomFactor1
| dmp_FragmentLightSource[1].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x0159 bit3
|-  
|-  
| 0x83
| 0x83
Line 784: Line 1,076:
| dmp_FragmentLightSource[2].geomFactor1
| dmp_FragmentLightSource[2].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x0169 bit3
|-  
|-  
| 0x84
| 0x84
Line 789: Line 1,083:
| dmp_FragmentLightSource[3].geomFactor1
| dmp_FragmentLightSource[3].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x0179 bit3
|-  
|-  
| 0x85
| 0x85
Line 794: Line 1,090:
| dmp_FragmentLightSource[4].geomFactor1
| dmp_FragmentLightSource[4].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x0189 bit3
|-  
|-  
| 0x86
| 0x86
Line 799: Line 1,097:
| dmp_FragmentLightSource[5].geomFactor1
| dmp_FragmentLightSource[5].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x0199 bit3
|-  
|-  
| 0x87
| 0x87
Line 804: Line 1,104:
| dmp_FragmentLightSource[6].geomFactor1
| dmp_FragmentLightSource[6].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x01A9 bit3
|-  
|-  
| 0x88
| 0x88
Line 809: Line 1,111:
| dmp_FragmentLightSource[7].geomFactor1
| dmp_FragmentLightSource[7].geomFactor1
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x01B9 bit3
|-  
|-  
| 0x89
| 0x89
Line 814: Line 1,118:
| dmp_FragmentLightSource[0].twoSideDiffuse
| dmp_FragmentLightSource[0].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x0149 bit1
|-  
|-  
| 0x8A
| 0x8A
Line 819: Line 1,125:
| dmp_FragmentLightSource[1].twoSideDiffuse
| dmp_FragmentLightSource[1].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x0159 bit1
|-  
|-  
| 0x8B
| 0x8B
Line 824: Line 1,132:
| dmp_FragmentLightSource[2].twoSideDiffuse
| dmp_FragmentLightSource[2].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x0169 bit1
|-  
|-  
| 0x8C
| 0x8C
Line 829: Line 1,139:
| dmp_FragmentLightSource[3].twoSideDiffuse
| dmp_FragmentLightSource[3].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x0179 bit1
|-  
|-  
| 0x8D
| 0x8D
Line 834: Line 1,146:
| dmp_FragmentLightSource[4].twoSideDiffuse
| dmp_FragmentLightSource[4].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x0189 bit1
|-  
|-  
| 0x8E
| 0x8E
Line 839: Line 1,153:
| dmp_FragmentLightSource[5].twoSideDiffuse
| dmp_FragmentLightSource[5].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x0199 bit1
|-  
|-  
| 0x8F
| 0x8F
Line 844: Line 1,160:
| dmp_FragmentLightSource[6].twoSideDiffuse
| dmp_FragmentLightSource[6].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x01A9 bit1
|-  
|-  
| 0x90
| 0x90
Line 849: Line 1,167:
| dmp_FragmentLightSource[7].twoSideDiffuse
| dmp_FragmentLightSource[7].twoSideDiffuse
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x01B9 bit1
|-  
|-  
| 0x91
| 0x91
Line 854: Line 1,174:
| dmp_FragmentLightSource[0].samplerSP
| dmp_FragmentLightSource[0].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+0*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x92
| 0x92
Line 859: Line 1,181:
| dmp_FragmentLightSource[1].samplerSP
| dmp_FragmentLightSource[1].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+1*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x93
| 0x93
Line 864: Line 1,188:
| dmp_FragmentLightSource[2].samplerSP
| dmp_FragmentLightSource[2].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+2*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x94
| 0x94
Line 869: Line 1,195:
| dmp_FragmentLightSource[3].samplerSP
| dmp_FragmentLightSource[3].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+3*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x95
| 0x95
Line 874: Line 1,202:
| dmp_FragmentLightSource[4].samplerSP
| dmp_FragmentLightSource[4].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+4*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x96
| 0x96
Line 879: Line 1,209:
| dmp_FragmentLightSource[5].samplerSP
| dmp_FragmentLightSource[5].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+5*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x97
| 0x97
Line 884: Line 1,216:
| dmp_FragmentLightSource[6].samplerSP
| dmp_FragmentLightSource[6].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+6*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x98
| 0x98
Line 889: Line 1,223:
| dmp_FragmentLightSource[7].samplerSP
| dmp_FragmentLightSource[7].samplerSP
| 0x0012C31C
| 0x0012C31C
| 0xA20+7*0x70+0x60
| 0x01C8 ?
|-  
|-  
| 0x99
| 0x99
Line 894: Line 1,230:
| dmp_FragmentLightSource[0].spotEnabled
| dmp_FragmentLightSource[0].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit3 (1 = disable?)
|-  
|-  
| 0x9A
| 0x9A
Line 899: Line 1,237:
| dmp_FragmentLightSource[1].spotEnabled
| dmp_FragmentLightSource[1].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit4 (1 = disable?)
|-  
|-  
| 0x9B
| 0x9B
Line 904: Line 1,244:
| dmp_FragmentLightSource[2].spotEnabled
| dmp_FragmentLightSource[2].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit5 (1 = disable?)
|-  
|-  
| 0x9C
| 0x9C
Line 909: Line 1,251:
| dmp_FragmentLightSource[3].spotEnabled
| dmp_FragmentLightSource[3].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit6 (1 = disable?)
|-  
|-  
| 0x9D
| 0x9D
Line 914: Line 1,258:
| dmp_FragmentLightSource[4].spotEnabled
| dmp_FragmentLightSource[4].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit7 (1 = disable?)
|-  
|-  
| 0x9E
| 0x9E
Line 919: Line 1,265:
| dmp_FragmentLightSource[5].spotEnabled
| dmp_FragmentLightSource[5].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit8 (1 = disable?)
|-  
|-  
| 0x9F
| 0x9F
Line 924: Line 1,272:
| dmp_FragmentLightSource[6].spotEnabled
| dmp_FragmentLightSource[6].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit9 (1 = disable?)
|-  
|-  
| 0xA0
| 0xA0
Line 929: Line 1,279:
| dmp_FragmentLightSource[7].spotEnabled
| dmp_FragmentLightSource[7].spotEnabled
| 0x0012C380
| 0x0012C380
| ?
| 0x01C4 bit10 (1 = disable?)
|-  
|-  
| 0xA1
| 0xA1
Line 934: Line 1,286:
| dmp_FragmentLightSource[0].distanceAttenuationBias
| dmp_FragmentLightSource[0].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+0*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA2
| 0xA2
Line 939: Line 1,293:
| dmp_FragmentLightSource[1].distanceAttenuationBias
| dmp_FragmentLightSource[1].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+1*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA3
| 0xA3
Line 944: Line 1,300:
| dmp_FragmentLightSource[2].distanceAttenuationBias
| dmp_FragmentLightSource[2].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+2*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA4
| 0xA4
Line 949: Line 1,307:
| dmp_FragmentLightSource[3].distanceAttenuationBias
| dmp_FragmentLightSource[3].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+3*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA5
| 0xA5
Line 954: Line 1,314:
| dmp_FragmentLightSource[4].distanceAttenuationBias
| dmp_FragmentLightSource[4].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+4*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA6
| 0xA6
Line 959: Line 1,321:
| dmp_FragmentLightSource[5].distanceAttenuationBias
| dmp_FragmentLightSource[5].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+5*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA7
| 0xA7
Line 964: Line 1,328:
| dmp_FragmentLightSource[6].distanceAttenuationBias
| dmp_FragmentLightSource[6].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+6*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA8
| 0xA8
Line 969: Line 1,335:
| dmp_FragmentLightSource[7].distanceAttenuationBias
| dmp_FragmentLightSource[7].distanceAttenuationBias
| 0x00158AE8
| 0x00158AE8
| 0xA20+7*0x70+0x64
| 0x01C8 ?
|-  
|-  
| 0xA9
| 0xA9
Line 974: Line 1,342:
| dmp_FragmentLightSource[0].distanceAttenuationScale
| dmp_FragmentLightSource[0].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+0*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xAA
| 0xAA
Line 979: Line 1,349:
| dmp_FragmentLightSource[1].distanceAttenuationScale
| dmp_FragmentLightSource[1].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+1*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xAB
| 0xAB
Line 984: Line 1,356:
| dmp_FragmentLightSource[2].distanceAttenuationScale
| dmp_FragmentLightSource[2].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+2*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xAC
| 0xAC
Line 989: Line 1,363:
| dmp_FragmentLightSource[3].distanceAttenuationScale
| dmp_FragmentLightSource[3].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+3*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xAD
| 0xAD
Line 994: Line 1,370:
| dmp_FragmentLightSource[4].distanceAttenuationScale
| dmp_FragmentLightSource[4].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+4*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xAE
| 0xAE
Line 999: Line 1,377:
| dmp_FragmentLightSource[5].distanceAttenuationScale
| dmp_FragmentLightSource[5].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+5*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xAF
| 0xAF
Line 1,004: Line 1,384:
| dmp_FragmentLightSource[6].distanceAttenuationScale
| dmp_FragmentLightSource[6].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+6*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xB0
| 0xB0
Line 1,009: Line 1,391:
| dmp_FragmentLightSource[7].distanceAttenuationScale
| dmp_FragmentLightSource[7].distanceAttenuationScale
| 0x00158C44
| 0x00158C44
| 0xA20+7*0x70+0x68
| 0x01C8 ?
|-  
|-  
| 0xB1
| 0xB1
Line 1,014: Line 1,398:
| dmp_FragmentLightSource[0].distanceAttenuationEnabled
| dmp_FragmentLightSource[0].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB2
| 0xB2
Line 1,019: Line 1,405:
| dmp_FragmentLightSource[1].distanceAttenuationEnabled
| dmp_FragmentLightSource[1].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB3
| 0xB3
Line 1,024: Line 1,412:
| dmp_FragmentLightSource[2].distanceAttenuationEnabled
| dmp_FragmentLightSource[2].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB4
| 0xB4
Line 1,029: Line 1,419:
| dmp_FragmentLightSource[3].distanceAttenuationEnabled
| dmp_FragmentLightSource[3].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB5
| 0xB5
Line 1,034: Line 1,426:
| dmp_FragmentLightSource[4].distanceAttenuationEnabled
| dmp_FragmentLightSource[4].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB6
| 0xB6
Line 1,039: Line 1,433:
| dmp_FragmentLightSource[5].distanceAttenuationEnabled
| dmp_FragmentLightSource[5].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB7
| 0xB7
Line 1,044: Line 1,440:
| dmp_FragmentLightSource[6].distanceAttenuationEnabled
| dmp_FragmentLightSource[6].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB8
| 0xB8
Line 1,049: Line 1,447:
| dmp_FragmentLightSource[7].distanceAttenuationEnabled
| dmp_FragmentLightSource[7].distanceAttenuationEnabled
| 0x0012C4A0
| 0x0012C4A0
| ?
| 0x01C8 ?
|-  
|-  
| 0xB9
| 0xB9
Line 1,054: Line 1,454:
| dmp_FragmentLightSource[0].samplerDA
| dmp_FragmentLightSource[0].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+0*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xBA
| 0xBA
Line 1,059: Line 1,461:
| dmp_FragmentLightSource[1].samplerDA
| dmp_FragmentLightSource[1].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+1*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xBB
| 0xBB
Line 1,064: Line 1,468:
| dmp_FragmentLightSource[2].samplerDA
| dmp_FragmentLightSource[2].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+2*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xBC
| 0xBC
Line 1,069: Line 1,475:
| dmp_FragmentLightSource[3].samplerDA
| dmp_FragmentLightSource[3].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+3*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xBD
| 0xBD
Line 1,074: Line 1,482:
| dmp_FragmentLightSource[4].samplerDA
| dmp_FragmentLightSource[4].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+4*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xBE
| 0xBE
Line 1,079: Line 1,489:
| dmp_FragmentLightSource[5].samplerDA
| dmp_FragmentLightSource[5].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+5*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xBF
| 0xBF
Line 1,084: Line 1,496:
| dmp_FragmentLightSource[6].samplerDA
| dmp_FragmentLightSource[6].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+6*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xC0
| 0xC0
Line 1,089: Line 1,503:
| dmp_FragmentLightSource[7].samplerDA
| dmp_FragmentLightSource[7].samplerDA
| 0x0012C578
| 0x0012C578
| 0xA20+7*0x70+0x6C
| 0x01C8 ?
|-  
|-  
| 0xC1
| 0xC1
Line 1,094: Line 1,510:
| dmp_LightEnv.absLutInputD0
| dmp_LightEnv.absLutInputD0
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit12 (1 = disable?)
|-  
|-  
| 0xC2
| 0xC2
Line 1,099: Line 1,517:
| dmp_LightEnv.absLutInputD1
| dmp_LightEnv.absLutInputD1
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit13 (1 = disable?)
|-  
|-  
| 0xC3
| 0xC3
Line 1,104: Line 1,524:
| dmp_LightEnv.absLutInputSP
| dmp_LightEnv.absLutInputSP
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit14 (1 = disable?)
|-  
|-  
| 0xC4
| 0xC4
Line 1,109: Line 1,531:
| dmp_LightEnv.absLutInputFR
| dmp_LightEnv.absLutInputFR
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit15 (1 = disable?)
|-  
|-  
| 0xC5
| 0xC5
Line 1,114: Line 1,538:
| dmp_LightEnv.absLutInputRB
| dmp_LightEnv.absLutInputRB
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit16 (1 = disable?)
|-  
|-  
| 0xC6
| 0xC6
Line 1,119: Line 1,545:
| dmp_LightEnv.absLutInputRG
| dmp_LightEnv.absLutInputRG
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit17 (1 = disable?)
|-  
|-  
| 0xC7
| 0xC7
Line 1,124: Line 1,552:
| dmp_LightEnv.absLutInputRR
| dmp_LightEnv.absLutInputRR
| 0x0012C5D8
| 0x0012C5D8
| ?
| 0x01D0 bit18 (1 = disable?)
|-  
|-  
| 0xC8
| 0xC8
Line 1,129: Line 1,559:
| dmp_LightEnv.lutInputD0
| dmp_LightEnv.lutInputD0
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit0-2
|-  
|-  
| 0xC9
| 0xC9
Line 1,134: Line 1,566:
| dmp_LightEnv.lutInputD1
| dmp_LightEnv.lutInputD1
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit4-6
|-  
|-  
| 0xCA
| 0xCA
Line 1,139: Line 1,573:
| dmp_LightEnv.lutInputSP
| dmp_LightEnv.lutInputSP
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit8-10
|-  
|-  
| 0xCB
| 0xCB
Line 1,144: Line 1,580:
| dmp_LightEnv.lutInputFR
| dmp_LightEnv.lutInputFR
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit12-14
|-  
|-  
| 0xCC
| 0xCC
Line 1,149: Line 1,587:
| dmp_LightEnv.lutInputRB
| dmp_LightEnv.lutInputRB
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit16-18
|-  
|-  
| 0xCD
| 0xCD
Line 1,154: Line 1,594:
| dmp_LightEnv.lutInputRG
| dmp_LightEnv.lutInputRG
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit20-22
|-  
|-  
| 0xCE
| 0xCE
Line 1,159: Line 1,601:
| dmp_LightEnv.lutInputRR
| dmp_LightEnv.lutInputRR
| 0x0012C6E8
| 0x0012C6E8
| ?
| 0x01D1 bit24-26
|-  
|-  
| 0xCF
| 0xCF
Line 1,164: Line 1,608:
| dmp_LightEnv.lutScaleD0
| dmp_LightEnv.lutScaleD0
| 0x00155404
| 0x00155404
| ?
| 0x01D2 bit0-3
|-  
|-  
| 0xD0
| 0xD0
Line 1,169: Line 1,615:
| dmp_LightEnv.lutScaleD1
| dmp_LightEnv.lutScaleD1
| 0x00155404
| 0x00155404
| ?
| 0x01D2 bit4-7
|-  
|-  
| 0xD1
| 0xD1
Line 1,174: Line 1,622:
| dmp_LightEnv.lutScaleSP
| dmp_LightEnv.lutScaleSP
| 0x00155404
| 0x00155404
| ?
| 0x01D2 bit8-11
|-  
|-  
| 0xD2
| 0xD2
Line 1,179: Line 1,629:
| dmp_LightEnv.lutScaleFR
| dmp_LightEnv.lutScaleFR
| 0x00155404
| 0x00155404
| ?
| 0x01D2 bit12-15
|-  
|-  
| 0xD3
| 0xD3
Line 1,184: Line 1,636:
| dmp_LightEnv.lutScaleRB
| dmp_LightEnv.lutScaleRB
| 0x00155404
| 0x00155404
| ?
|0x01D2 bit16-19
|-  
|-  
| 0xD4
| 0xD4
Line 1,189: Line 1,643:
| dmp_LightEnv.lutScaleRG
| dmp_LightEnv.lutScaleRG
| 0x00155404
| 0x00155404
| ?
| 0x01D2 bit20-23
|-  
|-  
| 0xD5
| 0xD5
Line 1,194: Line 1,650:
| dmp_LightEnv.lutScaleRR
| dmp_LightEnv.lutScaleRR
| 0x00155404
| 0x00155404
| ?
| 0x01D2 bit24-27
|-  
|-  
| 0xD6
| 0xD6
Line 1,199: Line 1,657:
| dmp_FragmentMaterial.samplerD0
| dmp_FragmentMaterial.samplerD0
| 0x0012C7D0
| 0x0012C7D0
| ?
| ?
|-  
|-  
| 0xD7
| 0xD7
Line 1,204: Line 1,664:
| dmp_FragmentMaterial.samplerD1
| dmp_FragmentMaterial.samplerD1
| 0x0012C7D0
| 0x0012C7D0
| ?
| ?
|-  
|-  
| 0xD8
| 0xD8
Line 1,209: Line 1,671:
| dmp_FragmentMaterial.samplerFR
| dmp_FragmentMaterial.samplerFR
| 0x0012C7D0
| 0x0012C7D0
| ?
| ?
|-  
|-  
| 0xD9
| 0xD9
Line 1,214: Line 1,678:
| dmp_FragmentMaterial.samplerRB
| dmp_FragmentMaterial.samplerRB
| 0x0012C7D0
| 0x0012C7D0
| ?
| ?
|-  
|-  
| 0xDA
| 0xDA
Line 1,219: Line 1,685:
| dmp_FragmentMaterial.samplerRG
| dmp_FragmentMaterial.samplerRG
| 0x0012C7D0
| 0x0012C7D0
| ?
| ?
|-  
|-  
| 0xDB
| 0xDB
Line 1,224: Line 1,692:
| dmp_FragmentMaterial.samplerRR
| dmp_FragmentMaterial.samplerRR
| 0x0012C7D0
| 0x0012C7D0
| ?
| ?
|-  
|-  
| 0xDC
| 0xDC
Line 1,229: Line 1,699:
| dmp_LightEnv.shadowSelector
| dmp_LightEnv.shadowSelector
| 0x0012CE44
| 0x0012CE44
| ?
| 0x01C3 bit24-25
|-  
|-  
| 0xDD
| 0xDD
Line 1,234: Line 1,706:
| dmp_LightEnv.bumpSelector
| dmp_LightEnv.bumpSelector
| 0x0012CD88
| 0x0012CD88
| ?
| 0x01C3 bit22-23
|-  
|-  
| 0xDE
| 0xDE
Line 1,239: Line 1,713:
| dmp_LightEnv.bumpMode
| dmp_LightEnv.bumpMode
| 0x0012D4B4
| 0x0012D4B4
| ?
| ?
|-  
|-  
| 0xDF
| 0xDF
Line 1,244: Line 1,720:
| dmp_LightEnv.bumpRenorm
| dmp_LightEnv.bumpRenorm
| 0x0012D8A0
| 0x0012D8A0
| ?
| ?
|-  
|-  
| 0xE0
| 0xE0
Line 1,249: Line 1,727:
| dmp_LightEnv.config
| dmp_LightEnv.config
| 0x0012D5E4
| 0x0012D5E4
| ?
| ?
|-  
|-  
| 0xE1
| 0xE1
Line 1,254: Line 1,734:
| dmp_LightEnv.invertShadow
| dmp_LightEnv.invertShadow
| 0x0012CF04
| 0x0012CF04
| ?
| ?
|-  
|-  
| 0xE2
| 0xE2
Line 1,259: Line 1,741:
| dmp_LightEnv.shadowPrimary
| dmp_LightEnv.shadowPrimary
| 0x0012CFD4
| 0x0012CFD4
| ?
| ?
|-  
|-  
| 0xE3
| 0xE3
Line 1,264: Line 1,748:
| dmp_LightEnv.shadowSecondary
| dmp_LightEnv.shadowSecondary
| 0x0012D1B8
| 0x0012D1B8
| ?
| ?
|-  
|-  
| 0xE4
| 0xE4
Line 1,269: Line 1,755:
| dmp_LightEnv.shadowAlpha
| dmp_LightEnv.shadowAlpha
| 0x0012D350
| 0x0012D350
| ?
| ?
|-  
|-  
| 0xE5
| 0xE5
Line 1,274: Line 1,762:
| dmp_LightEnv.fresnelSelector
| dmp_LightEnv.fresnelSelector
| 0x0012D720
| 0x0012D720
| ?
| ?
|-  
|-  
| 0xE6
| 0xE6
Line 1,279: Line 1,769:
| dmp_LightEnv.clampHighlights
| dmp_LightEnv.clampHighlights
| 0x0012D9B0
| 0x0012D9B0
| ?
| ?
|-  
|-  
| 0xE7
| 0xE7
Line 1,284: Line 1,776:
| dmp_LightEnv.lutEnabledD0
| dmp_LightEnv.lutEnabledD0
| 0x0012DA80
| 0x0012DA80
| ?
| ?
|-  
|-  
| 0xE8
| 0xE8
Line 1,289: Line 1,783:
| dmp_LightEnv.lutEnabledD1
| dmp_LightEnv.lutEnabledD1
| 0x0012DB58
| 0x0012DB58
| ?
| ?
|-  
|-  
| 0xE9
| 0xE9
Line 1,294: Line 1,790:
| dmp_LightEnv.lutEnabledRefl
| dmp_LightEnv.lutEnabledRefl
| 0x0012C83C
| 0x0012C83C
| ?
| ?
|-  
|-  
| 0xEA
| 0xEA
Line 1,299: Line 1,797:
| dmp_TexEnv[0].combineRgb
| dmp_TexEnv[0].combineRgb
| 0x0012DC2C
| 0x0012DC2C
| ?
| 0xC2
|-  
|-  
| 0xEB
| 0xEB
Line 1,304: Line 1,804:
| dmp_TexEnv[1].combineRgb
| dmp_TexEnv[1].combineRgb
| 0x0012DC2C
| 0x0012DC2C
| ?
| 0xCA
|-  
|-  
| 0xEC
| 0xEC
Line 1,309: Line 1,811:
| dmp_TexEnv[2].combineRgb
| dmp_TexEnv[2].combineRgb
| 0x0012DC2C
| 0x0012DC2C
| ?
| 0xD2
|-  
|-  
| 0xED
| 0xED
Line 1,314: Line 1,818:
| dmp_TexEnv[3].combineRgb
| dmp_TexEnv[3].combineRgb
| 0x0012DC2C
| 0x0012DC2C
| ?
| 0xDA
|-  
|-  
| 0xEE
| 0xEE
Line 1,319: Line 1,825:
| dmp_TexEnv[4].combineRgb
| dmp_TexEnv[4].combineRgb
| 0x0012DC2C
| 0x0012DC2C
| ?
| 0xF2
|-  
|-  
| 0xEF
| 0xEF
Line 1,324: Line 1,832:
| dmp_TexEnv[5].combineRgb
| dmp_TexEnv[5].combineRgb
| 0x0012DC2C
| 0x0012DC2C
| ?
| 0xFA
|-  
|-  
| 0xF0
| 0xF0
Line 1,329: Line 1,839:
| dmp_TexEnv[0].combineAlpha
| dmp_TexEnv[0].combineAlpha
| 0x0012DD9C
| 0x0012DD9C
| ?
| 0xC2
|-  
|-  
| 0xF1
| 0xF1
Line 1,334: Line 1,846:
| dmp_TexEnv[1].combineAlpha
| dmp_TexEnv[1].combineAlpha
| 0x0012DD9C
| 0x0012DD9C
| ?
| 0xCA
|-  
|-  
| 0xF2
| 0xF2
Line 1,339: Line 1,853:
| dmp_TexEnv[2].combineAlpha
| dmp_TexEnv[2].combineAlpha
| 0x0012DD9C
| 0x0012DD9C
| ?
| 0xD2
|-  
|-  
| 0xF3
| 0xF3
Line 1,344: Line 1,860:
| dmp_TexEnv[3].combineAlpha
| dmp_TexEnv[3].combineAlpha
| 0x0012DD9C
| 0x0012DD9C
| ?
| 0xDA
|-  
|-  
| 0xF4
| 0xF4
Line 1,349: Line 1,867:
| dmp_TexEnv[4].combineAlpha
| dmp_TexEnv[4].combineAlpha
| 0x0012DD9C
| 0x0012DD9C
| ?
| 0xF2
|-  
|-  
| 0xF5
| 0xF5
Line 1,354: Line 1,874:
| dmp_TexEnv[5].combineAlpha
| dmp_TexEnv[5].combineAlpha
| 0x0012DD9C
| 0x0012DD9C
| ?
| 0xFA
|-  
|-  
| 0xF6
| 0xF6
Line 1,359: Line 1,881:
| dmp_TexEnv[0].srcRgb
| dmp_TexEnv[0].srcRgb
| 0x0012DF08
| 0x0012DF08
| ?
| 0xC0
|-  
|-  
| 0xF7
| 0xF7
Line 1,364: Line 1,888:
| dmp_TexEnv[1].srcRgb
| dmp_TexEnv[1].srcRgb
| 0x0012DF08
| 0x0012DF08
| ?
| 0xC8
|-  
|-  
| 0xF8
| 0xF8
Line 1,369: Line 1,895:
| dmp_TexEnv[2].srcRgb
| dmp_TexEnv[2].srcRgb
| 0x0012DF08
| 0x0012DF08
| ?
| 0xD0
|-  
|-  
| 0xF9
| 0xF9
Line 1,374: Line 1,902:
| dmp_TexEnv[3].srcRgb
| dmp_TexEnv[3].srcRgb
| 0x0012DF08
| 0x0012DF08
| ?
| 0xD8
|-  
|-  
| 0xFA
| 0xFA
Line 1,379: Line 1,909:
| dmp_TexEnv[4].srcRgb
| dmp_TexEnv[4].srcRgb
| 0x0012DF08
| 0x0012DF08
| ?
| 0xF0
|-  
|-  
| 0xFB
| 0xFB
Line 1,384: Line 1,916:
| dmp_TexEnv[5].srcRgb
| dmp_TexEnv[5].srcRgb
| 0x0012DF08
| 0x0012DF08
| ?
| 0xF8
|-  
|-  
| 0xFC
| 0xFC
Line 1,389: Line 1,923:
| dmp_TexEnv[0].srcAlpha
| dmp_TexEnv[0].srcAlpha
| 0x0012E0FC
| 0x0012E0FC
| ?
| 0xC0
|-  
|-  
| 0xFD
| 0xFD
Line 1,394: Line 1,930:
| dmp_TexEnv[1].srcAlpha
| dmp_TexEnv[1].srcAlpha
| 0x0012E0FC
| 0x0012E0FC
| ?
| 0xC8
|-  
|-  
| 0xFE
| 0xFE
Line 1,399: Line 1,937:
| dmp_TexEnv[2].srcAlpha
| dmp_TexEnv[2].srcAlpha
| 0x0012E0FC
| 0x0012E0FC
| ?
| 0xD0
|-  
|-  
| 0xFF
| 0xFF
Line 1,404: Line 1,944:
| dmp_TexEnv[3].srcAlpha
| dmp_TexEnv[3].srcAlpha
| 0x0012E0FC
| 0x0012E0FC
| ?
| 0xD8
|-  
|-  
| 0x100
| 0x100
Line 1,409: Line 1,951:
| dmp_TexEnv[4].srcAlpha
| dmp_TexEnv[4].srcAlpha
| 0x0012E0FC
| 0x0012E0FC
| ?
| 0xF0
|-  
|-  
| 0x101
| 0x101
Line 1,414: Line 1,958:
| dmp_TexEnv[5].srcAlpha
| dmp_TexEnv[5].srcAlpha
| 0x0012E0FC
| 0x0012E0FC
| ?
| 0xF8
|-  
|-  
| 0x102
| 0x102
Line 1,419: Line 1,965:
| dmp_TexEnv[0].operandRgb
| dmp_TexEnv[0].operandRgb
| 0x0012E2F0
| 0x0012E2F0
| ?
| 0xC1
|-  
|-  
| 0x103
| 0x103
Line 1,424: Line 1,972:
| dmp_TexEnv[1].operandRgb
| dmp_TexEnv[1].operandRgb
| 0x0012E2F0
| 0x0012E2F0
| ?
| 0xC9
|-  
|-  
| 0x104
| 0x104
Line 1,429: Line 1,979:
| dmp_TexEnv[2].operandRgb
| dmp_TexEnv[2].operandRgb
| 0x0012E2F0
| 0x0012E2F0
| ?
| 0xD1
|-  
|-  
| 0x105
| 0x105
Line 1,434: Line 1,986:
| dmp_TexEnv[3].operandRgb
| dmp_TexEnv[3].operandRgb
| 0x0012E2F0
| 0x0012E2F0
| ?
| 0xD9
|-  
|-  
| 0x106
| 0x106
Line 1,439: Line 1,993:
| dmp_TexEnv[4].operandRgb
| dmp_TexEnv[4].operandRgb
| 0x0012E2F0
| 0x0012E2F0
| ?
| 0xF1
|-  
|-  
| 0x107
| 0x107
Line 1,444: Line 2,000:
| dmp_TexEnv[5].operandRgb
| dmp_TexEnv[5].operandRgb
| 0x0012E2F0
| 0x0012E2F0
| ?
| 0xF9
|-  
|-  
| 0x108
| 0x108
Line 1,449: Line 2,007:
| dmp_TexEnv[0].operandAlpha
| dmp_TexEnv[0].operandAlpha
| 0x0012E51C
| 0x0012E51C
| ?
| 0xC1
|-  
|-  
| 0x109
| 0x109
Line 1,454: Line 2,014:
| dmp_TexEnv[1].operandAlpha
| dmp_TexEnv[1].operandAlpha
| 0x0012E51C
| 0x0012E51C
| ?
| 0xC9
|-  
|-  
| 0x10A
| 0x10A
Line 1,459: Line 2,021:
| dmp_TexEnv[2].operandAlpha
| dmp_TexEnv[2].operandAlpha
| 0x0012E51C
| 0x0012E51C
| ?
| 0xD1
|-  
|-  
| 0x10B
| 0x10B
Line 1,464: Line 2,028:
| dmp_TexEnv[3].operandAlpha
| dmp_TexEnv[3].operandAlpha
| 0x0012E51C
| 0x0012E51C
| ?
| 0xD9
|-  
|-  
| 0x10C
| 0x10C
Line 1,469: Line 2,035:
| dmp_TexEnv[4].operandAlpha
| dmp_TexEnv[4].operandAlpha
| 0x0012E51C
| 0x0012E51C
| ?
| 0xF1
|-  
|-  
| 0x10D
| 0x10D
Line 1,474: Line 2,042:
| dmp_TexEnv[5].operandAlpha
| dmp_TexEnv[5].operandAlpha
| 0x0012E51C
| 0x0012E51C
| ?
| 0xF9
|-  
|-  
| 0x10E
| 0x10E
Line 1,479: Line 2,049:
| dmp_TexEnv[0].scaleRgb
| dmp_TexEnv[0].scaleRgb
| 0x00155464
| 0x00155464
| ?
| ?
|-  
|-  
| 0x10F
| 0x10F
Line 1,484: Line 2,056:
| dmp_TexEnv[1].scaleRgb
| dmp_TexEnv[1].scaleRgb
| 0x00155464
| 0x00155464
| ?
| ?
|-  
|-  
| 0x110
| 0x110
Line 1,489: Line 2,063:
| dmp_TexEnv[2].scaleRgb
| dmp_TexEnv[2].scaleRgb
| 0x00155464
| 0x00155464
| ?
| ?
|-  
|-  
| 0x111
| 0x111
Line 1,494: Line 2,070:
| dmp_TexEnv[3].scaleRgb
| dmp_TexEnv[3].scaleRgb
| 0x00155464
| 0x00155464
| ?
| ?
|-  
|-  
| 0x112
| 0x112
Line 1,499: Line 2,077:
| dmp_TexEnv[4].scaleRgb
| dmp_TexEnv[4].scaleRgb
| 0x00155464
| 0x00155464
| ?
| ?
|-  
|-  
| 0x113
| 0x113
Line 1,504: Line 2,084:
| dmp_TexEnv[5].scaleRgb
| dmp_TexEnv[5].scaleRgb
| 0x00155464
| 0x00155464
| ?
| ?
|-  
|-  
| 0x114
| 0x114
Line 1,509: Line 2,091:
| dmp_TexEnv[0].scaleAlpha
| dmp_TexEnv[0].scaleAlpha
| 0x00158EDC
| 0x00158EDC
| ?
| ?
|-  
|-  
| 0x115
| 0x115
Line 1,514: Line 2,098:
| dmp_TexEnv[1].scaleAlpha
| dmp_TexEnv[1].scaleAlpha
| 0x00158EDC
| 0x00158EDC
| ?
| ?
|-  
|-  
| 0x116
| 0x116
Line 1,519: Line 2,105:
| dmp_TexEnv[2].scaleAlpha
| dmp_TexEnv[2].scaleAlpha
| 0x00158EDC
| 0x00158EDC
| ?
| ?
|-  
|-  
| 0x117
| 0x117
Line 1,524: Line 2,112:
| dmp_TexEnv[3].scaleAlpha
| dmp_TexEnv[3].scaleAlpha
| 0x00158EDC
| 0x00158EDC
| ?
| ?
|-  
|-  
| 0x118
| 0x118
Line 1,529: Line 2,119:
| dmp_TexEnv[4].scaleAlpha
| dmp_TexEnv[4].scaleAlpha
| 0x00158EDC
| 0x00158EDC
| ?
| ?
|-  
|-  
| 0x119
| 0x119
Line 1,534: Line 2,126:
| dmp_TexEnv[5].scaleAlpha
| dmp_TexEnv[5].scaleAlpha
| 0x00158EDC
| 0x00158EDC
| ?
| ?
|-  
|-  
| 0x11A
| 0x11A
Line 1,539: Line 2,133:
| dmp_TexEnv[0].constRgba
| dmp_TexEnv[0].constRgba
| 0x00158FF4
| 0x00158FF4
| ?
| 0xC3
|-  
|-  
| 0x11B
| 0x11B
Line 1,544: Line 2,140:
| dmp_TexEnv[1].constRgba
| dmp_TexEnv[1].constRgba
| 0x00158FF4
| 0x00158FF4
| ?
| 0xCB
|-  
|-  
| 0x11C
| 0x11C
Line 1,549: Line 2,147:
| dmp_TexEnv[2].constRgba
| dmp_TexEnv[2].constRgba
| 0x00158FF4
| 0x00158FF4
| ?
| 0xD3
|-  
|-  
| 0x11D
| 0x11D
Line 1,554: Line 2,154:
| dmp_TexEnv[3].constRgba
| dmp_TexEnv[3].constRgba
| 0x00158FF4
| 0x00158FF4
| ?
| 0xDB
|-  
|-  
| 0x11E
| 0x11E
Line 1,559: Line 2,161:
| dmp_TexEnv[4].constRgba
| dmp_TexEnv[4].constRgba
| 0x00158FF4
| 0x00158FF4
| ?
| 0xF3
|-  
|-  
| 0x11F
| 0x11F
Line 1,564: Line 2,168:
| dmp_TexEnv[5].constRgba
| dmp_TexEnv[5].constRgba
| 0x00158FF4
| 0x00158FF4
| ?
| 0xFB
|-  
|-  
| 0x120
| 0x120
Line 1,569: Line 2,175:
| dmp_TexEnv[0].bufferColor
| dmp_TexEnv[0].bufferColor
| 0x001591C0
| 0x001591C0
| ?
| ?
|-  
|-  
| 0x121
| 0x121
Line 1,574: Line 2,182:
| dmp_TexEnv[1].bufferInput
| dmp_TexEnv[1].bufferInput
| 0x0012E6D0
| 0x0012E6D0
| ?
| ?
|-  
|-  
| 0x122
| 0x122
Line 1,579: Line 2,189:
| dmp_TexEnv[2].bufferInput
| dmp_TexEnv[2].bufferInput
| 0x0012E6D0
| 0x0012E6D0
| ?
| ?
|-  
|-  
| 0x123
| 0x123
Line 1,584: Line 2,196:
| dmp_TexEnv[3].bufferInput
| dmp_TexEnv[3].bufferInput
| 0x0012E6D0
| 0x0012E6D0
| ?
| ?
|-  
|-  
| 0x124
| 0x124
Line 1,589: Line 2,203:
| dmp_TexEnv[4].bufferInput
| dmp_TexEnv[4].bufferInput
| 0x0012E6D0
| 0x0012E6D0
| ?
| ?
|-  
|-  
| 0x125
| 0x125
Line 1,594: Line 2,210:
| dmp_Fog.mode
| dmp_Fog.mode
| 0x0012E7F8
| 0x0012E7F8
| ?
| 0x00E0 bit0-2 (5 -> fog (0x0B60), 7 -> gas (0x6050))
|-  
|-  
| 0x126
| 0x126
Line 1,599: Line 2,217:
| dmp_Fog.color
| dmp_Fog.color
| 0x00159338
| 0x00159338
| ?
| ?
|-  
|-  
| 0x127
| 0x127
Line 1,604: Line 2,224:
| dmp_Fog.zFlip
| dmp_Fog.zFlip
| 0x0012E9DC
| 0x0012E9DC
| ?
| 0x00E0 bit16
|-  
|-  
| 0x128
| 0x128
Line 1,609: Line 2,231:
| dmp_Fog.sampler
| dmp_Fog.sampler
| 0x0012EAA4
| 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
|}
|}