diff --git a/changelog.txt b/changelog.txt
index b7c555ae..c72276de 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,4 +1,5 @@
---version 2.0.4 yet to be released---
+07-dec-2008 - adelikat - win32 - turbo now employs frame skip
30-nov-2008 - punkrockguy - commit 1000
30-nov-2008 - punkrockguy - fixed gcc compile error
30-nov-2008 - punkrockguy - moved around some hotkeys to be consistent with docs
diff --git a/src/drivers/win/input.cpp b/src/drivers/win/input.cpp
index 0f95e05b..7ba33405 100644
--- a/src/drivers/win/input.cpp
+++ b/src/drivers/win/input.cpp
@@ -1480,7 +1480,6 @@ void FCEUD_TurboOn (void)
{
tempwinsync = winsync; //Store winsync setting
winsync = 0; //turn off winsync for turbo (so that turbo can function even with VBlank sync methods
-
turbo = true;
if (muteTurbo) TrashSound();
}
diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp
index 8deac140..2d92d0d1 100644
--- a/src/drivers/win/main.cpp
+++ b/src/drivers/win/main.cpp
@@ -98,6 +98,8 @@
// External functions
extern std::string cfgFile;
+extern bool turbo;
+int counter = 0;
void ResetVideo(void);
void ShowCursorAbs(int w);
void HideFWindow(int h);
@@ -126,7 +128,7 @@ int pal_emulation = 0;
int ntsccol = 0, ntsctint, ntschue;
std::string BaseDirectory;
int PauseAfterLoad;
-
+unsigned int skippy = 0; //Frame skip
// Contains the names of the overridden standard directories
// in the order roms, nonvol, states, fdsrom, snaps, cheats, movies, memwatch, macro, input presets, lua scripts, base
char *directory_names[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
@@ -676,8 +678,24 @@ doloopy:
uint8 *gfx=0; ///contains framebuffer
int32 *sound=0; ///contains sound data buffer
int32 ssize=0; ///contains sound samples count
+
+ if (turbo)
+ {
+ if (!counter)
+ {
+ counter = 15;
+ skippy = 0;
+ }
+ else
+ {
+ counter--;
+ skippy = 1;
+ }
+
+ }
+ else skippy = 0;
- FCEUI_Emulate(&gfx, &sound, &ssize, 0); //emulate a single frame
+ FCEUI_Emulate(&gfx, &sound, &ssize, skippy); //emulate a single frame
FCEUD_Update(gfx, sound, ssize); //update displays and debug tools
//mbg 6/30/06 - close game if we were commanded to by calls nested in FCEUI_Emulate()
@@ -716,7 +734,6 @@ void _updateWindow()
UpdateLogWindow();
UpdateMemWatch();
NTViewDoBlit(0);
- //UpdateCheatList(); Moved to FCEUI_Emulate
UpdateTasEdit();
}
diff --git a/vc8/fceux.vcproj b/vc8/fceux.vcproj
index 3a11408d..308a2579 100644
--- a/vc8/fceux.vcproj
+++ b/vc8/fceux.vcproj
@@ -103,6 +103,88 @@
CommandLine="xcopy /y /d "$(ProjectDir)\..\src\drivers\win\7z.dll" "$(OutDir)"
"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -2230,15 +2239,6 @@
CompileAs="1"
/>
-
-
-
@@ -2298,7 +2298,7 @@
/>