Mario Kart 64
Loading...
Searching...
No Matches
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
42
51
52typedef struct
53{
56 OSViFieldRegs fldRegs[2];
57} OSViMode;
58
59typedef 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;
75
76void osCreateViManager(OSPri pri);
77void osViSetMode(OSViMode *mode);
78void osViSetEvent(OSMesgQueue *mq, OSMesg msg, u32 retraceCount);
79void osViBlack(u8 active);
81void 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
114extern 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:33
unsigned short int u16
Definition ultratypes.h:14
unsigned char u8
Definition ultratypes.h:12