MSM5232: per-chan osc

This commit is contained in:
tildearrow 2022-10-04 02:35:32 -05:00
parent c2b75d26d7
commit 8ab0d28ace
3 changed files with 18 additions and 7 deletions

View file

@ -596,10 +596,10 @@ void msm5232_device::TG_group_advance(int groupidx)
/* calculate signed output */
if (!voi->mute) {
o16 += ( (out16-(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o8 += ( (out8 -(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o4 += ( (out4 -(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o2 += ( (out2 -(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o16 += vo16[groupidx*4+(4-i)] = ( (out16-(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o8 += vo8 [groupidx*4+(4-i)] = ( (out8 -(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o4 += vo4 [groupidx*4+(4-i)] = ( (out4 -(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
o2 += vo2 [groupidx*4+(4-i)] = ( (out2 -(1<<(STEP_SH-1))) * voi->egvol) >> STEP_SH;
if (i == 1 && groupidx == 1)
{

View file

@ -33,6 +33,11 @@ public:
int get_rate();
int vo16[8];
int vo8[8];
int vo4[8];
int vo2[8];
private:
struct VOICE {
uint8_t mode;