Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Division by zero in /usr/share/web/joat/webshare/ds/index.php on line 1101

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/web/joat/webshare/ds/index.php:1101) in /usr/share/web/joat/webshare/ds/index.php on line 885
NDSTech Wiki : Geometry Engine browse
Video /
Geometry Engine

Menu

Getting Started

System Information

Misc

NameWidthAddressDescription
NOP320x04000400No-operation
MATRIX_CONTROL320x04000440Matrix control register
MATRIX_PUSH320x04000444Matrix push
MATRIX_POP320x04000448Matrix pop
MATRIX_STORE320x0400044CMatrix store
MATRIX_RESTORE320x04000450Matrix restore
MATRIX_IDENTITY320x04000454Load identity matrix
MATRIX_LOAD4x4320x04000458Load 4x4 matrix write port
MATRIX_LOAD4x3320x0400045CLoad 4x3 matrix write port
MATRIX_MULT4x4320x04000460Multiply 4x4 matrix write port
MATRIX_MULT4x3320x04000464Multiply 4x3 matrix write port
MATRIX_MULT3x3320x04000468Multiply 3x3 matrix write port
MATRIX_SCALE320x0400046CScale matrix write port
MATRIX_TRANSLATE320x04000470Translate matrix write port
MATRIX_READ_PROJECTION320x04000640Read port for projection matrix
MATRIX_READ_ROTATION320x04000680Read port for ?rotation? matrix
POINT_RESULT320x04000620.
VECTOR_RESULT160x04000630.
GFX_COLOR320x04000480Set color
GFX_NORMAL320x04000484Set normal
GFX_TEX_COORD320x04000488Set texture coordinate
GFX_VERTEX16320x0400048CVertex write port
GFX_VERTEX10320x04000490Vertex write port
GFX_VERTEX_XY320x04000494Vertex write port
GFX_VERTEX_XZ320x04000498Vertex write port
GFX_VERTEX_YZ320x0400049CVertex write port
GFX_VERTEX_DIFF320x040004A0Vertex write port
GFX_BEGIN320x04000500Begin a primitive
GFX_END320x04000504End a primitive
GFX_BOX_TEST320x040005C0.

GFX_BEGIN

Starts the processing of primitives.

31..2?
1..0Type (00: Triangles, 01: Quads, 10: Triangle Strip, 11: Quad Strip)

GFX_END

Stops the processing of primitives / finalizes them.

Just like OpenGL, you should only issue vertex commands in between a begin / end pair.

libnds function calls associated with these registers:

  • glBegin
  • glEnd

MATRIX_TRANSLATE

Three writes multiples the current matrix with a translate matrix of the form:

1.00.00.0write1
0.01.00.0write2
0.00.01.0write3
0.00.00.01.0

libnds function calls associated with these registers:

  • glTranslatev
  • glTranslate3f32
  • glTranslatef32
  • glTranslatef

MATRIX_SCALE

Three writes multiples the current matrix with a scale matrix of the form:

write10.00.00.0
0.0write20.00.0
0.00.0write30.0
0.00.00.01.0

libnds function calls associated with these registers:

  • glScalev
  • glScalef32
  • glScalef

MATRIX_MULT3x3

After 9 writes, the current matrix is multipled by a 3x3 matrix formed from the writes.

MATRIX_MULT4x3

After 12 writes, the current matrix is multipled by a 4x3 matrix formed from the writes.

MATRIX_MULT4x4

After 16 writes, the current matrix is multipled by a 3x3 matrix formed from the writes.

libnds function calls associated with these registers:

  • glMultMatrix3x3
  • glMultMatrix4x3
  • glMultMatrix4x4

MATRIX_LOAD4x4

Write port to the 4x4 matrix hardware (f32 format).

MATRIX_LOAD4x3

Write port to the 4x4 matrix hardware (f32 format). After 12 writes, the last 4 elements of the matrix are set to 0.0 0.0 0.0 1.0.

libnds function calls associated with these registers:

  • glLoadMatrix4x3
  • glLoadMatrix4x4
  • Various other routines use them behind the scenes.

libnds fixed point / floating point / integer conversion routines:

  • intof32 (integer -> f32)
  • floatof32 (float -> f32)
  • inttot16 (integer -> t16)
  • floattot16 (float -> t16)
  • inttov16 (integer -> v16)
  • floattov16 (float -> v16)
  • inttov10 (integer -> v10)
  • floattov10 (float -> v10)
Recent Changes (All) | Edit SideBar

Page last modified on November 26, 2005, at 10:27 PM
Edit Page | Page History
Everything done on this project is for the sole purpose of writing interoperable software under Sect. 1201 (f) Reverse Engineering exception of the DMCA.
This site is not affiliated with Nintendo in any manner. Nintendo DS © 2004 Nintendo. TM and ® are trademarks of Nintendo.
Powered by PmWiki