1 /*---------------------------------------------------------------------------* 2 Project: TwlSDK - GX - 3 File: gx_vramcnt.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_VRAMCNT_H_ 19 #define NITRO_GX_VRAMCNT_H_ 20 21 #include <nitro/gx/gxcommon.h> 22 #include <nitro/os/ARM9/vramExclusive.h> 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 //---------------------------------------------------------------------------- 29 // Type definition 30 //---------------------------------------------------------------------------- 31 32 //---------------------------------------------------------------------------- 33 // Parameters for VRAM 34 //---------------------------------------------------------------------------- 35 typedef enum 36 { 37 GX_VRAM_A = OS_VRAM_BANK_ID_A, // VRAM-A 38 GX_VRAM_B = OS_VRAM_BANK_ID_B, // VRAM-B 39 GX_VRAM_C = OS_VRAM_BANK_ID_C, // VRAM-C 40 GX_VRAM_D = OS_VRAM_BANK_ID_D, // VRAM-D 41 GX_VRAM_E = OS_VRAM_BANK_ID_E, // VRAM-E 42 GX_VRAM_F = OS_VRAM_BANK_ID_F, // VRAM-F 43 GX_VRAM_G = OS_VRAM_BANK_ID_G, // VRAM-G 44 GX_VRAM_H = OS_VRAM_BANK_ID_H, // VRAM-H 45 GX_VRAM_I = OS_VRAM_BANK_ID_I, // VRAM-I 46 GX_VRAM_ALL = OS_VRAM_BANK_ID_ALL 47 } 48 GXVRam; 49 50 //---------------------------------------------------------------------------- 51 // Parameters for GX_SetBankForLCDC etc. 52 //---------------------------------------------------------------------------- 53 typedef enum 54 { 55 GX_VRAM_LCDC_NONE = 0x0000, 56 GX_VRAM_LCDC_A = GX_VRAM_A, // ARM9: HW_LCDC_VRAM_A --> HW_LCDC_VRAM_B 57 GX_VRAM_LCDC_B = GX_VRAM_B, // ARM9: HW_LCDC_VRAM_B --> HW_LCDC_VRAM_C 58 GX_VRAM_LCDC_C = GX_VRAM_C, // ARM9: HW_LCDC_VRAM_C --> HW_LCDC_VRAM_D 59 GX_VRAM_LCDC_D = GX_VRAM_D, // ARM9: HW_LCDC_VRAM_D --> HW_LCDC_VRAM_E 60 GX_VRAM_LCDC_E = GX_VRAM_E, // ARM9: HW_LCDC_VRAM_E --> HW_LCDC_VRAM_F 61 GX_VRAM_LCDC_F = GX_VRAM_F, // ARM9: HW_LCDC_VRAM_F --> HW_LCDC_VRAM_G 62 GX_VRAM_LCDC_G = GX_VRAM_G, // ARM9: HW_LCDC_VRAM_G --> HW_LCDC_VRAM_H 63 GX_VRAM_LCDC_H = GX_VRAM_H, // ARM9: HW_LCDC_VRAM_H --> HW_LCDC_VRAM_I 64 GX_VRAM_LCDC_I = GX_VRAM_I, // ARM9: HW_LCDC_VRAM_I --> HW_LCDC_VRAM_END 65 66 GX_VRAM_LCDC_ALL = GX_VRAM_ALL // ARM9: HW_LCDC_VRAM_A --> HW_LCDC_VRAM_END 67 } 68 GXVRamLCDC; 69 70 #define GX_VRAM_LCDC_ASSERT(x) \ 71 SDK_MINMAX_ASSERT(x, GX_VRAM_LCDC_NONE, GX_VRAM_LCDC_ALL) 72 73 //---------------------------------------------------------------------------- 74 // Parameters for GX_SetBankForBG etc. 75 //---------------------------------------------------------------------------- 76 typedef enum 77 { 78 GX_VRAM_BG_NONE = 0x0000, 79 GX_VRAM_BG_16_F = GX_VRAM_F, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_F_SIZE 80 GX_VRAM_BG_16_G = GX_VRAM_G, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_G_SIZE 81 GX_VRAM_BG_32_FG = GX_VRAM_F | GX_VRAM_G, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_F_SIZE + HW_VRAM_G_SIZE 82 GX_VRAM_BG_64_E = GX_VRAM_E, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_E_SIZE 83 GX_VRAM_BG_80_EF = GX_VRAM_E | GX_VRAM_F, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_E_SIZE + HW_VRAM_F_SIZE 84 GX_VRAM_BG_96_EFG = GX_VRAM_E | GX_VRAM_F | GX_VRAM_G, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_E_SIZE + HW_VRAM_F_SIZE + HW_VRAM_G_SIZE 85 GX_VRAM_BG_128_A = GX_VRAM_A, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE 86 GX_VRAM_BG_128_B = GX_VRAM_B, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_B_SIZE 87 GX_VRAM_BG_128_C = GX_VRAM_C, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_C_SIZE 88 GX_VRAM_BG_128_D = GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_D_SIZE 89 GX_VRAM_BG_256_AB = GX_VRAM_A | GX_VRAM_B, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE 90 GX_VRAM_BG_256_BC = GX_VRAM_B | GX_VRAM_C, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE 91 GX_VRAM_BG_256_CD = GX_VRAM_C | GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE 92 GX_VRAM_BG_384_ABC = GX_VRAM_A | GX_VRAM_B | GX_VRAM_C, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE 93 GX_VRAM_BG_384_BCD = GX_VRAM_B | GX_VRAM_C | GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE 94 GX_VRAM_BG_512_ABCD = GX_VRAM_A | GX_VRAM_B | GX_VRAM_C | GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE 95 96 // discontinuous on LCDC memory 97 GX_VRAM_BG_80_EG = GX_VRAM_E | GX_VRAM_G, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_E_SIZE + HW_VRAM_G_SIZE 98 GX_VRAM_BG_256_AC = GX_VRAM_A | GX_VRAM_C, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_C_SIZE 99 GX_VRAM_BG_256_AD = GX_VRAM_A | GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_D_SIZE 100 GX_VRAM_BG_256_BD = GX_VRAM_B | GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_B_SIZE + HW_VRAM_D_SIZE 101 GX_VRAM_BG_384_ABD = GX_VRAM_A | GX_VRAM_B | GX_VRAM_D, // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE + HW_VRAM_D_SIZE 102 GX_VRAM_BG_384_ACD = GX_VRAM_A | GX_VRAM_C | GX_VRAM_D // ARM9: HW_BG_VRAM --> HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE 103 } 104 GXVRamBG; 105 106 #define GX_VRAM_BG_ASSERT(x) \ 107 SDK_ASSERT( (x) == GX_VRAM_BG_NONE || \ 108 (x) == GX_VRAM_BG_16_F || \ 109 (x) == GX_VRAM_BG_16_G || \ 110 (x) == GX_VRAM_BG_32_FG || \ 111 (x) == GX_VRAM_BG_64_E || \ 112 (x) == GX_VRAM_BG_80_EF || \ 113 (x) == GX_VRAM_BG_80_EG || \ 114 (x) == GX_VRAM_BG_96_EFG || \ 115 (x) == GX_VRAM_BG_128_A || \ 116 (x) == GX_VRAM_BG_128_B || \ 117 (x) == GX_VRAM_BG_128_C || \ 118 (x) == GX_VRAM_BG_128_D || \ 119 (x) == GX_VRAM_BG_256_AB || \ 120 (x) == GX_VRAM_BG_256_BC || \ 121 (x) == GX_VRAM_BG_256_CD || \ 122 (x) == GX_VRAM_BG_384_ABC || \ 123 (x) == GX_VRAM_BG_384_BCD || \ 124 (x) == GX_VRAM_BG_512_ABCD || \ 125 (x) == GX_VRAM_BG_256_AC || \ 126 (x) == GX_VRAM_BG_256_AD || \ 127 (x) == GX_VRAM_BG_256_BD || \ 128 (x) == GX_VRAM_BG_384_ABD || \ 129 (x) == GX_VRAM_BG_384_ACD) 130 131 #define GX_VRAM_BG_ASSERT_EX_1(x) \ 132 SDK_ASSERT( (x) == GX_VRAM_BG_16_F || \ 133 (x) == GX_VRAM_BG_16_G || \ 134 (x) == GX_VRAM_BG_32_FG || \ 135 (x) == GX_VRAM_BG_64_E || \ 136 (x) == GX_VRAM_BG_80_EF || \ 137 (x) == GX_VRAM_BG_80_EG || \ 138 (x) == GX_VRAM_BG_96_EFG ) 139 140 #define GX_VRAM_BG_ASSERT_EX_2(x) \ 141 SDK_ASSERT( (x) == GX_VRAM_BG_NONE || \ 142 (x) == GX_VRAM_BG_128_A || \ 143 (x) == GX_VRAM_BG_128_B || \ 144 (x) == GX_VRAM_BG_128_C || \ 145 (x) == GX_VRAM_BG_128_D || \ 146 (x) == GX_VRAM_BG_256_AB || \ 147 (x) == GX_VRAM_BG_256_BC || \ 148 (x) == GX_VRAM_BG_256_CD || \ 149 (x) == GX_VRAM_BG_384_ABC || \ 150 (x) == GX_VRAM_BG_384_BCD || \ 151 (x) == GX_VRAM_BG_256_AC || \ 152 (x) == GX_VRAM_BG_256_AD || \ 153 (x) == GX_VRAM_BG_256_BD || \ 154 (x) == GX_VRAM_BG_384_ABD || \ 155 (x) == GX_VRAM_BG_384_ACD ) 156 157 //---------------------------------------------------------------------------- 158 // Parameters for GX_SetBankForOBJ etc. 159 //---------------------------------------------------------------------------- 160 typedef enum 161 { 162 GX_VRAM_OBJ_NONE = 0x0000, 163 GX_VRAM_OBJ_16_F = GX_VRAM_F, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_F_SIZE 164 GX_VRAM_OBJ_16_G = GX_VRAM_G, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_G_SIZE 165 GX_VRAM_OBJ_32_FG = GX_VRAM_F | GX_VRAM_G, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_F_SIZE + HW_VRAM_G_SIZE 166 GX_VRAM_OBJ_64_E = GX_VRAM_E, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_E_SIZE 167 GX_VRAM_OBJ_80_EF = GX_VRAM_E | GX_VRAM_F, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_E_SIZE + HW_VRAM_F_SIZE 168 GX_VRAM_OBJ_80_EG = GX_VRAM_E | GX_VRAM_G, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_E_SIZE + HW_VRAM_G_SIZE 169 GX_VRAM_OBJ_96_EFG = GX_VRAM_E | GX_VRAM_F | GX_VRAM_G, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_E_SIZE + HW_VRAM_F_SIZE + HW_VRAM_G_SIZE 170 GX_VRAM_OBJ_128_A = GX_VRAM_A, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_A_SIZE 171 GX_VRAM_OBJ_128_B = GX_VRAM_B, // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_B_SIZE 172 GX_VRAM_OBJ_256_AB = GX_VRAM_A | GX_VRAM_B // ARM9: HW_OBJ_VRAM --> HW_OBJ_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE 173 } 174 GXVRamOBJ; 175 176 #define GX_VRAM_OBJ_ASSERT(x) \ 177 SDK_ASSERT( (x) == GX_VRAM_OBJ_NONE || \ 178 (x) == GX_VRAM_OBJ_16_F || \ 179 (x) == GX_VRAM_OBJ_16_G || \ 180 (x) == GX_VRAM_OBJ_32_FG || \ 181 (x) == GX_VRAM_OBJ_64_E || \ 182 (x) == GX_VRAM_OBJ_80_EF || \ 183 (x) == GX_VRAM_OBJ_80_EG || \ 184 (x) == GX_VRAM_OBJ_96_EFG || \ 185 (x) == GX_VRAM_OBJ_128_A || \ 186 (x) == GX_VRAM_OBJ_128_B || \ 187 (x) == GX_VRAM_OBJ_256_AB ) 188 189 //---------------------------------------------------------------------------- 190 // Parameters for GX_SetBankForARM7 etc. 191 //---------------------------------------------------------------------------- 192 typedef enum 193 { 194 GX_VRAM_ARM7_NONE = 0x0000, 195 GX_VRAM_ARM7_128_C = GX_VRAM_C, // ARM7: 0x06000000 --> 0x06020000 196 GX_VRAM_ARM7_128_D = GX_VRAM_D, // ARM7: 0x06000000 --> 0x06020000 197 GX_VRAM_ARM7_256_CD = GX_VRAM_C | GX_VRAM_D // ARM7: 0x06000000 --> 0x06040000 198 } 199 GXVRamARM7; 200 201 #define GX_VRAM_ARM7_ASSERT(x) \ 202 SDK_ASSERT( (x) == GX_VRAM_ARM7_NONE || \ 203 (x) == GX_VRAM_ARM7_128_C || \ 204 (x) == GX_VRAM_ARM7_128_D || \ 205 (x) == GX_VRAM_ARM7_256_CD ) 206 207 //---------------------------------------------------------------------------- 208 // Parameters for GX_SetBankForTex etc. 209 //---------------------------------------------------------------------------- 210 typedef enum 211 { 212 GX_VRAM_TEX_NONE = 0x0000, // none 213 GX_VRAM_TEX_0_A = GX_VRAM_A, // TextureImageSlot 0 214 GX_VRAM_TEX_0_B = GX_VRAM_B, // TextureImageSlot 0 215 GX_VRAM_TEX_0_C = GX_VRAM_C, // TextureImageSlot 0 216 GX_VRAM_TEX_0_D = GX_VRAM_D, // TextureImageSlot 0 217 GX_VRAM_TEX_01_AB = GX_VRAM_A | GX_VRAM_B, // TextureImageSlot 01 218 GX_VRAM_TEX_01_BC = GX_VRAM_B | GX_VRAM_C, // TextureImageSlot 01 219 GX_VRAM_TEX_01_CD = GX_VRAM_C | GX_VRAM_D, // TextureImageSlot 01 220 GX_VRAM_TEX_012_ABC = GX_VRAM_A | GX_VRAM_B | GX_VRAM_C, // TextureImageSlot 012 221 GX_VRAM_TEX_012_BCD = GX_VRAM_B | GX_VRAM_C | GX_VRAM_D, // TextureImageSlot 012 222 GX_VRAM_TEX_0123_ABCD = GX_VRAM_A | GX_VRAM_B | GX_VRAM_C | GX_VRAM_D, // TextureImageSlot 0123 223 224 // discontinuous on LCDC memory 225 GX_VRAM_TEX_01_AC = GX_VRAM_A | GX_VRAM_C, // TextureImageSlot 01 226 GX_VRAM_TEX_01_AD = GX_VRAM_A | GX_VRAM_D, // TextureImageSlot 01 227 GX_VRAM_TEX_01_BD = GX_VRAM_B | GX_VRAM_D, // TextureImageSlot 01 228 GX_VRAM_TEX_012_ABD = GX_VRAM_A | GX_VRAM_B | GX_VRAM_D, // TextureImageSlot 012 229 GX_VRAM_TEX_012_ACD = GX_VRAM_A | GX_VRAM_C | GX_VRAM_D // TextureImageSlot 012 230 } 231 GXVRamTex; 232 233 #define GX_VRAM_TEX_ASSERT(x) \ 234 SDK_ASSERT( (x) == GX_VRAM_TEX_NONE || \ 235 (x) == GX_VRAM_TEX_0_A || \ 236 (x) == GX_VRAM_TEX_0_B || \ 237 (x) == GX_VRAM_TEX_0_C || \ 238 (x) == GX_VRAM_TEX_0_D || \ 239 (x) == GX_VRAM_TEX_01_AB || \ 240 (x) == GX_VRAM_TEX_01_BC || \ 241 (x) == GX_VRAM_TEX_01_CD || \ 242 (x) == GX_VRAM_TEX_012_ABC || \ 243 (x) == GX_VRAM_TEX_012_BCD || \ 244 (x) == GX_VRAM_TEX_0123_ABCD || \ 245 (x) == GX_VRAM_TEX_01_AC || \ 246 (x) == GX_VRAM_TEX_01_AD || \ 247 (x) == GX_VRAM_TEX_01_BD || \ 248 (x) == GX_VRAM_TEX_012_ABD || \ 249 (x) == GX_VRAM_TEX_012_ACD ) 250 251 //---------------------------------------------------------------------------- 252 // Parameters for GX_SetBankForClearImage etc. 253 //---------------------------------------------------------------------------- 254 typedef enum 255 { 256 GX_VRAM_CLEARIMAGE_NONE = 0x0000, 257 GX_VRAM_CLEARIMAGE_256_AB = GX_VRAM_A | GX_VRAM_B, 258 GX_VRAM_CLEARIMAGE_256_CD = GX_VRAM_C | GX_VRAM_D, // TextureImageSlot 23 259 GX_VRAM_CLEARDEPTH_128_A = GX_VRAM_A, 260 GX_VRAM_CLEARDEPTH_128_B = GX_VRAM_B, 261 GX_VRAM_CLEARDEPTH_128_C = GX_VRAM_C, 262 GX_VRAM_CLEARDEPTH_128_D = GX_VRAM_D 263 } 264 GXVRamClearImage; 265 266 #define GX_VRAM_CLRIMG_ASSERT(x) \ 267 SDK_ASSERT( (x) == GX_VRAM_CLEARIMAGE_NONE || \ 268 (x) == GX_VRAM_CLEARIMAGE_256_AB || \ 269 (x) == GX_VRAM_CLEARIMAGE_256_CD || \ 270 (x) == GX_VRAM_CLEARDEPTH_128_A || \ 271 (x) == GX_VRAM_CLEARDEPTH_128_B || \ 272 (x) == GX_VRAM_CLEARDEPTH_128_C || \ 273 (x) == GX_VRAM_CLEARDEPTH_128_D ) 274 275 //---------------------------------------------------------------------------- 276 // Parameters for GX_SetBankForTexPltt etc. 277 //---------------------------------------------------------------------------- 278 typedef enum 279 { 280 GX_VRAM_TEXPLTT_NONE = 0x0000, 281 GX_VRAM_TEXPLTT_0_F = GX_VRAM_F, // TexturePltt 0 282 GX_VRAM_TEXPLTT_0_G = GX_VRAM_G, // TexturePltt 0 283 GX_VRAM_TEXPLTT_01_FG = GX_VRAM_F | GX_VRAM_G, // TexturePltt 01 284 GX_VRAM_TEXPLTT_0123_E = GX_VRAM_E, // TexturePltt 0-3 285 GX_VRAM_TEXPLTT_01234_EF = GX_VRAM_E | GX_VRAM_F, // TexturePltt 0-3,4 286 GX_VRAM_TEXPLTT_012345_EFG = GX_VRAM_E | GX_VRAM_F | GX_VRAM_G // TexturePltt 0-3,45 287 } 288 GXVRamTexPltt; 289 290 #define GX_VRAM_TEXPLTT_ASSERT(x) \ 291 SDK_ASSERT( (x) == GX_VRAM_TEXPLTT_NONE || \ 292 (x) == GX_VRAM_TEXPLTT_0_F || \ 293 (x) == GX_VRAM_TEXPLTT_0_G || \ 294 (x) == GX_VRAM_TEXPLTT_01_FG || \ 295 (x) == GX_VRAM_TEXPLTT_0123_E || \ 296 (x) == GX_VRAM_TEXPLTT_01234_EF || \ 297 (x) == GX_VRAM_TEXPLTT_012345_EFG ) 298 299 //---------------------------------------------------------------------------- 300 // Parameters for GX_SetBankForBGExtPltt etc. 301 //---------------------------------------------------------------------------- 302 typedef enum 303 { 304 GX_VRAM_BGEXTPLTT_NONE = 0x0000, 305 GX_VRAM_BGEXTPLTT_01_F = GX_VRAM_F, // BGExtPltt 0-1 <--- Caution 306 GX_VRAM_BGEXTPLTT_23_G = GX_VRAM_G, // BGExtPltt 2-3 <--- Caution 307 GX_VRAM_BGEXTPLTT_0123_E = GX_VRAM_E, // BGExtPltt 0-3 308 GX_VRAM_BGEXTPLTT_0123_FG = GX_VRAM_F | GX_VRAM_G // BGExtPltt 0-1,2-3 309 } 310 GXVRamBGExtPltt; 311 312 #define GX_VRAM_BGEXTPLTT_ASSERT(x) \ 313 SDK_ASSERT( (x) == GX_VRAM_BGEXTPLTT_NONE || \ 314 (x) == GX_VRAM_BGEXTPLTT_01_F || \ 315 (x) == GX_VRAM_BGEXTPLTT_23_G || \ 316 (x) == GX_VRAM_BGEXTPLTT_0123_E || \ 317 (x) == GX_VRAM_BGEXTPLTT_0123_FG ) 318 319 //---------------------------------------------------------------------------- 320 // Parameters for GX_SetBankForOBJExtPltt etc. 321 //---------------------------------------------------------------------------- 322 #define GX_VRAM_OBJEXTPLTT_8_F GX_VRAM_OBJEXTPLTT_0_F 323 #define GX_VRAM_OBJEXTPLTT_8_G GX_VRAM_OBJEXTPLTT_0_G 324 325 typedef enum 326 { 327 GX_VRAM_OBJEXTPLTT_NONE = 0, 328 GX_VRAM_OBJEXTPLTT_0_F = GX_VRAM_F, // OBJExtPltt 329 GX_VRAM_OBJEXTPLTT_0_G = GX_VRAM_G // OBJExtPltt 330 } 331 GXVRamOBJExtPltt; 332 333 #define GX_VRAM_OBJEXTPLTT_ASSERT(x) \ 334 SDK_ASSERT( (x) == GX_VRAM_OBJEXTPLTT_NONE || \ 335 (x) == GX_VRAM_OBJEXTPLTT_0_F || \ 336 (x) == GX_VRAM_OBJEXTPLTT_0_G ) 337 338 //---------------------------------------------------------------------------- 339 // Parameters for GXS_SetBankForSubBG etc. 340 //---------------------------------------------------------------------------- 341 typedef enum 342 { 343 GX_VRAM_SUB_BG_NONE = 0x0000, 344 GX_VRAM_SUB_BG_128_C = GX_VRAM_C, 345 GX_VRAM_SUB_BG_32_H = GX_VRAM_H, 346 GX_VRAM_SUB_BG_48_HI = GX_VRAM_H | GX_VRAM_I 347 } 348 GXVRamSubBG; 349 350 #define GX_VRAM_SUB_BG_ASSERT(x) \ 351 SDK_ASSERT( (x) == GX_VRAM_SUB_BG_NONE || \ 352 (x) == GX_VRAM_SUB_BG_128_C || \ 353 (x) == GX_VRAM_SUB_BG_32_H || \ 354 (x) == GX_VRAM_SUB_BG_48_HI ) 355 356 //---------------------------------------------------------------------------- 357 // Parameters for GX_SetBankForSubOBJ etc. 358 //---------------------------------------------------------------------------- 359 typedef enum 360 { 361 GX_VRAM_SUB_OBJ_NONE = 0x0000, 362 GX_VRAM_SUB_OBJ_128_D = GX_VRAM_D, 363 GX_VRAM_SUB_OBJ_16_I = GX_VRAM_I 364 } 365 GXVRamSubOBJ; 366 367 #define GX_VRAM_SUB_OBJ_ASSERT(x) \ 368 SDK_ASSERT( (x) == GX_VRAM_SUB_OBJ_NONE || \ 369 (x) == GX_VRAM_SUB_OBJ_128_D || \ 370 (x) == GX_VRAM_SUB_OBJ_16_I ) 371 372 //---------------------------------------------------------------------------- 373 // Parameters for GX_SetBankForSubBGExtPltt etc. 374 //---------------------------------------------------------------------------- 375 376 #define GX_VRAM_SUB_BGEXTPLTT_32_H GX_VRAM_SUB_BGEXTPLTT_0123_H 377 378 typedef enum 379 { 380 GX_VRAM_SUB_BGEXTPLTT_NONE = 0x0000, 381 GX_VRAM_SUB_BGEXTPLTT_0123_H = GX_VRAM_H 382 } 383 GXVRamSubBGExtPltt; 384 385 #define GX_VRAM_SUB_BGEXTPLTT_ASSERT(x) \ 386 SDK_ASSERT( (x) == GX_VRAM_SUB_BGEXTPLTT_NONE || \ 387 (x) == GX_VRAM_SUB_BGEXTPLTT_0123_H ) 388 389 //---------------------------------------------------------------------------- 390 // Parameters for GX_SetBankForSubOBJExtPltt etc. 391 //---------------------------------------------------------------------------- 392 393 #define GX_VRAM_SUB_OBJEXTPLTT_16_I GX_VRAM_SUB_OBJEXTPLTT_0_I 394 395 typedef enum 396 { 397 GX_VRAM_SUB_OBJEXTPLTT_NONE = 0x0000, 398 GX_VRAM_SUB_OBJEXTPLTT_0_I = GX_VRAM_I 399 } 400 GXVRamSubOBJExtPltt; 401 402 #define GX_VRAM_SUB_OBJEXTPLTT_ASSERT(x) \ 403 SDK_ASSERT( (x) == GX_VRAM_SUB_OBJEXTPLTT_NONE || \ 404 (x) == GX_VRAM_SUB_OBJEXTPLTT_0_I ) 405 406 407 408 /* if include from Other Environment for exsample VC or BCB, */ 409 /* please define SDK_FROM_TOOL */ 410 #if !(defined(SDK_WIN32) || defined(SDK_FROM_TOOL)) 411 412 //---------------------------------------------------------------------------- 413 // Declaration of function 414 //---------------------------------------------------------------------------- 415 416 //---------------------------------------------------------------------------- 417 // 418 // Main engine 419 // 420 //---------------------------------------------------------------------------- 421 void GX_SetBankForBG(GXVRamBG bg); 422 BOOL GX_TrySetBankForBG(GXVRamBG bg); 423 void GX_SetBankForBGEx(GXVRamBG bg1, GXVRamBG bg2); 424 BOOL GX_TrySetBankForBGEx(GXVRamBG bg1, GXVRamBG bg2); 425 void GX_SetBankForOBJ(GXVRamOBJ obj); 426 BOOL GX_TrySetBankForOBJ(GXVRamOBJ obj); 427 void GX_SetBankForBGExtPltt(GXVRamBGExtPltt bgExtPltt); 428 BOOL GX_TrySetBankForBGExtPltt(GXVRamBGExtPltt bgExtPltt); 429 void GX_SetBankForOBJExtPltt(GXVRamOBJExtPltt objExtPltt); 430 BOOL GX_TrySetBankForOBJExtPltt(GXVRamOBJExtPltt objExtPltt); 431 void GX_SetBankForTex(GXVRamTex tex); 432 BOOL GX_TrySetBankForTex(GXVRamTex tex); 433 void GX_SetBankForTexPltt(GXVRamTexPltt texPltt); 434 BOOL GX_TrySetBankForTexPltt(GXVRamTexPltt texPltt); 435 void GX_SetBankForClearImage(GXVRamClearImage clrImg); 436 BOOL GX_TrySetBankForClearImage(GXVRamClearImage clrImg); 437 438 GXVRamBG GX_GetBankForBG(void); 439 GXVRamOBJ GX_GetBankForOBJ(void); 440 GXVRamBGExtPltt GX_GetBankForBGExtPltt(void); 441 GXVRamOBJExtPltt GX_GetBankForOBJExtPltt(void); 442 GXVRamTex GX_GetBankForTex(void); 443 GXVRamTexPltt GX_GetBankForTexPltt(void); 444 GXVRamClearImage GX_GetBankForClearImage(void); 445 446 GXVRamBG GX_ResetBankForBG(void); 447 GXVRamOBJ GX_ResetBankForOBJ(void); 448 GXVRamBGExtPltt GX_ResetBankForBGExtPltt(void); 449 GXVRamOBJExtPltt GX_ResetBankForOBJExtPltt(void); 450 GXVRamTex GX_ResetBankForTex(void); 451 GXVRamTexPltt GX_ResetBankForTexPltt(void); 452 GXVRamClearImage GX_ResetBankForClearImage(void); 453 454 GXVRamBG GX_DisableBankForBG(void); 455 GXVRamOBJ GX_DisableBankForOBJ(void); 456 GXVRamBGExtPltt GX_DisableBankForBGExtPltt(void); 457 GXVRamOBJExtPltt GX_DisableBankForOBJExtPltt(void); 458 GXVRamTex GX_DisableBankForTex(void); 459 GXVRamTexPltt GX_DisableBankForTexPltt(void); 460 GXVRamClearImage GX_DisableBankForClearImage(void); 461 462 u32 GX_GetSizeOfBG(void); 463 u32 GX_GetSizeOfOBJ(void); 464 u32 GX_GetSizeOfBGExtPltt(void); 465 u32 GX_GetSizeOfOBJExtPltt(void); 466 u32 GX_GetSizeOfTex(void); 467 u32 GX_GetSizeOfTexPltt(void); 468 u32 GX_GetSizeOfClearImage(void); 469 470 //---------------------------------------------------------------------------- 471 // Sub engine 472 //---------------------------------------------------------------------------- 473 void GX_SetBankForSubBG(GXVRamSubBG sub_bg); 474 BOOL GX_TrySetBankForSubBG(GXVRamSubBG sub_bg); 475 void GX_SetBankForSubOBJ(GXVRamSubOBJ sub_obj); 476 BOOL GX_TrySetBankForSubOBJ(GXVRamSubOBJ sub_obj); 477 void GX_SetBankForSubBGExtPltt(GXVRamSubBGExtPltt sub_bgExtPltt); 478 BOOL GX_TrySetBankForSubBGExtPltt(GXVRamSubBGExtPltt sub_bgExtPltt); 479 void GX_SetBankForSubOBJExtPltt(GXVRamSubOBJExtPltt sub_objExtPltt); 480 BOOL GX_TrySetBankForSubOBJExtPltt(GXVRamSubOBJExtPltt sub_objExtPltt); 481 482 GXVRamSubBG GX_GetBankForSubBG(void); 483 GXVRamSubOBJ GX_GetBankForSubOBJ(void); 484 GXVRamSubBGExtPltt GX_GetBankForSubBGExtPltt(void); 485 GXVRamSubOBJExtPltt GX_GetBankForSubOBJExtPltt(void); 486 487 GXVRamSubBG GX_ResetBankForSubBG(void); 488 GXVRamSubOBJ GX_ResetBankForSubOBJ(void); 489 GXVRamSubBGExtPltt GX_ResetBankForSubBGExtPltt(void); 490 GXVRamSubOBJExtPltt GX_ResetBankForSubOBJExtPltt(void); 491 492 GXVRamSubBG GX_DisableBankForSubBG(void); 493 GXVRamSubOBJ GX_DisableBankForSubOBJ(void); 494 GXVRamSubBGExtPltt GX_DisableBankForSubBGExtPltt(void); 495 GXVRamSubOBJExtPltt GX_DisableBankForSubOBJExtPltt(void); 496 497 u32 GX_GetSizeOfSubBG(void); 498 u32 GX_GetSizeOfSubOBJ(void); 499 u32 GX_GetSizeOfSubBGExtPltt(void); 500 u32 GX_GetSizeOfSubOBJExtPltt(void); 501 502 //---------------------------------------------------------------------------- 503 // Others 504 //---------------------------------------------------------------------------- 505 void GX_SetBankForARM7(GXVRamARM7 arm7); 506 BOOL GX_TrySetBankForARM7(GXVRamARM7 arm7); 507 void GX_SetBankForLCDC(int lcdc); 508 BOOL GX_TrySetBankForLCDC(int lcdc); 509 510 GXVRamARM7 GX_GetBankForARM7(void); 511 GXVRamLCDC GX_GetBankForLCDC(void); 512 513 GXVRamARM7 GX_ResetBankForARM7(void); 514 515 GXVRamARM7 GX_DisableBankForARM7(void); 516 GXVRamLCDC GX_DisableBankForLCDC(void); 517 518 u32 GX_GetSizeOfARM7(void); 519 520 521 522 #endif // SDK_FROM_TOOL 523 524 #ifdef __cplusplus 525 }/* extern "C" */ 526 #endif 527 528 #endif 529