frame advance improvements in sdl
This commit is contained in:
parent
b6edc72bc8
commit
aa0923a3a8
|
@ -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)) {
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue