Merge branch 'master' of https://github.com/tildearrow/furnace into k053260
This commit is contained in:
commit
79a082c5d2
14 changed files with 504 additions and 14 deletions
|
|
@ -4586,6 +4586,15 @@ bool DivEngine::initAudioBackend() {
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_SDL2
|
||||
if (audioEngine==DIV_AUDIO_SDL) {
|
||||
String audioDriver=getConfString("sdlAudioDriver","");
|
||||
if (!audioDriver.empty()) {
|
||||
SDL_SetHint("SDL_HINT_AUDIODRIVER",audioDriver.c_str());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
lowQuality=getConfInt("audioQuality",0);
|
||||
forceMono=getConfInt("forceMono",0);
|
||||
clampSamples=getConfInt("clampSamples",0);
|
||||
|
|
@ -4594,7 +4603,7 @@ bool DivEngine::initAudioBackend() {
|
|||
midiOutClock=getConfInt("midiOutClock",0);
|
||||
midiOutTime=getConfInt("midiOutTime",0);
|
||||
midiOutTimeRate=getConfInt("midiOutTimeRate",0);
|
||||
midiOutProgramChange = getConfInt("midiOutProgramChange",0);
|
||||
midiOutProgramChange=getConfInt("midiOutProgramChange",0);
|
||||
midiOutMode=getConfInt("midiOutMode",DIV_MIDI_MODE_NOTE);
|
||||
if (metroVol<0.0f) metroVol=0.0f;
|
||||
if (metroVol>2.0f) metroVol=2.0f;
|
||||
|
|
|
|||
|
|
@ -570,6 +570,7 @@ class DivEngine {
|
|||
float oscSize;
|
||||
int oscReadPos, oscWritePos;
|
||||
int tickMult;
|
||||
int lastNBIns, lastNBOuts, lastNBSize;
|
||||
std::atomic<size_t> processTime;
|
||||
|
||||
void runExportThread();
|
||||
|
|
@ -1252,6 +1253,9 @@ class DivEngine {
|
|||
oscReadPos(0),
|
||||
oscWritePos(0),
|
||||
tickMult(1),
|
||||
lastNBIns(0),
|
||||
lastNBOuts(0),
|
||||
lastNBSize(0),
|
||||
processTime(0),
|
||||
yrw801ROM(NULL),
|
||||
tg100ROM(NULL),
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ void DivPlatformGB::tick(bool sysTick) {
|
|||
rWrite(16+i*5+4,((chan[i].keyOn||chan[i].keyOff)?0x80:0x00)|((chan[i].soundLen<64)<<6));
|
||||
} else {
|
||||
rWrite(16+i*5+3,(2048-chan[i].freq)&0xff);
|
||||
rWrite(16+i*5+4,(((2048-chan[i].freq)>>8)&7)|((chan[i].keyOn||chan[i].keyOff)?0x80:0x00)|((chan[i].soundLen<63)<<6));
|
||||
rWrite(16+i*5+4,(((2048-chan[i].freq)>>8)&7)|((chan[i].keyOn||(chan[i].keyOff && i!=2))?0x80:0x00)|((chan[i].soundLen<63)<<6));
|
||||
}
|
||||
if (enoughAlready) { // more compat garbage
|
||||
rWrite(16+i*5+1,((chan[i].duty&3)<<6)|(63-(chan[i].soundLen&63)));
|
||||
|
|
@ -466,7 +466,9 @@ int DivPlatformGB::dispatch(DivCommand c) {
|
|||
if (c.chan!=2) break;
|
||||
chan[c.chan].wave=c.value;
|
||||
ws.changeWave1(chan[c.chan].wave);
|
||||
chan[c.chan].keyOn=true;
|
||||
if (chan[c.chan].active) {
|
||||
chan[c.chan].keyOn=true;
|
||||
}
|
||||
break;
|
||||
case DIV_CMD_NOTE_PORTA: {
|
||||
int destFreq=NOTE_PERIODIC(c.value2);
|
||||
|
|
|
|||
|
|
@ -1694,6 +1694,10 @@ void DivEngine::runMidiTime(int totalCycles) {
|
|||
}
|
||||
|
||||
void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsigned int size) {
|
||||
lastNBIns=inChans;
|
||||
lastNBOuts=outChans;
|
||||
lastNBSize=size;
|
||||
|
||||
if (!size) {
|
||||
logW("nextBuf called with size 0!");
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue