per-channel oscilloscope, part 4

OPM, OPN2, OPLL and SN
plus hide unimplemented channels
This commit is contained in:
tildearrow 2022-04-30 22:59:26 -05:00
parent ddcd486c61
commit e1fd16637c
15 changed files with 143 additions and 24 deletions

8
extern/opm/opm.c vendored
View file

@ -1256,6 +1256,14 @@ static inline void OPM_Mixer(opm_t *chip)
}
chip->mix[0] += chip->op_mix * chip->op_mixl;
chip->mix[1] += chip->op_mix * chip->op_mixr;
if (slot<8) {
chip->op_chmix[slot&7]=0;
}
chip->op_chmix[slot&7]+=chip->op_mix*(chip->op_mixl|chip->op_mixr);
if (slot>=24) {
chip->ch_out[slot&7]=chip->op_chmix[slot&7];
}
}
static inline void OPM_Noise(opm_t *chip)

2
extern/opm/opm.h vendored
View file

@ -141,6 +141,7 @@ typedef struct {
int16_t op_fb[2];
uint8_t op_mixl;
uint8_t op_mixr;
uint16_t op_chmix[8];
// Mixer
@ -161,6 +162,7 @@ typedef struct {
uint8_t smp_so;
uint8_t smp_sh1;
uint8_t smp_sh2;
uint16_t ch_out[8];
// Noise
uint32_t noise_lfsr;