YM2608-LLE, part 11

now with per-channel osc
This commit is contained in:
tildearrow 2024-04-28 02:21:31 -05:00
parent ff9d5370c5
commit 4fab971b7d
4 changed files with 79 additions and 50 deletions

View file

@ -2430,10 +2430,11 @@ void FMOPNA_2612_Clock(fmopna_2612_t* chip, int clk)
};
// tildearrow: per-channel oscilloscope for SSG
chip->o_analog = 0;
chip->o_analog += volume_lut[sign_a ? 0 : vol_a];
chip->o_analog += volume_lut[sign_b ? 0 : vol_b];
chip->o_analog += volume_lut[sign_c ? 0 : vol_c];
chip->o_analog += chip->o_analog_ch[0] = volume_lut[sign_a ? 0 : vol_a];
chip->o_analog += chip->o_analog_ch[1] = volume_lut[sign_b ? 0 : vol_b];
chip->o_analog += chip->o_analog_ch[2] = volume_lut[sign_c ? 0 : vol_c];
}
{
@ -5368,6 +5369,8 @@ void FMOPNA_2612_Clock(fmopna_2612_t* chip, int clk)
chip->ac_rss_load = chip->rss_cnt2[1] == 0;
// tildearrow: per-channel osc
chip->last_rss_sample = rss_sample & 0xffff;
}
if (chip->rss_eclk2)
{

View file

@ -845,6 +845,8 @@ typedef struct {
int sh1_l;
int sh2_l;
int opo_fm;
int last_rss_sample;
#endif
int busy_cnt[2];
@ -932,6 +934,7 @@ typedef struct {
#ifndef FMOPNA_YM2612
float o_analog;
float o_analog_ch[3];
int o_sh1;
int o_sh2;
int o_opo;