openMSX
V9990DisplayTiming.hh
Go to the documentation of this file.
1#ifndef V9990DISPLAYTIMING_HH
2#define V9990DISPLAYTIMING_HH
3
4namespace openmsx {
5
12{
13 const int cycle;
14 const int blank;
15 const int border1;
16 const int display;
17 const int border2;
18};
19
21{
22public:
31 static constexpr int UC_TICKS_PER_SECOND = 3579545 * 12; // 42.9MHz
32
36 static constexpr int UC_TICKS_PER_LINE = 2736;
37
41 static constexpr auto lineMCLK = V9990DisplayPeriod{
42 V9990DisplayTiming::UC_TICKS_PER_LINE, 400, 112, 2048, 112};
43
47 static constexpr auto lineXTAL = V9990DisplayPeriod{
49
53 static constexpr auto displayNTSC_MCLK = V9990DisplayPeriod{262, 15, 14, 212, 14};
54
58 static constexpr auto displayNTSC_XTAL = V9990DisplayPeriod{262, 15, 0, 240, 0};
59
63 static constexpr auto displayPAL_MCLK = V9990DisplayPeriod{313, 15, 41, 212, 37};
64
68 static constexpr auto displayPAL_XTAL = V9990DisplayPeriod{313, 15, 0, 290, 0};
69
70
75 [[nodiscard]] static constexpr int getUCTicksPerFrame(bool palTiming) {
76 return palTiming ? (displayPAL_MCLK.cycle * UC_TICKS_PER_LINE)
78 }
79};
80
81} // openmsx
82
83#endif
static constexpr int UC_TICKS_PER_LINE
The number of clock ticks per line is independent of the crystal used or the display mode (NTSC/PAL)
static constexpr auto displayNTSC_MCLK
NTSC display timing, when using MCLK: Normal display mode with borders.
static constexpr int getUCTicksPerFrame(bool palTiming)
Get the number of UC ticks in 1 frame.
static constexpr auto displayPAL_XTAL
PAL display timing, when using XTAL: Overscan mode without borders.
static constexpr auto lineXTAL
Horizontal (line) timing when using XTAL: 'Overscan' modes without border.
static constexpr int UC_TICKS_PER_SECOND
The V9990 has an internal clock (MCLK @ 14MHz) and a terminal for an external clock (XTAL1),...
static constexpr auto displayNTSC_XTAL
NTSC display timing, when using XTAL: Overscan mode without borders.
static constexpr auto lineMCLK
Horizontal (line) timing when using MCLK: 'Normal' display modes.
static constexpr auto displayPAL_MCLK
PAL display timing, when using MCLK: Normal display mode with borders.
This file implemented 3 utility functions:
Definition Autofire.cc:11
A period, either horizontal or vertical, starts with a synchronisation pulse followed by a blank peri...