diff 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
line wrap: on
line diff
--- a/ym2612.h	Sun Feb 16 10:46:35 2020 -0800
+++ b/ym2612.h	Mon Feb 24 20:06:29 2020 -0800
@@ -69,8 +69,8 @@
 	audio_source *audio;
     uint32_t    clock_inc;
 	uint32_t    current_cycle;
-	//TODO: Condense the next two fields into one
 	uint32_t    write_cycle;
+	uint32_t    busy_start;
 	uint32_t    busy_cycles;
 	int32_t     volume_mult;
 	int32_t     volume_div;
@@ -134,11 +134,12 @@
 void ym_free(ym2612_context *context);
 void ym_enable_zero_offset(ym2612_context *context, uint8_t enabled);
 void ym_adjust_master_clock(ym2612_context * context, uint32_t master_clock);
+void ym_adjust_cycles(ym2612_context *context, uint32_t deduction);
 void ym_run(ym2612_context * context, uint32_t to_cycle);
 void ym_address_write_part1(ym2612_context * context, uint8_t address);
 void ym_address_write_part2(ym2612_context * context, uint8_t address);
 void ym_data_write(ym2612_context * context, uint8_t value);
-uint8_t ym_read_status(ym2612_context * context);
+uint8_t ym_read_status(ym2612_context * context, uint32_t cycle);
 uint8_t ym_load_gst(ym2612_context * context, FILE * gstfile);
 uint8_t ym_save_gst(ym2612_context * context, FILE * gstfile);
 void ym_print_channel_info(ym2612_context *context, int channel);