Mercurial > repos > blastem
comparison ym2612.h @ 1842:49f65d240299 mame_interp
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 14 Apr 2019 23:38:02 -0700 |
parents | ce6881d64eef |
children | 4c322abd9fa5 |
comparison
equal
deleted
inserted
replaced
1787:0c6d07f91346 | 1842:49f65d240299 |
---|---|
37 typedef struct { | 37 typedef struct { |
38 FILE * logfile; | 38 FILE * logfile; |
39 uint16_t fnum; | 39 uint16_t fnum; |
40 int16_t output; | 40 int16_t output; |
41 int16_t op1_old; | 41 int16_t op1_old; |
42 int16_t op2_old; | |
42 uint8_t block_fnum_latch; | 43 uint8_t block_fnum_latch; |
43 uint8_t block; | 44 uint8_t block; |
44 uint8_t keycode; | 45 uint8_t keycode; |
45 uint8_t algorithm; | 46 uint8_t algorithm; |
46 uint8_t feedback; | 47 uint8_t feedback; |
68 uint32_t clock_inc; | 69 uint32_t clock_inc; |
69 uint32_t current_cycle; | 70 uint32_t current_cycle; |
70 //TODO: Condense the next two fields into one | 71 //TODO: Condense the next two fields into one |
71 uint32_t write_cycle; | 72 uint32_t write_cycle; |
72 uint32_t busy_cycles; | 73 uint32_t busy_cycles; |
73 uint32_t lowpass_alpha; | 74 int32_t volume_mult; |
75 int32_t volume_div; | |
74 ym_operator operators[NUM_OPERATORS]; | 76 ym_operator operators[NUM_OPERATORS]; |
75 ym_channel channels[NUM_CHANNELS]; | 77 ym_channel channels[NUM_CHANNELS]; |
78 int16_t zero_offset; | |
76 uint16_t timer_a; | 79 uint16_t timer_a; |
77 uint16_t timer_a_load; | 80 uint16_t timer_a_load; |
78 uint16_t env_counter; | 81 uint16_t env_counter; |
79 ym_supp ch3_supp[3]; | 82 ym_supp ch3_supp[3]; |
80 uint8_t timer_b; | 83 uint8_t timer_b; |
126 }; | 129 }; |
127 | 130 |
128 void ym_init(ym2612_context * context, uint32_t master_clock, uint32_t clock_div, uint32_t options); | 131 void ym_init(ym2612_context * context, uint32_t master_clock, uint32_t clock_div, uint32_t options); |
129 void ym_reset(ym2612_context *context); | 132 void ym_reset(ym2612_context *context); |
130 void ym_free(ym2612_context *context); | 133 void ym_free(ym2612_context *context); |
134 void ym_enable_zero_offset(ym2612_context *context, uint8_t enabled); | |
131 void ym_adjust_master_clock(ym2612_context * context, uint32_t master_clock); | 135 void ym_adjust_master_clock(ym2612_context * context, uint32_t master_clock); |
132 void ym_run(ym2612_context * context, uint32_t to_cycle); | 136 void ym_run(ym2612_context * context, uint32_t to_cycle); |
133 void ym_address_write_part1(ym2612_context * context, uint8_t address); | 137 void ym_address_write_part1(ym2612_context * context, uint8_t address); |
134 void ym_address_write_part2(ym2612_context * context, uint8_t address); | 138 void ym_address_write_part2(ym2612_context * context, uint8_t address); |
135 void ym_data_write(ym2612_context * context, uint8_t value); | 139 void ym_data_write(ym2612_context * context, uint8_t value); |