does not work
This commit is contained in:
parent
7cb1504215
commit
e07f9cd3f4
|
@ -452,6 +452,9 @@ static int opChanOffsH[4]={
|
||||||
};
|
};
|
||||||
|
|
||||||
void DivPlatformGenesisExt::tick(bool sysTick) {
|
void DivPlatformGenesisExt::tick(bool sysTick) {
|
||||||
|
int hardResetElapsed=0;
|
||||||
|
bool mustHardReset=false;
|
||||||
|
|
||||||
if (extMode) {
|
if (extMode) {
|
||||||
bool writeSomething=false;
|
bool writeSomething=false;
|
||||||
unsigned char writeMask=2;
|
unsigned char writeMask=2;
|
||||||
|
@ -462,6 +465,12 @@ void DivPlatformGenesisExt::tick(bool sysTick) {
|
||||||
writeMask&=~(1<<(4+i));
|
writeMask&=~(1<<(4+i));
|
||||||
opChan[i].keyOff=false;
|
opChan[i].keyOff=false;
|
||||||
}
|
}
|
||||||
|
if (opChan[i].hardReset && opChan[i].keyOn) {
|
||||||
|
mustHardReset=true;
|
||||||
|
unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[i];
|
||||||
|
immWrite(baseAddr+ADDR_SL_RR,0x0f);
|
||||||
|
hardResetElapsed++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (writeSomething) {
|
if (writeSomething) {
|
||||||
if (chan[csmChan].active) { // CSM
|
if (chan[csmChan].active) { // CSM
|
||||||
|
@ -630,6 +639,22 @@ void DivPlatformGenesisExt::tick(bool sysTick) {
|
||||||
(writeMask&0x80)?'4':'-'
|
(writeMask&0x80)?'4':'-'
|
||||||
);*/
|
);*/
|
||||||
immWrite(0x28,writeMask);
|
immWrite(0x28,writeMask);
|
||||||
|
|
||||||
|
// hard reset handling
|
||||||
|
if (mustHardReset) {
|
||||||
|
for (unsigned int i=hardResetElapsed; i<hardResetCycles; i++) {
|
||||||
|
immWrite(0xf0,i&0xff);
|
||||||
|
}
|
||||||
|
for (int i=0; i<4; i++) {
|
||||||
|
if (opChan[i].keyOn && opChan[i].hardReset) {
|
||||||
|
// restore SL/RR
|
||||||
|
unsigned short baseAddr=chanOffs[extChanOffs]|opOffs[i];
|
||||||
|
DivInstrumentFM::Operator& op=chan[extChanOffs].state.op[i];
|
||||||
|
immWrite(baseAddr+ADDR_SL_RR,(op.rr&15)|(op.sl<<4));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
immWrite(0x28,writeMask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extMode) {
|
if (extMode) {
|
||||||
|
|
Loading…
Reference in New Issue