summaryrefslogtreecommitdiff
path: root/include/screen.h
blob: e6462de18901d8ab96ed1039a15d80f3c7a351b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef BG_H
#define BG_H

#include "global.h"

typedef struct {
    u16 displayControl;
    u8 filler2[0x2];
    u16 unk4;
    u16 unk6;
} LcdControls;

typedef struct {
    u16 bg0Control;
    u16 bg0xOffset;
    u16 bg0yOffset;
    u16 bg0Updated;
    void* bg0Tilemap;
    u16 bg1Control;
    u16 bg1xOffset;
    u16 bg1yOffset;
    u16 bg1Updated;
    void* bg1Tilemap;
} BgSettings;

typedef struct {
    u16 bg2Control;
    u16 bg2xOffset;
    u16 bg2yOffset;
    u16 bg2Updated;
    void* bg2Tilemap;
    u16 bg3Control;
    s16 bg3xOffset;
    s16 bg3yOffset;
    u16 bg3Updated;
    void* bg3Tilemap;
} BgAffSettings;

typedef struct {
    u16 bg2dx;
    u16 bg2dmx;
    u16 bg2dy;
    u16 bg2dmy;
    u16 bg2xPointLeastSig;
    u16 bg2xPointMostSig;
    u16 bg2yPointLeastSig;
    u16 bg2yPointMostSig;
    u16 bg3dx;
    u16 bg3dmx;
    u16 bg3dy;
    u16 bg3dmy;
    u16 bg3xPointLeastSig;
    u16 bg3xPointMostSig;
    u16 bg3yPointLeastSig;
    u16 bg3yPointMostSig;
    u16 window0HorizontalDimensions;
    u16 window1HorizontalDimensions;
    u16 window0VerticalDimensions;
    u16 window1VerticalDimensions;
    u16 windowInsideControl;
    u16 windowOutsideControl;
    u16 mosaicSize;
    u16 layerFXControl;
    u16 alphaBlend;
    u16 layerBrightness;
} BgControls;

typedef struct {
    /*0x00*/ LcdControls lcd;
    /*0x08*/ BgSettings bg;
    /*0x20*/ BgAffSettings affine;
    /*0x38*/ BgControls controls;
    /*0x6c*/ u8 _6c;
    /*0x6d*/ u8 _6d;
    /*0x70*/ u32 _70;
    /*0x74*/ u32 _74;
    /*0x78*/ u32 _78;
} Screen;

struct OAMCommand {
    u16 x;
    u16 y;
    u16 _4;
    u16 _6;
    u16 _8;
} extern gOamCmd;

extern BgControls gBgControls;
extern Screen gScreen;

#endif