From 06b8fe391657f7b587970fbc0dbed62406247fcf Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sat, 15 Mar 2014 12:08:24 +0000 Subject: [PATCH] Fixed all bitmap.palette() users to use m_palette instead (nw) --- src/emu/bus/a2bus/a2videoterm.c | 5 +++-- src/emu/bus/a2bus/a2videoterm.h | 2 ++ src/emu/bus/ecbbus/grip.c | 2 +- src/emu/video/pc_cga.c | 25 ++++++++++++++----------- src/mame/drivers/othello.c | 7 +++++-- src/mess/drivers/a5105.c | 8 +++++--- src/mess/drivers/alphatro.c | 7 +++++-- src/mess/drivers/apc.c | 2 +- src/mess/drivers/applix.c | 7 +++++-- src/mess/drivers/bigbord2.c | 7 +++++-- src/mess/drivers/bml3.c | 7 +++++-- src/mess/drivers/camplynx.c | 10 +++++++--- src/mess/drivers/dim68k.c | 6 ++++-- src/mess/drivers/dmv.c | 6 ++++-- src/mess/drivers/ec65.c | 6 ++++-- src/mess/drivers/einstein.c | 2 +- src/mess/drivers/h19.c | 6 ++++-- src/mess/drivers/if800.c | 9 +++++---- src/mess/drivers/ipds.c | 6 ++++-- src/mess/drivers/lola8a.c | 7 +++++-- src/mess/drivers/mx2178.c | 7 +++++-- src/mess/drivers/mycom.c | 7 +++++-- src/mess/drivers/mz3500.c | 2 +- src/mess/drivers/mz6500.c | 11 ++++++----- src/mess/drivers/pasopia.c | 18 ++++++++++-------- src/mess/drivers/pc9801.c | 4 ++-- src/mess/drivers/pyl601.c | 15 ++++++++------- src/mess/drivers/qx10.c | 4 ++-- src/mess/drivers/sapi1.c | 7 +++++-- src/mess/drivers/sm1800.c | 6 ++++-- src/mess/drivers/tavernie.c | 7 +++++-- src/mess/drivers/tiki100.c | 2 +- src/mess/drivers/tim100.c | 2 +- src/mess/drivers/tvc.c | 2 +- src/mess/drivers/unior.c | 7 +++++-- src/mess/drivers/v6809.c | 7 +++++-- src/mess/drivers/victor9k.c | 2 +- src/mess/drivers/zorba.c | 7 +++++-- src/mess/drivers/zrt80.c | 7 +++++-- src/mess/includes/bbc.h | 4 +++- src/mess/includes/dgn_beta.h | 4 +++- src/mess/includes/einstein.h | 1 + src/mess/includes/kaypro.h | 5 ++++- src/mess/includes/mbc55x.h | 4 +++- src/mess/includes/mbee.h | 5 ++++- src/mess/includes/poisk1.h | 5 +++-- src/mess/includes/radio86.h | 7 +++++-- src/mess/includes/svi318.h | 3 ++- src/mess/includes/tvc.h | 4 +++- src/mess/includes/victor9k.h | 4 +++- src/mess/machine/svi318.c | 2 +- src/mess/video/bbc.c | 2 +- src/mess/video/dgn_beta.c | 2 +- src/mess/video/kaypro.c | 2 +- src/mess/video/mbc55x.c | 2 +- src/mess/video/mbee.c | 6 +++--- src/mess/video/pc_aga.c | 24 ++++++++++++++---------- src/mess/video/poisk1.c | 6 +++--- src/mess/video/radio86.c | 8 ++++---- src/mess/video/super80.c | 2 +- 60 files changed, 230 insertions(+), 133 deletions(-) diff --git a/src/emu/bus/a2bus/a2videoterm.c b/src/emu/bus/a2bus/a2videoterm.c index eaf84e9f26c..5c98d1645e1 100644 --- a/src/emu/bus/a2bus/a2videoterm.c +++ b/src/emu/bus/a2bus/a2videoterm.c @@ -186,7 +186,8 @@ const rom_entry *a2bus_aevm80_device::device_rom_region() const a2bus_videx80_device::a2bus_videx80_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source), device_a2bus_card_interface(mconfig, *this), - m_crtc(*this, VIDEOTERM_MC6845_NAME) + m_crtc(*this, VIDEOTERM_MC6845_NAME), + m_palette(*this, ":palette") { } @@ -349,7 +350,7 @@ void a2bus_videx80_device::write_c800(address_space &space, UINT16 offset, UINT8 static MC6845_UPDATE_ROW( videoterm_update_row ) { a2bus_videx80_device *vterm = downcast(device->owner()); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = vterm->m_palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); UINT16 chr_base = ra; //( ra & 0x08 ) ? 0x800 | ( ra & 0x07 ) : ra; int i; diff --git a/src/emu/bus/a2bus/a2videoterm.h b/src/emu/bus/a2bus/a2videoterm.h index 5e9cc470044..5213f41945c 100644 --- a/src/emu/bus/a2bus/a2videoterm.h +++ b/src/emu/bus/a2bus/a2videoterm.h @@ -50,6 +50,8 @@ protected: private: int m_rambank; +public: + required_device m_palette; }; class a2bus_videoterm_device : public a2bus_videx80_device diff --git a/src/emu/bus/ecbbus/grip.c b/src/emu/bus/ecbbus/grip.c index e83e0bf4e56..f5697d32d44 100644 --- a/src/emu/bus/ecbbus/grip.c +++ b/src/emu/bus/ecbbus/grip.c @@ -255,7 +255,7 @@ static MC6845_UPDATE_ROW( grip_update_row ) static MC6845_UPDATE_ROW( grip5_update_row ) { grip5_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int column, bit; for (column = 0; column < x_count; column++) diff --git a/src/emu/video/pc_cga.c b/src/emu/video/pc_cga.c index 7f2195d31e5..e694d72fd06 100644 --- a/src/emu/video/pc_cga.c +++ b/src/emu/video/pc_cga.c @@ -276,6 +276,8 @@ static struct size_t videoram_size; UINT8 *videoram; UINT8 is_superimpose; + + palette_device *palette; } cga; @@ -324,6 +326,7 @@ static int internal_pc_cga_video_start(running_machine &machine) cga.config_input_port = machine.root_device().ioport(":pcvideo_cga_config" ); + cga.palette = machine.device("palette"); return 0; } @@ -482,7 +485,7 @@ static MC6845_UPDATE_ROW( cga_text_inten_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -522,7 +525,7 @@ static MC6845_UPDATE_ROW( cga_text_inten_comp_grey_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -561,7 +564,7 @@ static MC6845_UPDATE_ROW( cga_text_inten_alt_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -600,7 +603,7 @@ static MC6845_UPDATE_ROW( cga_text_blink_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -644,7 +647,7 @@ static MC6845_UPDATE_ROW( cga_text_blink_update_row_si ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -696,7 +699,7 @@ static MC6845_UPDATE_ROW( cga_text_blink_alt_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -744,7 +747,7 @@ static MC6845_UPDATE_ROW( cga_gfx_4bppl_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -804,7 +807,7 @@ static MC6845_UPDATE_ROW( cga_gfx_4bpph_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -848,7 +851,7 @@ static MC6845_UPDATE_ROW( cga_gfx_2bpp_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); int i; running_machine &machine = device->machine(); @@ -884,7 +887,7 @@ static MC6845_UPDATE_ROW( cga_gfx_1bpp_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); UINT8 fg = cga.color_select & 0x0F; int i; running_machine &machine = device->machine(); @@ -1462,7 +1465,7 @@ static MC6845_UPDATE_ROW( pc1512_gfx_4bpp_update_row ) { UINT8 *videoram = cga.videoram; UINT32 *p = &bitmap.pix32(y); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = cga.palette->palette()->entry_list_raw(); UINT16 offset_base = ra << 13; int j; running_machine &machine = device->machine(); diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c index a96a3c2cd94..7453dfba6b9 100644 --- a/src/mame/drivers/othello.c +++ b/src/mame/drivers/othello.c @@ -55,7 +55,8 @@ public: m_videoram(*this, "videoram"), m_maincpu(*this, "maincpu"), m_ay1(*this, "ay1"), - m_ay2(*this, "ay2") + m_ay2(*this, "ay2"), + m_palette(*this, "palette") { } @@ -79,6 +80,8 @@ public: required_device m_ay2; mc6845_device *m_mc6845; device_t *m_n7751; + required_device m_palette; + DECLARE_READ8_MEMBER(unk_87_r); DECLARE_WRITE8_MEMBER(unk_8a_w); DECLARE_WRITE8_MEMBER(unk_8c_w); @@ -105,7 +108,7 @@ public: static MC6845_UPDATE_ROW( update_row ) { othello_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int cx, x; UINT32 data_address; UINT32 tmp; diff --git a/src/mess/drivers/a5105.c b/src/mess/drivers/a5105.c index c9eb43cc4a5..20ecde8340f 100644 --- a/src/mess/drivers/a5105.c +++ b/src/mess/drivers/a5105.c @@ -50,7 +50,8 @@ public: m_floppy3(*this, "upd765a:3"), m_video_ram(*this, "video_ram"), m_ram(*this, RAM_TAG), - m_gfxdecode(*this, "gfxdecode") + m_gfxdecode(*this, "gfxdecode"), + m_palette(*this, "palette") { } required_device m_maincpu; @@ -86,13 +87,14 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); required_device m_ram; required_device m_gfxdecode; + required_device m_palette; }; /* TODO */ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) { a5105_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int xi,gfx; UINT8 pen; @@ -110,7 +112,7 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) { a5105_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int x; int xi,yi; int tile,color; diff --git a/src/mess/drivers/alphatro.c b/src/mess/drivers/alphatro.c index 3b4d934c5f3..2372505b0a5 100644 --- a/src/mess/drivers/alphatro.c +++ b/src/mess/drivers/alphatro.c @@ -66,7 +66,8 @@ public: , m_usart(*this, "usart") , m_cass(*this, "cassette") , m_beep(*this, "beeper") - , m_p_ram(*this, "main_ram") + , m_p_ram(*this, "main_ram"), + m_palette(*this, "palette") { } DECLARE_READ8_MEMBER(port10_r); @@ -96,6 +97,8 @@ private: required_device m_cass; required_device m_beep; required_shared_ptr m_p_ram; +public: + required_device m_palette; }; READ8_MEMBER( alphatro_state::port10_r ) @@ -154,7 +157,7 @@ void alphatro_state::video_start() static MC6845_UPDATE_ROW( alphatro_update_row ) { alphatro_state *state = device->machine().driver_data(); - const rgb_t *pens = bitmap.palette()->entry_list_raw(); + const rgb_t *pens = state->m_palette->palette()->entry_list_raw(); bool palette = BIT(state->ioport("CONFIG")->read(), 5); if (y==0) state->m_flashcnt++; bool inv; diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c index 1c37f4eae1a..4eca34216b8 100644 --- a/src/mess/drivers/apc.c +++ b/src/mess/drivers/apc.c @@ -192,7 +192,7 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) { apc_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int xi,yi,yi_trans; int x; UINT8 char_size; diff --git a/src/mess/drivers/applix.c b/src/mess/drivers/applix.c index bec43f0dbf8..4eee548d15d 100644 --- a/src/mess/drivers/applix.c +++ b/src/mess/drivers/applix.c @@ -92,7 +92,8 @@ public: m_io_k3a0(*this, "K3a_0"), m_io_k3b0(*this, "K3b_0"), m_io_k0b(*this, "K0b"), - m_expansion(*this, "expansion"){ } + m_expansion(*this, "expansion"), + m_palette(*this, "palette"){ } DECLARE_READ16_MEMBER(applix_inputs_r); DECLARE_WRITE16_MEMBER(palette_w); @@ -194,6 +195,8 @@ private: required_ioport m_io_k3b0; required_ioport m_io_k0b; required_shared_ptr m_expansion; +public: + required_device m_palette; }; /* @@ -774,7 +777,7 @@ static MC6845_UPDATE_ROW( applix_update_row ) // Need to display a border colour. // There is a monochrome mode, but no info found as yet. applix_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 i; UINT16 chr,x; UINT32 mem, vidbase = (state->m_video_latch & 15) << 14, *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/bigbord2.c b/src/mess/drivers/bigbord2.c index a72acfa3125..5d1ab8ca9f8 100644 --- a/src/mess/drivers/bigbord2.c +++ b/src/mess/drivers/bigbord2.c @@ -116,7 +116,8 @@ public: m_dsw(*this, "DSW"), m_bankr(*this, "bankr"), m_bankv(*this, "bankv"), - m_banka(*this, "banka") + m_banka(*this, "banka"), + m_palette(*this, "palette") { } @@ -164,6 +165,8 @@ private: required_memory_bank m_bankr; required_memory_bank m_bankv; required_memory_bank m_banka; +public: + required_device m_palette; }; /* Status port @@ -593,7 +596,7 @@ GFXDECODE_END MC6845_UPDATE_ROW( bigbord2_update_row ) { bigbord2_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx,inv; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c index c54d37008da..26179c929d8 100644 --- a/src/mess/drivers/bml3.c +++ b/src/mess/drivers/bml3.c @@ -74,7 +74,8 @@ public: m_cass(*this, "cassette"), m_speaker(*this, "speaker"), m_ym2203(*this, "ym2203"), - m_acia6850(*this, "acia6850") + m_acia6850(*this, "acia6850"), + m_palette(*this, "palette") { } @@ -152,6 +153,8 @@ private: required_device m_speaker; optional_device m_ym2203; required_device m_acia6850; +public: + required_device m_palette; }; #define mc6845_h_char_total (m_crtc_vreg[0]) @@ -589,7 +592,7 @@ INPUT_PORTS_END static MC6845_UPDATE_ROW( update_row ) { bml3_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); // The MB-6890 has a 5-bit colour RAM region. The meaning of the bits are: // 0: blue // 1: red diff --git a/src/mess/drivers/camplynx.c b/src/mess/drivers/camplynx.c index 89331ba2904..e74ef7fc18f 100644 --- a/src/mess/drivers/camplynx.c +++ b/src/mess/drivers/camplynx.c @@ -92,7 +92,8 @@ public: //m_cass(*this, "cassette"), //m_wave(*this, WAVE_TAG), //m_printer(*this, "centronics"), - m_crtc(*this, "crtc") + m_crtc(*this, "crtc"), + m_palette(*this, "palette") //m_fdc(*this, "fdc") { } @@ -101,6 +102,7 @@ public: //required_device<> m_wave; //required_device<> m_printer; required_device m_crtc; + required_device m_palette; //optional_device<> m_fdc; DECLARE_WRITE8_MEMBER(lynx48k_bank_w); DECLARE_WRITE8_MEMBER(lynx128k_bank_w); @@ -383,8 +385,9 @@ PALETTE_INIT_MEMBER(camplynx_state, camplynx) static MC6845_UPDATE_ROW( lynx48k_update_row ) { + camplynx_state *state = device->machine().driver_data(); UINT8 *RAM = device->machine().root_device().memregion("maincpu")->base(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 r,g,b; UINT32 x, *p = &bitmap.pix32(y); @@ -407,8 +410,9 @@ static MC6845_UPDATE_ROW( lynx48k_update_row ) static MC6845_UPDATE_ROW( lynx128k_update_row ) { + camplynx_state *state = device->machine().driver_data(); UINT8 *RAM = device->machine().root_device().memregion("maincpu")->base(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 r,g,b; UINT32 x, *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/dim68k.c b/src/mess/drivers/dim68k.c index e6c90fb6e20..57d735236a3 100644 --- a/src/mess/drivers/dim68k.c +++ b/src/mess/drivers/dim68k.c @@ -49,7 +49,8 @@ public: m_maincpu(*this, "maincpu"), m_crtc(*this, "crtc"), m_speaker(*this, "speaker"), - m_ram(*this, "ram"){ } + m_ram(*this, "ram"), + m_palette(*this, "palette") { } DECLARE_READ16_MEMBER( dim68k_duart_r ); DECLARE_READ16_MEMBER( dim68k_fdc_r ); @@ -75,6 +76,7 @@ public: required_device m_crtc; required_device m_speaker; required_shared_ptr m_ram; + required_device m_palette; }; READ16_MEMBER( dim68k_state::dim68k_duart_r ) @@ -225,7 +227,7 @@ void dim68k_state::video_start() MC6845_UPDATE_ROW( dim68k_update_row ) { dim68k_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx,x,xx,inv; UINT16 chr16=0x2020; // set to spaces if screen is off UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/dmv.c b/src/mess/drivers/dmv.c index 09b82559f2d..98ba00536d0 100644 --- a/src/mess/drivers/dmv.c +++ b/src/mess/drivers/dmv.c @@ -28,7 +28,8 @@ public: m_fdc(*this, "upd765"), m_floppy0(*this, "upd765:0:525dd"), m_floppy1(*this, "upd765:1:525dd"), - m_video_ram(*this, "video_ram") + m_video_ram(*this, "video_ram"), + m_palette(*this, "palette") { } required_device m_maincpu; @@ -58,6 +59,7 @@ public: required_shared_ptr m_video_ram; int m_fdc_int_line; + required_device m_palette; }; @@ -151,7 +153,7 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) { dmv_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 * chargen = state->memregion("maincpu")->base() + 0x1000; for( int x = 0; x < pitch; x++ ) diff --git a/src/mess/drivers/ec65.c b/src/mess/drivers/ec65.c index f4d2c46b97e..5ea45efe915 100644 --- a/src/mess/drivers/ec65.c +++ b/src/mess/drivers/ec65.c @@ -32,7 +32,8 @@ public: m_via_0(*this, VIA6522_0_TAG), m_via_1(*this, VIA6522_1_TAG), m_p_videoram(*this, "videoram"), - m_maincpu(*this, "maincpu") + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette") { } @@ -44,6 +45,7 @@ public: virtual void machine_reset(); virtual void video_start(); required_device m_maincpu; + required_device m_palette; }; class ec65k_state : public driver_device @@ -125,7 +127,7 @@ void ec65_state::video_start() static MC6845_UPDATE_ROW( ec65_update_row ) { ec65_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx,inv; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/einstein.c b/src/mess/drivers/einstein.c index fcec47f8cce..c7052536777 100644 --- a/src/mess/drivers/einstein.c +++ b/src/mess/drivers/einstein.c @@ -102,7 +102,7 @@ READ8_MEMBER(einstein_state::einstein_80col_ram_r) static MC6845_UPDATE_ROW( einstein_6845_update_row ) { einstein_state *einstein = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = einstein->m_palette->palette()->entry_list_raw(); UINT8 *data = einstein->m_region_gfx1->base(); UINT8 char_code, data_byte; int i, x; diff --git a/src/mess/drivers/h19.c b/src/mess/drivers/h19.c index c357d0924a4..778cbd40c44 100644 --- a/src/mess/drivers/h19.c +++ b/src/mess/drivers/h19.c @@ -59,7 +59,8 @@ public: m_crtc(*this, "crtc"), m_ace(*this, "ins8250"), m_beep(*this, "beeper"), - m_p_videoram(*this, "videoram") + m_p_videoram(*this, "videoram"), + m_palette(*this, "palette") { } @@ -72,6 +73,7 @@ public: DECLARE_WRITE8_MEMBER(h19_c0_w); DECLARE_WRITE8_MEMBER(h19_kbd_put); required_shared_ptr m_p_videoram; + required_device m_palette; UINT8 *m_p_chargen; UINT8 m_term_data; virtual void machine_reset(); @@ -321,7 +323,7 @@ void h19_state::video_start() static MC6845_UPDATE_ROW( h19_update_row ) { h19_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/if800.c b/src/mess/drivers/if800.c index 60393ba3cca..eaba1bce7bc 100644 --- a/src/mess/drivers/if800.c +++ b/src/mess/drivers/if800.c @@ -16,10 +16,10 @@ class if800_state : public driver_device public: if800_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_hgdc(*this, "upd7220") - , + m_hgdc(*this, "upd7220"), m_video_ram(*this, "video_ram"), - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette") { } required_device m_hgdc; @@ -27,12 +27,13 @@ public: virtual void machine_start(); virtual void machine_reset(); required_device m_maincpu; + required_device m_palette; }; static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) { if800_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int xi,gfx; UINT8 pen; diff --git a/src/mess/drivers/ipds.c b/src/mess/drivers/ipds.c index 30a79c26728..b261c142432 100644 --- a/src/mess/drivers/ipds.c +++ b/src/mess/drivers/ipds.c @@ -19,12 +19,14 @@ public: ipds_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_crtc(*this, "i8275") + m_crtc(*this, "i8275"), + m_palette(*this, "palette") { } required_device m_maincpu; required_device m_crtc; + required_device m_palette; DECLARE_READ8_MEMBER(ipds_b0_r); DECLARE_READ8_MEMBER(ipds_b1_r); DECLARE_READ8_MEMBER(ipds_c0_r); @@ -81,7 +83,7 @@ static I8275_DISPLAY_PIXELS(ipds_display_pixels) { int i; ipds_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *charmap = state->memregion("chargen")->base(); UINT8 pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff; diff --git a/src/mess/drivers/lola8a.c b/src/mess/drivers/lola8a.c index 8a35a4a6ecb..e9dd77448ed 100644 --- a/src/mess/drivers/lola8a.c +++ b/src/mess/drivers/lola8a.c @@ -36,7 +36,8 @@ public: lola8a_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_cass(*this, "cassette") + , m_cass(*this, "cassette"), + m_palette(*this, "palette") { } required_device m_maincpu; @@ -55,6 +56,8 @@ public: private: UINT8 m_portb; required_device m_cass; +public: + required_device m_palette; }; static ADDRESS_MAP_START(lola8a_mem, AS_PROGRAM, 8, lola8a_state) @@ -197,7 +200,7 @@ static MC6845_UPDATE_ROW( lola8a_update_row ) { lola8a_state *state = device->machine().driver_data(); address_space &program = state->m_maincpu->space(AS_PROGRAM); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); for (int sx = 0; sx < x_count; sx++) { diff --git a/src/mess/drivers/mx2178.c b/src/mess/drivers/mx2178.c index 41fc81707de..24b3b77a1be 100644 --- a/src/mess/drivers/mx2178.c +++ b/src/mess/drivers/mx2178.c @@ -33,7 +33,8 @@ public: driver_device(mconfig, type, tag), m_p_videoram(*this, "videoram"), m_maincpu(*this, "maincpu"), - m_acia(*this, "acia") + m_acia(*this, "acia"), + m_palette(*this, "palette") { } @@ -51,6 +52,8 @@ private: UINT8 m_term_data; required_device m_maincpu; required_device m_acia; +public: + required_device m_palette; }; static ADDRESS_MAP_START(mx2178_mem, AS_PROGRAM, 8, mx2178_state) @@ -101,7 +104,7 @@ static ASCII_KEYBOARD_INTERFACE( keyboard_intf ) static MC6845_UPDATE_ROW( update_row ) { mx2178_state *state = device->machine().driver_data(); - const rgb_t *pens = bitmap.palette()->entry_list_raw(); + const rgb_t *pens = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/mycom.c b/src/mess/drivers/mycom.c index 8b77f6815a3..4e720f0d2b9 100644 --- a/src/mess/drivers/mycom.c +++ b/src/mess/drivers/mycom.c @@ -75,7 +75,8 @@ public: , m_floppy0(*this, "fdc:0") , m_floppy1(*this, "fdc:1") , m_audio(*this, "sn1") - , m_rtc(*this, "rtc") + , m_rtc(*this, "rtc"), + m_palette(*this, "palette") { } DECLARE_READ8_MEMBER(mycom_upper_r); @@ -117,6 +118,8 @@ private: required_device m_floppy1; required_device m_audio; required_device m_rtc; +public: + required_device m_palette; }; @@ -130,7 +133,7 @@ void mycom_state::video_start() static MC6845_UPDATE_ROW( mycom_update_row ) { mycom_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx=0,z; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/mz3500.c b/src/mess/drivers/mz3500.c index 476bd420026..5d630945db0 100644 --- a/src/mess/drivers/mz3500.c +++ b/src/mess/drivers/mz3500.c @@ -148,7 +148,7 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) { mz3500_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int x; int xi,yi; int tile; diff --git a/src/mess/drivers/mz6500.c b/src/mess/drivers/mz6500.c index d3c7d8e8b69..edb59103855 100644 --- a/src/mess/drivers/mz6500.c +++ b/src/mess/drivers/mz6500.c @@ -16,11 +16,11 @@ class mz6500_state : public driver_device public: mz6500_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_hgdc(*this, "upd7220"), - m_fdc(*this, "upd765") - , + m_hgdc(*this, "upd7220"), + m_fdc(*this, "upd765"), m_video_ram(*this, "video_ram"), - m_maincpu(*this, "maincpu") { } + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette") { } required_device m_hgdc; required_device m_fdc; @@ -32,12 +32,13 @@ public: virtual void machine_reset(); virtual void video_start(); required_device m_maincpu; + required_device m_palette; }; static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) { mz6500_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int gfx[3]; UINT8 i,pen; diff --git a/src/mess/drivers/pasopia.c b/src/mess/drivers/pasopia.c index 5483cfe980f..8939c975f81 100644 --- a/src/mess/drivers/pasopia.c +++ b/src/mess/drivers/pasopia.c @@ -21,13 +21,14 @@ class pasopia_state : public driver_device public: pasopia_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_ppi0(*this, "ppi8255_0"), - m_ppi1(*this, "ppi8255_1"), - m_ppi2(*this, "ppi8255_2"), - m_ctc(*this, "z80ctc"), - m_pio(*this, "z80pio"), - m_crtc(*this, "crtc") + m_maincpu(*this, "maincpu"), + m_ppi0(*this, "ppi8255_0"), + m_ppi1(*this, "ppi8255_1"), + m_ppi2(*this, "ppi8255_2"), + m_ctc(*this, "z80ctc"), + m_pio(*this, "z80pio"), + m_crtc(*this, "crtc"), + m_palette(*this, "palette") { } required_device m_maincpu; @@ -37,6 +38,7 @@ public: required_device m_ctc; required_device m_pio; required_device m_crtc; + required_device m_palette; DECLARE_READ8_MEMBER(pasopia_romram_r); DECLARE_WRITE8_MEMBER(pasopia_ram_w); @@ -86,7 +88,7 @@ void pasopia_state::video_start() MC6845_UPDATE_ROW( pasopia_update_row ) { pasopia_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *m_p_chargen = state->memregion("chargen")->base(); UINT8 chr,gfx,fg=7,bg=0; // colours need to be determined UINT16 mem,x; diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index 67ff7644f25..78dc4a47977 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -794,7 +794,7 @@ UINT32 pc9801_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) { pc9801_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int xi; int res_x,res_y; UINT8 pen; @@ -856,7 +856,7 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) { pc9801_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int xi,yi; int x; UINT8 char_size; diff --git a/src/mess/drivers/pyl601.c b/src/mess/drivers/pyl601.c index b7f2346fb1f..26528a254c0 100644 --- a/src/mess/drivers/pyl601.c +++ b/src/mess/drivers/pyl601.c @@ -48,11 +48,11 @@ class pyl601_state : public driver_device public: pyl601_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_speaker(*this, "speaker"), - m_fdc(*this, "upd765"), - m_ram(*this, RAM_TAG) - , - m_maincpu(*this, "maincpu") { } + m_speaker(*this, "speaker"), + m_fdc(*this, "upd765"), + m_ram(*this, RAM_TAG), + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette") { } UINT8 m_rom_page; UINT32 m_vdisk_addr; @@ -87,6 +87,7 @@ public: INTERRUPT_GEN_MEMBER(pyl601_interrupt); DECLARE_FLOPPY_FORMATS( floppy_formats ); required_device m_maincpu; + required_device m_palette; }; @@ -385,7 +386,7 @@ void pyl601_state::video_start() static MC6845_UPDATE_ROW( pyl601_update_row ) { pyl601_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *charrom = state->memregion("chargen")->base(); int column, bit, i; @@ -428,7 +429,7 @@ static MC6845_UPDATE_ROW( pyl601_update_row ) static MC6845_UPDATE_ROW( pyl601a_update_row ) { pyl601_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *charrom = state->memregion("chargen")->base(); int column, bit, i; diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c index 53453fc83f2..338ff2f4543 100644 --- a/src/mess/drivers/qx10.c +++ b/src/mess/drivers/qx10.c @@ -154,7 +154,7 @@ public: static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) { qx10_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int xi,gfx[3]; UINT8 pen; @@ -184,7 +184,7 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) { qx10_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int x; int xi,yi; int tile; diff --git a/src/mess/drivers/sapi1.c b/src/mess/drivers/sapi1.c index 9ed36feaf5f..d793687d362 100644 --- a/src/mess/drivers/sapi1.c +++ b/src/mess/drivers/sapi1.c @@ -53,7 +53,8 @@ public: m_line2(*this, "LINE2"), m_line3(*this, "LINE3"), m_line4(*this, "LINE4"), - m_maincpu(*this, "maincpu") + m_maincpu(*this, "maincpu"), + m_palette(*this, "palette") { } @@ -86,6 +87,8 @@ private: required_ioport m_line3; required_ioport m_line4; required_device m_maincpu; +public: + required_device m_palette; }; static const UINT8 MHB2501[] = { @@ -407,7 +410,7 @@ UINT32 sapi1_state::screen_update_sapi3(screen_device &screen, bitmap_ind16 &bit static MC6845_UPDATE_ROW( update_row ) { sapi1_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx,inv; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/sm1800.c b/src/mess/drivers/sm1800.c index 6b46c2c589b..2b9f47670fc 100644 --- a/src/mess/drivers/sm1800.c +++ b/src/mess/drivers/sm1800.c @@ -28,13 +28,15 @@ public: m_maincpu(*this, "maincpu"), m_uart(*this, "i8251"), m_ppi(*this, "i8255"), - m_crtc(*this, "i8275") + m_crtc(*this, "i8275"), + m_palette(*this, "palette") { } required_device m_maincpu; required_device m_uart; required_device m_ppi; required_device m_crtc; + required_device m_palette; DECLARE_WRITE8_MEMBER(sm1800_8255_portb_w); DECLARE_WRITE8_MEMBER(sm1800_8255_portc_w); DECLARE_READ8_MEMBER(sm1800_8255_porta_r); @@ -88,7 +90,7 @@ static I8275_DISPLAY_PIXELS(sm1800_display_pixels) { int i; sm1800_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *charmap = state->memregion("chargen")->base(); UINT8 pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff; if (vsp) diff --git a/src/mess/drivers/tavernie.c b/src/mess/drivers/tavernie.c index 7404ad2fb6c..973ba1e8d36 100644 --- a/src/mess/drivers/tavernie.c +++ b/src/mess/drivers/tavernie.c @@ -76,7 +76,8 @@ public: m_floppy0(*this, "fdc:0"), m_beep(*this, "beeper"), m_maincpu(*this, "maincpu"), - m_acia(*this, "acia") + m_acia(*this, "acia"), + m_palette(*this, "palette") { } @@ -105,6 +106,8 @@ private: optional_device m_beep; required_device m_maincpu; required_device m_acia; +public: + required_device m_palette; }; @@ -206,7 +209,7 @@ WRITE8_MEMBER( tavernie_state::ds_w ) static MC6845_UPDATE_ROW( update_row ) { tavernie_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx=0; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/tiki100.c b/src/mess/drivers/tiki100.c index 8f86e2174aa..09ebfa24a90 100644 --- a/src/mess/drivers/tiki100.c +++ b/src/mess/drivers/tiki100.c @@ -394,7 +394,7 @@ INPUT_PORTS_END UINT32 tiki100_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = m_palette->palette()->entry_list_raw(); UINT16 addr = (m_scroll << 7); int sx, y, pixel, mode = (m_mode >> 4) & 0x03; diff --git a/src/mess/drivers/tim100.c b/src/mess/drivers/tim100.c index 1f81bbe0acc..6f3e5a02671 100644 --- a/src/mess/drivers/tim100.c +++ b/src/mess/drivers/tim100.c @@ -84,7 +84,7 @@ static I8275_DISPLAY_PIXELS(tim100_display_pixels) { tim100_state *state = device->machine().driver_data(); int i; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *charmap = state->memregion("chargen")->base(); UINT8 pixels = charmap[(linecount & 15) + (charcode << 4)]; if (vsp) diff --git a/src/mess/drivers/tvc.c b/src/mess/drivers/tvc.c index d1f38341eaa..3f56c0fda63 100644 --- a/src/mess/drivers/tvc.c +++ b/src/mess/drivers/tvc.c @@ -513,7 +513,7 @@ void tvc_state::machine_reset() static MC6845_UPDATE_ROW( tvc_update_row ) { tvc_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); UINT8 *vram = state->memregion("vram")->base() + ((state->m_vram_bank & 0x30)<<10); UINT16 offset = ((ma*4 + ra*0x40) & 0x3fff); diff --git a/src/mess/drivers/unior.c b/src/mess/drivers/unior.c index e9a3126608c..7d3a90d98e4 100644 --- a/src/mess/drivers/unior.c +++ b/src/mess/drivers/unior.c @@ -54,7 +54,8 @@ public: m_maincpu(*this, "maincpu"), m_pit(*this, "pit"), m_dma(*this, "dma"), - m_uart(*this, "uart") + m_uart(*this, "uart"), + m_palette(*this, "palette") { } @@ -82,6 +83,8 @@ private: required_device m_pit; required_device m_dma; required_device m_uart; +public: + required_device m_palette; }; static ADDRESS_MAP_START( unior_mem, AS_PROGRAM, 8, unior_state ) @@ -256,7 +259,7 @@ WRITE8_MEMBER( unior_state::scroll_w ) static I8275_DISPLAY_PIXELS(display_pixels) { unior_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 gfx = state->m_p_chargen[(linecount & 7) | (charcode << 3)]; if (vsp) gfx = 0; diff --git a/src/mess/drivers/v6809.c b/src/mess/drivers/v6809.c index 977d9f3eab7..53294df30da 100644 --- a/src/mess/drivers/v6809.c +++ b/src/mess/drivers/v6809.c @@ -75,7 +75,8 @@ public: m_floppy0(*this, "fdc:0"), m_speaker(*this, "speaker"), m_acia0(*this, "acia0"), - m_acia1(*this, "acia1") + m_acia1(*this, "acia1"), + m_palette(*this, "palette") { } @@ -107,6 +108,8 @@ private: required_device m_speaker; required_device m_acia0; required_device m_acia1; +public: + required_device m_palette; }; @@ -168,7 +171,7 @@ GFXDECODE_END MC6845_UPDATE_ROW( v6809_update_row ) { v6809_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/drivers/victor9k.c b/src/mess/drivers/victor9k.c index 4676a77608b..7a4c311fd74 100644 --- a/src/mess/drivers/victor9k.c +++ b/src/mess/drivers/victor9k.c @@ -268,7 +268,7 @@ static MC6845_UPDATE_ROW( victor9k_update_row ) { victor9k_state *state = device->machine().driver_data(); address_space &program = state->m_maincpu->space(AS_PROGRAM); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); if (BIT(ma, 13)) { diff --git a/src/mess/drivers/zorba.c b/src/mess/drivers/zorba.c index 0cb12d4e04e..bb87bbbff9e 100644 --- a/src/mess/drivers/zorba.c +++ b/src/mess/drivers/zorba.c @@ -57,7 +57,8 @@ public: m_crtc(*this, "crtc"), m_fdc (*this, "fdc"), m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1") + m_floppy1(*this, "fdc:1"), + m_palette(*this, "palette") { } @@ -95,6 +96,8 @@ private: required_device m_fdc; required_device m_floppy0; required_device m_floppy1; +public: + required_device m_palette; }; static ADDRESS_MAP_START( zorba_mem, AS_PROGRAM, 8, zorba_state ) @@ -259,7 +262,7 @@ static I8275_DISPLAY_PIXELS( zorba_update_chr ) { int i; zorba_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 gfx = state->m_p_chargen[(linecount & 15) + (charcode << 4)]; if (vsp) diff --git a/src/mess/drivers/zrt80.c b/src/mess/drivers/zrt80.c index 32628120a1c..8ede71de5d3 100644 --- a/src/mess/drivers/zrt80.c +++ b/src/mess/drivers/zrt80.c @@ -39,7 +39,8 @@ public: m_maincpu(*this, "maincpu"), m_crtc(*this, "crtc"), m_8250(*this, "ins8250"), - m_beep(*this, "beeper") + m_beep(*this, "beeper"), + m_palette(*this, "palette") { } @@ -59,6 +60,8 @@ private: required_device m_crtc; required_device m_8250; required_device m_beep; +public: + required_device m_palette; }; @@ -214,7 +217,7 @@ void zrt80_state::video_start() static MC6845_UPDATE_ROW( zrt80_update_row ) { zrt80_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx,inv; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/includes/bbc.h b/src/mess/includes/bbc.h index e78a400de7b..b08b1792895 100644 --- a/src/mess/includes/bbc.h +++ b/src/mess/includes/bbc.h @@ -62,7 +62,8 @@ public: m_ACCCON_IRR(CLEAR_LINE), m_via_system_irq(CLEAR_LINE), m_via_user_irq(CLEAR_LINE), - m_acia_irq(CLEAR_LINE) + m_acia_irq(CLEAR_LINE), + m_palette(*this, "palette") { } @@ -404,6 +405,7 @@ public: // HACK FOR MC6845 void BBC_Cassette_motor(unsigned char status); void bbc_update_fdq_int(int state); unsigned int calculate_video_address(int ma,int ra); + required_device m_palette; }; diff --git a/src/mess/includes/dgn_beta.h b/src/mess/includes/dgn_beta.h index f9a964c90c3..5c81a5cc056 100644 --- a/src/mess/includes/dgn_beta.h +++ b/src/mess/includes/dgn_beta.h @@ -90,7 +90,8 @@ public: m_mc6845(*this, "crtc"), m_videoram(*this, "videoram"), m_maincpu(*this, "maincpu"), - m_ram(*this, RAM_TAG) { } + m_ram(*this, RAM_TAG), + m_palette(*this, "palette") { } required_device m_mc6845; required_shared_ptr m_videoram; @@ -210,6 +211,7 @@ public: void dgn_beta_frame_interrupt (int data); void dgn_beta_line_interrupt (int data); required_device m_ram; + required_device m_palette; }; diff --git a/src/mess/includes/einstein.h b/src/mess/includes/einstein.h index a68e5691e7a..c92cfe8e853 100644 --- a/src/mess/includes/einstein.h +++ b/src/mess/includes/einstein.h @@ -151,6 +151,7 @@ protected: required_ioport m_buttons; required_ioport m_config; optional_ioport m_80column_dips; +public: optional_device m_palette; void einstein_scan_keyboard(); diff --git a/src/mess/includes/kaypro.h b/src/mess/includes/kaypro.h index c440e1384e4..eafa4f346c7 100644 --- a/src/mess/includes/kaypro.h +++ b/src/mess/includes/kaypro.h @@ -32,7 +32,8 @@ public: m_floppy0(*this, "fdc:0"), m_floppy1(*this, "fdc:1"), m_crtc(*this, "crtc"), - m_beep(*this, "beeper") + m_beep(*this, "beeper"), + m_palette(*this, "palette") {} DECLARE_WRITE_LINE_MEMBER(write_centronics_busy); @@ -102,6 +103,8 @@ private: required_device m_floppy1; optional_device m_crtc; required_device m_beep; +public: + required_device m_palette; }; diff --git a/src/mess/includes/mbc55x.h b/src/mess/includes/mbc55x.h index 89ef11569a1..e286f2ef4f4 100644 --- a/src/mess/includes/mbc55x.h +++ b/src/mess/includes/mbc55x.h @@ -97,7 +97,8 @@ public: m_pic(*this, PIC8259_TAG), m_fdc(*this, FDC_TAG), m_speaker(*this, "speaker"), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_palette(*this, "palette") { } @@ -110,6 +111,7 @@ public: required_device m_fdc; required_device m_speaker; required_device m_ram; + required_device m_palette; //DECLARE_READ8_MEMBER(pic8259_r); //DECLARE_WRITE8_MEMBER(pic8259_w); //DECLARE_READ8_MEMBER(mbc55x_disk_r); diff --git a/src/mess/includes/mbee.h b/src/mess/includes/mbee.h index 2baa245f3ed..31d7c27981d 100644 --- a/src/mess/includes/mbee.h +++ b/src/mess/includes/mbee.h @@ -76,7 +76,8 @@ public: m_io_x12(*this, "X12"), m_io_x13(*this, "X13"), m_io_x14(*this, "X14"), - m_screen(*this, "screen") { } + m_screen(*this, "screen"), + m_palette(*this, "palette") { } DECLARE_WRITE8_MEMBER( mbee_04_w ); DECLARE_WRITE8_MEMBER( mbee_06_w ); @@ -220,6 +221,8 @@ private: optional_ioport m_io_x13; optional_ioport m_io_x14; required_device m_screen; +public: + required_device m_palette; void machine_reset_common_disk(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); diff --git a/src/mess/includes/poisk1.h b/src/mess/includes/poisk1.h index 27f59231d46..6b4f6c8798d 100644 --- a/src/mess/includes/poisk1.h +++ b/src/mess/includes/poisk1.h @@ -32,7 +32,8 @@ public: m_isabus(*this, "isa"), m_speaker(*this, "speaker"), m_cassette(*this, "cassette"), - m_ram(*this, RAM_TAG) { } + m_ram(*this, RAM_TAG), + m_palette(*this, "palette") { } required_device m_maincpu; required_device m_pic8259; @@ -93,7 +94,7 @@ public: DECLARE_WRITE8_MEMBER(p1_ppi2_porta_w); DECLARE_WRITE8_MEMBER(p1_ppi2_portb_w); DECLARE_READ8_MEMBER(p1_ppi2_portc_r); - + required_device m_palette; const char *m_cputag; }; diff --git a/src/mess/includes/radio86.h b/src/mess/includes/radio86.h index cbd6a4c46e6..429f5991189 100644 --- a/src/mess/includes/radio86.h +++ b/src/mess/includes/radio86.h @@ -46,7 +46,8 @@ public: m_io_cline4(*this, "CLINE4"), m_io_cline5(*this, "CLINE5"), m_io_cline6(*this, "CLINE6"), - m_io_cline7(*this, "CLINE7") { } + m_io_cline7(*this, "CLINE7"), + m_palette(*this, "palette") { } virtual void video_start(); @@ -105,8 +106,10 @@ protected: optional_ioport m_io_cline6; optional_ioport m_io_cline7; - void radio86_init_keyboard(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + void radio86_init_keyboard(); +public: + required_device m_palette; }; diff --git a/src/mess/includes/svi318.h b/src/mess/includes/svi318.h index 073eeb95734..fd1349aa844 100644 --- a/src/mess/includes/svi318.h +++ b/src/mess/includes/svi318.h @@ -142,8 +142,9 @@ protected: required_ioport m_line10; required_ioport m_joysticks; required_ioport m_buttons; +public: optional_device m_palette; - +protected: void svi318_set_banks(); void svi318_80col_init(); void svi318_vdp_interrupt(int i); diff --git a/src/mess/includes/tvc.h b/src/mess/includes/tvc.h index 930588d70ca..61f219a4411 100644 --- a/src/mess/includes/tvc.h +++ b/src/mess/includes/tvc.h @@ -86,7 +86,8 @@ public: m_ram(*this, RAM_TAG), m_sound(*this, "custom"), m_cassette(*this, "cassette"), - m_centronics(*this, CENTRONICS_TAG) + m_centronics(*this, CENTRONICS_TAG), + m_palette(*this, "palette") { } required_device m_maincpu; @@ -94,6 +95,7 @@ public: required_device m_sound; required_device m_cassette; required_device m_centronics; + required_device m_palette; void machine_start(); void machine_reset(); diff --git a/src/mess/includes/victor9k.h b/src/mess/includes/victor9k.h index 8c7da5d5778..8b28b5bf9ff 100644 --- a/src/mess/includes/victor9k.h +++ b/src/mess/includes/victor9k.h @@ -92,7 +92,8 @@ public: m_lms(0), m_brdy(1), m_sync(1), - m_gcrerr(0) + m_gcrerr(0), + m_palette(*this, "palette") { } required_device m_maincpu; @@ -213,6 +214,7 @@ public: DECLARE_WRITE_LINE_MEMBER(mux_serial_b_w); DECLARE_WRITE_LINE_MEMBER(mux_serial_a_w); IRQ_CALLBACK_MEMBER(victor9k_irq_callback); + required_device m_palette; }; #endif diff --git a/src/mess/machine/svi318.c b/src/mess/machine/svi318.c index 3a5f3f65943..84305b2b26e 100644 --- a/src/mess/machine/svi318.c +++ b/src/mess/machine/svi318.c @@ -326,7 +326,7 @@ READ8_MEMBER(svi318_state::svi318_fdc_irqdrq_r) MC6845_UPDATE_ROW( svi806_crtc6845_update_row ) { svi318_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); int i; for( i = 0; i < x_count; i++ ) diff --git a/src/mess/video/bbc.c b/src/mess/video/bbc.c index 8270b84fe56..3b3d10bb25a 100644 --- a/src/mess/video/bbc.c +++ b/src/mess/video/bbc.c @@ -165,7 +165,7 @@ WRITE8_MEMBER(bbc_state::bbc_videoULA_w) static MC6845_UPDATE_ROW( vid_update_row ) { bbc_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); if (state->m_videoULA_teletext_normal_select) { diff --git a/src/mess/video/dgn_beta.c b/src/mess/video/dgn_beta.c index 6cb4d653b3c..1dc294646e5 100644 --- a/src/mess/video/dgn_beta.c +++ b/src/mess/video/dgn_beta.c @@ -99,7 +99,7 @@ the access to the video memory is unclear to me at the moment. static MC6845_UPDATE_ROW( dgnbeta_update_row ) { dgn_beta_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 *videoram = state->m_videoram; UINT32 *p = &bitmap.pix32(y); int i; diff --git a/src/mess/video/kaypro.c b/src/mess/video/kaypro.c index b4afdc61e7a..2078829a693 100644 --- a/src/mess/video/kaypro.c +++ b/src/mess/video/kaypro.c @@ -137,7 +137,7 @@ UINT32 kaypro_state::screen_update_kaypro2x(screen_device &screen, bitmap_rgb32 MC6845_UPDATE_ROW( kaypro2x_update_row ) { kaypro_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); UINT16 x; UINT8 gfx,fg,bg; diff --git a/src/mess/video/mbc55x.c b/src/mess/video/mbc55x.c index 75843e7985b..bc48ae654d1 100644 --- a/src/mess/video/mbc55x.c +++ b/src/mess/video/mbc55x.c @@ -90,7 +90,7 @@ static void video_debug(running_machine &machine, int ref, int params, const cha static MC6845_UPDATE_ROW( vid_update_row ) { mbc55x_state *mstate = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = mstate->m_palette->palette()->entry_list_raw(); UINT8 *ram = &mstate->m_ram->pointer()[0]; UINT8 *red = &mstate->m_video_mem[RED_PLANE_OFFSET]; diff --git a/src/mess/video/mbee.c b/src/mess/video/mbee.c index d00993280b7..525bae68977 100644 --- a/src/mess/video/mbee.c +++ b/src/mess/video/mbee.c @@ -418,7 +418,7 @@ MC6845_ON_UPDATE_ADDR_CHANGED( mbee256_update_addr ) MC6845_UPDATE_ROW( mbee_update_row ) { mbee_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y); @@ -457,7 +457,7 @@ MC6845_UPDATE_ROW( mbee_update_row ) MC6845_UPDATE_ROW( mbeeic_update_row ) { mbee_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,gfx,fg,bg; UINT16 mem,x,col; UINT16 colourm = (state->m_08 & 0x0e) << 7; @@ -501,7 +501,7 @@ MC6845_UPDATE_ROW( mbeeic_update_row ) MC6845_UPDATE_ROW( mbeeppc_update_row ) { mbee_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 gfx,fg,bg; UINT16 mem,x,col,chr; UINT32 *p = &bitmap.pix32(y); diff --git a/src/mess/video/pc_aga.c b/src/mess/video/pc_aga.c index 9ade894ca77..24226fe7362 100644 --- a/src/mess/video/pc_aga.c +++ b/src/mess/video/pc_aga.c @@ -64,6 +64,8 @@ static struct { UINT8 hsync; UINT8 *videoram; + + palette_device *palette; } aga; @@ -124,7 +126,7 @@ static WRITE_LINE_DEVICE_HANDLER( aga_vsync_changed ) { /* colors need fixing in the mda_text_* functions ! */ static MC6845_UPDATE_ROW( mda_text_inten_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT8 *videoram = aga.videoram; UINT32 *p = &bitmap.pix32(y); UINT16 chr_base = ( ra & 0x08 ) ? 0x800 | ( ra & 0x07 ) : ra; @@ -185,7 +187,7 @@ static MC6845_UPDATE_ROW( mda_text_inten_update_row ) { static MC6845_UPDATE_ROW( mda_text_blink_update_row ) { UINT8 *videoram = aga.videoram; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); UINT16 chr_base = ( ra & 0x08 ) ? 0x800 | ( ra & 0x07 ) : ra; int i; @@ -246,7 +248,7 @@ static MC6845_UPDATE_ROW( mda_text_blink_update_row ) { static MC6845_UPDATE_ROW( cga_text_inten_update_row ) { UINT8 *videoram = aga.videoram; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); int i; @@ -275,7 +277,7 @@ static MC6845_UPDATE_ROW( cga_text_inten_update_row ) { } static MC6845_UPDATE_ROW( cga_text_inten_alt_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT8 *videoram = aga.videoram; UINT32 *p = &bitmap.pix32(y); int i; @@ -304,7 +306,7 @@ static MC6845_UPDATE_ROW( cga_text_inten_alt_update_row ) { } static MC6845_UPDATE_ROW( cga_text_blink_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT8 *videoram = aga.videoram; UINT32 *p = &bitmap.pix32(y); int i; @@ -337,7 +339,7 @@ static MC6845_UPDATE_ROW( cga_text_blink_update_row ) { } static MC6845_UPDATE_ROW( cga_text_blink_alt_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT8 *videoram = aga.videoram; UINT32 *p = &bitmap.pix32(y); int i; @@ -372,7 +374,7 @@ static MC6845_UPDATE_ROW( cga_text_blink_alt_update_row ) { } static MC6845_UPDATE_ROW( cga_gfx_4bppl_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT8 *videoram = aga.videoram; UINT32 *p = &bitmap.pix32(y); int i; @@ -398,7 +400,7 @@ static MC6845_UPDATE_ROW( cga_gfx_4bppl_update_row ) { static MC6845_UPDATE_ROW( cga_gfx_4bpph_update_row ) { UINT8 *videoram = aga.videoram; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); int i; @@ -431,7 +433,7 @@ static MC6845_UPDATE_ROW( cga_gfx_4bpph_update_row ) { static MC6845_UPDATE_ROW( cga_gfx_2bpp_update_row ) { UINT8 *videoram = aga.videoram; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); int i; @@ -456,7 +458,7 @@ static MC6845_UPDATE_ROW( cga_gfx_2bpp_update_row ) { static MC6845_UPDATE_ROW( cga_gfx_1bpp_update_row ) { UINT8 *videoram = aga.videoram; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = aga.palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(y); UINT8 fg = aga.cga_color_select & 0x0F; int i; @@ -719,6 +721,7 @@ VIDEO_START( pc_aga ) aga.mda_chr_gen = machine.root_device().memregion("gfx1")->base() + 0x1000; aga.cga_chr_gen = machine.root_device().memregion("gfx1")->base(); aga.videoram = auto_alloc_array(machine, UINT8, 0x10000); + aga.palette = machine.device(":palette"); } VIDEO_START( pc200 ) @@ -750,6 +753,7 @@ VIDEO_START( pc200 ) aga.mda_chr_gen = machine.root_device().memregion("gfx1")->base(); aga.cga_chr_gen = machine.root_device().memregion("gfx1")->base() + 0x1000; aga.videoram = auto_alloc_array(machine, UINT8, 0x10000); + aga.palette = machine.device(":palette"); memset(aga.videoram, 0, sizeof(UINT8) * 0x10000); } diff --git a/src/mess/video/poisk1.c b/src/mess/video/poisk1.c index 30d36d8d8c0..db32d66103a 100644 --- a/src/mess/video/poisk1.c +++ b/src/mess/video/poisk1.c @@ -184,7 +184,7 @@ void p1_state::set_palette_luts(void) POISK1_UPDATE_ROW( p1_state::cga_gfx_2bpp_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = m_palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(ra); UINT16 odd, offset; int i; @@ -211,7 +211,7 @@ POISK1_UPDATE_ROW( p1_state::cga_gfx_2bpp_update_row ) POISK1_UPDATE_ROW( p1_state::cga_gfx_1bpp_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = m_palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(ra); UINT8 fg = 15, bg = BG_COLOR(m_video.color_select_68); UINT16 odd, offset; @@ -243,7 +243,7 @@ POISK1_UPDATE_ROW( p1_state::cga_gfx_1bpp_update_row ) POISK1_UPDATE_ROW( p1_state::poisk1_gfx_1bpp_update_row ) { - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = m_palette->palette()->entry_list_raw(); UINT32 *p = &bitmap.pix32(ra); UINT8 fg, bg = BG_COLOR(m_video.color_select_68); UINT16 odd, offset; diff --git a/src/mess/video/radio86.c b/src/mess/video/radio86.c index 05542aa828a..97a7ddf3e79 100644 --- a/src/mess/video/radio86.c +++ b/src/mess/video/radio86.c @@ -15,7 +15,7 @@ I8275_DISPLAY_PIXELS(radio86_display_pixels) { radio86_state *state = device->machine().driver_data(); int i; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); const UINT8 *charmap = state->m_charmap; UINT8 pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff; if (vsp) { @@ -37,7 +37,7 @@ I8275_DISPLAY_PIXELS(mikrosha_display_pixels) { radio86_state *state = device->machine().driver_data(); int i; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); const UINT8 *charmap = state->m_charmap + (state->m_mikrosha_font_page & 1) * 0x400; UINT8 pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff; if (vsp) { @@ -58,7 +58,7 @@ I8275_DISPLAY_PIXELS(apogee_display_pixels) { radio86_state *state = device->machine().driver_data(); int i; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); const UINT8 *charmap = state->m_charmap + (gpa & 1) * 0x400; UINT8 pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff; if (vsp) { @@ -79,7 +79,7 @@ I8275_DISPLAY_PIXELS(partner_display_pixels) { radio86_state *state = device->machine().driver_data(); int i; - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); const UINT8 *charmap = state->m_charmap + 0x400 * (gpa * 2 + hlgt); UINT8 pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff; if (vsp) { diff --git a/src/mess/video/super80.c b/src/mess/video/super80.c index 81c2beda5b5..5cb74126e9d 100644 --- a/src/mess/video/super80.c +++ b/src/mess/video/super80.c @@ -389,7 +389,7 @@ UINT32 super80_state::screen_update_super80v(screen_device &screen, bitmap_rgb32 MC6845_UPDATE_ROW( super80v_update_row ) { super80_state *state = device->machine().driver_data(); - const rgb_t *palette = bitmap.palette()->entry_list_raw(); + const rgb_t *palette = state->m_palette->palette()->entry_list_raw(); UINT8 chr,col,gfx,fg,bg=0; UINT16 mem,x; UINT32 *p = &bitmap.pix32(y);