mirror of
https://github.com/holub/mame
synced 2025-10-08 17:37:56 +03:00
vic4567: Use device_palette_interface (nw)
This commit is contained in:
parent
6e0979308e
commit
7df74b4ed9
@ -149,6 +149,7 @@ DEFINE_DEVICE_TYPE(VIC3, vic3_device, "vic3", "CSG 4567 VIC-III")
|
|||||||
|
|
||||||
vic3_device::vic3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
vic3_device::vic3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
: device_t(mconfig, VIC3, tag, owner, clock)
|
: device_t(mconfig, VIC3, tag, owner, clock)
|
||||||
|
, device_palette_interface(mconfig, *this)
|
||||||
, device_video_interface(mconfig, *this)
|
, device_video_interface(mconfig, *this)
|
||||||
, m_type(vic3_type::NTSC)
|
, m_type(vic3_type::NTSC)
|
||||||
, m_cpu(*this, finder_base::DUMMY_TAG)
|
, m_cpu(*this, finder_base::DUMMY_TAG)
|
||||||
@ -160,7 +161,6 @@ vic3_device::vic3_device(const machine_config &mconfig, const char *tag, device_
|
|||||||
, m_lightpen_x_cb(*this)
|
, m_lightpen_x_cb(*this)
|
||||||
, m_lightpen_y_cb(*this)
|
, m_lightpen_y_cb(*this)
|
||||||
, m_c64_mem_r_cb(*this)
|
, m_c64_mem_r_cb(*this)
|
||||||
, m_palette(*this, "palette")
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -354,9 +354,12 @@ void vic3_device::device_reset()
|
|||||||
|
|
||||||
memset(m_shift, 0, ARRAY_LENGTH(m_shift));
|
memset(m_shift, 0, ARRAY_LENGTH(m_shift));
|
||||||
memset(m_multi_collision, 0, ARRAY_LENGTH(m_multi_collision));
|
memset(m_multi_collision, 0, ARRAY_LENGTH(m_multi_collision));
|
||||||
memset(m_palette_red, 0, ARRAY_LENGTH(m_palette_red));
|
|
||||||
memset(m_palette_green, 0, ARRAY_LENGTH(m_palette_green));
|
for (int i = 0; i < 256; i++)
|
||||||
memset(m_palette_blue, 0, ARRAY_LENGTH(m_palette_blue));
|
{
|
||||||
|
m_palette_red[i] = m_palette_green[i] = m_palette_blue[i] = 0;
|
||||||
|
set_pen_color(i, rgb_t::black());
|
||||||
|
}
|
||||||
|
|
||||||
m_palette_dirty = 0;
|
m_palette_dirty = 0;
|
||||||
}
|
}
|
||||||
@ -1937,7 +1940,7 @@ void vic3_device::raster_interrupt_gen()
|
|||||||
m_rasterline = 0;
|
m_rasterline = 0;
|
||||||
if (m_palette_dirty)
|
if (m_palette_dirty)
|
||||||
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
||||||
m_palette->set_pen_color(i, m_palette_red[i] << 4, m_palette_green[i] << 4, m_palette_blue[i] << 4);
|
set_pen_color(i, m_palette_red[i] << 4, m_palette_green[i] << 4, m_palette_blue[i] << 4);
|
||||||
|
|
||||||
if (m_palette_dirty)
|
if (m_palette_dirty)
|
||||||
{
|
{
|
||||||
@ -2041,11 +2044,3 @@ uint32_t vic3_device::video_update( bitmap_ind16 &bitmap, const rectangle &clipr
|
|||||||
copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
|
copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_add_mconfig - add device configuration
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
MACHINE_CONFIG_START(vic3_device::device_add_mconfig)
|
|
||||||
MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x100)
|
|
||||||
MACHINE_CONFIG_END
|
|
||||||
|
@ -102,6 +102,7 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
class vic3_device : public device_t,
|
class vic3_device : public device_t,
|
||||||
|
public device_palette_interface,
|
||||||
public device_video_interface
|
public device_video_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -131,7 +132,9 @@ protected:
|
|||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_start() override;
|
virtual void device_start() override;
|
||||||
virtual void device_reset() override;
|
virtual void device_reset() override;
|
||||||
virtual void device_add_mconfig(machine_config &config) override;
|
|
||||||
|
// device_palette_interface override
|
||||||
|
virtual uint32_t palette_entries() const override { return 0x100; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static constexpr unsigned SPRITE_BASE_X_SIZE = 24;
|
static constexpr unsigned SPRITE_BASE_X_SIZE = 24;
|
||||||
@ -229,8 +232,6 @@ private:
|
|||||||
uint8_t m_palette_green[0x100];
|
uint8_t m_palette_green[0x100];
|
||||||
uint8_t m_palette_blue[0x100];
|
uint8_t m_palette_blue[0x100];
|
||||||
int m_palette_dirty;
|
int m_palette_dirty;
|
||||||
|
|
||||||
required_device<palette_device> m_palette;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DECLARE_DEVICE_TYPE(VIC3, vic3_device)
|
DECLARE_DEVICE_TYPE(VIC3, vic3_device)
|
||||||
|
Loading…
Reference in New Issue
Block a user