Changes

Jump to navigation Jump to search
1,935 bytes added ,  19:38, 25 August 2015
m
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.
 
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.
  −
== Rendering pipeline ==
  −
[[Image:Renderpipeline.png]]
      
== 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 163: Line 160:  
| 0x0012A504
 
| 0x0012A504
 
| ?
 
| ?
| ?
+
| 0x008B bit0 (0 = enable??)
 
|-  
 
|-  
 
| 0x1
 
| 0x1
Line 205: Line 202:  
| 0x0012A7F0
 
| 0x0012A7F0
 
| ?
 
| ?
| ?
+
| 0x0080 bit10 (?)
 
|-  
 
|-  
 
| 0x7
 
| 0x7
Line 212: Line 209:  
| 0x0012A8B4
 
| 0x0012A8B4
 
| ?
 
| ?
| ?
+
| 0x0080 bit13 (1 = use texcoords from texture unit 1)
 
|-  
 
|-  
 
| 0x8
 
| 0x8
Line 219: Line 216:  
| 0x0012A97C
 
| 0x0012A97C
 
| ?
 
| ?
| ?
+
| 0x0080 bit8-9 (0-2 = use texcoords from texture unit 0-2 resp., 3 = forbidden?)
 
|-  
 
|-  
 
| 0x9
 
| 0x9
Line 226: Line 223:  
| 0x0012AA54
 
| 0x0012AA54
 
| ?
 
| ?
| ?
+
| 0x00A8 bit6-9
 
|-  
 
|-  
 
| 0xA
 
| 0xA
Line 233: Line 230:  
| 0x0012AB94
 
| 0x0012AB94
 
| ?
 
| ?
| ?
+
| 0x00A8 bit10-13
 
|-  
 
|-  
 
| 0xB
 
| 0xB
Line 240: Line 237:  
| 0x0012ACD4
 
| 0x0012ACD4
 
| ?
 
| ?
| ?
+
| 0x00A8 bit14
 
|-  
 
|-  
 
| 0xC
 
| 0xC
Line 247: Line 244:  
| 0x0012ADB8
 
| 0x0012ADB8
 
| ?
 
| ?
| ?
+
| 0x00A8 bit0-2
 
|-  
 
|-  
 
| 0xD
 
| 0xD
Line 254: Line 251:  
| 0x0012AEC0
 
| 0x0012AEC0
 
| ?
 
| ?
| ?
+
| 0x00A8 bit3-5
 
|-  
 
|-  
 
| 0xE
 
| 0xE
Line 261: Line 258:  
| 0x0012AFD0
 
| 0x0012AFD0
 
| ?
 
| ?
| ?
+
| 0x00A8 bit16-17
 
|-  
 
|-  
 
| 0xF
 
| 0xF
Line 268: Line 265:  
| 0x0012B0A0
 
| 0x0012B0A0
 
| ?
 
| ?
| ?
+
| 0x00A8 bit18-19
 
|-  
 
|-  
 
| 0x10
 
| 0x10
Line 275: Line 272:  
| 0x0012B168
 
| 0x0012B168
 
| ?
 
| ?
| ?
+
| 0x00AC bit0-2
 
|-  
 
|-  
 
| 0x11
 
| 0x11
Line 282: Line 279:  
| 0x0012B270
 
| 0x0012B270
 
| ?
 
| ?
| ?
+
| 0x00AC bit11-18
 
|-  
 
|-  
 
| 0x12
 
| 0x12
Line 289: Line 286:  
| 0x0012B334
 
| 0x0012B334
 
| ?
 
| ?
| ?
+
| 0x00AD bit0-7
 
|-  
 
|-  
 
| 0x13
 
| 0x13
Line 296: Line 293:  
| 0x001556B4
 
| 0x001556B4
 
| 0xE10
 
| 0xE10
| ?
+
| 0x00A8 bit20-27
 
|-  
 
|-  
 
| 0x14
 
| 0x14
Line 303: Line 300:  
| 0x0012B3E0
 
| 0x0012B3E0
 
| ?
 
| ?
| ?
+
| 0x00A8 bit15
 
|-  
 
|-  
 
| 0x15
 
| 0x15
Line 310: Line 307:  
| 0x00155878
 
| 0x00155878
 
| 0xE14
 
| 0xE14
| ?
+
| 0x00A9, 0x00AB
 
|-  
 
|-  
 
| 0x16
 
| 0x16
Line 317: Line 314:  
| 0x00155A7C
 
| 0x00155A7C
 
| 0xE20
 
| 0xE20
| ?
+
| 0x00AA, 0x00AB
 
|-  
 
|-  
 
| 0x17
 
| 0x17
Line 401: Line 398:  
| 0x0012EAEC
 
| 0x0012EAEC
 
| 0x568
 
| 0x568
| ?
+
| 0x0047 bit0
 
|-  
 
|-  
 
| 0x23
 
| 0x23
Line 436: Line 433:  
| 0x001560EC
 
| 0x001560EC
 
| 0xE84
 
| 0xE84
| ?
+
| 0x0120 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23)
 
|-  
 
|-  
 
| 0x28
 
| 0x28
Line 443: Line 440:  
| 0x00156268
 
| 0x00156268
 
| 0xE90
 
| 0xE90
| ?
+
| 0x0121 (vec[0] -> bit0-7, vec[1] -> bit8-15, vec[2] -> bit16-23), 0x0122 (vec[3] -> bit 0-7)
 
|-  
 
|-  
 
| 0x29
 
| 0x29
Line 450: Line 447:  
| 0x001564D4
 
| 0x001564D4
 
| 0xEA0
 
| 0xEA0
| ?
+
| 0x0126 bit0-23
 
|-  
 
|-  
 
| 0x2A
 
| 0x2A
Line 457: Line 454:  
| 0x001565C0
 
| 0x001565C0
 
| 0xEA4
 
| 0xEA4
| ?
+
| 0x00E5
 
|-  
 
|-  
 
| 0x2B
 
| 0x2B
Line 471: Line 468:  
| 0x00156684
 
| 0x00156684
 
| 0xEA8
 
| 0xEA8
| ?
+
| 0x00E4
 
|-  
 
|-  
 
| 0x2D
 
| 0x2D
Line 478: Line 475:  
| 0x0012B7A4
 
| 0x0012B7A4
 
| 0x640
 
| 0x640
| ?
+
| 0x0122 bit8 (0x6060/0x6061 -> 0/1)
 
|-  
 
|-  
 
| 0x2E
 
| 0x2E
Line 485: Line 482:  
| 0x0012B854
 
| 0x0012B854
 
| 0x624
 
| 0x624
| ?
+
| 0x00E0 bit3 (0x605E/0x605F -> 0/1)
 
|-  
 
|-  
 
| 0x2F
 
| 0x2F
Line 513: Line 510:  
| 0x0012B9F4
 
| 0x0012B9F4
 
| 0x590
 
| 0x590
| ?
+
| 0x00A8 bit0, 0x01C6 (0 = enabled)
 
|-  
 
|-  
 
| 0x33
 
| 0x33
Line 520: Line 517:  
| 0x00156744
 
| 0x00156744
 
| 0xA10
 
| 0xA10
| ?
+
| 0x01C0?
 
|-  
 
|-  
 
| 0x34
 
| 0x34
Line 527: Line 524:  
| 0x00156E1C
 
| 0x00156E1C
 
| 0xDE0
 
| 0xDE0
| ?
+
| 0x01C0?
 
|-  
 
|-  
 
| 0x35
 
| 0x35
Line 534: Line 531:  
| 0x0015696C
 
| 0x0015696C
 
| 0xDA0
 
| 0xDA0
| ?
+
| 0x01C0
 
|-  
 
|-  
 
| 0x36
 
| 0x36
Line 618: Line 615:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+0*0x70+0x04
 
| 0xA20+0*0x70+0x04
| 0x01C8 ?
+
| 0x0143
 
|-  
 
|-  
 
| 0x42
 
| 0x42
Line 625: Line 622:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+1*0x70+0x04
 
| 0xA20+1*0x70+0x04
| 0x01C8 ?
+
| 0x0153
 
|-  
 
|-  
 
| 0x43
 
| 0x43
Line 632: Line 629:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+2*0x70+0x04
 
| 0xA20+2*0x70+0x04
| 0x01C8 ?
+
| 0x0163
 
|-  
 
|-  
 
| 0x44
 
| 0x44
Line 639: Line 636:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+3*0x70+0x04
 
| 0xA20+3*0x70+0x04
| 0x01C8 ?
+
| 0x0173
 
|-  
 
|-  
 
| 0x45
 
| 0x45
Line 646: Line 643:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+4*0x70+0x04
 
| 0xA20+4*0x70+0x04
| 0x01C8 ?
+
| 0x0183
 
|-  
 
|-  
 
| 0x46
 
| 0x46
Line 653: Line 650:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+5*0x70+0x04
 
| 0xA20+5*0x70+0x04
| 0x01C8 ?
+
| 0x0193
 
|-  
 
|-  
 
| 0x47
 
| 0x47
Line 660: Line 657:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+6*0x70+0x04
 
| 0xA20+6*0x70+0x04
| 0x01C8 ?
+
| 0x01A3
 
|-  
 
|-  
 
| 0x48
 
| 0x48
Line 667: Line 664:  
| 0x001579CC
 
| 0x001579CC
 
| 0xA20+7*0x70+0x04
 
| 0xA20+7*0x70+0x04
| 0x01C8 ?
+
| 0x01B3
 
|-  
 
|-  
 
| 0x49
 
| 0x49
Line 674: Line 671:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+0*0x70+0x14
 
| 0xA20+0*0x70+0x14
| 0x01C8 ?
+
| 0x0142
 
|-  
 
|-  
 
| 0x4A
 
| 0x4A
Line 681: Line 678:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+1*0x70+0x14
 
| 0xA20+1*0x70+0x14
| 0x01C8 ?
+
| 0x0152
 
|-  
 
|-  
 
| 0x4B
 
| 0x4B
Line 688: Line 685:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+2*0x70+0x14
 
| 0xA20+2*0x70+0x14
| 0x01C8 ?
+
| 0x0162
 
|-  
 
|-  
 
| 0x4C
 
| 0x4C
Line 695: Line 692:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+3*0x70+0x14
 
| 0xA20+3*0x70+0x14
| 0x01C8 ?
+
| 0x0172
 
|-  
 
|-  
 
| 0x4D
 
| 0x4D
Line 702: Line 699:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+4*0x70+0x14
 
| 0xA20+4*0x70+0x14
| 0x01C8 ?
+
| 0x0182
 
|-  
 
|-  
 
| 0x4E
 
| 0x4E
Line 709: Line 706:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+5*0x70+0x14
 
| 0xA20+5*0x70+0x14
| 0x01C8 ?
+
| 0x0192
 
|-  
 
|-  
 
| 0x4F
 
| 0x4F
Line 716: Line 713:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+6*0x70+0x14
 
| 0xA20+6*0x70+0x14
| 0x01C8 ?
+
| 0x01A2
 
|-  
 
|-  
 
| 0x50
 
| 0x50
Line 723: Line 720:  
| 0x00157C10
 
| 0x00157C10
 
| 0xA20+7*0x70+0x14
 
| 0xA20+7*0x70+0x14
| 0x01C8 ?
+
| 0x01B2
 
|-  
 
|-  
 
| 0x51
 
| 0x51
Line 1,010: Line 1,007:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0149 bit2
 
|-  
 
|-  
 
| 0x7A
 
| 0x7A
Line 1,017: Line 1,014:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0159 bit2
 
|-  
 
|-  
 
| 0x7B
 
| 0x7B
Line 1,024: Line 1,021:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0169 bit2
 
|-  
 
|-  
 
| 0x7C
 
| 0x7C
Line 1,031: Line 1,028:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0179 bit2
 
|-  
 
|-  
 
| 0x7D
 
| 0x7D
Line 1,038: Line 1,035:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0189 bit2
 
|-  
 
|-  
 
| 0x7E
 
| 0x7E
Line 1,045: Line 1,042:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0199 bit2
 
|-  
 
|-  
 
| 0x7F
 
| 0x7F
Line 1,052: Line 1,049:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x01A9 bit2
 
|-  
 
|-  
 
| 0x80
 
| 0x80
Line 1,059: Line 1,056:  
| 0x0012C018
 
| 0x0012C018
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x01B9 bit2
 
|-  
 
|-  
 
| 0x81
 
| 0x81
Line 1,066: Line 1,063:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0149 bit3
 
|-  
 
|-  
 
| 0x82
 
| 0x82
Line 1,073: Line 1,070:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0159 bit3
 
|-  
 
|-  
 
| 0x83
 
| 0x83
Line 1,080: Line 1,077:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0169 bit3
 
|-  
 
|-  
 
| 0x84
 
| 0x84
Line 1,087: Line 1,084:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0179 bit3
 
|-  
 
|-  
 
| 0x85
 
| 0x85
Line 1,094: Line 1,091:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0189 bit3
 
|-  
 
|-  
 
| 0x86
 
| 0x86
Line 1,101: Line 1,098:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0199 bit3
 
|-  
 
|-  
 
| 0x87
 
| 0x87
Line 1,108: Line 1,105:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x01A9 bit3
 
|-  
 
|-  
 
| 0x88
 
| 0x88
Line 1,115: Line 1,112:  
| 0x0012C114
 
| 0x0012C114
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x01B9 bit3
 
|-  
 
|-  
 
| 0x89
 
| 0x89
Line 1,122: Line 1,119:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0149 bit1
 
|-  
 
|-  
 
| 0x8A
 
| 0x8A
Line 1,129: Line 1,126:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0159 bit1
 
|-  
 
|-  
 
| 0x8B
 
| 0x8B
Line 1,136: Line 1,133:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0169 bit1
 
|-  
 
|-  
 
| 0x8C
 
| 0x8C
Line 1,143: Line 1,140:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0179 bit1
 
|-  
 
|-  
 
| 0x8D
 
| 0x8D
Line 1,150: Line 1,147:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0189 bit1
 
|-  
 
|-  
 
| 0x8E
 
| 0x8E
Line 1,157: Line 1,154:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x0199 bit1
 
|-  
 
|-  
 
| 0x8F
 
| 0x8F
Line 1,164: Line 1,161:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x01A9 bit1
 
|-  
 
|-  
 
| 0x90
 
| 0x90
Line 1,171: Line 1,168:  
| 0x0012BF10
 
| 0x0012BF10
 
| 0x7D8
 
| 0x7D8
| 0x01C8 ?
+
| 0x01B9 bit1
 
|-  
 
|-  
 
| 0x91
 
| 0x91
Line 1,234: Line 1,231:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit3 (1 = disable?)
 
|-  
 
|-  
 
| 0x9A
 
| 0x9A
Line 1,241: Line 1,238:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit4 (1 = disable?)
 
|-  
 
|-  
 
| 0x9B
 
| 0x9B
Line 1,248: Line 1,245:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit5 (1 = disable?)
 
|-  
 
|-  
 
| 0x9C
 
| 0x9C
Line 1,255: Line 1,252:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit6 (1 = disable?)
 
|-  
 
|-  
 
| 0x9D
 
| 0x9D
Line 1,262: Line 1,259:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit7 (1 = disable?)
 
|-  
 
|-  
 
| 0x9E
 
| 0x9E
Line 1,269: Line 1,266:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit8 (1 = disable?)
 
|-  
 
|-  
 
| 0x9F
 
| 0x9F
Line 1,276: Line 1,273:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit9 (1 = disable?)
 
|-  
 
|-  
 
| 0xA0
 
| 0xA0
Line 1,283: Line 1,280:  
| 0x0012C380
 
| 0x0012C380
 
| ?
 
| ?
| 0x01C8 ?
+
| 0x01C4 bit10 (1 = disable?)
 
|-  
 
|-  
 
| 0xA1
 
| 0xA1
Line 1,514: Line 1,511:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit12 (1 = disable?)
 
|-  
 
|-  
 
| 0xC2
 
| 0xC2
Line 1,521: Line 1,518:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit13 (1 = disable?)
 
|-  
 
|-  
 
| 0xC3
 
| 0xC3
Line 1,528: Line 1,525:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit14 (1 = disable?)
 
|-  
 
|-  
 
| 0xC4
 
| 0xC4
Line 1,535: Line 1,532:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit15 (1 = disable?)
 
|-  
 
|-  
 
| 0xC5
 
| 0xC5
Line 1,542: Line 1,539:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit16 (1 = disable?)
 
|-  
 
|-  
 
| 0xC6
 
| 0xC6
Line 1,549: Line 1,546:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit17 (1 = disable?)
 
|-  
 
|-  
 
| 0xC7
 
| 0xC7
Line 1,556: Line 1,553:  
| 0x0012C5D8
 
| 0x0012C5D8
 
| ?
 
| ?
| ?
+
| 0x01D0 bit18 (1 = disable?)
 
|-  
 
|-  
 
| 0xC8
 
| 0xC8
Line 1,563: Line 1,560:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit0-2
 
|-  
 
|-  
 
| 0xC9
 
| 0xC9
Line 1,570: Line 1,567:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit4-6
 
|-  
 
|-  
 
| 0xCA
 
| 0xCA
Line 1,577: Line 1,574:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit8-10
 
|-  
 
|-  
 
| 0xCB
 
| 0xCB
Line 1,584: Line 1,581:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit12-14
 
|-  
 
|-  
 
| 0xCC
 
| 0xCC
Line 1,591: Line 1,588:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit16-18
 
|-  
 
|-  
 
| 0xCD
 
| 0xCD
Line 1,598: Line 1,595:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit20-22
 
|-  
 
|-  
 
| 0xCE
 
| 0xCE
Line 1,605: Line 1,602:  
| 0x0012C6E8
 
| 0x0012C6E8
 
| ?
 
| ?
| ?
+
| 0x01D1 bit24-26
 
|-  
 
|-  
 
| 0xCF
 
| 0xCF
Line 1,612: Line 1,609:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
| 0x01D2 bit0-3
 
|-  
 
|-  
 
| 0xD0
 
| 0xD0
Line 1,619: Line 1,616:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
| 0x01D2 bit4-7
 
|-  
 
|-  
 
| 0xD1
 
| 0xD1
Line 1,626: Line 1,623:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
| 0x01D2 bit8-11
 
|-  
 
|-  
 
| 0xD2
 
| 0xD2
Line 1,633: Line 1,630:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
| 0x01D2 bit12-15
 
|-  
 
|-  
 
| 0xD3
 
| 0xD3
Line 1,640: Line 1,637:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
|0x01D2 bit16-19
 
|-  
 
|-  
 
| 0xD4
 
| 0xD4
Line 1,647: Line 1,644:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
| 0x01D2 bit20-23
 
|-  
 
|-  
 
| 0xD5
 
| 0xD5
Line 1,654: Line 1,651:  
| 0x00155404
 
| 0x00155404
 
| ?
 
| ?
| ?
+
| 0x01D2 bit24-27
 
|-  
 
|-  
 
| 0xD6
 
| 0xD6
Line 1,703: Line 1,700:  
| 0x0012CE44
 
| 0x0012CE44
 
| ?
 
| ?
| ?
+
| 0x01C3 bit24-25
 
|-  
 
|-  
 
| 0xDD
 
| 0xDD
Line 1,710: Line 1,707:  
| 0x0012CD88
 
| 0x0012CD88
 
| ?
 
| ?
| ?
+
| 0x01C3 bit22-23
 
|-  
 
|-  
 
| 0xDE
 
| 0xDE
Line 2,214: Line 2,211:  
| 0x0012E7F8
 
| 0x0012E7F8
 
| ?
 
| ?
| ?
+
| 0x00E0 bit0-2 (5 -> fog (0x0B60), 7 -> gas (0x6050))
 
|-  
 
|-  
 
| 0x126
 
| 0x126
Line 2,228: Line 2,225:  
| 0x0012E9DC
 
| 0x0012E9DC
 
| ?
 
| ?
| ?
+
| 0x00E0 bit16
 
|-  
 
|-  
 
| 0x128
 
| 0x128
Line 2,239: 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
 +
|}
549

edits

Navigation menu