![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() |
![]() |
( 19 of 30 ) |
United States Patent | 6,489,963 |
Parikh , et al. | December 3, 2002 |
An interface for a graphics system includes simple yet powerful constructs that are easy for an application programmer to use and learn. Features include a unique vertex representation allowing the graphics pipeline to retain vertex state information and to mix indexed and direct vertex values and attributes; a projection matrix value set command; a display list call object command; and an embedded frame buffer clear/set command.
Inventors: | Parikh; Vimal (Santa Clara, CA); Moore; Robert (Heathrow, FL); Cheng; Howard (Sammamish, WA) |
Assignee: | Nintendo Co., Ltd. (Kyoto, JP) |
Appl. No.: | 885949 |
Filed: | June 22, 2001 |
Current U.S. Class: | 345/522; 345/581; 712/208; 719/328 |
Intern'l Class: | G06T 015/00; G06F 015/16 |
Field of Search: | 345/501,503,419,581,520,522,559 709/328 712/208 |
4388620 | Jun., 1983 | Sherman. | |
4425559 | Jan., 1984 | Sherman. | |
4570233 | Feb., 1986 | Yan et al. | |
4658247 | Apr., 1987 | Charachorloo. | |
4725831 | Feb., 1988 | Coleman. | |
4826295 | May., 1989 | Hiroyuki. | |
4862392 | Aug., 1989 | Steiner. | |
4866637 | Sep., 1989 | Gonzalez-Lopez et al. | |
4901064 | Feb., 1990 | Deering. | |
4914729 | Apr., 1990 | Omori et al. | |
4945500 | Jul., 1990 | Deering. | |
5136664 | Aug., 1992 | Bersack et al. | |
5170468 | Dec., 1992 | Shah et al. | |
5392385 | Feb., 1995 | Evangelisti et al. | |
5392393 | Feb., 1995 | Deering. | |
5404445 | Apr., 1995 | Matsumoto. | |
5421028 | May., 1995 | Swanson. | |
5432900 | Jul., 1995 | Rhodes et al. | |
5438663 | Aug., 1995 | Matsumoto et al. | |
5457775 | Oct., 1995 | Johnson, Jr. et al. | |
5504917 | Apr., 1996 | Austin. | |
5594854 | Jan., 1997 | Baldwin et al. | |
5608424 | Mar., 1997 | Takahashi et al. | |
5671401 | Sep., 1997 | Harrell | 345/441. |
5687357 | Nov., 1997 | Priem. | |
5701444 | Dec., 1997 | Baldwin. | |
5721947 | Feb., 1998 | Priem et al. | |
5727192 | Mar., 1998 | Baldwin. | |
5751295 | May., 1998 | Becklund et al. | |
5758182 | May., 1998 | Rosenthal et al. | |
5764243 | Jun., 1998 | Baldwin. | |
5768626 | Jun., 1998 | Munson et al. | |
5768629 | Jun., 1998 | Wise et al. | |
5774133 | Jun., 1998 | Neave et al. | |
5777629 | Jul., 1998 | Baldwin. | |
5798770 | Aug., 1998 | Baldwin. | |
5801706 | Sep., 1998 | Fujita et al. | |
5801716 | Sep., 1998 | Silverbrook. | |
5805868 | Sep., 1998 | Murphy. | |
5815166 | Sep., 1998 | Baldwin. | |
5821949 | Oct., 1998 | Deering. | |
5870587 | Feb., 1999 | Danforth et al. | |
5874969 | Feb., 1999 | Storm et al. | |
5917496 | Jun., 1999 | Fujita et al. | |
5920326 | Jul., 1999 | Rentschler et al. | |
5920876 | Jul., 1999 | Ungar et al. | |
5936641 | Aug., 1999 | Jain et al. | |
5940086 | Aug., 1999 | Rentschler et al. | |
5949424 | Sep., 1999 | Cabral et al. | |
5949440 | Sep., 1999 | Krech, Jr. et al. | |
5966133 | Oct., 1999 | Hoppe | 345/420. |
5969726 | Oct., 1999 | Rentschler et al. | |
5995121 | Nov., 1999 | Alcorn et al. | |
5999196 | Dec., 1999 | Storm et al. | |
6002409 | Dec., 1999 | Harkin. | |
6023738 | Feb., 2000 | Priem et al. | |
6025853 | Feb., 2000 | Baldwin. | |
6028611 | Feb., 2000 | Anderson et al. | |
6031548 | Feb., 2000 | Gueziec et al. | 345/440. |
6037949 | Mar., 2000 | DeRose et al. | |
6052133 | Apr., 2000 | Kang. | |
6057852 | May., 2000 | Krech, Jr. | |
6057863 | May., 2000 | Olarig. | |
6075540 | Jun., 2000 | Hoppe | 345/419. |
6078331 | Jun., 2000 | Pulli et al. | 345/423. |
6092124 | Jul., 2000 | Priem et al. | |
6151602 | Nov., 2000 | Hejlsberg et al. | |
6173367 | Jan., 2001 | Aleksic et al. | |
6177944 | Jan., 2001 | Fowler et al. | |
6181352 | Jan., 2001 | Kirk et al. | |
6198488 | Mar., 2001 | Lindholm et al. | 345/418. |
6222550 | Apr., 2001 | Rosman et al. | 345/419. |
6222555 | Apr., 2001 | Christofferson et al. | 345/428. |
6226012 | May., 2001 | Priem et al. | |
6256041 | Jul., 2001 | Deering | 345/419. |
6307551 | Oct., 2001 | Gueziec et al. | 345/419. |
Foreign Patent Documents | |||
2070934 | Dec., 1993 | CA. | |
1 074 945 | Feb., 2001 | EP. | |
1 075 146 | Feb., 2001 | EP. | |
1 081 649 | Mar., 2001 | EP. | |
9-330230 | Dec., 1997 | JP. | |
11053580 | Feb., 1999 | JP. | |
11076614 | Mar., 1999 | JP. | |
11161819 | Jun., 1999 | JP. | |
11203500 | Jul., 1999 | JP. | |
11226257 | Aug., 1999 | JP. | |
11259671 | Sep., 1999 | JP. | |
11259678 | Sep., 1999 | JP. | |
2000-66985 | Mar., 2000 | JP. | |
2000-92390 | Mar., 2000 | JP. | |
2000-132704 | May., 2000 | JP. | |
2000-132706 | May., 2000 | JP. | |
2000-149053 | May., 2000 | JP. | |
2000-156875 | Jun., 2000 | JP. | |
2000-182077 | Jun., 2000 | JP. | |
2000-207582 | Jul., 2000 | JP. | |
2000-215325 | Aug., 2000 | JP. | |
WO 94/10641 | May., 1994 | WO. |
Photograph of Sony PlayStation II System. Photograph of Sega Dreamcast System. Photograph of Nintendo 64 System. Whitepaper: 3D Graphics Demystified, Nov. 11, 1999, www.nvidia.com. Whitepaper: "Z Buffering, Interpolation and More W-Buffering", Doug Rogers, Jan. 31, 2000, www.nvidia.com. Whitepaper: Using GL_NV_vertex_array and GL_NV_fence, posted Aug. 1, 2000, www.nvidia.com. Whitepaper: Anisotropic Texture Filtering in OpenGL, posted Jul. 17, 2000, www.nvidia.com. Whitepaper: Mapping Texels to Pixels in D3D, posted Apr. 5, 2000, www.nvidia.com. Whitepaper: Guard Band Clipping, posted Jan. 31, 2000, www.nvidia.com. Whitepaper: Cube Environment Mapping, posted Jan. 14, 2000, www.nvidia.com. Whitepaper: Color Key in D3D, posted Jan. 11, 2000, www.nvidia.com. Whitepaper: Vertex Blending Under DX7 for the GeForce 256, Jan. 5, 2000, www.nvidia.com. Whitepaper: Optimizing Direct3D for the GeForce 256, Jan. 3, 2000, www.nvidia.com. Whitepaper: Dot Product Texture Blending, Dec. 3, 1999, www.nvidia.com. Whitepaper: Technical Brief: AGP 4X with Fast Writes, Nov. 10, 1999, www.nvidia.com. Technical Brief: Transform and Lighting, Nov. 10, 1999, www.nvidia.com. Technical Brief: What's New With Microsoft Direct X7, posted Nov. 10, 1999, www.nvidia.com. Mitchell et al., "Multitexturing in DirectX6", Game Developer, Sep. 1998, www.gdmag.com. VisionTek, "GeForce2 GS Graphics Processing Unit", .COPYRGT.2000 www.visiontek.com. Jim Bushnell et al. "Advanced Multitexture Effects With Direct3D and OpenGL", Pyramid Peak Design & ATI Research, Inc., GameDevelopers Conference, .COPYRGT.1999. Sony PlayStation II Instruction Manual, Sony Computer Entertainment Inc., .COPYRGT.2000. Stand and Be Judged, Next Generation, May 2000. PlayStation II: Hardware Heaven or Hell?, Next Generation, Jan. 2000. Chris Charla, "Play Station II: The Latest News", Next Generation, Sep. 1999. "First PlayStation II Gameplay Screens Revealed!", Next Generation, Sep. 1999. Game Enthusiast Online Highlights, Mar. 18, 1999. Game Enthusiast Online Highlights, Mar. 19, 1999. Game Enthusiast Online Highlights, Mar. 17, 1999. Game Enthusiast Online Highlights, Oct. 20, 1999. Joel Easley, "PlayStation II Revealed", Game Week, Sep. 29, 1999. Inside Sony's Next Generation Playstation, .COPYRGT.1999. Press Releases, Mar. 18, 1999. Chris Johnston, "PlayStation Part Deux", Press Start, .COPYRGT.1999. Nikkei Shimbun, "Sony Making SME, Chemical and SPT into Wholly-Owned Subsidiaries", Mar. 9, 1999. AM News: Japanese Developers Not All Sold on PS2, Next Generation, Mar. 16, 1999. Sony To Turn PlayStation Maker Into Wholly Owned Unit-Nikkei, Dow Jones News Service, Mar. 8, 1999. Yumiko Ono, Sony Antes Up Its Chips In Bet On New Game System, Dow Jones News Service, Mar. 4, 1999. MacWeek.Com Gets Inside Story on Connectix VGS for Windows; Controversial Emulator of Sony PlayStation Games Cureently Available for Macs Only, Business Wire, Mar. 12, 1999. "DexDrive Bridges Gap", The Tampa Tribune, Mar. 12, 1999. A Microprocessor With a 128b CPU, 10 Floating-Point MAC's, 4 Floating-Point Dividers, and an MPEG2 Decoder, 1999 IEEE International Solid-State Circuits Conference, Feb. 16, 1999. Dreamcast Instruction Manual, Sega Enterprises, Ltd., .COPYRGT.1998. "Sega To Launch Video Camera for Dreamcast", Reuters Business News, Feb. 16, 2000. David Pescovitz, "Dream On", Wired, Aug. 1999. Randy Nelson, "Dreamcast 101: Everything You Ever Wanted To Know About Sega's Powerful New Console", Official Sega Dreamcast Magazine, Jun. 1999. 2D/3D Graphics Card User Manual, Guillemot .COPYRGT.1999. Nintendo 64 Instruction Booklet Nintendo of America, 1998. Steven Levy, "Here Comes PlayStation II", Newsweek, Mar. 6, 2000. David Sheff, "Sony Smackage: Test Driving The PlayStation II", Wired, Nov. 1999. Introducing The Next Generation PlayStation, Sony Computer Entertainment Inc., .COPYRGT.1999. Leadtek GTS, Aug. 3, 2000, www.hexus.net. Voodoo 5 5500 Review, Jul. 26, 2000, www.hexus.net. ATI Radeon 64 Meg DDR OEM, Aug., 19, 2000, www.hexus.net. Microsoft Xbox--The Future of Gaming, Microsoft Xbox Performance Sheet, www.xbox.com. Robert L. Cook, "Shade Trees", Computer Graphics, vol. 18, No. 3, Jul. 1984. Wang et al., "Second-Depth Shadow Mapping", Department of Computer Science, Univ. N.C, Chapel Hill, N.C. pp. 1-7. Peercy et al., "Efficient Bump Mapping Hardware", Computer Graphics Proceedings, Annual Conference Series, 1997. Gustavo Oliveira, "Refractive Texture Mappig, Part One", www.gamasutra.com, Nov., 10, 2000. John Schlag, Fast Embossing Effects on Raster Image Data, Graphics Gems IV, Edited by Paul S. Heckbert, Computer Science Department, Carnegie Mellon University, Academic Press, Inc. 1994,pp. 433-437. James F. Blinn, "Simulationof Wrinkled Surfaces," Caltech/JPL, pp. 286-292, SIGGRAPH 78 (1978). Tomas Moller and Eric Haines "Real-Time Rendering", AK Peter, Ltd., .COPYRGT.1999, pp. 127-142. Technical Presentation: Vertex Buffers, posted Jun. 12, 2000, www.nvidia.com. Technical Presentation: Hardware Transform and Lighting, www.nvidia.com, posted Jun. 12, 2000. Technical Presentation: Hardware Bump-mapping Choices and Concepts, Jun. 7, 2000, www.nvidia.com. Technical Presentation: How to Bump Map a Skinned Polygonal Model, Jun. 7, 2000, www.nvidia.com. Technical Presentation: Computations for Hardware Lighting and Shading, Mar. 17, 2000, www.nvidia.com. Technical Presentation: Practical Bump-mapping for Today's GPUs, Mar. 17, 2000 www.nvidia.com. Technical Presentation: Shadows, Transparency, & Fog, Mar. 17, 2000 www.nvidia.com. Technical Presentation: GeForce 256 Register Combiners, Mar. 17, 2000, www.nvidia.com. Technical Presentation: TexGen & The Texture Matrix, Mar. 15, 2000 www.nvidia.com. Technical Presentation: Toon Shading, Mar. 15, 2000, www.nvidia.com. Technical Presentation: D3D 7 Vertex Lighting, Mar. 15, 2000, www.nvidia.com. Technical Presentation: Per-Pixel Lighting (by S. Dietrich) Mar. 14, 2000 www.nvidia.com. Technical Presentation: GeForce 256 and RIVA TNT Combiners, Dec. 8, 1999, www.nvidia.com. Technical Presentation: Vertex Cache Optimization, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Vertex Blending, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Hardware Transform and Lighting, Nov. 12, 1999, www.nvidia.com. Technical Presentation: GeForce 256 Overview, Nov. 12, 1999, www.nvidia.com. Technical Presentation: DirectX 7 and Texture Management, Nov. 12, 1999 www.nvidia.com. Technical Presentation: Dot Product Lighting, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Texture Coordinate Generation, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Phong Shading and Lightmaps, Nov. 3, 1999, www.nvidia.com. Technical Presentation: The ARB_multitexture Extension, Nov. 3, 1999 www.nvidia.com. Technical Presentation: Multitexture Combiners, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Emboss Bump Mapping, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Hardware Accelerated Anisotropic Lighting, Nov. 3, 1999 www.nvidia.com. Technical Presentation: Guard Band Clipping, Nov. 3, 1999, www.nvidia.com. The RenderMan Interface, Stephan R. Keith, Version 3.1, Pixar Animation Studios, Sep. 1989. The RenderMan Interface, Version 3.2, Pixar Animation Studios, Jul. 2000, www.pixar.com. NVIDIA Product Overview, "GeForce2Ultra", NVIDIA Corporation, Aug. 21, 2000, www.nvidia.com. Duke, "Dreamcast Technical Specs", Sega Dreamcast Review, Sega, 2/99, www.game-revolution.com. Marlin Rowley, "GeForce 1 & 2 GPU Speed Tests", May 11, 2000, www.g256.com. "Dreamcast: The Full Story", Next Generation, Sep. 1998. DirectX 7.0 Programmer's Reference, Microsoft Corportion, 1995-1999 (as part of the DirectX 7.0 SDK on the Companion CD included with "Inside Direct3D", Microsoft Programming Series, Peter J. Kovach, Microsoft Press, 1999). "Inside Direct3D", Microsoft Programming Series, Peter J. Kovach, Microsoft Press, 1999. "OpenGL Programming Guide, The Official Guide to Learning OpenGL, Release 1", Jackie Nieder, Tom David, Mason Woo, Addision-Wesley Publishing Co., 1993. "Procedural Elements for Computer Graphics," Second Edition, David F. Rogers, McGraw Hill, 1998. "Real-Time Rendering," Tomas Molleir, Eric Haines, AK Peters, 1999. "Computer Graphics, Principles and Practice," Second Edition, The Systems Programming Series, Foley, van Dam, Fiener, Hughes, Addison Wesley, 1990. "Principles of Three-Dimensional Computer Animation", Revised Edition, Michael O'Rourke, W.W. Norton & Company, 1998. |
TABLE I Opcode Opcode(7:0) Next Followed by NOP 00000000 none none Draw_Quads 10000vat(2:0) VertexCount(15:0) Vertex attribute stream Draw_Triangles 10010vat(2:0) VertexCount(15:0) Vertex attribute stream Draw_Triangle_strip 10011vat(2:0) VertexCount(15:0) Vertex attribute stream Draw_Triangle_fan 10100vat(2:0) VertexCount(15:0) Vertex attribute stream Draw_Lines l0l0lvat(2:0) VertexCount(15:0) Vertex attribute stream Draw_Line_strip 101l0vat(2:0) VertexCount(15:0) Vertex attribute stream Draw_Points 10111vat(2:0) VertexCount(15:0) Vertex attribute stream CP_LoadRegs 0000lxxx Address[7:0] 32 bits data (for CP only registers) XF_LoadRegs 000l0xxx none (N+2)*32 bits (This is used for First 32 bit: loading all XF 15:00 register address in XF registers, including 19:16 number of 32 bit registers to be matrices. It can be loaded (N+1, 0 means 1, 0xff means 16) used to load matrices 31:20 unused with immediate data) Next N+1 32 bits: 31:00 register data XF_IndexLoadRegA 00l00xxx none 32 bits (registers are in the 11:0 register address in XF first 4K address space 15:12 number of 32 bit data, (0 means 1, of the XF. It can be 0xff means 16) used to block load matrix and light 31:16 Index to the register Array A registers) XF_IndexLoadRegB 00l0lxxx none 32 bits (registers are in the 11:0 register address in XF first 4K address space 15:12 number of 32 bit data, (0 means 1, of the XF. It can be 0xff means 16) used to block load 31:16 Index to the register Array B matrix and light registers) XF_IndexLoadRegC 001l0xxx none 32 bits (registers are in the 11:0 register address in XF first 4K address space 15:12 number of 32 bit data. (0 means 1, of the XF. It can be 0xff means 16) used to block load 31:16 Index to the register Array C matrix and light registers) XF_IndexLoadRegD 00111xxx none 32 bits (registers are in the 11:0 register address in XF first 4K address space 15:12 number of 32 bit data, (0 means 1, of the XF. It can be 0xff means 16) used to block load 31:16 Index to the register Array D matrix and light registers) Call_Object 0l000xxx none 2x32 25:5 address (need to be 32 byte align) 25:5 count (32 byte count) V$ Invalidate 0l00lxxx none none SU_ByPassCmd 0110,SUattr(3:0) none 32 bit data (This includes all the register load below XF and all setup unit commands, which bypass XF)
TABLE II Register name Register address[7:0] Bit fields MatrixIndexA 0011xxxx 5:0 index for position/normal matrix 11:6 index for tex0 matrix 17:12 index for tex1 matrix 23:13 index for tex2 matrix 29:24 index for tex3 matrix MatrixIndexB 0100xxxx 5:0 index for tex4 matrix 11:6 index for tex5 matrix 17:12 index for tex6 matrix 23:18 index for tex7 matrix VCD_Lo 0l0lxxxx 16:00 VCD 12 to 0 0 PosMatIdx I Tex0MatIdx 2 TexlMatIdx 3 Tex2atIdx 4 Tex3MatIdx 5 Tex4MatIdx 6 Tex5MatIdx 7 Tex6MatIdx 8 Tex7MatIdx 10:9 Position 12:11 Normal 14:13 ColorDiffused 16:15 ColorSpecular VCD_-H1 0ll0xxxx 15:00 VCD 20 to 13 01:00 Tex0Coord 03:02 Tex1Coord 05:04 Tex2Coord 07:06 Tex3Coord 09:08 Tex4Coord 11:10 Tex5Coord 13:12 Tex6Coord 15:14 Tex7Coord VAT_group0 0111x,vat[2:0] 32 bits 08:00 Position parameters 12:09 Normal parameters 16:13 ColorDiffused parameters 20:17 ColorSpecular parameters 29:21 Tex0Coord parameters 30:30 ByteDequant 31:31 NormalIndex3 VAT_group1 1000x,vat[2:0] 32 bits 08:00 Tex1Coord parameters 17:09 Tex2Coord parameters 26:18 Tex3Coord parameters 30:27 Tex4Coord parameters sub-field[3:0] 3l unused VAT_group2 100lx.vat[2:0] 32 bits 04:00 Tex4Coord parameters sub-field[8:4] 13:05 Tex5Coord parameters 22:14 Tex6Coord parameters 31:23 Tex7Coord parameters ArrayBase l0l0.array[3:0] 32 bit data 25:00 Base(25:0) array[3:0]: 31:26 unused 0000 = attribute9 base register 0001 = attribute10 base register 0010 = attribute11 base register 0011 = attribute12 base register 0100 = attribute13 base register 0101 = attribute14 base register 0110 = attribute15 base register 0111 = attribute16 base register 1000 = attributel7 base register 1001 = attribute18 base register 1010 = artributel9 base register 1011 = attribute20 base register 1100 = IndexRegA base register 1101 = IndexRegB base register 1110 = IndexRegC base register 1111 = IndexRegD base register ArrayStride 1011,array[3:0] 32 bit data 07:00 Stride(7:0) array[3:00]: 31:08 unused 0000 = attribute9 stride register 0001 = attribute10 stride register 0010 = attribute11 stride register 0011 = attribute12 stride register 0100 = attribute13 stride register 0101 = attribute14 stride register 0110 = attribute15 stride register 0111 = attribute16 stride register 1000 = attribute17 stride register 1001 = attributel8 stride register 1010 = attributel9 stride register 1011 = attribute20 stride register 1100 = IndexRegA stride register 1101 = IndexRegB stride register 1110 = IndexRegC stride register 1111 = IndexRegD stride register
TABLE III Location in stream (in words) Data Description 0 to 2 X, Y, Z in 32b SPFP Geometry information in single precision floating point format 3 to 5 Nx, Ny, Nz in 32b SPFP Normal vector 6 RGBA in 32b integer (8b/comp) Color0 per vertex (RGBA) 7 RGBA in 32b integer (8b/comp) Color1 per vertex (RGBA) 8 to 10 Tx, Ty, Tz in 32b SPFP Binormal vector T 11 to 13 Bx, By, Bz in 32b SPFP Binormal vector B 14 to 15 S0, T0 in 32b SPFP Texture 0 data 16 to 29 Sn, Tn in 32b SPFP Texture 1 to n data
TABLE IV VERTEX ATTRIBUTE TABLE (VAT) Attribute Attribute number name bits Encoding 0 PosMatIdx 0 Position/normal matrix index. Always direct if present 0: not present 1: present NOTE: position and normal matrices are stored in 2 separate RAMs in the Xform unit, but there is a one to one correspondence between normal and position index. If index "A" is used for the position. then index "A" needs to be used for the normal as well. 1 Tex0MatIdx 1 TextCoord0 matrix index, always direct if present 0: not present 1: present 2 Tex1MatIdx 2 TextCoord0 matrix index, always direct if present 0: not present 1: present 3 Tex2MatIdx 3 TextCoord0 matrix index, always direct if present 0: not present 1: present 4 Tex3MatIdx 4 TextCoord0 matrix index, always direct if present 0: not present 1: present 5 Tex4MatIdx 5 TextCoord0 matrix index, always direct if present 0: not present 1: present 6 Tex5MatIdx 6 TextCoord0 matrix index, always direct if present 0: not present 1: present 7 Tex6MatIdx 7 TextCoord0 matrix index, always direct if present 0: not present 1: present 8 Tex7MatIdx 8 TextCoord0 matrix index, always direct if present 0: not present 1: present 9 Position 10:9 00: reserved 10:8 bit index 01: direct 11:l6 bit index 10 Normal 12:11 00: not present 10:8 bit index 01: direct 11:l6 bit index 11 Color0 14:13 00: not present 10:8 bit index 01: direct 11:16 bit index 12 Color1 16:15 00: not present 10:8 bit index 01: direct 11:l6 bit index 13 Tex0Coord 18:17 00: not present 01: direct 10:8 bit index 11:16 bit index 14 Tex1Coord 20:19 00: not present 01: direct 10:8 bit index 11:16 bit index 15 Tex2Coord 22:21 00: not present 01: direct 10:8 bit index 11:16 bit index 16 Tex3Coord 24:23 00: not present 01: direct 10:8 bit index 11:l6 bit index 17 Tex4Coord 26:25 00: not present 01: direct 10:8 bit index 11:16 bit index 18 Tex5Coord 28:27 Same as above 19 Tex6Coord 30:29 00: not present 01: direct 10:8 bit index 11:16 bit index 20 Tex7Coord 32:31 00: not present 01: direct 10:8 bit index 11:16 bit index
TABLE V Bit Attribute Attribute .CompCount .CompSize Shift amount field number name sub-field(0) sub-field(3:1) sub-field(8:4) 8:0 9 Position 0: two (x,y) 0:ubyte 1:byte 2:ushort Location of decimal point 1:three 3:short 4:float 5-7 from LSB. This shift applies (x,y,z) reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 12:9 10 Normal 0: three 0:reserved 1:byte NA (Byte: 6, Short: 14) normals 2:reserved 1: nine 3:short 4:float 5-7 normals reserved 16:13 11 Color0 0: three 0:16 bit 565 (three comp) NA (r,g,b) 1:24 bit 888 (three comp) 2:32 bit 888x (three comp) 1: four 3:16 bit 4444 (four comp) (r,g,b,a) 4:24 bit 6666 (four comp) 5:32 bit 8888 (four comp) 20:17 12 Color1 0: three 0:16 bit 565 (three comp) NA (r,g,b) 1:24 bit 888 (three comp) 2:32 bit 888x (three comp) 3:16 bit 4444 (four comp) 1: four 4:24 bit 6666 (four comp) (r,g,b,a) 5:32 bit 8888 (four comp) 29:21 13 Tex0Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 38:30 14 Tex1Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 47:39 15 Tex2Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 56:48 16 Tex3Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 65:57 17 Tex4Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 74:66 18 Tex5Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 83:75 19 Tex6Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s,t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 92:84 20 Tex7Coord 0: one (s) 0:ubyte 2:ushort 4:float Location of decimal point 1: two (s.t) 1:byte 3:short 5-7 from LSB. This shift applies reserved to all u/short components and to u/byte components where ByteDequant is asserted (Below). 93:93 FLAG ByteDequant (Rev B Only) 0: Shift does not apply to Shift applies for u/byte u/byte components of position and 1: Shift does apply to texture attributes. u/byte 94:94 FLAG NormalIndex3 (Rev B Only) 0: Single index per Normal When nine normals selected 1: Triple index per nine- in indirect mode, input will Normal be treated as three staggered indices (one per triple biased by component size), into normal table. NOTE!! First index internally biased by 0. Second index internally biased by 1. Third index internally biassed by 2.
Register Address Definition Configuration 0x0000 Matrix Ram word 0 32b matrix data 0x0001-0x00ff Matrix Ram word (n) 32b matrix data 0x0100-0x03ff Not used
Register Address Definition Configuration 0x0400-0x402 Normal Ram words 0,1,2 20b data 0x0403-0x045f Normal Ram word (n) 20b data 0x0460-0x05ff Not used
Register Address Definition Configuration 0x0500 Matrix Ram word 0 32b matrix data 0x0501-0x05ff Matrix Ram word (n) 32b matrix data
GXColor ClearColor; //Color value to clear the framebuffer to during copy. u32 ClearZ; //24 bit Z value to clear the framebuffer to during copy.
GXAttr Attr; //Which attribute (Position, Normal, Color, etc.) GXAttrType Type; //Attribute Type (None, Direct, Indexed, etc.)
GXVtxFmt vtxfint; //Index into the Vertex Attribute Table (0-7). GXAttr Attr; //Attribute Type. GXCompCnt CompCnt; //Number of components for the attribute. GXCompType CompType //Type of each Component. u8 Shift; //Locatin of decimal point for fixed point format types.
GXAttr Attr; //Attribute type. u32 Base; //Address (25:0) of the attribute data array in main memory. u8 Stride; //Number of bytes between successive elements in the attribute array.
f32 Matrix[4] [4] //Projection matrix. GXProjMtxType type; //Indicates if the projection is orthographic.
TABLE VI Hex Binary 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111
![]() ![]() |
![]() ![]() ![]() ![]() |