summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-05-16 02:33:10 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-05-16 02:33:10 -0400
commit3bad31a73a2e89446c0c906524c41b0ead9b44c9 (patch)
tree016246368a421fe09f83e62497a314808bcc70d5
parent8e768ae25e1e0e9ea300e4d75cfc22c2c972d5ee (diff)
cit101: Add brightness control (nw)
-rw-r--r--src/mame/drivers/cit101.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/mame/drivers/cit101.cpp b/src/mame/drivers/cit101.cpp
index 1dd1b0709da..96ccac0ef98 100644
--- a/src/mame/drivers/cit101.cpp
+++ b/src/mame/drivers/cit101.cpp
@@ -104,6 +104,7 @@ private:
u8 m_e0_latch;
bool m_blink;
+ u8 m_brightness;
required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen;
@@ -119,8 +120,11 @@ void cit101_state::machine_start()
subdevice<i8251_device>("comuart")->write_cts(0);
subdevice<i8251_device>("kbduart")->write_cts(0);
+ m_brightness = 0xff;
+
save_item(NAME(m_e0_latch));
save_item(NAME(m_blink));
+ save_item(NAME(m_brightness));
}
@@ -137,10 +141,10 @@ void cit101_state::draw_line(uint32_t *pixptr, int minx, int maxx, int line, boo
u8 char_data = m_chargen[(m_mainram[rowaddr] << 4) | line];
if (last_line && BIT(attr, 0))
char_data ^= 0xff;
- rgb_t on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t::white();
- rgb_t off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::white() : rgb_t::black();
+ rgb_t on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t(m_brightness, m_brightness, m_brightness);
+ rgb_t off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t(m_brightness, m_brightness, m_brightness) : rgb_t::black();
if (BIT(attr, 3) && m_blink)
- on_color = rgb_t(0xc0, 0xc0, 0xc0);
+ on_color = rgb_t(m_brightness * 0.75, m_brightness * 0.75, m_brightness * 0.75);
bool last_bit = false;
for (int x = 0; x <= maxx; x++)
{
@@ -162,10 +166,10 @@ void cit101_state::draw_line(uint32_t *pixptr, int minx, int maxx, int line, boo
char_data = m_chargen[(m_mainram[rowaddr] << 4) | line];
if (last_line && BIT(attr, 0))
char_data ^= 0xff;
- on_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::black() : rgb_t::white();
- off_color = (BIT(attr, 1) != BIT(scrattr, 0)) ? rgb_t::white() : rgb_t::black();
+ on_color = BIT(attr, 1) ? rgb_t::black() : rgb_t(m_brightness, m_brightness, m_brightness);
+ off_color = BIT(attr, 1) ? rgb_t(m_brightness, m_brightness, m_brightness) : rgb_t::black();
if (BIT(attr, 3) && m_blink)
- on_color = rgb_t(0xc0, 0xc0, 0xc0);
+ on_color = rgb_t(m_brightness * 0.75, m_brightness * 0.75, m_brightness * 0.75);
last_bit = false;
}
}
@@ -266,6 +270,8 @@ WRITE8_MEMBER(cit101_state::screen_control_w)
WRITE8_MEMBER(cit101_state::brightness_w)
{
+ // Function of upper 3 bits is unknown
+ m_brightness = pal5bit(~data & 0x1f);
}
WRITE8_MEMBER(cit101_state::nvr_address_w)