diff --git a/src/alloy/frontend/ppc/ppc_emit_altivec.cc b/src/alloy/frontend/ppc/ppc_emit_altivec.cc index 82bc9f112..d31b5f9cf 100644 --- a/src/alloy/frontend/ppc/ppc_emit_altivec.cc +++ b/src/alloy/frontend/ppc/ppc_emit_altivec.cc @@ -139,7 +139,7 @@ XEEMITTER(lvewx, 0x7C00008E, X )(PPCHIRBuilder& f, InstrData& i) { return InstrEmit_lvewx_(f, i, i.X.RT, i.X.RA, i.X.RB); } XEEMITTER(lvewx128, VX128_1(4, 131), VX128_1)(PPCHIRBuilder& f, InstrData& i) { - return InstrEmit_lvewx_(f, i, i.X.RT, i.X.RA, i.X.RB); + return InstrEmit_lvewx_(f, i, VX128_1_VD128, i.VX128_1.RA, i.VX128_1.RB); } int InstrEmit_lvsl_(PPCHIRBuilder& f, InstrData& i, uint32_t vd, uint32_t ra, uint32_t rb) { @@ -153,7 +153,7 @@ XEEMITTER(lvsl, 0x7C00000C, X )(PPCHIRBuilder& f, InstrData& i) { return InstrEmit_lvsl_(f, i, i.X.RT, i.X.RA, i.X.RB); } XEEMITTER(lvsl128, VX128_1(4, 3), VX128_1)(PPCHIRBuilder& f, InstrData& i) { - return InstrEmit_lvsl_(f, i, i.X.RT, i.X.RA, i.X.RB); + return InstrEmit_lvsl_(f, i, VX128_1_VD128, i.VX128_1.RA, i.VX128_1.RB); } int InstrEmit_lvsr_(PPCHIRBuilder& f, InstrData& i, uint32_t vd, uint32_t ra, uint32_t rb) { @@ -167,7 +167,7 @@ XEEMITTER(lvsr, 0x7C00004C, X )(PPCHIRBuilder& f, InstrData& i) { return InstrEmit_lvsr_(f, i, i.X.RT, i.X.RA, i.X.RB); } XEEMITTER(lvsr128, VX128_1(4, 67), VX128_1)(PPCHIRBuilder& f, InstrData& i) { - return InstrEmit_lvsr_(f, i, i.X.RT, i.X.RA, i.X.RB); + return InstrEmit_lvsr_(f, i, VX128_1_VD128, i.VX128_1.RA, i.VX128_1.RB); } int InstrEmit_lvx_(PPCHIRBuilder& f, InstrData& i, uint32_t vd, uint32_t ra, uint32_t rb) { @@ -217,7 +217,7 @@ XEEMITTER(stvewx, 0x7C00018E, X )(PPCHIRBuilder& f, InstrData& i) { return InstrEmit_stvewx_(f, i, i.X.RT, i.X.RA, i.X.RB); } XEEMITTER(stvewx128, VX128_1(4, 387), VX128_1)(PPCHIRBuilder& f, InstrData& i) { - return InstrEmit_stvewx_(f, i, i.X.RT, i.X.RA, i.X.RB); + return InstrEmit_stvewx_(f, i, VX128_1_VD128, i.VX128_1.RA, i.VX128_1.RB); } int InstrEmit_stvx_(PPCHIRBuilder& f, InstrData& i, uint32_t vd, uint32_t ra, uint32_t rb) { diff --git a/src/xenia/apu/xaudio2/xaudio2_audio_system.cc b/src/xenia/apu/xaudio2/xaudio2_audio_system.cc index 858fea7e2..ca874e7ea 100644 --- a/src/xenia/apu/xaudio2/xaudio2_audio_system.cc +++ b/src/xenia/apu/xaudio2/xaudio2_audio_system.cc @@ -125,8 +125,10 @@ void XAudio2AudioSystem::Pump() { XAUDIO2_VOICE_STATE state; pcm_voice_->GetState(&state); auto n = state.BuffersQueued; - if (n > 1) { - // A lot of buffers are queued up, and until we use them block. + if (n > 0) { + // Only allow one buffer to be queued at once. We only have one static + // store of data, and if we called back the game audio driver it would + // overwrite it. ResetEvent(wait_handle_); }