From ecbf2224144291005ed9f9d3dca70aba03ad0d38 Mon Sep 17 00:00:00 2001 From: thrust26 Date: Sat, 23 May 2020 20:50:14 +0200 Subject: [PATCH] updated doc for fullscreen refresh rate adaption removed debug output --- Changes.txt | 2 ++ docs/graphics/options_video.png | Bin 2744 -> 3001 bytes docs/index.html | 15 +++++++++++---- src/common/FrameBufferSDL2.cxx | 15 +++++++-------- src/emucore/Settings.cxx | 2 +- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Changes.txt b/Changes.txt index 557157f25..616ec22f7 100644 --- a/Changes.txt +++ b/Changes.txt @@ -37,6 +37,8 @@ * Added separate positioning of launcher, emulator and debugger + * Added optional display to game refresh rate adaption in fullscreen mode + * Added option which lets default ROM path follow launcher navigation * Added debugger 'saveaccess' function, which saves memory access counts to diff --git a/docs/graphics/options_video.png b/docs/graphics/options_video.png index deb857ca4984e0d5815c693b739e4628a3b1b429..58654148ab3e6db654681c658c828eade4523b08 100644 GIT binary patch delta 2885 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 + +
-tia.fs_refresh <1|0>
+ While in fullscreen mode, adapt the display's refresh rate to the game's frame rate + to minimize judder. + +
-tia.fs_overscan <0 - 10>
Add overscan to TIA image while in fullscreen mode @@ -2943,13 +2949,14 @@ - - + + - + + - +
ItemBrief descriptionFor more information,
see CommandLine
RendererUse specified rendering mode-video
InterpolationInterpolation of TIA image-tia.inter
ZoomZoom level of TIA image-tia.zoom
InterpolationEnable interpolation of the TIA image-tia.inter
ZoomZoom level of the TIA image-tia.zoom
FullscreenSelf-explanatory - Note that colors may slightly change. This depends on the OS and renderer used.-fullscreen
StretchIn fullscreen mode, completely fill screen with TIA image-tia.fs_stretch
StretchIn fullscreen mode, completely fill screen with the TIA image.-tia.fs_stretch
Adapt display...In fullscreen mode, adapt the display's refresh rate to the game's frame rate to minimize judder.-tia.fs_refresh
OverscanIn fullscreen mode, add overscan to the TIA image-tia.fs_overscan
V-Size adjustAdjust height of TIA image-tia.vsizeadjust
V-Size adjustAdjust height of the TIA image-tia.vsizeadjust
diff --git a/src/common/FrameBufferSDL2.cxx b/src/common/FrameBufferSDL2.cxx index 9bb0dae57..612000943 100644 --- a/src/common/FrameBufferSDL2.cxx +++ b/src/common/FrameBufferSDL2.cxx @@ -393,7 +393,6 @@ bool FrameBufferSDL2::adaptRefreshRate(Int32 displayIndex, SDL_DisplayMode& adap Logger::error("ERROR: Closest display mode could not be retrieved"); return adapt; } - factor = float(closestSdlMode.refresh_rate) / sdlMode.refresh_rate; factor = std::min(float(sdlMode.refresh_rate) / sdlMode.refresh_rate, float(sdlMode.refresh_rate) / (sdlMode.refresh_rate - 1)); const float diff = std::abs(factor - std::round(factor)) / factor; @@ -404,12 +403,12 @@ bool FrameBufferSDL2::adaptRefreshRate(Int32 displayIndex, SDL_DisplayMode& adap adapt = true; } } - cerr << "refresh rate adapt "; - if(adapt) - cerr << "required (" << currentRefreshRate << " Hz -> " << adaptedSdlMode.refresh_rate << " Hz)"; - else - cerr << "not required/possible"; - cerr << endl; + //cerr << "refresh rate adapt "; + //if(adapt) + // cerr << "required (" << currentRefreshRate << " Hz -> " << adaptedSdlMode.refresh_rate << " Hz)"; + //else + // cerr << "not required/possible"; + //cerr << endl; // Only change if the display supports a better refresh rate return adapt; @@ -506,7 +505,7 @@ bool FrameBufferSDL2::createRenderer(bool force) if(recreate) { - cerr << "Create new renderer for buffer type #" << int(myBufferType) << endl; + //cerr << "Create new renderer for buffer type #" << int(myBufferType) << endl; if(myRenderer) SDL_DestroyRenderer(myRenderer); diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx index dca79717d..790c784bb 100644 --- a/src/emucore/Settings.cxx +++ b/src/emucore/Settings.cxx @@ -442,7 +442,7 @@ void Settings::usage() const << " -tia.inter <1|0> Enable interpolated (smooth) scaling for TIA\n" << " image\n" << " -tia.fs_stretch <1|0> Stretch TIA image to fill fullscreen mode\n" - << " -tia.fs_refresh <1|0> Try to adapt display refresh rate to game\n" + << " -tia.fs_refresh <1|0> Try to adapt display refresh rate to game's FPS\n" << " -tia.fs_overscan <0-10> Add overscan to TIA image in fullscreen mode\n" << " -tia.dbgcolors Debug colors to use for each object (see manual\n" << " for description)\n"