summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/screen.h')
-rw-r--r--src/emu/screen.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h
index c530dc75502..2211e38ee2c 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -217,6 +217,15 @@ public:
m_height = vtotal;
m_visarea.set(hbend, hbstart - 1, vbend, vbstart - 1);
}
+ void set_raw_fractional(u32 pixclock, double htotal, double hbend, double hbstart, double vtotal, double vbend, double vbstart)
+ {
+ m_clock = pixclock;
+ m_refresh = HZ_TO_ATTOSECONDS(pixclock) * htotal * vtotal;
+ m_vblank = m_refresh / vtotal * (vtotal - (vbstart - vbend));
+ m_width = (int)ceil(htotal);
+ m_height = (int)ceil(vtotal);
+ m_visarea.set((int)ceil(hbend), (int)floor(hbstart) - 1, (int)ceil(vbend), (int)floor(vbstart) - 1);
+ }
void set_raw(const XTAL &xtal, u16 htotal, u16 hbend, u16 hbstart, u16 vtotal, u16 vbend, u16 vbstart) { set_raw(xtal.value(), htotal, hbend, hbstart, vtotal, vbend, vbstart); }
void set_refresh(attoseconds_t rate) { m_refresh = rate; }
template <typename T> void set_refresh_hz(T &&hz) { set_refresh(HZ_TO_ATTOSECONDS(std::forward<T>(hz))); }