frame advance improvements in sdl

This commit is contained in:
punkrockguy318 2008-08-14 16:49:18 +00:00
parent b6edc72bc8
commit aa0923a3a8
2 changed files with 28 additions and 15 deletions

View File

@ -334,12 +334,23 @@ KeyboardCommands()
}
g_config->getOption("SDL.Hotkeys.FrameAdvance", &key);
if(_keyonly(key)) {
// 8-10-08 - this freezes fceux for me - punkrockguy318
FCEUI_FrameAdvance();
static bool frameAdvancing = false;
if(g_keyState[key])
{
if(frameAdvancing == false)
{
FCEUI_FrameAdvance();
frameAdvancing = true;
}
}
else
{
if(frameAdvancing)
{
FCEUI_FrameAdvanceEnd();
frameAdvancing = false;
}
}
g_config->getOption("SDL.Hotkeys.Reset", &key);
if(_keyonly(key)) {

View File

@ -149,17 +149,19 @@ void
WriteSound(int32 *buf,
int Count)
{
while(Count) {
while(s_BufferIn == s_BufferSize) {
SDL_Delay(1);
}
extern int EmulationPaused;
if (EmulationPaused == 0)
while(Count) {
while(s_BufferIn == s_BufferSize) {
SDL_Delay(1);
}
s_Buffer[s_BufferWrite] = *buf;
Count--;
s_BufferWrite = (s_BufferWrite + 1) % s_BufferSize;
s_BufferIn++;
buf++;
}
s_Buffer[s_BufferWrite] = *buf;
Count--;
s_BufferWrite = (s_BufferWrite + 1) % s_BufferSize;
s_BufferIn++;
buf++;
}
}
/**