From a1df24b52d526393f4846880e143e88c0c358337 Mon Sep 17 00:00:00 2001 From: Christian Speckner Date: Tue, 17 Dec 2019 22:51:08 +0100 Subject: [PATCH] Precisely align scanlines with TIA scanlines. --- src/emucore/TIASurface.cxx | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/emucore/TIASurface.cxx b/src/emucore/TIASurface.cxx index e6e81a67c..03939f4ef 100644 --- a/src/emucore/TIASurface.cxx +++ b/src/emucore/TIASurface.cxx @@ -109,13 +109,6 @@ void TIASurface::initialize(const Console& console, setNTSC(NTSCFilter::Preset(myOSystem.settings().getInt("tv.filter")), false); - // Scanline repeating is sensitive to non-integral vertical resolution, - // so rounding is performed to eliminate it - // This won't be 100% accurate, but non-integral scaling isn't 100% - // accurate anyway - mySLineSurface->setSrcSize(1, 2 * int(float(mode.image.h()) / - floorf((float(mode.image.h()) / myTIA->height()) + 0.5f))); - #if 0 cerr << "INITIALIZE:\n" << "TIA:\n" @@ -271,6 +264,8 @@ void TIASurface::enableNTSC(bool enable) myTiaSurface->setSrcSize(enable ? AtariNTSC::outWidth(TIAConstants::frameBufferWidth) : TIAConstants::frameBufferWidth, myTIA->height()); + mySLineSurface->setSrcSize(1, 2 * myTIA->height()); + myScanlinesEnabled = myOSystem.settings().getInt("tv.scanlines") > 0; FBSurface::Attributes& sl_attr = mySLineSurface->attributes(); sl_attr.blending = myScanlinesEnabled;