Add LFSR feedback bits, 1-bit noise and wave mix mode macros. I hope I am done with main macros now

This commit is contained in:
LTVA1 2024-08-05 15:50:48 +03:00
parent 2fb518231a
commit bfbc92e1f3
6 changed files with 145 additions and 9 deletions

View file

@ -37,8 +37,9 @@ class DivPlatformSID3: public DivDispatch {
unsigned char mix_mode;
unsigned char ringSrc, syncSrc, phaseSrc;
unsigned char panLeft, panRight;
unsigned int noiseFreq;
int noiseFreq;
bool independentNoiseFreq;
unsigned int noiseLFSRMask;
struct Filter
{
@ -154,7 +155,8 @@ class DivPlatformSID3: public DivDispatch {
panLeft(0xff),
panRight(0xff),
noiseFreq(0),
independentNoiseFreq(false) {}
independentNoiseFreq(false),
noiseLFSRMask((1 << 29) | (1 << 5) | (1 << 3) | 1) {} //https://docs.amd.com/v/u/en-US/xapp052 for 30 bits: 30, 6, 4, 1
};
Channel chan[SID3_NUM_CHANNELS];
DivDispatchOscBuffer* oscBuf[SID3_NUM_CHANNELS];
@ -180,9 +182,11 @@ class DivPlatformSID3: public DivDispatch {
void updateFilter(int channel, int filter);
void updateFreq(int channel);
void updateNoiseFreq(int channel);
void updateNoiseLFSRMask(int channel);
void updateDuty(int channel);
void updateEnvelope(int channel);
void updatePanning(int channel);
public:
void acquire(short** buf, size_t len);
int dispatch(DivCommand c);