1 /*---------------------------------------------------------------------------*
2 Project: TwlSDK - GX -
3 File: gx_load.h
4
5 Copyright 2003-2008 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 $Date:: 2008-09-18#$
14 $Rev: 8573 $
15 $Author: okubata_ryoma $
16 *---------------------------------------------------------------------------*/
17
18 #ifndef NITRO_GX_LOAD_H_
19 #define NITRO_GX_LOAD_H_
20
21 #include <nitro/gx/gxcommon.h>
22 #include <nitro/gx/gx_vramcnt.h>
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 //----------------------------------------------------------------------------
29 // Type definition
30 //----------------------------------------------------------------------------
31
32 //----------------------------------------------------------------------------
33 // Declaration of function
34 //----------------------------------------------------------------------------
35
36 //
37 // Main 2D engine
38 //
39 void GX_LoadBGPltt(const void *pSrc, u32 offset, u32 szByte);
40 void GX_LoadOBJPltt(const void *pSrc, u32 offset, u32 szByte);
41 void GX_LoadOAM(const void *pSrc, u32 offset, u32 szByte);
42 void GX_LoadOBJ(const void *pSrc, u32 offset, u32 szByte);
43
44 void GX_LoadBG0Scr(const void *pSrc, u32 offset, u32 szByte);
45 void GX_LoadBG1Scr(const void *pSrc, u32 offset, u32 szByte);
46 void GX_LoadBG2Scr(const void *pSrc, u32 offset, u32 szByte);
47 void GX_LoadBG3Scr(const void *pSrc, u32 offset, u32 szByte);
48
49 void GX_LoadBG0Char(const void *pSrc, u32 offset, u32 szByte);
50 void GX_LoadBG1Char(const void *pSrc, u32 offset, u32 szByte);
51 void GX_LoadBG2Char(const void *pSrc, u32 offset, u32 szByte);
52 void GX_LoadBG3Char(const void *pSrc, u32 offset, u32 szByte);
53
54 void GX_BeginLoadBGExtPltt(void);
55 void GX_LoadBGExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte);
56 void GX_EndLoadBGExtPltt(void);
57
58 void GX_BeginLoadOBJExtPltt(void);
59 void GX_LoadOBJExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte);
60 void GX_EndLoadOBJExtPltt(void);
61
62 //
63 // Sub 2D engine
64 //
65 void GXS_LoadBGPltt(const void *pSrc, u32 offset, u32 szByte);
66 void GXS_LoadOBJPltt(const void *pSrc, u32 offset, u32 szByte);
67 void GXS_LoadOAM(const void *pSrc, u32 offset, u32 szByte);
68 void GXS_LoadOBJ(const void *pSrc, u32 offset, u32 szByte);
69
70 void GXS_LoadBG0Scr(const void *pSrc, u32 offset, u32 szByte);
71 void GXS_LoadBG1Scr(const void *pSrc, u32 offset, u32 szByte);
72 void GXS_LoadBG2Scr(const void *pSrc, u32 offset, u32 szByte);
73 void GXS_LoadBG3Scr(const void *pSrc, u32 offset, u32 szByte);
74
75 void GXS_LoadBG0Char(const void *pSrc, u32 offset, u32 szByte);
76 void GXS_LoadBG1Char(const void *pSrc, u32 offset, u32 szByte);
77 void GXS_LoadBG2Char(const void *pSrc, u32 offset, u32 szByte);
78 void GXS_LoadBG3Char(const void *pSrc, u32 offset, u32 szByte);
79
80 void GXS_BeginLoadBGExtPltt(void);
81 void GXS_LoadBGExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte);
82 void GXS_EndLoadBGExtPltt(void);
83
84 void GXS_BeginLoadOBJExtPltt(void);
85 void GXS_LoadOBJExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte);
86 void GXS_EndLoadOBJExtPltt(void);
87
88 //
89 // 3D engine
90 //
91 void GX_BeginLoadTex(void);
92 void GX_LoadTex(const void *pSrc, u32 destSlotAddr, u32 szByte);
93 void GX_EndLoadTex(void);
94 void GX_LoadTexEx(GXVRamTex tex, const void *pSrc, u32 destSlotAddr, u32 szByte);
95
96 void GX_BeginLoadTexPltt(void);
97 void GX_LoadTexPltt(const void *pSrc, u32 destSlotAddr, u32 szByte);
98 void GX_EndLoadTexPltt(void);
99 void GX_LoadTexPlttEx(GXVRamTexPltt texPltt, const void *pSrc, u32 destSlotAddr, u32 szByte);
100
101 void GX_BeginLoadClearImage(void);
102 void GX_LoadClearImageColor(const void *pSrc, u32 szByte);
103 void GX_LoadClearImageDepth(const void *pSrc, u32 szByte);
104 void GX_EndLoadClearImage(void);
105
106 //----------------------------------------------------------------------------
107 // Implementation of inline function
108 //----------------------------------------------------------------------------
109
110 /*---------------------------------------------------------------------------*
111 Name: GX_LoadBG2Bmp
112
113 Description: Transfers bitmap data to BG #2 bitmap area for the MAIN 2D engine.
114 pSrc, offset, and szByte must be 2-bytes aligned.
115
116 Arguments: pSrc a pointer to the source of the BG screen data
117 offset an offset to the start address of BG #2 bitmap area
118 szByte the size of the source
119
120 Returns: none
121 *---------------------------------------------------------------------------*/
GX_LoadBG2Bmp(const void * pSrc,u32 offset,u32 szByte)122 static inline void GX_LoadBG2Bmp(const void *pSrc, u32 offset, u32 szByte)
123 {
124 GX_LoadBG2Scr(pSrc, offset, szByte);
125 }
126
127 /*---------------------------------------------------------------------------*
128 Name: GX_LoadBG3Bmp
129
130 Description: Transfers bitmap data to BG #3 bitmap area for the MAIN 2D engine.
131 pSrc, offset, and szByte must be 2-bytes aligned.
132
133 Arguments: pSrc a pointer to the source of the BG screen data
134 offset an offset to the start address of BG #3 bitmap area
135 szByte the size of the source
136
137 Returns: none
138 *---------------------------------------------------------------------------*/
GX_LoadBG3Bmp(const void * pSrc,u32 offset,u32 szByte)139 static inline void GX_LoadBG3Bmp(const void *pSrc, u32 offset, u32 szByte)
140 {
141 GX_LoadBG3Scr(pSrc, offset, szByte);
142 }
143
144 /*---------------------------------------------------------------------------*
145 Name: GXS_LoadBG2Bmp
146
147 Description: Transfers bitmap data to BG #2 bitmap area for the SUB 2D engine.
148 pSrc, offset, and szByte must be 2-bytes aligned.
149
150 Arguments: pSrc a pointer to the source of the BG screen data
151 offset an offset to the start address of BG #2 bitmap area
152 szByte the size of the source
153
154 Returns: none
155 *---------------------------------------------------------------------------*/
GXS_LoadBG2Bmp(const void * pSrc,u32 offset,u32 szByte)156 static inline void GXS_LoadBG2Bmp(const void *pSrc, u32 offset, u32 szByte)
157 {
158 GXS_LoadBG2Scr(pSrc, offset, szByte);
159 }
160
161 /*---------------------------------------------------------------------------*
162 Name: GXS_LoadBG3Bmp
163
164 Description: Transfers bitmap data to BG #3 bitmap area for the SUB 2D engine.
165 pSrc, offset, and szByte must be 2-bytes aligned.
166
167 Arguments: pSrc a pointer to the source of the BG screen data
168 offset an offset to the start address of BG #3 bitmap area
169 szByte the size of the source
170
171 Returns: none
172 *---------------------------------------------------------------------------*/
GXS_LoadBG3Bmp(const void * pSrc,u32 offset,u32 szByte)173 static inline void GXS_LoadBG3Bmp(const void *pSrc, u32 offset, u32 szByte)
174 {
175 GXS_LoadBG3Scr(pSrc, offset, szByte);
176 }
177
178
179 #ifdef __cplusplus
180 }/* extern "C" */
181 #endif
182
183 #endif
184