Mercurial > repos > blastem
diff jag_video.h @ 1090:a68274a25e2f
Initial stab at implementing the Jaguar object processor
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 16 Oct 2016 18:25:18 -0700 |
parents | 87597a048d38 |
children | faa3a4617f62 |
line wrap: on
line diff
--- a/jag_video.h Wed Oct 12 09:39:52 2016 -0700 +++ b/jag_video.h Sun Oct 16 18:25:18 2016 -0700 @@ -50,19 +50,55 @@ #define LINEBUFFER_WORDS 720 typedef struct { - uint32_t *output; - uint32_t output_pitch; - uint16_t regs[JAG_VIDEO_REGS]; + uint64_t im_data; + uint64_t prefetch; + uint32_t cycles; + uint32_t obj_start; + uint32_t link; + uint32_t data_address; + uint32_t cur_address; + uint32_t increment; + uint32_t line_pitch; + uint32_t lb_offset; + int16_t xpos; + uint16_t ypos; + uint16_t height; + int16_t hscale; + int16_t vscale; + int16_t hremainder; + int16_t remainder; + uint8_t bpp; + uint8_t line_phrases; + uint8_t state; + uint8_t type; + uint8_t im_bits; + uint8_t pal_offset; + uint8_t has_prefetch; + uint8_t hflip; + uint8_t addpixels; + uint8_t transparent; + uint8_t leftclip; +} object_processor; + +typedef struct { + void *system; + uint32_t *output; + uint32_t output_pitch; + uint16_t regs[JAG_VIDEO_REGS]; - uint16_t clut[256]; - uint16_t line_buffer_a[LINEBUFFER_WORDS]; - uint16_t line_buffer_b[LINEBUFFER_WORDS]; - uint16_t *write_line_buffer; + uint16_t clut[256]; + uint16_t line_buffer_a[LINEBUFFER_WORDS]; + uint16_t line_buffer_b[LINEBUFFER_WORDS]; + uint16_t *write_line_buffer; - uint32_t cycles; - uint8_t pclock_div; - uint8_t pclock_counter; - uint8_t mode; + uint32_t cycles; + uint32_t op_cycles; + uint8_t pclock_div; + uint8_t pclock_counter; + uint8_t mode; + + object_processor op; + } jag_video;