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);
}
int DivPlatformGenesis::getPortaFloor(int ch) {
return (ch>5)?12:0;
}
void DivPlatformGenesis::setFlags(unsigned int flags) {
if (flags==2) {
chipClock=8000000.0;

View file

@ -85,6 +85,7 @@ class DivPlatformGenesis: public DivDispatch {
void setFlags(unsigned int flags);
void notifyInsChange(int ins);
void notifyInsDeletion(void* ins);
int getPortaFloor(int ch);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~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) {
DivPlatformGenesis::init(parent,channels,sugRate,flags);
for (int i=0; i<4; i++) {

View file

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

View file

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