Mercurial > repos > blastem
comparison ym2612.h @ 1902:32a3aa7b4a45
Fix YM2612 busy flag timing
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 24 Feb 2020 20:06:29 -0800 |
parents | e77f7a7c79a5 |
children | 8312e574100a |
comparison
equal
deleted
inserted
replaced
1901:5433252329fb | 1902:32a3aa7b4a45 |
---|---|
67 | 67 |
68 typedef struct { | 68 typedef struct { |
69 audio_source *audio; | 69 audio_source *audio; |
70 uint32_t clock_inc; | 70 uint32_t clock_inc; |
71 uint32_t current_cycle; | 71 uint32_t current_cycle; |
72 //TODO: Condense the next two fields into one | |
73 uint32_t write_cycle; | 72 uint32_t write_cycle; |
73 uint32_t busy_start; | |
74 uint32_t busy_cycles; | 74 uint32_t busy_cycles; |
75 int32_t volume_mult; | 75 int32_t volume_mult; |
76 int32_t volume_div; | 76 int32_t volume_div; |
77 ym_operator operators[NUM_OPERATORS]; | 77 ym_operator operators[NUM_OPERATORS]; |
78 ym_channel channels[NUM_CHANNELS]; | 78 ym_channel channels[NUM_CHANNELS]; |
132 void ym_init(ym2612_context * context, uint32_t master_clock, uint32_t clock_div, uint32_t options); | 132 void ym_init(ym2612_context * context, uint32_t master_clock, uint32_t clock_div, uint32_t options); |
133 void ym_reset(ym2612_context *context); | 133 void ym_reset(ym2612_context *context); |
134 void ym_free(ym2612_context *context); | 134 void ym_free(ym2612_context *context); |
135 void ym_enable_zero_offset(ym2612_context *context, uint8_t enabled); | 135 void ym_enable_zero_offset(ym2612_context *context, uint8_t enabled); |
136 void ym_adjust_master_clock(ym2612_context * context, uint32_t master_clock); | 136 void ym_adjust_master_clock(ym2612_context * context, uint32_t master_clock); |
137 void ym_adjust_cycles(ym2612_context *context, uint32_t deduction); | |
137 void ym_run(ym2612_context * context, uint32_t to_cycle); | 138 void ym_run(ym2612_context * context, uint32_t to_cycle); |
138 void ym_address_write_part1(ym2612_context * context, uint8_t address); | 139 void ym_address_write_part1(ym2612_context * context, uint8_t address); |
139 void ym_address_write_part2(ym2612_context * context, uint8_t address); | 140 void ym_address_write_part2(ym2612_context * context, uint8_t address); |
140 void ym_data_write(ym2612_context * context, uint8_t value); | 141 void ym_data_write(ym2612_context * context, uint8_t value); |
141 uint8_t ym_read_status(ym2612_context * context); | 142 uint8_t ym_read_status(ym2612_context * context, uint32_t cycle); |
142 uint8_t ym_load_gst(ym2612_context * context, FILE * gstfile); | 143 uint8_t ym_load_gst(ym2612_context * context, FILE * gstfile); |
143 uint8_t ym_save_gst(ym2612_context * context, FILE * gstfile); | 144 uint8_t ym_save_gst(ym2612_context * context, FILE * gstfile); |
144 void ym_print_channel_info(ym2612_context *context, int channel); | 145 void ym_print_channel_info(ym2612_context *context, int channel); |
145 void ym_print_timer_info(ym2612_context *context); | 146 void ym_print_timer_info(ym2612_context *context); |
146 void ym_serialize(ym2612_context *context, serialize_buffer *buf); | 147 void ym_serialize(ym2612_context *context, serialize_buffer *buf); |