mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
* Fix many warnings, mostly when using functions without including headers, and mostly in libultra files. Included a few warning ignores as well * Add another warning fix * Revert trailing comma for LogicUpdateRates
142 lines
3.3 KiB
C
142 lines
3.3 KiB
C
#ifndef _ULTRA64_VI_H_
|
|
#define _ULTRA64_VI_H_
|
|
|
|
/* Ultra64 Video Interface */
|
|
|
|
|
|
/*
|
|
* Video Interface (VI) special features
|
|
*/
|
|
#define OS_VI_GAMMA_ON 0x0001
|
|
#define OS_VI_GAMMA_OFF 0x0002
|
|
#define OS_VI_GAMMA_DITHER_ON 0x0004
|
|
#define OS_VI_GAMMA_DITHER_OFF 0x0008
|
|
#define OS_VI_DIVOT_ON 0x0010
|
|
#define OS_VI_DIVOT_OFF 0x0020
|
|
#define OS_VI_DITHER_FILTER_ON 0x0040
|
|
#define OS_VI_DITHER_FILTER_OFF 0x0080
|
|
|
|
/*
|
|
* Video Interface (VI) mode attribute bit
|
|
*/
|
|
#define OS_VI_BIT_NONINTERLACE 0x0001 /* lo-res */
|
|
#define OS_VI_BIT_INTERLACE 0x0002 /* lo-res */
|
|
#define OS_VI_BIT_NORMALINTERLACE 0x0004 /* hi-res */
|
|
#define OS_VI_BIT_DEFLICKINTERLACE 0x0008 /* hi-res */
|
|
#define OS_VI_BIT_ANTIALIAS 0x0010
|
|
#define OS_VI_BIT_POINTSAMPLE 0x0020
|
|
#define OS_VI_BIT_16PIXEL 0x0040
|
|
#define OS_VI_BIT_32PIXEL 0x0080
|
|
#define OS_VI_BIT_LORES 0x0100
|
|
#define OS_VI_BIT_HIRES 0x0200
|
|
#define OS_VI_BIT_NTSC 0x0400
|
|
#define OS_VI_BIT_PAL 0x0800
|
|
|
|
|
|
/* Types */
|
|
|
|
typedef struct
|
|
{
|
|
u32 ctrl;
|
|
u32 width;
|
|
u32 burst;
|
|
u32 vSync;
|
|
u32 hSync;
|
|
u32 leap;
|
|
u32 hStart;
|
|
u32 xScale;
|
|
u32 vCurrent;
|
|
} OSViCommonRegs;
|
|
|
|
typedef struct
|
|
{
|
|
u32 origin;
|
|
u32 yScale;
|
|
u32 vStart;
|
|
u32 vBurst;
|
|
u32 vIntr;
|
|
} OSViFieldRegs;
|
|
|
|
typedef struct
|
|
{
|
|
u8 type;
|
|
OSViCommonRegs comRegs;
|
|
OSViFieldRegs fldRegs[2];
|
|
} OSViMode;
|
|
|
|
typedef struct
|
|
{
|
|
/* 0x00 */ u16 unk00; //some kind of flags. swap buffer sets to 0x10
|
|
/* 0x02 */ u16 retraceCount;
|
|
/* 0x04 */ void* buffer;
|
|
/* 0x08 */ OSViMode *unk08;
|
|
/* 0x0c */ u32 features;
|
|
/* 0x10 */ OSMesgQueue *mq;
|
|
/* 0x14 */ OSMesg *msg;
|
|
/* 0x18 */ u32 unk18;
|
|
/* 0x1c */ u32 unk1c;
|
|
/* 0x20 */ u32 unk20;
|
|
/* 0x24 */ f32 unk24;
|
|
/* 0x28 */ u16 unk28;
|
|
/* 0x2c */ u32 unk2c;
|
|
} OSViContext;
|
|
|
|
void osCreateViManager(OSPri pri);
|
|
void osViSetMode(OSViMode *mode);
|
|
void osViSetEvent(OSMesgQueue *mq, OSMesg msg, u32 retraceCount);
|
|
void osViBlack(u8 active);
|
|
void osViSetSpecialFeatures(u32 func);
|
|
void osViSwapBuffer(void *vaddr);
|
|
void osYieldThread(void);
|
|
|
|
|
|
#define OS_VI_NTSC_LPN1 0 /* NTSC */
|
|
#define OS_VI_NTSC_LPF1 1
|
|
#define OS_VI_NTSC_LAN1 2
|
|
#define OS_VI_NTSC_LAF1 3
|
|
#define OS_VI_NTSC_LPN2 4
|
|
#define OS_VI_NTSC_LPF2 5
|
|
#define OS_VI_NTSC_LAN2 6
|
|
#define OS_VI_NTSC_LAF2 7
|
|
#define OS_VI_NTSC_HPN1 8
|
|
#define OS_VI_NTSC_HPF1 9
|
|
#define OS_VI_NTSC_HAN1 10
|
|
#define OS_VI_NTSC_HAF1 11
|
|
#define OS_VI_NTSC_HPN2 12
|
|
#define OS_VI_NTSC_HPF2 13
|
|
|
|
#define OS_VI_PAL_LPN1 14 /* PAL */
|
|
#define OS_VI_PAL_LPF1 15
|
|
#define OS_VI_PAL_LAN1 16
|
|
#define OS_VI_PAL_LAF1 17
|
|
#define OS_VI_PAL_LPN2 18
|
|
#define OS_VI_PAL_LPF2 19
|
|
#define OS_VI_PAL_LAN2 20
|
|
#define OS_VI_PAL_LAF2 21
|
|
#define OS_VI_PAL_HPN1 22
|
|
#define OS_VI_PAL_HPF1 23
|
|
#define OS_VI_PAL_HAN1 24
|
|
#define OS_VI_PAL_HAF1 25
|
|
#define OS_VI_PAL_HPN2 26
|
|
#define OS_VI_PAL_HPF2 27
|
|
|
|
#define OS_VI_MPAL_LPN1 28 /* MPAL - mainly Brazil */
|
|
#define OS_VI_MPAL_LPF1 29
|
|
#define OS_VI_MPAL_LAN1 30
|
|
#define OS_VI_MPAL_LAF1 31
|
|
#define OS_VI_MPAL_LPN2 32
|
|
#define OS_VI_MPAL_LPF2 33
|
|
#define OS_VI_MPAL_LAN2 34
|
|
#define OS_VI_MPAL_LAF2 35
|
|
#define OS_VI_MPAL_HPN1 36
|
|
#define OS_VI_MPAL_HPF1 37
|
|
#define OS_VI_MPAL_HAN1 38
|
|
#define OS_VI_MPAL_HAF1 39
|
|
#define OS_VI_MPAL_HPN2 40
|
|
#define OS_VI_MPAL_HPF2 41
|
|
|
|
extern OSViMode osViModeTable[]; /* Global VI mode table */
|
|
|
|
|
|
#endif
|