mirror of
https://github.com/TomHarte/CLK.git
synced 2024-10-07 21:57:46 +00:00
Fixed NTSC colour cycle count, and hence the 2600's reported line lengths and phase offset.
This commit is contained in:
parent
cccdc558e7
commit
4751615623
@ -32,7 +32,7 @@ TIA::TIA(bool create_crt) :
|
|||||||
{
|
{
|
||||||
if(create_crt)
|
if(create_crt)
|
||||||
{
|
{
|
||||||
crt_.reset(new Outputs::CRT::CRT(cycles_per_line * 2 + 1, 1, Outputs::CRT::DisplayType::NTSC60, 1));
|
crt_.reset(new Outputs::CRT::CRT(cycles_per_line * 2 - 1, 1, Outputs::CRT::DisplayType::NTSC60, 1));
|
||||||
crt_->set_output_device(Outputs::CRT::Television);
|
crt_->set_output_device(Outputs::CRT::Television);
|
||||||
set_output_mode(OutputMode::NTSC);
|
set_output_mode(OutputMode::NTSC);
|
||||||
}
|
}
|
||||||
@ -150,7 +150,7 @@ void TIA::set_output_mode(Atari2600::TIA::OutputMode output_mode)
|
|||||||
"uint y = c & 14u;"
|
"uint y = c & 14u;"
|
||||||
"uint iPhase = (c >> 4);"
|
"uint iPhase = (c >> 4);"
|
||||||
|
|
||||||
"float phaseOffset = 6.283185308 * float(iPhase) / 13.0 + 5.074880441076923;"
|
"float phaseOffset = 6.283185308 * (float(iPhase) + 3.0) / 13.0 + 5.074880441076923;"
|
||||||
"return mix(float(y) / 14.0, step(1, iPhase) * cos(phase + phaseOffset), amplitude);"
|
"return mix(float(y) / 14.0, step(1, iPhase) * cos(phase + phaseOffset), amplitude);"
|
||||||
"}");
|
"}");
|
||||||
display_type = Outputs::CRT::DisplayType::NTSC60;
|
display_type = Outputs::CRT::DisplayType::NTSC60;
|
||||||
|
@ -59,7 +59,7 @@ void CRT::set_new_display_type(unsigned int cycles_per_line, DisplayType display
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DisplayType::NTSC60:
|
case DisplayType::NTSC60:
|
||||||
set_new_timing(cycles_per_line, 262, ColourSpace::YIQ, 545, 2, false);
|
set_new_timing(cycles_per_line, 262, ColourSpace::YIQ, 455, 2, false); // i.e. 227.5
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user