Surprise! Added support for microphone emulation, but only for Win32.

There are 3 problems : 
1. the sound crackles a bit
2. the microphone amplifier isn't supported
3. the emu freezes if you don't close it by the console
This commit is contained in:
luigi__ 2009-01-12 16:17:03 +00:00
parent 47db86ec02
commit 0fa4b42eb4
1 changed files with 11 additions and 1 deletions

View File

@ -44,6 +44,7 @@
#include "GPU_osd.h"
#include "mc.h"
#include "addons.h"
#include "mic.h"
#ifdef DO_ASSERT_UNALIGNED
#define ASSERT_UNALIGNED(x) assert(x)
@ -381,6 +382,10 @@ void MMU_Init(void) {
rtcInit();
memset(VRAM_blockEnabled, 0, sizeof(VRAM_blockEnabled));
addonsInit();
if(Mic_Init() == FALSE)
INFO("Microphone init failed.\n");
else
INFO("Microphone successfully inited.\n");
}
void MMU_DeInit(void) {
@ -392,6 +397,7 @@ void MMU_DeInit(void) {
fclose(MMU.bupmem.fp);
mc_free(&MMU.bupmem);
addonsClose();
Mic_DeInit();
}
//Card rom & ram
@ -509,6 +515,7 @@ void MMU_clearMem()
partie = 1;
memset(VRAM_blockEnabled, 0, sizeof(VRAM_blockEnabled));
addonsReset();
Mic_Reset();
}
// VRAM mapping control
@ -3198,7 +3205,10 @@ static void FASTCALL _MMU_ARM7_write16(u32 adr, u16 val)
partie = 1;
break;
case 0x60 :
val = 0;
if(!(val & 0x80))
val = (Mic_ReadSample() & 0xFF);
else
val = 0;
break;
case 0x70 :
val = 0;