Mario Kart 64
os_vi.h
Go to the documentation of this file.
1 #ifndef _ULTRA64_VI_H_
2 #define _ULTRA64_VI_H_
3 
4 #include <PR/ultratypes.h>
5 #include <PR/os_message.h>
6 
7 /* Ultra64 Video Interface */
8 
9 
10 /* Special Features */
11 #define OS_VI_GAMMA_ON 0x0001
12 #define OS_VI_GAMMA_OFF 0x0002
13 #define OS_VI_GAMMA_DITHER_ON 0x0004
14 #define OS_VI_GAMMA_DITHER_OFF 0x0008
15 #define OS_VI_DIVOT_ON 0x0010
16 #define OS_VI_DIVOT_OFF 0x0020
17 #define OS_VI_DITHER_FILTER_ON 0x0040
18 #define OS_VI_DITHER_FILTER_OFF 0x0080
19 
20 #define OS_VI_GAMMA 0x08
21 #define OS_VI_GAMMA_DITHER 0x04
22 #define OS_VI_DIVOT 0x10
23 #define OS_VI_DITHER_FILTER 0x10000
24 #define OS_VI_UNK200 0x200
25 #define OS_VI_UNK100 0x100
26 
27 
28 /* Types */
29 
30 typedef struct
31 {
42 
43 typedef struct
44 {
51 
52 typedef struct
53 {
56  OSViFieldRegs fldRegs[2];
57 } OSViMode;
58 
59 typedef struct
60 {
61  /* 0x00 */ u16 unk00; //some kind of flags. swap buffer sets to 0x10
62  /* 0x02 */ u16 retraceCount;
63  /* 0x04 */ void* buffer;
64  /* 0x08 */ OSViMode *modep;
65  /* 0x0c */ u32 features;
66  /* 0x10 */ OSMesgQueue *mq;
67  /* 0x14 */ OSMesg *msg;
68  /* 0x18 */ u32 unk18;
69  /* 0x1c */ u32 unk1c;
70  /* 0x20 */ u32 unk20;
71  /* 0x24 */ f32 unk24;
72  /* 0x28 */ u16 unk28;
73  /* 0x2c */ u32 unk2c;
74 } OSViContext;
75 
76 void osCreateViManager(OSPri pri);
77 void osViSetMode(OSViMode *mode);
78 void osViSetEvent(OSMesgQueue *mq, OSMesg msg, u32 retraceCount);
79 void osViBlack(u8 active);
80 void osViSetSpecialFeatures(u32 func);
81 void osViSwapBuffer(void *vaddr);
82 
83 
84 #define OS_VI_NTSC_LPN1 0 /* NTSC */
85 #define OS_VI_NTSC_LPF1 1
86 #define OS_VI_NTSC_LAN1 2
87 #define OS_VI_NTSC_LAF1 3
88 #define OS_VI_NTSC_LPN2 4
89 #define OS_VI_NTSC_LPF2 5
90 #define OS_VI_NTSC_LAN2 6
91 #define OS_VI_NTSC_LAF2 7
92 #define OS_VI_NTSC_HPN1 8
93 #define OS_VI_NTSC_HPF1 9
94 #define OS_VI_NTSC_HAN1 10
95 #define OS_VI_NTSC_HAF1 11
96 #define OS_VI_NTSC_HPN2 12
97 #define OS_VI_NTSC_HPF2 13
98 
99 #define OS_VI_PAL_LPN1 14 /* PAL */
100 #define OS_VI_PAL_LPF1 15
101 #define OS_VI_PAL_LAN1 16
102 #define OS_VI_PAL_LAF1 17
103 #define OS_VI_PAL_LPN2 18
104 #define OS_VI_PAL_LPF2 19
105 #define OS_VI_PAL_LAN2 20
106 #define OS_VI_PAL_LAF2 21
107 #define OS_VI_PAL_HPN1 22
108 #define OS_VI_PAL_HPF1 23
109 #define OS_VI_PAL_HAN1 24
110 #define OS_VI_PAL_HAF1 25
111 #define OS_VI_PAL_HPN2 26
112 #define OS_VI_PAL_HPF2 27
113 
114 extern OSViMode osViModeTable[]; /* Global VI mode table */
115 
116 
117 #endif
s32 OSPri
Definition: os_thread.h:21
void osCreateViManager(OSPri pri)
Definition: osCreateViManager.c:22
void osViSetSpecialFeatures(u32 func)
Definition: osViSetSpecialFeatures.c:5
OSViMode osViModeTable[]
Definition: osViTable.c:3
void osViBlack(u8 active)
Definition: osViBlack.c:6
void osViSetMode(OSViMode *mode)
Definition: osViSetMode.c:5
void osViSetEvent(OSMesgQueue *mq, OSMesg msg, u32 retraceCount)
Definition: osViSetEvent.c:5
void osViSwapBuffer(void *vaddr)
Definition: osViSwapBuffer.c:5
Definition: os_vi.h:31
u32 hStart
Definition: os_vi.h:38
u32 xScale
Definition: os_vi.h:39
u32 ctrl
Definition: os_vi.h:32
u32 width
Definition: os_vi.h:33
u32 vSync
Definition: os_vi.h:35
u32 hSync
Definition: os_vi.h:36
u32 burst
Definition: os_vi.h:34
u32 leap
Definition: os_vi.h:37
u32 vCurrent
Definition: os_vi.h:40
Definition: os_vi.h:60
OSViMode * modep
Definition: os_vi.h:64
u16 unk00
Definition: os_vi.h:61
u32 features
Definition: os_vi.h:65
OSMesgQueue * mq
Definition: os_vi.h:66
OSMesg * msg
Definition: os_vi.h:67
u16 retraceCount
Definition: os_vi.h:62
void * buffer
Definition: os_vi.h:63
u32 unk20
Definition: os_vi.h:70
u16 unk28
Definition: os_vi.h:72
u32 unk1c
Definition: os_vi.h:69
u32 unk18
Definition: os_vi.h:68
f32 unk24
Definition: os_vi.h:71
u32 unk2c
Definition: os_vi.h:73
Definition: os_vi.h:44
u32 vBurst
Definition: os_vi.h:48
u32 yScale
Definition: os_vi.h:46
u32 vIntr
Definition: os_vi.h:49
u32 vStart
Definition: os_vi.h:47
u32 origin
Definition: os_vi.h:45
Definition: os_vi.h:53
u8 type
Definition: os_vi.h:54
OSViCommonRegs comRegs
Definition: os_vi.h:55
unsigned int u32
Definition: ultratypes.h:16
float f32
Definition: ultratypes.h:32
unsigned short int u16
Definition: ultratypes.h:14
unsigned char u8
Definition: ultratypes.h:12