diff options
author | Michael Pavone <pavone@retrodev.com> | 2016-10-16 18:25:18 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2016-10-16 18:25:18 -0700 |
commit | cd98b3665144c7a5ac641afe0fa916830bd2f563 (patch) | |
tree | 3cb906e33ef08e6f9283f41953cdd75692eae04a /jag_video.h | |
parent | 4f1275708c60e7b582a3e5a02fac4ee0300a9999 (diff) |
Initial stab at implementing the Jaguar object processor
Diffstat (limited to 'jag_video.h')
-rw-r--r-- | jag_video.h | 58 |
1 files changed, 47 insertions, 11 deletions
diff --git a/jag_video.h b/jag_video.h index 95790ec..ff6c5f2 100644 --- a/jag_video.h +++ b/jag_video.h @@ -50,19 +50,55 @@ enum { #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; + + uint32_t cycles; + uint32_t op_cycles; + uint8_t pclock_div; + uint8_t pclock_counter; + uint8_t mode; - uint16_t clut[256]; - uint16_t line_buffer_a[LINEBUFFER_WORDS]; - uint16_t line_buffer_b[LINEBUFFER_WORDS]; - uint16_t *write_line_buffer; + object_processor op; - uint32_t cycles; - uint8_t pclock_div; - uint8_t pclock_counter; - uint8_t mode; } jag_video; |