notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
docs updated, gfx_cd works(?)
[libpicofe.git]
/
gp2x
/
emu.c
diff --git
a/gp2x/emu.c
b/gp2x/emu.c
index
ce056b3
..
7c63cdb
100644
(file)
--- a/
gp2x/emu.c
+++ b/
gp2x/emu.c
@@
-969,13
+969,15
@@
static void updateSound(int len)
{
\r
if (PicoOpt&8) len<<=1;
\r
\r
{
\r
if (PicoOpt&8) len<<=1;
\r
\r
- gp2x_sound_write(PsndOut, len<<1);
\r
+ /* avoid writing audio when lagging behind to prevent audio lag */
\r
+ if (PicoSkipFrame != 2)
\r
+ gp2x_sound_write(PsndOut, len<<1);
\r
}
\r
\r
\r
}
\r
\r
\r
-static void SkipFrame(
void
)
\r
+static void SkipFrame(
int do_audio
)
\r
{
\r
{
\r
- PicoSkipFrame=
1
;
\r
+ PicoSkipFrame=
do_audio ? 1 : 2
;
\r
PicoFrame();
\r
PicoSkipFrame=0;
\r
}
\r
PicoFrame();
\r
PicoSkipFrame=0;
\r
}
\r
@@
-1157,7
+1159,7
@@
void emu_Loop(void)
// when second changes, but we don't want buffer to starve.
\r
if(PsndOut && frames_done < target_fps && frames_done > target_fps-5) {
\r
updateKeys();
\r
// when second changes, but we don't want buffer to starve.
\r
if(PsndOut && frames_done < target_fps && frames_done > target_fps-5) {
\r
updateKeys();
\r
- SkipFrame(); frames_done++;
\r
+ SkipFrame(
1
); frames_done++;
\r
}
\r
\r
frames_done -= target_fps; if (frames_done < 0) frames_done = 0;
\r
}
\r
\r
frames_done -= target_fps; if (frames_done < 0) frames_done = 0;
\r
@@
-1170,7
+1172,7
@@
void emu_Loop(void)
if(currentConfig.Frameskip >= 0) { // frameskip enabled
\r
for(i = 0; i < currentConfig.Frameskip; i++) {
\r
updateKeys();
\r
if(currentConfig.Frameskip >= 0) { // frameskip enabled
\r
for(i = 0; i < currentConfig.Frameskip; i++) {
\r
updateKeys();
\r
- SkipFrame(); frames_done++;
\r
+ SkipFrame(
1
); frames_done++;
\r
if (PsndOut) { // do framelimitting if sound is enabled
\r
gettimeofday(&tval, 0);
\r
if(thissec != tval.tv_sec) tval.tv_usec+=1000000;
\r
if (PsndOut) { // do framelimitting if sound is enabled
\r
gettimeofday(&tval, 0);
\r
if(thissec != tval.tv_sec) tval.tv_usec+=1000000;
\r
@@
-1189,7
+1191,7
@@
void emu_Loop(void)
continue;
\r
}
\r
updateKeys();
\r
continue;
\r
}
\r
updateKeys();
\r
- SkipFrame(
/*tval.tv_usec < lim_time+target_frametime*/
); frames_done++;
\r
+ SkipFrame(
tval.tv_usec < lim_time+target_frametime
); frames_done++;
\r
continue;
\r
}
\r
\r
continue;
\r
}
\r
\r