Skip to content

Commit 45995c4

Browse files
committed
Update display at 60Hz for NTSC playback
1 parent f75fcb9 commit 45995c4

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

src/player.cpp

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -809,22 +809,19 @@ bool ConsolePlayer::open (void)
809809
return false;
810810
}
811811

812+
const bool isNTSC = (
813+
(m_engCfg.defaultC64Model == SidConfig::NTSC) &&
814+
(m_engCfg.forceC64Model || (tuneInfo->clockSpeed() != SidTuneInfo::CLOCK_PAL))
815+
) ||
816+
(tuneInfo->clockSpeed() == SidTuneInfo::CLOCK_NTSC);
817+
812818
#ifdef FEAT_FILTER_DISABLE
813819
m_engine.filter(0, m_filter.enabled);
814820
m_engine.filter(1, m_filter.enabled);
815821
m_engine.filter(2, m_filter.enabled);
816822
#endif
817823
#ifdef FEAT_REGS_DUMP_SID
818-
if (
819-
(
820-
(m_engCfg.defaultC64Model == SidConfig::NTSC) &&
821-
(m_engCfg.forceC64Model || (tuneInfo->clockSpeed() != SidTuneInfo::CLOCK_PAL))
822-
) ||
823-
(tuneInfo->clockSpeed() == SidTuneInfo::CLOCK_NTSC)
824-
)
825-
m_freqTable = freqTableNtsc;
826-
else
827-
m_freqTable = freqTablePal;
824+
m_freqTable = isNTSC ? freqTableNtsc : freqTablePal;
828825
#endif
829826
// Start the player. Do this by fast
830827
// forwarding to the start position
@@ -883,17 +880,17 @@ bool ConsolePlayer::open (void)
883880

884881
// Update display
885882
menu();
886-
m_thread = new std::thread([this]()
887-
{
888-
using namespace std::chrono_literals;
889883

884+
// Update display at 50/60Hz
885+
int delay = isNTSC ? 16 : 20;
886+
m_thread = new std::thread([this](int delay)
887+
{
890888
while (m_state == playerRunning)
891889
{
892890
updateDisplay();
893-
// TODO 16ms for NTSC?
894-
std::this_thread::sleep_for(20ms);
891+
std::this_thread::sleep_for(std::chrono::milliseconds(delay));
895892
}
896-
});
893+
}, delay);
897894

898895
return true;
899896
}

0 commit comments

Comments
 (0)