apple/dafb.cpp: Workaround for double-screen issue in 24bpp 832x624, and support 19" 1024x768 monitors on DAFB2 and later. [R. Belmont]

This commit is contained in:
arbee 2023-09-10 20:32:16 -04:00
parent 0c2b7eb2b4
commit 9c284a74fb

6
src/mame/apple/dafb.cpp Normal file → Executable file
View File

@ -208,6 +208,7 @@ static INPUT_PORTS_START(monitor_config_noconv)
PORT_CONFSETTING(0x06, u8"Mac Hi-Res Display (12-14\" 640\u00d7480)") // "High Res" PORT_CONFSETTING(0x06, u8"Mac Hi-Res Display (12-14\" 640\u00d7480)") // "High Res"
PORT_CONFSETTING(ext(1, 1, 3), "640x480 VGA") PORT_CONFSETTING(ext(1, 1, 3), "640x480 VGA")
PORT_CONFSETTING(ext(2, 3, 1), "832x624 16\" RGB") // "Goldfish" or "16 inch RGB" PORT_CONFSETTING(ext(2, 3, 1), "832x624 16\" RGB") // "Goldfish" or "16 inch RGB"
PORT_CONFSETTING(ext(3, 2, 2), "1024\u00d7768 19\" RGB");
INPUT_PORTS_END INPUT_PORTS_END
ioport_constructor dafb_base::device_input_ports() const ioport_constructor dafb_base::device_input_ports() const
@ -818,10 +819,15 @@ void dafb_base::recalc_mode()
m_hres -= 23; m_hres -= 23;
} }
else else
{
// FIXME: Quadra 800 family machines in 832x624 program an unnecessary 2x clock divider in 24bpp mode only.
// Need to determine if this is deliberate and we're just missing something.
if ((m_hres != 832) || (clockdiv != 2))
{ {
m_hres *= clockdiv; m_hres *= clockdiv;
m_htotal *= clockdiv; m_htotal *= clockdiv;
} }
}
// if we're interlaced, bump the vertical back to double // if we're interlaced, bump the vertical back to double
if (BIT(m_config, 2)) if (BIT(m_config, 2))