10 #define VIDEO_MODE_16BPP_CRY 0
11 #define VIDEO_MODE_24BPP_RGB 1
12 #define VIDEO_MODE_16BPP_DIRECT 2
13 #define VIDEO_MODE_16BPP_RGB 3
15 // Virtual screen size stuff
17 // NB: This virtual width is for PWIDTH = 4
18 //#define VIRTUAL_SCREEN_WIDTH 320
20 #define VIRTUAL_SCREEN_WIDTH 326
21 #define VIRTUAL_SCREEN_HEIGHT_NTSC 240
22 #define VIRTUAL_SCREEN_HEIGHT_PAL 256
24 // 68000 Interrupt bit positions (enabled at $F000E0)
26 enum { IRQ_VIDEO
= 0, IRQ_GPU
, IRQ_OPFLAG
, IRQ_TIMER
, IRQ_DSP
};
32 uint8_t TOMReadByte(uint32_t offset
, uint32_t who
= UNKNOWN
);
33 uint16_t TOMReadWord(uint32_t offset
, uint32_t who
= UNKNOWN
);
34 void TOMWriteByte(uint32_t offset
, uint8_t data
, uint32_t who
= UNKNOWN
);
35 void TOMWriteWord(uint32_t offset
, uint16_t data
, uint32_t who
= UNKNOWN
);
37 void TOMExecHalfline(uint16_t halfline
, bool render
);
38 uint32_t TOMGetVideoModeWidth(void);
39 uint32_t TOMGetVideoModeHeight(void);
40 uint8_t TOMGetVideoMode(void);
41 uint8_t * TOMGetRamPointer(void);
42 uint16_t TOMGetHDB(void);
43 uint16_t TOMGetVDB(void);
44 uint16_t TOMGetHC(void);
45 uint16_t TOMGetVP(void);
46 uint16_t TOMGetMEMCON1(void);
47 void TOMDumpIORegistersToLog(void);
50 int TOMIRQEnabled(int irq
);
51 uint16_t TOMIRQControlReg(void);
52 void TOMSetIRQLatch(int irq
, int enabled
);
53 void TOMExecPIT(uint32_t cycles
);
54 void TOMSetPendingJERRYInt(void);
55 void TOMSetPendingTimerInt(void);
56 void TOMSetPendingObjectInt(void);
57 void TOMSetPendingGPUInt(void);
58 void TOMSetPendingVideoInt(void);
59 void TOMResetPIT(void);
63 extern uint32_t tomWidth
;
64 extern uint32_t tomHeight
;
65 extern uint8_t tomRam8
[];
66 extern uint32_t tomTimerPrescaler
;
67 extern uint32_t tomTimerDivider
;
68 extern int32_t tomTimerCounter
;
70 extern uint32_t screenPitch
;
71 extern uint32_t * screenBuffer
;