From 64ac8f6776fc4451d756b0eb3bb6dbd22c49801a Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Thu, 27 Feb 2014 13:35:15 +0000 Subject: Huge update, palette is now device (nw) note: Aaron please give more descriptive text for release log I have no more strength :) --- src/mess/drivers/a2600.c | 4 +-- src/mess/drivers/a310.c | 2 +- src/mess/drivers/a5105.c | 9 +++--- src/mess/drivers/a51xx.c | 4 +-- src/mess/drivers/a6809.c | 2 +- src/mess/drivers/a7000.c | 18 ++++++------ src/mess/drivers/a7150.c | 3 +- src/mess/drivers/a7800.c | 13 +++++---- src/mess/drivers/ac1.c | 5 ++-- src/mess/drivers/ace.c | 3 +- src/mess/drivers/advision.c | 3 +- src/mess/drivers/alesis.c | 11 ++++---- src/mess/drivers/alphasma.c | 11 ++++---- src/mess/drivers/alphatro.c | 28 +++++++++---------- src/mess/drivers/amiga.c | 12 ++++---- src/mess/drivers/amstrad.c | 25 +++++++++-------- src/mess/drivers/apc.c | 17 ++++------- src/mess/drivers/apexc.c | 13 +++++---- src/mess/drivers/apogee.c | 4 +-- src/mess/drivers/apple1.c | 3 +- src/mess/drivers/apple2.c | 6 ++-- src/mess/drivers/apple2gs.c | 10 +++---- src/mess/drivers/apple3.c | 4 +-- src/mess/drivers/applix.c | 9 +++--- src/mess/drivers/apricotf.c | 4 +-- src/mess/drivers/apricotp.c | 2 +- src/mess/drivers/aquarius.c | 6 ++-- src/mess/drivers/arcadia.c | 13 ++++----- src/mess/drivers/argo.c | 3 +- src/mess/drivers/astrocde.c | 2 +- src/mess/drivers/at.c | 3 -- src/mess/drivers/atari400.c | 10 ++++--- src/mess/drivers/atarist.c | 10 +++---- src/mess/drivers/avigo.c | 3 +- src/mess/drivers/ax20.c | 5 ++-- src/mess/drivers/b16.c | 6 ++-- src/mess/drivers/b2m.c | 3 +- src/mess/drivers/bbc.c | 12 ++++---- src/mess/drivers/bcs3.c | 3 +- src/mess/drivers/beehive.c | 3 +- src/mess/drivers/bigbord2.c | 3 +- src/mess/drivers/binbug.c | 6 ++-- src/mess/drivers/bk.c | 3 +- src/mess/drivers/bmjr.c | 9 +++--- src/mess/drivers/bml3.c | 9 +++--- src/mess/drivers/busicom.c | 4 +-- src/mess/drivers/bw2.c | 9 +++--- src/mess/drivers/c10.c | 3 +- src/mess/drivers/c128.c | 2 ++ src/mess/drivers/c65.c | 20 ------------- src/mess/drivers/c900.c | 3 +- src/mess/drivers/camplynx.c | 12 ++++---- src/mess/drivers/casloopy.c | 8 +++--- src/mess/drivers/cat.c | 6 ++-- src/mess/drivers/cd2650.c | 3 +- src/mess/drivers/cdc721.c | 12 ++++---- src/mess/drivers/cfx9850.c | 15 +++++----- src/mess/drivers/cgenie.c | 24 +++++++--------- src/mess/drivers/channelf.c | 16 +++++------ src/mess/drivers/clcd.c | 8 +++--- src/mess/drivers/compucolor.c | 7 +++-- src/mess/drivers/comquest.c | 5 ++-- src/mess/drivers/concept.c | 3 +- src/mess/drivers/craft.c | 2 +- src/mess/drivers/ct486.c | 2 +- src/mess/drivers/cxhumax.c | 3 +- src/mess/drivers/cybiko.c | 19 +------------ src/mess/drivers/d6800.c | 3 +- src/mess/drivers/dai.c | 3 +- src/mess/drivers/dccons.c | 2 +- src/mess/drivers/dct11em.c | 3 +- src/mess/drivers/dgn_beta.c | 7 +++-- src/mess/drivers/dim68k.c | 3 +- src/mess/drivers/dm7000.c | 3 +- src/mess/drivers/dms5000.c | 3 +- src/mess/drivers/dmv.c | 3 +- src/mess/drivers/ec65.c | 6 ++-- src/mess/drivers/einstein.c | 6 ++-- src/mess/drivers/electron.c | 7 +++-- src/mess/drivers/elwro800.c | 4 +-- src/mess/drivers/exelv.c | 16 ++++++----- src/mess/drivers/fk1.c | 3 +- src/mess/drivers/fm7.c | 20 ++++++------- src/mess/drivers/fp1100.c | 2 +- src/mess/drivers/fp200.c | 11 ++++---- src/mess/drivers/fp6000.c | 10 +++---- src/mess/drivers/galaxy.c | 6 ++-- src/mess/drivers/galeb.c | 5 ++-- src/mess/drivers/gamecom.c | 9 +++--- src/mess/drivers/gamepock.c | 3 +- src/mess/drivers/gb.c | 36 ++++++++++++++---------- src/mess/drivers/gba.c | 7 +++-- src/mess/drivers/geniusiq.c | 13 +++++---- src/mess/drivers/gizmondo.c | 4 +-- src/mess/drivers/gmaster.c | 9 +++--- src/mess/drivers/gp2x.c | 2 +- src/mess/drivers/gp32.c | 12 ++++---- src/mess/drivers/grfd2301.c | 3 +- src/mess/drivers/h19.c | 3 +- src/mess/drivers/h89.c | 3 +- src/mess/drivers/harriet.c | 10 +------ src/mess/drivers/hec2hrp.c | 13 ++++----- src/mess/drivers/homelab.c | 9 ++---- src/mess/drivers/homez80.c | 5 ++-- src/mess/drivers/hp16500.c | 2 +- src/mess/drivers/hp48.c | 3 +- src/mess/drivers/hp49gp.c | 4 +-- src/mess/drivers/hp9k.c | 3 +- src/mess/drivers/hprot1.c | 11 ++++---- src/mess/drivers/hx20.c | 9 +++--- src/mess/drivers/ibm6580.c | 12 ++++---- src/mess/drivers/ie15.c | 11 ++++---- src/mess/drivers/if800.c | 4 +-- src/mess/drivers/interact.c | 4 +-- src/mess/drivers/intv.c | 22 ++++++++------- src/mess/drivers/ip20.c | 2 +- src/mess/drivers/ip22.c | 2 +- src/mess/drivers/ipds.c | 3 +- src/mess/drivers/iq151.c | 3 +- src/mess/drivers/irisha.c | 3 +- src/mess/drivers/itt3030.c | 5 ++-- src/mess/drivers/jonos.c | 3 +- src/mess/drivers/jr100.c | 3 +- src/mess/drivers/jr200.c | 11 ++++---- src/mess/drivers/jtc.c | 10 +++---- src/mess/drivers/juicebox.c | 2 +- src/mess/drivers/jupiter.c | 3 +- src/mess/drivers/k8915.c | 3 +- src/mess/drivers/kaypro.c | 7 ++--- src/mess/drivers/kc.c | 8 +++--- src/mess/drivers/konin.c | 3 +- src/mess/drivers/korgm1.c | 4 +-- src/mess/drivers/kramermc.c | 5 ++-- src/mess/drivers/lcmate2.c | 11 ++++---- src/mess/drivers/lisa.c | 3 +- src/mess/drivers/llc.c | 6 ++-- src/mess/drivers/lola8a.c | 9 +++--- src/mess/drivers/lviv.c | 3 +- src/mess/drivers/lynx.c | 7 +++-- src/mess/drivers/m20.c | 7 ++--- src/mess/drivers/m79152pc.c | 3 +- src/mess/drivers/mac.c | 43 +++++++++++++++------------- src/mess/drivers/macpci.c | 3 +- src/mess/drivers/mbc200.c | 5 ++-- src/mess/drivers/mbc55x.c | 8 +++--- src/mess/drivers/mbee.c | 16 ++++++----- src/mess/drivers/mc10.c | 2 +- src/mess/drivers/mc80.c | 6 ++-- src/mess/drivers/megadriv.c | 4 +++ src/mess/drivers/mes.c | 3 +- src/mess/drivers/micronic.c | 9 +++--- src/mess/drivers/microtan.c | 3 +- src/mess/drivers/microvsn.c | 36 ++++++++++++------------ src/mess/drivers/mikro80.c | 3 +- src/mess/drivers/mikrosha.c | 4 +-- src/mess/drivers/mini2440.c | 4 +-- src/mess/drivers/mk85.c | 3 +- src/mess/drivers/mk90.c | 3 +- src/mess/drivers/mmodular.c | 10 +++---- src/mess/drivers/modellot.c | 7 ++--- src/mess/drivers/molecular.c | 8 ++++-- src/mess/drivers/ms0515.c | 41 ++++++++++++++------------- src/mess/drivers/mstation.c | 11 ++++---- src/mess/drivers/msx.c | 4 +-- src/mess/drivers/multi16.c | 4 +-- src/mess/drivers/multi8.c | 11 ++++---- src/mess/drivers/mx2178.c | 3 +- src/mess/drivers/myb3k.c | 5 ++-- src/mess/drivers/mycom.c | 3 +- src/mess/drivers/mz2000.c | 26 ++++++++--------- src/mess/drivers/mz2500.c | 37 ++++++++++++------------ src/mess/drivers/mz3500.c | 12 ++++---- src/mess/drivers/mz6500.c | 2 +- src/mess/drivers/mz700.c | 3 +- src/mess/drivers/mz80.c | 3 +- src/mess/drivers/n64.c | 2 +- src/mess/drivers/nakajies.c | 11 ++++---- src/mess/drivers/nanos.c | 3 +- src/mess/drivers/nascom1.c | 3 +- src/mess/drivers/nc.c | 9 ++++-- src/mess/drivers/nes.c | 3 +- src/mess/drivers/ngp.c | 5 ---- src/mess/drivers/octopus.c | 3 +- src/mess/drivers/odyssey2.c | 32 +++++++++++---------- src/mess/drivers/okean240.c | 4 +-- src/mess/drivers/ondra.c | 3 +- src/mess/drivers/orao.c | 3 +- src/mess/drivers/oric.c | 7 +++-- src/mess/drivers/orion.c | 12 ++++---- src/mess/drivers/osbexec.c | 13 +++++---- src/mess/drivers/osborne1.c | 11 ++++---- src/mess/drivers/p112.c | 3 +- src/mess/drivers/p2000t.c | 14 +++++----- src/mess/drivers/palm.c | 8 +++--- src/mess/drivers/palmz22.c | 4 +-- src/mess/drivers/partner.c | 4 +-- src/mess/drivers/paso1600.c | 10 +++---- src/mess/drivers/pasogo.c | 9 +++--- src/mess/drivers/pasopia.c | 2 +- src/mess/drivers/pasopia7.c | 32 ++++++++++----------- src/mess/drivers/pb1000.c | 13 +++++---- src/mess/drivers/pc.c | 11 ++++++++ src/mess/drivers/pc100.c | 8 +++--- src/mess/drivers/pc1500.c | 11 ++++---- src/mess/drivers/pc2000.c | 11 ++++---- src/mess/drivers/pc4.c | 9 +++--- src/mess/drivers/pc6001.c | 65 ++++++++++++++++++++++--------------------- src/mess/drivers/pc8001.c | 8 +++--- src/mess/drivers/pc8801.c | 36 ++++++++++++------------ src/mess/drivers/pc88va.c | 16 +++++------ src/mess/drivers/pc9801.c | 28 +++++++++---------- src/mess/drivers/pce.c | 4 --- src/mess/drivers/pce220.c | 12 ++++---- src/mess/drivers/pcm.c | 3 +- src/mess/drivers/pcw.c | 4 +-- src/mess/drivers/pcw16.c | 4 +-- src/mess/drivers/pda600.c | 3 +- src/mess/drivers/pdp1.c | 18 ++++++------ src/mess/drivers/pegasus.c | 3 +- src/mess/drivers/phunsy.c | 9 +++--- src/mess/drivers/pitagjr.c | 11 ++++---- src/mess/drivers/pk8000.c | 4 +-- src/mess/drivers/pk8020.c | 3 +- src/mess/drivers/plan80.c | 3 +- src/mess/drivers/pmd85.c | 4 +-- src/mess/drivers/pocketc.c | 6 ++-- src/mess/drivers/pockstat.c | 3 +- src/mess/drivers/poisk1.c | 3 +- src/mess/drivers/pokemini.c | 15 +++++----- src/mess/drivers/poly88.c | 3 +- src/mess/drivers/portfoli.c | 9 +++--- src/mess/drivers/pp01.c | 3 +- src/mess/drivers/prestige.c | 11 ++++---- src/mess/drivers/primo.c | 3 +- src/mess/drivers/psion.c | 9 +++--- src/mess/drivers/ptcsol.c | 3 +- src/mess/drivers/pv1000.c | 16 ++++++----- src/mess/drivers/pv9234.c | 3 +- src/mess/drivers/px4.c | 18 ++++++------ src/mess/drivers/px8.c | 9 +++--- src/mess/drivers/pyl601.c | 3 +- src/mess/drivers/qx10.c | 17 +++++------ src/mess/drivers/radio86.c | 4 +-- src/mess/drivers/rainbow.c | 4 +-- src/mess/drivers/rd110.c | 11 ++++---- src/mess/drivers/replicator.c | 11 ++++---- src/mess/drivers/rex6000.c | 11 ++++---- src/mess/drivers/rm380z.c | 3 +- src/mess/drivers/rmnimbus.c | 7 +++-- src/mess/drivers/rmt32.c | 11 ++++---- src/mess/drivers/rt1715.c | 13 +++++---- src/mess/drivers/rx78.c | 6 ++-- src/mess/drivers/samcoupe.c | 9 +++--- src/mess/drivers/sapi1.c | 3 +- src/mess/drivers/saturn.c | 2 +- src/mess/drivers/sbrain.c | 3 +- src/mess/drivers/scv.c | 39 +++++++++++++------------- src/mess/drivers/sm1800.c | 15 +++++----- src/mess/drivers/smc777.c | 43 ++++++++++++++-------------- src/mess/drivers/sms.c | 12 -------- src/mess/drivers/socrates.c | 18 ++++++------ src/mess/drivers/sorcerer.c | 3 +- src/mess/drivers/spec128.c | 2 -- src/mess/drivers/special.c | 12 ++++---- src/mess/drivers/spectrum.c | 5 ++-- src/mess/drivers/ssem.c | 3 +- src/mess/drivers/ssystem3.c | 4 +-- src/mess/drivers/super80.c | 13 +++++---- src/mess/drivers/supracan.c | 17 ++++++----- src/mess/drivers/svi318.c | 2 +- src/mess/drivers/svision.c | 19 +++++++------ src/mess/drivers/svmu.c | 11 ++++---- src/mess/drivers/sys2900.c | 3 +- src/mess/drivers/tavernie.c | 3 +- src/mess/drivers/tdv2324.c | 3 +- src/mess/drivers/tek405x.c | 6 ++-- src/mess/drivers/tek410x.c | 5 ++-- src/mess/drivers/terak.c | 3 +- src/mess/drivers/thomson.c | 4 +-- src/mess/drivers/ti85.c | 22 +++++++++------ src/mess/drivers/ti89.c | 9 +++--- src/mess/drivers/ti990_10.c | 4 --- src/mess/drivers/ti990_4.c | 10 ------- src/mess/drivers/ti99_2.c | 11 ++------ src/mess/drivers/tiki100.c | 10 +++---- src/mess/drivers/tim011.c | 3 +- src/mess/drivers/tim100.c | 6 ++-- src/mess/drivers/tk80bs.c | 5 ++-- src/mess/drivers/trs80.c | 8 +++--- src/mess/drivers/tvc.c | 7 +++-- src/mess/drivers/tx0.c | 18 ++++++------ src/mess/drivers/uknc.c | 3 +- src/mess/drivers/unior.c | 6 ++-- src/mess/drivers/unistar.c | 12 ++++---- src/mess/drivers/univac.c | 3 +- src/mess/drivers/unixpc.c | 3 +- src/mess/drivers/ut88.c | 5 ++-- src/mess/drivers/v6809.c | 3 +- src/mess/drivers/vboy.c | 33 +++++++++++----------- src/mess/drivers/vc4000.c | 8 +++--- src/mess/drivers/vector06.c | 3 +- src/mess/drivers/vg5k.c | 2 +- src/mess/drivers/victor9k.c | 3 +- src/mess/drivers/vii.c | 6 ++-- src/mess/drivers/vt100.c | 4 +-- src/mess/drivers/vt220.c | 3 +- src/mess/drivers/vt240.c | 3 +- src/mess/drivers/vt320.c | 3 +- src/mess/drivers/vt520.c | 3 +- src/mess/drivers/vta2000.c | 13 +++++---- src/mess/drivers/vtech2.c | 17 ++++++----- src/mess/drivers/wswan.c | 15 ++++++---- src/mess/drivers/x07.c | 9 +++--- src/mess/drivers/x1.c | 32 ++++++++++----------- src/mess/drivers/x1twin.c | 4 +-- src/mess/drivers/x68k.c | 8 +++--- src/mess/drivers/xavix.c | 7 +---- src/mess/drivers/xerox820.c | 2 ++ src/mess/drivers/ymmu100.c | 10 +------ src/mess/drivers/z100.c | 14 +++------- src/mess/drivers/z1013.c | 3 +- src/mess/drivers/z88.c | 3 +- src/mess/drivers/z9001.c | 2 +- src/mess/drivers/zaurus.c | 7 +---- src/mess/drivers/zorba.c | 12 ++++---- src/mess/drivers/zrt80.c | 3 +- src/mess/drivers/zx.c | 26 ++++++++--------- 327 files changed, 1325 insertions(+), 1418 deletions(-) (limited to 'src/mess/drivers') diff --git a/src/mess/drivers/a2600.c b/src/mess/drivers/a2600.c index 21039fe0c09..d55e3a67214 100644 --- a/src/mess/drivers/a2600.c +++ b/src/mess/drivers/a2600.c @@ -1954,7 +1954,7 @@ static MACHINE_CONFIG_START( a2600, a2600_state ) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK_NTSC, 228, 26, 26 + 160 + 16, 262, 24 , 24 + 192 + 31 ) MCFG_SCREEN_UPDATE_DEVICE("tia_video", tia_video_device, screen_update) - MCFG_PALETTE_LENGTH( TIA_PALETTE_LENGTH ) + MCFG_PALETTE_ADD( "palette", TIA_PALETTE_LENGTH ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1990,7 +1990,7 @@ static MACHINE_CONFIG_START( a2600p, a2600_state ) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK_PAL, 228, 26, 26 + 160 + 16, 312, 32, 32 + 228 + 31 ) MCFG_SCREEN_UPDATE_DEVICE("tia_video", tia_video_device, screen_update) - MCFG_PALETTE_LENGTH( TIA_PALETTE_LENGTH ) + MCFG_PALETTE_ADD( "palette", TIA_PALETTE_LENGTH ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/a310.c b/src/mess/drivers/a310.c index 35cb1ce2c15..e1c8dd93e3d 100644 --- a/src/mess/drivers/a310.c +++ b/src/mess/drivers/a310.c @@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( a310, a310_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 1280 - 1, 0*16, 1024 - 1) MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("2M") diff --git a/src/mess/drivers/a5105.c b/src/mess/drivers/a5105.c index d3c2fd94ba1..eaba3721917 100644 --- a/src/mess/drivers/a5105.c +++ b/src/mess/drivers/a5105.c @@ -82,7 +82,7 @@ public: UINT8 m_memsel[4]; virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(a5105); DECLARE_FLOPPY_FORMATS( floppy_formats ); required_device m_ram; required_device m_gfxdecode; @@ -516,7 +516,7 @@ static GFXDECODE_START( a5105 ) GFXDECODE_END -void a5105_state::palette_init() +PALETTE_INIT_MEMBER(a5105_state, a5105) { int i; int r,g,b; @@ -527,7 +527,7 @@ void a5105_state::palette_init() g = i & 2 ? ((i & 8) ? 0xaa : 0xff) : 0x00; b = i & 1 ? ((i & 8) ? 0xaa : 0xff) : 0x00; - palette_set_color(machine(), i, rgb_t(r,g,b)); + palette.set_pen_color(i, rgb_t(r,g,b)); } } @@ -600,7 +600,8 @@ static MACHINE_CONFIG_START( a5105, a5105_state ) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 25*8-1) MCFG_GFXDECODE_ADD("gfxdecode", a5105) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(a5105_state, a5105) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/a51xx.c b/src/mess/drivers/a51xx.c index b9520aca27f..cc597df63f6 100644 --- a/src/mess/drivers/a51xx.c +++ b/src/mess/drivers/a51xx.c @@ -124,8 +124,8 @@ static MACHINE_CONFIG_START( a5120, a51xx_state ) MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5120) MCFG_GFXDECODE_ADD("gfxdecode", a51xx) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/a6809.c b/src/mess/drivers/a6809.c index f24e3775718..059dc72e8a8 100644 --- a/src/mess/drivers/a6809.c +++ b/src/mess/drivers/a6809.c @@ -258,7 +258,7 @@ static MACHINE_CONFIG_START( a6809, a6809_state ) MCFG_SCREEN_SIZE(40 * 12, 25 * 20) MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 25 * 20 - 1) MCFG_SCREEN_UPDATE_DEVICE("saa5050", saa5050_device, screen_update) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/a7000.c b/src/mess/drivers/a7000.c index 7d3f92c79af..a145ab87a3c 100644 --- a/src/mess/drivers/a7000.c +++ b/src/mess/drivers/a7000.c @@ -204,7 +204,7 @@ WRITE32_MEMBER( a7000_state::a7000_vidc20_w ) g = (data & 0x00ff00) >> 8; b = (data & 0xff0000) >> 16; - palette_set_color_rgb(machine(),m_vidc20_pal_index & 0xff,r,g,b); + m_palette->set_pen_color(m_vidc20_pal_index & 0xff,r,g,b); /* auto-increment & wrap-around */ m_vidc20_pal_index++; @@ -225,7 +225,7 @@ WRITE32_MEMBER( a7000_state::a7000_vidc20_w ) g = (data & 0x00ff00) >> 8; b = (data & 0xff0000) >> 16; - palette_set_color_rgb(machine(),0x100,r,g,b); + m_palette->set_pen_color(0x100,r,g,b); break; case 5: // Cursor Palette Logical Colour n case 6: @@ -236,7 +236,7 @@ WRITE32_MEMBER( a7000_state::a7000_vidc20_w ) g = (data & 0x00ff00) >> 8; b = (data & 0xff0000) >> 16; - palette_set_color_rgb(machine(),cursor_index,r,g,b); + m_palette->set_pen_color(cursor_index,r,g,b); break; case 8: // Horizontal horz_reg = (data >> 24) & 0xf; @@ -277,7 +277,7 @@ UINT32 a7000_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c UINT32 count; UINT8 *vram = memregion("vram")->base(); - bitmap.fill(machine().pens[0x100], cliprect); + bitmap.fill(m_palette->pen(0x100), cliprect); x_size = (m_vidc20_horz_reg[HDER]-m_vidc20_horz_reg[HDSR]); y_size = (m_vidc20_vert_reg[VDER]-m_vidc20_vert_reg[VDSR]); @@ -301,7 +301,7 @@ UINT32 a7000_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c for(x=0;x>(xi))&1]; + bitmap.pix32(y+y_start, x+xi+x_start) = m_palette->pen((vram[count]>>(xi))&1); count++; } @@ -315,7 +315,7 @@ UINT32 a7000_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c for(x=0;x>(xi*2))&3]; + bitmap.pix32(y+y_start, x+xi+x_start) = m_palette->pen((vram[count]>>(xi*2))&3); count++; } @@ -329,7 +329,7 @@ UINT32 a7000_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c for(x=0;x>(xi*4))&0xf]; + bitmap.pix32(y+y_start, x+xi+x_start) = m_palette->pen((vram[count]>>(xi*4))&0xf); count++; } @@ -342,7 +342,7 @@ UINT32 a7000_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c { for(x=0;xpen((vram[count])&0xff); count++; } @@ -807,7 +807,7 @@ static MACHINE_CONFIG_START( a7000, a7000_state ) MCFG_SCREEN_SIZE(1900, 1080) //max available size MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) MCFG_SCREEN_UPDATE_DRIVER(a7000_state, screen_update) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( a7000p, a7000 ) diff --git a/src/mess/drivers/a7150.c b/src/mess/drivers/a7150.c index 53d01cbd2ad..13009999317 100644 --- a/src/mess/drivers/a7150.c +++ b/src/mess/drivers/a7150.c @@ -64,8 +64,7 @@ static MACHINE_CONFIG_START( a7150, a7150_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(a7150_state, screen_update_a7150) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/a7800.c b/src/mess/drivers/a7800.c index fb0e10244d4..1920c1df209 100644 --- a/src/mess/drivers/a7800.c +++ b/src/mess/drivers/a7800.c @@ -1006,15 +1006,15 @@ define NTSC_LIGHT_ORANGE ***************************************************************************/ /* Initialise the palette */ -void a7800_state::palette_init() +PALETTE_INIT_MEMBER(a7800_state, a7800) { - palette_set_colors(machine(), 0, a7800_palette, ARRAY_LENGTH(a7800_palette)); + palette.set_pen_colors(0, a7800_palette, ARRAY_LENGTH(a7800_palette)); } PALETTE_INIT_MEMBER(a7800_state,a7800p) { - palette_set_colors(machine(), 0, a7800p_palette, ARRAY_LENGTH(a7800p_palette)); + palette.set_pen_colors(0, a7800p_palette, ARRAY_LENGTH(a7800p_palette)); } @@ -1034,7 +1034,8 @@ static MACHINE_CONFIG_START( a7800_ntsc, a7800_state ) MCFG_SCREEN_RAW_PARAMS( 7159090, 456, 0, 320, 262, 26, 26 + 192 + 30 ) MCFG_SCREEN_UPDATE_DRIVER(a7800_state, screen_update_a7800) - MCFG_PALETTE_LENGTH(ARRAY_LENGTH(a7800_palette)) + MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(a7800_palette)) + MCFG_PALETTE_INIT_OWNER(a7800_state, a7800) /* sound hardware */ @@ -1069,7 +1070,9 @@ static MACHINE_CONFIG_DERIVED( a7800_pal, a7800_ntsc ) MCFG_SCREEN_MODIFY( "screen" ) MCFG_SCREEN_RAW_PARAMS( 7093788, 456, 0, 320, 312, 34, 34 + 228 + 30 ) - MCFG_PALETTE_INIT_OVERRIDE(a7800_state, a7800p ) + + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(a7800_state, a7800p ) /* sound hardware */ MCFG_DEVICE_REMOVE("pokey") diff --git a/src/mess/drivers/ac1.c b/src/mess/drivers/ac1.c index 204525d379f..ff1354e1725 100644 --- a/src/mess/drivers/ac1.c +++ b/src/mess/drivers/ac1.c @@ -136,10 +136,9 @@ static MACHINE_CONFIG_START( ac1, ac1_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 16*8-1) MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1) - MCFG_GFXDECODE_ADD("gfxdecode", ac1 ) + MCFG_GFXDECODE_ADD("gfxdecode", ac1 ) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/ace.c b/src/mess/drivers/ace.c index 49d6b5dd063..19c42b1fce6 100644 --- a/src/mess/drivers/ace.c +++ b/src/mess/drivers/ace.c @@ -739,8 +739,7 @@ static MACHINE_CONFIG_START( ace, ace_state ) MCFG_TIMER_DRIVER_ADD_SCANLINE("set_irq", ace_state, set_irq, SCREEN_TAG, 31*8, 264) MCFG_TIMER_DRIVER_ADD_SCANLINE("clear_irq", ace_state, clear_irq, SCREEN_TAG, 32*8, 264) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", ace) diff --git a/src/mess/drivers/advision.c b/src/mess/drivers/advision.c index 2a069a4365d..b1cb11f3358 100644 --- a/src/mess/drivers/advision.c +++ b/src/mess/drivers/advision.c @@ -79,7 +79,8 @@ static MACHINE_CONFIG_START( advision, advision_state ) MCFG_SCREEN_UPDATE_DRIVER(advision_state, screen_update) MCFG_SCREEN_SIZE(320, 200) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(advision_state, advision) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/alesis.c b/src/mess/drivers/alesis.c index dd3b8253d13..87808e78308 100644 --- a/src/mess/drivers/alesis.c +++ b/src/mess/drivers/alesis.c @@ -220,10 +220,10 @@ static INPUT_PORTS_START( sr16 ) INPUT_PORTS_END -void alesis_state::palette_init() +PALETTE_INIT_MEMBER(alesis_state, alesis) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } void alesis_state::machine_reset() @@ -267,7 +267,8 @@ static MACHINE_CONFIG_START( hr16, alesis_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") + MCFG_PALETTE_INIT_OWNER(alesis_state, alesis) MCFG_CASSETTE_ADD( "cassette", hr16_cassette_interface ) @@ -292,8 +293,6 @@ static MACHINE_CONFIG_DERIVED( sr16, hr16 ) MCFG_SCREEN_VISIBLE_AREA(0, 6*8-1, 0, 9*2-1) MCFG_DEFAULT_LAYOUT(layout_sr16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) - MCFG_DEVICE_MODIFY("hd44780") MCFG_HD44780_LCD_SIZE(2, 8) MCFG_HD44780_PIXEL_UPDATE_CB(sr16_pixel_update) diff --git a/src/mess/drivers/alphasma.c b/src/mess/drivers/alphasma.c index 600ca7be2cd..036eda171f9 100644 --- a/src/mess/drivers/alphasma.c +++ b/src/mess/drivers/alphasma.c @@ -72,7 +72,7 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(alphasmart); virtual UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_INPUT_CHANGED_MEMBER(kb_irq); @@ -345,10 +345,10 @@ static INPUT_PORTS_START( alphasmart ) PORT_CONFSETTING (0x01, DEF_STR(Normal)) INPUT_PORTS_END -void alphasmart_state::palette_init() +PALETTE_INIT_MEMBER(alphasmart_state, alphasmart) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } UINT32 alphasmart_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -397,7 +397,8 @@ static MACHINE_CONFIG_START( alphasmart, alphasmart_state ) MCFG_SCREEN_UPDATE_DRIVER(alphasmart_state, screen_update) MCFG_SCREEN_SIZE(6*40, 9*4) MCFG_SCREEN_VISIBLE_AREA(0, (6*40)-1, 0, (9*4)-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(alphasmart_state, alphasmart) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mess/drivers/alphatro.c b/src/mess/drivers/alphatro.c index 8a668f7c8f3..a2b68cc39f2 100644 --- a/src/mess/drivers/alphatro.c +++ b/src/mess/drivers/alphatro.c @@ -80,12 +80,11 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); - + DECLARE_PALETTE_INIT(alphatro); private: UINT8 m_timer_bit; UINT8 m_cass_data[4]; - bool m_cass_state; - virtual void palette_init(); + bool m_cass_state; }; READ8_MEMBER( alphatro_state::port10_r ) @@ -379,19 +378,19 @@ void alphatro_state::machine_reset() m_beep->set_frequency(950); /* piezo-device needs to be measured */ } -void alphatro_state::palette_init() +PALETTE_INIT_MEMBER(alphatro_state, alphatro) { // RGB colours - palette_set_color_rgb(machine(), 0, 0x00, 0x00, 0x00); - palette_set_color_rgb(machine(), 1, 0x00, 0x00, 0xff); - palette_set_color_rgb(machine(), 2, 0xff, 0x00, 0x00); - palette_set_color_rgb(machine(), 3, 0xff, 0x00, 0xff); - palette_set_color_rgb(machine(), 4, 0x00, 0xff, 0x00); - palette_set_color_rgb(machine(), 5, 0x00, 0xff, 0xff); - palette_set_color_rgb(machine(), 6, 0xff, 0xff, 0x00); - palette_set_color_rgb(machine(), 7, 0xff, 0xff, 0xff); + palette.set_pen_color(0, 0x00, 0x00, 0x00); + palette.set_pen_color(1, 0x00, 0x00, 0xff); + palette.set_pen_color(2, 0xff, 0x00, 0x00); + palette.set_pen_color(3, 0xff, 0x00, 0xff); + palette.set_pen_color(4, 0x00, 0xff, 0x00); + palette.set_pen_color(5, 0x00, 0xff, 0xff); + palette.set_pen_color(6, 0xff, 0xff, 0x00); + palette.set_pen_color(7, 0xff, 0xff, 0xff); // Amber - palette_set_color_rgb(machine(), 8, 0xf7, 0xaa, 0x00); + palette.set_pen_color(8, 0xf7, 0xaa, 0x00); } @@ -458,7 +457,8 @@ static MACHINE_CONFIG_START( alphatro, alphatro_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_GFXDECODE_ADD("gfxdecode", alphatro) - MCFG_PALETTE_LENGTH(9) // 8 colours + amber + MCFG_PALETTE_ADD("palette", 9) // 8 colours + amber + MCFG_PALETTE_INIT_OWNER(alphatro_state, alphatro) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c index d8f03086723..ccdb27876e8 100644 --- a/src/mess/drivers/amiga.c +++ b/src/mess/drivers/amiga.c @@ -658,8 +658,8 @@ static MACHINE_CONFIG_START( ntsc, amiga_state ) MCFG_SCREEN_RAW_PARAMS(AMIGA_68000_NTSC_CLOCK*2,228*4,214,228*4,262,34,262) MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(amiga_state, amiga ) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(amiga_state, amiga ) MCFG_VIDEO_START_OVERRIDE(amiga_state,amiga) @@ -865,8 +865,8 @@ static MACHINE_CONFIG_START( a1200n, a1200_state ) MCFG_DEFAULT_LAYOUT(layout_amiga) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(amiga_state, amiga ) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(amiga_state, amiga ) MCFG_VIDEO_START_OVERRIDE(amiga_state,amiga) @@ -972,8 +972,8 @@ static MACHINE_CONFIG_START( a3000n, amiga_state ) // MCFG_SCREEN_VISIBLE_AREA(214, (228*4)-1, 34, 262-1) MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(amiga_state, amiga ) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(amiga_state, amiga ) MCFG_VIDEO_START_OVERRIDE(amiga_state,amiga) diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c index 6f9d7b8fd29..2df7a2b579d 100644 --- a/src/mess/drivers/amstrad.c +++ b/src/mess/drivers/amstrad.c @@ -295,11 +295,11 @@ INPUT_CHANGED_MEMBER(amstrad_state::cpc_monitor_changed) { if ( (m_io_green_display->read()) & 0x01 ) { - PALETTE_INIT_CALL_MEMBER( amstrad_cpc_green ); + PALETTE_INIT_NAME( amstrad_cpc_green )(m_palette); } else { - PALETTE_INIT_CALL_MEMBER( amstrad_cpc ); + PALETTE_INIT_NAME( amstrad_cpc )(m_palette); } } @@ -893,8 +893,8 @@ static MACHINE_CONFIG_START( amstrad_nofdc, amstrad_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_PALETTE_LENGTH(32) - MCFG_PALETTE_INIT_OVERRIDE(amstrad_state,amstrad_cpc) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(amstrad_state,amstrad_cpc) MCFG_MC6845_ADD( "mc6845", MC6845, NULL, XTAL_16MHz / 16, amstrad_mc6845_intf ) @@ -943,7 +943,8 @@ static MACHINE_CONFIG_DERIVED( kccomp, amstrad ) MCFG_MACHINE_START_OVERRIDE(amstrad_state,kccomp) MCFG_MACHINE_RESET_OVERRIDE(amstrad_state,kccomp) - MCFG_PALETTE_INIT_OVERRIDE(amstrad_state,kccomp) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(amstrad_state,kccomp) MACHINE_CONFIG_END @@ -968,8 +969,8 @@ static MACHINE_CONFIG_START( cpcplus, amstrad_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(amstrad_state,amstrad_plus) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(amstrad_state,amstrad_plus) MCFG_MC6845_ADD( "mc6845", MC6845, NULL, XTAL_40MHz / 40, amstrad_plus_mc6845_intf ) @@ -1028,8 +1029,8 @@ static MACHINE_CONFIG_START( gx4000, amstrad_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(amstrad_state,amstrad_plus) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(amstrad_state,amstrad_plus) MCFG_MC6845_ADD( "mc6845", MC6845, NULL, XTAL_40MHz / 40, amstrad_plus_mc6845_intf ) @@ -1056,8 +1057,10 @@ static MACHINE_CONFIG_DERIVED( aleste, amstrad ) MCFG_SOUND_REPLACE("ay", AY8912, XTAL_16MHz / 16) MCFG_SOUND_CONFIG(ay8912_interface) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_PALETTE_LENGTH(32+64) - MCFG_PALETTE_INIT_OVERRIDE(amstrad_state,aleste) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64) + MCFG_PALETTE_INIT_OWNER(amstrad_state,aleste) MCFG_MC146818_ADD( "rtc", XTAL_4_194304Mhz ) MCFG_DEVICE_REMOVE("upd765") diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c index 68110b82301..5a4fc6dd69c 100644 --- a/src/mess/drivers/apc.c +++ b/src/mess/drivers/apc.c @@ -160,7 +160,6 @@ protected: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); inline void set_dma_channel(int channel, int state); }; @@ -172,7 +171,7 @@ void apc_state::video_start() UINT32 apc_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); /* graphics */ m_hgdc2->screen_update(screen, bitmap, cliprect); @@ -776,10 +775,6 @@ void apc_state::machine_reset() } -void apc_state::palette_init() -{ -} - static UPD7220_INTERFACE( hgdc_1_intf ) { NULL, @@ -979,9 +974,9 @@ PALETTE_INIT_MEMBER(apc_state,apc) int i; for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); - for(i=8;i> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + for(i=8;igfx(0)->transpen(bitmap,bitmap.cliprect(), character-32, color, 0, 0, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,bitmap.cliprect(), character-32, color, 0, 0, x+1, y, 0); } @@ -650,7 +650,7 @@ void apexc_state::apexc_teletyper_linefeed() for (y=teletyper_window_offset_y; ypens()); } m_bitmap->fill(0, teletyper_scroll_clear_window); @@ -890,7 +890,8 @@ static MACHINE_CONFIG_START( apexc, apexc_state ) MCFG_SCREEN_UPDATE_DRIVER(apexc_state, screen_update_apexc) MCFG_GFXDECODE_ADD("gfxdecode", apexc) - MCFG_PALETTE_LENGTH(APEXC_PALETTE_SIZE) + MCFG_PALETTE_ADD("palette", APEXC_PALETTE_SIZE) + MCFG_PALETTE_INIT_OWNER(apexc_state, apexc) MCFG_APEXC_CYLINDER_ADD("cylinder") diff --git a/src/mess/drivers/apogee.c b/src/mess/drivers/apogee.c index 23cd7d88798..1a56fa06d35 100644 --- a/src/mess/drivers/apogee.c +++ b/src/mess/drivers/apogee.c @@ -227,8 +227,8 @@ static MACHINE_CONFIG_START( apogee, apogee_state ) MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) MCFG_GFXDECODE_ADD("gfxdecode", apogee) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(apogee_state,radio86) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(apogee_state,radio86) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") diff --git a/src/mess/drivers/apple1.c b/src/mess/drivers/apple1.c index 3aa7d9d0811..feeaa3a96cb 100644 --- a/src/mess/drivers/apple1.c +++ b/src/mess/drivers/apple1.c @@ -301,9 +301,8 @@ static MACHINE_CONFIG_START( apple1, apple1_state ) MCFG_GFXDECODE_ADD("gfxdecode", apple1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_DEVICE_ADD( "pia", PIA6821, 0) MCFG_PIA_READPA_HANDLER(READ8(apple1_state,apple1_pia0_kbdin)) diff --git a/src/mess/drivers/apple2.c b/src/mess/drivers/apple2.c index a58be69b7db..3c10714f51f 100644 --- a/src/mess/drivers/apple2.c +++ b/src/mess/drivers/apple2.c @@ -933,7 +933,7 @@ static const rgb_t apple2_palette[] = /* Initialize the palette */ PALETTE_INIT_MEMBER(apple2_state,apple2) { - palette_set_colors(machine(), 0, apple2_palette, ARRAY_LENGTH(apple2_palette)); + palette.set_pen_colors(0, apple2_palette, ARRAY_LENGTH(apple2_palette)); } static const cassette_interface apple2_cassette_interface = @@ -1019,8 +1019,8 @@ static MACHINE_CONFIG_START( apple2_common, apple2_state ) MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1) MCFG_SCREEN_UPDATE_DRIVER(apple2_state, screen_update_apple2) - MCFG_PALETTE_LENGTH(ARRAY_LENGTH(apple2_palette)) - MCFG_PALETTE_INIT_OVERRIDE(apple2_state,apple2) + MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(apple2_palette)) + MCFG_PALETTE_INIT_OWNER(apple2_state,apple2) MCFG_VIDEO_START_OVERRIDE(apple2_state,apple2) diff --git a/src/mess/drivers/apple2gs.c b/src/mess/drivers/apple2gs.c index 787fe122da3..c08b2593373 100644 --- a/src/mess/drivers/apple2gs.c +++ b/src/mess/drivers/apple2gs.c @@ -143,11 +143,11 @@ PALETTE_INIT_MEMBER(apple2gs_state,apple2gs) { int i; - PALETTE_INIT_CALL_MEMBER(apple2); + PALETTE_INIT_NAME(apple2)(palette); for (i = 0; i < 16; i++) { - palette_set_color_rgb(machine(), i, + palette.set_pen_color(i, apple2gs_palette[(3*i)]*17, apple2gs_palette[(3*i)+1]*17, apple2gs_palette[(3*i)+2]*17); @@ -344,13 +344,13 @@ static MACHINE_CONFIG_START( apple2gs, apple2gs_state ) MCFG_SCREEN_VISIBLE_AREA(0,703,0,230) MCFG_SCREEN_UPDATE_DRIVER(apple2gs_state, screen_update_apple2gs) - MCFG_PALETTE_LENGTH( 16+256 ) - MCFG_GFXDECODE_ADD("gfxdecode", apple2gs ) + MCFG_PALETTE_ADD( "palette", 16+256 ) + MCFG_PALETTE_INIT_OWNER(apple2gs_state, apple2gs ) + MCFG_GFXDECODE_ADD("gfxdecode", apple2gs ) MCFG_MACHINE_START_OVERRIDE(apple2gs_state, apple2gs ) MCFG_MACHINE_RESET_OVERRIDE(apple2gs_state, apple2gs ) - MCFG_PALETTE_INIT_OVERRIDE(apple2gs_state, apple2gs ) MCFG_VIDEO_START_OVERRIDE(apple2gs_state, apple2gs ) /* keyboard controller */ diff --git a/src/mess/drivers/apple3.c b/src/mess/drivers/apple3.c index 57586f3e637..fc4f9492cc0 100644 --- a/src/mess/drivers/apple3.c +++ b/src/mess/drivers/apple3.c @@ -72,8 +72,8 @@ static MACHINE_CONFIG_START( apple3, apple3_state ) MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1) MCFG_SCREEN_UPDATE_DRIVER(apple3_state, screen_update_apple3) - MCFG_PALETTE_LENGTH(32) - MCFG_PALETTE_INIT_OVERRIDE(apple3_state, apple3 ) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(apple3_state, apple3 ) MCFG_VIDEO_START_OVERRIDE(apple3_state, apple3 ) diff --git a/src/mess/drivers/applix.c b/src/mess/drivers/applix.c index af159a354da..bec43f0dbf8 100644 --- a/src/mess/drivers/applix.c +++ b/src/mess/drivers/applix.c @@ -135,7 +135,7 @@ public: UINT8 m_pa; virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(applix); UINT8 m_palette_latch[4]; required_shared_ptr m_base; private: @@ -734,7 +734,7 @@ static SLOT_INTERFACE_START( applix_floppies ) SLOT_INTERFACE_END -void applix_state::palette_init() +PALETTE_INIT_MEMBER(applix_state, applix) { // shades need to be verified - the names on the right are from the manual const UINT8 colors[16*3] = { 0x00, 0x00, 0x00, // 0 Black @@ -759,7 +759,7 @@ void applix_state::palette_init() for (i = 0; i < 48; color_count++) { r = colors[i++]; g = colors[i++]; b = colors[i++]; - palette_set_color(machine(), color_count, rgb_t(r, g, b)); + palette.set_pen_color(color_count, rgb_t(r, g, b)); } } @@ -870,7 +870,8 @@ static MACHINE_CONFIG_START( applix, applix_state ) MCFG_SCREEN_SIZE(640, 200) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(applix_state, applix) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/apricotf.c b/src/mess/drivers/apricotf.c index 52f8f44d116..41f87c0ab26 100644 --- a/src/mess/drivers/apricotf.c +++ b/src/mess/drivers/apricotf.c @@ -93,7 +93,7 @@ WRITE16_MEMBER( f1_state::palette_w ) g = ((m_p_paletteram[offset] & 4)>>1) | i; b = ((m_p_paletteram[offset] & 8)>>2) | i; - palette_set_color_rgb(machine(), offset, pal2bit(r), pal2bit(g), pal2bit(b)); + m_palette->set_pen_color(offset, pal2bit(r), pal2bit(g), pal2bit(b)); } } @@ -332,7 +332,7 @@ static MACHINE_CONFIG_START( act_f1, f1_state ) MCFG_SCREEN_UPDATE_DRIVER(f1_state, screen_update) MCFG_SCREEN_SIZE(640, 256) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 256-1) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_GFXDECODE_ADD("gfxdecode", act_f1) /* Devices */ diff --git a/src/mess/drivers/apricotp.c b/src/mess/drivers/apricotp.c index 673835326ec..fd1f641dbff 100644 --- a/src/mess/drivers/apricotp.c +++ b/src/mess/drivers/apricotp.c @@ -602,7 +602,7 @@ static MACHINE_CONFIG_START( fp, fp_state ) MCFG_SCREEN_SIZE(640, 256) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 256-1) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_GFXDECODE_ADD("gfxdecode", act_f1) MCFG_MC6845_ADD(MC6845_TAG, MC6845, SCREEN_CRT_TAG, 4000000, crtc_intf) diff --git a/src/mess/drivers/aquarius.c b/src/mess/drivers/aquarius.c index 0322786cc5d..7d3727a5a2f 100644 --- a/src/mess/drivers/aquarius.c +++ b/src/mess/drivers/aquarius.c @@ -371,9 +371,9 @@ static MACHINE_CONFIG_START( aquarius, aquarius_state ) MCFG_SCREEN_VISIBLE_AREA(0, 40 * 8 - 1, 0 * 8, 25 * 8 - 1) MCFG_SCREEN_UPDATE_DRIVER(aquarius_state, screen_update_aquarius) - MCFG_GFXDECODE_ADD("gfxdecode", aquarius ) - MCFG_PALETTE_LENGTH(512) - + MCFG_GFXDECODE_ADD("gfxdecode", aquarius ) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(aquarius_state, aquarius) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/arcadia.c b/src/mess/drivers/arcadia.c index 8f433f1e446..fd62afac9ee 100644 --- a/src/mess/drivers/arcadia.c +++ b/src/mess/drivers/arcadia.c @@ -438,17 +438,15 @@ static const unsigned short arcadia_palette[128+8] = /* bgnd, fgnd */ 7,0, 7,1, 7,2, 7,3, 7,4, 7,5, 7,6, 7,7 }; -void arcadia_state::palette_init() +PALETTE_INIT_MEMBER(arcadia_state, arcadia) { int i; - machine().colortable = colortable_alloc(machine(), 8); - for (i = 0; i < 8; i++) - colortable_palette_set_color(machine().colortable, i, arcadia_colors[i]); + palette.set_indirect_color(i, arcadia_colors[i]); for (i = 0; i < 128+8; i++) - colortable_entry_set_value(machine().colortable, i, arcadia_palette[i]); + palette.set_pen_indirect(i, arcadia_palette[i]); } DEVICE_IMAGE_LOAD_MEMBER( arcadia_state, arcadia_cart ) @@ -541,8 +539,9 @@ static MACHINE_CONFIG_START( arcadia, arcadia_state ) MCFG_SCREEN_VISIBLE_AREA(0, 2*XPOS+128-1, 0, 262-1) MCFG_SCREEN_UPDATE_DRIVER(arcadia_state, screen_update_arcadia) - MCFG_GFXDECODE_ADD("gfxdecode", arcadia ) - MCFG_PALETTE_LENGTH(ARRAY_LENGTH(arcadia_palette)) + MCFG_GFXDECODE_ADD("gfxdecode", arcadia ) + MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(arcadia_palette)) + MCFG_PALETTE_INIT_OWNER(arcadia_state, arcadia) /* sound hardware */ diff --git a/src/mess/drivers/argo.c b/src/mess/drivers/argo.c index 3dc26395aeb..f69030b6b54 100644 --- a/src/mess/drivers/argo.c +++ b/src/mess/drivers/argo.c @@ -358,8 +358,7 @@ static MACHINE_CONFIG_START( argo, argo_state ) MCFG_SCREEN_UPDATE_DRIVER(argo_state, screen_update) MCFG_SCREEN_SIZE(640, 250) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/astrocde.c b/src/mess/drivers/astrocde.c index e31abe09ffd..a8aa03c4db7 100644 --- a/src/mess/drivers/astrocde.c +++ b/src/mess/drivers/astrocde.c @@ -260,7 +260,7 @@ static MACHINE_CONFIG_START( astrocde, astrocde_mess_state ) MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240) MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_astrocde) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ diff --git a/src/mess/drivers/at.c b/src/mess/drivers/at.c index 1f7a1f1d291..53ab2059c9c 100644 --- a/src/mess/drivers/at.c +++ b/src/mess/drivers/at.c @@ -360,9 +360,6 @@ static MACHINE_CONFIG_FRAGMENT( at_motherboard ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - /* video hardware */ - MCFG_PALETTE_LENGTH( 256 ) MACHINE_CONFIG_END static MACHINE_CONFIG_START( ibm5170, at_state ) diff --git a/src/mess/drivers/atari400.c b/src/mess/drivers/atari400.c index f18a546319d..1e483cb2dfa 100644 --- a/src/mess/drivers/atari400.c +++ b/src/mess/drivers/atari400.c @@ -298,7 +298,7 @@ public: DECLARE_MACHINE_START(a800); DECLARE_MACHINE_START(a800xl); DECLARE_MACHINE_START(a5200); - virtual void palette_init(); + DECLARE_PALETTE_INIT(a400); DECLARE_WRITE8_MEMBER(a1200xl_pia_pb_w); DECLARE_WRITE8_MEMBER(a800xl_pia_pb_w); DECLARE_WRITE8_MEMBER(xegs_pia_pb_w); @@ -922,13 +922,13 @@ static const UINT8 atari_palette[256*3] = /* Initialise the palette */ -void a400_state::palette_init() +PALETTE_INIT_MEMBER(a400_state, a400) { int i; for ( i = 0; i < sizeof(atari_palette) / 3; i++ ) { - palette_set_color_rgb(machine(), i, atari_palette[i*3], atari_palette[i*3+1], atari_palette[i*3+2]); + palette.set_pen_color(i, atari_palette[i*3], atari_palette[i*3+1], atari_palette[i*3+2]); } } /****************************************************************** @@ -2481,9 +2481,11 @@ static MACHINE_CONFIG_START( atari_common_nodac, a400_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1)) MCFG_SCREEN_VISIBLE_AREA(MIN_X, MAX_X, MIN_Y, MAX_Y) - MCFG_PALETTE_LENGTH(sizeof(atari_palette) / 3) MCFG_SCREEN_UPDATE_STATIC(atari) + MCFG_PALETTE_ADD("palette", sizeof(atari_palette) / 3) + MCFG_PALETTE_INIT_OWNER(a400_state, a400) + MCFG_VIDEO_START(atari) MCFG_DEVICE_ADD("pia", PIA6821, 0) diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c index 885684d5f41..a5dd77b69cf 100644 --- a/src/mess/drivers/atarist.c +++ b/src/mess/drivers/atarist.c @@ -2190,7 +2190,7 @@ static MACHINE_CONFIG_START( st, st_state ) MCFG_SCREEN_UPDATE_DRIVER(st_state, screen_update) MCFG_SCREEN_RAW_PARAMS(Y2/2, ATARIST_HTOT_PAL*2, ATARIST_HBEND_PAL*2, ATARIST_HBSTART_PAL*2, ATARIST_VTOT_PAL, ATARIST_VBEND_PAL, ATARIST_VBSTART_PAL) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2268,7 +2268,7 @@ static MACHINE_CONFIG_START( megast, megast_state ) MCFG_SCREEN_UPDATE_DRIVER(megast_state, screen_update) MCFG_SCREEN_RAW_PARAMS(Y2/4, ATARIST_HTOT_PAL, ATARIST_HBEND_PAL, ATARIST_HBSTART_PAL, ATARIST_VTOT_PAL, ATARIST_VBEND_PAL, ATARIST_VBSTART_PAL) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2347,7 +2347,7 @@ static MACHINE_CONFIG_START( ste, ste_state ) MCFG_SCREEN_UPDATE_DRIVER(ste_state, screen_update) MCFG_SCREEN_RAW_PARAMS(Y2/4, ATARIST_HTOT_PAL, ATARIST_HBEND_PAL, ATARIST_HBSTART_PAL, ATARIST_VTOT_PAL, ATARIST_VBEND_PAL, ATARIST_VBSTART_PAL) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) // sound hardware MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -2450,9 +2450,7 @@ static MACHINE_CONFIG_START( stbook, stbook_state ) MCFG_SCREEN_SIZE(640, 400) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) - MCFG_PALETTE_LENGTH(2) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/avigo.c b/src/mess/drivers/avigo.c index ae242a404ac..7fec9b8cbf8 100644 --- a/src/mess/drivers/avigo.c +++ b/src/mess/drivers/avigo.c @@ -902,7 +902,8 @@ static MACHINE_CONFIG_START( avigo, avigo_state ) MCFG_DEFAULT_LAYOUT(layout_avigo) MCFG_GFXDECODE_ADD("gfxdecode", avigo) - MCFG_PALETTE_LENGTH(AVIGO_NUM_COLOURS) + MCFG_PALETTE_ADD("palette", AVIGO_NUM_COLOURS) + MCFG_PALETTE_INIT_OWNER(avigo_state, avigo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/ax20.c b/src/mess/drivers/ax20.c index 4e5eb7e2bbf..4ade8f729a8 100644 --- a/src/mess/drivers/ax20.c +++ b/src/mess/drivers/ax20.c @@ -48,7 +48,7 @@ UINT32 ax20_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co { UINT16 tile = m_p_vram[24 + y * 128 + x ] & 0x7f; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, 0, 0, 0, x*8, y*12); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, 0, 0, 0, x*8, y*12); } } @@ -119,8 +119,7 @@ static MACHINE_CONFIG_START( ax20, ax20_state ) MCFG_SCREEN_SIZE(80*8, 24*12) MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 24*12-1) MCFG_GFXDECODE_ADD("gfxdecode", ax20) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* Devices */ MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, ax20_floppy_interface) diff --git a/src/mess/drivers/b16.c b/src/mess/drivers/b16.c index 6ad72618c3c..d30d417aa76 100644 --- a/src/mess/drivers/b16.c +++ b/src/mess/drivers/b16.c @@ -101,7 +101,7 @@ UINT32 b16_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, con pen = (gfx_rom[tile*16+yi] >> (7-xi) & 1) ? color : 0; if(y*mc6845_tile_height < 400 && x*8+xi < 640) /* TODO: safety check */ - bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = machine().pens[pen]; + bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = m_palette->pen(pen); } } } @@ -313,8 +313,8 @@ static MACHINE_CONFIG_START( b16, b16_state ) MCFG_I8237_ADD("8237dma", XTAL_14_31818MHz/2, b16_dma8237_interface) MCFG_GFXDECODE_ADD("gfxdecode", b16) - MCFG_PALETTE_LENGTH(8) -// MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) // TODO + MCFG_PALETTE_ADD("palette", 8) +// MCFG_PALETTE_INIT_STANDARD(black_and_white) // TODO MACHINE_CONFIG_END diff --git a/src/mess/drivers/b2m.c b/src/mess/drivers/b2m.c index d09bb1a4df3..c29c06dbfae 100644 --- a/src/mess/drivers/b2m.c +++ b/src/mess/drivers/b2m.c @@ -196,7 +196,8 @@ static MACHINE_CONFIG_START( b2m, b2m_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(b2m_state, screen_update_b2m) - MCFG_PALETTE_LENGTH(4) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(b2m_state, b2m) MCFG_DEVICE_ADD("pit8253", PIT8253, 0) MCFG_PIT8253_CLK0(0) diff --git a/src/mess/drivers/bbc.c b/src/mess/drivers/bbc.c index 373e04a69df..10c1fc3e242 100644 --- a/src/mess/drivers/bbc.c +++ b/src/mess/drivers/bbc.c @@ -300,7 +300,7 @@ static const rgb_t bbc_palette[8]= PALETTE_INIT_MEMBER(bbc_state, bbc) { - palette_set_colors(machine(), 0, bbc_palette, ARRAY_LENGTH(bbc_palette)); + palette.set_pen_colors(0, bbc_palette, ARRAY_LENGTH(bbc_palette)); } @@ -699,9 +699,9 @@ static MACHINE_CONFIG_START( bbca, bbc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(128)) MCFG_SCREEN_UPDATE_DEVICE("mc6845", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(bbc_state, bbc) - MCFG_SAA5050_ADD("saa5050", XTAL_12MHz/2, trom_intf) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(bbc_state,bbc) + MCFG_SAA5050_ADD("saa505x", XTAL_12MHz/2, trom_intf) /* crtc */ MCFG_MC6845_ADD("mc6845", MC6845, "screen", 2000000, bbc_mc6845_intf) @@ -909,9 +909,9 @@ static MACHINE_CONFIG_START( bbcm, bbc_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(128)) MCFG_SCREEN_SIZE(640, 256) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 256-1) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(bbc_state, bbc) MCFG_SCREEN_UPDATE_DEVICE("mc6845", mc6845_device, screen_update) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(bbc_state,bbc) MCFG_SAA5050_ADD("saa5050", XTAL_12MHz/2, trom_intf) diff --git a/src/mess/drivers/bcs3.c b/src/mess/drivers/bcs3.c index 1785c120ea8..d449598a5bc 100644 --- a/src/mess/drivers/bcs3.c +++ b/src/mess/drivers/bcs3.c @@ -427,8 +427,7 @@ static MACHINE_CONFIG_START( bcs3, bcs3_state ) MCFG_SCREEN_VISIBLE_AREA(0,28*8-1,0,12*10-1) MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3) MCFG_GFXDECODE_ADD("gfxdecode", bcs3) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( bcs3a, bcs3 ) diff --git a/src/mess/drivers/beehive.c b/src/mess/drivers/beehive.c index 3bbfd7f0a05..14dbc4b90b6 100644 --- a/src/mess/drivers/beehive.c +++ b/src/mess/drivers/beehive.c @@ -299,8 +299,7 @@ static MACHINE_CONFIG_START( beehive, beehive_state ) MCFG_SCREEN_UPDATE_DRIVER(beehive_state, screen_update) MCFG_SCREEN_SIZE(640, 250) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/bigbord2.c b/src/mess/drivers/bigbord2.c index b52156ddc2b..bc7c379bc41 100644 --- a/src/mess/drivers/bigbord2.c +++ b/src/mess/drivers/bigbord2.c @@ -652,8 +652,7 @@ static MACHINE_CONFIG_START( bigbord2, bigbord2_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_10_69425MHz, 700, 0, 560, 260, 0, 240) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", bigbord2) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* keyboard */ MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", bigbord2_state, ctc_tick, attotime::from_hz(MAIN_CLOCK)) diff --git a/src/mess/drivers/binbug.c b/src/mess/drivers/binbug.c index 856a98cda4b..5b08d098690 100644 --- a/src/mess/drivers/binbug.c +++ b/src/mess/drivers/binbug.c @@ -311,8 +311,7 @@ static MACHINE_CONFIG_START( binbug, binbug_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255) MCFG_GFXDECODE_ADD("gfxdecode", dg640) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_amber) + MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette") /* Keyboard */ MCFG_SERIAL_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf, 300) @@ -570,8 +569,7 @@ static MACHINE_CONFIG_START( dg680, dg680_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255) MCFG_GFXDECODE_ADD("gfxdecode", dg640) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_amber) + MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette") /* Keyboard */ MCFG_ASCII_KEYBOARD_ADD("keyb", dg680_keyboard_intf) diff --git a/src/mess/drivers/bk.c b/src/mess/drivers/bk.c index 9154994eadc..6018ba0275a 100644 --- a/src/mess/drivers/bk.c +++ b/src/mess/drivers/bk.c @@ -181,8 +181,7 @@ static MACHINE_CONFIG_START( bk0010, bk_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(bk_state, screen_update_bk0010) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/bmjr.c b/src/mess/drivers/bmjr.c index 646f067f625..58b9f636cfd 100644 --- a/src/mess/drivers/bmjr.c +++ b/src/mess/drivers/bmjr.c @@ -53,7 +53,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(bmjr); UINT32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -324,12 +324,12 @@ static GFXDECODE_START( bmjr ) GFXDECODE_ENTRY( "chargen", 0x0000, bmjr_charlayout, 0, 4 ) GFXDECODE_END -void bmjr_state::palette_init() +PALETTE_INIT_MEMBER(bmjr_state, bmjr) { int i; for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); } @@ -359,7 +359,8 @@ static MACHINE_CONFIG_START( bmjr, bmjr_state ) MCFG_SCREEN_SIZE(256, 192) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) MCFG_SCREEN_UPDATE_DRIVER(bmjr_state, screen_update_bmjr) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(bmjr_state, bmjr) MCFG_GFXDECODE_ADD("gfxdecode", bmjr) /* Audio */ diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c index 5a3cd4814e2..c54d37008da 100644 --- a/src/mess/drivers/bml3.c +++ b/src/mess/drivers/bml3.c @@ -122,6 +122,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback); DECLARE_READ8_MEMBER(bml3_ym2203_r); DECLARE_WRITE8_MEMBER(bml3_ym2203_w); + DECLARE_PALETTE_INIT(bml3); private: UINT8 m_psg_latch; UINT8 m_attr_latch; @@ -139,7 +140,6 @@ private: UINT8 m_cass_data[4]; virtual void machine_reset(); virtual void machine_start(); - virtual void palette_init(); void m6845_change_clock(UINT8 setting); UINT8 m_crtc_index; UINT8 *m_extram; @@ -770,12 +770,12 @@ INTERRUPT_GEN_MEMBER(bml3_state::bml3_timer_firq) } } -void bml3_state::palette_init() +PALETTE_INIT_MEMBER(bml3_state, bml3) { int i; for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); } void bml3_state::machine_start() @@ -1000,7 +1000,8 @@ static MACHINE_CONFIG_START( bml3_common, bml3_state ) MCFG_SCREEN_SIZE(640, 400) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(bml3_state, bml3) /* Devices */ // CRTC clock should be synchronous with the CPU clock. diff --git a/src/mess/drivers/busicom.c b/src/mess/drivers/busicom.c index 2786412bd4b..ff79db2d429 100644 --- a/src/mess/drivers/busicom.c +++ b/src/mess/drivers/busicom.c @@ -224,8 +224,8 @@ static MACHINE_CONFIG_START( busicom, busicom_state ) MCFG_SCREEN_VISIBLE_AREA(0, 40*17-1, 0, 44*11-1) MCFG_SCREEN_UPDATE_DRIVER(busicom_state, screen_update_busicom) - MCFG_PALETTE_LENGTH(16) - + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(busicom_state, busicom) MCFG_TIMER_DRIVER_ADD_PERIODIC("busicom_timer", busicom_state, timer_callback, attotime::from_msec(28*2)) MACHINE_CONFIG_END diff --git a/src/mess/drivers/bw2.c b/src/mess/drivers/bw2.c index b8f163f9db5..a44d5c3136e 100644 --- a/src/mess/drivers/bw2.c +++ b/src/mess/drivers/bw2.c @@ -567,10 +567,10 @@ SLOT_INTERFACE_END //************************************************************************** -void bw2_state::palette_init() +PALETTE_INIT_MEMBER(bw2_state, bw2) { - palette_set_color_rgb(machine(), 0, 0xa5, 0xad, 0xa5); - palette_set_color_rgb(machine(), 1, 0x31, 0x39, 0x10); + palette.set_pen_color(0, 0xa5, 0xad, 0xa5); + palette.set_pen_color(1, 0x31, 0x39, 0x10); } @@ -615,7 +615,8 @@ static MACHINE_CONFIG_START( bw2, bw2_state ) MCFG_SCREEN_UPDATE_DEVICE( MSM6255_TAG, msm6255_device, screen_update ) MCFG_SCREEN_SIZE(640, 200) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(bw2_state, bw2) // devices MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0) diff --git a/src/mess/drivers/c10.c b/src/mess/drivers/c10.c index 7ab9ac1ea54..21266f6cb50 100644 --- a/src/mess/drivers/c10.c +++ b/src/mess/drivers/c10.c @@ -164,8 +164,7 @@ static MACHINE_CONFIG_START( c10, c10_state ) MCFG_SCREEN_SIZE(640, 250) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) MCFG_GFXDECODE_ADD("gfxdecode", c10) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END DRIVER_INIT_MEMBER(c10_state,c10) diff --git a/src/mess/drivers/c128.c b/src/mess/drivers/c128.c index b02c23e88e9..c3b01256388 100644 --- a/src/mess/drivers/c128.c +++ b/src/mess/drivers/c128.c @@ -1466,6 +1466,7 @@ static MACHINE_CONFIG_START( ntsc, c128_state ) // video hardware MCFG_MOS8563_ADD(MOS8563_TAG, SCREEN_VDC_TAG, VIC6567_CLOCK*2, vdc_intf, vdc_videoram_map) MCFG_MOS8564_ADD(MOS8564_TAG, SCREEN_VIC_TAG, M8502_TAG, VIC6567_CLOCK, vic_videoram_map, vic_colorram_map, WRITELINE(c128_state, vic_irq_w), WRITE8(c128_state, vic_k_w)) + MCFG_GFXDECODE_ADD("gfxdecode", c128) // sound hardware @@ -1598,6 +1599,7 @@ static MACHINE_CONFIG_START( pal, c128_state ) // video hardware MCFG_MOS8563_ADD(MOS8563_TAG, SCREEN_VDC_TAG, VIC6569_CLOCK*2, vdc_intf, vdc_videoram_map) MCFG_MOS8566_ADD(MOS8564_TAG, SCREEN_VIC_TAG, M8502_TAG, VIC6569_CLOCK, vic_videoram_map, vic_colorram_map, WRITELINE(c128_state, vic_irq_w), WRITE8(c128_state, vic_k_w)) + MCFG_GFXDECODE_ADD("gfxdecode", c128) // sound hardware diff --git a/src/mess/drivers/c65.c b/src/mess/drivers/c65.c index 310b7b1e735..d6ad1585751 100644 --- a/src/mess/drivers/c65.c +++ b/src/mess/drivers/c65.c @@ -345,23 +345,6 @@ INPUT_PORTS_END -/************************************* - * - * Graphics definitions - * - *************************************/ - -PALETTE_INIT_MEMBER(c65_state,c65) -{ - int i; - - for ( i = 0; i < 0x100; i++ ) - { - palette_set_color_rgb(machine(), i, 0, 0, 0); - } -} - - /************************************* * * Sound definitions @@ -582,9 +565,6 @@ static MACHINE_CONFIG_START( c65, c65_state ) MCFG_SCREEN_VISIBLE_AREA(VIC6567_STARTVISIBLECOLUMNS ,(VIC6567_STARTVISIBLECOLUMNS + VIC6567_VISIBLECOLUMNS - 1) * 2, VIC6567_STARTVISIBLELINES, VIC6567_STARTVISIBLELINES + VIC6567_VISIBLELINES - 1) MCFG_SCREEN_UPDATE_DRIVER(c65_state, screen_update_c65) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(c65_state, c65 ) - MCFG_VIC3_ADD("vic3", c65_vic3_ntsc_intf) /* sound hardware */ diff --git a/src/mess/drivers/c900.c b/src/mess/drivers/c900.c index 0ac5821a501..10a5d03880b 100644 --- a/src/mess/drivers/c900.c +++ b/src/mess/drivers/c900.c @@ -116,8 +116,7 @@ static MACHINE_CONFIG_START( c900, c900_state ) MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) MCFG_GFXDECODE_ADD("gfxdecode", c900) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END ROM_START( c900 ) diff --git a/src/mess/drivers/camplynx.c b/src/mess/drivers/camplynx.c index fdb33da528f..89331ba2904 100644 --- a/src/mess/drivers/camplynx.c +++ b/src/mess/drivers/camplynx.c @@ -107,7 +107,7 @@ public: DECLARE_WRITE8_MEMBER(lynx128k_irq); DECLARE_DRIVER_INIT(lynx48k); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(camplynx); DECLARE_MACHINE_RESET(lynx128k); }; @@ -370,14 +370,14 @@ static const UINT8 lynx48k_palette[8*3] = 0xff, 0xff, 0xff, /* 7 White */ }; -void camplynx_state::palette_init() +PALETTE_INIT_MEMBER(camplynx_state, camplynx) { UINT8 r, b, g, i=0, color_count = 8; while (color_count--) { r = lynx48k_palette[i++]; g = lynx48k_palette[i++]; b = lynx48k_palette[i++]; - palette_set_color(machine(), 7-color_count, rgb_t(r, g, b)); + palette.set_pen_color(7-color_count, rgb_t(r, g, b)); } } @@ -479,7 +479,8 @@ static MACHINE_CONFIG_START( lynx48k, camplynx_state ) MCFG_SCREEN_SIZE(512, 480) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 479) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(camplynx_state, camplynx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -506,7 +507,8 @@ static MACHINE_CONFIG_START( lynx128k, camplynx_state ) MCFG_SCREEN_SIZE(512, 480) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 479) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(camplynx_state, camplynx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/casloopy.c b/src/mess/drivers/casloopy.c index 1685d134c05..e17001ae6be 100644 --- a/src/mess/drivers/casloopy.c +++ b/src/mess/drivers/casloopy.c @@ -252,7 +252,7 @@ UINT32 casloopy_state::screen_update_casloopy(screen_device &screen, bitmap_ind1 r = pal5bit((m_vregs[0x4/4] >> 10) & 0x1f); g = pal5bit((m_vregs[0x4/4] >> 5) & 0x1f); b = pal5bit((m_vregs[0x4/4] >> 0) & 0x1f); - palette_set_color(machine(),0x100,rgb_t(r^0xff,g^0xff,b^0xff)); + m_palette->set_pen_color(0x100,rgb_t(r^0xff,g^0xff,b^0xff)); bitmap.fill( 0x100 ,cliprect); #endif @@ -265,7 +265,7 @@ UINT32 casloopy_state::screen_update_casloopy(screen_device &screen, bitmap_ind1 tile &= 0x7ff; //??? - gfx->transpen(bitmap,cliprect,tile,7,0,0,x*8,y*8,0xffffffff); + gfx->transpen(m_palette,bitmap,cliprect,tile,7,0,0,x*8,y*8,0xffffffff); count+=2; } @@ -328,7 +328,7 @@ WRITE16_MEMBER(casloopy_state::casloopy_pal_w) g = ((m_paletteram[offset])&0x03e0)>>5; r = ((m_paletteram[offset])&0x7c00)>>10; - palette_set_color_rgb(machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b)); } READ8_MEMBER(casloopy_state::casloopy_vram_r) @@ -493,7 +493,7 @@ static MACHINE_CONFIG_START( casloopy, casloopy_state ) // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(casloopy_state, screen_update_casloopy) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_GFXDECODE_ADD("gfxdecode", empty) diff --git a/src/mess/drivers/cat.c b/src/mess/drivers/cat.c index 445d0bfdb3c..f50bfe596b1 100644 --- a/src/mess/drivers/cat.c +++ b/src/mess/drivers/cat.c @@ -1126,8 +1126,7 @@ static MACHINE_CONFIG_START( cat, cat_state ) MCFG_SCREEN_VISIBLE_AREA(0, 672-1, 0, 344-1) MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_cat) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_VIDEO_START_OVERRIDE(cat_state,cat) @@ -1463,8 +1462,7 @@ static MACHINE_CONFIG_START( swyft, cat_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 242-1) MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_swyft) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_VIDEO_START_OVERRIDE(cat_state,swyft) diff --git a/src/mess/drivers/cd2650.c b/src/mess/drivers/cd2650.c index 54993cb7996..176cb6ded7f 100644 --- a/src/mess/drivers/cd2650.c +++ b/src/mess/drivers/cd2650.c @@ -292,8 +292,7 @@ static MACHINE_CONFIG_START( cd2650, cd2650_state ) MCFG_SCREEN_SIZE(640, 160) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 159) MCFG_GFXDECODE_ADD("gfxdecode", cd2650) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* quickload */ MCFG_QUICKLOAD_ADD("quickload", cd2650_state, cd2650, "pgm", 1) diff --git a/src/mess/drivers/cdc721.c b/src/mess/drivers/cdc721.c index 1f87fe4f981..128833b80af 100644 --- a/src/mess/drivers/cdc721.c +++ b/src/mess/drivers/cdc721.c @@ -22,7 +22,7 @@ public: public: virtual void machine_reset(); - void palette_init_cdc721(); + DECLARE_PALETTE_INIT(cdc721); const UINT8 *m_p_chargen; UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_shared_ptr m_p_videoram; @@ -71,9 +71,9 @@ GFXDECODE_END PALETTE_INIT_MEMBER( cdc721_state, cdc721 ) { - palette_set_color_rgb( machine(), 0, 0, 0, 0 ); /* Black */ - palette_set_color_rgb( machine(), 1, 0, 255, 0 ); /* Full */ - palette_set_color_rgb( machine(), 2, 0, 128, 0 ); /* Dimmed */ + palette.set_pen_color(0, 0, 0, 0 ); /* Black */ + palette.set_pen_color(1, 0, 255, 0 ); /* Full */ + palette.set_pen_color(2, 0, 128, 0 ); /* Dimmed */ } UINT32 cdc721_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -122,8 +122,8 @@ static MACHINE_CONFIG_START( cdc721, cdc721_state ) MCFG_SCREEN_UPDATE_DRIVER(cdc721_state, screen_update) MCFG_SCREEN_SIZE(640, 240) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(cdc721_state, cdc721) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(cdc721_state, cdc721) MCFG_GFXDECODE_ADD("gfxdecode", cdc721) MACHINE_CONFIG_END diff --git a/src/mess/drivers/cfx9850.c b/src/mess/drivers/cfx9850.c index accdb6f0b09..756de4b8e49 100644 --- a/src/mess/drivers/cfx9850.c +++ b/src/mess/drivers/cfx9850.c @@ -49,7 +49,7 @@ public: required_shared_ptr m_video_ram; required_shared_ptr m_display_ram; UINT16 m_ko; /* KO lines KO1 - KO14 */ - virtual void palette_init(); + DECLARE_PALETTE_INIT(cfx9850); UINT32 screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); protected: @@ -218,12 +218,12 @@ static INPUT_PORTS_START( cfx9850 ) INPUT_PORTS_END -void cfx9850_state::palette_init() +PALETTE_INIT_MEMBER(cfx9850_state, cfx9850) { - palette_set_color_rgb( machine(), 0, 0xff, 0xff, 0xff ); - palette_set_color_rgb( machine(), 1, 0x00, 0x00, 0xff ); - palette_set_color_rgb( machine(), 2, 0x00, 0xff, 0x00 ); - palette_set_color_rgb( machine(), 3, 0xff, 0x00, 0x00 ); + palette.set_pen_color( 0, 0xff, 0xff, 0xff ); + palette.set_pen_color( 1, 0x00, 0x00, 0xff ); + palette.set_pen_color( 2, 0x00, 0xff, 0x00 ); + palette.set_pen_color( 3, 0xff, 0x00, 0x00 ); } @@ -269,7 +269,8 @@ static MACHINE_CONFIG_START( cfx9850, cfx9850_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) /* TODO: It uses a color display, but I'm being lazy here. 3 colour lcd */ - MCFG_PALETTE_LENGTH( 4 ) + MCFG_PALETTE_ADD( "palette", 4 ) + MCFG_PALETTE_INIT_OWNER(cfx9850_state, cfx9850) MACHINE_CONFIG_END diff --git a/src/mess/drivers/cgenie.c b/src/mess/drivers/cgenie.c index 15ae711bc7b..90674403b05 100644 --- a/src/mess/drivers/cgenie.c +++ b/src/mess/drivers/cgenie.c @@ -447,32 +447,28 @@ PALETTE_INIT_MEMBER(cgenie_state,cgenie) { UINT8 i, r, g, b; - machine().colortable = colortable_alloc(machine(), 49); - for ( i = 0; i < 49; i++ ) { r = cgenie_colors[i*3]; g = cgenie_colors[i*3+1]; b = cgenie_colors[i*3+2]; - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); } for(i=0; i<108; i++) - colortable_entry_set_value(machine().colortable, i, cgenie_palette[i]); + palette.set_pen_indirect(i, cgenie_palette[i]); } PALETTE_INIT_MEMBER(cgenie_state,cgenienz) { UINT8 i, r, g, b; - machine().colortable = colortable_alloc(machine(), 49); - for ( i = 0; i < 49; i++ ) { r = cgenienz_colors[i*3]; g = cgenienz_colors[i*3+1]; b = cgenienz_colors[i*3+2]; - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); } for(i=0; i<108; i++) - colortable_entry_set_value(machine().colortable, i, cgenie_palette[i]); + palette.set_pen_indirect(i, cgenie_palette[i]); } static const ay8910_interface cgenie_ay8910_interface = @@ -536,8 +532,8 @@ static MACHINE_CONFIG_START( cgenie_common, cgenie_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1,0*8,32*8-1) MCFG_SCREEN_UPDATE_DRIVER(cgenie_state, screen_update_cgenie) - MCFG_GFXDECODE_ADD("gfxdecode", cgenie ) - MCFG_PALETTE_LENGTH(108) + MCFG_GFXDECODE_ADD("gfxdecode", cgenie ) + MCFG_PALETTE_ADD("palette", 108) // Actually the video is driven by an HD46505 clocked at XTAL_17_73447MHz/16 @@ -566,13 +562,13 @@ static MACHINE_CONFIG_START( cgenie_common, cgenie_state ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cgenie, cgenie_common ) - - MCFG_PALETTE_INIT_OVERRIDE(cgenie_state, cgenie ) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(cgenie_state, cgenie ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cgenienz, cgenie_common ) - - MCFG_PALETTE_INIT_OVERRIDE(cgenie_state, cgenienz ) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(cgenie_state, cgenienz ) MACHINE_CONFIG_END /*************************************************************************** diff --git a/src/mess/drivers/channelf.c b/src/mess/drivers/channelf.c index 4545ec38f84..22d87263264 100644 --- a/src/mess/drivers/channelf.c +++ b/src/mess/drivers/channelf.c @@ -272,8 +272,8 @@ static MACHINE_CONFIG_START( channelf, channelf_state ) MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(channelf_state, channelf) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -298,8 +298,8 @@ static MACHINE_CONFIG_START( sabavdpl, channelf_state ) MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(channelf_state, channelf) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -325,8 +325,8 @@ static MACHINE_CONFIG_START( channlf2, channelf_state ) MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(channelf_state, channelf) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -352,8 +352,8 @@ static MACHINE_CONFIG_START( sabavpl2, channelf_state ) MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(channelf_state, channelf) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/clcd.c b/src/mess/drivers/clcd.c index ab747f01a3a..2e7e60db612 100644 --- a/src/mess/drivers/clcd.c +++ b/src/mess/drivers/clcd.c @@ -89,10 +89,10 @@ public: m_rtc->cs1_w(1); } - void palette_init() + DECLARE_PALETTE_INIT(hprot1) { - palette_set_color(machine(), 0, rgb_t(36,72,36)); - palette_set_color(machine(), 1, rgb_t(2,4,2)); + palette.set_pen_color(0, rgb_t(36,72,36)); + palette.set_pen_color(1, rgb_t(2,4,2)); } UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -782,7 +782,7 @@ static MACHINE_CONFIG_START(clcd, clcd_state) MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 128-1) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/compucolor.c b/src/mess/drivers/compucolor.c index 4c89bfa05a5..e554a13bfc3 100644 --- a/src/mess/drivers/compucolor.c +++ b/src/mess/drivers/compucolor.c @@ -92,7 +92,7 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(compucolor2); UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -442,7 +442,7 @@ void compucolor2_state::machine_reset() m_rs232->write_dtr(1); } -void compucolor2_state::palette_init() +PALETTE_INIT_MEMBER(compucolor2_state, compucolor2) { for (int i = 0; i < 8; i++) { @@ -456,6 +456,9 @@ static MACHINE_CONFIG_START( compucolor2, compucolor2_state ) MCFG_CPU_PROGRAM_MAP(compucolor2_mem) MCFG_CPU_IO_MAP(compucolor2_io) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(compucolor2_state, compucolor2) + // video hardware MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mess/drivers/comquest.c b/src/mess/drivers/comquest.c index 0d12cdfc0c2..e57291e4c8a 100644 --- a/src/mess/drivers/comquest.c +++ b/src/mess/drivers/comquest.c @@ -254,9 +254,8 @@ static MACHINE_CONFIG_START( comquest, comquest_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*4-1, 0, 128-1) MCFG_SCREEN_UPDATE_DRIVER(comquest_state, screen_update_comquest) - MCFG_GFXDECODE_ADD("gfxdecode", comquest ) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_GFXDECODE_ADD("gfxdecode", comquest ) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ diff --git a/src/mess/drivers/concept.c b/src/mess/drivers/concept.c index 576b1a0a03f..2e15cdfc2b7 100644 --- a/src/mess/drivers/concept.c +++ b/src/mess/drivers/concept.c @@ -221,8 +221,7 @@ static MACHINE_CONFIG_START( concept, concept_state ) MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 560-1) MCFG_SCREEN_UPDATE_DRIVER(concept_state, screen_update_concept) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* no sound? */ diff --git a/src/mess/drivers/craft.c b/src/mess/drivers/craft.c index 59111ffceb9..5bddd6cc8cf 100644 --- a/src/mess/drivers/craft.c +++ b/src/mess/drivers/craft.c @@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( craft, craft_state ) MCFG_SCREEN_SIZE(635, 525) MCFG_SCREEN_VISIBLE_AREA(47, 526, 36, 515) MCFG_SCREEN_UPDATE_DRIVER(craft_state, screen_update_craft) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("avr8") diff --git a/src/mess/drivers/ct486.c b/src/mess/drivers/ct486.c index e5441149387..6d78b01b19a 100644 --- a/src/mess/drivers/ct486.c +++ b/src/mess/drivers/ct486.c @@ -185,7 +185,7 @@ static MACHINE_CONFIG_START( ct486, ct486_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) // video hardware - MCFG_PALETTE_LENGTH(256) // todo: really needed? + MCFG_PALETTE_ADD("palette", 256) // todo: really needed? MACHINE_CONFIG_END diff --git a/src/mess/drivers/cxhumax.c b/src/mess/drivers/cxhumax.c index 63bbad9847d..13852bc7c2b 100644 --- a/src/mess/drivers/cxhumax.c +++ b/src/mess/drivers/cxhumax.c @@ -1070,8 +1070,7 @@ static MACHINE_CONFIG_START( cxhumax, cxhumax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 1080-1) MCFG_SCREEN_UPDATE_DRIVER(cxhumax_state, screen_update_cxhumax) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) diff --git a/src/mess/drivers/cybiko.c b/src/mess/drivers/cybiko.c index 17844d56355..b7483644c65 100644 --- a/src/mess/drivers/cybiko.c +++ b/src/mess/drivers/cybiko.c @@ -280,22 +280,6 @@ static INPUT_PORTS_START( cybikoxt ) INPUT_PORTS_END -//////////////////// -// PALETTE INIT // -//////////////////// - -void cybiko_state::palette_init() -{ - // init palette - for (int i = 0; i < 4; i++) - { - palette_set_color(machine(), i, rgb_t::white); -#ifndef HD66421_BRIGHTNESS_DOES_NOT_WORK - palette_set_pen_contrast(machine(), i, 1.0 * i / (4 - 1)); -#endif - } -} - //////////////////// // MACHINE DRIVER // //////////////////// @@ -311,10 +295,9 @@ static MACHINE_CONFIG_START( cybikov1, cybiko_state ) MCFG_SCREEN_SIZE( HD66421_WIDTH, HD66421_HEIGHT ) MCFG_SCREEN_VISIBLE_AREA( 0, HD66421_WIDTH - 1, 0, HD66421_HEIGHT - 1 ) MCFG_SCREEN_UPDATE_DEVICE("hd66421", hd66421_device, update_screen) - + MCFG_SCREEN_PALETTE("hd66421:palette") // video MCFG_HD66421_ADD("hd66421") - MCFG_PALETTE_LENGTH(4) MCFG_DEFAULT_LAYOUT(layout_lcd) // sound MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/d6800.c b/src/mess/drivers/d6800.c index cfc69bf562b..aa201dd7128 100644 --- a/src/mess/drivers/d6800.c +++ b/src/mess/drivers/d6800.c @@ -401,8 +401,7 @@ static MACHINE_CONFIG_START( d6800, d6800_state ) MCFG_SCREEN_VISIBLE_AREA(0, 63, 0, 31) MCFG_SCREEN_UPDATE_DRIVER(d6800_state, screen_update_d6800) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(25)) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/dai.c b/src/mess/drivers/dai.c index 338e7efc9b8..1ddb2b86c6c 100644 --- a/src/mess/drivers/dai.c +++ b/src/mess/drivers/dai.c @@ -221,7 +221,8 @@ static MACHINE_CONFIG_START( dai, dai_state ) MCFG_SCREEN_UPDATE_DRIVER(dai_state, screen_update_dai) MCFG_GFXDECODE_ADD("gfxdecode", dai) - MCFG_PALETTE_LENGTH(sizeof (dai_palette) / 3) + MCFG_PALETTE_ADD("palette", sizeof (dai_palette) / 3) + MCFG_PALETTE_INIT_OWNER(dai_state, dai) /* sound hardware */ diff --git a/src/mess/drivers/dccons.c b/src/mess/drivers/dccons.c index b9bc51292e6..e2673fb4e12 100644 --- a/src/mess/drivers/dccons.c +++ b/src/mess/drivers/dccons.c @@ -637,7 +637,7 @@ static MACHINE_CONFIG_START( dc, dc_cons_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(13458568*2, 857, 0, 640, 524, 0, 480) /* TODO: where pclk actually comes? */ MCFG_SCREEN_UPDATE_DEVICE("powervr2", powervr2_device, screen_update) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_POWERVR2_ADD("powervr2", WRITE8(dc_state, pvr_irq)) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/dct11em.c b/src/mess/drivers/dct11em.c index 235a2f3e52e..8da94a6ab21 100644 --- a/src/mess/drivers/dct11em.c +++ b/src/mess/drivers/dct11em.c @@ -61,8 +61,7 @@ static MACHINE_CONFIG_START( dct11em, dct11em_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(dct11em_state, screen_update_dct11em) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/dgn_beta.c b/src/mess/drivers/dgn_beta.c index 48edd4d9e39..fa2295634b9 100644 --- a/src/mess/drivers/dgn_beta.c +++ b/src/mess/drivers/dgn_beta.c @@ -277,12 +277,12 @@ static INPUT_PORTS_START( dgnbeta ) INPUT_PORTS_END -void dgn_beta_state::palette_init() +PALETTE_INIT_MEMBER(dgn_beta_state, dgn) { int i; for ( i = 0; i < sizeof(dgnbeta_palette) / 3; i++ ) { - palette_set_color_rgb(machine(), i, dgnbeta_palette[i*3], dgnbeta_palette[i*3+1], dgnbeta_palette[i*3+2]); + palette.set_pen_color(i, dgnbeta_palette[i*3], dgnbeta_palette[i*3+1], dgnbeta_palette[i*3+2]); } } @@ -337,7 +337,8 @@ static MACHINE_CONFIG_START( dgnbeta, dgn_beta_state ) MCFG_SCREEN_UPDATE_DEVICE( "crtc", hd6845_device, screen_update ) MCFG_GFXDECODE_ADD("gfxdecode", dgnbeta) - MCFG_PALETTE_LENGTH(ARRAY_LENGTH(dgnbeta_palette) / 3) + MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(dgnbeta_palette) / 3) + MCFG_PALETTE_INIT_OWNER(dgn_beta_state, dgn) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) /* PIA 0 at $FC20-$FC23 I46 */ diff --git a/src/mess/drivers/dim68k.c b/src/mess/drivers/dim68k.c index 5d83e3d38bd..9a9be08ac49 100644 --- a/src/mess/drivers/dim68k.c +++ b/src/mess/drivers/dim68k.c @@ -333,8 +333,7 @@ static MACHINE_CONFIG_START( dim68k, dim68k_state ) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 250-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", dim68k) /* sound hardware */ diff --git a/src/mess/drivers/dm7000.c b/src/mess/drivers/dm7000.c index 64072937dc2..ddf8d66c083 100644 --- a/src/mess/drivers/dm7000.c +++ b/src/mess/drivers/dm7000.c @@ -324,8 +324,7 @@ static MACHINE_CONFIG_START( dm7000, dm7000_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(dm7000_state, screen_update_dm7000) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) diff --git a/src/mess/drivers/dms5000.c b/src/mess/drivers/dms5000.c index 928ab01776e..d4e13922a3c 100644 --- a/src/mess/drivers/dms5000.c +++ b/src/mess/drivers/dms5000.c @@ -66,8 +66,7 @@ static MACHINE_CONFIG_START( dms5000, dms5000_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(dms5000_state, screen_update_dms5000) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/dmv.c b/src/mess/drivers/dmv.c index 7d42154522b..c15f1caa286 100644 --- a/src/mess/drivers/dmv.c +++ b/src/mess/drivers/dmv.c @@ -332,8 +332,7 @@ static MACHINE_CONFIG_START( dmv, dmv_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_GFXDECODE_ADD("gfxdecode", dmv) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_DEFAULT_LAYOUT(layout_dmv) // devices diff --git a/src/mess/drivers/ec65.c b/src/mess/drivers/ec65.c index 84a2b4b5241..d9803fba140 100644 --- a/src/mess/drivers/ec65.c +++ b/src/mess/drivers/ec65.c @@ -202,8 +202,7 @@ static MACHINE_CONFIG_START( ec65, ec65_state ) MCFG_SCREEN_UPDATE_DEVICE(MC6845_TAG, mc6845_device, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", ec65) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_MC6845_ADD(MC6845_TAG, MC6845, "screen", XTAL_16MHz / 8, ec65_crtc6845_interface) @@ -237,8 +236,7 @@ static MACHINE_CONFIG_START( ec65k, ec65k_state ) MCFG_SCREEN_UPDATE_DEVICE(MC6845_TAG, mc6845_device, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", ec65) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_MC6845_ADD(MC6845_TAG, MC6845, "screen", XTAL_16MHz / 8, ec65_crtc6845_interface) diff --git a/src/mess/drivers/einstein.c b/src/mess/drivers/einstein.c index 4ae807aac1a..b3d283bc9b5 100644 --- a/src/mess/drivers/einstein.c +++ b/src/mess/drivers/einstein.c @@ -445,8 +445,8 @@ MACHINE_RESET_MEMBER(einstein_state,einstein2) einstein_state::machine_reset(); /* 80 column card palette */ - palette_set_color(machine(), TMS9928A_PALETTE_SIZE, rgb_t::black); - palette_set_color(machine(), TMS9928A_PALETTE_SIZE + 1, rgb_t(0, 224, 0)); + m_palette->set_pen_color(TMS9928A_PALETTE_SIZE, rgb_t::black); + m_palette->set_pen_color(TMS9928A_PALETTE_SIZE + 1, rgb_t(0, 224, 0)); } MACHINE_START_MEMBER(einstein_state,einstein2) @@ -823,7 +823,7 @@ static MACHINE_CONFIG_DERIVED( einstei2, einstein ) MCFG_GFXDECODE_ADD("gfxdecode", einstei2) /* 2 additional colors for the 80 column screen */ - MCFG_PALETTE_LENGTH(TMS9928A_PALETTE_SIZE + 2) + MCFG_PALETTE_ADD("palette", TMS9928A_PALETTE_SIZE + 2) MCFG_MC6845_ADD("crtc", MC6845, "80column", XTAL_X002 / 4, einstein_crtc6845_interface) MACHINE_CONFIG_END diff --git a/src/mess/drivers/electron.c b/src/mess/drivers/electron.c index 8f8ee523237..a0884842ede 100644 --- a/src/mess/drivers/electron.c +++ b/src/mess/drivers/electron.c @@ -44,9 +44,9 @@ static const rgb_t electron_palette[8]= rgb_t(0x000,0x000,0x000) }; -void electron_state::palette_init() +PALETTE_INIT_MEMBER(electron_state, electron) { - palette_set_colors(machine(), 0, electron_palette, ARRAY_LENGTH(electron_palette)); + palette.set_pen_colors(0, electron_palette, ARRAY_LENGTH(electron_palette)); } static ADDRESS_MAP_START(electron_mem, AS_PROGRAM, 8, electron_state ) @@ -190,7 +190,8 @@ static MACHINE_CONFIG_START( electron, electron_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 640-1, 0, 256-1 ) MCFG_SCREEN_UPDATE_DRIVER(electron_state, screen_update_electron) - MCFG_PALETTE_LENGTH( 16 ) + MCFG_PALETTE_ADD( "palette", 16 ) + MCFG_PALETTE_INIT_OWNER(electron_state, electron) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) diff --git a/src/mess/drivers/elwro800.c b/src/mess/drivers/elwro800.c index 1cb8170a40c..96dd15fb39d 100644 --- a/src/mess/drivers/elwro800.c +++ b/src/mess/drivers/elwro800.c @@ -575,8 +575,8 @@ static MACHINE_CONFIG_START( elwro800, elwro800_state ) MCFG_SCREEN_UPDATE_DRIVER(elwro800_state, screen_update_spectrum ) MCFG_SCREEN_VBLANK_DRIVER(elwro800_state, screen_eof_spectrum) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(elwro800_state, spectrum ) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(elwro800_state, spectrum ) MCFG_GFXDECODE_ADD("gfxdecode", elwro800) MCFG_VIDEO_START_OVERRIDE(elwro800_state, spectrum ) diff --git a/src/mess/drivers/exelv.c b/src/mess/drivers/exelv.c index 565e7dad8a2..d4f553c923b 100644 --- a/src/mess/drivers/exelv.c +++ b/src/mess/drivers/exelv.c @@ -103,7 +103,7 @@ public: /* mailbox data */ UINT8 m_wx318; /* data of 74ls374 labeled wx318 */ UINT8 m_wx319; /* data of 74sl374 labeled wx319 */ - virtual void palette_init(); + DECLARE_PALETTE_INIT(exelv); TIMER_DEVICE_CALLBACK_MEMBER(exelv_hblank_interrupt); }; @@ -474,7 +474,7 @@ static INPUT_PORTS_START(exelv) INPUT_PORTS_END -void exelv_state::palette_init() +PALETTE_INIT_MEMBER(exelv_state, exelv) { int i, red, green, blue; @@ -484,7 +484,7 @@ void exelv_state::palette_init() red = (i & 1) ? 255 : 0; /* red */ green = (i & 2) ? 255 : 0; /* green */ blue = (i & 4) ? 255 : 0; /* blue */ - palette_set_color_rgb(machine(), i, red, green, blue); + palette.set_pen_color(i, red, green, blue); } } @@ -535,11 +535,12 @@ static MACHINE_CONFIG_START( exl100, exelv_state ) MCFG_SCREEN_SIZE(TMS3556_TOTAL_WIDTH, TMS3556_TOTAL_HEIGHT*2) MCFG_SCREEN_VISIBLE_AREA(0, TMS3556_TOTAL_WIDTH-1, 0, TMS3556_TOTAL_HEIGHT*2-1) #endif - MCFG_PALETTE_LENGTH(8) - MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(exelv_state, exelv) + MCFG_DEVICE_ADD("vsm", SPEECHROM, 0) /* sound */ @@ -577,11 +578,12 @@ static MACHINE_CONFIG_START( exeltel, exelv_state ) MCFG_SCREEN_SIZE(TMS3556_TOTAL_WIDTH, TMS3556_TOTAL_HEIGHT*2) MCFG_SCREEN_VISIBLE_AREA(0, TMS3556_TOTAL_WIDTH-1, 0, TMS3556_TOTAL_HEIGHT*2-1) #endif - MCFG_PALETTE_LENGTH(8) - MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(exelv_state, exelv) + MCFG_DEVICE_ADD("vsm", SPEECHROM, 0) /* sound */ diff --git a/src/mess/drivers/fk1.c b/src/mess/drivers/fk1.c index d09ae273d18..84f9b6aa398 100644 --- a/src/mess/drivers/fk1.c +++ b/src/mess/drivers/fk1.c @@ -446,8 +446,7 @@ static MACHINE_CONFIG_START( fk1, fk1_state ) MCFG_SCREEN_UPDATE_DRIVER(fk1_state, screen_update) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_DEVICE_ADD("pit8253", PIT8253, 0) MCFG_PIT8253_CLK0(50) diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c index 6a40b688f97..efbdbd5a880 100644 --- a/src/mess/drivers/fm7.c +++ b/src/mess/drivers/fm7.c @@ -2049,8 +2049,8 @@ static MACHINE_CONFIG_START( fm7, fm7_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(fm7_state, fm7) MCFG_CASSETTE_ADD("cassette", fm7_cassette_interface) @@ -2098,8 +2098,8 @@ static MACHINE_CONFIG_START( fm8, fm7_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(fm7_state, fm7) MCFG_CASSETTE_ADD("cassette", fm7_cassette_interface) @@ -2147,8 +2147,8 @@ static MACHINE_CONFIG_START( fm77av, fm7_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) - MCFG_PALETTE_LENGTH(8 + 4096) - + MCFG_PALETTE_ADD("palette", 8 + 4096) + MCFG_PALETTE_INIT_OWNER(fm7_state, fm7) MCFG_CASSETTE_ADD("cassette", fm7_cassette_interface) @@ -2200,8 +2200,8 @@ static MACHINE_CONFIG_START( fm11, fm7_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(fm7_state, fm7) MCFG_CASSETTE_ADD("cassette", fm7_cassette_interface) @@ -2247,8 +2247,8 @@ static MACHINE_CONFIG_START( fm16beta, fm7_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(fm7_state, fm7) MCFG_CASSETTE_ADD("cassette", fm7_cassette_interface) diff --git a/src/mess/drivers/fp1100.c b/src/mess/drivers/fp1100.c index e56008faaac..7e04b3489c2 100644 --- a/src/mess/drivers/fp1100.c +++ b/src/mess/drivers/fp1100.c @@ -360,7 +360,7 @@ static MACHINE_CONFIG_START( fp1100, fp1100_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) MCFG_GFXDECODE_ADD("gfxdecode", fp1100) /* Devices */ diff --git a/src/mess/drivers/fp200.c b/src/mess/drivers/fp200.c index 0862db8b5e1..b4ac4f97aab 100644 --- a/src/mess/drivers/fp200.c +++ b/src/mess/drivers/fp200.c @@ -65,13 +65,13 @@ public: DECLARE_WRITE_LINE_MEMBER(sod_w); DECLARE_READ_LINE_MEMBER(sid_r); + DECLARE_PALETTE_INIT(fp200); protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void fp200_state::video_start() @@ -561,10 +561,10 @@ void fp200_state::machine_reset() } -void fp200_state::palette_init() +PALETTE_INIT_MEMBER(fp200_state, fp200) { - palette_set_color_rgb(machine(), 0, 0xa0, 0xa8, 0xa0); - palette_set_color_rgb(machine(), 1, 0x30, 0x38, 0x10); + palette.set_pen_color(0, 0xa0, 0xa8, 0xa0); + palette.set_pen_color(1, 0x30, 0x38, 0x10); } WRITE_LINE_MEMBER( fp200_state::sod_w ) @@ -596,7 +596,8 @@ static MACHINE_CONFIG_START( fp200, fp200_state ) MCFG_GFXDECODE_ADD("gfxdecode", fp200) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(fp200_state, fp200) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/fp6000.c b/src/mess/drivers/fp6000.c index 22f96cb34f8..095c1e3d9e5 100644 --- a/src/mess/drivers/fp6000.c +++ b/src/mess/drivers/fp6000.c @@ -101,7 +101,7 @@ UINT32 fp6000_state::screen_update_fp6000(screen_device &screen, bitmap_ind16 &b int dot = (m_gvram[count] >> (12-xi*4)) & 0xf; if(y < 400 && x*4+xi < 640) /* TODO: safety check */ - bitmap.pix16(y, x*4+xi) = machine().pens[dot]; + bitmap.pix16(y, x*4+xi) = m_palette->pen(dot); } count++; @@ -124,7 +124,7 @@ UINT32 fp6000_state::screen_update_fp6000(screen_device &screen, bitmap_ind16 &b if(pen != -1) if(y*mc6845_tile_height < 400 && x*8+xi < 640) /* TODO: safety check */ - bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = machine().pens[pen]; + bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = m_palette->pen(pen); } } } @@ -139,7 +139,7 @@ UINT32 fp6000_state::screen_update_fp6000(screen_device &screen, bitmap_ind16 &b { x = mc6845_cursor_addr % mc6845_h_display; y = mc6845_cursor_addr / mc6845_h_display; - bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = machine().pens[7]; + bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = m_palette->pen(7); } } } @@ -318,8 +318,8 @@ static MACHINE_CONFIG_START( fp6000, fp6000_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", 16000000/5, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ - MCFG_PALETTE_LENGTH(8) -// MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD("palette", 8) +// MCFG_PALETTE_INIT(black_and_white) MCFG_GFXDECODE_ADD("gfxdecode", fp6000) MACHINE_CONFIG_END diff --git a/src/mess/drivers/galaxy.c b/src/mess/drivers/galaxy.c index 2da489c4f45..fe0b506baf3 100644 --- a/src/mess/drivers/galaxy.c +++ b/src/mess/drivers/galaxy.c @@ -199,8 +199,7 @@ static MACHINE_CONFIG_START( galaxy, galaxy_state ) MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy) MCFG_GFXDECODE_ADD("gfxdecode", galaxy) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* snapshot */ @@ -235,8 +234,7 @@ static MACHINE_CONFIG_START( galaxyp, galaxy_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1) MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* snapshot */ diff --git a/src/mess/drivers/galeb.c b/src/mess/drivers/galeb.c index 5bf38fb623c..a55917cc292 100644 --- a/src/mess/drivers/galeb.c +++ b/src/mess/drivers/galeb.c @@ -138,10 +138,9 @@ static MACHINE_CONFIG_START( galeb, galeb_state ) MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 16*8-1) MCFG_SCREEN_UPDATE_DRIVER(galeb_state, screen_update_galeb) - MCFG_GFXDECODE_ADD("gfxdecode", galeb ) + MCFG_GFXDECODE_ADD("gfxdecode", galeb ) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* audio hardware */ diff --git a/src/mess/drivers/gamecom.c b/src/mess/drivers/gamecom.c index d59a131c0fd..b9b723ae6f0 100644 --- a/src/mess/drivers/gamecom.c +++ b/src/mess/drivers/gamecom.c @@ -62,7 +62,7 @@ static INPUT_PORTS_START( gamecom ) PORT_BIT( 0xff, 80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1, 0, 0) PORT_MINMAX(0,159) PORT_SENSITIVITY(50) PORT_KEYDELTA(8) INPUT_PORTS_END -static const unsigned char palette[] = +static const unsigned char palette_gamecom[] = { 0xDF, 0xFF, 0x8F, /* White */ 0x8F, 0xCF, 0x8F, /* Gray 3 */ @@ -71,12 +71,12 @@ static const unsigned char palette[] = 0x00, 0x00, 0x00, /* Black */ }; -void gamecom_state::palette_init() +PALETTE_INIT_MEMBER(gamecom_state, gamecom) { int index; for ( index = 0; index < 5; index++ ) { - palette_set_color_rgb(machine(), 4-index, palette[index*3+0], palette[index*3+1], palette[index*3+2] ); + palette.set_pen_color(4-index, palette_gamecom[index*3+0], palette_gamecom[index*3+1], palette_gamecom[index*3+2] ); } } @@ -114,7 +114,8 @@ static MACHINE_CONFIG_START( gamecom, gamecom_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 199, 0, 159 ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(5) + MCFG_PALETTE_ADD("palette", 5) + MCFG_PALETTE_INIT_OWNER(gamecom_state, gamecom) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO( "lspeaker", "rspeaker" ) diff --git a/src/mess/drivers/gamepock.c b/src/mess/drivers/gamepock.c index bc46104ba99..1674ba44de7 100644 --- a/src/mess/drivers/gamepock.c +++ b/src/mess/drivers/gamepock.c @@ -76,8 +76,7 @@ static MACHINE_CONFIG_START( gamepock, gamepock_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH( 2 ) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/gb.c b/src/mess/drivers/gb.c index d6103681379..fede93f4132 100644 --- a/src/mess/drivers/gb.c +++ b/src/mess/drivers/gb.c @@ -667,7 +667,7 @@ SLOT_INTERFACE_END -static const unsigned char palette[] = +static const unsigned char palette_gb[] = { /* Simple black and white palette */ /* 0xFF,0xFF,0xFF, @@ -696,13 +696,13 @@ static const unsigned char palette_megaduck[] = { PALETTE_INIT_MEMBER(gb_state, gb) { for (int i = 0; i < 4; i++) - palette_set_color_rgb(machine(), i, palette[i * 3 + 0], palette[i * 3 + 1], palette[i * 3 + 2]); + palette.set_pen_color(i, palette_gb[i * 3 + 0], palette_gb[i * 3 + 1], palette_gb[i * 3 + 2]); } PALETTE_INIT_MEMBER(gb_state, gbp) { for (int i = 0; i < 4; i++) - palette_set_color_rgb(machine(), i, palette[(i + 4) * 3 + 0], palette[(i + 4) * 3 + 1], palette[(i + 4) * 3 + 2]); + palette.set_pen_color(i, palette_gb[(i + 4) * 3 + 0], palette_gb[(i + 4) * 3 + 1], palette_gb[(i + 4) * 3 + 2]); } PALETTE_INIT_MEMBER(gb_state, sgb) @@ -714,7 +714,7 @@ PALETTE_INIT_MEMBER(gb_state, sgb) r = (i & 0x1F) << 3; g = ((i >> 5) & 0x1F) << 3; b = ((i >> 10) & 0x1F) << 3; - palette_set_color_rgb(machine(), i, r, g, b); + palette.set_pen_color(i, r, g, b); } } @@ -727,14 +727,14 @@ PALETTE_INIT_MEMBER(gb_state, gbc) r = (i & 0x1F) << 3; g = ((i >> 5) & 0x1F) << 3; b = ((i >> 10) & 0x1F) << 3; - palette_set_color_rgb(machine(), i, r, g, b); + palette.set_pen_color(i, r, g, b); } } PALETTE_INIT_MEMBER(megaduck_state, megaduck) { for (int i = 0; i < 4; i++) - palette_set_color_rgb(machine(), i, palette_megaduck[i * 3 + 0], palette_megaduck[i * 3 + 1], palette_megaduck[i * 3 + 2]); + palette.set_pen_color(i, palette_megaduck[i * 3 + 0], palette_megaduck[i * 3 + 1], palette_megaduck[i * 3 + 2]); } @@ -761,8 +761,8 @@ static MACHINE_CONFIG_START( gameboy, gb_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 20*8-1, 0*8, 18*8-1) MCFG_GFXDECODE_ADD("gfxdecode", gb) - MCFG_PALETTE_LENGTH(4) - MCFG_PALETTE_INIT_OVERRIDE(gb_state,gb) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(gb_state,gb) MCFG_GB_LCD_DMG_ADD( "lcd" ) @@ -795,8 +795,10 @@ static MACHINE_CONFIG_DERIVED( supergb, gameboy ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(32*8, 28*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(gb_state,sgb) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32768) + MCFG_PALETTE_INIT_OWNER(gb_state,sgb) MCFG_DEVICE_REMOVE("lcd") MCFG_GB_LCD_SGB_ADD( "lcd" ) @@ -810,7 +812,9 @@ static MACHINE_CONFIG_DERIVED( gbpocket, gameboy ) MCFG_MACHINE_START_OVERRIDE(gb_state, gbpocket) MCFG_MACHINE_RESET_OVERRIDE(gb_state, gbpocket) - MCFG_PALETTE_INIT_OVERRIDE(gb_state,gbp) + + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(gb_state,gbp) MCFG_DEVICE_REMOVE("lcd") MCFG_GB_LCD_MGB_ADD( "lcd" ) @@ -824,8 +828,9 @@ static MACHINE_CONFIG_DERIVED( gbcolor, gameboy ) MCFG_MACHINE_START_OVERRIDE(gb_state,gbc) MCFG_MACHINE_RESET_OVERRIDE(gb_state,gbc) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(gb_state,gbc) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32768) + MCFG_PALETTE_INIT_OWNER(gb_state,gbc) MCFG_DEVICE_REMOVE("lcd") MCFG_GB_LCD_CGB_ADD( "lcd" ) @@ -863,8 +868,9 @@ static MACHINE_CONFIG_START( megaduck, megaduck_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_GFXDECODE_ADD("gfxdecode", gb) - MCFG_PALETTE_LENGTH(4) - MCFG_PALETTE_INIT_OVERRIDE(megaduck_state,megaduck) + + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(megaduck_state,megaduck) MCFG_GB_LCD_DMG_ADD( "lcd" ) diff --git a/src/mess/drivers/gba.c b/src/mess/drivers/gba.c index 3255528d980..3212939bbff 100644 --- a/src/mess/drivers/gba.c +++ b/src/mess/drivers/gba.c @@ -43,7 +43,7 @@ INLINE void ATTR_PRINTF(3,4) verboselog(running_machine &machine, int n_level, c static const UINT32 timer_clks[4] = { 16777216, 16777216/64, 16777216/256, 16777216/1024 }; -void gba_state::palette_init() +PALETTE_INIT_MEMBER(gba_state, gba) { UINT8 r, g, b; for( b = 0; b < 32; b++ ) @@ -52,7 +52,7 @@ void gba_state::palette_init() { for( r = 0; r < 32; r++ ) { - palette_set_color_rgb( machine(), ( b << 10 ) | ( g << 5 ) | r, pal5bit(r), pal5bit(g), pal5bit(b) ); + palette.set_pen_color( ( b << 10 ) | ( g << 5 ) | r, pal5bit(r), pal5bit(g), pal5bit(b) ); } } } @@ -2257,7 +2257,8 @@ static MACHINE_CONFIG_START( gbadv, gba_state ) MCFG_SCREEN_UPDATE_DRIVER(gba_state, screen_update) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) + MCFG_PALETTE_INIT_OWNER(gba_state, gba) MCFG_SPEAKER_STANDARD_STEREO("spkleft", "spkright") MCFG_SOUND_ADD("custom", GAMEBOY, 0) diff --git a/src/mess/drivers/geniusiq.c b/src/mess/drivers/geniusiq.c index 88e5efcb216..7d60282ea57 100644 --- a/src/mess/drivers/geniusiq.c +++ b/src/mess/drivers/geniusiq.c @@ -265,7 +265,7 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(geniusiq); virtual UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_READ16_MEMBER(input_r); @@ -316,10 +316,10 @@ public: virtual UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; -void geniusiq_state::palette_init() +PALETTE_INIT_MEMBER(geniusiq_state, geniusiq) { // shades need to be verified - const UINT8 palette[] = + const UINT8 palette_val[] = { 0x00, 0x00, 0x00, // Black?? (used in the cursor for transparency) 0xff, 0xff, 0xff, // White @@ -339,8 +339,8 @@ void geniusiq_state::palette_init() 0xff, 0x00, 0xff // Pink }; - for (int i=0; i> 31) & 0x01); + *scanline++ = m_palette->pen_color((data >> 31) & 0x01); data = data << 1; m_s3c240x_lcd.hpos++; if (m_s3c240x_lcd.hpos >= (m_s3c240x_lcd.pagewidth_max << 4)) @@ -157,7 +157,7 @@ void gp32_state::s3c240x_lcd_render_02( ) UINT32 data = s3c240x_lcd_dma_read(); for (j = 0; j < 16; j++) { - *scanline++ = palette_get_color( machine(), (data >> 30) & 0x03); + *scanline++ = m_palette->pen_color((data >> 30) & 0x03); data = data << 2; m_s3c240x_lcd.hpos++; if (m_s3c240x_lcd.hpos >= (m_s3c240x_lcd.pagewidth_max << 3)) @@ -180,7 +180,7 @@ void gp32_state::s3c240x_lcd_render_04( ) UINT32 data = s3c240x_lcd_dma_read( ); for (j = 0; j < 8; j++) { - *scanline++ = palette_get_color( machine(), (data >> 28) & 0x0F); + *scanline++ = m_palette->pen_color((data >> 28) & 0x0F); data = data << 4; m_s3c240x_lcd.hpos++; if (m_s3c240x_lcd.hpos >= (m_s3c240x_lcd.pagewidth_max << 2)) @@ -203,7 +203,7 @@ void gp32_state::s3c240x_lcd_render_08( ) UINT32 data = s3c240x_lcd_dma_read(); for (j = 0; j < 4; j++) { - *scanline++ = palette_get_color( machine(), (data >> 24) & 0xFF); + *scanline++ = m_palette->pen_color((data >> 24) & 0xFF); data = data << 8; m_s3c240x_lcd.hpos++; if (m_s3c240x_lcd.hpos >= (m_s3c240x_lcd.pagewidth_max << 1)) @@ -387,7 +387,7 @@ WRITE32_MEMBER(gp32_state::s3c240x_lcd_palette_w) { verboselog( machine(), 0, "s3c240x_lcd_palette_w: unknown mask %08x\n", mem_mask); } - palette_set_color( machine(), offset, s3c240x_get_color_5551( data & 0xFFFF)); + m_palette->set_pen_color( offset, s3c240x_get_color_5551( data & 0xFFFF)); } // CLOCK & POWER MANAGEMENT @@ -1678,7 +1678,7 @@ static MACHINE_CONFIG_START( gp32, gp32_state ) MCFG_CPU_ADD("maincpu", ARM9, 40000000) MCFG_CPU_PROGRAM_MAP(gp32_map) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mess/drivers/grfd2301.c b/src/mess/drivers/grfd2301.c index 232b5fa8e34..517b03e8227 100644 --- a/src/mess/drivers/grfd2301.c +++ b/src/mess/drivers/grfd2301.c @@ -122,8 +122,7 @@ static MACHINE_CONFIG_START( grfd2301, grfd2301_state ) MCFG_SCREEN_UPDATE_DRIVER(grfd2301_state, screen_update) MCFG_SCREEN_SIZE(640, 240) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END ROM_START( grfd2301 ) diff --git a/src/mess/drivers/h19.c b/src/mess/drivers/h19.c index 6c833bf2973..a5dfff50c7d 100644 --- a/src/mess/drivers/h19.c +++ b/src/mess/drivers/h19.c @@ -429,8 +429,7 @@ static MACHINE_CONFIG_START( h19, h19_state ) MCFG_SCREEN_SIZE(640, 200) MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 200 - 1) MCFG_GFXDECODE_ADD("gfxdecode", h19) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_12_288MHz / 8, h19_crtc6845_interface) // clk taken from schematics MCFG_INS8250_ADD( "ins8250", h19_ace_interface, XTAL_12_288MHz / 4) // 3.072mhz clock which gets divided down for the various baud rates diff --git a/src/mess/drivers/h89.c b/src/mess/drivers/h89.c index 506b3c3f95e..f29c1ec9c98 100644 --- a/src/mess/drivers/h89.c +++ b/src/mess/drivers/h89.c @@ -143,8 +143,7 @@ static MACHINE_CONFIG_START( h89, h89_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_STATIC(h89) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") #endif MCFG_INS8250_ADD( "ins8250", h89_ins8250_interface, XTAL_1_8432MHz ) diff --git a/src/mess/drivers/harriet.c b/src/mess/drivers/harriet.c index 6d462ca60fe..5e128f9788d 100644 --- a/src/mess/drivers/harriet.c +++ b/src/mess/drivers/harriet.c @@ -43,14 +43,12 @@ public: DECLARE_READ8_MEMBER(unk3_r); DECLARE_READ8_MEMBER(keyboard_status_r); DECLARE_WRITE8_MEMBER( kbd_put ); - protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void harriet_state::video_start() @@ -196,12 +194,6 @@ void harriet_state::machine_reset() } -void harriet_state::palette_init() -{ -} - - - static MACHINE_CONFIG_START( harriet, harriet_state ) /* basic machine hardware */ @@ -211,7 +203,7 @@ static MACHINE_CONFIG_START( harriet, harriet_state ) /* video hardware */ MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/hec2hrp.c b/src/mess/drivers/hec2hrp.c index 168ae7c62da..f560c0d8b33 100644 --- a/src/mess/drivers/hec2hrp.c +++ b/src/mess/drivers/hec2hrp.c @@ -446,7 +446,7 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) /* sound hardware */ @@ -489,7 +489,7 @@ static MACHINE_CONFIG_START( hec2hrp, hec2hrp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) /* sound hardware */ @@ -544,7 +544,7 @@ static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) /* sound hardware */ @@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) /* sound hardware */ @@ -641,8 +641,7 @@ static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) /* sound hardware */ @@ -693,7 +692,7 @@ static MACHINE_CONFIG_START( hec2mx80, hec2hrp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) /* sound hardware */ diff --git a/src/mess/drivers/homelab.c b/src/mess/drivers/homelab.c index c18e2d4395c..7f5decce481 100644 --- a/src/mess/drivers/homelab.c +++ b/src/mess/drivers/homelab.c @@ -761,8 +761,7 @@ static MACHINE_CONFIG_START( homelab, homelab_state ) MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab2) MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab2) MCFG_GFXDECODE_ADD("gfxdecode", homelab) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -791,8 +790,7 @@ static MACHINE_CONFIG_START( homelab3, homelab_state ) MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab3) MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab3) MCFG_GFXDECODE_ADD("gfxdecode", homelab) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -821,8 +819,7 @@ static MACHINE_CONFIG_START( brailab4, homelab_state ) MCFG_VIDEO_START_OVERRIDE(homelab_state,brailab4) MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab3) MCFG_GFXDECODE_ADD("gfxdecode", homelab) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/homez80.c b/src/mess/drivers/homez80.c index c2f481e4d3e..6937b35964e 100644 --- a/src/mess/drivers/homez80.c +++ b/src/mess/drivers/homez80.c @@ -292,9 +292,8 @@ static MACHINE_CONFIG_START( homez80, homez80_state ) MCFG_SCREEN_UPDATE_DRIVER(homez80_state, screen_update) MCFG_SCREEN_SIZE(344, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 344-1, 0, 32*8-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) - MCFG_GFXDECODE_ADD("gfxdecode", homez80 ) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", homez80 ) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/hp16500.c b/src/mess/drivers/hp16500.c index 43f13323a9d..e0c23ed96f6 100644 --- a/src/mess/drivers/hp16500.c +++ b/src/mess/drivers/hp16500.c @@ -63,7 +63,7 @@ static MACHINE_CONFIG_START( hp16500, hp16500_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(hp16500_state, screen_update_hp16500) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/hp48.c b/src/mess/drivers/hp48.c index eadda806c14..1f72e352016 100644 --- a/src/mess/drivers/hp48.c +++ b/src/mess/drivers/hp48.c @@ -947,7 +947,8 @@ static MACHINE_CONFIG_START( hp48_common, hp48_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 130, 0, 63 ) MCFG_SCREEN_UPDATE_DRIVER(hp48_state, screen_update_hp48) - MCFG_PALETTE_LENGTH( 256 ) /* monochrome, but with varying contrast and grayscale */ + MCFG_PALETTE_ADD( "palette", 256 ) /* monochrome, but with varying contrast and grayscale */ + MCFG_PALETTE_INIT_OWNER(hp48_state, hp48) /* sound */ MCFG_SPEAKER_STANDARD_MONO( "mono" ) diff --git a/src/mess/drivers/hp49gp.c b/src/mess/drivers/hp49gp.c index b6e17c26722..55599a3184f 100644 --- a/src/mess/drivers/hp49gp.c +++ b/src/mess/drivers/hp49gp.c @@ -298,7 +298,7 @@ static MACHINE_CONFIG_START( hp49gp, hp49gp_state ) MCFG_CPU_ADD("maincpu", ARM9, 400000000) MCFG_CPU_PROGRAM_MAP(hp49gp_map) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_REFRESH_RATE(60) @@ -310,7 +310,7 @@ static MACHINE_CONFIG_START( hp49gp, hp49gp_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_S3C2410_ADD("s3c2410", 12000000, hp49gp_s3c2410_intf) + MCFG_S3C2410_ADD("s3c2410", 12000000, hp49gp_s3c2410_intf, "palette") MACHINE_CONFIG_END static INPUT_PORTS_START( hp49gp ) diff --git a/src/mess/drivers/hp9k.c b/src/mess/drivers/hp9k.c index 1721e8b50c7..6467d946ef6 100644 --- a/src/mess/drivers/hp9k.c +++ b/src/mess/drivers/hp9k.c @@ -420,8 +420,7 @@ static MACHINE_CONFIG_START( hp9k, hp9k_state ) MCFG_SCREEN_UPDATE_DRIVER(hp9k_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", hp9k) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_MC6845_ADD( "mc6845", MC6845, "screen", XTAL_16MHz / 16, hp9k_mc6845_intf ) MACHINE_CONFIG_END diff --git a/src/mess/drivers/hprot1.c b/src/mess/drivers/hprot1.c index 0eacb71d004..724c5fcfe71 100644 --- a/src/mess/drivers/hprot1.c +++ b/src/mess/drivers/hprot1.c @@ -63,10 +63,10 @@ public: //DECLARE_WRITE8_MEMBER(henry_io_w); DECLARE_READ8_MEMBER(henry_io_r); DECLARE_DRIVER_INIT(hprot1); + DECLARE_PALETTE_INIT(hprot1); private: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); required_device m_maincpu; required_device m_lcdc; }; @@ -210,10 +210,10 @@ WRITE8_MEMBER(hprot1_state::henry_io_w) } */ -void hprot1_state::palette_init() +PALETTE_INIT_MEMBER(hprot1_state, hprot1) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static const gfx_layout henry_prot_charlayout = @@ -245,7 +245,8 @@ static MACHINE_CONFIG_START( hprot1, hprot1_state ) MCFG_SCREEN_SIZE(6*16, 9*2) MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(hprot1_state, hprot1) MCFG_GFXDECODE_ADD("gfxdecode", hprot1) MCFG_HD44780_ADD("hd44780") diff --git a/src/mess/drivers/hx20.c b/src/mess/drivers/hx20.c index 25adeaa0d2c..56ee88c4fc8 100644 --- a/src/mess/drivers/hx20.c +++ b/src/mess/drivers/hx20.c @@ -760,10 +760,10 @@ WRITE_LINE_MEMBER( hx20_state::rtc_irq_w ) // VIDEO //************************************************************************** -void hx20_state::palette_init() +PALETTE_INIT_MEMBER(hx20_state, hx20) { - palette_set_color_rgb(machine(), 0, 0xa5, 0xad, 0xa5); - palette_set_color_rgb(machine(), 1, 0x31, 0x39, 0x10); + palette.set_pen_color(0, 0xa5, 0xad, 0xa5); + palette.set_pen_color(1, 0x31, 0x39, 0x10); } @@ -832,7 +832,8 @@ static MACHINE_CONFIG_START( hx20, hx20_state ) MCFG_SCREEN_SIZE(120, 32) MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 32-1) MCFG_SCREEN_UPDATE_DRIVER(hx20_state, screen_update) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(hx20_state, hx20) MCFG_UPD7227_ADD(UPD7227_0_TAG, 0, 0) MCFG_UPD7227_ADD(UPD7227_1_TAG, 40, 0) MCFG_UPD7227_ADD(UPD7227_2_TAG, 80, 0) diff --git a/src/mess/drivers/ibm6580.c b/src/mess/drivers/ibm6580.c index e614af7610e..c77b74573b5 100644 --- a/src/mess/drivers/ibm6580.c +++ b/src/mess/drivers/ibm6580.c @@ -28,7 +28,7 @@ public: { } const UINT8 *m_p_chargen; - void palette_init_ibm6580(); + DECLARE_PALETTE_INIT(ibm6580); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); private: virtual void machine_reset(); @@ -59,9 +59,9 @@ UINT32 ibm6580_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, PALETTE_INIT_MEMBER( ibm6580_state, ibm6580 ) { - palette_set_color_rgb( machine(), 0, 0, 0, 0 ); /* Black */ - palette_set_color_rgb( machine(), 1, 0, 255, 0 ); /* Full */ - palette_set_color_rgb( machine(), 2, 0, 128, 0 ); /* Dimmed */ + palette.set_pen_color(0, 0, 0, 0 ); /* Black */ + palette.set_pen_color(1, 0, 255, 0 ); /* Full */ + palette.set_pen_color(2, 0, 128, 0 ); /* Dimmed */ } void ibm6580_state::machine_reset() @@ -82,8 +82,8 @@ static MACHINE_CONFIG_START( ibm6580, ibm6580_state ) MCFG_SCREEN_UPDATE_DRIVER(ibm6580_state, screen_update) MCFG_SCREEN_SIZE(640, 240) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(ibm6580_state, ibm6580) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(ibm6580_state, ibm6580) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/ie15.c b/src/mess/drivers/ie15.c index d9a894c0296..8215a532880 100644 --- a/src/mess/drivers/ie15.c +++ b/src/mess/drivers/ie15.c @@ -66,7 +66,7 @@ public: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(ie15); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_hle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(scanline_callback); @@ -613,10 +613,10 @@ static GFXDECODE_START( ie15 ) GFXDECODE_ENTRY( "chargen", 0x0000, ie15_charlayout, 0, 1 ) GFXDECODE_END -void ie15_state::palette_init() +PALETTE_INIT_MEMBER(ie15_state, ie15) { - palette_set_color(machine(), 0, rgb_t::black); // black - palette_set_color_rgb(machine(), 1, 0x00, 0xc0, 0x00); // green + palette.set_pen_color(0, rgb_t::black); // black + palette.set_pen_color(1, 0x00, 0xc0, 0x00); // green } static MACHINE_CONFIG_START( ie15, ie15_state ) @@ -634,7 +634,8 @@ static MACHINE_CONFIG_START( ie15, ie15_state ) IE15_HORZ_START+IE15_DISP_HORZ,IE15_TOTAL_VERT,IE15_VERT_START, IE15_VERT_START+IE15_DISP_VERT); MCFG_GFXDECODE_ADD("gfxdecode", ie15) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(ie15_state, ie15) /* Devices */ MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf) diff --git a/src/mess/drivers/if800.c b/src/mess/drivers/if800.c index 4eab0039d7b..60393ba3cca 100644 --- a/src/mess/drivers/if800.c +++ b/src/mess/drivers/if800.c @@ -103,8 +103,8 @@ static MACHINE_CONFIG_START( if800, if800_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) - MCFG_PALETTE_LENGTH(8) -// MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD("palette", 8) +// MCFG_PALETTE_INIT(black_and_white) // MCFG_VIDEO_START_OVERRIDE(if800_state,if800) MACHINE_CONFIG_END diff --git a/src/mess/drivers/interact.c b/src/mess/drivers/interact.c index e6bac8e2d8b..40d39fe8c0e 100644 --- a/src/mess/drivers/interact.c +++ b/src/mess/drivers/interact.c @@ -155,7 +155,7 @@ static MACHINE_CONFIG_START( interact, interact_state ) MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77) MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact) - MCFG_PALETTE_LENGTH(16) /* 8 colours, but only 4 at a time*/ + MCFG_PALETTE_ADD("palette", 16) /* 8 colours, but only 4 at a time*/ MCFG_VIDEO_START_OVERRIDE(interact_state,hec2hrp) /* sound hardware */ @@ -197,7 +197,7 @@ static MACHINE_CONFIG_START( hector1, interact_state ) MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77) MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact) - MCFG_PALETTE_LENGTH(16) /* 8 colours, but only 4 at a time*/ + MCFG_PALETTE_ADD("palette", 16) /* 8 colours, but only 4 at a time*/ MCFG_VIDEO_START_OVERRIDE(interact_state,hec2hrp) /* sound hardware */ diff --git a/src/mess/drivers/intv.c b/src/mess/drivers/intv.c index 02ff6b182b7..cd9df0cf431 100644 --- a/src/mess/drivers/intv.c +++ b/src/mess/drivers/intv.c @@ -84,29 +84,27 @@ static const unsigned char intv_colors[] = 0xB5, 0x1A, 0x58 /* PURPLE */ }; -void intv_state::palette_init() +PALETTE_INIT_MEMBER(intv_state, intv) { int k = 0; UINT8 r, g, b; /* Two copies of everything (why?) */ - machine().colortable = colortable_alloc(machine(), 32); - for (int i = 0; i < 16; i++) { r = intv_colors[i * 3 + 0]; g = intv_colors[i * 3 + 1]; b = intv_colors[i * 3 + 2]; - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); - colortable_palette_set_color(machine().colortable, i + 16, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); + palette.set_indirect_color(i + 16, rgb_t(r, g, b)); } for (int i = 0; i < 16; i++) { for (int j = 0; j < 16; j++) { - colortable_entry_set_value(machine().colortable, k++, i); - colortable_entry_set_value(machine().colortable, k++, j); + palette.set_pen_indirect(k++, i); + palette.set_pen_indirect(k++, j); } } @@ -114,8 +112,8 @@ void intv_state::palette_init() { for (int j = 16; j < 32; j++) { - colortable_entry_set_value(machine().colortable, k++, i); - colortable_entry_set_value(machine().colortable, k++, j); + palette.set_pen_indirect(k++, i); + palette.set_pen_indirect(k++, j); } } } @@ -826,7 +824,8 @@ static MACHINE_CONFIG_START( intv, intv_state ) MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE) MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE-1) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_INIT_OWNER(intv_state, intv) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -879,6 +878,9 @@ static MACHINE_CONFIG_DERIVED( intvkbd, intv ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", intvkbd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(intv_state, intv) + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTVKBD_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTVKBD_Y_SCALE) MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTVKBD_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTVKBD_Y_SCALE-1) diff --git a/src/mess/drivers/ip20.c b/src/mess/drivers/ip20.c index 376fbc56db8..04a6770f4b8 100644 --- a/src/mess/drivers/ip20.c +++ b/src/mess/drivers/ip20.c @@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( ip204415, ip20_state ) MCFG_SCREEN_VISIBLE_AREA(0, 799, 0, 599) MCFG_SCREEN_UPDATE_DRIVER(ip20_state, screen_update_ip204415) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/ip22.c b/src/mess/drivers/ip22.c index 51d5c9615a0..82a50e08c24 100644 --- a/src/mess/drivers/ip22.c +++ b/src/mess/drivers/ip22.c @@ -1624,7 +1624,7 @@ static MACHINE_CONFIG_START( ip225015, ip22_state ) MCFG_SCREEN_VISIBLE_AREA(0, 1279, 0, 1023) MCFG_SCREEN_UPDATE_DEVICE("newport", newport_video_device, screen_update) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_NEWPORT_ADD("newport") diff --git a/src/mess/drivers/ipds.c b/src/mess/drivers/ipds.c index 7ef475023ba..1ec7b32140e 100644 --- a/src/mess/drivers/ipds.c +++ b/src/mess/drivers/ipds.c @@ -153,8 +153,7 @@ static MACHINE_CONFIG_START( ipds, ipds_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_GFXDECODE_ADD("gfxdecode", ipds) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_I8275_ADD ( "i8275", ipds_i8275_interface) MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf) diff --git a/src/mess/drivers/iq151.c b/src/mess/drivers/iq151.c index ed90ef1d707..ff53a8ca15d 100644 --- a/src/mess/drivers/iq151.c +++ b/src/mess/drivers/iq151.c @@ -433,8 +433,7 @@ static MACHINE_CONFIG_START( iq151, iq151_state ) MCFG_SCREEN_UPDATE_DRIVER(iq151_state, screen_update) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/irisha.c b/src/mess/drivers/irisha.c index a8c46fc1203..469be379702 100644 --- a/src/mess/drivers/irisha.c +++ b/src/mess/drivers/irisha.c @@ -407,8 +407,7 @@ static MACHINE_CONFIG_START( irisha, irisha_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(irisha_state, screen_update_irisha) MCFG_GFXDECODE_ADD("gfxdecode", irisha) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/itt3030.c b/src/mess/drivers/itt3030.c index f7d05bfcff6..3012adab916 100644 --- a/src/mess/drivers/itt3030.c +++ b/src/mess/drivers/itt3030.c @@ -360,7 +360,7 @@ UINT32 itt3030_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap for(int x = 0; x < 80; x++ ) { UINT8 code = m_vram[x + y*128]; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, code , 0, 0,0, x*8,y*16); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, code , 0, 0,0, x*8,y*16); } } @@ -626,8 +626,7 @@ static MACHINE_CONFIG_START( itt3030, itt3030_state ) MCFG_GFXDECODE_ADD("gfxdecode", itt3030) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* internal ram */ MCFG_RAM_ADD("mainram") diff --git a/src/mess/drivers/jonos.c b/src/mess/drivers/jonos.c index 61722e9b53d..1721d470f45 100644 --- a/src/mess/drivers/jonos.c +++ b/src/mess/drivers/jonos.c @@ -131,8 +131,7 @@ static MACHINE_CONFIG_START( jonos, jonos_state ) MCFG_SCREEN_SIZE(640, 300) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 299) MCFG_GFXDECODE_ADD("gfxdecode", jonos) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END DRIVER_INIT_MEMBER(jonos_state,jonos) diff --git a/src/mess/drivers/jr100.c b/src/mess/drivers/jr100.c index 4b85f7a806c..d7d1f424866 100644 --- a/src/mess/drivers/jr100.c +++ b/src/mess/drivers/jr100.c @@ -385,8 +385,7 @@ static MACHINE_CONFIG_START( jr100, jr100_state ) MCFG_SCREEN_UPDATE_DRIVER(jr100_state, screen_update_jr100) MCFG_GFXDECODE_ADD("gfxdecode", jr100) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_DEVICE_ADD("via", VIA6522, XTAL_14_31818MHz / 16) MCFG_VIA6522_READPB_HANDLER(READ8(jr100_state,jr100_via_read_b)) diff --git a/src/mess/drivers/jr200.c b/src/mess/drivers/jr200.c index 09e567842ea..cd84eea4767 100644 --- a/src/mess/drivers/jr200.c +++ b/src/mess/drivers/jr200.c @@ -69,7 +69,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(jr200); UINT32 screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(timer_d_callback); @@ -200,7 +200,7 @@ UINT32 jr200_state::screen_update_jr200(screen_device &screen, bitmap_ind16 &bit pen = (gfx_data[(tile*8)+yi]>>(7-xi) & 1) ? (attr & 0x7) : ((attr & 0x38) >> 3); } - bitmap.pix16(y*8+yi+16, x*8+xi+16) = machine().pens[pen]; + bitmap.pix16(y*8+yi+16, x*8+xi+16) = m_palette->pen(pen); } } } @@ -493,12 +493,12 @@ static INPUT_PORTS_START( jr200 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) INPUT_PORTS_END -void jr200_state::palette_init() +PALETTE_INIT_MEMBER(jr200_state, jr200) { int i; for (i = 0; i < 8; i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); } static const gfx_layout tiles8x8_layout = @@ -556,7 +556,8 @@ static MACHINE_CONFIG_START( jr200, jr200_state ) MCFG_SCREEN_UPDATE_DRIVER(jr200_state, screen_update_jr200) MCFG_GFXDECODE_ADD("gfxdecode", jr200) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(jr200_state, jr200) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/jtc.c b/src/mess/drivers/jtc.c index 9d980a79515..4d6486d4056 100644 --- a/src/mess/drivers/jtc.c +++ b/src/mess/drivers/jtc.c @@ -756,8 +756,7 @@ static MACHINE_CONFIG_DERIVED( jtc, basic ) MCFG_SCREEN_SIZE(64, 64) MCFG_SCREEN_VISIBLE_AREA(0, 64-1, 0, 64-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* internal ram */ MCFG_RAM_ADD(RAM_TAG) @@ -788,8 +787,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( jtces23, basic, jtces23_state ) MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 128-1) MCFG_GFXDECODE_ADD("gfxdecode", jtces23) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* internal ram */ MCFG_RAM_ADD(RAM_TAG) @@ -810,8 +808,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( jtces40, basic, jtces40_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 192-1) MCFG_GFXDECODE_ADD("gfxdecode", jtces40) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(jtc_state,jtc_es40) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(jtc_state,jtc_es40) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/juicebox.c b/src/mess/drivers/juicebox.c index e4109406d5c..a47d106ab98 100644 --- a/src/mess/drivers/juicebox.c +++ b/src/mess/drivers/juicebox.c @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( juicebox, juicebox_state ) MCFG_CPU_ADD("maincpu", ARM7, 66000000) MCFG_CPU_PROGRAM_MAP(juicebox_map) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mess/drivers/jupiter.c b/src/mess/drivers/jupiter.c index 47fb5f0d241..6601c56edcc 100644 --- a/src/mess/drivers/jupiter.c +++ b/src/mess/drivers/jupiter.c @@ -289,8 +289,7 @@ static MACHINE_CONFIG_START( jupiter3, jupiter3_state ) MCFG_SCREEN_UPDATE_DRIVER(jupiter3_state, screen_update) MCFG_SCREEN_SIZE(512, 320) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 320-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") // devices MCFG_FD1771_ADD(INS1771N1_TAG, fdc_intf) diff --git a/src/mess/drivers/k8915.c b/src/mess/drivers/k8915.c index bba54b0e1b3..55d405d5205 100644 --- a/src/mess/drivers/k8915.c +++ b/src/mess/drivers/k8915.c @@ -167,8 +167,7 @@ static MACHINE_CONFIG_START( k8915, k8915_state ) MCFG_SCREEN_UPDATE_DRIVER(k8915_state, screen_update) MCFG_SCREEN_SIZE(640, 250) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf) MACHINE_CONFIG_END diff --git a/src/mess/drivers/kaypro.c b/src/mess/drivers/kaypro.c index 40d03eb17cd..fc7899bcc31 100644 --- a/src/mess/drivers/kaypro.c +++ b/src/mess/drivers/kaypro.c @@ -210,8 +210,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state ) MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro ) MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kayproii) MCFG_GFXDECODE_ADD("gfxdecode", kayproii) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -265,8 +264,8 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state ) MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro ) MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kaypro2x) MCFG_GFXDECODE_ADD("gfxdecode", kaypro2x) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(kaypro_state,kaypro) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(kaypro_state,kaypro) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/kc.c b/src/mess/drivers/kc.c index bd5c333d67d..3201cfffdad 100644 --- a/src/mess/drivers/kc.c +++ b/src/mess/drivers/kc.c @@ -144,8 +144,8 @@ static MACHINE_CONFIG_START( kc85_3, kc_state ) MCFG_SCREEN_UPDATE_DRIVER(kc_state, screen_update) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kc_state, kc_scanline, "screen", 0, 1) - MCFG_PALETTE_LENGTH(KC85_PALETTE_SIZE) - MCFG_PALETTE_INIT_OVERRIDE(kc_state, kc85 ) + MCFG_PALETTE_ADD("palette", KC85_PALETTE_SIZE) + MCFG_PALETTE_INIT_OWNER(kc_state, kc85 ) MCFG_KC_KEYBOARD_ADD("keyboard", XTAL_4MHz, kc85_keyboard_interface) @@ -196,8 +196,8 @@ static MACHINE_CONFIG_START( kc85_4, kc85_4_state ) MCFG_SCREEN_UPDATE_DRIVER(kc85_4_state, screen_update) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kc85_4_state, kc_scanline, "screen", 0, 1) - MCFG_PALETTE_LENGTH(KC85_PALETTE_SIZE) - MCFG_PALETTE_INIT_OVERRIDE(kc85_4_state, kc85 ) + MCFG_PALETTE_ADD("palette", KC85_PALETTE_SIZE) + MCFG_PALETTE_INIT_OWNER(kc85_4_state, kc85 ) MCFG_KC_KEYBOARD_ADD("keyboard", XTAL_4MHz, kc85_keyboard_interface) diff --git a/src/mess/drivers/konin.c b/src/mess/drivers/konin.c index cef7bb4dc02..a47a2158161 100644 --- a/src/mess/drivers/konin.c +++ b/src/mess/drivers/konin.c @@ -89,8 +89,7 @@ static MACHINE_CONFIG_START( konin, konin_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(konin_state, screen_update_konin) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/korgm1.c b/src/mess/drivers/korgm1.c index b0145389798..00c96dfcb5d 100644 --- a/src/mess/drivers/korgm1.c +++ b/src/mess/drivers/korgm1.c @@ -157,7 +157,7 @@ void korgm1_state::machine_reset() } -void korgm1_state::palette_init() +PALETTE_INIT_MEMBER(korgm1_state, korgm1) { } @@ -179,7 +179,7 @@ static MACHINE_CONFIG_START( korgm1, korgm1_state ) MCFG_GFXDECODE_ADD("gfxdecode", korgm1) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/kramermc.c b/src/mess/drivers/kramermc.c index ba8a0fa19de..10c3d39b818 100644 --- a/src/mess/drivers/kramermc.c +++ b/src/mess/drivers/kramermc.c @@ -120,10 +120,9 @@ static MACHINE_CONFIG_START( kramermc, kramermc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1) MCFG_SCREEN_UPDATE_DRIVER(kramermc_state, screen_update_kramermc) - MCFG_GFXDECODE_ADD("gfxdecode", kramermc ) + MCFG_GFXDECODE_ADD("gfxdecode", kramermc ) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/lcmate2.c b/src/mess/drivers/lcmate2.c index 0f9cf9a9b01..d53bced8526 100644 --- a/src/mess/drivers/lcmate2.c +++ b/src/mess/drivers/lcmate2.c @@ -59,7 +59,7 @@ public: DECLARE_READ8_MEMBER( key_r ); DECLARE_WRITE8_MEMBER( speaker_w ); DECLARE_WRITE8_MEMBER( bankswitch_w ); - virtual void palette_init(); + DECLARE_PALETTE_INIT(lcmate2); }; WRITE8_MEMBER( lcmate2_state::speaker_w ) @@ -194,10 +194,10 @@ static INPUT_PORTS_START( lcmate2 ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_UNUSED INPUT_PORTS_END -void lcmate2_state::palette_init() +PALETTE_INIT_MEMBER(lcmate2_state, lcmate2) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } void lcmate2_state::machine_start() @@ -240,7 +240,8 @@ static MACHINE_CONFIG_START( lcmate2, lcmate2_state ) MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) MCFG_SCREEN_SIZE(120, 18) MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 18-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(lcmate2_state, lcmate2) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_GFXDECODE_ADD("gfxdecode", lcmate2) diff --git a/src/mess/drivers/lisa.c b/src/mess/drivers/lisa.c index 3f08c546c6b..eeb116acc64 100644 --- a/src/mess/drivers/lisa.c +++ b/src/mess/drivers/lisa.c @@ -152,8 +152,7 @@ static MACHINE_CONFIG_START( lisa, lisa_state ) MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 364-1) MCFG_SCREEN_UPDATE_DRIVER(lisa_state, screen_update_lisa) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ diff --git a/src/mess/drivers/llc.c b/src/mess/drivers/llc.c index 39573968c98..f6475f15514 100644 --- a/src/mess/drivers/llc.c +++ b/src/mess/drivers/llc.c @@ -217,8 +217,7 @@ static MACHINE_CONFIG_START( llc1, llc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1) MCFG_SCREEN_UPDATE_DRIVER(llc_state, screen_update_llc1) MCFG_GFXDECODE_ADD("gfxdecode", llc1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_DEFAULT_LAYOUT(layout_llc1) MCFG_Z80PIO_ADD( "z80pio1", XTAL_3MHz, llc1_z80pio1_intf ) @@ -244,8 +243,7 @@ static MACHINE_CONFIG_START( llc2, llc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(llc_state, screen_update_llc2) MCFG_GFXDECODE_ADD("gfxdecode", llc2) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/lola8a.c b/src/mess/drivers/lola8a.c index 6ad1b371811..8a35a4a6ecb 100644 --- a/src/mess/drivers/lola8a.c +++ b/src/mess/drivers/lola8a.c @@ -41,7 +41,7 @@ public: required_device m_maincpu; - virtual void palette_init(); + DECLARE_PALETTE_INIT(lola8a); virtual void machine_reset() { m_maincpu->set_pc(0x8000); } DECLARE_READ8_MEMBER(lola8a_port_a_r); @@ -184,12 +184,12 @@ static INPUT_PORTS_START( lola8a ) INPUT_PORTS_END -void lola8a_state::palette_init() +PALETTE_INIT_MEMBER(lola8a_state, lola8a) { int i; for(i=0;i<8;i++) { - palette_set_color_rgb(machine(), i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); } } @@ -300,7 +300,8 @@ static MACHINE_CONFIG_START( lola8a, lola8a_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_MC6845_ADD(HD46505SP_TAG, HD6845, "screen", XTAL_8MHz / 8, hd46505sp_intf) // HD6845 == HD46505S - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(lola8a_state, lola8a) /* Cassette */ MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) diff --git a/src/mess/drivers/lviv.c b/src/mess/drivers/lviv.c index e1ba77fed25..b88fc17a612 100644 --- a/src/mess/drivers/lviv.c +++ b/src/mess/drivers/lviv.c @@ -447,7 +447,8 @@ static MACHINE_CONFIG_START( lviv, lviv_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(lviv_state, screen_update_lviv) - MCFG_PALETTE_LENGTH(sizeof (lviv_palette) / 3) + MCFG_PALETTE_ADD("palette", sizeof (lviv_palette) / 3) + MCFG_PALETTE_INIT_OWNER(lviv_state, lviv) /* sound hardware */ diff --git a/src/mess/drivers/lynx.c b/src/mess/drivers/lynx.c index cf70ecd2c10..2ed2030acae 100644 --- a/src/mess/drivers/lynx.c +++ b/src/mess/drivers/lynx.c @@ -40,13 +40,13 @@ static INPUT_PORTS_START( lynx ) // power on and power off buttons INPUT_PORTS_END -void lynx_state::palette_init() +PALETTE_INIT_MEMBER(lynx_state, lynx) { int i; for (i=0; i< 0x1000; i++) { - palette_set_color_rgb(machine(), i, + palette.set_pen_color(i, ((i >> 0) & 0x0f) * 0x11, ((i >> 4) & 0x0f) * 0x11, ((i >> 8) & 0x0f) * 0x11); @@ -87,7 +87,8 @@ static MACHINE_CONFIG_START( lynx, lynx_state ) MCFG_SCREEN_VISIBLE_AREA(0, 160-1, 0, 102-1) MCFG_DEFAULT_LAYOUT(layout_lynx) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_INIT_OWNER(lynx_state, lynx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c index ea27d08506a..4b3229caa8c 100644 --- a/src/mess/drivers/m20.c +++ b/src/mess/drivers/m20.c @@ -129,7 +129,7 @@ UINT32 m20_state::screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, UINT8 pen; UINT32 count; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = (0); @@ -142,7 +142,7 @@ UINT32 m20_state::screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, pen = (m_p_videoram[count]) >> (15 - i) & 1; if (screen.visible_area().contains(x + i, y)) - bitmap.pix32(y, x + i) = machine().pens[pen]; + bitmap.pix32(y, x + i) = m_palette->pen(pen); } count++; @@ -935,8 +935,7 @@ static MACHINE_CONFIG_START( m20, m20_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(m20_state, screen_update_m20) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* Devices */ MCFG_FD1797x_ADD("fd1797", 1000000) diff --git a/src/mess/drivers/m79152pc.c b/src/mess/drivers/m79152pc.c index d738d4b5d82..c54629b210d 100644 --- a/src/mess/drivers/m79152pc.c +++ b/src/mess/drivers/m79152pc.c @@ -123,8 +123,7 @@ static MACHINE_CONFIG_START( m79152pc, m79152pc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 300-1) MCFG_SCREEN_UPDATE_DRIVER(m79152pc_state, screen_update_m79152pc) MCFG_GFXDECODE_ADD("gfxdecode", m79152pc) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/mac.c b/src/mess/drivers/mac.c index de2cb1c7c61..d225011faf8 100644 --- a/src/mess/drivers/mac.c +++ b/src/mess/drivers/mac.c @@ -135,14 +135,14 @@ WRITE32_MEMBER( mac_state::rbv_ramdac_w ) // Color Classic has no MONTYPE so the default gets us 512x384, which is right if ((m_montype ? m_montype->read() : 2) == 1) { - palette_set_color(space.machine(), m_rbv_clutoffs, rgb_t(m_rbv_colors[2], m_rbv_colors[2], m_rbv_colors[2])); + m_palette->set_pen_color(m_rbv_clutoffs, rgb_t(m_rbv_colors[2], m_rbv_colors[2], m_rbv_colors[2])); m_rbv_palette[m_rbv_clutoffs] = rgb_t(m_rbv_colors[2], m_rbv_colors[2], m_rbv_colors[2]); m_rbv_clutoffs++; m_rbv_count = 0; } else { - palette_set_color(space.machine(), m_rbv_clutoffs, rgb_t(m_rbv_colors[0], m_rbv_colors[1], m_rbv_colors[2])); + m_palette->set_pen_color(m_rbv_clutoffs, rgb_t(m_rbv_colors[0], m_rbv_colors[1], m_rbv_colors[2])); m_rbv_palette[m_rbv_clutoffs] = rgb_t(m_rbv_colors[0], m_rbv_colors[1], m_rbv_colors[2]); m_rbv_clutoffs++; m_rbv_count = 0; @@ -171,14 +171,14 @@ WRITE32_MEMBER( mac_state::ariel_ramdac_w ) // this is for the "Ariel" style RAM // Color Classic has no MONTYPE so the default gets us 512x384, which is right if ((m_montype ? m_montype->read() : 2) == 1) { - palette_set_color(space.machine(), m_rbv_clutoffs, rgb_t(m_rbv_colors[2], m_rbv_colors[2], m_rbv_colors[2])); + m_palette->set_pen_color(m_rbv_clutoffs, rgb_t(m_rbv_colors[2], m_rbv_colors[2], m_rbv_colors[2])); m_rbv_palette[m_rbv_clutoffs] = rgb_t(m_rbv_colors[2], m_rbv_colors[2], m_rbv_colors[2]); m_rbv_clutoffs++; m_rbv_count = 0; } else { - palette_set_color(space.machine(), m_rbv_clutoffs, rgb_t(m_rbv_colors[0], m_rbv_colors[1], m_rbv_colors[2])); + m_palette->set_pen_color(m_rbv_clutoffs, rgb_t(m_rbv_colors[0], m_rbv_colors[1], m_rbv_colors[2])); m_rbv_palette[m_rbv_clutoffs] = rgb_t(m_rbv_colors[0], m_rbv_colors[1], m_rbv_colors[2]); m_rbv_clutoffs++; m_rbv_count = 0; @@ -934,8 +934,8 @@ static MACHINE_CONFIG_START( mac512ke, mac_state ) MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_mac) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(mac_state,mac) MCFG_VIDEO_START_OVERRIDE(mac_state,mac) @@ -1059,8 +1059,8 @@ static MACHINE_CONFIG_START( macprtb, mac_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macprtb) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(mac_state,mac) MCFG_VIDEO_START_OVERRIDE(mac_state,macprtb) @@ -1104,7 +1104,7 @@ static MACHINE_CONFIG_START( macii, mac_state ) MCFG_CPU_ADD("maincpu", M68020PMMU, C15M) MCFG_CPU_PROGRAM_MAP(macii_map) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1219,7 +1219,8 @@ static MACHINE_CONFIG_DERIVED( maclc, macii ) MCFG_CPU_PROGRAM_MAP(maclc_map) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl) - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(mac_state,macv8) MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv) @@ -1411,8 +1412,8 @@ static MACHINE_CONFIG_START( macse30, mac_state ) MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macse30) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(mac_state,mac) MCFG_VIDEO_START_OVERRIDE(mac_state,mac) @@ -1475,8 +1476,8 @@ static MACHINE_CONFIG_START( macpb140, mac_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpb140) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(mac_state,mac) MCFG_VIDEO_START_OVERRIDE(mac_state,macprtb) @@ -1555,8 +1556,8 @@ static MACHINE_CONFIG_START( macpb160, mac_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpb160) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(mac_state,macgsc) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(mac_state,macgsc) MCFG_VIDEO_START_OVERRIDE(mac_state,macprtb) @@ -1667,7 +1668,8 @@ static MACHINE_CONFIG_DERIVED( maciici, macii ) MCFG_CPU_PROGRAM_MAP(maciici_map) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl) - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) // IIci only has slots c/d/e MCFG_NUBUS_SLOT_REMOVE("nb9") @@ -1696,7 +1698,8 @@ static MACHINE_CONFIG_DERIVED( maciisi, macii ) MCFG_CPU_PROGRAM_MAP(maciici_map) MCFG_CPU_VBLANK_INT_DRIVER(MAC_SCREEN_NAME, mac_state, mac_rbv_vbl) - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) MCFG_NUBUS_SLOT_REMOVE("nb9") MCFG_NUBUS_SLOT_REMOVE("nba") @@ -1747,7 +1750,7 @@ static MACHINE_CONFIG_START( pwrmac, mac_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(mac_state,macsonora) MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv) @@ -1811,7 +1814,7 @@ static MACHINE_CONFIG_START( macqd700, mac_state ) MCFG_VIDEO_START_OVERRIDE(mac_state,macdafb) MCFG_VIDEO_RESET_OVERRIDE(mac_state,macdafb) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/macpci.c b/src/mess/drivers/macpci.c index 94f5edd49dd..af1e2e10ba1 100644 --- a/src/mess/drivers/macpci.c +++ b/src/mess/drivers/macpci.c @@ -105,8 +105,7 @@ static MACHINE_CONFIG_START( pippin, macpci_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(macpci_state, screen_update_pippin) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/mbc200.c b/src/mess/drivers/mbc200.c index 1cd82c5958a..95f12ffb90f 100644 --- a/src/mess/drivers/mbc200.c +++ b/src/mess/drivers/mbc200.c @@ -175,7 +175,7 @@ UINT32 mbc200_state::screen_update_mbc200(screen_device &screen, bitmap_ind16 &b dot = (m_vram[count] >> (7-xi)) & 1; if(y*4+yi < 400 && x*8+xi < 640) /* TODO: safety check */ - bitmap.pix16(y*4+yi, x*8+xi) = machine().pens[dot]; + bitmap.pix16(y*4+yi, x*8+xi) = m_palette->pen(dot); } count++; @@ -270,8 +270,7 @@ static MACHINE_CONFIG_START( mbc200, mbc200_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) MCFG_SCREEN_UPDATE_DRIVER(mbc200_state, screen_update_mbc200) MCFG_GFXDECODE_ADD("gfxdecode", mbc200) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_8MHz / 4, mbc200_crtc) // HD46505SP diff --git a/src/mess/drivers/mbc55x.c b/src/mess/drivers/mbc55x.c index c274b2e9978..0d1ccfe1312 100644 --- a/src/mess/drivers/mbc55x.c +++ b/src/mess/drivers/mbc55x.c @@ -217,14 +217,14 @@ static INPUT_PORTS_START( mbc55x ) INPUT_PORTS_END -void mbc55x_state::palette_init() +PALETTE_INIT_MEMBER(mbc55x_state, mbc55x) { int colourno; logerror("initializing palette\n"); for ( colourno = 0; colourno < SCREEN_NO_COLOURS; colourno++ ) - palette_set_color_rgb(machine(), colourno, mbc55x_palette[colourno][RED], mbc55x_palette[colourno][GREEN], mbc55x_palette[colourno][BLUE]); + palette.set_pen_color(colourno, mbc55x_palette[colourno][RED], mbc55x_palette[colourno][GREEN], mbc55x_palette[colourno][BLUE]); } @@ -241,8 +241,8 @@ static MACHINE_CONFIG_START( mbc55x, mbc55x_state ) MCFG_SCREEN_UPDATE_DEVICE(VID_MC6845_NAME, mc6845_device, screen_update) MCFG_SCREEN_VBLANK_DRIVER(mbc55x_state, screen_eof_mbc55x) - MCFG_PALETTE_LENGTH(SCREEN_NO_COLOURS * 3) - + MCFG_PALETTE_ADD("palette", SCREEN_NO_COLOURS * 3) + MCFG_PALETTE_INIT_OWNER(mbc55x_state, mbc55x) // MCFG_SCREEN_SIZE(650, 260) // MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) diff --git a/src/mess/drivers/mbee.c b/src/mess/drivers/mbee.c index d41975bfbad..decf02c7f55 100644 --- a/src/mess/drivers/mbee.c +++ b/src/mess/drivers/mbee.c @@ -749,8 +749,7 @@ static MACHINE_CONFIG_START( mbee, mbee_state ) MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee) MCFG_GFXDECODE_ADD("gfxdecode", mbee) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_amber) // usually sold with amber or green monitor + MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette") // usually sold with amber or green monitor MCFG_VIDEO_START_OVERRIDE(mbee_state,mbee) @@ -794,8 +793,9 @@ static MACHINE_CONFIG_START( mbeeic, mbee_state ) MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee) MCFG_GFXDECODE_ADD("gfxdecode", mbeeic) - MCFG_PALETTE_LENGTH(96) - MCFG_PALETTE_INIT_OVERRIDE(mbee_state,mbeeic) + + MCFG_PALETTE_ADD("palette", 96) + MCFG_PALETTE_INIT_OWNER(mbee_state,mbeeic) MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic) @@ -831,7 +831,8 @@ static MACHINE_CONFIG_DERIVED( mbeepc85, mbeeic ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mbeepc85b, mbeepc85 ) - MCFG_PALETTE_INIT_OVERRIDE(mbee_state,mbeepc85b) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(mbee_state,mbeepc85b) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mbeeppc, mbeeic ) @@ -840,8 +841,9 @@ static MACHINE_CONFIG_DERIVED( mbeeppc, mbeeic ) MCFG_CPU_IO_MAP(mbeeppc_io) MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeppc) MCFG_GFXDECODE_MODIFY("gfxdecode", mbeeppc) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(mbee_state,mbeeppc) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(mbee_state,mbeeppc) MCFG_DEVICE_REMOVE("crtc") MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8, mbeeppc_crtc) MACHINE_CONFIG_END diff --git a/src/mess/drivers/mc10.c b/src/mess/drivers/mc10.c index 548e5261d6d..8881f623a6c 100644 --- a/src/mess/drivers/mc10.c +++ b/src/mess/drivers/mc10.c @@ -541,7 +541,7 @@ static MACHINE_CONFIG_START( alice32, mc10_state ) MCFG_SCREEN_UPDATE_DEVICE("ef9345", ef9345_device, screen_update) MCFG_SCREEN_SIZE(336, 270) MCFG_SCREEN_VISIBLE_AREA(00, 336-1, 00, 270-1) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) MCFG_EF9345_ADD("ef9345", "screen") MCFG_TIMER_DRIVER_ADD_SCANLINE("alice32_sl", mc10_state, alice32_scanline, "screen", 0, 10) diff --git a/src/mess/drivers/mc80.c b/src/mess/drivers/mc80.c index fbcd9d464ef..f0ffa655137 100644 --- a/src/mess/drivers/mc80.c +++ b/src/mess/drivers/mc80.c @@ -173,8 +173,7 @@ static MACHINE_CONFIG_START( mc8020, mc80_state ) MCFG_SCREEN_VISIBLE_AREA(0, 32*6-1, 0, 16*8-1) MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8020) MCFG_SCREEN_UPDATE_DRIVER(mc80_state, screen_update_mc8020) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* Devices */ MCFG_Z80PIO_ADD( "z80pio", XTAL_2_4576MHz, mc8020_z80pio_intf ) @@ -199,8 +198,7 @@ static MACHINE_CONFIG_START( mc8030, mc80_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8030) MCFG_SCREEN_UPDATE_DRIVER(mc80_state, screen_update_mc8030) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* Devices */ MCFG_Z80PIO_ADD( "zve_pio", XTAL_2_4576MHz, mc8030_zve_z80pio_intf ) diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c index 4d1aeda9726..3d8c2ad4a9c 100644 --- a/src/mess/drivers/megadriv.c +++ b/src/mess/drivers/megadriv.c @@ -504,6 +504,7 @@ static MACHINE_CONFIG_START( genesis_32x, md_cons_state ) MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, 0) + MCFG_SEGA_32X_PALETTE("gen_vdp:palette") // we need to remove and re-add the sound system because the balance is different // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is slient?!) @@ -537,6 +538,7 @@ static MACHINE_CONFIG_START( mdj_32x, md_cons_state ) MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, 0) + MCFG_SEGA_32X_PALETTE("gen_vdp:palette") // we need to remove and re-add the sound system because the balance is different // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is slient?!) @@ -570,6 +572,7 @@ static MACHINE_CONFIG_START( md_32x, md_cons_state ) MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) MCFG_DEVICE_ADD("sega32x", SEGA_32X_PAL, 0) + MCFG_SEGA_32X_PALETTE("gen_vdp:palette") // we need to remove and re-add the sound system because the balance is different // due to MAME / MESS having severe issues if the dac output is > 0.40? (sound is corrupted even if DAC is slient?!) @@ -645,6 +648,7 @@ static MACHINE_CONFIG_START( genesis_scd, md_cons_state ) MCFG_SEGACD_GFXDECODE("gfxdecode") MCFG_GFXDECODE_ADD("gfxdecode", empty) + MCFG_CDROM_ADD( "cdrom",scd_cdrom ) MCFG_SOFTWARE_LIST_ADD("cd_list","segacd") diff --git a/src/mess/drivers/mes.c b/src/mess/drivers/mes.c index e89e1bc8f63..5a9586eea84 100644 --- a/src/mess/drivers/mes.c +++ b/src/mess/drivers/mes.c @@ -116,8 +116,7 @@ static MACHINE_CONFIG_START( mes, mes_state ) MCFG_SCREEN_UPDATE_DRIVER(mes_state, screen_update) MCFG_SCREEN_SIZE(640, 250) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/micronic.c b/src/mess/drivers/micronic.c index d8bc980a50d..0c2807ec451 100644 --- a/src/mess/drivers/micronic.c +++ b/src/mess/drivers/micronic.c @@ -324,10 +324,10 @@ static NVRAM_HANDLER( micronic ) } } -void micronic_state::palette_init() +PALETTE_INIT_MEMBER(micronic_state, micronic) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static HD61830_INTERFACE( lcdc_intf ) @@ -376,7 +376,8 @@ static MACHINE_CONFIG_START( micronic, micronic_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(micronic_state, micronic) MCFG_HD61830_ADD(HD61830_TAG, XTAL_4_9152MHz/2/2, lcdc_intf) diff --git a/src/mess/drivers/microtan.c b/src/mess/drivers/microtan.c index b49e18154d8..421b0c9ac75 100644 --- a/src/mess/drivers/microtan.c +++ b/src/mess/drivers/microtan.c @@ -230,9 +230,8 @@ static MACHINE_CONFIG_START( microtan, microtan_state ) MCFG_SCREEN_UPDATE_DRIVER(microtan_state, screen_update_microtan) MCFG_GFXDECODE_ADD("gfxdecode", microtan) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/microvsn.c b/src/mess/drivers/microvsn.c index 62b5cf71e40..ac56206472a 100644 --- a/src/mess/drivers/microvsn.c +++ b/src/mess/drivers/microvsn.c @@ -115,22 +115,22 @@ protected: PALETTE_INIT_MEMBER(microvision_state,microvision) { - palette_set_color_rgb( machine(), 15, 0x00, 0x00, 0x00 ); - palette_set_color_rgb( machine(), 14, 0x11, 0x11, 0x11 ); - palette_set_color_rgb( machine(), 13, 0x22, 0x22, 0x22 ); - palette_set_color_rgb( machine(), 12, 0x33, 0x33, 0x33 ); - palette_set_color_rgb( machine(), 11, 0x44, 0x44, 0x44 ); - palette_set_color_rgb( machine(), 10, 0x55, 0x55, 0x55 ); - palette_set_color_rgb( machine(), 9, 0x66, 0x66, 0x66 ); - palette_set_color_rgb( machine(), 8, 0x77, 0x77, 0x77 ); - palette_set_color_rgb( machine(), 7, 0x88, 0x88, 0x88 ); - palette_set_color_rgb( machine(), 6, 0x99, 0x99, 0x99 ); - palette_set_color_rgb( machine(), 5, 0xaa, 0xaa, 0xaa ); - palette_set_color_rgb( machine(), 4, 0xbb, 0xbb, 0xbb ); - palette_set_color_rgb( machine(), 3, 0xcc, 0xcc, 0xcc ); - palette_set_color_rgb( machine(), 2, 0xdd, 0xdd, 0xdd ); - palette_set_color_rgb( machine(), 1, 0xee, 0xee, 0xee ); - palette_set_color_rgb( machine(), 0, 0xff, 0xff, 0xff ); + palette.set_pen_color( 15, 0x00, 0x00, 0x00 ); + palette.set_pen_color( 14, 0x11, 0x11, 0x11 ); + palette.set_pen_color( 13, 0x22, 0x22, 0x22 ); + palette.set_pen_color( 12, 0x33, 0x33, 0x33 ); + palette.set_pen_color( 11, 0x44, 0x44, 0x44 ); + palette.set_pen_color( 10, 0x55, 0x55, 0x55 ); + palette.set_pen_color( 9, 0x66, 0x66, 0x66 ); + palette.set_pen_color( 8, 0x77, 0x77, 0x77 ); + palette.set_pen_color( 7, 0x88, 0x88, 0x88 ); + palette.set_pen_color( 6, 0x99, 0x99, 0x99 ); + palette.set_pen_color( 5, 0xaa, 0xaa, 0xaa ); + palette.set_pen_color( 4, 0xbb, 0xbb, 0xbb ); + palette.set_pen_color( 3, 0xcc, 0xcc, 0xcc ); + palette.set_pen_color( 2, 0xdd, 0xdd, 0xdd ); + palette.set_pen_color( 1, 0xee, 0xee, 0xee ); + palette.set_pen_color( 0, 0xff, 0xff, 0xff ); } @@ -655,8 +655,8 @@ static MACHINE_CONFIG_START( microvision, microvision_state ) MCFG_SCREEN_SIZE(16, 16) MCFG_SCREEN_VISIBLE_AREA(0, 15, 0, 15) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(microvision_state,microvision) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(microvision_state,microvision) MCFG_DEFAULT_LAYOUT(layout_lcd) diff --git a/src/mess/drivers/mikro80.c b/src/mess/drivers/mikro80.c index 0e3282fcbad..9a2a2850308 100644 --- a/src/mess/drivers/mikro80.c +++ b/src/mess/drivers/mikro80.c @@ -184,8 +184,7 @@ static MACHINE_CONFIG_START( mikro80, mikro80_state ) MCFG_SCREEN_UPDATE_DRIVER(mikro80_state, screen_update_mikro80) MCFG_GFXDECODE_ADD("gfxdecode", mikro80) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/mikrosha.c b/src/mess/drivers/mikrosha.c index ea5faea7473..cd073eebab1 100644 --- a/src/mess/drivers/mikrosha.c +++ b/src/mess/drivers/mikrosha.c @@ -202,8 +202,8 @@ static MACHINE_CONFIG_START( mikrosha, mikrosha_state ) MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) MCFG_GFXDECODE_ADD("gfxdecode", mikrosha) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(mikrosha_state,radio86) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(mikrosha_state,radio86) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") diff --git a/src/mess/drivers/mini2440.c b/src/mess/drivers/mini2440.c index 5925590f9d1..74df2b7a05f 100644 --- a/src/mess/drivers/mini2440.c +++ b/src/mess/drivers/mini2440.c @@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state ) MCFG_CPU_ADD("maincpu", ARM920T, 400000000) MCFG_CPU_PROGRAM_MAP(mini2440_map) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_REFRESH_RATE(60) @@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state ) MCFG_SOUND_ADD("dac2", DAC, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_S3C2440_ADD("s3c2440", 12000000, mini2440_s3c2440_intf) + MCFG_S3C2440_ADD("s3c2440", 12000000, mini2440_s3c2440_intf, "palette") MCFG_NAND_ADD("nand", mini2440_nand_intf) MACHINE_CONFIG_END diff --git a/src/mess/drivers/mk85.c b/src/mess/drivers/mk85.c index 904bf54af63..dc5ffa142da 100644 --- a/src/mess/drivers/mk85.c +++ b/src/mess/drivers/mk85.c @@ -73,8 +73,7 @@ static MACHINE_CONFIG_START( mk85, mk85_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(mk85_state, screen_update_mk85) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/mk90.c b/src/mess/drivers/mk90.c index 6725d67c670..875588140fc 100644 --- a/src/mess/drivers/mk90.c +++ b/src/mess/drivers/mk90.c @@ -78,8 +78,7 @@ static MACHINE_CONFIG_START( mk90, mk90_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(mk90_state, screen_update_mk90) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/mmodular.c b/src/mess/drivers/mmodular.c index b4a13af50b8..20f3169922c 100644 --- a/src/mess/drivers/mmodular.c +++ b/src/mess/drivers/mmodular.c @@ -1077,9 +1077,9 @@ MACHINE_RESET_MEMBER(polgar_state,academy) PALETTE_INIT_MEMBER(polgar_state,chess_lcd) { - // palette_set_color(machine(), 0, rgb_t(138, 146, 148)); // some think this is closer, but slightly less readable - palette_set_color(machine(), 0, rgb_t(255, 255, 255)); - palette_set_color(machine(), 1, rgb_t(0, 0, 0)); + // palette.set_pen_color(0, rgb_t(138, 146, 148)); // some think this is closer, but slightly less readable + palette.set_pen_color(0, rgb_t(255, 255, 255)); + palette.set_pen_color(1, rgb_t(0, 0, 0)); } static const gfx_layout chess_charlayout = @@ -1521,8 +1521,8 @@ static MACHINE_CONFIG_FRAGMENT ( chess_common ) MCFG_SCREEN_SIZE(100, 22) MCFG_SCREEN_VISIBLE_AREA(0, 100-1, 0, 22-3) MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(polgar_state,chess_lcd) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(polgar_state,chess_lcd) MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_GFXDECODE_ADD("gfxdecode", chess_lcd) diff --git a/src/mess/drivers/modellot.c b/src/mess/drivers/modellot.c index 8b282b2dc39..e6a146926c9 100644 --- a/src/mess/drivers/modellot.c +++ b/src/mess/drivers/modellot.c @@ -166,10 +166,9 @@ static MACHINE_CONFIG_START( modellot, modellot_state ) MCFG_SCREEN_SIZE(64*8, 16*16) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*16-1) MCFG_SCREEN_UPDATE_DRIVER(modellot_state, screen_update_modellot) - MCFG_GFXDECODE_ADD("gfxdecode", modellot ) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) - + MCFG_GFXDECODE_ADD("gfxdecode", modellot ) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") + /* Devices */ MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf) MACHINE_CONFIG_END diff --git a/src/mess/drivers/molecular.c b/src/mess/drivers/molecular.c index 3b567c88803..0f85ab67416 100644 --- a/src/mess/drivers/molecular.c +++ b/src/mess/drivers/molecular.c @@ -88,6 +88,8 @@ public: UINT8 app_ram_enable; UINT8 file_ram_enable; + + DECLARE_PALETTE_INIT(molecula); protected: // driver_device overrides @@ -95,7 +97,6 @@ protected: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void molecula_state::video_start() @@ -277,7 +278,7 @@ void molecula_state::machine_reset() } -void molecula_state::palette_init() +PALETTE_INIT_MEMBER(molecula_state, molecula) { } @@ -308,7 +309,8 @@ static MACHINE_CONFIG_START( molecula, molecula_state ) MCFG_GFXDECODE_ADD("gfxdecode", molecula) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(molecula_state, molecula) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/ms0515.c b/src/mess/drivers/ms0515.c index f6d2cf9e846..67dea5d0316 100644 --- a/src/mess/drivers/ms0515.c +++ b/src/mess/drivers/ms0515.c @@ -34,7 +34,7 @@ public: UINT8 *m_video_ram; UINT8 m_sysreg; int m_blink; - virtual void palette_init(); + DECLARE_PALETTE_INIT(ms0515); UINT32 screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE8_MEMBER(ms0515_portc_w); }; @@ -212,25 +212,25 @@ UINT32 ms0515_state::screen_update_ms0515(screen_device &screen, bitmap_ind16 &b return 0; } -void ms0515_state::palette_init() +PALETTE_INIT_MEMBER(ms0515_state, ms0515) { - palette_set_color(machine(), 0, rgb_t(0, 0, 0)); - palette_set_color(machine(), 1, rgb_t(0, 0, 127)); - palette_set_color(machine(), 2, rgb_t(127, 0, 0)); - palette_set_color(machine(), 3, rgb_t(127, 0, 127)); - palette_set_color(machine(), 4, rgb_t(0, 127, 0)); - palette_set_color(machine(), 5, rgb_t(0, 127, 127)); - palette_set_color(machine(), 6, rgb_t(127, 127, 0)); - palette_set_color(machine(), 7, rgb_t(127, 127, 127)); - - palette_set_color(machine(), 8, rgb_t(127, 127, 127)); - palette_set_color(machine(), 9, rgb_t(127, 127, 255)); - palette_set_color(machine(), 10, rgb_t(255, 127, 127)); - palette_set_color(machine(), 11, rgb_t(255, 127, 255)); - palette_set_color(machine(), 12, rgb_t(127, 255, 127)); - palette_set_color(machine(), 13, rgb_t(127, 255, 255)); - palette_set_color(machine(), 14, rgb_t(255, 255, 127)); - palette_set_color(machine(), 15, rgb_t(255, 255, 255)); + palette.set_pen_color(0, rgb_t(0, 0, 0)); + palette.set_pen_color(1, rgb_t(0, 0, 127)); + palette.set_pen_color(2, rgb_t(127, 0, 0)); + palette.set_pen_color(3, rgb_t(127, 0, 127)); + palette.set_pen_color(4, rgb_t(0, 127, 0)); + palette.set_pen_color(5, rgb_t(0, 127, 127)); + palette.set_pen_color(6, rgb_t(127, 127, 0)); + palette.set_pen_color(7, rgb_t(127, 127, 127)); + + palette.set_pen_color(8, rgb_t(127, 127, 127)); + palette.set_pen_color(9, rgb_t(127, 127, 255)); + palette.set_pen_color(10, rgb_t(255, 127, 127)); + palette.set_pen_color(11, rgb_t(255, 127, 255)); + palette.set_pen_color(12, rgb_t(127, 255, 127)); + palette.set_pen_color(13, rgb_t(127, 255, 255)); + palette.set_pen_color(14, rgb_t(255, 255, 127)); + palette.set_pen_color(15, rgb_t(255, 255, 255)); } WRITE8_MEMBER(ms0515_state::ms0515_portc_w) @@ -265,7 +265,8 @@ static MACHINE_CONFIG_START( ms0515, ms0515_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(ms0515_state, screen_update_ms0515) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(ms0515_state, ms0515) MCFG_I8255_ADD( "ppi8255_1", ms0515_ppi8255_interface_1 ) //MCFG_I8255_ADD( "ppi8255_2", ms0515_ppi8255_interface_2 ) diff --git a/src/mess/drivers/mstation.c b/src/mess/drivers/mstation.c index 422955977e2..11fd04ee215 100644 --- a/src/mess/drivers/mstation.c +++ b/src/mess/drivers/mstation.c @@ -92,7 +92,7 @@ public: virtual void machine_start(); virtual void machine_reset(); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mstation); TIMER_DEVICE_CALLBACK_MEMBER(mstation_1hz_timer); TIMER_DEVICE_CALLBACK_MEMBER(mstation_kb_timer); }; @@ -502,10 +502,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(mstation_state::mstation_kb_timer) refresh_ints(); } -void mstation_state::palette_init() +PALETTE_INIT_MEMBER(mstation_state, mstation) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static RP5C01_INTERFACE( rtc_intf ) @@ -527,7 +527,8 @@ static MACHINE_CONFIG_START( mstation, mstation_state ) MCFG_SCREEN_SIZE(320, 128) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 128-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(mstation_state, mstation) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_AMD_29F080_ADD("flash0") diff --git a/src/mess/drivers/msx.c b/src/mess/drivers/msx.c index 5a93105e689..ed57cf5b10a 100644 --- a/src/mess/drivers/msx.c +++ b/src/mess/drivers/msx.c @@ -1197,7 +1197,7 @@ static MACHINE_CONFIG_START( msx2, msx_state ) MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2) MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1268,8 +1268,6 @@ static MACHINE_CONFIG_START( msx2p, msx_state ) MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2) MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1) - MCFG_PALETTE_LENGTH(19780) - /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("dac", DAC, 0) diff --git a/src/mess/drivers/multi16.c b/src/mess/drivers/multi16.c index 8df82838295..577c017f3a2 100644 --- a/src/mess/drivers/multi16.c +++ b/src/mess/drivers/multi16.c @@ -76,7 +76,7 @@ UINT32 multi16_state::screen_update_multi16(screen_device &screen, bitmap_ind16 int dot = (BITSWAP16(m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1; if(screen.visible_area().contains(x*16+xi, y)) - bitmap.pix16(y, x*16+xi) = machine().pens[dot]; + bitmap.pix16(y, x*16+xi) = m_palette->pen(dot); } count++; @@ -168,7 +168,7 @@ static MACHINE_CONFIG_START( multi16, multi16_state ) MCFG_SCREEN_SIZE(640, 200) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(multi16_state, screen_update_multi16) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* Devices */ MCFG_MC6845_ADD("crtc", H46505, "screen", 16000000/5, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ diff --git a/src/mess/drivers/multi8.c b/src/mess/drivers/multi8.c index 5dbc43732db..d0e93261cbf 100644 --- a/src/mess/drivers/multi8.c +++ b/src/mess/drivers/multi8.c @@ -69,7 +69,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(multi8); UINT32 screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback); void multi8_draw_pixel(bitmap_ind16 &bitmap,int y,int x,UINT8 pen,UINT8 width); @@ -183,7 +183,7 @@ UINT32 multi8_state::screen_update_multi8(screen_device &screen, bitmap_ind16 &b } } - // m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile,color >> 5, 0, 0, x*8, y*8); + // m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile,color >> 5, 0, 0, x*8, y*8); // draw cursor if(mc6845_cursor_addr+0xc000 == count) @@ -575,12 +575,12 @@ static MC6845_INTERFACE( mc6845_intf ) NULL /* update address callback */ }; -void multi8_state::palette_init() +PALETTE_INIT_MEMBER(multi8_state, multi8) { UINT8 i; for(i=0; i<8; i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); } READ8_MEMBER( multi8_state::porta_r ) @@ -673,7 +673,8 @@ static MACHINE_CONFIG_START( multi8, multi8_state ) MCFG_SCREEN_SIZE(640, 200) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(multi8_state, screen_update_multi8) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(multi8_state, multi8) MCFG_GFXDECODE_ADD("gfxdecode", multi8) /* Audio */ diff --git a/src/mess/drivers/mx2178.c b/src/mess/drivers/mx2178.c index 621029285b0..f37a5302629 100644 --- a/src/mess/drivers/mx2178.c +++ b/src/mess/drivers/mx2178.c @@ -184,8 +184,7 @@ static MACHINE_CONFIG_START( mx2178, mx2178_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_GFXDECODE_ADD("gfxdecode", mx2178) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* Devices */ MCFG_MC6845_ADD("crtc", MC6845, "screen", 18869600 / 8, crtc_interface) // clk unknown diff --git a/src/mess/drivers/myb3k.c b/src/mess/drivers/myb3k.c index 7e1384fdd22..98ec51e562e 100644 --- a/src/mess/drivers/myb3k.c +++ b/src/mess/drivers/myb3k.c @@ -92,7 +92,7 @@ UINT32 myb3k_state::screen_update_myb3k(screen_device &screen, bitmap_ind16 &bit dot = 0; if(y*mc6845_tile_height+yi < 200 && x*8+xi < 320) /* TODO: safety check */ - bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = machine().pens[dot]; + bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = m_palette->pen(dot); } } } @@ -284,8 +284,7 @@ static MACHINE_CONFIG_START( myb3k, myb3k_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(myb3k_state, screen_update_myb3k) MCFG_GFXDECODE_ADD("gfxdecode", myb3k) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* Devices */ MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_3_579545MHz/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ diff --git a/src/mess/drivers/mycom.c b/src/mess/drivers/mycom.c index c286ce74754..2534f2bde7e 100644 --- a/src/mess/drivers/mycom.c +++ b/src/mess/drivers/mycom.c @@ -560,8 +560,7 @@ static MACHINE_CONFIG_START( mycom, mycom_state ) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 192-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", mycom) /* Manual states clock is 1.008mhz for 40 cols, and 2.016 mhz for 80 cols. diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c index caa4dbd3564..0333ab4e6ae 100644 --- a/src/mess/drivers/mz2000.c +++ b/src/mess/drivers/mz2000.c @@ -172,8 +172,8 @@ UINT32 mz2000_state::screen_update_mz2000(screen_device &screen, bitmap_ind16 &b pen |= ((gvram[count+0xc000] >> (xi)) & 1) ? 4 : 0; //G pen &= m_gvram_mask; - bitmap.pix16(y*2+0, x+xi) = machine().pens[pen]; - bitmap.pix16(y*2+1, x+xi) = machine().pens[pen]; + bitmap.pix16(y*2+0, x+xi) = m_palette->pen(pen); + bitmap.pix16(y*2+1, x+xi) = m_palette->pen(pen); } count++; } @@ -213,27 +213,27 @@ UINT32 mz2000_state::screen_update_mz2000(screen_device &screen, bitmap_ind16 &b { if(m_width80 == 0) { - bitmap.pix16(res_y, res_x*2+0) = machine().pens[pen]; - bitmap.pix16(res_y, res_x*2+1) = machine().pens[pen]; + bitmap.pix16(res_y, res_x*2+0) = m_palette->pen(pen); + bitmap.pix16(res_y, res_x*2+1) = m_palette->pen(pen); } else { - bitmap.pix16(res_y, res_x) = machine().pens[pen]; + bitmap.pix16(res_y, res_x) = m_palette->pen(pen); } } else { if(m_width80 == 0) { - bitmap.pix16(res_y*2+0, res_x*2+0) = machine().pens[pen]; - bitmap.pix16(res_y*2+0, res_x*2+1) = machine().pens[pen]; - bitmap.pix16(res_y*2+1, res_x*2+0) = machine().pens[pen]; - bitmap.pix16(res_y*2+1, res_x*2+1) = machine().pens[pen]; + bitmap.pix16(res_y*2+0, res_x*2+0) = m_palette->pen(pen); + bitmap.pix16(res_y*2+0, res_x*2+1) = m_palette->pen(pen); + bitmap.pix16(res_y*2+1, res_x*2+0) = m_palette->pen(pen); + bitmap.pix16(res_y*2+1, res_x*2+1) = m_palette->pen(pen); } else { - bitmap.pix16(res_y*2+0, res_x) = machine().pens[pen]; - bitmap.pix16(res_y*2+1, res_x) = machine().pens[pen]; + bitmap.pix16(res_y*2+0, res_x) = m_palette->pen(pen); + bitmap.pix16(res_y*2+1, res_x) = m_palette->pen(pen); } } } @@ -573,7 +573,7 @@ void mz2000_state::machine_reset() g = (m_color_mode) ? (i & 4)>>2 : ((i) ? 1 : 0); b = (m_color_mode) ? (i & 1)>>0 : 0; - palette_set_color_rgb(machine(), i,pal1bit(r),pal1bit(g),pal1bit(b)); + m_palette->set_pen_color(i,pal1bit(r),pal1bit(g),pal1bit(b)); } } } @@ -868,7 +868,7 @@ static MACHINE_CONFIG_START( mz2000, mz2000_state ) MCFG_SCREEN_UPDATE_DRIVER(mz2000_state, screen_update_mz2000) MCFG_GFXDECODE_ADD("gfxdecode", mz2000) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c index 1522cc4eb56..2519adc3c0b 100644 --- a/src/mess/drivers/mz2500.c +++ b/src/mess/drivers/mz2500.c @@ -185,7 +185,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mz2500); UINT32 screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(mz2500_vbl); DECLARE_READ8_MEMBER(mz2500_wd17xx_r); @@ -251,23 +251,23 @@ void mz2500_state::mz2500_draw_pixel(bitmap_ind16 &bitmap,int x,int y,UINT16 pe { if(width && height) { - bitmap.pix16(y*2+0, x*2+0) = machine().pens[pen]; - bitmap.pix16(y*2+0, x*2+1) = machine().pens[pen]; - bitmap.pix16(y*2+1, x*2+0) = machine().pens[pen]; - bitmap.pix16(y*2+1, x*2+1) = machine().pens[pen]; + bitmap.pix16(y*2+0, x*2+0) = m_palette->pen(pen); + bitmap.pix16(y*2+0, x*2+1) = m_palette->pen(pen); + bitmap.pix16(y*2+1, x*2+0) = m_palette->pen(pen); + bitmap.pix16(y*2+1, x*2+1) = m_palette->pen(pen); } else if(width) { - bitmap.pix16(y, x*2+0) = machine().pens[pen]; - bitmap.pix16(y, x*2+1) = machine().pens[pen]; + bitmap.pix16(y, x*2+0) = m_palette->pen(pen); + bitmap.pix16(y, x*2+1) = m_palette->pen(pen); } else if(height) { - bitmap.pix16(y*2+0, x) = machine().pens[pen]; - bitmap.pix16(y*2+1, x) = machine().pens[pen]; + bitmap.pix16(y*2+0, x) = m_palette->pen(pen); + bitmap.pix16(y*2+1, x) = m_palette->pen(pen); } else - bitmap.pix16(y, x) = machine().pens[pen]; + bitmap.pix16(y, x) = m_palette->pen(pen); } void mz2500_state::draw_80x25(bitmap_ind16 &bitmap,const rectangle &cliprect,UINT16 map_addr) @@ -677,7 +677,7 @@ void mz2500_state::draw_cg_screen(bitmap_ind16 &bitmap,const rectangle &cliprect UINT32 mz2500_state::screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[0], cliprect); //TODO: correct? + bitmap.fill(m_palette->pen(0), cliprect); //TODO: correct? if(m_screen_enable) return 0; @@ -1122,7 +1122,7 @@ WRITE8_MEMBER(mz2500_state::mz2500_tv_crtc_w) bit2 = i & 0x40 ? 4 : 0; g = bit0|bit1|bit2; - palette_set_color_rgb(machine(), i+0x100,pal3bit(r),pal3bit(g),pal3bit(b)); + m_palette->set_pen_color(i+0x100,pal3bit(r),pal3bit(g),pal3bit(b)); } } if(m_text_reg_index >= 0x80 && m_text_reg_index <= 0x8f) //Bitmap 16 clut registers @@ -1275,7 +1275,7 @@ WRITE8_MEMBER(mz2500_state::palette4096_io_w) m_pal[pal_entry].b = data & 0x0f; } - palette_set_color_rgb(machine(), pal_entry+0x10, pal4bit(m_pal[pal_entry].r), pal4bit(m_pal[pal_entry].g), pal4bit(m_pal[pal_entry].b)); + m_palette->set_pen_color(pal_entry+0x10, pal4bit(m_pal[pal_entry].r), pal4bit(m_pal[pal_entry].g), pal4bit(m_pal[pal_entry].b)); } READ8_MEMBER(mz2500_state::mz2500_wd17xx_r) @@ -2034,16 +2034,16 @@ static const ay8910_interface ay8910_config = DEVCB_NULL // write B }; -void mz2500_state::palette_init() +PALETTE_INIT_MEMBER(mz2500_state, mz2500) { int i; for(i=0;i<0x200;i++) - palette_set_color_rgb(machine(), i,pal1bit(0),pal1bit(0),pal1bit(0)); + palette.set_pen_color(i,pal1bit(0),pal1bit(0),pal1bit(0)); /* set up 8 colors (PCG) */ for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i+8,pal1bit((i & 2)>>1),pal1bit((i & 4)>>2),pal1bit((i & 1)>>0)); + m_palette->set_pen_color(i+8,pal1bit((i & 2)>>1),pal1bit((i & 4)>>2),pal1bit((i & 1)>>0)); /* set up 16 colors (PCG / CG) */ @@ -2068,7 +2068,7 @@ void mz2500_state::palette_init() bit2 = i & 0x40 ? 4 : 0; g = bit0|bit1|bit2; - palette_set_color_rgb(machine(), i+0x100,pal3bit(r),pal3bit(g),pal3bit(b)); + m_palette->set_pen_color(i+0x100,pal3bit(r),pal3bit(g),pal3bit(b)); } } } @@ -2147,7 +2147,8 @@ static MACHINE_CONFIG_START( mz2500, mz2500_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_21_4772MHz, 640+108, 0, 640, 480, 0, 200) //unknown clock / divider MCFG_SCREEN_UPDATE_DRIVER(mz2500_state, screen_update_mz2500) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(mz2500_state, mz2500) MCFG_GFXDECODE_ADD("gfxdecode", mz2500) diff --git a/src/mess/drivers/mz3500.c b/src/mess/drivers/mz3500.c index 6e4e3d93531..44e4b5e9b12 100644 --- a/src/mess/drivers/mz3500.c +++ b/src/mess/drivers/mz3500.c @@ -97,14 +97,13 @@ public: // screen updates UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - + DECLARE_PALETTE_INIT(mz3500); protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void mz3500_state::video_start() @@ -228,7 +227,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) UINT32 mz3500_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { - bitmap.fill(machine().pens[(m_crtc[4] & 2) ? m_crtc[3] & 7 : 0], cliprect); + bitmap.fill(m_palette->pen((m_crtc[4] & 2) ? m_crtc[3] & 7 : 0), cliprect); /* graphics */ m_hgdc2->screen_update(screen, bitmap, cliprect); @@ -824,12 +823,12 @@ void mz3500_state::machine_reset() -void mz3500_state::palette_init() +PALETTE_INIT_MEMBER(mz3500_state, mz3500) { int i; for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i,pal1bit((i >> 1) & 1),pal1bit(i >> 2),pal1bit((i >> 0) & 1)); + palette.set_pen_color(i,pal1bit((i >> 1) & 1),pal1bit(i >> 2),pal1bit((i >> 0) & 1)); } @@ -881,7 +880,8 @@ static MACHINE_CONFIG_START( mz3500, mz3500_state ) MCFG_GFXDECODE_ADD("gfxdecode", mz3500) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(mz3500_state, mz3500) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/mz6500.c b/src/mess/drivers/mz6500.c index b2c9b63de7a..d3c7d8e8b69 100644 --- a/src/mess/drivers/mz6500.c +++ b/src/mess/drivers/mz6500.c @@ -153,7 +153,7 @@ static MACHINE_CONFIG_START( mz6500, mz6500_state ) MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* Devices */ MCFG_UPD7220_ADD("upd7220", 8000000/6, hgdc_intf, upd7220_map) // unk clock diff --git a/src/mess/drivers/mz700.c b/src/mess/drivers/mz700.c index 6fff599683b..c399a7492d4 100644 --- a/src/mess/drivers/mz700.c +++ b/src/mess/drivers/mz700.c @@ -340,7 +340,8 @@ static MACHINE_CONFIG_START( mz700, mz_state ) MCFG_SCREEN_UPDATE_DRIVER(mz_state, screen_update_mz700) MCFG_GFXDECODE_ADD("gfxdecode", mz700) - MCFG_PALETTE_LENGTH(256*2) + MCFG_PALETTE_ADD("palette", 256*2) + MCFG_PALETTE_INIT_OWNER(mz_state, mz) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/mz80.c b/src/mess/drivers/mz80.c index c5899c07c45..3f3d4b1f9ee 100644 --- a/src/mess/drivers/mz80.c +++ b/src/mess/drivers/mz80.c @@ -290,8 +290,7 @@ static MACHINE_CONFIG_START( mz80k, mz80_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199) MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80k) MCFG_GFXDECODE_ADD("gfxdecode", mz80k) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* Audio */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/n64.c b/src/mess/drivers/n64.c index 5f3bf95e77e..c232512346d 100644 --- a/src/mess/drivers/n64.c +++ b/src/mess/drivers/n64.c @@ -298,7 +298,7 @@ static MACHINE_CONFIG_START( n64, n64_mess_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/nakajies.c b/src/mess/drivers/nakajies.c index 49dec58a812..c6695842159 100644 --- a/src/mess/drivers/nakajies.c +++ b/src/mess/drivers/nakajies.c @@ -335,7 +335,7 @@ public: /* Banking */ UINT8 m_bank[8]; UINT8 *m_bank_base[8]; - virtual void palette_init(); + DECLARE_PALETTE_INIT(nakajies); DECLARE_INPUT_CHANGED_MEMBER(trigger_irq); TIMER_DEVICE_CALLBACK_MEMBER(kb_timer); }; @@ -697,10 +697,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(nakajies_state::kb_timer) } -void nakajies_state::palette_init() +PALETTE_INIT_MEMBER(nakajies_state, nakajies) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } @@ -750,7 +750,8 @@ static MACHINE_CONFIG_START( nakajies210, nakajies_state ) MCFG_SCREEN_SIZE( 80 * 6, 8 * 8 ) MCFG_SCREEN_VISIBLE_AREA( 0, 6 * 80 - 1, 0, 8 * 8 - 1 ) MCFG_GFXDECODE_ADD("gfxdecode", wales210) - MCFG_PALETTE_LENGTH( 2 ) + MCFG_PALETTE_ADD( "palette", 2 ) + MCFG_PALETTE_INIT_OWNER(nakajies_state, nakajies) MCFG_DEFAULT_LAYOUT(layout_lcd) /* sound */ diff --git a/src/mess/drivers/nanos.c b/src/mess/drivers/nanos.c index c714d17c3e4..adb5ce1120d 100644 --- a/src/mess/drivers/nanos.c +++ b/src/mess/drivers/nanos.c @@ -570,8 +570,7 @@ static MACHINE_CONFIG_START( nanos, nanos_state ) MCFG_SCREEN_SIZE(80*8, 25*10) MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,25*10-1) MCFG_GFXDECODE_ADD("gfxdecode", nanos) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* devices */ MCFG_Z80CTC_ADD( "z80ctc_0", XTAL_4MHz, ctc_intf) diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c index d21e10bb3ed..acd67335b3d 100644 --- a/src/mess/drivers/nascom1.c +++ b/src/mess/drivers/nascom1.c @@ -296,8 +296,7 @@ static MACHINE_CONFIG_START( nascom1, nascom1_state ) MCFG_SCREEN_UPDATE_DRIVER(nascom1_state, screen_update_nascom1) MCFG_GFXDECODE_ADD("gfxdecode", nascom1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_AY31015_ADD( "hd6402", nascom1_ay31015_config ) diff --git a/src/mess/drivers/nc.c b/src/mess/drivers/nc.c index 612e6da176b..db6c8ac4c67 100644 --- a/src/mess/drivers/nc.c +++ b/src/mess/drivers/nc.c @@ -1439,7 +1439,9 @@ static MACHINE_CONFIG_START( nc100, nc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1) MCFG_SCREEN_UPDATE_DRIVER(nc_state, screen_update_nc) - MCFG_PALETTE_LENGTH(NC_NUM_COLOURS) + MCFG_PALETTE_ADD("palette", NC_NUM_COLOURS) + MCFG_PALETTE_INIT_OWNER(nc_state, nc) + MCFG_DEFAULT_LAYOUT(layout_lcd) /* sound hardware */ @@ -1505,7 +1507,10 @@ static MACHINE_CONFIG_DERIVED( nc200, nc100 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(NC200_SCREEN_WIDTH, NC200_SCREEN_HEIGHT) MCFG_SCREEN_VISIBLE_AREA(0, NC200_SCREEN_WIDTH-1, 0, NC200_SCREEN_HEIGHT-1) - MCFG_PALETTE_LENGTH(NC200_NUM_COLOURS) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", NC200_NUM_COLOURS) + MCFG_PALETTE_INIT_OWNER(nc_state, nc) /* printer */ MCFG_DEVICE_MODIFY("centronics") diff --git a/src/mess/drivers/nes.c b/src/mess/drivers/nes.c index 3c60574bfb0..50de0c6058a 100644 --- a/src/mess/drivers/nes.c +++ b/src/mess/drivers/nes.c @@ -1058,7 +1058,8 @@ static MACHINE_CONFIG_START( nes, nes_state ) MCFG_SCREEN_UPDATE_DRIVER(nes_state, screen_update_nes) - MCFG_PALETTE_LENGTH(4*16*8) + MCFG_PALETTE_ADD("palette", 4*16*8) + MCFG_PALETTE_INIT_OWNER(nes_state, nes) MCFG_PPU2C02_ADD("ppu", nes_ppu_interface) MCFG_PPU2C0X_SET_NMI(nes_state, ppu_nmi) diff --git a/src/mess/drivers/ngp.c b/src/mess/drivers/ngp.c index 8232e96e395..efe6d61abe3 100644 --- a/src/mess/drivers/ngp.c +++ b/src/mess/drivers/ngp.c @@ -837,8 +837,6 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ngp, ngp_common ) - MCFG_PALETTE_LENGTH( 8 ) - MCFG_K1GE_ADD( "k1ge", XTAL_6_144MHz, "screen", WRITELINE( ngp_state, ngp_vblank_pin_w ), WRITELINE( ngp_state, ngp_hblank_pin_w ) ) MCFG_CARTSLOT_ADD("cart") @@ -855,9 +853,6 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ngpc, ngp_common ) - - MCFG_PALETTE_LENGTH( 4096 ) - MCFG_K2GE_ADD( "k1ge", XTAL_6_144MHz, "screen", WRITELINE( ngp_state, ngp_vblank_pin_w ), WRITELINE( ngp_state, ngp_hblank_pin_w ) ) MCFG_CARTSLOT_ADD("cart") diff --git a/src/mess/drivers/octopus.c b/src/mess/drivers/octopus.c index 131645795d9..99cd6989e41 100644 --- a/src/mess/drivers/octopus.c +++ b/src/mess/drivers/octopus.c @@ -177,8 +177,7 @@ static MACHINE_CONFIG_START( octopus, octopus_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(octopus_state, screen_update_octopus) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/odyssey2.c b/src/mess/drivers/odyssey2.c index a6a02b895cf..329b39772c1 100644 --- a/src/mess/drivers/odyssey2.c +++ b/src/mess/drivers/odyssey2.c @@ -64,7 +64,7 @@ public: DECLARE_DRIVER_INIT(odyssey2); virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(odyssey2); UINT32 screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(the_voice_lrq_callback); DECLARE_WRITE_LINE_MEMBER(irq_callback); @@ -111,7 +111,7 @@ public: required_device m_i8243; required_device m_ef9340_1; - virtual void palette_init(); + DECLARE_PALETTE_INIT(g7400); virtual void machine_start(); virtual void machine_reset(); DECLARE_WRITE8_MEMBER(p2_write); @@ -264,16 +264,16 @@ const UINT8 odyssey2_colors[] = }; -void odyssey2_state::palette_init() +PALETTE_INIT_MEMBER(odyssey2_state, odyssey2) { for ( int i = 0; i < 16; i++ ) { - palette_set_color_rgb( machine(), i, odyssey2_colors[i*3], odyssey2_colors[i*3+1], odyssey2_colors[i*3+2] ); + palette.set_pen_color( i, odyssey2_colors[i*3], odyssey2_colors[i*3+1], odyssey2_colors[i*3+2] ); } } -void g7400_state::palette_init() +PALETTE_INIT_MEMBER(g7400_state, g7400) { const UINT8 g7400_colors[] = { @@ -299,7 +299,7 @@ void g7400_state::palette_init() for ( int i = 0; i < 16; i++ ) { - palette_set_color_rgb( machine(), i, g7400_colors[i*3], g7400_colors[i*3+1], g7400_colors[i*3+2] ); + palette.set_pen_color( i, g7400_colors[i*3], g7400_colors[i*3+1], g7400_colors[i*3+2] ); } } @@ -776,8 +776,9 @@ static MACHINE_CONFIG_START( odyssey2, odyssey2_state ) MCFG_SCREEN_RAW_PARAMS( XTAL_7_15909MHz/2 * 2, i8244_device::LINE_CLOCKS, i8244_device::START_ACTIVE_SCAN, i8244_device::END_ACTIVE_SCAN, i8244_device::LINES, i8244_device::START_Y, i8244_device::START_Y + i8244_device::SCREEN_HEIGHT ) MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2) - MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) - MCFG_PALETTE_LENGTH(32) + MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(odyssey2_state, odyssey2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -805,8 +806,9 @@ static MACHINE_CONFIG_START( videopac, odyssey2_state ) MCFG_SCREEN_RAW_PARAMS( XTAL_17_73447MHz/5 * 2, i8244_device::LINE_CLOCKS, i8244_device::START_ACTIVE_SCAN, i8244_device::END_ACTIVE_SCAN, i8245_device::LINES, i8244_device::START_Y, i8244_device::START_Y + i8244_device::SCREEN_HEIGHT ) MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2) - MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) - MCFG_PALETTE_LENGTH(16) + MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(odyssey2_state, odyssey2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -833,8 +835,9 @@ static MACHINE_CONFIG_START( g7400, g7400_state ) MCFG_SCREEN_RAW_PARAMS( 3540000 * 2, i8244_device::LINE_CLOCKS, i8244_device::START_ACTIVE_SCAN, i8244_device::END_ACTIVE_SCAN, i8245_device::LINES, i8244_device::START_Y, i8244_device::START_Y + i8244_device::SCREEN_HEIGHT ) MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2) - MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) - MCFG_PALETTE_LENGTH(16) + MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(g7400_state, g7400) MCFG_I8243_ADD( "i8243", NOOP, WRITE8(g7400_state,i8243_port_w)) @@ -867,8 +870,9 @@ static MACHINE_CONFIG_START( odyssey3, g7400_state ) MCFG_SCREEN_RAW_PARAMS( 3540000 * 2, i8244_device::LINE_CLOCKS, i8244_device::START_ACTIVE_SCAN, i8244_device::END_ACTIVE_SCAN, i8244_device::LINES, i8244_device::START_Y, i8244_device::START_Y + i8244_device::SCREEN_HEIGHT ) MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2) - MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) - MCFG_PALETTE_LENGTH(16) + MCFG_GFXDECODE_ADD("gfxdecode", odyssey2 ) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(g7400_state, g7400) MCFG_I8243_ADD( "i8243", NOOP, WRITE8(g7400_state,i8243_port_w)) diff --git a/src/mess/drivers/okean240.c b/src/mess/drivers/okean240.c index 5209e568d58..f02e8b70259 100644 --- a/src/mess/drivers/okean240.c +++ b/src/mess/drivers/okean240.c @@ -490,10 +490,10 @@ static MACHINE_CONFIG_START( okean240t, okean240_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) MCFG_SCREEN_UPDATE_DRIVER(okean240_state, screen_update_okean240) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") + MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) MACHINE_CONFIG_END diff --git a/src/mess/drivers/ondra.c b/src/mess/drivers/ondra.c index 5552a564609..f1fd37d35fb 100644 --- a/src/mess/drivers/ondra.c +++ b/src/mess/drivers/ondra.c @@ -136,8 +136,7 @@ static MACHINE_CONFIG_START( ondra, ondra_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(ondra_state, screen_update_ondra) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") // sound hardware diff --git a/src/mess/drivers/orao.c b/src/mess/drivers/orao.c index e5d3ca2f972..f62fbc9e8e7 100644 --- a/src/mess/drivers/orao.c +++ b/src/mess/drivers/orao.c @@ -185,8 +185,7 @@ static MACHINE_CONFIG_START( orao, orao_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(orao_state, screen_update_orao) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* audio hardware */ diff --git a/src/mess/drivers/oric.c b/src/mess/drivers/oric.c index 0b8edad8488..e3e9c8e05c5 100644 --- a/src/mess/drivers/oric.c +++ b/src/mess/drivers/oric.c @@ -309,12 +309,12 @@ static const unsigned char oric_palette[8*3] = }; /* Initialise the palette */ -void oric_state::palette_init() +PALETTE_INIT_MEMBER(oric_state, oric) { int i; for ( i = 0; i < sizeof(oric_palette) / 3; i++ ) { - palette_set_color_rgb(machine(), i, oric_palette[i*3], oric_palette[i*3+1], oric_palette[i*3+2]); + palette.set_pen_color(i, oric_palette[i*3], oric_palette[i*3+1], oric_palette[i*3+2]); } } @@ -381,7 +381,8 @@ static MACHINE_CONFIG_START( oric, oric_state ) MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(oric_state, screen_update_oric) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(oric_state, oric) /* sound hardware */ diff --git a/src/mess/drivers/orion.c b/src/mess/drivers/orion.c index 9383b60b5e4..b4bc1a26293 100644 --- a/src/mess/drivers/orion.c +++ b/src/mess/drivers/orion.c @@ -111,8 +111,8 @@ static MACHINE_CONFIG_START( orion128, orion_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128) - MCFG_PALETTE_LENGTH(18) - MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 ) + MCFG_PALETTE_ADD("palette", 18) + MCFG_PALETTE_INIT_OWNER(orion_state, orion128 ) MCFG_VIDEO_START_OVERRIDE(orion_state,orion128) @@ -174,8 +174,8 @@ static MACHINE_CONFIG_START( orionz80, orion_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128) - MCFG_PALETTE_LENGTH(18) - MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 ) + MCFG_PALETTE_ADD("palette", 18) + MCFG_PALETTE_INIT_OWNER(orion_state, orion128 ) MCFG_VIDEO_START_OVERRIDE(orion_state,orion128) @@ -236,8 +236,8 @@ static MACHINE_CONFIG_START( orionpro, orion_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128) - MCFG_PALETTE_LENGTH(18) - MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 ) + MCFG_PALETTE_ADD("palette", 18) + MCFG_PALETTE_INIT_OWNER(orion_state, orion128 ) MCFG_VIDEO_START_OVERRIDE(orion_state,orion128) diff --git a/src/mess/drivers/osbexec.c b/src/mess/drivers/osbexec.c index 70704128193..7a232d1aea0 100644 --- a/src/mess/drivers/osbexec.c +++ b/src/mess/drivers/osbexec.c @@ -109,7 +109,7 @@ public: DECLARE_READ8_MEMBER(osbexec_rtc_r); DECLARE_DRIVER_INIT(osbexec); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(osbexec); TIMER_CALLBACK_MEMBER(osbexec_video_callback); DECLARE_READ8_MEMBER(osbexec_pia0_a_r); DECLARE_WRITE8_MEMBER(osbexec_pia0_a_w); @@ -307,11 +307,11 @@ static INPUT_PORTS_START( osbexec ) INPUT_PORTS_END -void osbexec_state::palette_init() +PALETTE_INIT_MEMBER(osbexec_state, osbexec) { - palette_set_color_rgb( machine(), 0, 0, 0, 0 ); /* Black */ - palette_set_color_rgb( machine(), 1, 0, 255, 0 ); /* Full */ - palette_set_color_rgb( machine(), 2, 0, 128, 0 ); /* Dimmed */ + palette.set_pen_color( 0, 0, 0, 0 ); /* Black */ + palette.set_pen_color( 1, 0, 255, 0 ); /* Full */ + palette.set_pen_color( 2, 0, 128, 0 ); /* Dimmed */ } void osbexec_state::video_start() @@ -611,7 +611,8 @@ static MACHINE_CONFIG_START( osbexec, osbexec_state ) MCFG_SCREEN_UPDATE_DRIVER(osbexec_state, screen_update) MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK/2, 768, 0, 640, 260, 0, 240 ) /* May not be correct */ - MCFG_PALETTE_LENGTH( 3 ) + MCFG_PALETTE_ADD( "palette", 3 ) + MCFG_PALETTE_INIT_OWNER(osbexec_state, osbexec) MCFG_SPEAKER_STANDARD_MONO( "mono" ) MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) diff --git a/src/mess/drivers/osborne1.c b/src/mess/drivers/osborne1.c index dd1bb6a8436..ce73cd56640 100644 --- a/src/mess/drivers/osborne1.c +++ b/src/mess/drivers/osborne1.c @@ -142,11 +142,11 @@ static INPUT_PORTS_START( osborne1 ) INPUT_PORTS_END -void osborne1_state::palette_init() +PALETTE_INIT_MEMBER(osborne1_state, osborne1) { - palette_set_color_rgb( machine(), 0, 0, 0, 0 ); /* Black */ - palette_set_color_rgb( machine(), 1, 0, 255, 0 ); /* Full */ - palette_set_color_rgb( machine(), 2, 0, 128, 0 ); /* Dimmed */ + palette.set_pen_color( 0, 0, 0, 0 ); /* Black */ + palette.set_pen_color( 1, 0, 255, 0 ); /* Full */ + palette.set_pen_color( 2, 0, 128, 0 ); /* Dimmed */ } @@ -243,7 +243,8 @@ static MACHINE_CONFIG_START( osborne1, osborne1_state ) MCFG_SCREEN_UPDATE_DRIVER(osborne1_state, screen_update) MCFG_SCREEN_RAW_PARAMS( MAIN_CLOCK/2, 512, 0, 416, 260, 0, 240 ) MCFG_GFXDECODE_ADD("gfxdecode", osborne1) - MCFG_PALETTE_LENGTH( 3 ) + MCFG_PALETTE_ADD( "palette", 3 ) + MCFG_PALETTE_INIT_OWNER(osborne1_state, osborne1) MCFG_SPEAKER_STANDARD_MONO( "mono" ) MCFG_SOUND_ADD( "beeper", BEEP, 0 ) diff --git a/src/mess/drivers/p112.c b/src/mess/drivers/p112.c index f5d0635cdc8..fa744747a8f 100644 --- a/src/mess/drivers/p112.c +++ b/src/mess/drivers/p112.c @@ -95,8 +95,7 @@ static MACHINE_CONFIG_START( p112, p112_state ) MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1) MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/p2000t.c b/src/mess/drivers/p2000t.c index c4b9f48fdb5..f6d99182931 100644 --- a/src/mess/drivers/p2000t.c +++ b/src/mess/drivers/p2000t.c @@ -76,10 +76,10 @@ static const gfx_layout p2000m_charlayout = PALETTE_INIT_MEMBER(p2000t_state,p2000m) { - palette_set_color(machine(),0,rgb_t::white); /* white */ - palette_set_color(machine(),1,rgb_t::black); /* black */ - palette_set_color(machine(),2,rgb_t::black); /* black */ - palette_set_color(machine(),3,rgb_t::white); /* white */ + palette.set_pen_color(0,rgb_t::white); /* white */ + palette.set_pen_color(1,rgb_t::black); /* black */ + palette.set_pen_color(2,rgb_t::black); /* black */ + palette.set_pen_color(3,rgb_t::white); /* white */ } static GFXDECODE_START( p2000m ) @@ -260,9 +260,9 @@ static MACHINE_CONFIG_START( p2000m, p2000t_state ) MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1) MCFG_VIDEO_START_OVERRIDE(p2000t_state,p2000m) MCFG_SCREEN_UPDATE_DRIVER(p2000t_state, screen_update_p2000m) - MCFG_GFXDECODE_ADD("gfxdecode", p2000m ) - MCFG_PALETTE_LENGTH(4) - MCFG_PALETTE_INIT_OVERRIDE(p2000t_state,p2000m) + MCFG_GFXDECODE_ADD("gfxdecode", p2000m ) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(p2000t_state,p2000m) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/palm.c b/src/mess/drivers/palm.c index a3d9f6739cd..c6eef79abf5 100644 --- a/src/mess/drivers/palm.c +++ b/src/mess/drivers/palm.c @@ -156,8 +156,8 @@ void palm_state::machine_reset() /* THIS IS PRETTY MUCH TOTALLY WRONG AND DOESN'T REFLECT THE MC68328'S INTERNAL FUNCTIONALITY AT ALL! */ PALETTE_INIT_MEMBER(palm_state, palm) { - palette_set_color_rgb(machine(), 0, 0x7b, 0x8c, 0x5a); - palette_set_color_rgb(machine(), 1, 0x00, 0x00, 0x00); + palette.set_pen_color(0, 0x7b, 0x8c, 0x5a); + palette.set_pen_color(1, 0x00, 0x00, 0x00); } @@ -234,8 +234,8 @@ static MACHINE_CONFIG_START( palm, palm_state ) MCFG_SCREEN_SIZE( 160, 220 ) MCFG_SCREEN_VISIBLE_AREA( 0, 159, 0, 219 ) MCFG_SCREEN_UPDATE_DEVICE(MC68328_TAG, mc68328_device, screen_update) - MCFG_PALETTE_LENGTH( 2 ) - MCFG_PALETTE_INIT_OVERRIDE(palm_state, palm) + MCFG_PALETTE_ADD( "palette", 2 ) + MCFG_PALETTE_INIT_OWNER(palm_state, palm) MCFG_DEFAULT_LAYOUT(layout_lcd) /* audio hardware */ diff --git a/src/mess/drivers/palmz22.c b/src/mess/drivers/palmz22.c index 0fbe1e57948..8c4cfa77239 100644 --- a/src/mess/drivers/palmz22.c +++ b/src/mess/drivers/palmz22.c @@ -303,7 +303,7 @@ static MACHINE_CONFIG_START( palmz22, palmz22_state ) MCFG_CPU_ADD("maincpu", ARM920T, 266000000) MCFG_CPU_PROGRAM_MAP(palmz22_map) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_REFRESH_RATE(60) @@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( palmz22, palmz22_state ) MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update) - MCFG_S3C2410_ADD("s3c2410", 12000000, palmz22_s3c2410_intf) + MCFG_S3C2410_ADD("s3c2410", 12000000, palmz22_s3c2410_intf, "palette") MCFG_NAND_ADD("nand", palmz22_nand_intf) MACHINE_CONFIG_END diff --git a/src/mess/drivers/partner.c b/src/mess/drivers/partner.c index 7097d7b6eef..855f63f9702 100644 --- a/src/mess/drivers/partner.c +++ b/src/mess/drivers/partner.c @@ -208,8 +208,8 @@ static MACHINE_CONFIG_START( partner, partner_state ) MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) MCFG_GFXDECODE_ADD("gfxdecode", partner) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(partner_state,radio86) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(partner_state,radio86) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") diff --git a/src/mess/drivers/paso1600.c b/src/mess/drivers/paso1600.c index 54a62d5c498..43419bb255d 100644 --- a/src/mess/drivers/paso1600.c +++ b/src/mess/drivers/paso1600.c @@ -115,7 +115,7 @@ UINT32 paso1600_state::screen_update_paso1600(screen_device &screen, bitmap_ind1 int pen = (m_p_gvram[count] >> xi) & 1; if(y < 475 && x*16+xi < 640) /* TODO: safety check */ - bitmap.pix16(y, x*16+xi) = machine().pens[pen]; + bitmap.pix16(y, x*16+xi) = m_palette->pen(pen); } count++; @@ -144,7 +144,7 @@ UINT32 paso1600_state::screen_update_paso1600(screen_device &screen, bitmap_ind1 if(pen != -1) if(y*19 < 475 && x*8+xi < 640) /* TODO: safety check */ - bitmap.pix16(y*19+yi, x*8+xi) = machine().pens[pen]; + bitmap.pix16(y*19+yi, x*8+xi) = m_palette->pen(pen); } } } @@ -160,7 +160,7 @@ UINT32 paso1600_state::screen_update_paso1600(screen_device &screen, bitmap_ind1 { x = mc6845_cursor_addr % mc6845_h_display; y = mc6845_cursor_addr / mc6845_h_display; - bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = machine().pens[7]; + bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = m_palette->pen(7); } } } @@ -351,8 +351,8 @@ static MACHINE_CONFIG_START( paso1600, paso1600_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600) MCFG_GFXDECODE_ADD("gfxdecode", paso1600) - MCFG_PALETTE_LENGTH(8) -// MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD("palette", 8) +// MCFG_PALETTE_INIT(black_and_white) /* Devices */ MCFG_MC6845_ADD("crtc", H46505, "screen", 16000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ diff --git a/src/mess/drivers/pasogo.c b/src/mess/drivers/pasogo.c index 07895abb85b..cdcf270781b 100644 --- a/src/mess/drivers/pasogo.c +++ b/src/mess/drivers/pasogo.c @@ -172,7 +172,7 @@ public: ems_t m_ems; DECLARE_DRIVER_INIT(pasogo); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pasogo); UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(pasogo_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(vg230_timer); @@ -598,13 +598,13 @@ static const unsigned char pasogo_palette[][3] = }; -void pasogo_state::palette_init() +PALETTE_INIT_MEMBER(pasogo_state, pasogo) { int i; for ( i = 0; i < ARRAY_LENGTH(pasogo_palette); i++ ) { - palette_set_color_rgb(machine(), i, pasogo_palette[i][0], pasogo_palette[i][1], pasogo_palette[i][2]); + palette.set_pen_color(i, pasogo_palette[i][0], pasogo_palette[i][1], pasogo_palette[i][2]); } } @@ -979,7 +979,8 @@ static MACHINE_CONFIG_START( pasogo, pasogo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) MCFG_SCREEN_UPDATE_DRIVER(pasogo_state, screen_update_pasogo) - MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pasogo_palette)) + MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(pasogo_palette)) + MCFG_PALETTE_INIT_OWNER(pasogo_state, pasogo) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) diff --git a/src/mess/drivers/pasopia.c b/src/mess/drivers/pasopia.c index 318d99004d1..59cdc0b7f6d 100644 --- a/src/mess/drivers/pasopia.c +++ b/src/mess/drivers/pasopia.c @@ -369,7 +369,7 @@ static MACHINE_CONFIG_START( pasopia, pasopia_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", pasopia) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* Devices */ MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_4MHz/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c index a9c78d6640c..23ce3d4dae1 100644 --- a/src/mess/drivers/pasopia7.c +++ b/src/mess/drivers/pasopia7.c @@ -160,7 +160,7 @@ void pasopia7_state::draw_cg4_screen(bitmap_ind16 &bitmap,const rectangle &clipr color = pen_g<<2 | pen_r<<1 | pen_b<<0; - bitmap.pix16(y+yi, x+xi) = machine().pens[color]; + bitmap.pix16(y+yi, x+xi) = m_palette->pen(color); } count+=8; } @@ -192,7 +192,7 @@ void pasopia7_state::draw_tv_screen(bitmap_ind16 &bitmap,const rectangle &clipre int pen; pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? color : 0; - bitmap.pix16(y*8+yi, x*8+xi) = machine().pens[pen]; + bitmap.pix16(y*8+yi, x*8+xi) = m_palette->pen(pen); } } @@ -216,7 +216,7 @@ void pasopia7_state::draw_tv_screen(bitmap_ind16 &bitmap,const rectangle &clipre { for(xc=0;xc<8;xc++) { - bitmap.pix16(y*8-yc+7, x*8+xc) = machine().pens[7]; + bitmap.pix16(y*8-yc+7, x*8+xc) = m_palette->pen(7); } } } @@ -257,7 +257,7 @@ void pasopia7_state::draw_mixed_screen(bitmap_ind16 &bitmap,const rectangle &cli pen = pen_g<<2 | pen_r<<1 | pen_b<<0; - bitmap.pix16(y*8+yi, x*8+xi) = machine().pens[pen]; + bitmap.pix16(y*8+yi, x*8+xi) = m_palette->pen(pen); } } else @@ -269,7 +269,7 @@ void pasopia7_state::draw_mixed_screen(bitmap_ind16 &bitmap,const rectangle &cli int pen; pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? color : 0; - bitmap.pix16(y*8+yi, x*8+xi) = machine().pens[pen]; + bitmap.pix16(y*8+yi, x*8+xi) = m_palette->pen(pen); } } } @@ -294,7 +294,7 @@ void pasopia7_state::draw_mixed_screen(bitmap_ind16 &bitmap,const rectangle &cli { for(xc=0;xc<8;xc++) { - bitmap.pix16(y*8-yc+7, x*8+xc) = machine().pens[7]; + bitmap.pix16(y*8-yc+7, x*8+xc) = m_palette->pen(7); } } } @@ -309,7 +309,7 @@ UINT32 pasopia7_state::screen_update_pasopia7(screen_device &screen, bitmap_ind1 { int width; - bitmap.fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); width = m_x_width ? 80 : 40; @@ -956,7 +956,7 @@ PALETTE_INIT_MEMBER(pasopia7_state,p7_raster) int i; for( i = 0; i < 8; i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); } /* TODO: palette values are mostly likely to be wrong in there */ @@ -964,10 +964,10 @@ PALETTE_INIT_MEMBER(pasopia7_state,p7_lcd) { int i; - palette_set_color_rgb(machine(), 0, 0xa0, 0xa8, 0xa0); + palette.set_pen_color(0, 0xa0, 0xa8, 0xa0); for( i = 1; i < 8; i++) - palette_set_color_rgb(machine(), i, 0x30, 0x38, 0x10); + palette.set_pen_color(i, 0x30, 0x38, 0x10); } void pasopia7_state::fdc_irq(bool state) @@ -1015,9 +1015,9 @@ static MACHINE_CONFIG_DERIVED( p7_raster, p7_base ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1) MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_raster) - MCFG_GFXDECODE_ADD("gfxdecode", pasopia7 ) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(pasopia7_state,p7_raster) + MCFG_GFXDECODE_ADD("gfxdecode", pasopia7 ) MCFG_MC6845_ADD("crtc", H46505, "screen", VDP_CLOCK, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ MACHINE_CONFIG_END @@ -1031,9 +1031,9 @@ static MACHINE_CONFIG_DERIVED( p7_lcd, p7_base ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_lcd) - MCFG_GFXDECODE_ADD("gfxdecode", pasopia7 ) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(pasopia7_state,p7_lcd) + MCFG_GFXDECODE_ADD("gfxdecode", pasopia7 ) MCFG_MC6845_ADD("crtc", H46505, "screen", LCD_CLOCK, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ MCFG_DEFAULT_LAYOUT( layout_lcd ) diff --git a/src/mess/drivers/pb1000.c b/src/mess/drivers/pb1000.c index 1cbc5c24aa5..7ba27db5b46 100644 --- a/src/mess/drivers/pb1000.c +++ b/src/mess/drivers/pb1000.c @@ -52,7 +52,7 @@ public: UINT16 pb1000_kb_r(running_machine &machine); void kb_matrix_w(running_machine &machine, UINT8 matrix); UINT16 read_touchscreen(running_machine &machine, UINT8 line); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pb1000); TIMER_CALLBACK_MEMBER(keyboard_timer); }; @@ -280,10 +280,10 @@ static INPUT_PORTS_START( pb2000c ) PORT_BIT(0xffff, IP_ACTIVE_HIGH, IPT_UNUSED) INPUT_PORTS_END -void pb1000_state::palette_init() +PALETTE_INIT_MEMBER(pb1000_state, pb1000) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } @@ -519,8 +519,9 @@ static MACHINE_CONFIG_START( pb1000, pb1000_state ) MCFG_SCREEN_SIZE(192, 32) MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 32-1) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) - MCFG_GFXDECODE_ADD("gfxdecode", pb1000 ) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(pb1000_state, pb1000) + MCFG_GFXDECODE_ADD("gfxdecode", pb1000 ) MCFG_HD44352_ADD("hd44352", 910000, hd44352_pb1000_conf) diff --git a/src/mess/drivers/pc.c b/src/mess/drivers/pc.c index 8952e08a195..f78b916c662 100644 --- a/src/mess/drivers/pc.c +++ b/src/mess/drivers/pc.c @@ -837,6 +837,7 @@ static MACHINE_CONFIG_START( pccga, pc_state ) MCFG_RS232_CTS_HANDLER(DEVWRITELINE("ins8250_1", ins8250_uart_device, cts_w)) MCFG_FRAGMENT_ADD( pcvideo_cga ) + MCFG_GFXDECODE_ADD("gfxdecode", ibm5150) /* sound hardware */ @@ -961,6 +962,7 @@ static MACHINE_CONFIG_START( europc, europc_pc_state ) /* video hardware */ MCFG_FRAGMENT_ADD( pcvideo_aga ) + MCFG_GFXDECODE_ADD("gfxdecode", europc) /* sound hardware */ @@ -1045,6 +1047,7 @@ static MACHINE_CONFIG_START( t1000hx, tandy_pc_state ) /* video hardware */ MCFG_PCVIDEO_T1000_ADD("pcvideo_t1000") + MCFG_GFXDECODE_ADD("gfxdecode", t1000) /* sound hardware */ @@ -1120,6 +1123,7 @@ static MACHINE_CONFIG_START( t1000_16, tandy_pc_state ) /* video hardware */ MCFG_PCVIDEO_T1000_ADD("pcvideo_t1000") + MCFG_GFXDECODE_ADD("gfxdecode", t1000) /* sound hardware */ @@ -1196,6 +1200,7 @@ static MACHINE_CONFIG_START( t1000_286, tandy_pc_state ) /* video hardware */ MCFG_PCVIDEO_T1000_ADD("pcvideo_t1000") + MCFG_GFXDECODE_ADD("gfxdecode", t1000) /* sound hardware */ @@ -1281,6 +1286,7 @@ static MACHINE_CONFIG_START( ibmpcjr, tandy_pc_state ) /* video hardware */ MCFG_PCVIDEO_PCJR_ADD("pcvideo_pcjr") + MCFG_GFXDECODE_ADD("gfxdecode", ibmpcjr) /* sound hardware */ @@ -1372,6 +1378,7 @@ static MACHINE_CONFIG_START( asst128, pc_state ) /* video hardware */ MCFG_FRAGMENT_ADD( pcvideo_mc1502 ) + MCFG_GFXDECODE_ADD("gfxdecode", ibmpcjr) /* sound hardware */ @@ -1527,6 +1534,7 @@ static MACHINE_CONFIG_START( poisk2, pc_state ) /* video hardware */ MCFG_FRAGMENT_ADD( pcvideo_poisk2 ) + MCFG_GFXDECODE_ADD("gfxdecode", ibm5150) /* sound hardware */ @@ -1596,6 +1604,7 @@ static MACHINE_CONFIG_START( zenith, pc_state ) /* video hardware */ MCFG_FRAGMENT_ADD( pcvideo_cga ) + MCFG_GFXDECODE_ADD("gfxdecode", ibm5150) /* sound hardware */ @@ -1665,6 +1674,7 @@ static MACHINE_CONFIG_START( olivetti, pc_state ) /* video hardware */ MCFG_FRAGMENT_ADD( pcvideo_cga ) + MCFG_GFXDECODE_ADD("gfxdecode", ibm5150) /* sound hardware */ @@ -1734,6 +1744,7 @@ static MACHINE_CONFIG_START( ibm5550, pc_state ) /* video hardware */ MCFG_FRAGMENT_ADD( pcvideo_cga ) + MCFG_GFXDECODE_ADD("gfxdecode", ibm5150) /* sound hardware */ diff --git a/src/mess/drivers/pc100.c b/src/mess/drivers/pc100.c index 15a08b73736..e66545ef6ec 100644 --- a/src/mess/drivers/pc100.c +++ b/src/mess/drivers/pc100.c @@ -164,7 +164,7 @@ UINT32 pc100_state::screen_update_pc100(screen_device &screen, bitmap_ind16 &bit dot |= pen[pen_i]<pen(dot); } count++; @@ -254,7 +254,7 @@ WRITE16_MEMBER( pc100_state::pc100_paletteram_w ) g = (m_palram[offset] >> 3) & 7; b = (m_palram[offset] >> 6) & 7; - palette_set_color_rgb(machine(), offset, pal3bit(r),pal3bit(g),pal3bit(b)); + m_palette->set_pen_color(offset, pal3bit(r),pal3bit(g),pal3bit(b)); } } @@ -532,8 +532,8 @@ static MACHINE_CONFIG_START( pc100, pc100_state ) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512) MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100) MCFG_GFXDECODE_ADD("gfxdecode", pc100) - MCFG_PALETTE_LENGTH(16) -// MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD("palette", 16) +// MCFG_PALETTE_INIT(black_and_white) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/pc1500.c b/src/mess/drivers/pc1500.c index 819e8ead110..8c84a58ef1a 100644 --- a/src/mess/drivers/pc1500.c +++ b/src/mess/drivers/pc1500.c @@ -43,7 +43,7 @@ public: DECLARE_WRITE8_MEMBER( port_c_w ); DECLARE_READ8_MEMBER( pc1500_kb_r ); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pc1500); }; static ADDRESS_MAP_START( pc1500_mem , AS_PROGRAM, 8, pc1500_state) @@ -258,10 +258,10 @@ READ8_MEMBER( pc1500_state::port_a_r ) return 0xff; } -void pc1500_state::palette_init() +PALETTE_INIT_MEMBER(pc1500_state, pc1500) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static const lh5810_interface lh5810_pc1500_config = @@ -287,7 +287,8 @@ static MACHINE_CONFIG_START( pc1500, pc1500_state ) MCFG_SCREEN_SIZE(156, 8) MCFG_SCREEN_VISIBLE_AREA(0, 156-1, 0, 7-1) MCFG_DEFAULT_LAYOUT(layout_pc1500) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(pc1500_state, pc1500) MCFG_LH5810_ADD("lh5810", lh5810_pc1500_config) diff --git a/src/mess/drivers/pc2000.c b/src/mess/drivers/pc2000.c index dd0166f2193..7522f33b338 100644 --- a/src/mess/drivers/pc2000.c +++ b/src/mess/drivers/pc2000.c @@ -58,7 +58,7 @@ public: DECLARE_WRITE8_MEMBER( rombank2_w ); DECLARE_READ8_MEMBER( beep_r ); DECLARE_WRITE8_MEMBER( beep_w ); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pc2000); }; class gl3000s_state : public pc2000_state @@ -803,10 +803,10 @@ void pc1000_state::machine_reset() m_bank1->set_entry(0); } -void pc2000_state::palette_init() +PALETTE_INIT_MEMBER(pc2000_state, pc2000) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static const gfx_layout hd44780_charlayout = @@ -842,7 +842,8 @@ static MACHINE_CONFIG_START( pc2000, pc2000_state ) MCFG_SCREEN_SIZE(120, 18) //2x20 chars MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 18-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(pc2000_state, pc2000) MCFG_GFXDECODE_ADD("gfxdecode", pc2000) MCFG_DEFAULT_LAYOUT(layout_lcd) diff --git a/src/mess/drivers/pc4.c b/src/mess/drivers/pc4.c index a9d9b683701..b1669919ad7 100644 --- a/src/mess/drivers/pc4.c +++ b/src/mess/drivers/pc4.c @@ -161,10 +161,10 @@ static INPUT_PORTS_START( pc4 ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_UNUSED INPUT_PORTS_END -void pc4_state::palette_init() +PALETTE_INIT_MEMBER(pc4_state, pc4) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static const gfx_layout pc4_charlayout = @@ -230,7 +230,8 @@ static MACHINE_CONFIG_START( pc4, pc4_state ) MCFG_SCREEN_SIZE(240, 36) MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 36-1) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(pc4_state, pc4) MCFG_GFXDECODE_ADD("gfxdecode", pc4) /* sound hardware */ diff --git a/src/mess/drivers/pc6001.c b/src/mess/drivers/pc6001.c index 53225f5c27e..b318707d3b2 100644 --- a/src/mess/drivers/pc6001.c +++ b/src/mess/drivers/pc6001.c @@ -247,7 +247,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pc6001); DECLARE_MACHINE_RESET(pc6001m2); DECLARE_PALETTE_INIT(pc6001m2); DECLARE_MACHINE_RESET(pc6001sr); @@ -362,7 +362,7 @@ void pc6001_state::draw_gfx_mode4(bitmap_ind16 &bitmap,const rectangle &cliprect color = ((tile)>>(7-xi) & 1) ? fgcol : 0; - bitmap.pix16((y+24), (x*8+xi)+32) = machine().pens[color]; + bitmap.pix16((y+24), (x*8+xi)+32) = m_palette->pen(color); } } else @@ -373,8 +373,8 @@ void pc6001_state::draw_gfx_mode4(bitmap_ind16 &bitmap,const rectangle &cliprect color = (attr & 2) ? (pen_wattr[col_setting-1][fgcol]) : (pen_gattr[col_setting-1][fgcol]); - bitmap.pix16((y+24), ((x*8+xi*2)+0)+32) = machine().pens[color]; - bitmap.pix16((y+24), ((x*8+xi*2)+1)+32) = machine().pens[color]; + bitmap.pix16((y+24), ((x*8+xi*2)+0)+32) = m_palette->pen(color); + bitmap.pix16((y+24), ((x*8+xi*2)+1)+32) = m_palette->pen(color); } } } @@ -407,7 +407,7 @@ void pc6001_state::draw_bitmap_2bpp(bitmap_ind16 &bitmap,const rectangle &clipre color = ((tile >> i) & 3)+8; color+= col_bank; - bitmap.pix16(((y*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = machine().pens[color]; + bitmap.pix16(((y*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = m_palette->pen(color); } } } @@ -430,9 +430,9 @@ void pc6001_state::draw_bitmap_2bpp(bitmap_ind16 &bitmap,const rectangle &clipre color = ((tile >> i) & 3)+8; color+= col_bank; - bitmap.pix16((((y+0)*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = machine().pens[color]; - bitmap.pix16((((y+1)*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = machine().pens[color]; - bitmap.pix16((((y+2)*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = machine().pens[color]; + bitmap.pix16((((y+0)*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = m_palette->pen(color); + bitmap.pix16((((y+1)*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = m_palette->pen(color); + bitmap.pix16((((y+2)*shrink_y+yi)+24), (x*shrink_x+((shrink_x-1)-xi))+32) = m_palette->pen(color); } } } @@ -467,7 +467,7 @@ void pc6001_state::draw_tile_3bpp(bitmap_ind16 &bitmap,const rectangle &cliprect color = ((tile >> i) & 1) ? pen+8 : 0; - bitmap.pix16(((y*12+(11-yi))+24), (x*8+(7-xi))+32) = machine().pens[color]; + bitmap.pix16(((y*12+(11-yi))+24), (x*8+(7-xi))+32) = m_palette->pen(color); } } } @@ -503,7 +503,7 @@ void pc6001_state::draw_tile_text(bitmap_ind16 &bitmap,const rectangle &cliprect color = pen ? fgcol : 0; } - bitmap.pix16(((y*12+yi)+24), (x*8+xi)+32) = machine().pens[color]; + bitmap.pix16(((y*12+yi)+24), (x*8+xi)+32) = m_palette->pen(color); } } } @@ -525,7 +525,7 @@ void pc6001_state::draw_border(bitmap_ind16 &bitmap,const rectangle &cliprect,in else color = 0; //FIXME: other modes not yet checked - bitmap.pix16(y, x) = machine().pens[color]; + bitmap.pix16(y, x) = m_palette->pen(color); } } } @@ -617,9 +617,9 @@ UINT32 pc6001_state::screen_update_pc6001m2(screen_device &screen, bitmap_ind16 color |= ((pen[1] & 2) << 2); if (cliprect.contains((x+i)*2+0, y)) - bitmap.pix16(y, (x+i)*2+0) = machine().pens[color]; + bitmap.pix16(y, (x+i)*2+0) = m_palette->pen(color); if (cliprect.contains((x+i)*2+1, y)) - bitmap.pix16(y, (x+i)*2+1) = machine().pens[color]; + bitmap.pix16(y, (x+i)*2+1) = m_palette->pen(color); } count++; @@ -665,7 +665,7 @@ UINT32 pc6001_state::screen_update_pc6001m2(screen_device &screen, bitmap_ind16 } if (cliprect.contains(x+i, y)) - bitmap.pix16(y, (x+i)) = machine().pens[color]; + bitmap.pix16(y, (x+i)) = m_palette->pen(color); } count++; @@ -705,7 +705,7 @@ UINT32 pc6001_state::screen_update_pc6001m2(screen_device &screen, bitmap_ind16 color = pen ? fgcol : bgcol; if (cliprect.contains(x*8+xi, y*12+yi)) - bitmap.pix16(((y*12+yi)), (x*8+xi)) = machine().pens[color]; + bitmap.pix16(((y*12+yi)), (x*8+xi)) = m_palette->pen(color); } } } @@ -749,7 +749,7 @@ UINT32 pc6001_state::screen_update_pc6001sr(screen_device &screen, bitmap_ind16 color = pen ? fgcol : bgcol; if (cliprect.contains(x*8+xi, y*12+yi)) - bitmap.pix16(((y*12+yi)), (x*8+xi)) = machine().pens[color]; + bitmap.pix16(((y*12+yi)), (x*8+xi)) = m_palette->pen(color); } } } @@ -768,42 +768,42 @@ UINT32 pc6001_state::screen_update_pc6001sr(screen_device &screen, bitmap_ind16 color = m_video_ram[count] & 0x0f; if (cliprect.contains(x+0, y+0)) - bitmap.pix16((y+0), (x+0)) = machine().pens[color+0x10]; + bitmap.pix16((y+0), (x+0)) = m_palette->pen(color+0x10); color = (m_video_ram[count] & 0xf0) >> 4; if (cliprect.contains(x+1, y+0)) - bitmap.pix16((y+0), (x+1)) = machine().pens[color+0x10]; + bitmap.pix16((y+0), (x+1)) = m_palette->pen(color+0x10); color = m_video_ram[count+1] & 0x0f; if (cliprect.contains(x+2, y+0)) - bitmap.pix16((y+0), (x+2)) = machine().pens[color+0x10]; + bitmap.pix16((y+0), (x+2)) = m_palette->pen(color+0x10); color = (m_video_ram[count+1] & 0xf0) >> 4; if (cliprect.contains(x+3, y+0)) - bitmap.pix16((y+0), (x+3)) = machine().pens[color+0x10]; + bitmap.pix16((y+0), (x+3)) = m_palette->pen(color+0x10); color = m_video_ram[count+2] & 0x0f; if (cliprect.contains(x+0, y+1)) - bitmap.pix16((y+1), (x+0)) = machine().pens[color+0x10]; + bitmap.pix16((y+1), (x+0)) = m_palette->pen(color+0x10); color = (m_video_ram[count+2] & 0xf0) >> 4; if (cliprect.contains(x+1, y+1)) - bitmap.pix16((y+1), (x+1)) = machine().pens[color+0x10]; + bitmap.pix16((y+1), (x+1)) = m_palette->pen(color+0x10); color = m_video_ram[count+3] & 0x0f; if (cliprect.contains(x+2, y+1)) - bitmap.pix16((y+1), (x+2)) = machine().pens[color+0x10]; + bitmap.pix16((y+1), (x+2)) = m_palette->pen(color+0x10); color = (m_video_ram[count+3] & 0xf0) >> 4; if (cliprect.contains(x+3, y+1)) - bitmap.pix16((y+1), (x+3)) = machine().pens[color+0x10]; + bitmap.pix16((y+1), (x+3)) = m_palette->pen(color+0x10); count+=4; @@ -2229,12 +2229,12 @@ static const rgb_t mk2_defcolors[] = rgb_t(0xff, 0xff, 0xff) /* WHITE */ }; -void pc6001_state::palette_init() +PALETTE_INIT_MEMBER(pc6001_state, pc6001) { int i; for(i=0;i<8+4;i++) - palette_set_color(machine(), i+8,defcolors[i]); + palette.set_pen_color(i+8,defcolors[i]); } PALETTE_INIT_MEMBER(pc6001_state,pc6001m2) @@ -2242,10 +2242,10 @@ PALETTE_INIT_MEMBER(pc6001_state,pc6001m2) int i; for(i=0;i<8;i++) - palette_set_color(machine(), i+8,defcolors[i]); + palette.set_pen_color(i+8,defcolors[i]); for(i=0x10;i<0x20;i++) - palette_set_color(machine(), i,mk2_defcolors[i-0x10]); + palette.set_pen_color(i,mk2_defcolors[i-0x10]); } #if 0 @@ -2329,7 +2329,8 @@ static MACHINE_CONFIG_START( pc6001, pc6001_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_PALETTE_LENGTH(16+4) + MCFG_PALETTE_ADD("palette", 16+4) + MCFG_PALETTE_INIT_OWNER(pc6001_state, pc6001) MCFG_I8255_ADD( "ppi8255", pc6001_ppi8255_interface ) /* uart */ @@ -2366,8 +2367,10 @@ static MACHINE_CONFIG_DERIVED( pc6001m2, pc6001 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001m2) - MCFG_PALETTE_LENGTH(16+16) - MCFG_PALETTE_INIT_OVERRIDE(pc6001_state,pc6001m2) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16+16) + MCFG_PALETTE_INIT_OWNER(pc6001_state,pc6001m2) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") diff --git a/src/mess/drivers/pc8001.c b/src/mess/drivers/pc8001.c index eeb44ddcdcf..11f235882a8 100644 --- a/src/mess/drivers/pc8001.c +++ b/src/mess/drivers/pc8001.c @@ -352,7 +352,7 @@ INPUT_PORTS_END /* uPD3301 Interface */ -static const rgb_t PALETTE[] = +static const rgb_t PALETTE_PC8001[] = { rgb_t::black, rgb_t(0x00, 0x00, 0xff), @@ -380,7 +380,7 @@ static UPD3301_DISPLAY_PIXELS( pc8001_display_pixels ) { int color = BIT(data, 7) ^ rvv; - bitmap.pix32(y, (sx * 8) + i) = PALETTE[color ? 7 : 0]; + bitmap.pix32(y, (sx * 8) + i) = PALETTE_PC8001[color ? 7 : 0]; data <<= 1; } @@ -393,8 +393,8 @@ static UPD3301_DISPLAY_PIXELS( pc8001_display_pixels ) { int color = BIT(data, 7) ^ rvv; - bitmap.pix32(y, (sx/2 * 16) + (i * 2)) = PALETTE[color ? 7 : 0]; - bitmap.pix32(y, (sx/2 * 16) + (i * 2) + 1) = PALETTE[color ? 7 : 0]; + bitmap.pix32(y, (sx/2 * 16) + (i * 2)) = PALETTE_PC8001[color ? 7 : 0]; + bitmap.pix32(y, (sx/2 * 16) + (i * 2) + 1) = PALETTE_PC8001[color ? 7 : 0]; data <<= 1; } diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index 4d0ea411bdf..664109e2829 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -468,13 +468,12 @@ public: void fdc_irq_w(bool state); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - + DECLARE_PALETTE_INIT(pc8801); protected: virtual void video_start(); virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); public: DECLARE_MACHINE_RESET(pc8801_clock_speed); DECLARE_MACHINE_RESET(pc8801_dic); @@ -567,15 +566,15 @@ void pc8801_state::draw_bitmap_3bpp(bitmap_ind16 &bitmap,const rectangle &clipre if(y_double) { if(cliprect.contains(x+xi, y+0)) - bitmap.pix16(y+0, x+xi) = machine().pens[pen & 7]; + bitmap.pix16(y+0, x+xi) = m_palette->pen(pen & 7); if(cliprect.contains(x+xi, y+1)) - bitmap.pix16(y+1, x+xi) = machine().pens[pen & 7]; + bitmap.pix16(y+1, x+xi) = m_palette->pen(pen & 7); } else { if(cliprect.contains(x+xi, y+0)) - bitmap.pix16(y, x+xi) = machine().pens[pen & 7]; + bitmap.pix16(y, x+xi) = m_palette->pen(pen & 7); } } @@ -613,15 +612,15 @@ void pc8801_state::draw_bitmap_1bpp(bitmap_ind16 &bitmap,const rectangle &clipre if((m_gfx_ctrl & 1)) { if(cliprect.contains(x+xi, y*2+0)) - bitmap.pix16(y*2+0, x+xi) = machine().pens[pen ? color : 0]; + bitmap.pix16(y*2+0, x+xi) = m_palette->pen(pen ? color : 0); if(cliprect.contains(x+xi, y*2+1)) - bitmap.pix16(y*2+1, x+xi) = machine().pens[pen ? color : 0]; + bitmap.pix16(y*2+1, x+xi) = m_palette->pen(pen ? color : 0); } else { if(cliprect.contains(x+xi, y)) - bitmap.pix16(y, x+xi) = machine().pens[pen ? color : 0]; + bitmap.pix16(y, x+xi) = m_palette->pen(pen ? color : 0); } } @@ -649,7 +648,7 @@ void pc8801_state::draw_bitmap_1bpp(bitmap_ind16 &bitmap,const rectangle &clipre pen^=1; if(cliprect.contains(x+xi, y)) - bitmap.pix16(y, x+xi) = machine().pens[pen ? 7 : 0]; + bitmap.pix16(y, x+xi) = m_palette->pen(pen ? 7 : 0); } count++; @@ -794,13 +793,13 @@ void pc8801_state::pc8801_draw_char(bitmap_ind16 &bitmap,int x,int y,int pal,UIN if(color != -1) { - bitmap.pix16(res_y, res_x) = machine().pens[color]; + bitmap.pix16(res_y, res_x) = m_palette->pen(color); if(width) { if(!machine().primary_screen->visible_area().contains(res_x+1, res_y)) continue; - bitmap.pix16(res_y, res_x+1) = machine().pens[color]; + bitmap.pix16(res_y, res_x+1) = m_palette->pen(color); } } } @@ -865,7 +864,7 @@ void pc8801_state::draw_text(bitmap_ind16 &bitmap,int y_size, UINT8 width) UINT32 pc8801_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); // popmessage("%04x %04x %02x",m_dma_address[2],m_dma_counter[2],m_dmac_mode); @@ -1424,7 +1423,7 @@ WRITE8_MEMBER(pc8801_state::pc8801_palram_w) m_palram[offset].g = data & 4 ? 7 : 0; } - palette_set_color_rgb(machine(), offset, pal3bit(m_palram[offset].r), pal3bit(m_palram[offset].g), pal3bit(m_palram[offset].b)); + m_palette->set_pen_color(offset, pal3bit(m_palram[offset].r), pal3bit(m_palram[offset].g), pal3bit(m_palram[offset].b)); } WRITE8_MEMBER(pc8801_state::pc8801_layer_masking_w) @@ -2511,7 +2510,7 @@ void pc8801_state::machine_reset() int i; for(i=0;i<0x10;i++) //text + bitmap - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + m_palette->set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); } m_has_clock_speed = 0; @@ -2554,12 +2553,12 @@ MACHINE_RESET_MEMBER(pc8801_state,pc8801_cdrom) } } -void pc8801_state::palette_init() +PALETTE_INIT_MEMBER(pc8801_state, pc8801) { int i; for(i=0;i<0x10;i++) //text + bitmap - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); } void pc8801_state::fdc_irq_w(bool state) @@ -2669,8 +2668,9 @@ static MACHINE_CONFIG_START( pc8801, pc8801_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK_24KHz,848,0,640,448,0,400) MCFG_SCREEN_UPDATE_DRIVER(pc8801_state, screen_update) - MCFG_GFXDECODE_ADD("gfxdecode", pc8801 ) - MCFG_PALETTE_LENGTH(0x10) + MCFG_GFXDECODE_ADD("gfxdecode", pc8801 ) + MCFG_PALETTE_ADD("palette", 0x10) + MCFG_PALETTE_INIT_OWNER(pc8801_state, pc8801) // MCFG_VIDEO_START_OVERRIDE(pc8801_state,pc8801) diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c index 0ffd89d2b3d..b713e444d85 100644 --- a/src/mess/drivers/pc88va.c +++ b/src/mess/drivers/pc88va.c @@ -251,7 +251,7 @@ void pc88va_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) pen = pen & 1 ? fg_col : (bc) ? 8 : -1; if(pen != -1) //transparent pen - bitmap.pix32(yp+y_i, xp+x_i+(x_s)) = machine().pens[pen]; + bitmap.pix32(yp+y_i, xp+x_i+(x_s)) = m_palette->pen(pen); } spr_count+=2; } @@ -276,7 +276,7 @@ void pc88va_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) pen = (BITSWAP16(tvram[(spda+spr_count) / 2],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8)) >> (16-(x_s*8)) & 0xf; //if(bc != -1) //transparent pen - bitmap.pix32(yp+y_i, xp+x_i+(x_s)) = machine().pens[pen]; + bitmap.pix32(yp+y_i, xp+x_i+(x_s)) = m_palette->pen(pen); } spr_count+=2; } @@ -471,7 +471,7 @@ void pc88va_state::draw_text(bitmap_rgb32 &bitmap, const rectangle &cliprect) if(secret) { pen = 0; } //hide text if(pen != -1) //transparent - bitmap.pix32(res_y, res_x) = machine().pens[pen]; + bitmap.pix32(res_y, res_x) = m_palette->pen(pen); } } @@ -949,7 +949,7 @@ WRITE16_MEMBER(pc88va_state::palette_ram_w) r = (m_palram[offset] & 0x03c0) >> 6; g = (m_palram[offset] & 0x7800) >> 11; - palette_set_color_rgb(machine(),offset,pal4bit(r),pal4bit(g),pal4bit(b)); + m_palette->set_pen_color(offset,pal4bit(r),pal4bit(g),pal4bit(b)); } READ16_MEMBER(pc88va_state::sys_port4_r) @@ -1716,7 +1716,7 @@ void pc88va_state::machine_reset() { UINT8 i; for(i=0;i<32;i++) - palette_set_color_rgb(machine(),i,pal1bit((i & 2) >> 1),pal1bit((i & 4) >> 2),pal1bit(i & 1)); + m_palette->set_pen_color(i,pal1bit((i & 2) >> 1),pal1bit((i & 4) >> 2),pal1bit(i & 1)); } m_tsp.tvram_vreg_offset = 0; @@ -1850,9 +1850,9 @@ static MACHINE_CONFIG_START( pc88va, pc88va_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va) - MCFG_PALETTE_LENGTH(32) -// MCFG_PALETTE_INIT_OVERRIDE(pc88va_state, pc8801 ) - MCFG_GFXDECODE_ADD("gfxdecode", pc88va ) + MCFG_PALETTE_ADD("palette", 32) +// MCFG_PALETTE_INIT_OWNER(pc88va_state, pc8801 ) + MCFG_GFXDECODE_ADD("gfxdecode", pc88va ) MCFG_I8255_ADD( "d8255_2", master_fdd_intf ) MCFG_I8255_ADD( "d8255_3", r232c_ctrl_intf ) diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index dcf28f1cbdd..adcf61d67e5 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -781,7 +781,7 @@ void pc9801_state::video_start() UINT32 pc9801_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); /* graphics */ m_hgdc2->screen_update(screen, bitmap, cliprect); @@ -1462,8 +1462,8 @@ WRITE8_MEMBER(pc9801_state::pc9801_a0_w) pal_entry = (((offset & 4) >> 1) | ((offset & 2) << 1)) >> 1; pal_entry ^= 3; - palette_set_color_rgb(machine(), (pal_entry)|4|8, pal1bit((data & 0x2) >> 1), pal1bit((data & 4) >> 2), pal1bit((data & 1) >> 0)); - palette_set_color_rgb(machine(), (pal_entry)|8, pal1bit((data & 0x20) >> 5), pal1bit((data & 0x40) >> 6), pal1bit((data & 0x10) >> 4)); + m_palette->set_pen_color((pal_entry)|4|8, pal1bit((data & 0x2) >> 1), pal1bit((data & 4) >> 2), pal1bit((data & 1) >> 0)); + m_palette->set_pen_color((pal_entry)|8, pal1bit((data & 0x20) >> 5), pal1bit((data & 0x40) >> 6), pal1bit((data & 0x10) >> 4)); return; } default: @@ -2213,7 +2213,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_a0_w) case 0x0e: m_analog16.b[m_analog16.pal_entry] = data & 0xf; break; } - palette_set_color_rgb(machine(), (m_analog16.pal_entry)+0x10, + m_palette->set_pen_color((m_analog16.pal_entry)+0x10, pal4bit(m_analog16.r[m_analog16.pal_entry]), pal4bit(m_analog16.g[m_analog16.pal_entry]), pal4bit(m_analog16.b[m_analog16.pal_entry])); @@ -2598,7 +2598,7 @@ WRITE8_MEMBER(pc9801_state::pc9821_a0_w) case 0x0e: m_analog256.b[m_analog256.pal_entry] = data & 0xff; break; } - palette_set_color_rgb(machine(), (m_analog256.pal_entry)+0x20, + m_palette->set_pen_color((m_analog256.pal_entry)+0x20, m_analog256.r[m_analog256.pal_entry], m_analog256.g[m_analog256.pal_entry], m_analog256.b[m_analog256.pal_entry]); @@ -3403,9 +3403,9 @@ PALETTE_INIT_MEMBER(pc9801_state,pc9801) int i; for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); - for(i=8;i> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + for(i=8;iset_indirect_color(i, rgb_t(r, g, b)); /* apply decay for next iteration */ cur_level_1 *= decay_1; cur_level_2 *= decay_2; } - colortable_palette_set_color(machine().colortable, 0, rgb_t(0, 0, 0)); + m_palette->set_indirect_color(0, rgb_t(0, 0, 0)); /* load static palette */ for ( i = 0; i < 6; i++ ) { r = pdp1_colors[i*3]; g = pdp1_colors[i*3+1]; b = pdp1_colors[i*3+2]; - colortable_palette_set_color(machine().colortable, pen_crt_num_levels + i, rgb_t(r, g, b)); + m_palette->set_indirect_color(pen_crt_num_levels + i, rgb_t(r, g, b)); } /* copy colortable to palette */ for( i = 0; i < total_colors_needed; i++ ) - colortable_entry_set_value(machine().colortable, i, i); + m_palette->set_pen_indirect(i, i); /* set up palette for text */ for( i = 0; i < 6; i++ ) - colortable_entry_set_value(machine().colortable, total_colors_needed + i, pdp1_palette[i]); + m_palette->set_pen_indirect(total_colors_needed + i, pdp1_palette[i]); } @@ -1964,8 +1962,8 @@ static MACHINE_CONFIG_START( pdp1, pdp1_state ) MCFG_DEVICE_ADD("drum", PDP1_CYLINDER, 0) MCFG_GFXDECODE_ADD("gfxdecode", pdp1) - MCFG_PALETTE_LENGTH(pen_crt_num_levels + sizeof(pdp1_colors) / 3 + sizeof(pdp1_palette)) - + MCFG_PALETTE_ADD("palette", pen_crt_num_levels + sizeof(pdp1_colors) / 3 + sizeof(pdp1_palette)) + MCFG_PALETTE_INIT_OWNER(pdp1_state, pdp1) MACHINE_CONFIG_END /* diff --git a/src/mess/drivers/pegasus.c b/src/mess/drivers/pegasus.c index 762acfb75c0..3357c25e8d1 100644 --- a/src/mess/drivers/pegasus.c +++ b/src/mess/drivers/pegasus.c @@ -478,8 +478,7 @@ static MACHINE_CONFIG_START( pegasus, pegasus_state ) MCFG_SCREEN_SIZE(32*8, 16*16) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 16*16-1) MCFG_GFXDECODE_ADD("gfxdecode", pegasus) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/phunsy.c b/src/mess/drivers/phunsy.c index 5958f95729b..ab41e317263 100644 --- a/src/mess/drivers/phunsy.c +++ b/src/mess/drivers/phunsy.c @@ -57,6 +57,7 @@ public: DECLARE_READ8_MEMBER(cass_r); DECLARE_WRITE_LINE_MEMBER(cass_w); DECLARE_QUICKLOAD_LOAD_MEMBER(phunsy); + DECLARE_PALETTE_INIT(phunsy); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); private: const UINT8 *m_p_chargen; @@ -68,7 +69,6 @@ private: required_device m_speaker; required_device m_cass; required_shared_ptr m_p_videoram; - virtual void palette_init(); }; @@ -199,13 +199,13 @@ void phunsy_state::machine_reset() } -void phunsy_state::palette_init() +PALETTE_INIT_MEMBER(phunsy_state, phunsy) { for ( int i = 0; i < 8; i++ ) { int j = ( i << 5 ) | ( i << 2 ) | ( i >> 1 ); - palette_set_color_rgb( machine(), i, j, j, j ); + palette.set_pen_color( i, j, j, j ); } } @@ -364,7 +364,8 @@ static MACHINE_CONFIG_START( phunsy, phunsy_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 480, 0, 64*6, 313, 0, 256) MCFG_SCREEN_UPDATE_DRIVER(phunsy_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", phunsy) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(phunsy_state, phunsy) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/pitagjr.c b/src/mess/drivers/pitagjr.c index 0ac8a308b32..962920fb4bb 100644 --- a/src/mess/drivers/pitagjr.c +++ b/src/mess/drivers/pitagjr.c @@ -165,7 +165,7 @@ public: required_memory_bank m_rombank; virtual void machine_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pitagjr); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -186,10 +186,10 @@ void pitagjr_state::machine_start() m_rombank->set_entry(1); } -void pitagjr_state::palette_init() +PALETTE_INIT_MEMBER(pitagjr_state, pitagjr) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } UINT32 pitagjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -212,7 +212,8 @@ static MACHINE_CONFIG_START( pitajr, pitagjr_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(pitagjr_state, pitagjr) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c index b395bf892ac..e84a87444fd 100644 --- a/src/mess/drivers/pk8000.c +++ b/src/mess/drivers/pk8000.c @@ -390,8 +390,8 @@ static MACHINE_CONFIG_START( pk8000, pk8000_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update_pk8000) - MCFG_PALETTE_LENGTH(16) - + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(pk8000_base_state, pk8000) MCFG_I8255_ADD( "ppi8255_1", pk8000_ppi8255_interface_1 ) MCFG_I8255_ADD( "ppi8255_2", pk8000_ppi8255_interface_2 ) diff --git a/src/mess/drivers/pk8020.c b/src/mess/drivers/pk8020.c index 53bca287568..cc94ac9e415 100644 --- a/src/mess/drivers/pk8020.c +++ b/src/mess/drivers/pk8020.c @@ -217,7 +217,8 @@ static MACHINE_CONFIG_START( pk8020, pk8020_state ) MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020) MCFG_GFXDECODE_ADD("gfxdecode", pk8020) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(pk8020_state, pk8020) MCFG_I8255_ADD( "ppi8255_1", pk8020_ppi8255_interface_1 ) diff --git a/src/mess/drivers/plan80.c b/src/mess/drivers/plan80.c index 445baab9b15..f495bab29b1 100644 --- a/src/mess/drivers/plan80.c +++ b/src/mess/drivers/plan80.c @@ -242,8 +242,7 @@ static MACHINE_CONFIG_START( plan80, plan80_state ) MCFG_SCREEN_SIZE(48*6, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 48*6-1, 0, 32*8-1) MCFG_GFXDECODE_ADD("gfxdecode", plan80) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/pmd85.c b/src/mess/drivers/pmd85.c index bf3b43a91db..48d6326d9f7 100644 --- a/src/mess/drivers/pmd85.c +++ b/src/mess/drivers/pmd85.c @@ -585,8 +585,8 @@ static MACHINE_CONFIG_START( pmd85, pmd85_state ) MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(pmd85_state, screen_update_pmd85) - MCFG_PALETTE_LENGTH(sizeof (pmd85_palette) / 3) - + MCFG_PALETTE_ADD("palette", sizeof (pmd85_palette) / 3) + MCFG_PALETTE_INIT_OWNER(pmd85_state, pmd85) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/pocketc.c b/src/mess/drivers/pocketc.c index 6e00f7ce0b5..67c56f8432f 100644 --- a/src/mess/drivers/pocketc.c +++ b/src/mess/drivers/pocketc.c @@ -727,9 +727,9 @@ static MACHINE_CONFIG_FRAGMENT( pocketc ) MCFG_SCREEN_VISIBLE_AREA(0, 594-1, 0, 273-1) // MCFG_SCREEN_SIZE(640, 273) // MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 273-1) - MCFG_GFXDECODE_ADD("gfxdecode", pc1401 ) - MCFG_PALETTE_LENGTH(8*2) - MCFG_PALETTE_INIT( pocketc ) + MCFG_GFXDECODE_ADD("gfxdecode", pc1401 ) + MCFG_PALETTE_ADD("palette", 8*2) + MCFG_PALETTE_INIT_LEGACY( pocketc ) /* sound hardware */ /*MCFG_SOUND_ADD("dac", DAC, pocketc_sound_interface)*/ diff --git a/src/mess/drivers/pockstat.c b/src/mess/drivers/pockstat.c index efb933e05f0..cc4ce551a17 100644 --- a/src/mess/drivers/pockstat.c +++ b/src/mess/drivers/pockstat.c @@ -984,8 +984,7 @@ static MACHINE_CONFIG_START( pockstat, pockstat_state ) MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1) MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("dac", DAC, 0) diff --git a/src/mess/drivers/poisk1.c b/src/mess/drivers/poisk1.c index 71759f4aed2..2f1942a7c78 100644 --- a/src/mess/drivers/poisk1.c +++ b/src/mess/drivers/poisk1.c @@ -312,7 +312,8 @@ static MACHINE_CONFIG_START( poisk1, p1_state ) MCFG_SCREEN_UPDATE_DRIVER( p1_state, screen_update ) /* XXX verify palette */ - MCFG_PALETTE_LENGTH( CGA_PALETTE_SETS * 16 ) + MCFG_PALETTE_ADD("palette", CGA_PALETTE_SETS * 16 ) + MCFG_PALETTE_INIT_OWNER(p1_state, p1) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/pokemini.c b/src/mess/drivers/pokemini.c index d790518e3d1..cbd6fa16e23 100644 --- a/src/mess/drivers/pokemini.c +++ b/src/mess/drivers/pokemini.c @@ -66,7 +66,7 @@ public: virtual void machine_start(); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pokemini); TIMER_CALLBACK_MEMBER(pokemini_seconds_timer_callback); TIMER_CALLBACK_MEMBER(pokemini_256hz_timer_callback); TIMER_CALLBACK_MEMBER(pokemini_timer1_callback); @@ -136,12 +136,12 @@ static INPUT_PORTS_START( pokemini ) INPUT_PORTS_END -void pokemini_state::palette_init() +PALETTE_INIT_MEMBER(pokemini_state, pokemini) { - palette_set_color(machine(), 0, rgb_t(0xff, 0xfb, 0x87)); - palette_set_color(machine(), 1, rgb_t(0xb1, 0xae, 0x4e)); - palette_set_color(machine(), 2, rgb_t(0x84, 0x80, 0x4e)); - palette_set_color(machine(), 3, rgb_t(0x4e, 0x4e, 0x4e)); + palette.set_pen_color(0, rgb_t(0xff, 0xfb, 0x87)); + palette.set_pen_color(1, rgb_t(0xb1, 0xae, 0x4e)); + palette.set_pen_color(2, rgb_t(0x84, 0x80, 0x4e)); + palette.set_pen_color(3, rgb_t(0x4e, 0x4e, 0x4e)); } @@ -1790,7 +1790,8 @@ static MACHINE_CONFIG_START( pokemini, pokemini_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH( 4 ) + MCFG_PALETTE_ADD( "palette", 4 ) + MCFG_PALETTE_INIT_OWNER(pokemini_state, pokemini) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/poly88.c b/src/mess/drivers/poly88.c index 92db0a1050b..93b3469d78d 100644 --- a/src/mess/drivers/poly88.c +++ b/src/mess/drivers/poly88.c @@ -183,8 +183,7 @@ static MACHINE_CONFIG_START( poly88, poly88_state ) MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88) MCFG_GFXDECODE_ADD("gfxdecode", poly88) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* audio hardware */ diff --git a/src/mess/drivers/portfoli.c b/src/mess/drivers/portfoli.c index 146171e7555..14cc9a98226 100644 --- a/src/mess/drivers/portfoli.c +++ b/src/mess/drivers/portfoli.c @@ -651,10 +651,10 @@ INPUT_PORTS_END // VIDEO //************************************************************************** -void portfolio_state::palette_init() +PALETTE_INIT_MEMBER(portfolio_state, portfolio) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } @@ -851,7 +851,8 @@ static MACHINE_CONFIG_START( portfolio, portfolio_state ) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(portfolio_state, portfolio) MCFG_GFXDECODE_ADD("gfxdecode", portfolio) diff --git a/src/mess/drivers/pp01.c b/src/mess/drivers/pp01.c index 46b626cb512..1fdedbec344 100644 --- a/src/mess/drivers/pp01.c +++ b/src/mess/drivers/pp01.c @@ -208,7 +208,8 @@ static MACHINE_CONFIG_START( pp01, pp01_state ) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(pp01_state, pp01) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/prestige.c b/src/mess/drivers/prestige.c index ec213338526..ce94cb2da05 100644 --- a/src/mess/drivers/prestige.c +++ b/src/mess/drivers/prestige.c @@ -112,7 +112,7 @@ public: DECLARE_WRITE8_MEMBER( kb_w ); DECLARE_READ8_MEMBER( mouse_r ); DECLARE_WRITE8_MEMBER( mouse_w ); - virtual void palette_init(); + DECLARE_PALETTE_INIT(prestige); TIMER_DEVICE_CALLBACK_MEMBER(irq_timer); IRQ_CALLBACK_MEMBER(prestige_int_ack); }; @@ -442,10 +442,10 @@ void prestige_state::machine_start() m_vram = ram; } -void prestige_state::palette_init() +PALETTE_INIT_MEMBER(prestige_state, prestige) { - palette_set_color(machine(), 0, rgb_t(39, 108, 51)); - palette_set_color(machine(), 1, rgb_t(16, 37, 84)); + palette.set_pen_color(0, rgb_t(39, 108, 51)); + palette.set_pen_color(1, rgb_t(16, 37, 84)); } UINT32 prestige_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -495,7 +495,8 @@ static MACHINE_CONFIG_START( prestige, prestige_state ) MCFG_DEFAULT_LAYOUT( layout_lcd ) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(prestige_state, prestige) /* cartridge */ MCFG_CARTSLOT_ADD("cart") diff --git a/src/mess/drivers/primo.c b/src/mess/drivers/primo.c index 32e22401f7c..3d08e32999b 100644 --- a/src/mess/drivers/primo.c +++ b/src/mess/drivers/primo.c @@ -263,8 +263,7 @@ static MACHINE_CONFIG_START( primoa32, primo_state ) MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 ) MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/psion.c b/src/mess/drivers/psion.c index 32439dc3ae7..c4bb185a606 100644 --- a/src/mess/drivers/psion.c +++ b/src/mess/drivers/psion.c @@ -451,10 +451,10 @@ HD44780_PIXEL_UPDATE(psion_state::lz_pixel_update) } } -void psion_state::palette_init() +PALETTE_INIT_MEMBER(psion_state, psion) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static const gfx_layout psion_charlayout = @@ -485,7 +485,8 @@ static MACHINE_CONFIG_START( psion_2lines, psion_state ) MCFG_SCREEN_SIZE(6*16, 9*2) MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(psion_state, psion) MCFG_GFXDECODE_ADD("gfxdecode", psion) MCFG_HD44780_ADD("hd44780") diff --git a/src/mess/drivers/ptcsol.c b/src/mess/drivers/ptcsol.c index b7c4ec101d7..d9b5f7588e1 100644 --- a/src/mess/drivers/ptcsol.c +++ b/src/mess/drivers/ptcsol.c @@ -763,8 +763,7 @@ static MACHINE_CONFIG_START( sol20, sol20_state ) MCFG_SCREEN_SIZE(576, 208) MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 207) MCFG_GFXDECODE_ADD("gfxdecode", sol20) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/pv1000.c b/src/mess/drivers/pv1000.c index 4e18f66166e..36252a2f146 100644 --- a/src/mess/drivers/pv1000.c +++ b/src/mess/drivers/pv1000.c @@ -168,7 +168,7 @@ public: required_shared_ptr m_p_videoram; virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pv1000); UINT32 screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(d65010_irq_on_cb); TIMER_CALLBACK_MEMBER(d65010_irq_off_cb); @@ -295,10 +295,10 @@ static INPUT_PORTS_START( pv1000 ) INPUT_PORTS_END -void pv1000_state::palette_init() +PALETTE_INIT_MEMBER(pv1000_state, pv1000) { for (int i = 0; i < 8; i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)); + palette.set_pen_color(i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)); } @@ -354,12 +354,12 @@ UINT32 pv1000_state::screen_update_pv1000(screen_device &screen, bitmap_ind16 &b if ( tile < 0xe0 || m_force_pattern ) { tile += ( m_pcg_bank << 8); - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, 0, 0, 0, x*8, y*8 ); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, 0, 0, 0, x*8, y*8 ); } else { tile -= 0xe0; - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, tile, 0, 0, 0, x*8, y*8 ); + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, tile, 0, 0, 0, x*8, y*8 ); } } } @@ -463,8 +463,10 @@ static MACHINE_CONFIG_START( pv1000, pv1000_state ) MCFG_SCREEN_RAW_PARAMS( 17897725/3, 380, 0, 256, 262, 0, 192 ) MCFG_SCREEN_UPDATE_DRIVER(pv1000_state, screen_update_pv1000) - MCFG_PALETTE_LENGTH( 8 ) - MCFG_GFXDECODE_ADD("gfxdecode", pv1000 ) + MCFG_PALETTE_ADD( "palette", 8 ) + MCFG_PALETTE_INIT_OWNER(pv1000_state, pv1000) + + MCFG_GFXDECODE_ADD("gfxdecode", pv1000 ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD( "pv1000_sound", PV1000, 17897725 ) diff --git a/src/mess/drivers/pv9234.c b/src/mess/drivers/pv9234.c index a38a47050cf..62378f31e57 100644 --- a/src/mess/drivers/pv9234.c +++ b/src/mess/drivers/pv9234.c @@ -148,8 +148,7 @@ static MACHINE_CONFIG_START( pv9234, pv9234_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/px4.c b/src/mess/drivers/px4.c index 8d2fc20dbc6..b19f008687c 100644 --- a/src/mess/drivers/px4.c +++ b/src/mess/drivers/px4.c @@ -201,7 +201,7 @@ public: DECLARE_DRIVER_INIT(px4); DECLARE_DRIVER_INIT(px4p); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(px4); DECLARE_MACHINE_START(px4_ramdisk); DECLARE_PALETTE_INIT(px4p); UINT32 screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -1342,16 +1342,16 @@ INPUT_PORTS_END // PALETTE //************************************************************************** -void px4_state::palette_init() +PALETTE_INIT_MEMBER(px4_state, px4) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } PALETTE_INIT_MEMBER(px4_state, px4p) { - palette_set_color(machine(), 0, rgb_t(149, 157, 130)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(149, 157, 130)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } @@ -1383,7 +1383,8 @@ static MACHINE_CONFIG_START( px4, px4_state ) MCFG_DEFAULT_LAYOUT(layout_px4) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(px4_state, px4) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1442,7 +1443,8 @@ static MACHINE_CONFIG_DERIVED( px4p, px4 ) MCFG_MACHINE_START_OVERRIDE(px4_state, px4_ramdisk) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_PALETTE_INIT_OVERRIDE(px4_state, px4p) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(px4_state, px4p) MCFG_CARTSLOT_ADD("ramdisk") MCFG_CARTSLOT_NOT_MANDATORY diff --git a/src/mess/drivers/px8.c b/src/mess/drivers/px8.c index 93a925e36e0..6a35b38de7e 100644 --- a/src/mess/drivers/px8.c +++ b/src/mess/drivers/px8.c @@ -682,10 +682,10 @@ INPUT_PORTS_END VIDEO ***************************************************************************/ -void px8_state::palette_init() +PALETTE_INIT_MEMBER(px8_state, px8) { - palette_set_color_rgb(machine(), 0, 0xa5, 0xad, 0xa5); - palette_set_color_rgb(machine(), 1, 0x31, 0x39, 0x10); + palette.set_pen_color(0, 0xa5, 0xad, 0xa5); + palette.set_pen_color(1, 0x31, 0x39, 0x10); } UINT32 px8_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -793,7 +793,8 @@ static MACHINE_CONFIG_START( px8, px8_state ) MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 63) MCFG_GFXDECODE_ADD("gfxdecode", px8) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(px8_state, px8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/pyl601.c b/src/mess/drivers/pyl601.c index b1edae25d4e..aeb9d95bf16 100644 --- a/src/mess/drivers/pyl601.c +++ b/src/mess/drivers/pyl601.c @@ -567,8 +567,7 @@ static MACHINE_CONFIG_START( pyl601, pyl601_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 200 - 1) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", pyl601) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c index 29e9c4ecc47..c5525ace07a 100644 --- a/src/mess/drivers/qx10.c +++ b/src/mess/drivers/qx10.c @@ -141,7 +141,7 @@ public: UINT8 rx; }m_rs232c; - virtual void palette_init(); + DECLARE_PALETTE_INIT(qx10); DECLARE_INPUT_CHANGED_MEMBER(key_stroke); DECLARE_WRITE_LINE_MEMBER(dma_hrq_changed); IRQ_CALLBACK_MEMBER(irq_callback); @@ -235,7 +235,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) UINT32 qx10_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_hgdc->screen_update(screen, bitmap, cliprect); @@ -731,15 +731,15 @@ void qx10_state::machine_reset() if(m_color_mode) //color { for ( i = 0; i < 8; i++ ) - palette_set_color_rgb(machine(), i, pal1bit((i >> 2) & 1), pal1bit((i >> 1) & 1), pal1bit((i >> 0) & 1)); + m_palette->set_pen_color(i, pal1bit((i >> 2) & 1), pal1bit((i >> 1) & 1), pal1bit((i >> 0) & 1)); } else //monochrome { for ( i = 0; i < 8; i++ ) - palette_set_color_rgb(machine(), i, pal1bit(0), pal1bit(0), pal1bit(0)); + m_palette->set_pen_color(i, pal1bit(0), pal1bit(0), pal1bit(0)); - palette_set_color_rgb(machine(), 1, 0x00, 0x9f, 0x00); - palette_set_color_rgb(machine(), 2, 0x00, 0xff, 0x00); + m_palette->set_pen_color(1, 0x00, 0x9f, 0x00); + m_palette->set_pen_color(2, 0x00, 0xff, 0x00); m_vram_bank = 0; } } @@ -781,7 +781,7 @@ static UPD7220_INTERFACE( hgdc_intf ) DEVCB_NULL }; -void qx10_state::palette_init() +PALETTE_INIT_MEMBER(qx10_state, qx10) { // ... } @@ -826,7 +826,8 @@ static MACHINE_CONFIG_START( qx10, qx10_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_GFXDECODE_ADD("gfxdecode", qx10) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(qx10_state, qx10) /* Devices */ diff --git a/src/mess/drivers/radio86.c b/src/mess/drivers/radio86.c index eb8127b5506..0cacc04f838 100644 --- a/src/mess/drivers/radio86.c +++ b/src/mess/drivers/radio86.c @@ -365,8 +365,8 @@ static MACHINE_CONFIG_START( radio86, radio86_state ) MCFG_SCREEN_SIZE(78*6, 30*10) MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) MCFG_GFXDECODE_ADD("gfxdecode", radio86) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(radio86_state,radio86) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(radio86_state,radio86) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c index a05bfdbf1db..d96f0a9cff2 100644 --- a/src/mess/drivers/rainbow.c +++ b/src/mess/drivers/rainbow.c @@ -1195,9 +1195,9 @@ static MACHINE_CONFIG_START( rainbow, rainbow_state ) MCFG_SCREEN_SIZE(132*10, 49*10) MCFG_SCREEN_VISIBLE_AREA(0, 80 * 10-1, 0, 24 * 10-1) MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow) + MCFG_SCREEN_PALETTE("vt100_video:palette") MCFG_GFXDECODE_ADD("gfxdecode", rainbow) - MCFG_PALETTE_LENGTH(4) - + MCFG_RAINBOW_VIDEO_ADD("vt100_video", video_interface) MCFG_FD1793_ADD("wd1793", rainbow_wd17xx_interface ) diff --git a/src/mess/drivers/rd110.c b/src/mess/drivers/rd110.c index 1515917f0a2..90a49b72142 100644 --- a/src/mess/drivers/rd110.c +++ b/src/mess/drivers/rd110.c @@ -58,7 +58,7 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(d110); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -195,10 +195,10 @@ WRITE8_MEMBER(d110_state::so_w) // logerror("so: rw=%d bank=%d led=%d\n", (data >> 3) & 1, (data >> 1) & 3, data & 1); } -void d110_state::palette_init() +PALETTE_INIT_MEMBER(d110_state, d110) { - palette_set_color(machine(), 0, rgb_t(0, 255, 0)); - palette_set_color(machine(), 1, rgb_t(0, 0, 0)); + palette.set_pen_color(0, rgb_t(0, 255, 0)); + palette.set_pen_color(1, rgb_t(0, 0, 0)); } static ADDRESS_MAP_START( d110_map, AS_PROGRAM, 8, d110_state ) @@ -240,7 +240,8 @@ static MACHINE_CONFIG_START( d110, d110_state ) // MCFG_SCREEN_SIZE(20*6-1, 2*9-1) MCFG_SCREEN_SIZE(16*6-1, (16*6-1)*3/4) MCFG_SCREEN_VISIBLE_AREA(0, 16*6-2, 0, (16*6-1)*3/4-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(d110_state, d110) MCFG_MSM6222B_01_ADD( "lcd" ) diff --git a/src/mess/drivers/replicator.c b/src/mess/drivers/replicator.c index c51c41dbedc..9bac9135673 100644 --- a/src/mess/drivers/replicator.c +++ b/src/mess/drivers/replicator.c @@ -187,7 +187,7 @@ public: DECLARE_WRITE8_MEMBER(port_w); DECLARE_DRIVER_INIT(replicator); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(replicator); }; void replicator_state::machine_start() @@ -622,11 +622,11 @@ const avr8_config atmega1280_config = "eeprom" }; -void replicator_state::palette_init() +PALETTE_INIT_MEMBER(replicator_state, replicator) { //These colors were picked with the color picker in Inkscape, based on a photo of the LCD used in the Replicator 1 3d printer: - palette_set_color(machine(), 0, rgb_t(0xCA, 0xE7, 0xEB)); - palette_set_color(machine(), 1, rgb_t(0x78, 0xAB, 0xA8)); + palette.set_pen_color(0, rgb_t(0xCA, 0xE7, 0xEB)); + palette.set_pen_color(1, rgb_t(0x78, 0xAB, 0xA8)); } static const gfx_layout hd44780_charlayout = @@ -667,7 +667,8 @@ static MACHINE_CONFIG_START( replicator, replicator_state ) MCFG_SCREEN_SIZE(120, 18*2) //4x20 chars MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 18*2-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(replicator_state, replicator) MCFG_GFXDECODE_ADD("gfxdecode", replicator) MCFG_DEFAULT_LAYOUT(layout_lcd) diff --git a/src/mess/drivers/rex6000.c b/src/mess/drivers/rex6000.c index 67c4f301e9f..40156b2c283 100644 --- a/src/mess/drivers/rex6000.c +++ b/src/mess/drivers/rex6000.c @@ -116,7 +116,7 @@ public: DECLARE_WRITE8_MEMBER( flash_0xa000_w ); UINT8 identify_bank_type(UINT32 bank); - virtual void palette_init(); + DECLARE_PALETTE_INIT(rex6000); DECLARE_INPUT_CHANGED_MEMBER(trigger_irq); TIMER_DEVICE_CALLBACK_MEMBER(irq_timer1); TIMER_DEVICE_CALLBACK_MEMBER(irq_timer2); @@ -558,10 +558,10 @@ WRITE_LINE_MEMBER( rex6000_state::alarm_irq ) } -void rex6000_state::palette_init() +PALETTE_INIT_MEMBER(rex6000_state, rex6000) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } QUICKLOAD_LOAD_MEMBER( rex6000_state,rex6000) @@ -660,7 +660,8 @@ static MACHINE_CONFIG_START( rex6000, rex6000_state ) MCFG_SCREEN_SIZE(240, 120) MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 120-1) MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(rex6000_state, rex6000) MCFG_GFXDECODE_ADD("gfxdecode", rex6000) /* quickload */ diff --git a/src/mess/drivers/rm380z.c b/src/mess/drivers/rm380z.c index ec44eb109cf..38a21af4814 100644 --- a/src/mess/drivers/rm380z.c +++ b/src/mess/drivers/rm380z.c @@ -158,8 +158,7 @@ static MACHINE_CONFIG_START( rm380z, rm380z_state ) MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1) MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* RAM configurations */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/rmnimbus.c b/src/mess/drivers/rmnimbus.c index 67bee16a053..97e03f50650 100644 --- a/src/mess/drivers/rmnimbus.c +++ b/src/mess/drivers/rmnimbus.c @@ -262,13 +262,13 @@ static ADDRESS_MAP_START( nimbus_iocpu_io , AS_IO, 8, rmnimbus_state ) ADDRESS_MAP_END -void rmnimbus_state::palette_init() +PALETTE_INIT_MEMBER(rmnimbus_state, rmnimbus) { int colourno; for ( colourno = 0; colourno < SCREEN_NO_COLOURS; colourno++ ) { - palette_set_color_rgb(machine(), colourno, nimbus_palette[colourno][RED], nimbus_palette[colourno][GREEN], nimbus_palette[colourno][BLUE]); + palette.set_pen_color(colourno, nimbus_palette[colourno][RED], nimbus_palette[colourno][GREEN], nimbus_palette[colourno][BLUE]); } } @@ -294,7 +294,8 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) - MCFG_PALETTE_LENGTH(SCREEN_NO_COLOURS) + MCFG_PALETTE_ADD("palette", SCREEN_NO_COLOURS) + MCFG_PALETTE_INIT_OWNER(rmnimbus_state, rmnimbus) // MCFG_SCREEN_SIZE(650, 260) // MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) diff --git a/src/mess/drivers/rmt32.c b/src/mess/drivers/rmt32.c index f1ecfd3f928..dab0fa2d545 100644 --- a/src/mess/drivers/rmt32.c +++ b/src/mess/drivers/rmt32.c @@ -196,7 +196,7 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mt32); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -321,10 +321,10 @@ WRITE8_MEMBER(mt32_state::so_w) // logerror("so: x1=%d bank=%d led=%d\n", (data >> 5) & 1, (data >> 1) & 3, data & 1); } -void mt32_state::palette_init() +PALETTE_INIT_MEMBER(mt32_state, mt32) { - palette_set_color(machine(), 0, rgb_t(0, 0, 0)); - palette_set_color(machine(), 1, rgb_t(0, 255, 0)); + palette.set_pen_color(0, rgb_t(0, 0, 0)); + palette.set_pen_color(1, rgb_t(0, 255, 0)); } static ADDRESS_MAP_START( mt32_map, AS_PROGRAM, 8, mt32_state ) @@ -359,7 +359,8 @@ static MACHINE_CONFIG_START( mt32, mt32_state ) // MCFG_SCREEN_SIZE(20*6-1, 9) MCFG_SCREEN_SIZE(20*6-1, (20*6-1)*3/4) MCFG_SCREEN_VISIBLE_AREA(0, 20*6-2, 0, (20*6-1)*3/4-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(mt32_state, mt32) MCFG_SED1200D0A_ADD( "lcd" ) diff --git a/src/mess/drivers/rt1715.c b/src/mess/drivers/rt1715.c index b2362db437f..1700d0bba40 100644 --- a/src/mess/drivers/rt1715.c +++ b/src/mess/drivers/rt1715.c @@ -40,7 +40,7 @@ public: DECLARE_WRITE8_MEMBER(rt1715_rom_disable); virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(rt1715); required_device m_maincpu; required_device m_ram; }; @@ -172,11 +172,11 @@ static const i8275_interface rt1715_i8275_intf = PALETTE ***************************************************************************/ -void rt1715_state::palette_init() +PALETTE_INIT_MEMBER(rt1715_state, rt1715) { - palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0x00)); /* black */ - palette_set_color(machine(), 1, rgb_t(0x00, 0x7f, 0x00)); /* low intensity */ - palette_set_color(machine(), 2, rgb_t(0x00, 0xff, 0x00)); /* high intensitiy */ + palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); /* black */ + palette.set_pen_color(1, rgb_t(0x00, 0x7f, 0x00)); /* low intensity */ + palette.set_pen_color(2, rgb_t(0x00, 0xff, 0x00)); /* high intensitiy */ } @@ -348,7 +348,8 @@ static MACHINE_CONFIG_START( rt1715, rt1715_state ) MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) MCFG_GFXDECODE_ADD("gfxdecode", rt1715) - MCFG_PALETTE_LENGTH(3) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(rt1715_state, rt1715) MCFG_I8275_ADD("a26", rt1715_i8275_intf) MCFG_Z80CTC_ADD("a30", XTAL_10MHz/4 /* ? */, rt1715_ctc_intf) diff --git a/src/mess/drivers/rx78.c b/src/mess/drivers/rx78.c index dfac3a73f5b..92d04dd10ec 100644 --- a/src/mess/drivers/rx78.c +++ b/src/mess/drivers/rx78.c @@ -230,7 +230,7 @@ WRITE8_MEMBER( rx78_state::vdp_reg_w ) g = (res & 0x22) == 0x22 ? 0xff : ((res & 0x22) == 0x02 ? 0x7f : 0x00); b = (res & 0x44) == 0x44 ? 0xff : ((res & 0x44) == 0x04 ? 0x7f : 0x00); - palette_set_color(machine(), i, rgb_t(r,g,b)); + m_palette->set_pen_color(i, rgb_t(r,g,b)); } } @@ -242,7 +242,7 @@ WRITE8_MEMBER( rx78_state::vdp_bg_reg_w ) g = (data & 0x22) == 0x22 ? 0xff : ((data & 0x22) == 0x02 ? 0x7f : 0x00); b = (data & 0x44) == 0x44 ? 0xff : ((data & 0x44) == 0x04 ? 0x7f : 0x00); - palette_set_color(machine(), 0x10, rgb_t(r,g,b)); + m_palette->set_pen_color(0x10, rgb_t(r,g,b)); } WRITE8_MEMBER( rx78_state::vdp_pri_mask_w ) @@ -469,7 +469,7 @@ static MACHINE_CONFIG_START( rx78, rx78_state ) MCFG_SCREEN_UPDATE_DRIVER(rx78_state, screen_update) MCFG_SCREEN_SIZE(192, 184) MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 184-1) - MCFG_PALETTE_LENGTH(16+1) //+1 for the background color + MCFG_PALETTE_ADD("palette", 16+1) //+1 for the background color MCFG_GFXDECODE_ADD("gfxdecode", rx78) MCFG_CARTSLOT_ADD("cart") diff --git a/src/mess/drivers/samcoupe.c b/src/mess/drivers/samcoupe.c index e0761a82c04..6bd032a85d0 100644 --- a/src/mess/drivers/samcoupe.c +++ b/src/mess/drivers/samcoupe.c @@ -493,7 +493,7 @@ INPUT_PORTS_END nothing G+4 R+4 B+4 ALL+1 G+2 R+2 B+2 */ -void samcoupe_state::palette_init() +PALETTE_INIT_MEMBER(samcoupe_state, samcoupe) { for (int i = 0; i < 128; i++) { @@ -505,10 +505,10 @@ void samcoupe_state::palette_init() g <<= 5; b <<= 5; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } - machine().palette->normalize_range(0, 127); + palette.palette()->normalize_range(0, 127); } @@ -551,7 +551,8 @@ static MACHINE_CONFIG_START( samcoupe, samcoupe_state ) MCFG_SCREEN_RAW_PARAMS(SAMCOUPE_XTAL_X1/2, SAM_TOTAL_WIDTH, 0, SAM_BORDER_LEFT + SAM_SCREEN_WIDTH + SAM_BORDER_RIGHT, SAM_TOTAL_HEIGHT, 0, SAM_BORDER_TOP + SAM_SCREEN_HEIGHT + SAM_BORDER_BOTTOM) MCFG_SCREEN_UPDATE_DRIVER(samcoupe_state, screen_update) - MCFG_PALETTE_LENGTH(128) + MCFG_PALETTE_ADD("palette", 128) + MCFG_PALETTE_INIT_OWNER(samcoupe_state, samcoupe) /* devices */ MCFG_CENTRONICS_ADD("lpt1", centronics_printers, "image") diff --git a/src/mess/drivers/sapi1.c b/src/mess/drivers/sapi1.c index 40a7f8e528e..f68ec32d47e 100644 --- a/src/mess/drivers/sapi1.c +++ b/src/mess/drivers/sapi1.c @@ -568,8 +568,7 @@ static MACHINE_CONFIG_START( sapi1, sapi1_state ) MCFG_SCREEN_SIZE(40*6, 24*9) MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 24*9-1) MCFG_SCREEN_UPDATE_DRIVER(sapi1_state, screen_update_sapi1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/saturn.c b/src/mess/drivers/saturn.c index 92b733d27f2..5fc497ba172 100644 --- a/src/mess/drivers/saturn.c +++ b/src/mess/drivers/saturn.c @@ -780,7 +780,7 @@ static MACHINE_CONFIG_START( saturn, sat_console_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) MCFG_SCREEN_UPDATE_DRIVER(sat_console_state, screen_update_stv_vdp2) - MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. + MCFG_PALETTE_ADD("palette", 2048+(2048*2))//standard palette + extra memory for rgb brightness. MCFG_GFXDECODE_ADD("gfxdecode", stv) diff --git a/src/mess/drivers/sbrain.c b/src/mess/drivers/sbrain.c index 32d51d1358a..19c6c91860d 100644 --- a/src/mess/drivers/sbrain.c +++ b/src/mess/drivers/sbrain.c @@ -339,8 +339,7 @@ static MACHINE_CONFIG_START( sbrain, sbrain_state ) MCFG_SCREEN_UPDATE_DRIVER(sbrain_state, screen_update) MCFG_SCREEN_SIZE(640, 240) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_amber) + MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/scv.c b/src/mess/drivers/scv.c index 439f657f2a3..3b19a957cab 100644 --- a/src/mess/drivers/scv.c +++ b/src/mess/drivers/scv.c @@ -48,7 +48,7 @@ public: bool m_cart_ram_enabled; virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(scv); void scv_postload(); UINT32 screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( scv_cart ); @@ -362,7 +362,7 @@ DEVICE_IMAGE_LOAD_MEMBER( scv_state, scv_cart ) } -void scv_state::palette_init() +PALETTE_INIT_MEMBER(scv_state, scv) { /* SCV Epoch-1A chip RGB voltage readouts from paused Bios color test: @@ -395,22 +395,22 @@ void scv_state::palette_init() Quamtizing/scaling/rounding between 0 and 255 we thus get: */ - palette_set_color_rgb( machine(), 0, 0, 0, 155); - palette_set_color_rgb( machine(), 1, 0, 0, 0); - palette_set_color_rgb( machine(), 2, 0, 0, 255); - palette_set_color_rgb( machine(), 3, 161, 0, 255); - palette_set_color_rgb( machine(), 4, 0, 255, 0); - palette_set_color_rgb( machine(), 5, 160, 255, 157); - palette_set_color_rgb( machine(), 6, 0, 255, 255); - palette_set_color_rgb( machine(), 7, 0, 161, 0); - palette_set_color_rgb( machine(), 8, 255, 0, 0); - palette_set_color_rgb( machine(), 9, 255, 161, 0); - palette_set_color_rgb( machine(), 10, 255, 0, 255); - palette_set_color_rgb( machine(), 11, 255, 160, 159); - palette_set_color_rgb( machine(), 12, 255, 255, 0); - palette_set_color_rgb( machine(), 13, 163, 160, 0); - palette_set_color_rgb( machine(), 14, 161, 160, 157); - palette_set_color_rgb( machine(), 15, 255, 255, 255); + palette.set_pen_color( 0, 0, 0, 155); + palette.set_pen_color( 1, 0, 0, 0); + palette.set_pen_color( 2, 0, 0, 255); + palette.set_pen_color( 3, 161, 0, 255); + palette.set_pen_color( 4, 0, 255, 0); + palette.set_pen_color( 5, 160, 255, 157); + palette.set_pen_color( 6, 0, 255, 255); + palette.set_pen_color( 7, 0, 161, 0); + palette.set_pen_color( 8, 255, 0, 0); + palette.set_pen_color( 9, 255, 161, 0); + palette.set_pen_color( 10, 255, 0, 255); + palette.set_pen_color( 11, 255, 160, 159); + palette.set_pen_color( 12, 255, 255, 0); + palette.set_pen_color( 13, 163, 160, 0); + palette.set_pen_color( 14, 161, 160, 157); + palette.set_pen_color( 15, 255, 255, 255); } @@ -831,7 +831,8 @@ static MACHINE_CONFIG_START( scv, scv_state ) MCFG_SCREEN_UPDATE_DRIVER(scv_state, screen_update_scv) MCFG_GFXDECODE_ADD("gfxdecode", scv) - MCFG_PALETTE_LENGTH( 16 ) + MCFG_PALETTE_ADD( "palette", 16 ) + MCFG_PALETTE_INIT_OWNER(scv_state, scv) /* Sound is generated by UPD1771C clocked at XTAL_6MHz */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/sm1800.c b/src/mess/drivers/sm1800.c index 457417017bc..a26d3875669 100644 --- a/src/mess/drivers/sm1800.c +++ b/src/mess/drivers/sm1800.c @@ -41,7 +41,7 @@ public: DECLARE_READ8_MEMBER(sm1800_8255_portc_r); UINT8 m_irq_state; virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(sm1800); INTERRUPT_GEN_MEMBER(sm1800_vblank_interrupt); IRQ_CALLBACK_MEMBER(sm1800_irq_callback); }; @@ -143,11 +143,11 @@ I8255A_INTERFACE( sm1800_ppi8255_interface ) DEVCB_DRIVER_MEMBER(sm1800_state, sm1800_8255_portc_w) }; -void sm1800_state::palette_init() +PALETTE_INIT_MEMBER(sm1800_state, sm1800) { - palette_set_color(machine(), 0, rgb_t::black); // black - palette_set_color_rgb(machine(), 1, 0xa0, 0xa0, 0xa0); // white - palette_set_color(machine(), 2, rgb_t::white); // highlight + palette.set_pen_color(0, rgb_t::black); // black + palette.set_pen_color(1, 0xa0, 0xa0, 0xa0); // white + palette.set_pen_color(2, rgb_t::white); // highlight } @@ -184,9 +184,10 @@ static MACHINE_CONFIG_START( sm1800, sm1800_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(sm1800_state, sm1800) - MCFG_GFXDECODE_ADD("gfxdecode", sm1800) - MCFG_PALETTE_LENGTH(3) + MCFG_GFXDECODE_ADD("gfxdecode", sm1800) /* Devices */ MCFG_I8255_ADD ("i8255", sm1800_ppi8255_interface ) diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c index fd9c0d4a10c..b8cd1304633 100644 --- a/src/mess/drivers/smc777.c +++ b/src/mess/drivers/smc777.c @@ -119,7 +119,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(smc777); UINT32 screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(smc777_vblank_irq); TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback); @@ -146,7 +146,7 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b // popmessage("%d %d %d %d",mc6845_v_char_total,mc6845_v_total_adj,mc6845_v_display,mc6845_v_sync_pos); - bitmap.fill(machine().pens[m_backdrop_pen], cliprect); + bitmap.fill(m_palette->pen(m_backdrop_pen), cliprect); x_width = ((m_display_reg & 0x80) >> 7); @@ -164,23 +164,23 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b /* todo: clean this up! */ //if(x_width) { - bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+0+CRTC_MIN_X) = machine().pens[color]; - bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+1+CRTC_MIN_X) = machine().pens[color]; + bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+0+CRTC_MIN_X) = m_palette->pen(color); + bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+1+CRTC_MIN_X) = m_palette->pen(color); } //else //{ - // bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+0+CRTC_MIN_X) = machine().pens[color]; + // bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+0+CRTC_MIN_X) = m_palette->pen(color); //} color = (m_gvram[count] & 0x0f) >> 0; //if(x_width) { - bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+2+CRTC_MIN_X) = machine().pens[color]; - bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+3+CRTC_MIN_X) = machine().pens[color]; + bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+2+CRTC_MIN_X) = m_palette->pen(color); + bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+3+CRTC_MIN_X) = m_palette->pen(color); } //else //{ - // bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+1+CRTC_MIN_X) = machine().pens[color]; + // bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+1+CRTC_MIN_X) = m_palette->pen(color); //} count++; @@ -233,11 +233,11 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b { if(x_width) { - bitmap.pix16(y*8+CRTC_MIN_Y+yi, (x*8+xi)*2+0+CRTC_MIN_X) = machine().pens[pen]; - bitmap.pix16(y*8+CRTC_MIN_Y+yi, (x*8+xi)*2+1+CRTC_MIN_X) = machine().pens[pen]; + bitmap.pix16(y*8+CRTC_MIN_Y+yi, (x*8+xi)*2+0+CRTC_MIN_X) = m_palette->pen(pen); + bitmap.pix16(y*8+CRTC_MIN_Y+yi, (x*8+xi)*2+1+CRTC_MIN_X) = m_palette->pen(pen); } else - bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = machine().pens[pen]; + bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = m_palette->pen(pen); } } } @@ -264,11 +264,11 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b { if(x_width) { - bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, (x*8+xc)*2+0+CRTC_MIN_X) = machine().pens[0x7]; - bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, (x*8+xc)*2+1+CRTC_MIN_X) = machine().pens[0x7]; + bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, (x*8+xc)*2+0+CRTC_MIN_X) = m_palette->pen(0x7); + bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, (x*8+xc)*2+1+CRTC_MIN_X) = m_palette->pen(0x7); } else - bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, x*8+CRTC_MIN_X+xc) = machine().pens[0x7]; + bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, x*8+CRTC_MIN_X+xc) = m_palette->pen(0x7); } } } @@ -564,9 +564,9 @@ WRITE8_MEMBER(smc777_state::smc777_ramdac_w) switch((offset & 0x3000) >> 12) { - case 0: m_pal.r = (data & 0xf0) >> 4; palette_set_color_rgb(machine(), pal_index, pal4bit(m_pal.r), pal4bit(m_pal.g), pal4bit(m_pal.b)); break; - case 1: m_pal.g = (data & 0xf0) >> 4; palette_set_color_rgb(machine(), pal_index, pal4bit(m_pal.r), pal4bit(m_pal.g), pal4bit(m_pal.b)); break; - case 2: m_pal.b = (data & 0xf0) >> 4; palette_set_color_rgb(machine(), pal_index, pal4bit(m_pal.r), pal4bit(m_pal.g), pal4bit(m_pal.b)); break; + case 0: m_pal.r = (data & 0xf0) >> 4; m_palette->set_pen_color(pal_index, pal4bit(m_pal.r), pal4bit(m_pal.g), pal4bit(m_pal.b)); break; + case 1: m_pal.g = (data & 0xf0) >> 4; m_palette->set_pen_color(pal_index, pal4bit(m_pal.r), pal4bit(m_pal.g), pal4bit(m_pal.b)); break; + case 2: m_pal.b = (data & 0xf0) >> 4; m_palette->set_pen_color(pal_index, pal4bit(m_pal.r), pal4bit(m_pal.g), pal4bit(m_pal.b)); break; case 3: printf("RAMdac used with gradient index = 3! pal_index = %02x data = %02x\n",pal_index,data); break; } } @@ -1017,7 +1017,7 @@ static MC6845_INTERFACE( mc6845_intf ) }; /* set-up SMC-70 mode colors */ -void smc777_state::palette_init() +PALETTE_INIT_MEMBER(smc777_state, smc777) { int i; @@ -1029,8 +1029,8 @@ void smc777_state::palette_init() g = (i & 2) >> 1; b = (i & 1) >> 0; - palette_set_color_rgb(machine(), i, pal1bit(r),pal1bit(g),pal1bit(b)); - palette_set_color_rgb(machine(), i+8, pal1bit(0),pal1bit(0),pal1bit(0)); + palette.set_pen_color(i, pal1bit(r),pal1bit(g),pal1bit(b)); + palette.set_pen_color(i+8, pal1bit(0),pal1bit(0),pal1bit(0)); } } @@ -1088,7 +1088,8 @@ static MACHINE_CONFIG_START( smc777, smc777_state ) MCFG_SCREEN_VISIBLE_AREA(0, 660-1, 0, 220-1) //normal 640 x 200 + 20 pixels for border color MCFG_SCREEN_UPDATE_DRIVER(smc777_state, screen_update_smc777) - MCFG_PALETTE_LENGTH(0x20) // 16 + 8 colors (SMC-777 + SMC-70) + 8 empty entries (SMC-70) + MCFG_PALETTE_ADD("palette", 0x20) // 16 + 8 colors (SMC-777 + SMC-70) + 8 empty entries (SMC-70) + MCFG_PALETTE_INIT_OWNER(smc777_state, smc777) MCFG_GFXDECODE_ADD("gfxdecode", empty) diff --git a/src/mess/drivers/sms.c b/src/mess/drivers/sms.c index 45510c045d4..5509f1c9dd6 100644 --- a/src/mess/drivers/sms.c +++ b/src/mess/drivers/sms.c @@ -563,8 +563,6 @@ static MACHINE_CONFIG_DERIVED( sms2_ntsc, sms_ntsc_base ) SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5246_ADD("sms_vdp", _315_5124_ntsc_intf) MCFG_SEGA315_5246_SET_SCREEN("screen") MACHINE_CONFIG_END @@ -601,8 +599,6 @@ static MACHINE_CONFIG_DERIVED( sms1_ntsc, sms_ntsc_base ) MCFG_VIDEO_START_OVERRIDE(sms_state,sms1) MCFG_VIDEO_RESET_OVERRIDE(sms_state,sms1) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5124_ADD("sms_vdp", _315_5124_ntsc_intf) MCFG_SEGA315_5124_SET_SCREEN("screen") @@ -635,8 +631,6 @@ static MACHINE_CONFIG_START( sms_sdisp, smssdisp_state ) SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224) MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5246_ADD("sms_vdp", sms_store_intf) MCFG_SEGA315_5246_SET_SCREEN("screen") @@ -729,8 +723,6 @@ static MACHINE_CONFIG_DERIVED( sms2_pal, sms_pal_base ) SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240) MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5246_ADD("sms_vdp", _315_5124_pal_intf) MCFG_SEGA315_5246_SET_SCREEN("screen") MACHINE_CONFIG_END @@ -767,8 +759,6 @@ static MACHINE_CONFIG_DERIVED( sms1_pal, sms_pal_base ) MCFG_VIDEO_START_OVERRIDE(sms_state,sms1) MCFG_VIDEO_RESET_OVERRIDE(sms_state,sms1) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5124_ADD("sms_vdp", _315_5124_pal_intf) MCFG_SEGA315_5124_SET_SCREEN("screen") @@ -824,8 +814,6 @@ static MACHINE_CONFIG_START( gamegear, sms_state ) MCFG_VIDEO_START_OVERRIDE(sms_state,gamegear) - MCFG_PALETTE_LENGTH(SEGA315_5378_PALETTE_SIZE) - MCFG_SEGA315_5378_ADD("sms_vdp", _315_5124_ntsc_intf) MCFG_SEGA315_5378_SET_SCREEN("screen") diff --git a/src/mess/drivers/socrates.c b/src/mess/drivers/socrates.c index 7c3b0b49dd6..c41ae4a9513 100644 --- a/src/mess/drivers/socrates.c +++ b/src/mess/drivers/socrates.c @@ -126,7 +126,7 @@ public: required_device m_maincpu; required_device m_sound; - rgb_t m_palette[256]; + rgb_t m_palette_val[256]; UINT8 m_data[8]; UINT8 m_rom_bank; @@ -163,7 +163,7 @@ public: DECLARE_DRIVER_INIT(socrates); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(socrates); UINT32 screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(assert_irq); TIMER_CALLBACK_MEMBER(clear_speech_cb); @@ -700,14 +700,14 @@ return composedcolor; } -void socrates_state::palette_init() +PALETTE_INIT_MEMBER(socrates_state, socrates) { int i; // iterator for (i = 0; i < 256; i++) { - m_palette[i] = socrates_create_color(i); + m_palette_val[i] = socrates_create_color(i); } - palette_set_colors(machine(), 0, m_palette, ARRAY_LENGTH(m_palette)); + palette.set_pen_colors(0, m_palette_val, ARRAY_LENGTH(m_palette_val)); } void socrates_state::video_start() @@ -1375,8 +1375,8 @@ static MACHINE_CONFIG_START( socrates, socrates_state ) MCFG_SCREEN_VISIBLE_AREA(0, 263, 0, 219) // the last few rows are usually cut off by the screen bottom but are indeed displayed if you mess with v-hold MCFG_SCREEN_UPDATE_DRIVER(socrates_state, screen_update_socrates) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(socrates_state, socrates) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1409,7 +1409,7 @@ static MACHINE_CONFIG_START( socrates_pal, socrates_state ) MCFG_SCREEN_VISIBLE_AREA(0, 263, 0, 229) // the last few rows are usually cut off by the screen bottom but are indeed displayed if you mess with v-hold MCFG_SCREEN_UPDATE_DRIVER(socrates_state, screen_update_socrates) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ @@ -1454,7 +1454,7 @@ static MACHINE_CONFIG_START( iqunlimz, iqunlim_state ) MCFG_SCREEN_UPDATE_DRIVER(iqunlim_state, screen_update) MCFG_SCREEN_SIZE(256, 224) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/sorcerer.c b/src/mess/drivers/sorcerer.c index d14a4363c0d..5f7b4003f84 100644 --- a/src/mess/drivers/sorcerer.c +++ b/src/mess/drivers/sorcerer.c @@ -434,8 +434,7 @@ static MACHINE_CONFIG_START( sorcerer, sorcerer_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(sorcerer_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", sorcerer) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/spec128.c b/src/mess/drivers/spec128.c index dcb5945c4c3..4b25c7894d4 100644 --- a/src/mess/drivers/spec128.c +++ b/src/mess/drivers/spec128.c @@ -303,8 +303,6 @@ MACHINE_CONFIG_DERIVED( spectrum_128, spectrum ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(spectrum_state, spectrum ) MCFG_SCREEN_RAW_PARAMS(X1_128_SINCLAIR / 2.5f, 456, 0, 352, 311, 0, 296) MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum_128 ) diff --git a/src/mess/drivers/special.c b/src/mess/drivers/special.c index 5c5cc4544fb..f6aa2dcc34a 100644 --- a/src/mess/drivers/special.c +++ b/src/mess/drivers/special.c @@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( special, special_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) MCFG_VIDEO_START_OVERRIDE(special_state,special) MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_special) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -425,8 +425,10 @@ static MACHINE_CONFIG_DERIVED( specimx, special ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_specimx) MCFG_VIDEO_START_OVERRIDE(special_state,specimx) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(special_state, specimx ) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(special_state, specimx ) /* audio hardware */ MCFG_SOUND_ADD("custom", SPECIMX, 0) @@ -461,8 +463,8 @@ static MACHINE_CONFIG_START( erik, special_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) MCFG_VIDEO_START_OVERRIDE(special_state,erik) MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_erik) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(special_state,erik) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(special_state,erik) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/spectrum.c b/src/mess/drivers/spectrum.c index f509b722dd0..40a4267da6e 100644 --- a/src/mess/drivers/spectrum.c +++ b/src/mess/drivers/spectrum.c @@ -704,8 +704,9 @@ MACHINE_CONFIG_START( spectrum_common, spectrum_state ) MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_spectrum) MCFG_SCREEN_VBLANK_DRIVER(spectrum_state, screen_eof_spectrum) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(spectrum_state, spectrum ) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(spectrum_state, spectrum ) + MCFG_GFXDECODE_ADD("gfxdecode", spectrum) MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum ) diff --git a/src/mess/drivers/ssem.c b/src/mess/drivers/ssem.c index f2b50433586..d6499789dd4 100644 --- a/src/mess/drivers/ssem.c +++ b/src/mess/drivers/ssem.c @@ -645,8 +645,7 @@ static MACHINE_CONFIG_START( ssem, ssem_state ) MCFG_SCREEN_SIZE(256, 280) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 279) MCFG_SCREEN_UPDATE_DRIVER(ssem_state, screen_update_ssem) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* cartridge */ MCFG_CARTSLOT_ADD("cart") diff --git a/src/mess/drivers/ssystem3.c b/src/mess/drivers/ssystem3.c index aebeb608273..8008912e769 100644 --- a/src/mess/drivers/ssystem3.c +++ b/src/mess/drivers/ssystem3.c @@ -300,8 +300,8 @@ static MACHINE_CONFIG_START( ssystem3, ssystem3_state ) MCFG_SCREEN_VISIBLE_AREA(0, 728-1, 0, 437-1) MCFG_SCREEN_UPDATE_DRIVER(ssystem3_state, screen_update_ssystem3) - MCFG_PALETTE_LENGTH(242 + 32768) - + MCFG_PALETTE_ADD("palette", 242 + 32768) + MCFG_PALETTE_INIT_OWNER(ssystem3_state, ssystem3) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/super80.c b/src/mess/drivers/super80.c index 5b32da2a208..eb5a53520c5 100644 --- a/src/mess/drivers/super80.c +++ b/src/mess/drivers/super80.c @@ -649,8 +649,7 @@ static MACHINE_CONFIG_START( super80, super80_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_GFXDECODE_ADD("gfxdecode", super80) MCFG_DEFAULT_LAYOUT( layout_super80 ) @@ -697,8 +696,10 @@ static MACHINE_CONFIG_DERIVED( super80m, super80 ) MCFG_CPU_PROGRAM_MAP(super80m_map) MCFG_GFXDECODE_MODIFY("gfxdecode", super80m) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(super80_state,super80m) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80m) @@ -721,8 +722,8 @@ static MACHINE_CONFIG_START( super80v, super80_state ) MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80v) MCFG_SCREEN_VBLANK_DRIVER(super80_state, screen_eof_super80m) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(super80_state,super80m) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / SUPER80V_DOTS, super80v_crtc) diff --git a/src/mess/drivers/supracan.c b/src/mess/drivers/supracan.c index 3f33208406c..7025e0cee46 100644 --- a/src/mess/drivers/supracan.c +++ b/src/mess/drivers/supracan.c @@ -209,7 +209,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(supracan); UINT32 screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(supracan_irq); INTERRUPT_GEN_MEMBER(supracan_sound_irq); @@ -565,7 +565,7 @@ void supracan_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec //printf("sprite data %04x %04x %04x %04x\n", supracan_vram[i+0] , supracan_vram[i+1] , supracan_vram[i+2] ,supracan_vram[i+3] ); - gfx->transpen(bitmap,cliprect,tile,palette,sprite_xflip,sprite_yflip, + gfx->transpen(m_palette,bitmap,cliprect,tile,palette,sprite_xflip,sprite_yflip, x, y, 0); @@ -612,7 +612,7 @@ void supracan_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec int tile_xflip = sprite_xflip ^ ((data & 0x0800)>>11); int tile_yflip = sprite_yflip ^ ((data & 0x0400)>>10); - gfx->transpen(bitmap,cliprect,tile,palette,tile_xflip,tile_yflip,xpos,ypos,0); + gfx->transpen(m_palette,bitmap,cliprect,tile,palette,tile_xflip,tile_yflip,xpos,ypos,0); } } } @@ -1133,7 +1133,7 @@ static ADDRESS_MAP_START( supracan_mem, AS_PROGRAM, 16, supracan_state ) AM_RANGE( 0xe90030, 0xe9003f ) AM_WRITE( supracan_dma_channel1_w ) AM_RANGE( 0xf00000, 0xf001ff ) AM_READWRITE( supracan_video_r, supracan_video_w ) - AM_RANGE( 0xf00200, 0xf003ff ) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE( 0xf00200, 0xf003ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0xf40000, 0xf5ffff ) AM_READWRITE(supracan_vram_r, supracan_vram_w) AM_RANGE( 0xfc0000, 0xfdffff ) AM_MIRROR(0x30000) AM_RAM /* System work ram */ ADDRESS_MAP_END @@ -1351,7 +1351,7 @@ static INPUT_PORTS_START( supracan ) PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("P4 Button A") INPUT_PORTS_END -void supracan_state::palette_init() +PALETTE_INIT_MEMBER(supracan_state, supracan) { // Used for debugging purposes for now //#if 0 @@ -1362,7 +1362,7 @@ void supracan_state::palette_init() r = (i & 0x1f) << 3; g = ((i >> 5) & 0x1f) << 3; b = ((i >> 10) & 0x1f) << 3; - palette_set_color_rgb( machine(), i, r, g, b ); + palette.set_pen_color( i, r, g, b ); } //#endif } @@ -1922,7 +1922,10 @@ static MACHINE_CONFIG_START( supracan, supracan_state ) MCFG_SCREEN_ADD( "screen", RASTER ) MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, 348, 0, 256, 256, 0, 240 ) /* No idea if this is correct */ MCFG_SCREEN_UPDATE_DRIVER(supracan_state, screen_update_supracan) - MCFG_PALETTE_LENGTH( 32768 ) + MCFG_PALETTE_ADD( "palette", 32768 ) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_INIT_OWNER(supracan_state, supracan) + MCFG_GFXDECODE_ADD("gfxdecode", supracan) MCFG_CARTSLOT_ADD("cart") diff --git a/src/mess/drivers/svi318.c b/src/mess/drivers/svi318.c index 45acd9e9bd0..da56074ef8c 100644 --- a/src/mess/drivers/svi318.c +++ b/src/mess/drivers/svi318.c @@ -443,7 +443,7 @@ static MACHINE_CONFIG_START( svi328_806, svi318_state ) MCFG_TMS9928A_SET_SCREEN( "screen" ) MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" ) MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9929a_device, screen_update ) - MCFG_PALETTE_LENGTH(TMS9928A_PALETTE_SIZE + 2) /* 2 additional entries for monochrome svi806 output */ + MCFG_PALETTE_ADD("palette", TMS9928A_PALETTE_SIZE + 2) /* 2 additional entries for monochrome svi806 output */ MCFG_SCREEN_ADD("svi806", RASTER) MCFG_SCREEN_REFRESH_RATE(50) diff --git a/src/mess/drivers/svision.c b/src/mess/drivers/svision.c index 80238094308..f07abb71d1a 100644 --- a/src/mess/drivers/svision.c +++ b/src/mess/drivers/svision.c @@ -351,12 +351,12 @@ static const unsigned char svisionn_palette[] = 245, 249, 248 }; -void svision_state::palette_init() +PALETTE_INIT_MEMBER(svision_state, svision) { int i; for( i = 0; i < sizeof(svision_palette) / 3; i++ ) { - palette_set_color_rgb(machine(), i, svision_palette[i*3], svision_palette[i*3+1], svision_palette[i*3+2] ); + palette.set_pen_color(i, svision_palette[i*3], svision_palette[i*3+1], svision_palette[i*3+2] ); } } PALETTE_INIT_MEMBER(svision_state,svisionn) @@ -364,7 +364,7 @@ PALETTE_INIT_MEMBER(svision_state,svisionn) int i; for ( i = 0; i < sizeof(svisionn_palette) / 3; i++ ) { - palette_set_color_rgb(machine(), i, svisionn_palette[i*3], svisionn_palette[i*3+1], svisionn_palette[i*3+2] ); + palette.set_pen_color(i, svisionn_palette[i*3], svisionn_palette[i*3+1], svisionn_palette[i*3+2] ); } } PALETTE_INIT_MEMBER(svision_state,svisionp) @@ -372,7 +372,7 @@ PALETTE_INIT_MEMBER(svision_state,svisionp) int i; for ( i = 0; i < sizeof(svisionn_palette) / 3; i++ ) { - palette_set_color_rgb(machine(), i, svisionp_palette[i*3], svisionp_palette[i*3+1], svisionp_palette[i*3+2] ); + palette.set_pen_color(i, svisionp_palette[i*3], svisionp_palette[i*3+1], svisionp_palette[i*3+2] ); } } @@ -433,7 +433,7 @@ UINT32 svision_state::screen_update_tvlink(screen_device &screen, bitmap_rgb32 & } else { - bitmap.plot_box(3, 0, 162, 159, machine().pens[PALETTE_START]); + bitmap.plot_box(3, 0, 162, 159, m_palette->pen(PALETTE_START)); } return 0; } @@ -554,7 +554,8 @@ static MACHINE_CONFIG_START( svision, svision_state ) MCFG_SCREEN_VISIBLE_AREA(3+0, 3+160-1, 0, 160-1) MCFG_SCREEN_UPDATE_DRIVER(svision_state, screen_update_svision) - MCFG_PALETTE_LENGTH(ARRAY_LENGTH(svision_palette) * 3) + MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(svision_palette) * 3) + MCFG_PALETTE_INIT_OWNER(svision_state, svision ) MCFG_DEFAULT_LAYOUT(layout_svision) @@ -584,7 +585,8 @@ static MACHINE_CONFIG_DERIVED( svisionp, svision ) MCFG_CPU_CLOCK(4430000) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_REFRESH_RATE(50) - MCFG_PALETTE_INIT_OVERRIDE(svision_state, svisionp ) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(svision_state, svisionp ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( svisionn, svision ) @@ -592,7 +594,8 @@ static MACHINE_CONFIG_DERIVED( svisionn, svision ) MCFG_CPU_CLOCK(3560000/*?*/) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_REFRESH_RATE(60) - MCFG_PALETTE_INIT_OVERRIDE(svision_state, svisionn ) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(svision_state, svisionn ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( tvlinkp, svisionp ) diff --git a/src/mess/drivers/svmu.c b/src/mess/drivers/svmu.c index 52bd6aba319..76b7c82c965 100644 --- a/src/mess/drivers/svmu.c +++ b/src/mess/drivers/svmu.c @@ -36,7 +36,7 @@ public: required_device m_flash; required_device m_speaker; - virtual void palette_init(); + DECLARE_PALETTE_INIT(svmu); virtual void machine_reset(); DECLARE_WRITE8_MEMBER(page_w); @@ -149,10 +149,10 @@ void svmu_state::machine_reset() m_page = 0; } -void svmu_state::palette_init() +PALETTE_INIT_MEMBER(svmu_state, svmu) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static LC8670_LCD_UPDATE( svmu_lcd_update ) @@ -314,7 +314,8 @@ static MACHINE_CONFIG_START( svmu, svmu_state ) MCFG_SCREEN_VISIBLE_AREA(0, 48*(PIXEL_SIZE + PIXEL_DISTANCE) - 1, 0, 32*(PIXEL_SIZE + PIXEL_DISTANCE) - 1) MCFG_SCREEN_UPDATE_DEVICE("maincpu", lc8670_cpu_device, screen_update) MCFG_DEFAULT_LAYOUT(layout_svmu) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(svmu_state, svmu) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/sys2900.c b/src/mess/drivers/sys2900.c index 69d0bd6211d..2678546bbdf 100644 --- a/src/mess/drivers/sys2900.c +++ b/src/mess/drivers/sys2900.c @@ -127,8 +127,7 @@ static MACHINE_CONFIG_START( sys2900, sys2900_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(sys2900_state, screen_update_sys2900) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/tavernie.c b/src/mess/drivers/tavernie.c index 7ee46db6947..7404ad2fb6c 100644 --- a/src/mess/drivers/tavernie.c +++ b/src/mess/drivers/tavernie.c @@ -373,8 +373,7 @@ static MACHINE_CONFIG_DERIVED( ivg09, cpu09 ) MCFG_SCREEN_SIZE(80*8, 25*10) MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 25*10-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_DEFAULT_LAYOUT(layout_tavernie) /* sound hardware */ diff --git a/src/mess/drivers/tdv2324.c b/src/mess/drivers/tdv2324.c index 09753731302..7011b8751fc 100644 --- a/src/mess/drivers/tdv2324.c +++ b/src/mess/drivers/tdv2324.c @@ -312,8 +312,7 @@ static MACHINE_CONFIG_START( tdv2324, tdv2324_state ) MCFG_SCREEN_SIZE(800, 400) MCFG_SCREEN_VISIBLE_AREA(0, 800-1, 0, 400-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_TMS9927_ADD(TMS9937NL_TAG, XTAL_25_39836MHz, vtac_intf) diff --git a/src/mess/drivers/tek405x.c b/src/mess/drivers/tek405x.c index 3b3c1337e92..12f94453a5c 100644 --- a/src/mess/drivers/tek405x.c +++ b/src/mess/drivers/tek405x.c @@ -1007,8 +1007,7 @@ static MACHINE_CONFIG_START( tek4051, tek4051_state ) MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 780-1) MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1120,8 +1119,7 @@ static MACHINE_CONFIG_START( tek4052, tek4052_state ) MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 780-1) MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/tek410x.c b/src/mess/drivers/tek410x.c index 0bfbdfe54a1..5d336b01f5c 100644 --- a/src/mess/drivers/tek410x.c +++ b/src/mess/drivers/tek410x.c @@ -98,13 +98,14 @@ static MACHINE_CONFIG_START( tek4107a, tek4107a_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) MCFG_GFXDECODE_ADD("gfxdecode", tek4107a) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( tek4109a, tek4107a ) /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) MACHINE_CONFIG_END /* ROMs */ diff --git a/src/mess/drivers/terak.c b/src/mess/drivers/terak.c index ae960fe7f6b..e9d69c18572 100644 --- a/src/mess/drivers/terak.c +++ b/src/mess/drivers/terak.c @@ -101,8 +101,7 @@ static MACHINE_CONFIG_START( terak, terak_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(terak_state, screen_update_terak) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/thomson.c b/src/mess/drivers/thomson.c index bdbb0dff1df..f67743caa0f 100644 --- a/src/mess/drivers/thomson.c +++ b/src/mess/drivers/thomson.c @@ -623,8 +623,8 @@ static MACHINE_CONFIG_START( to7, thomson_state ) MCFG_SCREEN_UPDATE_DRIVER( thomson_state, screen_update_thom ) MCFG_SCREEN_VBLANK_DRIVER( thomson_state, thom_vblank ) - MCFG_PALETTE_LENGTH ( 4097 ) /* 12-bit color + transparency */ - MCFG_PALETTE_INIT_OVERRIDE(thomson_state, thom) + MCFG_PALETTE_ADD ( "palette", 4097 ) /* 12-bit color + transparency */ + MCFG_PALETTE_INIT_OWNER(thomson_state, thom) MCFG_VIDEO_START_OVERRIDE( thomson_state, thom ) MCFG_DEFAULT_LAYOUT( layout_thomson ) diff --git a/src/mess/drivers/ti85.c b/src/mess/drivers/ti85.c index 50a5192f075..af2fa19ef1b 100644 --- a/src/mess/drivers/ti85.c +++ b/src/mess/drivers/ti85.c @@ -504,8 +504,8 @@ static MACHINE_CONFIG_START( ti81, ti85_state ) MCFG_SCREEN_VISIBLE_AREA(0, 96-1, 0, 64-1) MCFG_SCREEN_UPDATE_DRIVER(ti85_state, screen_update_ti85) - MCFG_PALETTE_LENGTH(224) - + MCFG_PALETTE_ADD("palette", 224) + MCFG_PALETTE_INIT_OWNER(ti85_state, ti85) MCFG_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END @@ -550,8 +550,10 @@ static MACHINE_CONFIG_DERIVED( ti82, ti81 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DEVICE("t6a04", t6a04_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(ti85_state, ti82 ) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(ti85_state, ti82 ) MCFG_T6A04_ADD("t6a04", ti82_display) @@ -578,8 +580,10 @@ static MACHINE_CONFIG_DERIVED( ti83, ti81 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DEVICE("t6a04", t6a04_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(ti85_state, ti82 ) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(ti85_state, ti82 ) MCFG_T6A04_ADD("t6a04", ti82_display) MACHINE_CONFIG_END @@ -610,8 +614,10 @@ static MACHINE_CONFIG_DERIVED( ti83p, ti81 ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DEVICE("t6a04", t6a04_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(ti85_state, ti82 ) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(ti85_state, ti82 ) MCFG_T6A04_ADD("t6a04", ti82_display) diff --git a/src/mess/drivers/ti89.c b/src/mess/drivers/ti89.c index 1ba43fc69c6..e6169a4ff0b 100644 --- a/src/mess/drivers/ti89.c +++ b/src/mess/drivers/ti89.c @@ -508,10 +508,10 @@ UINT32 ti68k_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c return 0; } -void ti68k_state::palette_init() +PALETTE_INIT_MEMBER(ti68k_state, ti68k) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } static MACHINE_CONFIG_START( ti89, ti68k_state ) @@ -528,7 +528,8 @@ static MACHINE_CONFIG_START( ti89, ti68k_state ) MCFG_SCREEN_UPDATE_DRIVER(ti68k_state, screen_update) MCFG_SCREEN_SIZE(240, 128) MCFG_SCREEN_VISIBLE_AREA(0, 160-1, 0, 100-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(ti68k_state, ti68k) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_SHARP_UNK128MBIT_ADD("flash") //should be LH28F320 for ti89t and v200 and LH28F160S3T for other models diff --git a/src/mess/drivers/ti990_10.c b/src/mess/drivers/ti990_10.c index f0e84f3aeb5..368f0289e4d 100644 --- a/src/mess/drivers/ti990_10.c +++ b/src/mess/drivers/ti990_10.c @@ -240,11 +240,7 @@ static MACHINE_CONFIG_START( ti990_10, ti990_10_state ) MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1) MCFG_SCREEN_UPDATE_DRIVER(ti990_10_state, screen_update_ti990_10) - MCFG_GFXDECODE_ADD("gfxdecode", vdt911) - MCFG_PALETTE_LENGTH(8) - MCFG_VDT911_VIDEO_ADD("vdt911", vdt911_intf) - MCFG_VDT911_VIDEO_GFXDECODE("gfxdecode") /* 911 VDT has a beep tone generator */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/ti990_4.c b/src/mess/drivers/ti990_4.c index a7001a72311..b8aae6e7151 100644 --- a/src/mess/drivers/ti990_4.c +++ b/src/mess/drivers/ti990_4.c @@ -355,20 +355,10 @@ static MACHINE_CONFIG_START( ti990_4, ti990_4_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) #endif -#if VIDEO_911 - MCFG_GFXDECODE_ADD("gfxdecode", vdt911) - MCFG_PALETTE_LENGTH(8) -#else - MCFG_GFXDECODE_ADD("gfxdecode", asr733) - MCFG_PALETTE_LENGTH(2) -#endif - #if VIDEO_911 MCFG_VDT911_VIDEO_ADD("vdt911", vdt911_intf) - MCFG_VDT911_VIDEO_GFXDECODE("gfxdecode") #else MCFG_ASR733_VIDEO_ADD("asr733", asr733_intf) - MCFG_ASR733_VIDEO_GFXDECODE("gfxdecode") #endif #if VIDEO_911 diff --git a/src/mess/drivers/ti99_2.c b/src/mess/drivers/ti99_2.c index feef1b342c5..c3bac2da158 100644 --- a/src/mess/drivers/ti99_2.c +++ b/src/mess/drivers/ti99_2.c @@ -102,7 +102,6 @@ public: DECLARE_DRIVER_INIT(ti99_2_24); DECLARE_DRIVER_INIT(ti99_2_32); virtual void machine_reset(); - virtual void palette_init(); UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(ti99_2_vblank_interrupt); required_device m_maincpu; @@ -160,12 +159,6 @@ INTERRUPT_GEN_MEMBER(ti99_2_state::ti99_2_vblank_interrupt) */ -void ti99_2_state::palette_init() -{ - palette_set_color(machine(),0,rgb_t::white); /* white */ - palette_set_color(machine(),1,rgb_t::black); /* black */ -} - UINT32 ti99_2_state::screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { @@ -178,7 +171,7 @@ UINT32 ti99_2_state::screen_update_ti99_2(screen_device &screen, bitmap_ind16 &b for (i = 0; i < 768; i++) { /* Is the char code masked or not ??? */ - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, videoram[i] & 0x7F, 0, + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, videoram[i] & 0x7F, 0, 0, 0, sx, sy); sx += 8; @@ -398,7 +391,7 @@ static MACHINE_CONFIG_START( ti99_2, ti99_2_state ) MCFG_SCREEN_UPDATE_DRIVER(ti99_2_state, screen_update_ti99_2) MCFG_GFXDECODE_ADD("gfxdecode", ti99_2) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_WHITE_AND_BLACK("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/tiki100.c b/src/mess/drivers/tiki100.c index a3456c47246..8f86e2174aa 100644 --- a/src/mess/drivers/tiki100.c +++ b/src/mess/drivers/tiki100.c @@ -149,9 +149,9 @@ WRITE8_MEMBER( tiki100_state::video_mode_w ) if (BIT(data, 7)) { int color = data & 0x0f; - UINT8 colordata = ~m_palette; + UINT8 colordata = ~m_palette_val; - palette_set_color_rgb(machine(), color, pal3bit(colordata >> 5), pal3bit(colordata >> 2), pal2bit(colordata >> 0)); + m_palette->set_pen_color(color, pal3bit(colordata >> 5), pal3bit(colordata >> 2), pal2bit(colordata >> 0)); } } @@ -172,7 +172,7 @@ WRITE8_MEMBER( tiki100_state::palette_w ) */ - m_palette = data; + m_palette_val = data; } WRITE8_MEMBER( tiki100_state::system_w ) @@ -685,7 +685,7 @@ void tiki100_state::machine_start() save_item(NAME(m_vire)); save_item(NAME(m_scroll)); save_item(NAME(m_mode)); - save_item(NAME(m_palette)); + save_item(NAME(m_palette_val)); save_item(NAME(m_keylatch)); } @@ -713,7 +713,7 @@ static MACHINE_CONFIG_START( tiki100, tiki100_state ) MCFG_SCREEN_SIZE(1024, 256) MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 256-1) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) // pixel clock 20.01782 MHz /* devices */ diff --git a/src/mess/drivers/tim011.c b/src/mess/drivers/tim011.c index 72f0b22740e..c696ad7eff1 100644 --- a/src/mess/drivers/tim011.c +++ b/src/mess/drivers/tim011.c @@ -157,8 +157,7 @@ static MACHINE_CONFIG_START( tim011,tim011_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(tim011_state, screen_update_tim011) - MCFG_PALETTE_LENGTH(4) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/tim100.c b/src/mess/drivers/tim100.c index 1a535c873b5..da5a635c622 100644 --- a/src/mess/drivers/tim100.c +++ b/src/mess/drivers/tim100.c @@ -56,7 +56,7 @@ static const rgb_t tim100_palette[3] = { void tim100_state::machine_reset() { - palette_set_colors(machine(), 0, tim100_palette, ARRAY_LENGTH(tim100_palette)); + m_palette->set_pen_colors(0, tim100_palette, ARRAY_LENGTH(tim100_palette)); } const gfx_layout tim100_charlayout = @@ -130,11 +130,11 @@ static MACHINE_CONFIG_START( tim100, tim100_state ) MCFG_SCREEN_SIZE(40*16, 16*16) MCFG_SCREEN_VISIBLE_AREA(0, 40*16-1, 0, 16*16-1) - MCFG_GFXDECODE_ADD("gfxdecode", tim100 ) + MCFG_GFXDECODE_ADD("gfxdecode", tim100 ) MCFG_I8275_ADD ( "i8276", tim100_i8276_interface) - MCFG_PALETTE_LENGTH(3) + MCFG_PALETTE_ADD("palette", 3) MCFG_DEVICE_ADD("uart_u17", I8251, 0) MCFG_DEVICE_ADD("uart_u18", I8251, 0) diff --git a/src/mess/drivers/tk80bs.c b/src/mess/drivers/tk80bs.c index 55023b5859b..e3286b2915e 100644 --- a/src/mess/drivers/tk80bs.c +++ b/src/mess/drivers/tk80bs.c @@ -69,7 +69,7 @@ UINT32 tk80bs_state::screen_update_tk80bs(screen_device &screen, bitmap_ind16 &b { int tile = m_p_videoram[count++]; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, 0, 0, 0, x*8, y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, 0, 0, 0, x*8, y*8); } } @@ -193,8 +193,7 @@ static MACHINE_CONFIG_START( tk80bs, tk80bs_state ) MCFG_SCREEN_SIZE(256, 128) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 128-1) MCFG_SCREEN_UPDATE_DRIVER(tk80bs_state, screen_update_tk80bs) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tk80bs) /* Devices */ diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c index 854da73f197..209742636e6 100644 --- a/src/mess/drivers/trs80.c +++ b/src/mess/drivers/trs80.c @@ -592,8 +592,7 @@ static MACHINE_CONFIG_START( trs80, trs80_state ) // the original model I, MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_trs80) MCFG_GFXDECODE_ADD("gfxdecode", trs80) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ @@ -677,8 +676,9 @@ static MACHINE_CONFIG_DERIVED( lnw80, model1 ) MCFG_GFXDECODE_MODIFY("gfxdecode",lnw80) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(trs80_state,lnw80) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(trs80_state,lnw80) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(80*6, 16*12) MCFG_SCREEN_VISIBLE_AREA(0,80*6-1,0,16*12-1) diff --git a/src/mess/drivers/tvc.c b/src/mess/drivers/tvc.c index 22385115c2e..d1f38341eaa 100644 --- a/src/mess/drivers/tvc.c +++ b/src/mess/drivers/tvc.c @@ -573,7 +573,7 @@ static MC6845_UPDATE_ROW( tvc_update_row ) } } -void tvc_state::palette_init() +PALETTE_INIT_MEMBER(tvc_state, tvc) { const static unsigned char tvc_palette[16][3] = { @@ -597,7 +597,7 @@ void tvc_state::palette_init() int i; for(i = 0; i < 16; i++) - palette_set_color_rgb(machine(), i, tvc_palette[i][0], tvc_palette[i][1], tvc_palette[i][2]); + palette.set_pen_color(i, tvc_palette[i][0], tvc_palette[i][1], tvc_palette[i][2]); } WRITE_LINE_MEMBER(tvc_state::tvc_int_ff_set) @@ -687,7 +687,8 @@ static MACHINE_CONFIG_START( tvc, tvc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 240 - 1) MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH( 16 ) + MCFG_PALETTE_ADD( "palette", 16 ) + MCFG_PALETTE_INIT_OWNER(tvc_state, tvc) MCFG_MC6845_ADD("crtc", MC6845, "screen", 3125000/2, tvc_crtc6845_interface) // clk taken from schematics diff --git a/src/mess/drivers/tx0.c b/src/mess/drivers/tx0.c index 9f1b71f7ecd..4911071ec06 100644 --- a/src/mess/drivers/tx0.c +++ b/src/mess/drivers/tx0.c @@ -228,7 +228,7 @@ static GFXDECODE_START( tx0 ) GFXDECODE_END /* Initialise the palette */ -void tx0_state::palette_init() +PALETTE_INIT_MEMBER(tx0_state, tx0) { /* rgb components for the two color emissions */ const double r1 = .1, g1 = .1, b1 = .924, r2 = .7, g2 = .7, b2 = .076; @@ -246,8 +246,6 @@ void tx0_state::palette_init() #endif UINT8 i, r, g, b; - machine().colortable = colortable_alloc(machine(), total_colors_needed); - /* initialize CRT palette */ /* compute the decay factor per refresh frame */ @@ -263,7 +261,7 @@ void tx0_state::palette_init() g = (int) ((g1*cur_level_1 + g2*cur_level_2) + .5); b = (int) ((b1*cur_level_1 + b2*cur_level_2) + .5); /* write color in palette */ - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); /* apply decay for next iteration */ cur_level_1 *= decay_1; cur_level_2 *= decay_2; @@ -283,22 +281,22 @@ void tx0_state::palette_init() mame_printf_debug("File %s line %d: Please take higher value for pen_crt_num_levels or smaller value for decay\n", __FILE__, __LINE__);*/ #endif #endif - colortable_palette_set_color(machine().colortable, 0, rgb_t(0, 0, 0)); + palette.set_indirect_color(0, rgb_t(0, 0, 0)); /* load static palette */ for ( i = 0; i < 6; i++ ) { r = tx0_colors[i*3]; g = tx0_colors[i*3+1]; b = tx0_colors[i*3+2]; - colortable_palette_set_color(machine().colortable, pen_crt_num_levels + i, rgb_t(r, g, b)); + palette.set_indirect_color(pen_crt_num_levels + i, rgb_t(r, g, b)); } /* copy colortable to palette */ for( i = 0; i < total_colors_needed; i++ ) - colortable_entry_set_value(machine().colortable, i, i); + palette.set_pen_indirect(i, i); /* set up palette for text */ for( i = 0; i < 6; i++ ) - colortable_entry_set_value(machine().colortable, total_colors_needed + i, tx0_palette[i]); + palette.set_pen_indirect(total_colors_needed + i, tx0_palette[i]); } @@ -1598,8 +1596,8 @@ static MACHINE_CONFIG_START( tx0_64kw, tx0_state ) MCFG_DEVICE_ADD("magtape", TX0_MAGTAPE, 0) MCFG_GFXDECODE_ADD("gfxdecode", tx0) - MCFG_PALETTE_LENGTH(pen_crt_num_levels + sizeof(tx0_colors) / 3 + sizeof(tx0_palette)) - + MCFG_PALETTE_ADD("palette", pen_crt_num_levels + sizeof(tx0_colors) / 3 + sizeof(tx0_palette)) + MCFG_PALETTE_INIT_OWNER(tx0_state, tx0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( tx0_8kw, tx0_64kw ) diff --git a/src/mess/drivers/uknc.c b/src/mess/drivers/uknc.c index efbc4a1b8a8..7c6d425e4be 100644 --- a/src/mess/drivers/uknc.c +++ b/src/mess/drivers/uknc.c @@ -72,8 +72,7 @@ static MACHINE_CONFIG_START( uknc, uknc_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(uknc_state, screen_update_uknc) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/unior.c b/src/mess/drivers/unior.c index 95d8f3b1177..1fa0118501e 100644 --- a/src/mess/drivers/unior.c +++ b/src/mess/drivers/unior.c @@ -291,7 +291,7 @@ static const rgb_t unior_palette[3] = PALETTE_INIT_MEMBER(unior_state,unior) { - palette_set_colors(machine(), 0, unior_palette, ARRAY_LENGTH(unior_palette)); + palette.set_pen_colors(0, unior_palette, ARRAY_LENGTH(unior_palette)); } @@ -439,8 +439,8 @@ static MACHINE_CONFIG_START( unior, unior_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", unior) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(unior_state,unior) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(unior_state,unior) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/unistar.c b/src/mess/drivers/unistar.c index 49165c6d1e4..d62d378fba0 100644 --- a/src/mess/drivers/unistar.c +++ b/src/mess/drivers/unistar.c @@ -21,7 +21,7 @@ public: virtual void machine_reset(); virtual void video_start(); - void palette_init_unistar(); + DECLARE_PALETTE_INIT(unistar); UINT32 screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); const UINT8 *m_p_chargen; private: @@ -54,9 +54,9 @@ void unistar_state::machine_reset() PALETTE_INIT_MEMBER( unistar_state, unistar ) { - palette_set_color_rgb( machine(), 0, 0, 0, 0 ); /* Black */ - palette_set_color_rgb( machine(), 1, 0, 255, 0 ); /* Full */ - palette_set_color_rgb( machine(), 2, 0, 128, 0 ); /* Dimmed */ + palette.set_pen_color(0, 0, 0, 0 ); /* Black */ + palette.set_pen_color(1, 0, 255, 0 ); /* Full */ + palette.set_pen_color(2, 0, 128, 0 ); /* Dimmed */ } void unistar_state::video_start() @@ -100,8 +100,8 @@ static MACHINE_CONFIG_START( unistar, unistar_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(unistar_state, screen_update_unistar) MCFG_GFXDECODE_ADD("gfxdecode", unistar) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(unistar_state, unistar) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(unistar_state, unistar) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/univac.c b/src/mess/drivers/univac.c index 308a4eef1d2..e4ac8240cc9 100644 --- a/src/mess/drivers/univac.c +++ b/src/mess/drivers/univac.c @@ -148,8 +148,7 @@ static MACHINE_CONFIG_START( uts20, univac_state ) MCFG_SCREEN_UPDATE_DRIVER(univac_state, screen_update) MCFG_SCREEN_SIZE(640, 250) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 249) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mess/drivers/unixpc.c b/src/mess/drivers/unixpc.c index db3854404f2..adf55de672d 100644 --- a/src/mess/drivers/unixpc.c +++ b/src/mess/drivers/unixpc.c @@ -212,8 +212,7 @@ static MACHINE_CONFIG_START( unixpc, unixpc_state ) MCFG_DEFAULT_LAYOUT(layout_unixpc) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") // internal ram MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/ut88.c b/src/mess/drivers/ut88.c index 909e9b4a1e9..61471a5b027 100644 --- a/src/mess/drivers/ut88.c +++ b/src/mess/drivers/ut88.c @@ -200,9 +200,8 @@ static MACHINE_CONFIG_START( ut88, ut88_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 28*8-1) MCFG_VIDEO_START_OVERRIDE(ut88_state,ut88) MCFG_SCREEN_UPDATE_DRIVER(ut88_state, screen_update_ut88) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) - MCFG_GFXDECODE_ADD("gfxdecode", ut88 ) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") + MCFG_GFXDECODE_ADD("gfxdecode", ut88 ) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/v6809.c b/src/mess/drivers/v6809.c index c0560759954..48dc6a8ad4b 100644 --- a/src/mess/drivers/v6809.c +++ b/src/mess/drivers/v6809.c @@ -346,8 +346,7 @@ static MACHINE_CONFIG_START( v6809, v6809_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", sy6545_1_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", v6809) /* sound hardware */ diff --git a/src/mess/drivers/vboy.c b/src/mess/drivers/vboy.c index 6daf247c354..2379174c904 100644 --- a/src/mess/drivers/vboy.c +++ b/src/mess/drivers/vboy.c @@ -211,7 +211,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(vboy); UINT32 screen_update_vboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_vboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(timer_main_tick); @@ -264,7 +264,7 @@ void vboy_state::put_obj(bitmap_ind16 &bitmap, const rectangle &cliprect, int x, if (dat) { if (cliprect.contains(res_x, res_y)) - bitmap.pix16((res_y), (res_x)) = machine().pens[col]; + bitmap.pix16((res_y), (res_x)) = m_palette->pen(col); } } } @@ -379,7 +379,7 @@ void vboy_state::draw_bg_map(bitmap_ind16 &bitmap, const rectangle &cliprect, UI } if(pix != -1) - bitmap.pix16(y1, x1) = machine().pens[pix & 3]; + bitmap.pix16(y1, x1) = m_palette->pen(pix & 3); } } // g_profiler.stop(); @@ -424,7 +424,7 @@ void vboy_state::draw_affine_map(bitmap_ind16 &bitmap, const rectangle &cliprect if(pix != -1) if (cliprect.contains(x1, y1)) - bitmap.pix16(y1, x1) = machine().pens[pix & 3]; + bitmap.pix16(y1, x1) = m_palette->pen(pix & 3); } } // g_profiler.stop(); @@ -545,7 +545,7 @@ UINT8 vboy_state::display_world(int num, bitmap_ind16 &bitmap, const rectangle & UINT32 vboy_state::screen_update_vboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[m_vip_regs.BKCOL], cliprect); + bitmap.fill(m_palette->pen(m_vip_regs.BKCOL), cliprect); int cur_spt; if(!(m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */ @@ -571,7 +571,7 @@ UINT32 vboy_state::screen_update_vboy_left(screen_device &screen, bitmap_ind16 & yi = ((y & 0x3)*2); pix = (pen >> yi) & 3; - bitmap.pix16(y, x) = machine().pens[pix & 3]; + bitmap.pix16(y, x) = m_palette->pen(pix & 3); } } } @@ -581,7 +581,7 @@ UINT32 vboy_state::screen_update_vboy_left(screen_device &screen, bitmap_ind16 & UINT32 vboy_state::screen_update_vboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[m_vip_regs.BKCOL], cliprect); + bitmap.fill(m_palette->pen(m_vip_regs.BKCOL), cliprect); int cur_spt; if(!(m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */ @@ -757,9 +757,9 @@ void vboy_state::m_set_brightness(void) if(c > 0xff) { c = 0xff; } // popmessage("%02x %02x %02x %02x",m_vip_regs.BRTA,m_vip_regs.BRTB,m_vip_regs.BRTC,m_vip_regs.REST); - palette_set_color_rgb(machine(), 1, a,0,0); - palette_set_color_rgb(machine(), 2, b,0,0); - palette_set_color_rgb(machine(), 3, c,0,0); + m_palette->set_pen_color(1, a,0,0); + m_palette->set_pen_color(2, b,0,0); + m_palette->set_pen_color(3, c,0,0); } READ16_MEMBER( vboy_state::vip_r ) @@ -1249,12 +1249,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(vboy_state::timer_pad_tick) m_maincpu->set_input_line(0, HOLD_LINE); } -void vboy_state::palette_init() +PALETTE_INIT_MEMBER(vboy_state, vboy) { - palette_set_color(machine(), 0, rgb_t::black); - palette_set_color(machine(), 1, rgb_t::black); - palette_set_color(machine(), 2, rgb_t::black); - palette_set_color(machine(), 3, rgb_t::black); + palette.set_pen_color(0, rgb_t::black); + palette.set_pen_color(1, rgb_t::black); + palette.set_pen_color(2, rgb_t::black); + palette.set_pen_color(3, rgb_t::black); } void vboy_state::m_set_irq(UINT16 irq_vector) @@ -1430,7 +1430,8 @@ static MACHINE_CONFIG_START( vboy, vboy_state ) /* video hardware */ MCFG_DEFAULT_LAYOUT(layout_vboy) - MCFG_PALETTE_LENGTH(4) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(vboy_state, vboy) /* Left screen */ MCFG_SCREEN_ADD("3dleft", RASTER) diff --git a/src/mess/drivers/vc4000.c b/src/mess/drivers/vc4000.c index 5e984d68545..14dc4c1ee88 100644 --- a/src/mess/drivers/vc4000.c +++ b/src/mess/drivers/vc4000.c @@ -355,9 +355,9 @@ static const rgb_t vc4000_palette[] = We can do that in the code with ^7 */ }; -void vc4000_state::palette_init() +PALETTE_INIT_MEMBER(vc4000_state, vc4000) { - palette_set_colors(machine(), 0, vc4000_palette, ARRAY_LENGTH(vc4000_palette)); + palette.set_pen_colors(0, vc4000_palette, ARRAY_LENGTH(vc4000_palette)); } DEVICE_IMAGE_LOAD_MEMBER( vc4000_state, vc4000_cart ) @@ -424,8 +424,8 @@ static MACHINE_CONFIG_START( vc4000, vc4000_state ) MCFG_SCREEN_VISIBLE_AREA(8, 184, 0, 269) MCFG_SCREEN_UPDATE_DRIVER(vc4000_state, screen_update_vc4000) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(vc4000_state, vc4000) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/vector06.c b/src/mess/drivers/vector06.c index 0960a51b0d0..eac86093689 100644 --- a/src/mess/drivers/vector06.c +++ b/src/mess/drivers/vector06.c @@ -175,7 +175,8 @@ static MACHINE_CONFIG_START( vector06, vector06_state ) MCFG_SCREEN_SIZE(256+64, 256+64) MCFG_SCREEN_VISIBLE_AREA(0, 256+64-1, 0, 256+64-1) MCFG_SCREEN_UPDATE_DRIVER(vector06_state, screen_update_vector06) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(vector06_state, vector06) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") diff --git a/src/mess/drivers/vg5k.c b/src/mess/drivers/vg5k.c index 90f46e1b197..f8bfa840e7c 100644 --- a/src/mess/drivers/vg5k.c +++ b/src/mess/drivers/vg5k.c @@ -390,7 +390,7 @@ static MACHINE_CONFIG_START( vg5k, vg5k_state ) MCFG_SCREEN_VISIBLE_AREA(00, 336-1, 00, 270-1) MCFG_GFXDECODE_ADD("gfxdecode", vg5k) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/victor9k.c b/src/mess/drivers/victor9k.c index 22244cb6597..a8b1b7e47bb 100644 --- a/src/mess/drivers/victor9k.c +++ b/src/mess/drivers/victor9k.c @@ -950,8 +950,7 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_MC6845_ADD(HD46505S_TAG, HD6845, SCREEN_TAG, 1000000, hd46505s_intf) // HD6845 == HD46505S diff --git a/src/mess/drivers/vii.c b/src/mess/drivers/vii.c index dca8bd83193..406cd9da72f 100644 --- a/src/mess/drivers/vii.c +++ b/src/mess/drivers/vii.c @@ -1120,7 +1120,7 @@ static MACHINE_CONFIG_START( vii, vii_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_CARTSLOT_ADD( "cart" ) MCFG_CARTSLOT_EXTENSION_LIST( "bin" ) @@ -1142,7 +1142,7 @@ static MACHINE_CONFIG_START( vsmile, vii_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_CARTSLOT_ADD( "cart" ) MCFG_CARTSLOT_EXTENSION_LIST( "bin" ) @@ -1167,7 +1167,7 @@ static MACHINE_CONFIG_START( batman, vii_state ) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MACHINE_CONFIG_END DRIVER_INIT_MEMBER(vii_state,vii) diff --git a/src/mess/drivers/vt100.c b/src/mess/drivers/vt100.c index 2eaa8a3b70b..a9474fd91b2 100644 --- a/src/mess/drivers/vt100.c +++ b/src/mess/drivers/vt100.c @@ -420,10 +420,10 @@ static MACHINE_CONFIG_START( vt100, vt100_state ) MCFG_SCREEN_SIZE(80*10, 25*10) MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1) MCFG_SCREEN_UPDATE_DRIVER(vt100_state, screen_update_vt100) + MCFG_SCREEN_PALETTE("vt100_video:palette") MCFG_GFXDECODE_ADD("gfxdecode", vt100) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) +// MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") MCFG_DEFAULT_LAYOUT( layout_vt100 ) diff --git a/src/mess/drivers/vt220.c b/src/mess/drivers/vt220.c index a08f1cb7769..3c26c8735f7 100644 --- a/src/mess/drivers/vt220.c +++ b/src/mess/drivers/vt220.c @@ -67,8 +67,7 @@ static MACHINE_CONFIG_START( vt220, vt220_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(vt220_state, screen_update_vt220) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/vt240.c b/src/mess/drivers/vt240.c index 3c7a8e395a6..8fcab8c374a 100644 --- a/src/mess/drivers/vt240.c +++ b/src/mess/drivers/vt240.c @@ -176,8 +176,7 @@ static MACHINE_CONFIG_START( vt240, vt240_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) // MCFG_VIDEO_START_OVERRIDE(vt240_state,vt240) MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MCFG_GFXDECODE_ADD("gfxdecode", vt240) MCFG_UPD7220_ADD("upd7220", XTAL_4MHz / 4, hgdc_intf, upd7220_map) //unknown clock diff --git a/src/mess/drivers/vt320.c b/src/mess/drivers/vt320.c index c4b86961435..88bfb15e198 100644 --- a/src/mess/drivers/vt320.c +++ b/src/mess/drivers/vt320.c @@ -93,8 +93,7 @@ static MACHINE_CONFIG_START( vt320, vt320_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(vt320_state, screen_update_vt320) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/vt520.c b/src/mess/drivers/vt520.c index f3beb5ff38c..2627ee36b2d 100644 --- a/src/mess/drivers/vt520.c +++ b/src/mess/drivers/vt520.c @@ -84,8 +84,7 @@ static MACHINE_CONFIG_START( vt520, vt520_state ) MCFG_SCREEN_SIZE(802, 480) MCFG_SCREEN_VISIBLE_AREA(0, 802-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(vt520_state, screen_update_vt520) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") // On the board there are two M5M44256BJ-7 chips // Which are DRAM 256K x 4bit diff --git a/src/mess/drivers/vta2000.c b/src/mess/drivers/vta2000.c index 935d6e27792..27e38c7144f 100644 --- a/src/mess/drivers/vta2000.c +++ b/src/mess/drivers/vta2000.c @@ -34,10 +34,10 @@ public: const UINT8 *m_p_chargen; UINT32 screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_shared_ptr m_p_videoram; + DECLARE_PALETTE_INIT(vta2000); private: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); required_device m_maincpu; }; @@ -150,11 +150,11 @@ static GFXDECODE_START( vta2000 ) GFXDECODE_ENTRY( "chargen", 0x0000, vta2000_charlayout, 0, 1 ) GFXDECODE_END -void vta2000_state::palette_init() +PALETTE_INIT_MEMBER(vta2000_state, vta2000) { - palette_set_color(machine(), 0, rgb_t::black); // black - palette_set_color_rgb(machine(), 1, 0x00, 0xc0, 0x00); // green - palette_set_color_rgb(machine(), 2, 0x00, 0xff, 0x00); // highlight + palette.set_pen_color(0, rgb_t::black); // black + palette.set_pen_color(1, 0x00, 0xc0, 0x00); // green + palette.set_pen_color(2, 0x00, 0xff, 0x00); // highlight } static MACHINE_CONFIG_START( vta2000, vta2000_state ) @@ -170,7 +170,8 @@ static MACHINE_CONFIG_START( vta2000, vta2000_state ) MCFG_SCREEN_SIZE(80*8, 25*12) MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 25*12-1) MCFG_SCREEN_UPDATE_DRIVER(vta2000_state, screen_update_vta2000) - MCFG_PALETTE_LENGTH(3) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(vta2000_state, vta2000) MCFG_GFXDECODE_ADD("gfxdecode", vta2000) MACHINE_CONFIG_END diff --git a/src/mess/drivers/vtech2.c b/src/mess/drivers/vtech2.c index 9e5485b9563..cd7ee8dd7da 100644 --- a/src/mess/drivers/vtech2.c +++ b/src/mess/drivers/vtech2.c @@ -379,23 +379,21 @@ static const rgb_t vt_colors[] = /* Initialise the palette */ -void vtech2_state::palette_init() +PALETTE_INIT_MEMBER(vtech2_state, vtech2) { int i; - machine().colortable = colortable_alloc(machine(), 16); - for ( i = 0; i < 16; i++ ) - colortable_palette_set_color(machine().colortable, i, vt_colors[i]); + palette.set_indirect_color(i, vt_colors[i]); for (i = 0; i < 256; i++) { - colortable_entry_set_value(machine().colortable, 2*i, i&15); - colortable_entry_set_value(machine().colortable, 2*i+1, i>>4); + palette.set_pen_indirect(2*i, i&15); + palette.set_pen_indirect(2*i+1, i>>4); } for (i = 0; i < 16; i++) - colortable_entry_set_value(machine().colortable, 512+i, i); + palette.set_pen_indirect(512+i, i); } INTERRUPT_GEN_MEMBER(vtech2_state::vtech2_interrupt) @@ -442,8 +440,9 @@ static MACHINE_CONFIG_START( laser350, vtech2_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 88*8-1, 0*8, 24*8+32-1) MCFG_SCREEN_UPDATE_DRIVER(vtech2_state, screen_update_laser) - MCFG_GFXDECODE_ADD("gfxdecode", vtech2 ) - MCFG_PALETTE_LENGTH(528) + MCFG_GFXDECODE_ADD("gfxdecode", vtech2 ) + MCFG_PALETTE_ADD("palette", 528) + MCFG_PALETTE_INIT_OWNER(vtech2_state, vtech2) /* sound hardware */ diff --git a/src/mess/drivers/wswan.c b/src/mess/drivers/wswan.c index 78de5af8e2c..81a111adf46 100644 --- a/src/mess/drivers/wswan.c +++ b/src/mess/drivers/wswan.c @@ -100,13 +100,13 @@ static GFXDECODE_START( wswan ) GFXDECODE_END /* WonderSwan can display 16 shades of grey */ -void wswan_state::palette_init() +PALETTE_INIT_MEMBER(wswan_state, wswan) { int ii; for (ii = 0; ii < 16; ii++) { UINT8 shade = ii * (256 / 16); - palette_set_color_rgb(machine(), 15 - ii, shade, shade, shade); + palette.set_pen_color(15 - ii, shade, shade, shade); } } @@ -118,7 +118,7 @@ PALETTE_INIT_MEMBER(wswan_state,wscolor) int r = (i & 0x0f00) >> 8; int g = (i & 0x00f0) >> 4; int b = i & 0x000f; - palette_set_color_rgb(machine(), i, r << 4, g << 4, b << 4); + palette.set_pen_color(i, r << 4, g << 4, b << 4); } } @@ -142,7 +142,8 @@ static MACHINE_CONFIG_START( wswan, wswan_state ) MCFG_GFXDECODE_ADD("gfxdecode", wswan) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(wswan_state, wswan) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -166,8 +167,10 @@ static MACHINE_CONFIG_DERIVED( wscolor, wswan ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(wscolor_mem) MCFG_MACHINE_START_OVERRIDE(wswan_state, wscolor ) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(wswan_state, wscolor ) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(wswan_state, wscolor ) /* software lists */ diff --git a/src/mess/drivers/x07.c b/src/mess/drivers/x07.c index 7f7bfe7dd3d..920bc222059 100644 --- a/src/mess/drivers/x07.c +++ b/src/mess/drivers/x07.c @@ -1070,10 +1070,10 @@ DEVICE_IMAGE_LOAD_MEMBER( x07_state, x07_card ) return IMAGE_INIT_PASS; } -void x07_state::palette_init() +PALETTE_INIT_MEMBER(x07_state, x07) { - palette_set_color(machine(), 0, rgb_t(138, 146, 148)); - palette_set_color(machine(), 1, rgb_t(92, 83, 88)); + palette.set_pen_color(0, rgb_t(138, 146, 148)); + palette.set_pen_color(1, rgb_t(92, 83, 88)); } @@ -1506,7 +1506,8 @@ static MACHINE_CONFIG_START( x07, x07_state ) MCFG_SCREEN_UPDATE_DRIVER(x07_state, screen_update) MCFG_SCREEN_SIZE(120, 32) MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 32-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD("palette", 2) + MCFG_PALETTE_INIT_OWNER(x07_state, x07) MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_GFXDECODE_ADD("gfxdecode", x07) diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c index 941ba50b9b1..95e6d4858dd 100644 --- a/src/mess/drivers/x1.c +++ b/src/mess/drivers/x1.c @@ -236,23 +236,23 @@ void x1_state::x1_draw_pixel(running_machine &machine, bitmap_rgb32 &bitmap,int if(width && height) { - bitmap.pix32(y+0+m_ystart, x+0+m_xstart) = machine.pens[pen]; - bitmap.pix32(y+0+m_ystart, x+1+m_xstart) = machine.pens[pen]; - bitmap.pix32(y+1+m_ystart, x+0+m_xstart) = machine.pens[pen]; - bitmap.pix32(y+1+m_ystart, x+1+m_xstart) = machine.pens[pen]; + bitmap.pix32(y+0+m_ystart, x+0+m_xstart) = m_palette->pen(pen); + bitmap.pix32(y+0+m_ystart, x+1+m_xstart) = m_palette->pen(pen); + bitmap.pix32(y+1+m_ystart, x+0+m_xstart) = m_palette->pen(pen); + bitmap.pix32(y+1+m_ystart, x+1+m_xstart) = m_palette->pen(pen); } else if(width) { - bitmap.pix32(y+m_ystart, x+0+m_xstart) = machine.pens[pen]; - bitmap.pix32(y+m_ystart, x+1+m_xstart) = machine.pens[pen]; + bitmap.pix32(y+m_ystart, x+0+m_xstart) = m_palette->pen(pen); + bitmap.pix32(y+m_ystart, x+1+m_xstart) = m_palette->pen(pen); } else if(height) { - bitmap.pix32(y+0+m_ystart, x+m_xstart) = machine.pens[pen]; - bitmap.pix32(y+1+m_ystart, x+m_xstart) = machine.pens[pen]; + bitmap.pix32(y+0+m_ystart, x+m_xstart) = m_palette->pen(pen); + bitmap.pix32(y+1+m_ystart, x+m_xstart) = m_palette->pen(pen); } else - bitmap.pix32(y+m_ystart, x+m_xstart) = machine.pens[pen]; + bitmap.pix32(y+m_ystart, x+m_xstart) = m_palette->pen(pen); } #define mc6845_h_char_total (m_crtc_vreg[0]) @@ -1204,7 +1204,7 @@ void x1_state::set_current_palette() g = ((m_x_g)>>(addr)) & 1; b = ((m_x_b)>>(addr)) & 1; - palette_set_color_rgb(machine(), addr|8, pal1bit(r), pal1bit(g), pal1bit(b)); + m_palette->set_pen_color(addr|8, pal1bit(r), pal1bit(g), pal1bit(b)); } } @@ -1221,7 +1221,7 @@ WRITE8_MEMBER( x1_state::x1turboz_4096_palette_w ) g = m_pal_4096[pal_entry+(2<<12)]; b = m_pal_4096[pal_entry+(0<<12)]; - palette_set_color_rgb(machine(), pal_entry+16, pal3bit(r), pal3bit(g), pal3bit(b)); + m_palette->set_pen_color(pal_entry+16, pal3bit(r), pal3bit(g), pal3bit(b)); } /* Note: docs claims that reading the palette ports makes the value to change somehow in X1 mode ... @@ -1402,7 +1402,7 @@ WRITE8_MEMBER( x1_state::x1turbo_txpal_w ) g = (data & 0x30) >> 4; b = (data & 0x03) >> 0; - palette_set_color_rgb(machine(), offset, pal2bit(r), pal2bit(g), pal2bit(b)); + m_palette->set_pen_color(offset, pal2bit(r), pal2bit(g), pal2bit(b)); } } @@ -2471,7 +2471,7 @@ MACHINE_RESET_MEMBER(x1_state,x1) /* Reinitialize palette here if there's a soft reset for the Turbo PAL stuff*/ for(i=0;i<0x10;i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + m_palette->set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); m_ram_bank = 0; // m_old_vpos = -1; @@ -2534,7 +2534,7 @@ PALETTE_INIT_MEMBER(x1_state,x1) int i; for(i=0;i<(0x10+0x1000);i++) - palette_set_color(machine(), i,rgb_t(0x00,0x00,0x00)); + palette.set_pen_color(i,rgb_t(0x00,0x00,0x00)); } static LEGACY_FLOPPY_OPTIONS_START( x1 ) @@ -2584,8 +2584,8 @@ static MACHINE_CONFIG_START( x1, x1_state ) MCFG_SCREEN_UPDATE_DRIVER(x1_state, screen_update_x1) MCFG_MC6845_ADD("crtc", H46505, "screen", (VDP_CLOCK/48), mc6845_intf) //unknown divider - MCFG_PALETTE_LENGTH(0x10+0x1000) - MCFG_PALETTE_INIT_OVERRIDE(x1_state,x1) + MCFG_PALETTE_ADD("palette", 0x10+0x1000) + MCFG_PALETTE_INIT_OWNER(x1_state,x1) MCFG_GFXDECODE_ADD("gfxdecode", x1) diff --git a/src/mess/drivers/x1twin.c b/src/mess/drivers/x1twin.c index ea3a29c7f1c..32bca554e84 100644 --- a/src/mess/drivers/x1twin.c +++ b/src/mess/drivers/x1twin.c @@ -561,8 +561,8 @@ static MACHINE_CONFIG_START( x1twin, x1twin_state ) MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce) MCFG_MC6845_ADD("crtc", H46505, "x1_screen", (VDP_CLOCK/48), mc6845_intf) //unknown divider - MCFG_PALETTE_LENGTH(0x10+0x1000) - MCFG_PALETTE_INIT_OVERRIDE(x1twin_state,x1) + MCFG_PALETTE_ADD("palette", 0x10+0x1000) + MCFG_PALETTE_INIT_OWNER(x1twin_state,x1) MCFG_GFXDECODE_ADD("gfxdecode", x1) diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c index b87237a5ce4..60fe96a8716 100644 --- a/src/mess/drivers/x68k.c +++ b/src/mess/drivers/x68k.c @@ -970,7 +970,7 @@ WRITE16_MEMBER(x68k_state::x68k_vid_w) { COMBINE_DATA(m_video.gfx_pal+offset); val = m_video.gfx_pal[offset]; - palette_set_color_rgb(machine(),offset,(val & 0x07c0) >> 3,(val & 0xf800) >> 8,(val & 0x003e) << 2); + m_palette->set_pen_color(offset,(val & 0x07c0) >> 3,(val & 0xf800) >> 8,(val & 0x003e) << 2); return; } @@ -978,7 +978,7 @@ WRITE16_MEMBER(x68k_state::x68k_vid_w) { COMBINE_DATA(m_video.text_pal+(offset-0x100)); val = m_video.text_pal[offset-0x100]; - palette_set_color_rgb(machine(),offset,(val & 0x07c0) >> 3,(val & 0xf800) >> 8,(val & 0x003e) << 2); + m_palette->set_pen_color(offset,(val & 0x07c0) >> 3,(val & 0xf800) >> 8,(val & 0x003e) << 2); return; } @@ -1951,8 +1951,8 @@ static MACHINE_CONFIG_FRAGMENT( x68000_base ) MCFG_SCREEN_UPDATE_DRIVER(x68k_state, screen_update_x68000) MCFG_GFXDECODE_ADD("gfxdecode", empty) - MCFG_PALETTE_LENGTH(65536) - MCFG_PALETTE_INIT_OVERRIDE(x68k_state, x68000 ) + MCFG_PALETTE_ADD("palette", 65536) + MCFG_PALETTE_INIT_OWNER(x68k_state, x68000 ) MCFG_VIDEO_START_OVERRIDE(x68k_state, x68000 ) diff --git a/src/mess/drivers/xavix.c b/src/mess/drivers/xavix.c index d0d1c088766..8810443894d 100644 --- a/src/mess/drivers/xavix.c +++ b/src/mess/drivers/xavix.c @@ -40,7 +40,6 @@ protected: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void xavix_state::video_start() @@ -140,10 +139,6 @@ void xavix_state::machine_reset() } -void xavix_state::palette_init() -{ -} - static MACHINE_CONFIG_START( xavix, xavix_state ) /* basic machine hardware */ @@ -160,7 +155,7 @@ static MACHINE_CONFIG_START( xavix, xavix_state ) MCFG_GFXDECODE_ADD("gfxdecode", xavix) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/xerox820.c b/src/mess/drivers/xerox820.c index e80885d550b..05bd3590f44 100644 --- a/src/mess/drivers/xerox820.c +++ b/src/mess/drivers/xerox820.c @@ -695,6 +695,7 @@ static MACHINE_CONFIG_START( xerox820, xerox820_state ) MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) MCFG_SCREEN_UPDATE_DRIVER(xerox820_state, screen_update) MCFG_SCREEN_RAW_PARAMS(XTAL_10_69425MHz, 700, 0, 560, 260, 0, 240) + MCFG_GFXDECODE_ADD("gfxdecode", xerox820) /* devices */ @@ -746,6 +747,7 @@ static MACHINE_CONFIG_START( xerox820ii, xerox820ii_state ) MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) MCFG_SCREEN_UPDATE_DRIVER(xerox820ii_state, screen_update) MCFG_SCREEN_RAW_PARAMS(XTAL_10_69425MHz, 700, 0, 560, 260, 0, 240) + MCFG_GFXDECODE_ADD("gfxdecode", xerox820ii) /* sound hardware */ diff --git a/src/mess/drivers/ymmu100.c b/src/mess/drivers/ymmu100.c index 4557acff18a..00b2d4712ce 100644 --- a/src/mess/drivers/ymmu100.c +++ b/src/mess/drivers/ymmu100.c @@ -100,8 +100,6 @@ public: DECLARE_READ8_MEMBER(p1_r); DECLARE_WRITE8_MEMBER(p2_w); DECLARE_READ8_MEMBER(p2_r); - - virtual void palette_init(); }; @@ -155,12 +153,6 @@ READ8_MEMBER(mu100_state::p2_r) return cur_p2; } -void mu100_state::palette_init() -{ - palette_set_color(machine(), 0, rgb_t(255, 255, 255)); - palette_set_color(machine(), 1, rgb_t(0, 0, 0)); -} - static ADDRESS_MAP_START( mu100_iomap, AS_IO, 8, mu100_state ) AM_RANGE(H8_PORT_1, H8_PORT_1) AM_READWRITE(p1_r, p1_w) AM_RANGE(H8_PORT_2, H8_PORT_2) AM_READWRITE(p2_r, p2_w) @@ -181,7 +173,7 @@ static MACHINE_CONFIG_START( mu100, mu100_state ) MCFG_SCREEN_UPDATE_DEVICE("lcd", hd44780_device, screen_update) MCFG_SCREEN_SIZE(20*6, 4*9) MCFG_SCREEN_VISIBLE_AREA(0, 20*6-1, 0, 4*9-1) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_WHITE_AND_BLACK("palette") MCFG_DEFAULT_LAYOUT(layout_lcd) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c index d9fe5fa7a7c..52bee796881 100644 --- a/src/mess/drivers/z100.c +++ b/src/mess/drivers/z100.c @@ -203,7 +203,6 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); UINT32 screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_INPUT_CHANGED_MEMBER(key_stroke); IRQ_CALLBACK_MEMBER(z100_irq_callback); @@ -263,7 +262,7 @@ UINT32 z100_state::screen_update_z100(screen_device &screen, bitmap_ind16 &bitma dot = m_display_mask; if(y*mc6845_tile_height+yi < 216 && x*8+xi < 640) /* TODO: safety check */ - bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = machine().pens[dot]; + bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = m_palette->pen(dot); } } } @@ -698,11 +697,6 @@ static const floppy_interface z100_floppy_interface = NULL }; -void z100_state::palette_init() -{ - // ... -} - void z100_state::machine_start() { m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(z100_state::z100_irq_callback),this)); @@ -716,12 +710,12 @@ void z100_state::machine_reset() if(ioport("CONFIG")->read() & 1) { for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i,pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); + m_palette->set_pen_color(i,pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0)); } else { for(i=0;i<8;i++) - palette_set_color_rgb(machine(), i,pal3bit(0),pal3bit(i),pal3bit(0)); + m_palette->set_pen_color(i,pal3bit(0),pal3bit(i),pal3bit(0)); } } @@ -739,7 +733,7 @@ static MACHINE_CONFIG_START( z100, z100_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(z100_state, screen_update_z100) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* Devices */ MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_14_31818MHz/8, mc6845_intf) /* unknown clock, hand tuned to get ~50/~60 fps */ diff --git a/src/mess/drivers/z1013.c b/src/mess/drivers/z1013.c index fa344e3eb5f..37b3340b691 100644 --- a/src/mess/drivers/z1013.c +++ b/src/mess/drivers/z1013.c @@ -409,8 +409,7 @@ static MACHINE_CONFIG_START( z1013, z1013_state ) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(z1013_state, screen_update_z1013) MCFG_GFXDECODE_ADD("gfxdecode", z1013) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, black_and_white) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/z88.c b/src/mess/drivers/z88.c index d66dee4b8a5..f823d572e06 100644 --- a/src/mess/drivers/z88.c +++ b/src/mess/drivers/z88.c @@ -657,7 +657,8 @@ static MACHINE_CONFIG_START( z88, z88_state ) MCFG_SCREEN_VISIBLE_AREA(0, (Z88_SCREEN_WIDTH - 1), 0, (Z88_SCREEN_HEIGHT - 1)) MCFG_SCREEN_UPDATE_DEVICE("blink", upd65031_device, screen_update) - MCFG_PALETTE_LENGTH(Z88_NUM_COLOURS) + MCFG_PALETTE_ADD("palette", Z88_NUM_COLOURS) + MCFG_PALETTE_INIT_OWNER(z88_state, z88) MCFG_DEFAULT_LAYOUT(layout_lcd) diff --git a/src/mess/drivers/z9001.c b/src/mess/drivers/z9001.c index 3b13778f2c1..a7987691668 100644 --- a/src/mess/drivers/z9001.c +++ b/src/mess/drivers/z9001.c @@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( z9001, z9001_state ) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 24*8-1) MCFG_SCREEN_UPDATE_DRIVER(z9001_state, screen_update_z9001) MCFG_GFXDECODE_ADD("gfxdecode", z9001) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* Sound */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/zaurus.c b/src/mess/drivers/zaurus.c index eb5db827b39..20b8b7a68df 100644 --- a/src/mess/drivers/zaurus.c +++ b/src/mess/drivers/zaurus.c @@ -1446,7 +1446,6 @@ protected: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; #define VERBOSE_LEVEL ( 5 ) @@ -1729,10 +1728,6 @@ void zaurus_state::machine_reset() } -void zaurus_state::palette_init() -{ -} - /* TODO: Hack */ TIMER_DEVICE_CALLBACK_MEMBER(zaurus_state::rtc_irq_callback) { @@ -1764,7 +1759,7 @@ static MACHINE_CONFIG_START( zaurus, zaurus_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/zorba.c b/src/mess/drivers/zorba.c index 7112f32cb7e..702f348c5ed 100644 --- a/src/mess/drivers/zorba.c +++ b/src/mess/drivers/zorba.c @@ -64,7 +64,7 @@ public: public: const UINT8 *m_p_chargen; UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void palette_init_zorba(); + DECLARE_PALETTE_INIT(zorba); required_shared_ptr m_p_videoram; DECLARE_DRIVER_INIT(zorba); DECLARE_MACHINE_RESET(zorba); @@ -250,9 +250,9 @@ WRITE8_MEMBER( zorba_state::pia0_porta_w ) PALETTE_INIT_MEMBER( zorba_state, zorba ) { - palette_set_color_rgb( machine(), 0, 0, 0, 0 ); /* Black */ - palette_set_color_rgb( machine(), 1, 0, 255, 0 ); /* Full */ - palette_set_color_rgb( machine(), 2, 0, 128, 0 ); /* Dimmed */ + palette.set_pen_color(0, 0, 0, 0 ); /* Black */ + palette.set_pen_color(1, 0, 255, 0 ); /* Full */ + palette.set_pen_color(2, 0, 128, 0 ); /* Dimmed */ } static I8275_DISPLAY_PIXELS( zorba_update_chr ) @@ -356,8 +356,8 @@ static MACHINE_CONFIG_START( zorba, zorba_state ) MCFG_SCREEN_UPDATE_DRIVER(zorba_state, screen_update) MCFG_SCREEN_SIZE(640, 276) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 275) - MCFG_PALETTE_LENGTH(3) - MCFG_PALETTE_INIT_OVERRIDE(zorba_state, zorba) + MCFG_PALETTE_ADD("palette", 3) + MCFG_PALETTE_INIT_OWNER(zorba_state, zorba) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/zrt80.c b/src/mess/drivers/zrt80.c index 72092fbfb6d..18337b17417 100644 --- a/src/mess/drivers/zrt80.c +++ b/src/mess/drivers/zrt80.c @@ -317,8 +317,7 @@ static MACHINE_CONFIG_START( zrt80, zrt80_state ) MCFG_SCREEN_SIZE(640, 200) MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 200 - 1) MCFG_GFXDECODE_ADD("gfxdecode", zrt80) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green) + MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/zx.c b/src/mess/drivers/zx.c index bfd15612ee5..d03066a1fff 100644 --- a/src/mess/drivers/zx.c +++ b/src/mess/drivers/zx.c @@ -326,20 +326,20 @@ GFXDECODE_END /* Palette Initialization */ -void zx_state::palette_init() +PALETTE_INIT_MEMBER(zx_state, zx) { - palette_set_color(machine(),0,rgb_t::white); /* white */ - palette_set_color(machine(),1,rgb_t::black); /* black */ - palette_set_color(machine(),2,rgb_t::black); /* black */ - palette_set_color(machine(),3,rgb_t::white); /* white */ + palette.set_pen_color(0,rgb_t::white); /* white */ + palette.set_pen_color(1,rgb_t::black); /* black */ + palette.set_pen_color(2,rgb_t::black); /* black */ + palette.set_pen_color(3,rgb_t::white); /* white */ } PALETTE_INIT_MEMBER(zx_state,ts1000) { - palette_set_color(machine(),0,rgb_t(64, 244, 244)); /* cyan */ - palette_set_color(machine(),1,rgb_t::black); /* black */ - palette_set_color(machine(),2,rgb_t::black); /* black */ - palette_set_color(machine(),3,rgb_t(64, 244, 244)); /* cyan */ + palette.set_pen_color(0,rgb_t(64, 244, 244)); /* cyan */ + palette.set_pen_color(1,rgb_t::black); /* black */ + palette.set_pen_color(2,rgb_t::black); /* black */ + palette.set_pen_color(3,rgb_t(64, 244, 244)); /* cyan */ } @@ -398,8 +398,8 @@ static MACHINE_CONFIG_START( zx80, zx_state ) MCFG_SCREEN_VBLANK_DRIVER(zx_state, screen_eof_zx) MCFG_GFXDECODE_ADD("gfxdecode", zx80) - MCFG_PALETTE_LENGTH(4) - + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(zx_state,zx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -427,8 +427,8 @@ static MACHINE_CONFIG_DERIVED( zx81, zx80 ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ts1000, zx81 ) - - MCFG_PALETTE_INIT_OVERRIDE(zx_state,ts1000) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(zx_state,ts1000) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ts1500, ts1000 ) -- cgit v1.2.3