comparison ym2612.h @ 1300:4b893b02444e

Basic implementation of CSM mode that should handle documented edge cases. Dodesn't handle the weird undocumented edge cases I don't have a good understanding of yet though
author Michael Pavone <pavone@retrodev.com>
date Sat, 25 Mar 2017 15:41:52 -0700
parents 8d032a368dd5
children babff81e4cfd
comparison
equal deleted inserted replaced
1299:da1ffc4026c4 1300:4b893b02444e
40 uint8_t algorithm; 40 uint8_t algorithm;
41 uint8_t feedback; 41 uint8_t feedback;
42 uint8_t ams; 42 uint8_t ams;
43 uint8_t pms; 43 uint8_t pms;
44 uint8_t lr; 44 uint8_t lr;
45 uint8_t keyon;
45 } ym_channel; 46 } ym_channel;
46 47
47 typedef struct { 48 typedef struct {
48 uint16_t fnum; 49 uint16_t fnum;
49 uint8_t block; 50 uint8_t block;
91 uint8_t lfo_enable; 92 uint8_t lfo_enable;
92 uint8_t lfo_freq; 93 uint8_t lfo_freq;
93 uint8_t lfo_counter; 94 uint8_t lfo_counter;
94 uint8_t lfo_am_step; 95 uint8_t lfo_am_step;
95 uint8_t lfo_pm_step; 96 uint8_t lfo_pm_step;
97 uint8_t csm_keyon;
96 uint8_t status; 98 uint8_t status;
97 uint8_t selected_reg; 99 uint8_t selected_reg;
98 uint8_t selected_part; 100 uint8_t selected_part;
99 uint8_t part1_regs[YM_PART1_REGS]; 101 uint8_t part1_regs[YM_PART1_REGS];
100 uint8_t part2_regs[YM_PART2_REGS]; 102 uint8_t part2_regs[YM_PART2_REGS];