summaryrefslogtreecommitdiff
path: root/jag_video.h
diff options
context:
space:
mode:
Diffstat (limited to 'jag_video.h')
-rw-r--r--jag_video.h54
1 files changed, 52 insertions, 2 deletions
diff --git a/jag_video.h b/jag_video.h
index 0555712..4cef19e 100644
--- a/jag_video.h
+++ b/jag_video.h
@@ -1,7 +1,52 @@
#ifndef JAG_VIDEO_H_
#define JAG_VIDEO_H_
-#define JAG_VIDEO_REGS 0x2E
+enum {
+ VID_HCOUNT,
+ VID_VCOUNT,
+ VID_HLPEN,
+ VID_VLPEN,
+ VID_REG_C,
+ VID_REG_E,
+ VID_OBJ0,
+ VID_OBJ1,
+ VID_OBJ2,
+ VID_OBJ3,
+ VID_REG_18,
+ VID_REG_1A,
+ VID_REG_1C,
+ VID_REG_1E,
+ VID_OBJLIST1,
+ VID_OBJLIST2,
+ VID_REG_24,
+ VID_OBJFLAG,
+ VID_VMODE,
+ VID_BORDER_RG,
+ VID_BORDER_B,
+ VID_HPERIOD,
+ VID_HBLANK_BEGIN,
+ VID_HBLANK_END,
+ VID_HSYNC,
+ VID_HVSYNC,
+ VID_HDISP_BEGIN1,
+ VID_HDISP_BEGIN2,
+ VID_HDISP_END,
+ VID_VPERIOD,
+ VID_VBLANK_BEGIN,
+ VID_VBLANK_END,
+ VID_VSYNC,
+ VID_VDISP_BEGIN,
+ VID_VDISP_END,
+ VID_VEQUAL_BEGIN,
+ VID_VEQUAL_END,
+ VID_VINT,
+ VID_PIT0,
+ VID_PIT1,
+ VID_HEQUAL_END,
+ VID_REG_56,
+ VID_BGCOLOR,
+ JAG_VIDEO_REGS
+};
#define LINEBUFFER_WORDS 720
typedef struct {
@@ -13,10 +58,15 @@ typedef struct {
uint16_t *write_line_buffer;
uint16_t *read_line_buffer;
- uint32_t cycles;
+ uint32_t cycles;
+ uint8_t pclock_div;
+ uint8_t pclock_counter;
+ uint8_t mode;
} jag_video;
+
jag_video *jag_video_init(void);
void jag_video_run(jag_video *context, uint32_t target_cycle);
+void jag_video_reg_write(jag_video *context, uint32_t address, uint16_t value);
#endif //JAG_VIDEO_H_