Mercurial > repos > blastem
comparison 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 |
comparison
equal
deleted
inserted
replaced
1089:87597a048d38 | 1090:a68274a25e2f |
---|---|
48 JAG_VIDEO_REGS | 48 JAG_VIDEO_REGS |
49 }; | 49 }; |
50 #define LINEBUFFER_WORDS 720 | 50 #define LINEBUFFER_WORDS 720 |
51 | 51 |
52 typedef struct { | 52 typedef struct { |
53 uint32_t *output; | 53 uint64_t im_data; |
54 uint32_t output_pitch; | 54 uint64_t prefetch; |
55 uint16_t regs[JAG_VIDEO_REGS]; | 55 uint32_t cycles; |
56 uint32_t obj_start; | |
57 uint32_t link; | |
58 uint32_t data_address; | |
59 uint32_t cur_address; | |
60 uint32_t increment; | |
61 uint32_t line_pitch; | |
62 uint32_t lb_offset; | |
63 int16_t xpos; | |
64 uint16_t ypos; | |
65 uint16_t height; | |
66 int16_t hscale; | |
67 int16_t vscale; | |
68 int16_t hremainder; | |
69 int16_t remainder; | |
70 uint8_t bpp; | |
71 uint8_t line_phrases; | |
72 uint8_t state; | |
73 uint8_t type; | |
74 uint8_t im_bits; | |
75 uint8_t pal_offset; | |
76 uint8_t has_prefetch; | |
77 uint8_t hflip; | |
78 uint8_t addpixels; | |
79 uint8_t transparent; | |
80 uint8_t leftclip; | |
81 } object_processor; | |
82 | |
83 typedef struct { | |
84 void *system; | |
85 uint32_t *output; | |
86 uint32_t output_pitch; | |
87 uint16_t regs[JAG_VIDEO_REGS]; | |
56 | 88 |
57 uint16_t clut[256]; | 89 uint16_t clut[256]; |
58 uint16_t line_buffer_a[LINEBUFFER_WORDS]; | 90 uint16_t line_buffer_a[LINEBUFFER_WORDS]; |
59 uint16_t line_buffer_b[LINEBUFFER_WORDS]; | 91 uint16_t line_buffer_b[LINEBUFFER_WORDS]; |
60 uint16_t *write_line_buffer; | 92 uint16_t *write_line_buffer; |
61 | 93 |
62 uint32_t cycles; | 94 uint32_t cycles; |
63 uint8_t pclock_div; | 95 uint32_t op_cycles; |
64 uint8_t pclock_counter; | 96 uint8_t pclock_div; |
65 uint8_t mode; | 97 uint8_t pclock_counter; |
98 uint8_t mode; | |
99 | |
100 object_processor op; | |
101 | |
66 } jag_video; | 102 } jag_video; |
67 | 103 |
68 | 104 |
69 jag_video *jag_video_init(void); | 105 jag_video *jag_video_init(void); |
70 void jag_video_run(jag_video *context, uint32_t target_cycle); | 106 void jag_video_run(jag_video *context, uint32_t target_cycle); |