diff options
author | Mike Pavone <pavone@retrodev.com> | 2012-12-18 02:16:42 -0800 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2012-12-18 02:16:42 -0800 |
commit | 0a4dc409df4784b0d115755772c123e6a1adc3e6 (patch) | |
tree | cd4d6b595e1d7ac6124cab70e3a2f726241c9cad /vdp.h | |
parent | b13bafe99c81764a0895add77a6b16361cdc8e1f (diff) |
Get Flavio's color bar demo kind of sort of working
Diffstat (limited to 'vdp.h')
-rw-r--r-- | vdp.h | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -26,6 +26,8 @@ #define FBUF_SRC_S 0x6000 #define FBUF_SRC_BG 0x8000 +#define MCLKS_LINE 3420 + enum { REG_MODE_1=0, REG_MODE_2, @@ -58,6 +60,17 @@ typedef struct { } sprite_info; typedef struct { + uint32_t cycle; + uint16_t value; + uint8_t partial; +} fifo_entry; + +typedef struct { + fifo_entry *fifo_cur; + fifo_entry *fifo_end; + uint16_t address; + uint8_t cd; + uint8_t flags; //cycle count in MCLKs uint32_t cycles; uint8_t *vdpmem; @@ -80,7 +93,6 @@ typedef struct { uint16_t col_1; uint16_t col_2; uint8_t v_offset; - uint8_t flags; uint8_t *tmp_buf_a; uint8_t *tmp_buf_b; } vdp_context; @@ -90,5 +102,9 @@ void vdp_run_context(vdp_context * context, uint32_t target_cycles); //runs from current cycle count to VBLANK for the current mode, returns ending cycle count uint32_t vdp_run_to_vblank(vdp_context * context); void vdp_load_savestate(vdp_context * context, FILE * state_file); +void vdp_control_port_write(vdp_context * context, uint16_t value); +void vdp_data_port_write(vdp_context * context, uint16_t value); +uint16_t vdp_control_port_read(vdp_context * context); +uint16_t vdp_data_port_read(vdp_context * context); #endif //VDP_H_ |