mirror of https://github.com/mgba-emu/mgba.git
GBA Audio: Default to emulated mixing for XCMD
This commit is contained in:
parent
6fd97ce3de
commit
6364cabce3
|
@ -237,6 +237,10 @@ static void _mp2kReload(struct GBAAudioMixer* mixer) {
|
||||||
} else {
|
} else {
|
||||||
memset(&track->track, 0, sizeof(track->track));
|
memset(&track->track, 0, sizeof(track->track));
|
||||||
}
|
}
|
||||||
|
if (track->track.runningStatus == 0xCD) {
|
||||||
|
// XCMD isn't supported
|
||||||
|
mixer->p->externalMixing = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,9 +257,6 @@ bool _mp2kEngage(struct GBAAudioMixer* mixer, uint32_t address) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void _mp2kStep(struct GBAAudioMixer* mixer) {
|
void _mp2kStep(struct GBAAudioMixer* mixer) {
|
||||||
if (!mixer->p->externalMixing) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mixer->frame += mixer->p->sampleInterval;
|
mixer->frame += mixer->p->sampleInterval;
|
||||||
|
|
||||||
while (mixer->frame >= VIDEO_TOTAL_LENGTH / mixer->tempo) {
|
while (mixer->frame >= VIDEO_TOTAL_LENGTH / mixer->tempo) {
|
||||||
|
@ -288,8 +289,10 @@ void _mp2kStep(struct GBAAudioMixer* mixer) {
|
||||||
CircleBufferRead16(&mixer->activeTracks[track].buffer, &value);
|
CircleBufferRead16(&mixer->activeTracks[track].buffer, &value);
|
||||||
sample.right += value;
|
sample.right += value;
|
||||||
}
|
}
|
||||||
blip_add_delta(mixer->p->psg.left, mixer->p->clock + i * interval, sample.left - mixer->last.left);
|
if (mixer->p->externalMixing) {
|
||||||
blip_add_delta(mixer->p->psg.right, mixer->p->clock + i * interval, sample.left - mixer->last.left);
|
blip_add_delta(mixer->p->psg.left, mixer->p->clock + i * interval, sample.left - mixer->last.left);
|
||||||
|
blip_add_delta(mixer->p->psg.right, mixer->p->clock + i * interval, sample.left - mixer->last.left);
|
||||||
|
}
|
||||||
mixer->last = sample;
|
mixer->last = sample;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue