From f710b64523b3c497b34b655de910d1c183411c66 Mon Sep 17 00:00:00 2001 From: nitsuja Date: Thu, 3 Sep 2009 08:44:10 +0000 Subject: [PATCH] fix for mic being stuck at max volume in some games if you don't have a microphone --- desmume/src/windows/mic.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/desmume/src/windows/mic.cpp b/desmume/src/windows/mic.cpp index f862a9f0c..688fb7fc2 100644 --- a/desmume/src/windows/mic.cpp +++ b/desmume/src/windows/mic.cpp @@ -102,9 +102,9 @@ BOOL Mic_Init() { HRESULT hr; WAVEFORMATEX wfx; - memset(Mic_TempBuf, 0, MIC_BUFSIZE); - memset(Mic_Buffer[0], 0, MIC_BUFSIZE); - memset(Mic_Buffer[1], 0, MIC_BUFSIZE); + memset(Mic_TempBuf, 0x80, MIC_BUFSIZE); + memset(Mic_Buffer[0], 0x80, MIC_BUFSIZE); + memset(Mic_Buffer[1], 0x80, MIC_BUFSIZE); Mic_BufPos = 0; Mic_WriteBuf = 0; @@ -146,9 +146,9 @@ void Mic_Reset() if(!Mic_Inited) return; - memset(Mic_TempBuf, 0, MIC_BUFSIZE); - memset(Mic_Buffer[0], 0, MIC_BUFSIZE); - memset(Mic_Buffer[1], 0, MIC_BUFSIZE); + memset(Mic_TempBuf, 0x80, MIC_BUFSIZE); + memset(Mic_Buffer[0], 0x80, MIC_BUFSIZE); + memset(Mic_Buffer[1], 0x80, MIC_BUFSIZE); Mic_BufPos = 0; Mic_WriteBuf = 0; @@ -210,7 +210,7 @@ u8 Mic_ReadSample() else { //since we're not recording Mic_Buffer to the movie, use silence - tmp = 0; + tmp = 0x80; } //reset mic button buffer pos if not pressed @@ -242,7 +242,7 @@ u8 Mic_ReadSample() void mic_savestate(EMUFILE* os) { //version - write32le(0,os); + write32le(1,os); assert(MIC_BUFSIZE == 4096); // else needs new version os->fwrite((char*)Mic_Buffer[0], MIC_BUFSIZE); @@ -256,7 +256,7 @@ bool mic_loadstate(EMUFILE* is, int size) { u32 version; if(read32le(&version,is) != 1) return false; - if(version > 0) { is->fseek(size-4, SEEK_CUR); return true; } + if(version > 1 || version == 0) { is->fseek(size-4, SEEK_CUR); return true; } is->fread((char*)Mic_Buffer[0], MIC_BUFSIZE); is->fread((char*)Mic_Buffer[1], MIC_BUFSIZE);