finish it

This commit is contained in:
tildearrow 2023-08-24 03:05:25 -05:00
parent c9cbf133d6
commit 31335b95c9
15 changed files with 68 additions and 0 deletions

View File

@ -1274,6 +1274,11 @@ DivMacroInt* DivPlatformGenesis::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformGenesis::getPan(int ch) {
if (ch>5) ch=5;
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivSamplePos DivPlatformGenesis::getSamplePos(int ch) {
if (!chan[5].dacMode) return DivSamplePos();
if (ch<5) return DivSamplePos();

View File

@ -801,6 +801,7 @@ DivMacroInt* DivPlatformGenesisExt::getChanMacroInt(int ch) {
}
unsigned short DivPlatformGenesisExt::getPan(int ch) {
if (ch==csmChan) return 0;
if (ch>=4+extChanOffs) return DivPlatformGenesis::getPan(ch-3);
if (ch>=extChanOffs) return ((opChan[0].pan<<7)&1)|(opChan[0].pan&1);
return DivPlatformGenesis::getPan(ch);

View File

@ -370,6 +370,10 @@ DivMacroInt* DivPlatformK053260::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformK053260::getPan(int ch) {
return parent->convertPanLinearToSplit(chan[ch].panning,8,7);
}
DivDispatchOscBuffer* DivPlatformK053260::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -282,6 +282,10 @@ DivMacroInt* DivPlatformMSM6258::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformMSM6258::getPan(int ch) {
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivDispatchOscBuffer* DivPlatformMSM6258::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -1564,6 +1564,18 @@ DivMacroInt* DivPlatformOPL::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformOPL::getPan(int ch) {
if (totalOutputs<=1) return 0;
if (chan[ch&(~1)].fourOp) {
if (ch&1) {
return ((chan[ch-1].pan<<7)&1)|(chan[ch-1].pan&1);
} else {
return ((chan[ch+1].pan<<7)&1)|(chan[ch+1].pan&1);
}
}
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivDispatchOscBuffer* DivPlatformOPL::getOscBuffer(int ch) {
if (oplType==759 || chipType==8950) {
if (ch>=totalChans+1) return NULL;

View File

@ -623,6 +623,10 @@ DivMacroInt* DivPlatformQSound::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformQSound::getPan(int ch) {
return parent->convertPanLinearToSplit(chan[ch].panning,8,32);
}
DivDispatchOscBuffer* DivPlatformQSound::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -322,6 +322,10 @@ DivMacroInt* DivPlatformRF5C68::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformRF5C68::getPan(int ch) {
return ((chan[ch].panning&15)<<8)|((chan[ch].panning&0xf0)>>4);
}
DivDispatchOscBuffer* DivPlatformRF5C68::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -452,6 +452,12 @@ DivMacroInt* DivPlatformSMS::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformSMS::getPan(int ch) {
if (!stereo) return 0;
unsigned char p=lastPan&(0x11<<ch);
return ((p&0xf0)?0x100:0)|((p&0x0f)?1:0);
}
DivDispatchOscBuffer* DivPlatformSMS::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -458,6 +458,10 @@ DivMacroInt* DivPlatformSoundUnit::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformSoundUnit::getPan(int ch) {
return parent->convertPanLinearToSplit(chan[ch].pan,8,255);
}
DivDispatchOscBuffer* DivPlatformSoundUnit::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -444,6 +444,10 @@ DivMacroInt* DivPlatformVERA::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformVERA::getPan(int ch) {
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivDispatchOscBuffer* DivPlatformVERA::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -864,6 +864,7 @@ DivMacroInt* DivPlatformX1_010::getChanMacroInt(int ch) {
}
unsigned short DivPlatformX1_010::getPan(int ch) {
if (!stereo) return 0;
return ((chan[ch].pan&0xf0)<<4)|(chan[ch].pan&15);
}

View File

@ -1461,6 +1461,11 @@ DivMacroInt* DivPlatformYM2608::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformYM2608::getPan(int ch) {
if (ch>=psgChanOffs && ch<adpcmAChanOffs) return 0;
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivDispatchOscBuffer* DivPlatformYM2608::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -1421,6 +1421,11 @@ DivMacroInt* DivPlatformYM2610::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformYM2610::getPan(int ch) {
if (ch>=psgChanOffs && ch<adpcmAChanOffs) return 0;
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivDispatchOscBuffer* DivPlatformYM2610::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -1488,6 +1488,11 @@ DivMacroInt* DivPlatformYM2610B::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformYM2610B::getPan(int ch) {
if (ch>=psgChanOffs && ch<adpcmAChanOffs) return 0;
return ((chan[ch].pan<<7)&1)|(chan[ch].pan&1);
}
DivDispatchOscBuffer* DivPlatformYM2610B::getOscBuffer(int ch) {
return oscBuf[ch];
}

View File

@ -359,6 +359,10 @@ DivMacroInt* DivPlatformYMZ280B::getChanMacroInt(int ch) {
return &chan[ch].std;
}
unsigned short DivPlatformYMZ280B::getPan(int ch) {
return parent->convertPanLinearToSplit(chan[ch].panning,8,15);
}
DivDispatchOscBuffer* DivPlatformYMZ280B::getOscBuffer(int ch) {
return oscBuf[ch];
}