genesis extended channel 3 support.

as of today Furnace is able to play most Genesis songs without trouble.
bugs are expected, and fixes will arrive.

are you ready?
This commit is contained in:
tildearrow 2021-05-18 16:02:49 -05:00
parent d9c02531e8
commit 09ed99f0b0
6 changed files with 261 additions and 44 deletions

View file

@ -3,17 +3,17 @@
#include "genesis.h"
class DivPlatformGenesisExt: public DivPlatformGenesis {
struct Channel {
struct OpChannel {
unsigned char freqH, freqL;
int freq, baseFreq, pitch;
unsigned char ins;
signed char konCycles;
bool active, insChanged, freqChanged, keyOn, keyOff;
signed char vol;
int vol;
unsigned char pan;
Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), vol(0), pan(3) {}
OpChannel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), vol(0), pan(3) {}
};
Channel opChan[4];
OpChannel opChan[4];
public:
int dispatch(DivCommand c);
void tick();