1 /*---------------------------------------------------------------------------*
2   Project:  Dolphin GX library
3   File:     GXCommandList.h
4 
5   Copyright 1998-2002 Nintendo. All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Log: GXCommandList.h,v $
14   Revision 1.2  2006/02/04 11:56:46  hashida
15   (none)
16 
17   Revision 1.1.1.1  2005/12/29 06:53:28  hiratsu
18   Initial import.
19 
20   Revision 1.1.1.1  2005/05/12 02:41:07  yasuh-to
21   Ported from dolphin source tree.
22 
23 
24     6     2002/07/24 9:06 Hirose
25     Resolved version conflicts.
26 
27     5     2001/07/16 4:06p Carl
28     Added refs to filter conversion arrays.
29 
30     4     2001/05/22 7:54p Carl
31     Added full set of CP commands.
32 
33     3     2001/02/15 4:25p Carl
34     Added refs to texture ID arrays.
35 
36     2     2001/02/05 8:11p Carl
37     Added GX_LOAD_BP_REG.
38 
39     3     1999/07/14 4:21p Alligator
40     Split gx.h into separate header file for each major section of the API
41 
42     2     1999/06/08 11:54a Ryan
43     Added GX prefix to defines
44 
45     1     1999/06/01 2:04p Ryan
46 
47   $NoKeywords: $
48  *---------------------------------------------------------------------------*/
49 
50 #ifndef __GXCOMMANDLIST_H__
51 #define __GXCOMMANDLIST_H__
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
57 #include <revolution/types.h>
58 
59 /****************************************************************************/
60 
61 // Display list opcodes:
62 
63 #define GX_NOP                      0x00
64 #define GX_DRAW_QUADS               0x80
65 #define GX_DRAW_TRIANGLES           0x90
66 #define GX_DRAW_TRIANGLE_STRIP      0x98
67 #define GX_DRAW_TRIANGLE_FAN        0xA0
68 #define GX_DRAW_LINES               0xA8
69 #define GX_DRAW_LINE_STRIP          0xB0
70 #define GX_DRAW_POINTS              0xB8
71 
72 #define GX_LOAD_BP_REG              0x61
73 #define GX_LOAD_CP_REG              0x08
74 #define GX_LOAD_XF_REG              0x10
75 #define GX_LOAD_INDX_A              0x20
76 #define GX_LOAD_INDX_B              0x28
77 #define GX_LOAD_INDX_C              0x30
78 #define GX_LOAD_INDX_D              0x38
79 
80 #define GX_CMD_CALL_DL              0x40
81 #define GX_CMD_INVL_VC              0x48
82 
83 #define GX_OPCODE_MASK              0xF8
84 #define GX_VAT_MASK                 0x07
85 
86 /****************************************************************************/
87 
88 // Texture register IDs:
89 
90 extern u8 GXTexMode0Ids[8];
91 extern u8 GXTexMode1Ids[8];
92 extern u8 GXTexImage0Ids[8];
93 extern u8 GXTexImage1Ids[8];
94 extern u8 GXTexImage2Ids[8];
95 extern u8 GXTexImage3Ids[8];
96 extern u8 GXTexTlutIds[8];
97 
98 // Filter conversion arrays:
99 
100 extern u8 GX2HWFiltConv[6];
101 extern u8 HW2GXFiltConv[8];
102 
103 /****************************************************************************/
104 
105 #ifdef __cplusplus
106 }
107 #endif
108 
109 #endif // __GXCOMMANDLIST_H__
110