summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/video/huc6260.cpp8
-rw-r--r--src/devices/video/huc6260.h4
2 files changed, 4 insertions, 8 deletions
diff --git a/src/devices/video/huc6260.cpp b/src/devices/video/huc6260.cpp
index fce729df024..ec99e8417eb 100644
--- a/src/devices/video/huc6260.cpp
+++ b/src/devices/video/huc6260.cpp
@@ -80,13 +80,9 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para
/* Get next pixel information */
m_pixel_data = m_next_pixel_data_cb( 0, 0xffff );
g_profiler.stop();
- if ( m_greyscales )
- {
- m_pixel_data += 512;
- }
}
- bitmap_line[ h ] = m_palette[ m_pixel_data ];
+ bitmap_line[ h ] = m_palette[ m_pixel_data ] | m_greyscales;
m_pixel_clock = ( m_pixel_clock + 1 ) % m_pixels_per_clock;
h = ( h + 1 ) % WPF;
@@ -231,7 +227,7 @@ WRITE8_MEMBER( huc6260_device::write )
switch ( offset & 7 )
{
case 0x00: /* Control register */
- m_greyscales = data & 0x80;
+ m_greyscales = (data & 0x80) << 2; // setup the greyscale base
m_blur = data & 0x04;
m_pixels_per_clock = ( data & 0x02 ) ? 2 : ( ( data & 0x01 ) ? 3 : 4 );
break;
diff --git a/src/devices/video/huc6260.h b/src/devices/video/huc6260.h
index a863a05d762..e6a06b59606 100644
--- a/src/devices/video/huc6260.h
+++ b/src/devices/video/huc6260.h
@@ -78,12 +78,12 @@ private:
uint16_t m_palette[512];
uint16_t m_address;
- uint8_t m_greyscales; /* Should the HuC6260 output grey or color graphics */
+ uint16_t m_greyscales; /* Should the HuC6260 output grey or color graphics */
uint8_t m_blur; /* Should the edges of graphics be blurred/Select screen height 0=262, 1=263 */
uint8_t m_pixels_per_clock; /* Number of pixels to output per colour clock */
uint16_t m_pixel_data;
uint8_t m_pixel_clock;
-
+
emu_timer *m_timer;
std::unique_ptr<bitmap_ind16> m_bmp;