mirror of
https://github.com/zeldaret/ss
synced 2026-05-25 15:25:13 -04:00
26af4db82d
* update from dtk-template and start work towards using clangd * include <a> -> "a" * Update build.yml * remove/add non-trivial class in union warning
95 lines
5.5 KiB
C
95 lines
5.5 KiB
C
#ifndef RVL_SDK_VI_H
|
|
#define RVL_SDK_VI_H
|
|
#include "common.h"
|
|
#include "rvl/GX.h" // IWYU pragma: export
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Merge format/mode to one value for TV info (see GXRenderModeObj)
|
|
#define VI_TV_INFO(format, mode) (((format) << 2) + (mode))
|
|
// Get TV format from TV info
|
|
#define VI_TV_INFO_FMT(info) ((info) >> 2)
|
|
// Get TV scan mode from TV info
|
|
#define VI_TV_INFO_MODE(info) ((info) & 0b00000011)
|
|
|
|
typedef enum {
|
|
VI_TV_FMT_NTSC,
|
|
VI_TV_FMT_PAL,
|
|
VI_TV_FMT_MPAL,
|
|
VI_TV_FMT_DEBUG,
|
|
VI_TV_FMT_DEBUG_PAL,
|
|
VI_TV_FMT_EURGB60,
|
|
VI_TV_FMT_6,
|
|
VI_TV_FMT_7,
|
|
VI_TV_FMT_8,
|
|
} VITvFormat;
|
|
|
|
typedef enum VIScanMode {
|
|
VI_SCAN_MODE_NON_INT,
|
|
VI_SCAN_MODE_INT,
|
|
VI_SCAN_MODE_PROG,
|
|
VI_SCAN_MODE_3,
|
|
} VIScanMode;
|
|
|
|
typedef enum VIXfbMode {
|
|
VI_XFB_MODE_SF,
|
|
VI_XFB_MODE_DF,
|
|
} VIXfbMode;
|
|
|
|
typedef void (*VIRetraceCallback)(u32 retraceCount);
|
|
typedef void (*VIPositionCallback)(s16 displayX, s16 displayY);
|
|
|
|
/* */ void getEncoderType();
|
|
/* 803b34a0 */ void OnShutdown(); // ret unk, params unk
|
|
/* */ void cntlzd(); // ret unk, params unk
|
|
/* */ void VISetRegs(); // ret unk, params unk
|
|
/* 803b3640 */ void __VIRetraceHandler(); // ret unk,params unk
|
|
/* 803b3e50 */ VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback callback); // good
|
|
/* 803b3ea0 */ VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback callback); // good
|
|
/* */ void __VISetExtraTiming(); // ret unk, params unk
|
|
/* 803b3ef0 */ void getTiming(); // ret unk, params unk
|
|
/* 803b4010 */ void __VIInit(u32); // ret unk, params unk
|
|
/* */ void AdjustPosition(); // ret unk, params unk
|
|
/* */ void ImportAdjustingValues(); // ret unk, params unk
|
|
/* 803b4210 */ void VIInit(void); // good
|
|
/* 803b4760 */ void VIWaitForRetrace(void); // good
|
|
/* */ void setInterruptRegs(); // ret unk, params unk
|
|
/* */ void setPicConfig(); // ret unk, params unk
|
|
/* */ void setBBIntervalRegs(); // ret unk, params unk
|
|
/* */ void setScalingRegs(); // ret unk, params unk
|
|
/* */ void calcFbbs(); // ret unk, params unk
|
|
/* 803b47c0? */ void setFbbRegs(); // params unk
|
|
/* 803b4a70? */ void setHorizontalRegs(); // params unk
|
|
/* 803b4b50? */ void setVerticalRegs(); // params unk
|
|
/* 803b4cf0 */ void VIConfigure(const GXRenderModeObj *rmo); // good
|
|
/* 803b53c0 */ void VIConfigurePan(u16 x, u16 y, u16 w, u16 h); // good
|
|
/* 803b5720 */ void VIFlush(); // good
|
|
/* 803b5840 */ void VISetNextFrameBuffer(void *fb); // good
|
|
/* */ void VIGetNextFrameBuffer(); // ret unk, params unk
|
|
/* 803b58b0 */ void *VIGetCurrentFrameBuffer(); // good
|
|
/* */ void VISetNextRightFrameBuffer(); // ret unk, params unk
|
|
/* 803b58c0 */ void VISetBlack(BOOL black); // good
|
|
/* */ void VISet3D(); // ret unk, params unk
|
|
/* 803b5940 */ s32 VIGetRetraceCount(void); // good
|
|
/* 803b5950 */ u32 VIGetNextField(); // ret unk
|
|
/* 803b59f0 */ u32 VIGetCurrentLine(); // ret unk
|
|
/* 803b5a80 */ VITvFormat VIGetTvFormat(void); // good
|
|
/* */ VIScanMode VIGetScanMode(void); // good
|
|
/* 803b5ae0 */ int VIGetDTVStatus(); // ret unk
|
|
/* */ void VIGetVSyncTimingTest(); // ret, params unk
|
|
/* */ void VISetVSyncTimingTest(); // ret, params unk
|
|
/* */ void VIGetDimmingCount(); // ret, params unk
|
|
/* */ void VIGetDVDStopMotorCount(); // ret, params unk
|
|
/* 803b5d60 */ int VIEnableDimming(int); // ret unk, params unk
|
|
/* 803b5dc0 */ int VISetTimeToDimming(int); // ret unk, params unk
|
|
/* 803b5ec0 */ int VIResetDimmingCount(); // ret unk
|
|
/* */ void VIEnableDVDStopMotor(); // ret, params unk
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|