From a0d143c3ec075f79a608ed713ab81fdea592a51d Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 8 Dec 2008 04:13:26 +0000 Subject: [PATCH] Win32 - turbo employs frameskip --- changelog.txt | 1 + src/drivers/win/input.cpp | 1 - src/drivers/win/main.cpp | 23 ++++- vc8/fceux.vcproj | 210 +++++++++++++++++++------------------- 4 files changed, 126 insertions(+), 109 deletions(-) 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 @@ />