@@ -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