1 #ifndef __VB_VIP_H
2 #define __VB_VIP_H
3 
4 #include "../git.h"
5 #include "../state.h"
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 enum
12 {
13  VIP_GSREG_IPENDING = 0,	/* Current pending interrupt(bits) */
14  VIP_GSREG_IENABLE,
15 
16  VIP_GSREG_DPCTRL,
17 
18  VIP_GSREG_BRTA,
19  VIP_GSREG_BRTB,
20  VIP_GSREG_BRTC,
21  VIP_GSREG_REST,
22  VIP_GSREG_FRMCYC,
23  VIP_GSREG_XPCTRL,
24 
25  VIP_GSREG_SPT0,
26  VIP_GSREG_SPT1,
27  VIP_GSREG_SPT2,
28  VIP_GSREG_SPT3,
29 
30  VIP_GSREG_GPLT0,
31  VIP_GSREG_GPLT1,
32  VIP_GSREG_GPLT2,
33  VIP_GSREG_GPLT3,
34 
35  VIP_GSREG_JPLT0,
36  VIP_GSREG_JPLT1,
37  VIP_GSREG_JPLT2,
38  VIP_GSREG_JPLT3,
39 
40  VIP_GSREG_BKCOL
41 };
42 
43 bool VIP_Init(void) MDFN_COLD;
44 void VIP_Power(void) MDFN_COLD;
45 
46 void VIP_SetInstantDisplayHack(bool);
47 void VIP_SetAllowDrawSkip(bool);
48 void VIP_Set3DMode(uint32 mode, bool reverse, uint32 prescale, uint32 sbs_separation);
49 void VIP_SetParallaxDisable(bool disabled);
50 void VIP_SetDefaultColor(uint32 default_color);
51 void VIP_SetAnaglyphColors(uint32 lcolor, uint32 rcolor);	/* R << 16, G << 8, B << 0 */
52 
53 v810_timestamp_t MDFN_FASTCALL VIP_Update(const v810_timestamp_t timestamp);
54 void VIP_ResetTS(void);
55 
56 void VIP_StartFrame(EmulateSpecStruct *espec);
57 
58 uint8 VIP_Read8(v810_timestamp_t timestamp, uint32 A);
59 uint16 VIP_Read16(v810_timestamp_t timestamp, uint32 A);
60 
61 void VIP_Write8(v810_timestamp_t timestamp, uint32 A, uint8 V);
62 void VIP_Write16(v810_timestamp_t timestamp, uint32 A, uint16 V);
63 
64 int VIP_StateAction(StateMem *sm, int load, int data_only);
65 
66 uint32 VIP_GetRegister(const unsigned int id, char *special, const uint32 special_len);
67 void VIP_SetRegister(const unsigned int id, const uint32 value);
68 
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #endif
74