Mercurial > repos > simple16
view src/vdp.h @ 21:91ded3b12d96
Only run rendering hardware when display is enabled
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 29 Mar 2016 19:59:26 -0700 |
parents | 04fc17376999 |
children | 407725d9a02f |
line wrap: on
line source
#ifndef VDP_H_ #define VDP_H_ typedef struct { uint16_t *framebuffer; uint8_t *drawbuffer; uint8_t *readbuffer; uint32_t cycles; uint32_t clock_inc; int pitch; uint16_t fifo; uint16_t dest_offset; uint16_t status; uint16_t vcounter; uint16_t hcounter; uint16_t vscroll; uint16_t hscroll; uint16_t draw_source; uint16_t draw_dest; uint16_t vram[32*512]; uint8_t linebuffers[328*2]; uint16_t sram[64*2]; uint16_t cram[64]; uint8_t fifo_dest; uint8_t draw_counter; uint8_t palpriority; } vdp; enum { FIFO_DEST_INVALID, FIFO_DEST_VRAM, FIFO_DEST_SRAM, FIFO_DEST_CRAM }; #define VDP_STATUS_FIFO 1 #define VDP_STATUS_VRAM 2 #define VDP_STATUS_SRAM 4 #define VDP_STATUS_ENABLED 8 void vdp_init(vdp *context, uint32_t clock_div); void vdp_run(vdp *context, uint32_t target); void vdp_write_address(vdp *context, uint16_t value); void vdp_write_data(vdp *context, uint16_t value); void vdp_write_hscroll(vdp *context, uint16_t value); #endif //VDP_H_