HLE DSP: Handle cycle drifting

This commit is contained in:
wheremyfoodat 2024-08-04 16:46:43 +03:00
parent e666afd1a3
commit 85bae2e94e
7 changed files with 22 additions and 13 deletions

View file

@ -42,6 +42,7 @@ namespace Audio {
return this->bufferID > other.bufferID;
}
};
// Buffer of decoded PCM16 samples. TODO: Are there better alternatives to use over deque?
using SampleBuffer = std::deque<std::array<s16, 2>>;
@ -53,6 +54,7 @@ namespace Audio {
std::array<float, 3> gain0, gain1, gain2;
u32 samplePosition; // Sample number into the current audio buffer
float rateMultiplier;
u16 syncCount;
u16 currentBufferID;
u16 previousBufferID;
@ -185,7 +187,7 @@ namespace Audio {
~HLE_DSP() override {}
void reset() override;
void runAudioFrame() override;
void runAudioFrame(u64 eventTimestamp) override;
u8* getDspMemory() override { return dspRam.rawMemory.data(); }