mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 08:49:37 +00:00
Subtracts retrace periods from output scale.
This commit is contained in:
parent
3045e85004
commit
2adf3d353e
@ -68,7 +68,7 @@
|
|||||||
</AdditionalOptions>
|
</AdditionalOptions>
|
||||||
</TestAction>
|
</TestAction>
|
||||||
<LaunchAction
|
<LaunchAction
|
||||||
buildConfiguration = "Release"
|
buildConfiguration = "Debug"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
enableASanStackUseAfterReturn = "YES"
|
enableASanStackUseAfterReturn = "YES"
|
||||||
|
@ -54,12 +54,12 @@ void CRT::set_new_timing(int cycles_per_line, int height_of_display, Outputs::Di
|
|||||||
vertical_flywheel_.reset(new Flywheel(multiplied_cycles_per_line * height_of_display, scanlinesVerticalRetraceTime * multiplied_cycles_per_line, (multiplied_cycles_per_line * height_of_display) >> 3));
|
vertical_flywheel_.reset(new Flywheel(multiplied_cycles_per_line * height_of_display, scanlinesVerticalRetraceTime * multiplied_cycles_per_line, (multiplied_cycles_per_line * height_of_display) >> 3));
|
||||||
|
|
||||||
// Figure out the divisor necessary to get the horizontal flywheel into a 16-bit range.
|
// Figure out the divisor necessary to get the horizontal flywheel into a 16-bit range.
|
||||||
const int real_clock_scan_period = multiplied_cycles_per_line * height_of_display;
|
const int real_clock_scan_period = vertical_flywheel_->get_scan_period();
|
||||||
vertical_flywheel_output_divider_ = (real_clock_scan_period + 65534) / 65535;
|
vertical_flywheel_output_divider_ = (real_clock_scan_period + 65534) / 65535;
|
||||||
|
|
||||||
// Communicate relevant fields to the scan target.
|
// Communicate relevant fields to the scan target.
|
||||||
scan_target_modals_.output_scale.x = uint16_t(time_multiplier_ * cycles_per_line);
|
scan_target_modals_.output_scale.x = uint16_t(horizontal_flywheel_->get_scan_period());
|
||||||
scan_target_modals_.output_scale.y = uint16_t((multiplied_cycles_per_line * height_of_display) / vertical_flywheel_output_divider_);
|
scan_target_modals_.output_scale.y = uint16_t(real_clock_scan_period / vertical_flywheel_output_divider_);
|
||||||
scan_target_modals_.expected_vertical_lines = height_of_display;
|
scan_target_modals_.expected_vertical_lines = height_of_display;
|
||||||
scan_target_modals_.composite_colour_space = colour_space;
|
scan_target_modals_.composite_colour_space = colour_space;
|
||||||
scan_target_->set_modals(scan_target_modals_);
|
scan_target_->set_modals(scan_target_modals_);
|
||||||
|
Loading…
Reference in New Issue
Block a user