SSBM Decomp
Loading...
Searching...
No Matches
__types.h
Go to the documentation of this file.
1#ifndef DOLPHIN_GX___TYPES_H
2#define DOLPHIN_GX___TYPES_H
4#include <platform.h>
8#include <dolphin/gx/GXEnum.h>
9#include <dolphin/gx/types.h>
10#include <dolphin/mtx/types.h>
12
13#define GX_WRITE_U8(ub) WGPIPE.u8 = ((u8*) &ub);
14
15#define GX_WRITE_U16(us) WGPIPE.u16 = (*(u16*) &us);
16
17#define GX_WRITE_U32(ui) WGPIPE.u32 = (*(u32*) &ui);
18
19#define GX_WRITE_F32(f) WGPIPE.f32 = (*(f32*) &f);
20
21#define INSERT_FIELD(reg, value, nbits, shift) \
22 (reg) = ((u32) (reg) & ~(((1 << (nbits)) - 1) << (shift))) | \
23 ((u32) (value) << (shift));
24
25// GXFifoObj private fields
26typedef struct __GXFifoObj {
27 void* base; // at 0x00
28 void* end; // at 0x04
29 u32 size; // at 0x08
30 u32 hiWaterMark; // at 0x0C
31 u32 loWaterMark; // at 0x10
32 void* readPtr; // at 0x14
33 void* writePtr; // at 0x18
34 s32 x1C; // at 0x1C
35 u8 x20_pad[4]; // at 0x20
37
38struct GXContext {
39 union {
41 u16 u16[2];
42 } x0; // at 0x000
43 u16 x4; // at 0x004
44 u16 x6; // at 0x006
45 OSContext* x8; // at 0x008
46 u32 xC; // at 0x00C
47 u32 x10; // at 0x010
48 u32 x14; // at 0x014
49 u32 x18; // at 0x018
50 s32 x1C_data[(0x3C - 0x1C) / 4]; // at 0x01C
51 s32 x3C_data[(0x5C - 0x3C) / 4]; // at 0x03C
52 s32 x5C_data[(0x7C - 0x5C) / 4]; // at 0x05C
53 s32 x7C; // at 0x07C
54 s32 x80; // at 0x080
55 s32 x84; // at 0x084
56 u32 x88_data[4]; // at 0x088
57 u32 x98_data[4]; // at 0x098
58 u32 ambColors[2]; // at 0x0A8
59 u32 matColors[2]; // at 0x0B0
60 s32 xB8[GX_MAX_TEXCOORD]; // at 0x0B8
61 u8 xD8_pad[0xF8 - 0xD8]; // at 0x0D8
62 s32 xF8; // at 0x0F8
63 s32 xFC; // at 0x0FC
64 u32 x100_data[(0x130 - 0x100) / 4]; // at 0x100
65 u32 x130_data[(0x170 - 0x130) / 4]; // at 0x130
66 u32 x170_data[(0x1AC - 0x170) / 4]; // at 0x170
67 u8 x1AC_pad[0x1B0 - 0x1AC]; // at 0x1AC
68 GXTexRegionCallback callbacks[(0x1D0 - 0x1B0) / 4]; // at 0x1B0
69 u32 x1D0[(0x204 - 0x1D0) / 4]; // at 0x1D0
70 u32 x204; // at 0x204
71 u8 x208_pad[0x2D0 - 0x208]; // at 0x208
72 struct {
73 u32 unk[4];
74 } x2D0[(0x410 - 0x2D0) / 16]; // at 0x2D0
77 u32 x418; // at 0x418
78 GXBool x41C; // at 0x41C
79 GXBool x41D; // at 0x41D
80 u32 projection_type; // at 0x420
81 f32 projection_v[6]; // at 0x424
82 f32 viewport_v[6]; // at 0x43C
83 u8 x454_pad[4]; // at 0x454
84 f32 x458; // at 0x458
85 s32 x45C_data[0x20 / 4]; // at 0x45C
86 s32 x47C_data[0x20 / 4]; // at 0x47C
87 u32 x49C_data[(0x4EC - 0x49C) / 4]; // at 0x49C
88 u8 x4EC; // at 0x4EC
89 GXBool x4ED; // at 0x4ED
90 u8 x4EE; // at 0x4EE
91 u32 x4F0_flags; // at 0x4F0
92 GXFifoObj* fifo; // at 0x4F4
93 u8 x4F8_pad[0x570 - 0x4F8]; // at 0x4F8
94 u32 dirtyFlags; // at 0x570
95};
96
104
105extern volatile u32* __piReg;
106extern volatile u16* __peReg;
107extern volatile u16* __cpReg;
108extern volatile u32* __memReg;
109
110extern volatile union WGPIPE_T {
117 void* ptr;
119} WGPIPE AT_ADDRESS(0xCC008000);
120
121typedef struct __GXGPFifo {
126 u8 x8_pad[0x38 - 0x8];
127} __GXGPFifo;
128
133
134struct GXTexObj {
135 u8 x0_pad[0x8];
137 u8 xC_pad[0x8];
138 GXTexFmt tex_fmt; // at 0x14
139 u8 x18_pad[8]; // at 0x18
140};
141
142struct GXTlutObj {
144};
145
146#endif
GXTexFmt
Definition GXEnum.h:125
@ GX_MAX_TEXCOORD
Definition GXEnum.h:240
u8 GXBool
Definition GXEnum.h:6
volatile u16 * __peReg
Definition GXInit.c:13
volatile u32 * __memReg
Definition GXInit.c:12
volatile u16 * __cpReg
Definition GXInit.c:14
volatile u32 * __piReg
Definition GXInit.c:15
void *(* GXTexRegionCallback)(void)
Definition forward.h:22
signed char s8
A signed 8-bit integer.
Definition platform.h:8
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
float f32
A 32-bit floating-point number.
Definition platform.h:62
signed short s16
A signed 16-bit integer.
Definition platform.h:11
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
#define AT_ADDRESS(x)
Definition platform.h:122
signed long s32
A signed 32-bit integer.
Definition platform.h:14
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
Definition __types.h:38
GXBool x4ED
Definition __types.h:89
f32 projection_v[6]
Definition __types.h:81
u32 x10
Definition __types.h:47
u32 ambColors[2]
Definition __types.h:58
GXTexRegionCallback tex_region_cb
Definition __types.h:75
GXTexRegionCallback callbacks[(0x1D0 - 0x1B0)/4]
Definition __types.h:68
u32 x49C_data[(0x4EC - 0x49C)/4]
Definition __types.h:87
s32 x7C
Definition __types.h:53
u32 projection_type
Definition __types.h:80
s32 xFC
Definition __types.h:63
GXFifoObj * fifo
Definition __types.h:92
u32 x130_data[(0x170 - 0x130)/4]
Definition __types.h:65
s32 x80
Definition __types.h:54
u32 x88_data[4]
Definition __types.h:56
u32 x1D0[(0x204 - 0x1D0)/4]
Definition __types.h:69
u32 x418
Definition __types.h:77
u8 x208_pad[0x2D0 - 0x208]
Definition __types.h:71
s32 x47C_data[0x20/4]
Definition __types.h:86
u32 matColors[2]
Definition __types.h:59
u8 x1AC_pad[0x1B0 - 0x1AC]
Definition __types.h:67
f32 viewport_v[6]
Definition __types.h:82
s32 x84
Definition __types.h:55
u32 x4F0_flags
Definition __types.h:91
GXTexRegionCallback tlut_region_cb
Definition __types.h:76
u8 x4EE
Definition __types.h:90
u8 x4EC
Definition __types.h:88
union GXContext::@4 x0
u32 x98_data[4]
Definition __types.h:57
OSContext * x8
Definition __types.h:45
u32 x100_data[(0x130 - 0x100)/4]
Definition __types.h:64
s32 x1C_data[(0x3C - 0x1C)/4]
Definition __types.h:50
struct GXContext::@5 x2D0[(0x410 - 0x2D0)/16]
u32 x14
Definition __types.h:48
u32 u32
Definition __types.h:40
GXBool x41C
Definition __types.h:78
GXBool x41D
Definition __types.h:79
u32 x204
Definition __types.h:70
f32 x458
Definition __types.h:84
u16 x6
Definition __types.h:44
u32 x18
Definition __types.h:49
s32 xF8
Definition __types.h:62
s32 xB8[GX_MAX_TEXCOORD]
Definition __types.h:60
u8 x4F8_pad[0x570 - 0x4F8]
Definition __types.h:93
s32 x5C_data[(0x7C - 0x5C)/4]
Definition __types.h:52
u8 x454_pad[4]
Definition __types.h:83
u32 x170_data[(0x1AC - 0x170)/4]
Definition __types.h:66
u32 dirtyFlags
Definition __types.h:94
s32 x45C_data[0x20/4]
Definition __types.h:85
u16 x4
Definition __types.h:43
u32 xC
Definition __types.h:46
u8 xD8_pad[0xF8 - 0xD8]
Definition __types.h:61
s32 x3C_data[(0x5C - 0x3C)/4]
Definition __types.h:51
Definition __types.h:129
GXContext * main
Definition __types.h:130
GXContext * null
Definition __types.h:131
Definition types.h:10
Definition __types.h:97
u16 color_settings
Definition __types.h:99
u16 dst_alpha
Definition __types.h:100
u16 x6
Definition __types.h:101
u16 x8
Definition __types.h:102
u16 z_mode
Definition __types.h:98
Definition __types.h:134
GXTexFmt tex_fmt
Definition __types.h:138
u8 x0_pad[0x8]
Definition __types.h:135
u8 xC_pad[0x8]
Definition __types.h:137
u32 dimensions
Definition __types.h:136
u8 x18_pad[8]
Definition __types.h:139
Definition __types.h:142
u32 dummy[3]
Definition __types.h:143
Definition OSContext.h:133
Definition __types.h:26
void * end
Definition __types.h:28
u32 size
Definition __types.h:29
s32 x1C
Definition __types.h:34
u32 hiWaterMark
Definition __types.h:30
void * readPtr
Definition __types.h:32
void * writePtr
Definition __types.h:33
u32 loWaterMark
Definition __types.h:31
void * base
Definition __types.h:27
u8 x20_pad[4]
Definition __types.h:35
Definition __types.h:121
s16 x4
Definition __types.h:124
u8 x8_pad[0x38 - 0x8]
Definition __types.h:126
s16 x2
Definition __types.h:123
s16 x6
Definition __types.h:125
u16 x0
Definition __types.h:122
Definition lbcollision.c:66
Definition __types.h:110
u32 u32
Definition __types.h:115
void * ptr
Definition __types.h:117
s8 s8
Definition __types.h:111
u8 u8
Definition __types.h:112
u16 u16
Definition __types.h:114
s32 s32
Definition __types.h:116
s16 s16
Definition __types.h:113
f32 f32
Definition __types.h:118