summaryrefslogtreecommitdiff
path: root/vdp.h
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2012-12-18 02:16:42 -0800
committerMike Pavone <pavone@retrodev.com>2012-12-18 02:16:42 -0800
commit0a4dc409df4784b0d115755772c123e6a1adc3e6 (patch)
treecd4d6b595e1d7ac6124cab70e3a2f726241c9cad /vdp.h
parentb13bafe99c81764a0895add77a6b16361cdc8e1f (diff)
Get Flavio's color bar demo kind of sort of working
Diffstat (limited to 'vdp.h')
-rw-r--r--vdp.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/vdp.h b/vdp.h
index 6c9bbf1..3016561 100644
--- a/vdp.h
+++ b/vdp.h
@@ -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_