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);