C64: finish it all
all modules play correctly, bar: - motherfunksignal (almost) - filters are a bit weird
This commit is contained in:
parent
c26bb511d7
commit
3ee761fc87
13 changed files with 246 additions and 36 deletions
|
|
@ -7,10 +7,11 @@
|
|||
|
||||
class DivPlatformC64: public DivDispatch {
|
||||
struct Channel {
|
||||
int freq, baseFreq, pitch, prevFreq, testWhen;
|
||||
unsigned char ins, note, sweep, wave;
|
||||
int freq, baseFreq, pitch, prevFreq, testWhen, note;
|
||||
unsigned char ins, sweep, wave, attack, decay, sustain, release;
|
||||
short duty;
|
||||
bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta;
|
||||
bool active, insChanged, freqChanged, sweepChanged, keyOn, keyOff, inPorta, filter;
|
||||
bool resetMask, resetFilter, resetDuty, ring, sync;
|
||||
signed char vol, outVol;
|
||||
DivMacroInt std;
|
||||
Channel():
|
||||
|
|
@ -19,10 +20,14 @@ class DivPlatformC64: public DivDispatch {
|
|||
pitch(0),
|
||||
prevFreq(65535),
|
||||
testWhen(0),
|
||||
ins(-1),
|
||||
note(0),
|
||||
ins(-1),
|
||||
sweep(0),
|
||||
wave(0),
|
||||
attack(0),
|
||||
decay(0),
|
||||
sustain(0),
|
||||
release(0),
|
||||
duty(0),
|
||||
active(false),
|
||||
insChanged(true),
|
||||
|
|
@ -31,13 +36,22 @@ class DivPlatformC64: public DivDispatch {
|
|||
keyOn(false),
|
||||
keyOff(false),
|
||||
inPorta(false),
|
||||
filter(false),
|
||||
resetMask(false),
|
||||
resetFilter(false),
|
||||
resetDuty(false),
|
||||
ring(false),
|
||||
sync(false),
|
||||
vol(15) {}
|
||||
};
|
||||
Channel chan[3];
|
||||
|
||||
unsigned char filtControl, filtRes, vol;
|
||||
int filtCut, resetTime;
|
||||
|
||||
SID sid;
|
||||
|
||||
void updateWave();
|
||||
void updateFilter();
|
||||
public:
|
||||
void acquire(short* bufL, short* bufR, size_t start, size_t len);
|
||||
int dispatch(DivCommand c);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue