1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-01-12 00:30:31 +00:00

Ensured a settling delay is permitted before an NTSC/PAL decision is made. To avoid false switches just due to startup.

This commit is contained in:
Thomas Harte 2017-03-06 19:37:35 -05:00
parent ec2762509b
commit 9c72ce5bd2

View File

@ -340,16 +340,17 @@ void Machine::synchronise()
void Machine::crt_did_end_batch_of_frames(Outputs::CRT::CRT *crt, unsigned int number_of_frames, unsigned int number_of_unexpected_vertical_syncs)
{
frame_records_[frame_record_pointer_].number_of_frames = number_of_frames;
frame_records_[frame_record_pointer_].number_of_unexpected_vertical_syncs = number_of_unexpected_vertical_syncs;
const size_t number_of_frame_records = sizeof(frame_records_) / sizeof(frame_records_[0]);
frame_record_pointer_ = (frame_record_pointer_ + 1) % number_of_frame_records;
frame_records_[frame_record_pointer_ % number_of_frame_records].number_of_frames = number_of_frames;
frame_records_[frame_record_pointer_ % number_of_frame_records].number_of_unexpected_vertical_syncs = number_of_unexpected_vertical_syncs;
frame_record_pointer_ ++;
if(frame_record_pointer_ >= 6)
{
unsigned int total_number_of_frames = 0;
unsigned int total_number_of_unexpected_vertical_syncs = 0;
for(size_t c = 0; c < number_of_frame_records; c++)
{
if(!frame_records_[c].number_of_frames) return;
total_number_of_frames += frame_records_[c].number_of_frames;
total_number_of_unexpected_vertical_syncs += frame_records_[c].number_of_unexpected_vertical_syncs;
}
@ -379,4 +380,5 @@ void Machine::crt_did_end_batch_of_frames(Outputs::CRT::CRT *crt, unsigned int n
speaker_->set_high_frequency_cut_off((float)(clock_rate / (38.0 * 2.0)));
set_clock_rate(clock_rate);
}
}
}