better volume slide accuracy

volume slide seems to be kind of quirky:
- sliding all the way down and then up suddenly sets the vol to max
- apparently there is an overflow and the slide stops when it reaches
  its boundaries (instead of continuing)
This commit is contained in:
tildearrow 2021-05-17 15:06:11 -05:00
parent 67847d79cf
commit 9736b77401
8 changed files with 36 additions and 8 deletions

View file

@ -32,6 +32,9 @@ int DivPlatformDummy::dispatch(DivCommand c) {
case DIV_CMD_GET_VOLUME:
return chan[c.chan].vol;
break;
case DIV_CMD_GET_VOLMAX:
return 15;
break;
default:
break;
}

View file

@ -301,6 +301,9 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
break;
}
case DIV_CMD_GET_VOLMAX:
return 127;
break;
default:
printf("WARNING: unimplemented command %d\n",c.cmd);
break;

View file

@ -20,6 +20,9 @@ int DivPlatformGenesisExt::dispatch(DivCommand c) {
case DIV_CMD_VOLUME:
chan[c.chan].vol=c.value;
break;
case DIV_CMD_GET_VOLMAX:
return 127;
break;
default:
break;
}
@ -35,4 +38,4 @@ int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate) {
extMode=true;
return 13;
}
}

View file

@ -144,6 +144,9 @@ int DivPlatformSMS::dispatch(DivCommand c) {
case DIV_CMD_PRE_PORTA:
chan[c.chan].std.init(parent->getIns(chan[c.chan].ins));
break;
case DIV_CMD_GET_VOLMAX:
return 15;
break;
default:
break;
}