Nintendo OpenGL: Difference between revisions

Smea (talk | contribs)
mNo edit summary
Neobrain (talk | contribs)
 
(19 intermediate revisions by 5 users not shown)
Line 4: Line 4:
== 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 39: Line 39:
| 0x04
| 0x04
| Number of program-specific uniforms
| Number of program-specific uniforms
|-
| 0x414
| 0x04
| Pointer to vertex shader struct
|-
|-
| 0x64C
| 0x64C
Line 102: 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 133: Line 160:
| 0x0012A504
| 0x0012A504
| ?
| ?
| ?
| 0x008B bit0 (0 = enable??)
|-  
|-  
| 0x1
| 0x1
Line 139: Line 166:
| dmp_Texture[0].shadowZBias
| dmp_Texture[0].shadowZBias
| 0x00155584
| 0x00155584
| ?
| 0xE44
| ?
| ?
|-  
|-  
Line 146: Line 173:
| dmp_Texture[0].shadowZScale
| dmp_Texture[0].shadowZScale
| 0x001556A0
| 0x001556A0
| ?
| 0xE48
| ?
| ?
|-  
|-  
Line 175: Line 202:
| 0x0012A7F0
| 0x0012A7F0
| ?
| ?
| ?
| 0x0080 bit10 (?)
|-  
|-  
| 0x7
| 0x7
Line 182: Line 209:
| 0x0012A8B4
| 0x0012A8B4
| ?
| ?
| ?
| 0x0080 bit13 (1 = use texcoords from texture unit 1)
|-  
|-  
| 0x8
| 0x8
Line 189: Line 216:
| 0x0012A97C
| 0x0012A97C
| ?
| ?
| ?
| 0x0080 bit8-9 (0-2 = use texcoords from texture unit 0-2 resp., 3 = forbidden?)
|-  
|-  
| 0x9
| 0x9
Line 196: Line 223:
| 0x0012AA54
| 0x0012AA54
| ?
| ?
| ?
| 0x00A8 bit6-9
|-  
|-  
| 0xA
| 0xA
Line 203: Line 230:
| 0x0012AB94
| 0x0012AB94
| ?
| ?
| ?
| 0x00A8 bit10-13
|-  
|-  
| 0xB
| 0xB
Line 210: Line 237:
| 0x0012ACD4
| 0x0012ACD4
| ?
| ?
| ?
| 0x00A8 bit14
|-  
|-  
| 0xC
| 0xC
Line 217: Line 244:
| 0x0012ADB8
| 0x0012ADB8
| ?
| ?
| ?
| 0x00A8 bit0-2
|-  
|-  
| 0xD
| 0xD
Line 224: Line 251:
| 0x0012AEC0
| 0x0012AEC0
| ?
| ?
| ?
| 0x00A8 bit3-5
|-  
|-  
| 0xE
| 0xE
Line 231: Line 258:
| 0x0012AFD0
| 0x0012AFD0
| ?
| ?
| ?
| 0x00A8 bit16-17
|-  
|-  
| 0xF
| 0xF
Line 238: Line 265:
| 0x0012B0A0
| 0x0012B0A0
| ?
| ?
| ?
| 0x00A8 bit18-19
|-  
|-  
| 0x10
| 0x10
Line 245: Line 272:
| 0x0012B168
| 0x0012B168
| ?
| ?
| ?
| 0x00AC bit0-2
|-  
|-  
| 0x11
| 0x11
Line 252: Line 279:
| 0x0012B270
| 0x0012B270
| ?
| ?
| ?
| 0x00AC bit11-18
|-  
|-  
| 0x12
| 0x12
Line 259: Line 286:
| 0x0012B334
| 0x0012B334
| ?
| ?
| ?
| 0x00AD bit0-7
|-  
|-  
| 0x13
| 0x13
Line 265: Line 292:
| dmp_Texture[3].ptTexBias
| dmp_Texture[3].ptTexBias
| 0x001556B4
| 0x001556B4
| ?
| 0xE10
| ?
| 0x00A8 bit20-27
|-  
|-  
| 0x14
| 0x14
Line 273: Line 300:
| 0x0012B3E0
| 0x0012B3E0
| ?
| ?
| ?
| 0x00A8 bit15
|-  
|-  
| 0x15
| 0x15
Line 279: Line 306:
| dmp_Texture[3].ptNoiseU
| dmp_Texture[3].ptNoiseU
| 0x00155878
| 0x00155878
| ?
| 0xE14
| ?
| 0x00A9, 0x00AB
|-  
|-  
| 0x16
| 0x16
Line 286: Line 313:
| dmp_Texture[3].ptNoiseV
| dmp_Texture[3].ptNoiseV
| 0x00155A7C
| 0x00155A7C
| ?
| 0xE20
| ?
| 0x00AA, 0x00AB
|-  
|-  
| 0x17
| 0x17
Line 293: Line 320:
| dmp_Texture[3].ptSamplerRgbMap
| dmp_Texture[3].ptSamplerRgbMap
| 0x0012B4B0
| 0x0012B4B0
| ?
| 0xDF0
| ?
| ?
|-  
|-  
Line 300: Line 327:
| dmp_Texture[3].ptSamplerAlphaMap
| dmp_Texture[3].ptSamplerAlphaMap
| 0x0012B4F4
| 0x0012B4F4
| ?
| 0xDF4
| ?
| ?
|-  
|-  
Line 307: Line 334:
| dmp_Texture[3].ptSamplerNoiseMap
| dmp_Texture[3].ptSamplerNoiseMap
| 0x0012B540
| 0x0012B540
| ?
| 0xDF8
| ?
| ?
|-  
|-  
Line 314: Line 341:
| dmp_Texture[3].ptSamplerR
| dmp_Texture[3].ptSamplerR
| 0x0012B58C
| 0x0012B58C
| ?
| 0xDFC
| ?
| ?
|-  
|-  
Line 321: Line 348:
| dmp_Texture[3].ptSamplerG
| dmp_Texture[3].ptSamplerG
| 0x0012B5D8
| 0x0012B5D8
| ?
| 0xE00
| ?
| ?
|-  
|-  
Line 328: Line 355:
| dmp_Texture[3].ptSamplerB
| dmp_Texture[3].ptSamplerB
| 0x0012B624
| 0x0012B624
| ?
| 0xE04
| ?
| ?
|-  
|-  
Line 335: Line 362:
| dmp_Texture[3].ptSamplerA
| dmp_Texture[3].ptSamplerA
| 0x0012B670
| 0x0012B670
| ?
| 0xE08
| ?
| ?
|-  
|-  
Line 342: Line 369:
| dmp_FragOperation.mode
| dmp_FragOperation.mode
| 0x0012B6BC
| 0x0012B6BC
| ?
| 0xE38
| ?
| ?
|-  
|-  
Line 349: Line 376:
| dmp_FragOperation.penumbraScale
| dmp_FragOperation.penumbraScale
| 0x00155C98
| 0x00155C98
| ?
| 0xE40
| ?
| ?
|-  
|-  
Line 356: Line 383:
| dmp_FragOperation.penumbraBias
| dmp_FragOperation.penumbraBias
| 0x00155D8C
| 0x00155D8C
| ?
| 0xE3C
| ?
| ?
|-  
|-  
Line 363: Line 390:
| dmp_FragOperation.wScale
| dmp_FragOperation.wScale
| 0x00155E9C
| 0x00155E9C
| ?
| 0xE4C
| ?
| ?
|-  
|-  
Line 370: Line 397:
| dmp_FragOperation.enableClippingPlane
| dmp_FragOperation.enableClippingPlane
| 0x0012EAEC
| 0x0012EAEC
| ?
| 0x568
| ?
| 0x0047 bit0
|-  
|-  
| 0x23
| 0x23
Line 377: Line 404:
| dmp_FragOperation.clippingPlane
| dmp_FragOperation.clippingPlane
| 0x00159474
| 0x00159474
| ?
| 0xE50
| ?
| ?
|-  
|-  
Line 384: Line 411:
| dmp_FragOperation.enableAlphaTest
| dmp_FragOperation.enableAlphaTest
| 0x0012EBAC
| 0x0012EBAC
| ?
| 0x64C
| ?
| ?
|-  
|-  
Line 391: Line 418:
| dmp_FragOperation.alphaTestFunc
| dmp_FragOperation.alphaTestFunc
| 0x0012EC64
| 0x0012EC64
| ?
| 0x64C
| ?
| ?
|-  
|-  
Line 398: Line 425:
| dmp_FragOperation.alphaRefValue
| dmp_FragOperation.alphaRefValue
| 0x0015971C
| 0x0015971C
| ?
| 0x64C ?
| ?
| ?
|-  
|-  
Line 405: 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 412: 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 419: Line 446:
| dmp_Gas.deltaZ
| dmp_Gas.deltaZ
| 0x001564D4
| 0x001564D4
| ?
| 0xEA0
| ?
| 0x0126 bit0-23
|-  
|-  
| 0x2A
| 0x2A
Line 426: Line 453:
| dmp_Gas.accMax
| dmp_Gas.accMax
| 0x001565C0
| 0x001565C0
| ?
| 0xEA4
| ?
| 0x00E5
|-  
|-  
| 0x2B
| 0x2B
Line 433: Line 460:
| dmp_Gas.autoAcc
| dmp_Gas.autoAcc
| 0x0012B790
| 0x0012B790
| ?
| 0xE74
| ?
| ?
|-  
|-  
Line 440: Line 467:
| dmp_Gas.attenuation
| dmp_Gas.attenuation
| 0x00156684
| 0x00156684
| ?
| 0xEA8
| ?
| 0x00E4
|-  
|-  
| 0x2D
| 0x2D
Line 447: Line 474:
| dmp_Gas.colorLutInput
| dmp_Gas.colorLutInput
| 0x0012B7A4
| 0x0012B7A4
| ?
| 0x640
| ?
| 0x0122 bit8 (0x6060/0x6061 -> 0/1)
|-  
|-  
| 0x2E
| 0x2E
Line 454: Line 481:
| dmp_Gas.shadingDensitySrc
| dmp_Gas.shadingDensitySrc
| 0x0012B854
| 0x0012B854
| ?
| 0x624
| ?
| 0x00E0 bit3 (0x605E/0x605F -> 0/1)
|-  
|-  
| 0x2F
| 0x2F
Line 461: Line 488:
| dmp_Gas.samplerTR
| dmp_Gas.samplerTR
| 0x0012B910
| 0x0012B910
| ?
| 0xE78
| ?
| ?
|-  
|-  
Line 468: Line 495:
| dmp_Gas.samplerTG
| dmp_Gas.samplerTG
| 0x0012B95C
| 0x0012B95C
| ?
| 0xE7C
| ?
| ?
|-  
|-  
Line 475: Line 502:
| dmp_Gas.samplerTB
| dmp_Gas.samplerTB
| 0x0012B9A8
| 0x0012B9A8
| ?
| 0xE80
| ?
| ?
|-  
|-  
Line 482: Line 509:
| dmp_FragmentLighting.enabled
| dmp_FragmentLighting.enabled
| 0x0012B9F4
| 0x0012B9F4
| ?
| 0x590
| ?
| 0x00A8 bit0, 0x01C6 (0 = enabled)
|-  
|-  
| 0x33
| 0x33
Line 490: Line 517:
| 0x00156744
| 0x00156744
| 0xA10
| 0xA10
| ?
| 0x01C0?
|-  
|-  
| 0x34
| 0x34
Line 497: Line 524:
| 0x00156E1C
| 0x00156E1C
| 0xDE0
| 0xDE0
| ?
| 0x01C0?
|-  
|-  
| 0x35
| 0x35
Line 504: Line 531:
| 0x0015696C
| 0x0015696C
| 0xDA0
| 0xDA0
| ?
| 0x01C0
|-  
|-  
| 0x36
| 0x36
Line 588: Line 615:
| 0x001579CC
| 0x001579CC
| 0xA20+0*0x70+0x04
| 0xA20+0*0x70+0x04
| 0x01C8 ?
| 0x0143
|-  
|-  
| 0x42
| 0x42
Line 595: Line 622:
| 0x001579CC
| 0x001579CC
| 0xA20+1*0x70+0x04
| 0xA20+1*0x70+0x04
| 0x01C8 ?
| 0x0153
|-  
|-  
| 0x43
| 0x43
Line 602: Line 629:
| 0x001579CC
| 0x001579CC
| 0xA20+2*0x70+0x04
| 0xA20+2*0x70+0x04
| 0x01C8 ?
| 0x0163
|-  
|-  
| 0x44
| 0x44
Line 609: Line 636:
| 0x001579CC
| 0x001579CC
| 0xA20+3*0x70+0x04
| 0xA20+3*0x70+0x04
| 0x01C8 ?
| 0x0173
|-  
|-  
| 0x45
| 0x45
Line 616: Line 643:
| 0x001579CC
| 0x001579CC
| 0xA20+4*0x70+0x04
| 0xA20+4*0x70+0x04
| 0x01C8 ?
| 0x0183
|-  
|-  
| 0x46
| 0x46
Line 623: Line 650:
| 0x001579CC
| 0x001579CC
| 0xA20+5*0x70+0x04
| 0xA20+5*0x70+0x04
| 0x01C8 ?
| 0x0193
|-  
|-  
| 0x47
| 0x47
Line 630: Line 657:
| 0x001579CC
| 0x001579CC
| 0xA20+6*0x70+0x04
| 0xA20+6*0x70+0x04
| 0x01C8 ?
| 0x01A3
|-  
|-  
| 0x48
| 0x48
Line 637: Line 664:
| 0x001579CC
| 0x001579CC
| 0xA20+7*0x70+0x04
| 0xA20+7*0x70+0x04
| 0x01C8 ?
| 0x01B3
|-  
|-  
| 0x49
| 0x49
Line 644: Line 671:
| 0x00157C10
| 0x00157C10
| 0xA20+0*0x70+0x14
| 0xA20+0*0x70+0x14
| 0x01C8 ?
| 0x0142
|-  
|-  
| 0x4A
| 0x4A
Line 651: Line 678:
| 0x00157C10
| 0x00157C10
| 0xA20+1*0x70+0x14
| 0xA20+1*0x70+0x14
| 0x01C8 ?
| 0x0152
|-  
|-  
| 0x4B
| 0x4B
Line 658: Line 685:
| 0x00157C10
| 0x00157C10
| 0xA20+2*0x70+0x14
| 0xA20+2*0x70+0x14
| 0x01C8 ?
| 0x0162
|-  
|-  
| 0x4C
| 0x4C
Line 665: Line 692:
| 0x00157C10
| 0x00157C10
| 0xA20+3*0x70+0x14
| 0xA20+3*0x70+0x14
| 0x01C8 ?
| 0x0172
|-  
|-  
| 0x4D
| 0x4D
Line 672: Line 699:
| 0x00157C10
| 0x00157C10
| 0xA20+4*0x70+0x14
| 0xA20+4*0x70+0x14
| 0x01C8 ?
| 0x0182
|-  
|-  
| 0x4E
| 0x4E
Line 679: Line 706:
| 0x00157C10
| 0x00157C10
| 0xA20+5*0x70+0x14
| 0xA20+5*0x70+0x14
| 0x01C8 ?
| 0x0192
|-  
|-  
| 0x4F
| 0x4F
Line 686: Line 713:
| 0x00157C10
| 0x00157C10
| 0xA20+6*0x70+0x14
| 0xA20+6*0x70+0x14
| 0x01C8 ?
| 0x01A2
|-  
|-  
| 0x50
| 0x50
Line 693: Line 720:
| 0x00157C10
| 0x00157C10
| 0xA20+7*0x70+0x14
| 0xA20+7*0x70+0x14
| 0x01C8 ?
| 0x01B2
|-  
|-  
| 0x51
| 0x51
Line 980: Line 1,007:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0149 bit2
|-  
|-  
| 0x7A
| 0x7A
Line 987: Line 1,014:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0159 bit2
|-  
|-  
| 0x7B
| 0x7B
Line 994: Line 1,021:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0169 bit2
|-  
|-  
| 0x7C
| 0x7C
Line 1,001: Line 1,028:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0179 bit2
|-  
|-  
| 0x7D
| 0x7D
Line 1,008: Line 1,035:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0189 bit2
|-  
|-  
| 0x7E
| 0x7E
Line 1,015: Line 1,042:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0199 bit2
|-  
|-  
| 0x7F
| 0x7F
Line 1,022: Line 1,049:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x01A9 bit2
|-  
|-  
| 0x80
| 0x80
Line 1,029: Line 1,056:
| 0x0012C018
| 0x0012C018
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x01B9 bit2
|-  
|-  
| 0x81
| 0x81
Line 1,036: Line 1,063:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0149 bit3
|-  
|-  
| 0x82
| 0x82
Line 1,043: Line 1,070:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0159 bit3
|-  
|-  
| 0x83
| 0x83
Line 1,050: Line 1,077:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0169 bit3
|-  
|-  
| 0x84
| 0x84
Line 1,057: Line 1,084:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0179 bit3
|-  
|-  
| 0x85
| 0x85
Line 1,064: Line 1,091:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0189 bit3
|-  
|-  
| 0x86
| 0x86
Line 1,071: Line 1,098:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0199 bit3
|-  
|-  
| 0x87
| 0x87
Line 1,078: Line 1,105:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x01A9 bit3
|-  
|-  
| 0x88
| 0x88
Line 1,085: Line 1,112:
| 0x0012C114
| 0x0012C114
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x01B9 bit3
|-  
|-  
| 0x89
| 0x89
Line 1,092: Line 1,119:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0149 bit1
|-  
|-  
| 0x8A
| 0x8A
Line 1,099: Line 1,126:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0159 bit1
|-  
|-  
| 0x8B
| 0x8B
Line 1,106: Line 1,133:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0169 bit1
|-  
|-  
| 0x8C
| 0x8C
Line 1,113: Line 1,140:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0179 bit1
|-  
|-  
| 0x8D
| 0x8D
Line 1,120: Line 1,147:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0189 bit1
|-  
|-  
| 0x8E
| 0x8E
Line 1,127: Line 1,154:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x0199 bit1
|-  
|-  
| 0x8F
| 0x8F
Line 1,134: Line 1,161:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x01A9 bit1
|-  
|-  
| 0x90
| 0x90
Line 1,141: Line 1,168:
| 0x0012BF10
| 0x0012BF10
| 0x7D8
| 0x7D8
| 0x01C8 ?
| 0x01B9 bit1
|-  
|-  
| 0x91
| 0x91
Line 1,204: Line 1,231:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit3 (1 = disable?)
|-  
|-  
| 0x9A
| 0x9A
Line 1,211: Line 1,238:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit4 (1 = disable?)
|-  
|-  
| 0x9B
| 0x9B
Line 1,218: Line 1,245:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit5 (1 = disable?)
|-  
|-  
| 0x9C
| 0x9C
Line 1,225: Line 1,252:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit6 (1 = disable?)
|-  
|-  
| 0x9D
| 0x9D
Line 1,232: Line 1,259:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit7 (1 = disable?)
|-  
|-  
| 0x9E
| 0x9E
Line 1,239: Line 1,266:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit8 (1 = disable?)
|-  
|-  
| 0x9F
| 0x9F
Line 1,246: Line 1,273:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit9 (1 = disable?)
|-  
|-  
| 0xA0
| 0xA0
Line 1,253: Line 1,280:
| 0x0012C380
| 0x0012C380
| ?
| ?
| 0x01C8 ?
| 0x01C4 bit10 (1 = disable?)
|-  
|-  
| 0xA1
| 0xA1
Line 1,484: Line 1,511:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit12 (1 = disable?)
|-  
|-  
| 0xC2
| 0xC2
Line 1,491: Line 1,518:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit13 (1 = disable?)
|-  
|-  
| 0xC3
| 0xC3
Line 1,498: Line 1,525:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit14 (1 = disable?)
|-  
|-  
| 0xC4
| 0xC4
Line 1,505: Line 1,532:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit15 (1 = disable?)
|-  
|-  
| 0xC5
| 0xC5
Line 1,512: Line 1,539:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit16 (1 = disable?)
|-  
|-  
| 0xC6
| 0xC6
Line 1,519: Line 1,546:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit17 (1 = disable?)
|-  
|-  
| 0xC7
| 0xC7
Line 1,526: Line 1,553:
| 0x0012C5D8
| 0x0012C5D8
| ?
| ?
| ?
| 0x01D0 bit18 (1 = disable?)
|-  
|-  
| 0xC8
| 0xC8
Line 1,533: Line 1,560:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit0-2
|-  
|-  
| 0xC9
| 0xC9
Line 1,540: Line 1,567:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit4-6
|-  
|-  
| 0xCA
| 0xCA
Line 1,547: Line 1,574:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit8-10
|-  
|-  
| 0xCB
| 0xCB
Line 1,554: Line 1,581:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit12-14
|-  
|-  
| 0xCC
| 0xCC
Line 1,561: Line 1,588:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit16-18
|-  
|-  
| 0xCD
| 0xCD
Line 1,568: Line 1,595:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit20-22
|-  
|-  
| 0xCE
| 0xCE
Line 1,575: Line 1,602:
| 0x0012C6E8
| 0x0012C6E8
| ?
| ?
| ?
| 0x01D1 bit24-26
|-  
|-  
| 0xCF
| 0xCF
Line 1,582: Line 1,609:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
| 0x01D2 bit0-3
|-  
|-  
| 0xD0
| 0xD0
Line 1,589: Line 1,616:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
| 0x01D2 bit4-7
|-  
|-  
| 0xD1
| 0xD1
Line 1,596: Line 1,623:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
| 0x01D2 bit8-11
|-  
|-  
| 0xD2
| 0xD2
Line 1,603: Line 1,630:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
| 0x01D2 bit12-15
|-  
|-  
| 0xD3
| 0xD3
Line 1,610: Line 1,637:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
|0x01D2 bit16-19
|-  
|-  
| 0xD4
| 0xD4
Line 1,617: Line 1,644:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
| 0x01D2 bit20-23
|-  
|-  
| 0xD5
| 0xD5
Line 1,624: Line 1,651:
| 0x00155404
| 0x00155404
| ?
| ?
| ?
| 0x01D2 bit24-27
|-  
|-  
| 0xD6
| 0xD6
Line 1,673: Line 1,700:
| 0x0012CE44
| 0x0012CE44
| ?
| ?
| ?
| 0x01C3 bit24-25
|-  
|-  
| 0xDD
| 0xDD
Line 1,680: Line 1,707:
| 0x0012CD88
| 0x0012CD88
| ?
| ?
| ?
| 0x01C3 bit22-23
|-  
|-  
| 0xDE
| 0xDE
Line 2,184: Line 2,211:
| 0x0012E7F8
| 0x0012E7F8
| ?
| ?
| ?
| 0x00E0 bit0-2 (5 -> fog (0x0B60), 7 -> gas (0x6050))
|-  
|-  
| 0x126
| 0x126
Line 2,198: Line 2,225:
| 0x0012E9DC
| 0x0012E9DC
| ?
| ?
| ?
| 0x00E0 bit16
|-  
|-  
| 0x128
| 0x128
Line 2,209: Line 2,236:


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.
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
|}