fix two possible pitch slide regressions

now let's fix blue crow
This commit is contained in:
tildearrow 2022-01-30 15:55:31 -05:00
parent 5b2f776718
commit bf9eb8b0a4
5 changed files with 11 additions and 0 deletions

View file

@ -638,6 +638,10 @@ void DivPlatformGenesis::notifyInsDeletion(void* ins) {
psg.notifyInsDeletion(ins); psg.notifyInsDeletion(ins);
} }
int DivPlatformGenesis::getPortaFloor(int ch) {
return (ch>5)?12:0;
}
void DivPlatformGenesis::setFlags(unsigned int flags) { void DivPlatformGenesis::setFlags(unsigned int flags) {
if (flags==2) { if (flags==2) {
chipClock=8000000.0; chipClock=8000000.0;

View file

@ -85,6 +85,7 @@ class DivPlatformGenesis: public DivDispatch {
void setFlags(unsigned int flags); void setFlags(unsigned int flags);
void notifyInsChange(int ins); void notifyInsChange(int ins);
void notifyInsDeletion(void* ins); void notifyInsDeletion(void* ins);
int getPortaFloor(int ch);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags); int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit(); void quit();
~DivPlatformGenesis(); ~DivPlatformGenesis();

View file

@ -334,6 +334,10 @@ void DivPlatformGenesisExt::notifyInsChange(int ins) {
} }
} }
int DivPlatformGenesisExt::getPortaFloor(int ch) {
return (ch>8)?12:0;
}
int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate, unsigned int flags) { int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate, unsigned int flags) {
DivPlatformGenesis::init(parent,channels,sugRate,flags); DivPlatformGenesis::init(parent,channels,sugRate,flags);
for (int i=0; i<4; i++) { for (int i=0; i<4; i++) {

View file

@ -27,6 +27,7 @@ class DivPlatformGenesisExt: public DivPlatformGenesis {
bool keyOffAffectsArp(int ch); bool keyOffAffectsArp(int ch);
bool keyOffAffectsPorta(int ch); bool keyOffAffectsPorta(int ch);
void notifyInsChange(int ins); void notifyInsChange(int ins);
int getPortaFloor(int ch);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags); int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit(); void quit();
~DivPlatformGenesisExt(); ~DivPlatformGenesisExt();

View file

@ -685,6 +685,7 @@ void DivEngine::processRow(int i, bool afterDelay) {
chan[i].portaNote=-1; chan[i].portaNote=-1;
chan[i].portaSpeed=-1; chan[i].portaSpeed=-1;
chan[i].scheduledSlideReset=false; chan[i].scheduledSlideReset=false;
chan[i].inPorta=false;
} }
if (!chan[i].keyOn && chan[i].volume>chan[i].volMax) { if (!chan[i].keyOn && chan[i].volume>chan[i].volMax) {
chan[i].volume=chan[i].volMax; chan[i].volume=chan[i].volMax;