From d73aa419d11bba5676e7ea6df80eaee25191e108 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Mon, 13 Jan 2014 20:50:56 -0800 Subject: [PATCH] Better returns for XAudio. --- src/xenia/kernel/util/shim_utils.h | 2 ++ src/xenia/kernel/xboxkrnl_audio.cc | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/xenia/kernel/util/shim_utils.h b/src/xenia/kernel/util/shim_utils.h index 2d13e91df..59d1e6854 100644 --- a/src/xenia/kernel/util/shim_utils.h +++ b/src/xenia/kernel/util/shim_utils.h @@ -40,6 +40,8 @@ using PPCContext = alloy::frontend::ppc::PPCContext; #define SHIM_SET_MEM_16(a, v) (*(uint16_t*)SHIM_MEM_ADDR(a)) = XESWAP16(v) #define SHIM_SET_MEM_32(a, v) (*(uint32_t*)SHIM_MEM_ADDR(a)) = XESWAP32(v) #define SHIM_SET_MEM_64(a, v) (*(uint64_t*)SHIM_MEM_ADDR(a)) = XESWAP64(v) +#define SHIM_SET_MEM_F32(a, v) (*(float*)SHIM_MEM_ADDR(a)) = XESWAPF32BE(v) +#define SHIM_SET_MEM_F64(a, v) (*(double*)SHIM_MEM_ADDR(a)) = XESWAPF64BE(v) #define SHIM_GPR_16(n) (uint16_t)(ppc_state->r[n]) #define SHIM_GPR_32(n) (uint32_t)(ppc_state->r[n]) diff --git a/src/xenia/kernel/xboxkrnl_audio.cc b/src/xenia/kernel/xboxkrnl_audio.cc index 5296578fb..3f8c2dca6 100644 --- a/src/xenia/kernel/xboxkrnl_audio.cc +++ b/src/xenia/kernel/xboxkrnl_audio.cc @@ -60,7 +60,7 @@ SHIM_CALL XAudioGetSpeakerConfig_shim( "XAudioGetSpeakerConfig(%.8X)", config_ptr); - SHIM_SET_MEM_32(config_ptr, 1); + SHIM_SET_MEM_32(config_ptr, 0x00010001); SHIM_SET_RETURN(X_ERROR_SUCCESS); } @@ -95,7 +95,7 @@ SHIM_CALL XAudioGetVoiceCategoryVolume_shim( unk, out_ptr); // Expects a floating point single. Volume %? - SHIM_SET_MEM_32(out_ptr, 0); + SHIM_SET_MEM_F32(out_ptr, 1.0f); SHIM_SET_RETURN(X_ERROR_SUCCESS); }