diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2014-02-27 13:35:15 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2014-02-27 13:35:15 +0000 |
commit | 64ac8f6776fc4451d756b0eb3bb6dbd22c49801a (patch) | |
tree | bb1d096fecec4684c8ab2b7be1b4d539ca06e57b /src/mame/drivers | |
parent | f9d3fbaa73ccdab2e5fcf9fc095a14b4f24c3133 (diff) |
Huge update, palette is now device (nw)
note: Aaron please give more descriptive text for release log I have no more strength :)
Diffstat (limited to 'src/mame/drivers')
1011 files changed, 5624 insertions, 4613 deletions
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c index 5606592f093..c419b43e579 100644 --- a/src/mame/drivers/1942.c +++ b/src/mame/drivers/1942.c @@ -191,7 +191,7 @@ WRITE8_MEMBER(_1942_state::c1942p_palette_w) int g = (data & 0x38) >> 3; int b = (data & 0xc0) >> 6; - colortable_palette_set_color(machine().colortable, offset, rgb_t(r<<5,g<<5,b<<6)); + m_palette->set_indirect_color(offset, rgb_t(r<<5,g<<5,b<<6)); } static ADDRESS_MAP_START( c1942p_map, AS_PROGRAM, 8, _1942_state ) @@ -541,7 +541,9 @@ static MACHINE_CONFIG_START( 1942, _1942_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", 1942) - MCFG_PALETTE_LENGTH(64*4+4*32*8+16*16) + + MCFG_PALETTE_ADD("palette", 64*4+4*32*8+16*16) + MCFG_PALETTE_INIT_OWNER(_1942_state, 1942) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -598,8 +600,8 @@ static MACHINE_CONFIG_START( 1942p, _1942_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", 1942p) - MCFG_PALETTE_LENGTH(0x500) - MCFG_PALETTE_INIT_OVERRIDE(_1942_state, 1942p) + MCFG_PALETTE_ADD("palette", 0x500) + MCFG_PALETTE_INIT_OWNER(_1942_state, 1942p) MCFG_VIDEO_START_OVERRIDE(_1942_state,c1942p) MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c index 8b60947b1cd..e7ff9142da4 100644 --- a/src/mame/drivers/1943.c +++ b/src/mame/drivers/1943.c @@ -321,7 +321,8 @@ static MACHINE_CONFIG_START( 1943, _1943_state ) MCFG_SCREEN_UPDATE_DRIVER(_1943_state, screen_update_1943) MCFG_GFXDECODE_ADD("gfxdecode", 1943) - MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16) + MCFG_PALETTE_ADD("palette", 32*4+16*16+16*16+16*16) + MCFG_PALETTE_INIT_OWNER(_1943_state, 1943) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c index 29f76197eab..b8cea59e7cd 100644 --- a/src/mame/drivers/1945kiii.c +++ b/src/mame/drivers/1945kiii.c @@ -118,10 +118,10 @@ void k3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) ypos = (source[0] & 0x00ff) >> 0; tileno = (source2[0] & 0x7ffe) >> 1; xpos |= (source2[0] & 0x0001) << 8; - gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos, 0); - gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos - 0x100, 0); // wrap - gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos, 0); // wrap - gfx->transpen(bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos - 0x100, 0); // wrap + gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos, 0); + gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos, ypos - 0x100, 0); // wrap + gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos, 0); // wrap + gfx->transpen(m_palette,bitmap,cliprect, tileno, 1, 0, 0, xpos - 0x200, ypos - 0x100, 0); // wrap source++; source2++; @@ -158,7 +158,7 @@ static ADDRESS_MAP_START( k3_map, AS_PROGRAM, 16, k3_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM // Main Ram - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") // palette + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette AM_RANGE(0x240000, 0x240fff) AM_RAM AM_SHARE("spritera1") AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("spritera2") AM_RANGE(0x2c0000, 0x2c0fff) AM_RAM_WRITE(k3_bgram_w) AM_SHARE("bgram") @@ -273,8 +273,8 @@ static MACHINE_CONFIG_START( k3, k3_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(k3_state, screen_update_k3) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index 1a3f8f74834..0550204161d 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -224,7 +224,7 @@ static ADDRESS_MAP_START( drill_map, AS_PROGRAM, 16, _2mindril_state ) AM_RANGE(0x430000, 0x43ffff) AM_READWRITE(f3_pivot_r,f3_pivot_w) AM_RANGE(0x460000, 0x46000f) AM_WRITE(f3_control_0_w) AM_RANGE(0x460010, 0x46001f) AM_WRITE(f3_control_1_w) - AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500000, 0x501fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x502022, 0x502023) AM_WRITENOP //countinously switches between 0 and 2 AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ymsnd", ym2610_device, read, write, 0x00ff) AM_RANGE(0x60000c, 0x60000d) AM_READWRITE(drill_irq_r,drill_irq_w) @@ -463,7 +463,8 @@ static MACHINE_CONFIG_START( drill, _2mindril_state ) MCFG_SCREEN_UPDATE_DRIVER(_2mindril_state, screen_update_f3) MCFG_SCREEN_VBLANK_DRIVER(_2mindril_state, screen_eof_f3) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(_2mindril_state,f3) diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c index ce591e1384b..4adc5d94ac9 100644 --- a/src/mame/drivers/39in1.c +++ b/src/mame/drivers/39in1.c @@ -1101,7 +1101,7 @@ void _39in1_state::pxa255_lcd_dma_kickoff(int channel) { UINT16 color = space.read_word((lcd_regs->dma[channel].fsadr &~ 1) + index); m_pxa255_lcd_palette[index >> 1] = (((((color >> 11) & 0x1f) << 3) | (color >> 13)) << 16) | (((((color >> 5) & 0x3f) << 2) | ((color >> 9) & 0x3)) << 8) | (((color & 0x1f) << 3) | ((color >> 2) & 0x7)); - palette_set_color_rgb(machine(), index >> 1, (((color >> 11) & 0x1f) << 3) | (color >> 13), (((color >> 5) & 0x3f) << 2) | ((color >> 9) & 0x3), ((color & 0x1f) << 3) | ((color >> 2) & 0x7)); + m_palette->set_pen_color(index >> 1, (((color >> 11) & 0x1f) << 3) | (color >> 13), (((color >> 5) & 0x3f) << 2) | ((color >> 9) & 0x3), ((color & 0x1f) << 3) | ((color >> 2) & 0x7)); } } else @@ -1580,8 +1580,6 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state ) MCFG_CPU_PROGRAM_MAP(39in1_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", _39in1_state, pxa255_vblank_start) - MCFG_PALETTE_LENGTH(32768) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -1589,7 +1587,7 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state ) MCFG_SCREEN_VISIBLE_AREA(0, 295, 0, 479) MCFG_SCREEN_UPDATE_DRIVER(_39in1_state, screen_update_39in1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_EEPROM_SERIAL_93C66_ADD("eeprom") diff --git a/src/mame/drivers/3x3puzzl.c b/src/mame/drivers/3x3puzzl.c index fabcf9d2a1c..67cf00b54aa 100644 --- a/src/mame/drivers/3x3puzzl.c +++ b/src/mame/drivers/3x3puzzl.c @@ -211,7 +211,7 @@ static ADDRESS_MAP_START( _3x3puzzle_map, AS_PROGRAM, 16, _3x3puzzle_state ) AM_RANGE(0x201000, 0x201fff) AM_RAM AM_SHARE("videoram2") AM_RANGE(0x202000, 0x202fff) AM_RAM AM_SHARE("videoram3") AM_RANGE(0x280000, 0x280001) AM_READ_PORT("VBLANK") - AM_RANGE(0x300000, 0x3005ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x3005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x400001) AM_WRITE(tilemap1_scrollx_w) AM_RANGE(0x480000, 0x480001) AM_WRITE(tilemap1_scrolly_w) AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") @@ -394,7 +394,8 @@ static MACHINE_CONFIG_START( _3x3puzzle, _3x3puzzle_state ) MCFG_GFXDECODE_ADD("gfxdecode", _3x3puzzle) - MCFG_PALETTE_LENGTH(0x600/2) + MCFG_PALETTE_ADD("palette", 0x600/2) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c index 80c38d756a7..2d929e0eaad 100644 --- a/src/mame/drivers/40love.c +++ b/src/mame/drivers/40love.c @@ -1075,8 +1075,8 @@ static MACHINE_CONFIG_START( 40love, fortyl_state ) MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl) MCFG_GFXDECODE_ADD("gfxdecode", 40love) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(fortyl_state, fortyl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1130,8 +1130,8 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state ) MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl) MCFG_GFXDECODE_ADD("gfxdecode", 40love) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(fortyl_state, fortyl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c index 9ca2ab73595..0cd84758832 100644 --- a/src/mame/drivers/4enraya.c +++ b/src/mame/drivers/4enraya.c @@ -301,13 +301,13 @@ void _4enraya_state::machine_reset() m_last_snd_ctrl = 0; } -void _4enraya_state::palette_init() +PALETTE_INIT_MEMBER(_4enraya_state, _4enraya) { int i; /* RGB format */ for(i=0;i<8;i++) - palette_set_color(machine(), i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2))); + m_palette->set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2))); } static MACHINE_CONFIG_START( 4enraya, _4enraya_state ) @@ -329,8 +329,8 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state ) MCFG_GFXDECODE_ADD("gfxdecode", 4enraya) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(_4enraya_state, _4enraya) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c index 0bab35a3060..8fa0d138b29 100644 --- a/src/mame/drivers/4roses.c +++ b/src/mame/drivers/4roses.c @@ -403,8 +403,8 @@ static MACHINE_CONFIG_START( 4roses, _4roses_state ) MCFG_GFXDECODE_ADD("gfxdecode", 4roses) - MCFG_PALETTE_LENGTH(0x1000) - MCFG_PALETTE_INIT_OVERRIDE(_4roses_state,funworld) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_INIT_OWNER(_4roses_state,funworld) MCFG_VIDEO_START_OVERRIDE(_4roses_state,funworld) // MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/8, mc6845_intf) /* 2MHz, guess */ diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index 5f45edb33e8..c6998f8fa56 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -490,7 +490,7 @@ public: DECLARE_DRIVER_INIT(fclown); TILE_GET_INFO_MEMBER(get_fclown_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(_5clown); UINT32 screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<cpu_device> m_audiocpu; @@ -552,7 +552,7 @@ UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16 & return 0; } -void _5clown_state::palette_init() +PALETTE_INIT_MEMBER(_5clown_state, _5clown) { const UINT8 *color_prom = memregion("proms")->base(); /* @@ -569,7 +569,7 @@ void _5clown_state::palette_init() if (color_prom == 0) return; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < m_palette->entries();i++) { int bit0, bit1, bit2, bit3, r, g, b, bk; @@ -589,7 +589,7 @@ void _5clown_state::palette_init() bit2 = (color_prom[i] >> 2) & 0x01; b = bk * (bit2 * 0xff); - palette_set_color(machine(), i, rgb_t(r, g, b)); + m_palette->set_pen_color(i, rgb_t(r, g, b)); } } @@ -1064,8 +1064,8 @@ static MACHINE_CONFIG_START( fclown, _5clown_state ) MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown) MCFG_GFXDECODE_ADD("gfxdecode", fclown) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(_5clown_state, _5clown) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 2effdb32b69..08e1feed3b2 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -1265,8 +1265,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( rollingc, mw8080bw_root, _8080bw_state ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_rollingc) - MCFG_PALETTE_LENGTH(16) - MCFG_PALETTE_INIT_OVERRIDE(_8080bw_state, rollingc) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(_8080bw_state, rollingc) /* sound hardware */ MCFG_FRAGMENT_ADD(invaders_samples_audio) diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c index 210bbca16fb..2480671c2ec 100644 --- a/src/mame/drivers/88games.c +++ b/src/mame/drivers/88games.c @@ -117,7 +117,7 @@ WRITE8_MEMBER(_88games_state::k052109_051960_w) static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("banked_rom") /* banked ROM + palette RAM */ - AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram_1000") /* banked ROM + palette RAM */ + AM_RANGE(0x1000, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* banked ROM + palette RAM */ AM_RANGE(0x2000, 0x2fff) AM_RAM AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_SHARE("ram") @@ -359,8 +359,6 @@ static MACHINE_CONFIG_START( 88games, _88games_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -368,16 +366,21 @@ static MACHINE_CONFIG_START( 88games, _88games_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(_88games_state, screen_update_88games) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", _88games_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", _88games_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K051316_ADD("k051316", _88games_k051316_intf) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c index f786ef4e229..ca0d6fd7bc4 100644 --- a/src/mame/drivers/ace.c +++ b/src/mame/drivers/ace.c @@ -71,7 +71,6 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void ace_postload(); required_device<gfxdecode_device> m_gfxdecode; @@ -98,19 +97,19 @@ UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitma /* first of all, fill the screen with the background color */ bitmap.fill(0, cliprect); - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, 0, 0, 0, 0, m_objpos[0], m_objpos[1]); - m_gfxdecode->gfx(2)->opaque(bitmap,cliprect, + m_gfxdecode->gfx(2)->opaque(m_palette,bitmap,cliprect, 0, 0, 0, 0, m_objpos[2], m_objpos[3]); - m_gfxdecode->gfx(3)->opaque(bitmap,cliprect, + m_gfxdecode->gfx(3)->opaque(m_palette,bitmap,cliprect, 0, 0, 0, 0, @@ -118,7 +117,7 @@ UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitma for (offs = 0; offs < 8; offs++) { - m_gfxdecode->gfx(4)->opaque(bitmap,/* ?? */ + m_gfxdecode->gfx(4)->opaque(m_palette,bitmap,/* ?? */ cliprect, offs, 0, @@ -129,13 +128,6 @@ UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitma } -void aceal_state::palette_init() -{ - palette_set_color(machine(), 0, rgb_t(0x00,0x00,0x00)); /* black */ - palette_set_color(machine(), 1, rgb_t(0xff,0xff,0xff)); /* white */ -} - - WRITE8_MEMBER(aceal_state::ace_characterram_w) { if (m_characterram[offset] != data) @@ -360,7 +352,7 @@ static MACHINE_CONFIG_START( ace, aceal_state ) MCFG_SCREEN_UPDATE_DRIVER(aceal_state, screen_update_ace) MCFG_GFXDECODE_ADD("gfxdecode", ace) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ /* ???? */ diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index 8cc4ee383cb..26930d62d91 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -42,7 +42,7 @@ public: DECLARE_CUSTOM_INPUT_MEMBER(starspnr_payout_r); DECLARE_DRIVER_INIT(sidewndr); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(acefruit); UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(acefruit_vblank); void acefruit_update_irq(int vpos); @@ -130,7 +130,7 @@ UINT32 acefruit_state::screen_update_acefruit(screen_device &screen, bitmap_ind1 if( color < 0x4 ) { - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, code, color, 0, 0, col * 16, row * 8 ); + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, code, color, 0, 0, col * 16, row * 8 ); } else if( color >= 0x5 && color <= 0x7 ) { @@ -282,27 +282,27 @@ WRITE8_MEMBER(acefruit_state::acefruit_solenoid_w) } } -void acefruit_state::palette_init() +PALETTE_INIT_MEMBER(acefruit_state, acefruit) { /* sprites */ - palette_set_color( machine(), 0, rgb_t(0x00, 0x00, 0x00) ); - palette_set_color( machine(), 1, rgb_t(0x00, 0x00, 0xff) ); - palette_set_color( machine(), 2, rgb_t(0x00, 0xff, 0x00) ); - palette_set_color( machine(), 3, rgb_t(0xff, 0x7f, 0x00) ); - palette_set_color( machine(), 4, rgb_t(0xff, 0x00, 0x00) ); - palette_set_color( machine(), 5, rgb_t(0xff, 0xff, 0x00) ); - palette_set_color( machine(), 6, rgb_t(0xff, 0xff, 0xff) ); - palette_set_color( machine(), 7, rgb_t(0x7f, 0x3f, 0x1f) ); + palette.set_pen_color( 0, rgb_t(0x00, 0x00, 0x00) ); + palette.set_pen_color( 1, rgb_t(0x00, 0x00, 0xff) ); + palette.set_pen_color( 2, rgb_t(0x00, 0xff, 0x00) ); + palette.set_pen_color( 3, rgb_t(0xff, 0x7f, 0x00) ); + palette.set_pen_color( 4, rgb_t(0xff, 0x00, 0x00) ); + palette.set_pen_color( 5, rgb_t(0xff, 0xff, 0x00) ); + palette.set_pen_color( 6, rgb_t(0xff, 0xff, 0xff) ); + palette.set_pen_color( 7, rgb_t(0x7f, 0x3f, 0x1f) ); /* tiles */ - palette_set_color( machine(), 8, rgb_t(0x00, 0x00, 0x00) ); - palette_set_color( machine(), 9, rgb_t(0xff, 0xff, 0xff) ); - palette_set_color( machine(), 10, rgb_t(0x00, 0x00, 0x00) ); - palette_set_color( machine(), 11, rgb_t(0x00, 0x00, 0xff) ); - palette_set_color( machine(), 12, rgb_t(0x00, 0x00, 0x00) ); - palette_set_color( machine(), 13, rgb_t(0x00, 0xff, 0x00) ); - palette_set_color( machine(), 14, rgb_t(0x00, 0x00, 0x00) ); - palette_set_color( machine(), 15, rgb_t(0xff, 0x00, 0x00) ); + palette.set_pen_color( 8, rgb_t(0x00, 0x00, 0x00) ); + palette.set_pen_color( 9, rgb_t(0xff, 0xff, 0xff) ); + palette.set_pen_color( 10, rgb_t(0x00, 0x00, 0x00) ); + palette.set_pen_color( 11, rgb_t(0x00, 0x00, 0xff) ); + palette.set_pen_color( 12, rgb_t(0x00, 0x00, 0x00) ); + palette.set_pen_color( 13, rgb_t(0x00, 0xff, 0x00) ); + palette.set_pen_color( 14, rgb_t(0x00, 0x00, 0x00) ); + palette.set_pen_color( 15, rgb_t(0xff, 0x00, 0x00) ); } static ADDRESS_MAP_START( acefruit_map, AS_PROGRAM, 8, acefruit_state ) @@ -614,7 +614,8 @@ static MACHINE_CONFIG_START( acefruit, acefruit_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255) MCFG_SCREEN_UPDATE_DRIVER(acefruit_state, screen_update_acefruit) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(acefruit_state, acefruit) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c index 7f651baa333..247ec8c70b3 100644 --- a/src/mame/drivers/acommand.c +++ b/src/mame/drivers/acommand.c @@ -177,7 +177,7 @@ void acommand_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec xx = w; do { - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, @@ -470,7 +470,7 @@ static ADDRESS_MAP_START( acommand_map, AS_PROGRAM, 16, acommand_state ) AM_RANGE(0x082208, 0x082209) AM_WRITE(ac_unk2_w) AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM_WRITE(ac_bgvram_w) AM_SHARE("ac_bgvram") AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(ac_txvram_w) AM_SHARE("ac_txvram") - AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM AM_RANGE(0x0f8000, 0x0f8fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x0f9000, 0x0fffff) AM_RAM @@ -620,8 +620,8 @@ static MACHINE_CONFIG_START( acommand, acommand_state ) MCFG_SCREEN_UPDATE_DRIVER(acommand_state, screen_update_acommand) MCFG_GFXDECODE_ADD("gfxdecode", acommand) - MCFG_PALETTE_LENGTH(0x4000) - + MCFG_PALETTE_ADD("palette", 0x4000) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c index bf4e6563522..f4c3c7a5cdf 100644 --- a/src/mame/drivers/actfancr.c +++ b/src/mame/drivers/actfancr.c @@ -79,7 +79,7 @@ static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8, actfancr_state ) AM_RANGE(0x072000, 0x0727ff) AM_DEVREADWRITE("tilegen2", deco_bac06_device, pf_data_8bit_swap_r, pf_data_8bit_swap_w) AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w) - AM_RANGE(0x120000, 0x1205ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0x120000, 0x1205ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x130000, 0x130000) AM_READ_PORT("P1") AM_RANGE(0x130001, 0x130001) AM_READ_PORT("P2") AM_RANGE(0x130002, 0x130002) AM_READ_PORT("DSW1") @@ -102,7 +102,7 @@ static ADDRESS_MAP_START( triothep_map, AS_PROGRAM, 8, actfancr_state ) AM_RANGE(0x100000, 0x100001) AM_WRITE(actfancr_sound_w) AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w) AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x130000, 0x1305ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0x130000, 0x1305ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x140001) AM_READNOP /* Value doesn't matter */ AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_SHARE("main_ram") /* Main ram */ AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(triothep_control_r, triothep_control_select_w) @@ -326,7 +326,9 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state ) MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr) MCFG_GFXDECODE_ADD("gfxdecode", actfan) - MCFG_PALETTE_LENGTH(768) + + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) deco_bac06_device::set_gfx_region_wide(*device,2,2,2); @@ -338,6 +340,7 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 1); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -378,7 +381,9 @@ static MACHINE_CONFIG_START( triothep, actfancr_state ) MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr) MCFG_GFXDECODE_ADD("gfxdecode", triothep) - MCFG_PALETTE_LENGTH(768) + + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) deco_bac06_device::set_gfx_region_wide(*device,2,2,0); @@ -390,6 +395,7 @@ static MACHINE_CONFIG_START( triothep, actfancr_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 1); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c index 57bba2d241e..8b68e53513b 100644 --- a/src/mame/drivers/adp.c +++ b/src/mame/drivers/adp.c @@ -316,7 +316,7 @@ PALETTE_INIT_MEMBER(adp_state,adp) { int i; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2, r, g, b; @@ -337,7 +337,7 @@ PALETTE_INIT_MEMBER(adp_state,adp) bit2 = (i >> 2) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r,g,b)); + palette.set_pen_color(i, rgb_t(r,g,b)); } } @@ -459,7 +459,7 @@ WRITE8_MEMBER(adp_state::ramdac_io_w) break; case 2: m_pal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4); - palette_set_color(machine(), m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b)); + m_palette->set_pen_color(m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b)); m_pal.offs_internal = 0; m_pal.offs++; m_pal.offs&=0xff; @@ -641,9 +641,9 @@ static MACHINE_CONFIG_START( quickjac, adp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) MCFG_SCREEN_UPDATE_DRIVER(adp_state, screen_update) - MCFG_PALETTE_LENGTH(0x10) + MCFG_PALETTE_ADD("palette", 0x10) - MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp) + MCFG_PALETTE_INIT_OWNER(adp_state,adp) MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map) @@ -677,9 +677,9 @@ static MACHINE_CONFIG_START( skattv, adp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) MCFG_SCREEN_UPDATE_DRIVER(adp_state, screen_update) - MCFG_PALETTE_LENGTH(0x10) + MCFG_PALETTE_ADD("palette", 0x10) - MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp) + MCFG_PALETTE_INIT_OWNER(adp_state,adp) MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map) @@ -712,9 +712,9 @@ static MACHINE_CONFIG_START( backgamn, adp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(adp_state, screen_update) - MCFG_PALETTE_LENGTH(0x10) + MCFG_PALETTE_ADD("palette", 0x10) -// MCFG_PALETTE_INIT_OVERRIDE(adp_state,adp) +// MCFG_PALETTE_INIT_OWNER(adp_state,adp) MCFG_H63484_ADD("h63484", 0, adp_h63484_intf, adp_h63484_map) @@ -734,8 +734,8 @@ static MACHINE_CONFIG_DERIVED( funland, fashiong ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(funland_mem) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x100) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( fstation, fashiong ) diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c index bb61d1ddce8..8ee6ba0ef4b 100644 --- a/src/mame/drivers/aeroboto.c +++ b/src/mame/drivers/aeroboto.c @@ -263,9 +263,7 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state ) MCFG_GFXDECODE_ADD("gfxdecode", aeroboto) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index 4595cbe284f..d2c72800210 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -140,7 +140,7 @@ static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram") AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_SHARE("spriteram3") AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w) @@ -156,7 +156,7 @@ static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_SHARE("spriteram3") AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w) AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w) @@ -176,7 +176,7 @@ static ADDRESS_MAP_START( spikes91_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0xffc000, 0xffcfff) AM_RAM AM_SHARE("spriteram3") //AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w) AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w) @@ -191,7 +191,7 @@ static ADDRESS_MAP_START( pspikesc_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram") AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_SHARE("spriteram3") AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") @@ -209,7 +209,7 @@ static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* work RAM */ AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3") - AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0") AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE(karatblz_gfxbank_w) AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("IN2") @@ -227,7 +227,7 @@ static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work RAM */ AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_SHARE("spriteram3") AM_RANGE(0xffd000, 0xffd1ff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0xffe000, 0xffe7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(spinlbrk_gfxbank_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg2scrollx_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") @@ -245,7 +245,7 @@ static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3") AM_RANGE(0x0fd000, 0x0fdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0fe000, 0x0fe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0") AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg1scrolly_w) AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg2scrollx_w) @@ -265,7 +265,7 @@ static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_SHARE("spriteram2") AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3") - AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0") AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1") AM_WRITE(aerofgt_bg1scrolly_w) AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1") AM_WRITE(aerofgt_bg2scrollx_w) @@ -278,7 +278,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x1b0000, 0x1b07ff) AM_RAM AM_SHARE("rasterram") /* used only for the scroll registers */ AM_RANGE(0x1b0800, 0x1b0801) AM_NOP /* ??? */ AM_RANGE(0x1b0ff0, 0x1b0fff) AM_RAM /* stack area during boot */ @@ -309,7 +309,7 @@ static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_SHARE("spriteram2") AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM //AM_SHARE("spriteram3") - AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0") AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1") AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1") @@ -338,7 +338,7 @@ static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0x0e4000, 0x0e7fff) AM_RAM AM_SHARE("spriteram2") AM_RANGE(0x0f8000, 0x0fbfff) AM_RAM /* work RAM */ AM_RANGE(0x0fc000, 0x0fc7ff) AM_RAM AM_SHARE("spriteram3") - AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0fd000, 0x0fd7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0") AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1") AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1") @@ -365,7 +365,7 @@ static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16, aerofgt_state ) AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram") AM_RANGE(0xffc000, 0xffc3ff) AM_WRITEONLY AM_SHARE("spriteram3") AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */ - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE(pspikes_palette_bank_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE(pspikes_gfxbank_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE(aerofgt_bg1scrolly_w) @@ -1327,13 +1327,14 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) MCFG_GFXDECODE_ADD("gfxdecode", pspikes) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(1) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") - + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes) @@ -1369,7 +1370,8 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spikes91) MCFG_GFXDECODE_ADD("gfxdecode", spikes91) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes) @@ -1401,7 +1403,8 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikesb) MCFG_GFXDECODE_ADD("gfxdecode", pspikesb) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes) @@ -1431,12 +1434,14 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes) MCFG_GFXDECODE_ADD("gfxdecode", pspikes) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(1) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes) @@ -1471,17 +1476,20 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz) MCFG_GFXDECODE_ADD("gfxdecode", turbofrc) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(2) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(3) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,karatblz) @@ -1520,18 +1528,21 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spinlbrk) MCFG_GFXDECODE_ADD("gfxdecode", turbofrc) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_PRITYPE(1) MCFG_VSYSTEM_SPR2_SET_GFXREGION(2) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback ) // rom lookup MCFG_VSYSTEM_SPR2_SET_PRITYPE(1) MCFG_VSYSTEM_SPR2_SET_GFXREGION(3) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,spinlbrk) @@ -1570,17 +1581,20 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc) MCFG_GFXDECODE_ADD("gfxdecode", turbofrc) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(2) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(3) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc) @@ -1620,17 +1634,20 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc) MCFG_GFXDECODE_ADD("gfxdecode", aerofgtb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(2) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(3) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc) @@ -1670,12 +1687,14 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerofgt) MCFG_GFXDECODE_ADD("gfxdecode", aerofgt) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( aerofgt_state, aerofgt_tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(2) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc) @@ -1713,7 +1732,8 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboot) MCFG_GFXDECODE_ADD("gfxdecode", aerfboot) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc) @@ -1744,7 +1764,8 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboo2) MCFG_GFXDECODE_ADD("gfxdecode", aerfboo2) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc) @@ -1777,12 +1798,14 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state ) MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_wbbc97) MCFG_GFXDECODE_ADD("gfxdecode", wbbc97) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(1) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(aerofgt_state,wbbc97) diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c index e47708857bd..8fb1c881ca1 100644 --- a/src/mame/drivers/airbustr.c +++ b/src/mame/drivers/airbustr.c @@ -324,7 +324,7 @@ WRITE8_MEMBER(airbustr_state::airbustr_paletteram_w) m_paletteram[offset] = data; val = (m_paletteram[offset | 1] << 8) | m_paletteram[offset & ~1]; - palette_set_color_rgb(machine(), offset / 2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0)); + m_palette->set_pen_color(offset / 2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0)); } WRITE8_MEMBER(airbustr_state::airbustr_coin_counter_w) @@ -637,10 +637,11 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state ) MCFG_SCREEN_VBLANK_DRIVER(airbustr_state, screen_eof_airbustr) MCFG_GFXDECODE_ADD("gfxdecode", airbustr) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) MCFG_KANEKO_PANDORA_ADD("pandora", airbustr_pandora_config) MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode") + MCFG_KANEKO_PANDORA_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c index d1224626659..bfed89108d3 100644 --- a/src/mame/drivers/ajax.c +++ b/src/mame/drivers/ajax.c @@ -27,7 +27,7 @@ static ADDRESS_MAP_START( ajax_main_map, AS_PROGRAM, 8, ajax_state ) AM_RANGE(0x0000, 0x01c0) AM_READWRITE(ajax_ls138_f10_r, ajax_ls138_f10_w) /* bankswitch + sound command + FIRQ command */ AM_RANGE(0x0800, 0x0807) AM_DEVREADWRITE("k051960", k051960_device, k051937_r, k051937_w) /* sprite control registers */ AM_RANGE(0x0c00, 0x0fff) AM_DEVREADWRITE("k051960", k051960_device, k051960_r, k051960_w) /* sprite RAM 2128SL at J7 */ - AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")/* palette */ + AM_RANGE(0x1000, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* palette */ AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("share1") /* shared RAM with the 6809 */ AM_RANGE(0x4000, 0x5fff) AM_RAM /* RAM 6264L at K10 */ AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2") /* banked ROM */ @@ -219,8 +219,6 @@ static MACHINE_CONFIG_START( ajax, ajax_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -228,16 +226,21 @@ static MACHINE_CONFIG_START( ajax, ajax_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(ajax_state, screen_update_ajax) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", ajax_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", ajax_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K051316_ADD("k051316", ajax_k051316_intf) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c index 1dee14b5338..bf7fe6c135c 100644 --- a/src/mame/drivers/albazc.c +++ b/src/mame/drivers/albazc.c @@ -35,7 +35,7 @@ public: DECLARE_WRITE8_MEMBER(hanaroku_out_2_w); DECLARE_WRITE8_MEMBER(albazc_vregs_w); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(albazc); UINT32 screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; @@ -46,7 +46,7 @@ public: /* video */ -void albazc_state::palette_init() +PALETTE_INIT_MEMBER(albazc_state, albazc) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -58,7 +58,7 @@ void albazc_state::palette_init() g = ((color_prom[i * 2 + 1] & 0xe0) | ((color_prom[i * 2 + 0]& 0x03) <<8)) >> 5; r = (color_prom[i * 2 + 0] & 0x7c) >> 2; - palette_set_color_rgb(machine(), i, pal5bit(r), pal5bit(g), pal5bit(b)); + palette.set_pen_color(i, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -87,7 +87,7 @@ void albazc_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) flipy = !flipy; } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, color, flipx, flipy, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); } } @@ -285,8 +285,9 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state ) MCFG_SCREEN_UPDATE_DRIVER(albazc_state, screen_update_hanaroku) MCFG_GFXDECODE_ADD("gfxdecode", hanaroku) - MCFG_PALETTE_LENGTH(0x200) - + + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(albazc_state, albazc) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 9677bc67258..66186f60130 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -58,8 +58,6 @@ public: required_shared_ptr<UINT8> m_cus_ram; required_shared_ptr<UINT8> m_videoram; required_shared_ptr<UINT8> m_colorram; -// UINT8 * m_paletteram; // currently this uses generic palette handling -// UINT8 * m_paletteram_2; // currently this uses generic palette handling /* video-related */ tilemap_t *m_bg_tilemap; @@ -246,8 +244,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, albazg_state ) AM_RANGE(0xa7fc, 0xa7fc) AM_WRITE(prot_lock_w) AM_RANGE(0xa7ff, 0xa7ff) AM_WRITE_PORT("EEPROMOUT") AM_RANGE(0xaf80, 0xafff) AM_READWRITE(custom_ram_r, custom_ram_w) AM_SHARE("cus_ram") - AM_RANGE(0xb000, 0xb07f) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xb080, 0xb0ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xb000, 0xb07f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xb080, 0xb0ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(yumefuda_vram_w) AM_SHARE("videoram") AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(yumefuda_cram_w) AM_SHARE("colorram") AM_RANGE(0xe000, 0xffff) AM_RAM @@ -405,8 +403,9 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */ - MCFG_GFXDECODE_ADD("gfxdecode", yumefuda ) - MCFG_PALETTE_LENGTH(0x80) + MCFG_GFXDECODE_ADD("gfxdecode", yumefuda ) + MCFG_PALETTE_ADD("palette", 0x80) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c index e78ed5290c0..7a724bc8889 100644 --- a/src/mame/drivers/aleck64.c +++ b/src/mame/drivers/aleck64.c @@ -837,7 +837,7 @@ static MACHINE_CONFIG_START( aleck64, aleck64_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(aleck64_state, screen_update_n64) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index 8c11f28cdb1..e35127324d7 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -104,7 +104,7 @@ VIDEO_START_MEMBER(alg_state,alg) VIDEO_START_CALL_MEMBER(amiga); /* configure pen 4096 as transparent in the renderer and use it for the genlock color */ - palette_set_color(machine(), 4096, rgb_t(0,0,0,0)); + m_palette->set_pen_color(4096, rgb_t(0,0,0,0)); amiga_set_genlock_color(machine(), 4096); } @@ -457,8 +457,8 @@ static MACHINE_CONFIG_START( alg_r1, alg_state ) MCFG_SCREEN_SIZE(512*2, 262) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) - MCFG_PALETTE_LENGTH(4097) - MCFG_PALETTE_INIT_OVERRIDE(alg_state,amiga) + MCFG_PALETTE_ADD("palette", 4097) + MCFG_PALETTE_INIT_OWNER(alg_state,amiga) MCFG_VIDEO_START_OVERRIDE(alg_state,alg) diff --git a/src/mame/drivers/alien.c b/src/mame/drivers/alien.c index 3a6e15da595..29fd48a8e2c 100644 --- a/src/mame/drivers/alien.c +++ b/src/mame/drivers/alien.c @@ -90,7 +90,7 @@ static MACHINE_CONFIG_START( alien, alien_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(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index 39ba80a9185..668bad5e541 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -34,7 +34,7 @@ READ8_MEMBER(aliens_state::bankedram_r) WRITE8_MEMBER(aliens_state::bankedram_w) { if (m_palette_selected) - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); else m_ram[offset] = data; } @@ -241,8 +241,6 @@ static MACHINE_CONFIG_START( aliens, aliens_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -250,13 +248,17 @@ static MACHINE_CONFIG_START( aliens, aliens_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(aliens_state, screen_update_aliens) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", aliens_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", aliens_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c index 60ae750c156..8e8e611db8c 100644 --- a/src/mame/drivers/alpha68k.c +++ b/src/mame/drivers/alpha68k.c @@ -1964,8 +1964,8 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_sstingry) MCFG_GFXDECODE_ADD("gfxdecode", sstingry) - MCFG_PALETTE_LENGTH(256 + 1) - MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros) + MCFG_PALETTE_ADD("palette", 256 + 1) + MCFG_PALETTE_INIT_OWNER(alpha68k_state,kyros) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2009,9 +2009,9 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros) MCFG_GFXDECODE_ADD("gfxdecode", kyros) - MCFG_PALETTE_LENGTH(256 + 1) + MCFG_PALETTE_ADD("palette", 256 + 1) - MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros) + MCFG_PALETTE_INIT_OWNER(alpha68k_state,kyros) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2054,9 +2054,9 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros) MCFG_GFXDECODE_ADD("gfxdecode", jongbou) - MCFG_PALETTE_LENGTH(256 + 1) + MCFG_PALETTE_ADD("palette", 256 + 1) - MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,kyros) + MCFG_PALETTE_INIT_OWNER(alpha68k_state,kyros) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2089,8 +2089,8 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state ) MCFG_GFXDECODE_ADD("gfxdecode", paddle) - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,paddlem) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(alpha68k_state,paddlem) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2130,7 +2130,7 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II) MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_II) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k) @@ -2179,7 +2179,7 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II) MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_II) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k) @@ -2222,7 +2222,7 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V) MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_V) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k) @@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state ) MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V_sb) MCFG_GFXDECODE_ADD("gfxdecode", alpha68k_V) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(alpha68k_state,alpha68k) @@ -2306,8 +2306,8 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state ) MCFG_GFXDECODE_ADD("gfxdecode", tnextspc) - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT_OVERRIDE(alpha68k_state,paddlem) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(alpha68k_state,paddlem) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c index fc1f6ea9c32..3fb232bfc81 100644 --- a/src/mame/drivers/amaticmg.c +++ b/src/mame/drivers/amaticmg.c @@ -451,7 +451,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(amaticmg); DECLARE_PALETTE_INIT(amaticmg2); UINT32 screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -488,7 +488,7 @@ UINT32 amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_ind1 /* TODO: this looks so out of place ... */ color = (m_attr[count]&0xf0)>>3; - gfx->opaque(bitmap,cliprect,tile,color,0,0,x*4,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*4,y*8); count++; } } @@ -512,7 +512,7 @@ UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind tile += ((m_attr[count]&0xff)<<8); color = 0; - gfx->opaque(bitmap,cliprect,tile,color,0,0,x*4,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*4,y*8); count++; } } @@ -520,7 +520,7 @@ UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind return 0; } -void amaticmg_state::palette_init() +PALETTE_INIT_MEMBER(amaticmg_state, amaticmg) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, bit2 , r, g, b; @@ -541,7 +541,7 @@ void amaticmg_state::palette_init() bit2 = (color_prom[0] >> 5) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -559,7 +559,7 @@ PALETTE_INIT_MEMBER(amaticmg_state,amaticmg2) g = ((color_prom[0] & 0xc0) >> 6) | ((color_prom[1] & 0x7) << 2); r = ((color_prom[0] & 0x3e) >> 1); - palette_set_color_rgb(machine(), i >> 1, pal5bit(r), pal5bit(g), pal5bit(b)); + palette.set_pen_color(i >> 1, pal5bit(r), pal5bit(g), pal5bit(b)); color_prom+=2; } } @@ -884,8 +884,8 @@ static MACHINE_CONFIG_START( amaticmg, amaticmg_state ) MCFG_GFXDECODE_ADD("gfxdecode", amaticmg) - MCFG_PALETTE_LENGTH(0x200) - + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(amaticmg_state, amaticmg) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -916,8 +916,9 @@ static MACHINE_CONFIG_DERIVED( amaticmg2, amaticmg ) MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2) MCFG_GFXDECODE_MODIFY("gfxdecode", amaticmg2) - MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_INIT_OWNER(amaticmg_state,amaticmg2) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c index 58a44cb3bd5..17d40bea828 100644 --- a/src/mame/drivers/ambush.c +++ b/src/mame/drivers/ambush.c @@ -243,8 +243,8 @@ static MACHINE_CONFIG_START( ambush, ambush_state ) MCFG_SCREEN_UPDATE_DRIVER(ambush_state, screen_update_ambush) MCFG_GFXDECODE_ADD("gfxdecode", ambush) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(ambush_state, ambush) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c index 39dc7091690..554007fec7b 100644 --- a/src/mame/drivers/ampoker2.c +++ b/src/mame/drivers/ampoker2.c @@ -1185,8 +1185,8 @@ static MACHINE_CONFIG_START( ampoker2, ampoker2_state ) MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update_ampoker2) MCFG_GFXDECODE_ADD("gfxdecode", ampoker2) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(ampoker2_state, ampoker2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c index 4acb8e16c45..75b3c934f61 100644 --- a/src/mame/drivers/amspdwy.c +++ b/src/mame/drivers/amspdwy.c @@ -274,8 +274,8 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state ) MCFG_SCREEN_UPDATE_DRIVER(amspdwy_state, screen_update_amspdwy) MCFG_GFXDECODE_ADD("gfxdecode", amspdwy) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_FORMAT(BBGGGRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c index a93e743a14b..d82edfecbf3 100644 --- a/src/mame/drivers/angelkds.c +++ b/src/mame/drivers/angelkds.c @@ -613,7 +613,7 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state ) MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds) MCFG_GFXDECODE_ADD("gfxdecode", angelkds) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c index 214bf87e8dd..2bc46c714e6 100644 --- a/src/mame/drivers/appoooh.c +++ b/src/mame/drivers/appoooh.c @@ -456,9 +456,9 @@ static MACHINE_CONFIG_DERIVED( appoooh, appoooh_common ) MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_appoooh) MCFG_GFXDECODE_ADD("gfxdecode", appoooh) - MCFG_PALETTE_LENGTH(32*8+32*8) + MCFG_PALETTE_ADD("palette", 32*8+32*8) - MCFG_PALETTE_INIT_OVERRIDE(appoooh_state,appoooh) + MCFG_PALETTE_INIT_OWNER(appoooh_state,appoooh) MCFG_VIDEO_START_OVERRIDE(appoooh_state,appoooh) MACHINE_CONFIG_END @@ -474,9 +474,9 @@ static MACHINE_CONFIG_DERIVED( robowres, appoooh_common ) MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_robowres) MCFG_GFXDECODE_ADD("gfxdecode", robowres) - MCFG_PALETTE_LENGTH(32*8+32*8) + MCFG_PALETTE_ADD("palette", 32*8+32*8) - MCFG_PALETTE_INIT_OVERRIDE(appoooh_state,robowres) + MCFG_PALETTE_INIT_OWNER(appoooh_state,robowres) MCFG_VIDEO_START_OVERRIDE(appoooh_state,appoooh) MACHINE_CONFIG_END diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c index 18fbd70ffb6..841d474be20 100644 --- a/src/mame/drivers/aquarium.c +++ b/src/mame/drivers/aquarium.c @@ -106,7 +106,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, aquarium_state ) AM_RANGE(0xc01000, 0xc01fff) AM_RAM_WRITE(aquarium_bak_videoram_w) AM_SHARE("bak_videoram") AM_RANGE(0xc02000, 0xc03fff) AM_RAM_WRITE(aquarium_txt_videoram_w) AM_SHARE("txt_videoram") AM_RANGE(0xc80000, 0xc81fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xd00000, 0xd00fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xd00000, 0xd00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd80014, 0xd8001f) AM_WRITEONLY AM_SHARE("scroll") AM_RANGE(0xd80068, 0xd80069) AM_WRITENOP /* probably not used */ AM_RANGE(0xd80080, 0xd80081) AM_READ_PORT("DSW") @@ -316,8 +316,8 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state ) MCFG_SCREEN_UPDATE_DRIVER(aquarium_state, screen_update_aquarium) MCFG_GFXDECODE_ADD("gfxdecode", aquarium) - MCFG_PALETTE_LENGTH(0x1000/2) - + MCFG_PALETTE_ADD("palette", 0x1000/2) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c index e57321501a5..77362ae8aa6 100644 --- a/src/mame/drivers/arabian.c +++ b/src/mame/drivers/arabian.c @@ -371,8 +371,8 @@ static MACHINE_CONFIG_START( arabian, arabian_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 11, 244) MCFG_SCREEN_UPDATE_DRIVER(arabian_state, screen_update_arabian) - MCFG_PALETTE_LENGTH(256*32) - + MCFG_PALETTE_ADD("palette", 256*32) + MCFG_PALETTE_INIT_OWNER(arabian_state, arabian) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c index 1eff42217ef..5031847fbeb 100644 --- a/src/mame/drivers/arcadecl.c +++ b/src/mame/drivers/arcadecl.c @@ -328,7 +328,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", arcadecl) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", arcadecl_state::s_mob_config) MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode") diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c index 8408eeea53c..460bada4404 100644 --- a/src/mame/drivers/arcadia.c +++ b/src/mame/drivers/arcadia.c @@ -346,8 +346,8 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state ) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(arcadia_amiga_state,amiga) MCFG_VIDEO_START_OVERRIDE(arcadia_amiga_state,amiga) diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c index a427a5a2556..cc674b0906d 100644 --- a/src/mame/drivers/argus.c +++ b/src/mame/drivers/argus.c @@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( argus, argus_state ) MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus) MCFG_GFXDECODE_ADD("gfxdecode", argus) - MCFG_PALETTE_LENGTH(896) + MCFG_PALETTE_ADD("palette", 896) MCFG_VIDEO_START_OVERRIDE(argus_state,argus) MCFG_VIDEO_RESET_OVERRIDE(argus_state,argus) @@ -604,7 +604,7 @@ static MACHINE_CONFIG_START( valtric, argus_state ) MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric) MCFG_GFXDECODE_ADD("gfxdecode", valtric) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) MCFG_VIDEO_START_OVERRIDE(argus_state,valtric) MCFG_VIDEO_RESET_OVERRIDE(argus_state,valtric) @@ -649,7 +649,7 @@ static MACHINE_CONFIG_START( butasan, argus_state ) MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan) MCFG_GFXDECODE_ADD("gfxdecode", butasan) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) MCFG_VIDEO_START_OVERRIDE(argus_state,butasan) MCFG_VIDEO_RESET_OVERRIDE(argus_state,butasan) diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c index 48455b5a34b..0d557bb5848 100644 --- a/src/mame/drivers/aristmk4.c +++ b/src/mame/drivers/aristmk4.c @@ -348,7 +348,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(aristmk4); DECLARE_PALETTE_INIT(lions); UINT32 screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(note_input_reset); @@ -426,7 +426,7 @@ UINT32 aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_ind1 // as we only update the background, not the entire display. flipx = ((m_mkiv_vram[count]) & 0x04); flipy = ((m_mkiv_vram[count]) & 0x08); - gfx->opaque(bitmap,cliprect,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3); count+=2; } } @@ -1606,12 +1606,12 @@ static I8255A_INTERFACE( ppi8255_intf ) /* same as Casino Winner HW */ -void aristmk4_state::palette_init() +PALETTE_INIT_MEMBER(aristmk4_state, aristmk4) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -1627,7 +1627,7 @@ void aristmk4_state::palette_init() bit2 = (color_prom[0] >> 7) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -1700,7 +1700,8 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state ) MCFG_SCREEN_UPDATE_DRIVER(aristmk4_state, screen_update_aristmk4) MCFG_GFXDECODE_ADD("gfxdecode", aristmk4) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(aristmk4_state, aristmk4) MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf ) @@ -1752,7 +1753,7 @@ PALETTE_INIT_MEMBER(aristmk4_state,lions) { int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,r,g,b; @@ -1766,12 +1767,13 @@ PALETTE_INIT_MEMBER(aristmk4_state,lions) bit1 = (i >> 5) & 0x01; r = 0x4f * bit0 + 0xa8 * bit1; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } static MACHINE_CONFIG_DERIVED( 86lions, aristmk4 ) - MCFG_PALETTE_INIT_OVERRIDE(aristmk4_state,lions) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(aristmk4_state,lions) MACHINE_CONFIG_END ROM_START( 3bagflvt ) diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c index ee701523dd0..0103f615365 100644 --- a/src/mame/drivers/aristmk5.c +++ b/src/mame/drivers/aristmk5.c @@ -436,11 +436,10 @@ static MACHINE_CONFIG_START( aristmk5, aristmk5_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 400) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) - - MCFG_PALETTE_LENGTH(0x200) - MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac0") MCFG_SOUND_ROUTE(0, "mono", 0.10) @@ -482,11 +481,10 @@ static MACHINE_CONFIG_START( aristmk5_usa, aristmk5_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(640, 400) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) - - MCFG_PALETTE_LENGTH(0x200) - MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac0") MCFG_SOUND_ROUTE(0, "mono", 0.10) diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c index e64c33a2238..c6843d076e8 100644 --- a/src/mame/drivers/aristmk6.c +++ b/src/mame/drivers/aristmk6.c @@ -62,7 +62,7 @@ UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb3 popmessage("%d %d %04x %d",m_test_x,m_test_y,m_start_offs,m_type); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = (m_start_offs); @@ -97,7 +97,7 @@ UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb3 color = blit_ram[count]; if(cliprect.contains(x, y)) - bitmap.pix32(y, x) = machine().pens[color]; + bitmap.pix32(y, x) = m_palette->pen(color); count++; } @@ -146,7 +146,7 @@ static MACHINE_CONFIG_START( aristmk6, aristmk6_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(aristmk6_state, screen_update_aristmk6) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MACHINE_CONFIG_END diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c index 0a9e15c6845..2ac4cb26e10 100644 --- a/src/mame/drivers/arkanoid.c +++ b/src/mame/drivers/arkanoid.c @@ -1220,9 +1220,7 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state ) MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid) MCFG_GFXDECODE_ADD("gfxdecode", arkanoid) - MCFG_PALETTE_LENGTH(512) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid) /* sound hardware */ @@ -1253,9 +1251,7 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state ) MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa) MCFG_GFXDECODE_ADD("gfxdecode", hexa) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid) /* sound hardware */ @@ -1298,9 +1294,7 @@ static MACHINE_CONFIG_START( brixian, arkanoid_state ) MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa) MCFG_GFXDECODE_ADD("gfxdecode", arkanoid) - MCFG_PALETTE_LENGTH(512) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid) /* sound hardware */ diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c index fcb38717090..b462eb01663 100644 --- a/src/mame/drivers/armedf.c +++ b/src/mame/drivers/armedf.c @@ -389,7 +389,7 @@ static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16, armedf_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x060000, 0x0603ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x060400, 0x063fff) AM_RAM - AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff) AM_RANGE(0x06a000, 0x06a9ff) AM_RAM AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut") @@ -420,7 +420,7 @@ static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16, armedf_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x061000, 0x063fff) AM_RAM - AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff) AM_RANGE(0x06a000, 0x06a9ff) AM_RAM AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut") @@ -442,7 +442,7 @@ static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16, armedf_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x061000, 0x063fff) AM_RAM - AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff) AM_RANGE(0x06a000, 0x06a9ff) AM_RAM AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut") @@ -474,7 +474,7 @@ static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16, armedf_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x061000, 0x063fff) AM_RAM - AM_RANGE(0x064000, 0x064fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x064000, 0x064fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(nb1414m4_text_videoram_r,nb1414m4_text_videoram_w,0x00ff) AM_RANGE(0x06a000, 0x06a9ff) AM_RAM AM_RANGE(0x06c000, 0x06cfff) AM_RAM AM_SHARE("spr_pal_clut") @@ -499,7 +499,7 @@ static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16, armedf_state ) AM_RANGE(0x066000, 0x066fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0x067000, 0x067fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0x068000, 0x069fff) AM_READWRITE8(armedf_text_videoram_r,armedf_text_videoram_w,0x00ff) - AM_RANGE(0x06a000, 0x06afff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x06a000, 0x06afff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x06b000, 0x06bfff) AM_RAM AM_SHARE("spr_pal_clut") AM_RANGE(0x06c000, 0x06c001) AM_READ_PORT("P1") AM_RANGE(0x06c002, 0x06c003) AM_READ_PORT("P2") @@ -672,7 +672,7 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state ) AM_RANGE(0x086000, 0x086fff) AM_RAM_WRITE(armedf_bg_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0x087000, 0x087fff) AM_RAM_WRITE(armedf_fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0x088000, 0x089fff) AM_READWRITE8(armedf_text_videoram_r,armedf_text_videoram_w,0x00ff) - AM_RANGE(0x08a000, 0x08afff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x08a000, 0x08afff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_SHARE("spr_pal_clut") AM_RANGE(0x08c000, 0x08c001) AM_READ_PORT("P1") AM_RANGE(0x08c002, 0x08c003) AM_READ_PORT("P2") @@ -1189,7 +1189,8 @@ static MACHINE_CONFIG_START( terraf, armedf_state ) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1237,7 +1238,8 @@ static MACHINE_CONFIG_START( terrafjb, armedf_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1281,7 +1283,8 @@ static MACHINE_CONFIG_START( kozure, armedf_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1325,7 +1328,8 @@ static MACHINE_CONFIG_START( armedf, armedf_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1369,7 +1373,8 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1413,7 +1418,8 @@ static MACHINE_CONFIG_START( legion, armedf_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1457,7 +1463,8 @@ static MACHINE_CONFIG_START( legiono, armedf_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1512,7 +1519,8 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", armedf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c index 5d0508aa684..454da1fcfbb 100644 --- a/src/mame/drivers/ashnojoe.c +++ b/src/mame/drivers/ashnojoe.c @@ -104,7 +104,7 @@ static ADDRESS_MAP_START( ashnojoe_map, AS_PROGRAM, 16, ashnojoe_state ) AM_RANGE(0x046000, 0x046fff) AM_RAM_WRITE(ashnojoe_tileram6_w) AM_SHARE("tileram_6") AM_RANGE(0x047000, 0x047fff) AM_RAM_WRITE(ashnojoe_tileram7_w) AM_SHARE("tileram_7") AM_RANGE(0x048000, 0x048fff) AM_RAM_WRITE(ashnojoe_tileram_w) AM_SHARE("tileram") - AM_RANGE(0x049000, 0x049fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x049000, 0x049fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x04a000, 0x04a001) AM_READ_PORT("P1") AM_RANGE(0x04a002, 0x04a003) AM_READ_PORT("P2") AM_RANGE(0x04a004, 0x04a005) AM_READ_PORT("DSW") @@ -357,8 +357,8 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state ) MCFG_SCREEN_UPDATE_DRIVER(ashnojoe_state, screen_update_ashnojoe) MCFG_GFXDECODE_ADD("gfxdecode", ashnojoe) - MCFG_PALETTE_LENGTH(0x1000/2) - + MCFG_PALETTE_ADD("palette", 0x1000/2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c index 91a9cb2673a..9fb1b48ba48 100644 --- a/src/mame/drivers/asterix.c +++ b/src/mame/drivers/asterix.c @@ -165,7 +165,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, asterix_state ) AM_RANGE(0x180000, 0x1807ff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_word_r, k053245_word_w) AM_RANGE(0x180800, 0x180fff) AM_RAM // extra RAM, or mirror for the above? AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_word_r, k053244_word_w) - AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30001f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_lsb_r, k053244_lsb_w) AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN0") AM_RANGE(0x380002, 0x380003) AM_READ_PORT("IN1") @@ -281,8 +281,6 @@ static MACHINE_CONFIG_START( asterix, asterix_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -290,13 +288,17 @@ static MACHINE_CONFIG_START( asterix, asterix_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(asterix_state, screen_update_asterix) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD("k056832", asterix_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053244_ADD("k053244", asterix_k05324x_intf) MCFG_K053244_GFXDECODE("gfxdecode") + MCFG_K053244_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ diff --git a/src/mame/drivers/astrcorp.c b/src/mame/drivers/astrcorp.c index 30b99cef54f..dc370753230 100644 --- a/src/mame/drivers/astrcorp.c +++ b/src/mame/drivers/astrcorp.c @@ -149,7 +149,7 @@ void astrocorp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clipre { for (xwrap = 0 ; xwrap <= 0x200 ; xwrap += 0x200) { - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, 0, 0, 0, sx + x * 16 - xwrap, sy + y * 16 - ywrap, 0xff); @@ -166,7 +166,7 @@ UINT32 astrocorp_state::screen_update_astrocorp(screen_device &screen, bitmap_in if (m_screen_enable & 1) copybitmap(bitmap, m_bitmap, 0,0,0,0, cliprect); else - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); return 0; } @@ -290,7 +290,7 @@ READ16_MEMBER(astrocorp_state::astrocorp_unk_r) WRITE16_MEMBER(astrocorp_state::astrocorp_palette_w) { COMBINE_DATA(&m_paletteram[offset]); - palette_set_color_rgb(machine(), offset, + m_palette->set_pen_color(offset, pal5bit((m_paletteram[offset] >> 0) & 0x1f), pal6bit((m_paletteram[offset] >> 5) & 0x3f), pal5bit((m_paletteram[offset] >> 11) & 0x1f) @@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state ) MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp) MCFG_GFXDECODE_ADD("gfxdecode", astrocorp) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(astrocorp_state,astrocorp) @@ -545,7 +545,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state ) MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp) MCFG_GFXDECODE_ADD("gfxdecode", astrocorp) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(astrocorp_state,astrocorp) diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c index 67a8876e78a..b9cce169924 100644 --- a/src/mame/drivers/astrocde.c +++ b/src/mame/drivers/astrocde.c @@ -1273,7 +1273,8 @@ static MACHINE_CONFIG_START( astrocade_base, astrocde_state ) /* each game has its own map */ /* video hardware */ - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(astrocde_state, astrocde) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240) @@ -1289,9 +1290,10 @@ static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) - MCFG_PALETTE_INIT_OVERRIDE(astrocde_state,profpac) + MCFG_PALETTE_INIT_OWNER(astrocde_state,profpac) MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac) MCFG_SCREEN_MODIFY("screen") diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index 288411828e0..b57114140d3 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -895,14 +895,16 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state ) MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE_ADD("gfxdecode", asuka) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") MCFG_TC0100SCN_ADD("tc0100scn", asuka_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf) - + MCFG_TC0110PCR_PALETTE("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -940,13 +942,15 @@ static MACHINE_CONFIG_START( asuka, asuka_state ) MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE_ADD("gfxdecode", asuka) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_PC090OJ_ADD("pc090oj", asuka_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") MCFG_TC0100SCN_ADD("tc0100scn", asuka_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -993,13 +997,15 @@ static MACHINE_CONFIG_START( cadash, asuka_state ) MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE_ADD("gfxdecode", asuka) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_PC090OJ_ADD("pc090oj", asuka_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1038,13 +1044,15 @@ static MACHINE_CONFIG_START( mofflott, asuka_state ) MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE_ADD("gfxdecode", asuka) - MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ + MCFG_PALETTE_ADD("palette", 4096) /* only Mofflott uses full palette space */ MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1087,13 +1095,15 @@ static MACHINE_CONFIG_START( galmedes, asuka_state ) MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE_ADD("gfxdecode", asuka) - MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ + MCFG_PALETTE_ADD("palette", 4096) /* only Mofflott uses full palette space */ MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1132,13 +1142,15 @@ static MACHINE_CONFIG_START( eto, asuka_state ) MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka) MCFG_GFXDECODE_ADD("gfxdecode", asuka) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_PC090OJ_ADD("pc090oj", bonzeadv_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") MCFG_TC0100SCN_ADD("tc0100scn", cadash_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", asuka_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c index ba8f72949a9..ba346cee594 100644 --- a/src/mame/drivers/atarifb.c +++ b/src/mame/drivers/atarifb.c @@ -117,25 +117,25 @@ * *************************************/ -void atarifb_state::palette_init() +PALETTE_INIT_MEMBER(atarifb_state, atarifb) { /* chars */ - palette_set_color(machine(), 0, rgb_t(0xff,0xff,0xff)); /* white */ - palette_set_color(machine(), 1, rgb_t(0x00,0x00,0x00)); /* black */ + palette.set_pen_color(0, rgb_t(0xff,0xff,0xff)); /* white */ + palette.set_pen_color(1, rgb_t(0x00,0x00,0x00)); /* black */ /* sprites */ - palette_set_color(machine(), 2, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ - palette_set_color(machine(), 3, rgb_t(0xff,0xff,0xff)); /* white */ - palette_set_color(machine(), 4, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ - palette_set_color(machine(), 5, rgb_t(0x00,0x00,0x00)); /* black */ + palette.set_pen_color(2, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ + palette.set_pen_color(3, rgb_t(0xff,0xff,0xff)); /* white */ + palette.set_pen_color(4, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ + palette.set_pen_color(5, rgb_t(0x00,0x00,0x00)); /* black */ /* sprite masks */ - palette_set_color(machine(), 6, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ - palette_set_color(machine(), 7, rgb_t(0x80,0x80,0x80)); /* grey */ - palette_set_color(machine(), 8, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ - palette_set_color(machine(), 9, rgb_t(0x00,0x00,0x00)); /* black */ - palette_set_color(machine(), 10, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ - palette_set_color(machine(), 11, rgb_t(0xff,0xff,0xff)); /* white */ + palette.set_pen_color(6, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ + palette.set_pen_color(7, rgb_t(0x80,0x80,0x80)); /* grey */ + palette.set_pen_color(8, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ + palette.set_pen_color(9, rgb_t(0x00,0x00,0x00)); /* black */ + palette.set_pen_color(10, rgb_t(0x40,0x40,0x40)); /* dark grey (?) - used in Soccer only */ + palette.set_pen_color(11, rgb_t(0xff,0xff,0xff)); /* white */ } @@ -563,8 +563,8 @@ static MACHINE_CONFIG_START( atarifb, atarifb_state ) MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_atarifb) MCFG_GFXDECODE_ADD("gfxdecode", atarifb) - MCFG_PALETTE_LENGTH(12) - + MCFG_PALETTE_ADD("palette", 12) + MCFG_PALETTE_INIT_OWNER(atarifb_state, atarifb) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c index 3f4d6d2ae49..8af4802e2ba 100644 --- a/src/mame/drivers/atarig1.c +++ b/src/mame/drivers/atarig1.c @@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", atarig1) - MCFG_PALETTE_LENGTH(1280) + MCFG_PALETTE_ADD("palette", 1280) /* initialize the playfield */ MCFG_TILEMAP_ADD_STANDARD("playfield", 2, atarig1_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,64) diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c index 3489466bdd9..8da6db91bdc 100644 --- a/src/mame/drivers/atarig42.c +++ b/src/mame/drivers/atarig42.c @@ -546,7 +546,7 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", atarig42) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_CUSTOM("playfield", 2, atarig42_state, get_playfield_tile_info, 8,8, atarig42_playfield_scan, 128,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarig42_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c index 72de969e0be..b3e6e0ffd89 100644 --- a/src/mame/drivers/atarigt.c +++ b/src/mame/drivers/atarigt.c @@ -832,7 +832,7 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", atarigt) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_TILEMAP_ADD_CUSTOM("playfield", 2, atarigt_state, get_playfield_tile_info, 8,8, atarigt_playfield_scan, 128,64) MCFG_TILEMAP_ADD_STANDARD("alpha", 2, atarigt_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64, 32) diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c index c9da8acb9fd..d13266705f9 100644 --- a/src/mame/drivers/atarigx2.c +++ b/src/mame/drivers/atarigx2.c @@ -1464,7 +1464,7 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", atarigx2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_CUSTOM("playfield", 2, atarigx2_state, get_playfield_tile_info, 8,8, atarigx2_playfield_scan, 128,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarigx2_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c index 0159d71b1bd..c7cd11f2447 100644 --- a/src/mame/drivers/atarisy1.c +++ b/src/mame/drivers/atarisy1.c @@ -442,7 +442,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy1_state ) AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") AM_RANGE(0xa02000, 0xa02fff) AM_RAM_WRITE(atarisy1_spriteram_w) AM_SHARE("mob") AM_RANGE(0xa03000, 0xa03fff) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha") - AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf00000, 0xf00fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) AM_RANGE(0xf20000, 0xf20007) AM_READ(trakball_r) AM_RANGE(0xf40000, 0xf4001f) AM_READWRITE(joystick_r, joystick_w) @@ -729,7 +729,9 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", atarisy1) - MCFG_PALETTE_LENGTH(1024) + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, atarisy1_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarisy1_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c index ab30729adbe..08832135fa0 100644 --- a/src/mame/drivers/atarisy2.c +++ b/src/mame/drivers/atarisy2.c @@ -1237,7 +1237,7 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", atarisy2) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, atarisy2_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 128,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, atarisy2_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,48, 0) diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c index ef0a4a26a11..d397abf91a4 100644 --- a/src/mame/drivers/atarisy4.c +++ b/src/mame/drivers/atarisy4.c @@ -195,8 +195,8 @@ UINT32 atarisy4_state::screen_update_atarisy4(screen_device &screen, bitmap_rgb3 { UINT16 data = *src++; - *dest++ = machine().pens[data & 0xff]; - *dest++ = machine().pens[data >> 8]; + *dest++ = m_palette->pen(data & 0xff); + *dest++ = m_palette->pen(data >> 8); } } return 0; @@ -400,7 +400,7 @@ void atarisy4_state::execute_gpu_command() m_b_color_table[table_offs] = val; /* Update */ - palette_set_color(machine(), table_offs, rgb_t(m_r_color_table[table_offs], m_g_color_table[table_offs], m_b_color_table[table_offs])); + m_palette->set_pen_color(table_offs, rgb_t(m_r_color_table[table_offs], m_g_color_table[table_offs], m_b_color_table[table_offs])); ++table_offs; ++offset; @@ -753,7 +753,7 @@ static MACHINE_CONFIG_START( atarisy4, atarisy4_state ) MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_UPDATE_DRIVER(atarisy4_state, screen_update_atarisy4) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MACHINE_CONFIG_END diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c index 9b6aa23f567..17c85b40d0d 100644 --- a/src/mame/drivers/ataxx.c +++ b/src/mame/drivers/ataxx.c @@ -51,7 +51,7 @@ static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state ) AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1") AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(ataxx_battery_ram_w) AM_SHARE("battery") AM_RANGE(0xe000, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xffff) AM_READWRITE(ataxx_paletteram_and_misc_r, ataxx_paletteram_and_misc_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xffff) AM_READWRITE(ataxx_paletteram_and_misc_r, ataxx_paletteram_and_misc_w) AM_SHARE("palette") ADDRESS_MAP_END diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c index 11affe4fc47..b4717176f6a 100644 --- a/src/mame/drivers/atetris.c +++ b/src/mame/drivers/atetris.c @@ -192,7 +192,7 @@ WRITE8_MEMBER(atetris_state::nvram_enable_w) static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, atetris_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(paletteram_RRRGGGBB_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram") AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey1", pokey_device, read, write) AM_RANGE(0x2810, 0x281f) AM_MIRROR(0x03e0) AM_DEVREADWRITE("pokey2", pokey_device, read, write) @@ -209,7 +209,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( atetrisb2_map, AS_PROGRAM, 8, atetris_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(atetris_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(paletteram_RRRGGGBB_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x2000, 0x20ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram") AM_RANGE(0x2802, 0x2802) AM_DEVWRITE("sn1", sn76496_device, write) AM_RANGE(0x2804, 0x2804) AM_DEVWRITE("sn2", sn76496_device, write) @@ -332,8 +332,10 @@ static MACHINE_CONFIG_START( atetris, atetris_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", atetris) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRGGGBB) + MCFG_SCREEN_ADD("screen", RASTER) /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ @@ -364,7 +366,9 @@ static MACHINE_CONFIG_START( atetrisb2, atetris_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", atetris) - MCFG_PALETTE_LENGTH(256) + + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRGGGBB) MCFG_SCREEN_ADD("screen", RASTER) /* note: these parameters are from published specs, not derived */ diff --git a/src/mame/drivers/atlantis.c b/src/mame/drivers/atlantis.c index 8b7900bd659..2d70c8fdd35 100644 --- a/src/mame/drivers/atlantis.c +++ b/src/mame/drivers/atlantis.c @@ -154,8 +154,7 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(atlantis_state, screen_update_mwskins) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, BBBBB_GGGGG_RRRRR) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette") /* sound hardware */ MCFG_FRAGMENT_ADD(dcs2_audio_denver) diff --git a/src/mame/drivers/atronic.c b/src/mame/drivers/atronic.c index 6c78d1b283a..ea389a0a52c 100644 --- a/src/mame/drivers/atronic.c +++ b/src/mame/drivers/atronic.c @@ -69,7 +69,7 @@ static MACHINE_CONFIG_START( atronic, atronic_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) MACHINE_CONFIG_END diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c index bd7030decb4..afc4d55121d 100644 --- a/src/mame/drivers/atvtrack.c +++ b/src/mame/drivers/atvtrack.c @@ -409,7 +409,7 @@ static MACHINE_CONFIG_START( atvtrack, atvtrack_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(atvtrack_state, screen_update_atvtrack) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MACHINE_CONFIG_END diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c index 7205b611a2f..6ad872a6ec9 100644 --- a/src/mame/drivers/avt.c +++ b/src/mame/drivers/avt.c @@ -445,7 +445,7 @@ public: DECLARE_WRITE8_MEMBER(debug_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(avt); UINT32 screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(avt_vblank_irq); }; @@ -523,7 +523,7 @@ UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, UINT16 tile = m_videoram[count] | ((m_colorram[count] & 1) << 8); UINT8 color = (m_colorram[count] & 0xf0) >> 4; - gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8,(y*8)); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8,(y*8)); count++; } @@ -533,7 +533,7 @@ UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, } -void avt_state::palette_init() +PALETTE_INIT_MEMBER(avt_state, avt) { const UINT8 *color_prom = memregion("proms")->base(); /* prom bits @@ -549,7 +549,7 @@ void avt_state::palette_init() /* 0000BGRI */ if (color_prom == 0) return; - for (j = 0; j < machine().total_colors(); j++) + for (j = 0; j < palette.entries(); j++) { int bit1, bit2, bit3, r, g, b, inten, intenmin, intenmax, i; @@ -578,9 +578,9 @@ void avt_state::palette_init() /* hack to switch cyan->magenta for highlighted background */ if (j == 0x40) - palette_set_color(machine(), j, rgb_t(g, r, b)); // Why this one has R-G swapped?... + palette.set_pen_color(j, rgb_t(g, r, b)); // Why this one has R-G swapped?... else - palette_set_color(machine(), j, rgb_t(r, g, b)); + palette.set_pen_color(j, rgb_t(r, g, b)); } } @@ -908,8 +908,8 @@ static MACHINE_CONFIG_START( avt, avt_state ) MCFG_GFXDECODE_ADD("gfxdecode", avt) - MCFG_PALETTE_LENGTH(8*16) - + MCFG_PALETTE_ADD("palette", 8*16) + MCFG_PALETTE_INIT_OWNER(avt_state, avt) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index d93a3088565..ae0218a5cb5 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -232,7 +232,7 @@ WRITE32_MEMBER(backfire_state::backfire_eeprom_w) WRITE32_MEMBER(backfire_state::backfire_nonbuffered_palette_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); - palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10)); + m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10)); } /* map 32-bit writes to 16-bit */ @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( backfire, backfire_state ) /* video hardware */ - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_GFXDECODE_ADD("gfxdecode", backfire) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) @@ -525,22 +525,26 @@ static MACHINE_CONFIG_START( backfire, backfire_state ) MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf) MCFG_DECO16IC_SET_SCREEN("lscreen") MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", backfire_deco16ic_tilegen2_intf) MCFG_DECO16IC_SET_SCREEN("lscreen") MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) MCFG_VIDEO_SET_SCREEN("lscreen") decospr_device::set_gfx_region(*device, 4); decospr_device::set_pri_callback(*device, backfire_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) MCFG_VIDEO_SET_SCREEN("rscreen") decospr_device::set_gfx_region(*device, 5); decospr_device::set_pri_callback(*device, backfire_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c index eb575147f2d..73dee4a26b1 100644 --- a/src/mame/drivers/badlands.c +++ b/src/mame/drivers/badlands.c @@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( badlands, badlands_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", badlands) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, badlands_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32) MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", badlands_state::s_mob_config) @@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", badlandsb) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, badlands_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32) MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", badlands_state::s_mob_config) diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c index ed5ecd434aa..730521320ec 100644 --- a/src/mame/drivers/bagman.c +++ b/src/mame/drivers/bagman.c @@ -484,9 +484,9 @@ static MACHINE_CONFIG_START( bagman, bagman_state ) MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman) MCFG_GFXDECODE_ADD("gfxdecode", bagman) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) - MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman) + MCFG_PALETTE_INIT_OWNER(bagman_state,bagman) MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman) MCFG_DEVICE_ADD("tmsprom", TMSPROM, 640000 / 2) /* rom clock */ @@ -520,9 +520,9 @@ static MACHINE_CONFIG_START( pickin, bagman_state ) MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman) MCFG_GFXDECODE_ADD("gfxdecode", pickin) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) - MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman) + MCFG_PALETTE_INIT_OWNER(bagman_state,bagman) MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman) /* sound hardware */ @@ -572,9 +572,9 @@ static MACHINE_CONFIG_START( botanic, bagman_state ) MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman) MCFG_GFXDECODE_ADD("gfxdecode", bagman) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) - MCFG_PALETTE_INIT_OVERRIDE(bagman_state,bagman) + MCFG_PALETTE_INIT_OWNER(bagman_state,bagman) MCFG_VIDEO_START_OVERRIDE(bagman_state,bagman) /* sound hardware */ diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c index 7dde11a2cdd..a5bcc697b4e 100644 --- a/src/mame/drivers/balsente.c +++ b/src/mame/drivers/balsente.c @@ -1226,7 +1226,7 @@ static MACHINE_CONFIG_START( balsente, balsente_state ) MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(balsente_state, screen_update_balsente) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) /* sound hardware */ diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c index 0a59841eae3..b194cdfb929 100644 --- a/src/mame/drivers/bankp.c +++ b/src/mame/drivers/bankp.c @@ -300,8 +300,8 @@ static MACHINE_CONFIG_START( bankp, bankp_state ) MCFG_SCREEN_UPDATE_DRIVER(bankp_state, screen_update_bankp) MCFG_GFXDECODE_ADD("gfxdecode", bankp) - MCFG_PALETTE_LENGTH(32*4+16*8) - + MCFG_PALETTE_ADD("palette", 32*4+16*8) + MCFG_PALETTE_INIT_OWNER(bankp_state, bankp) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c index 79347417736..e42839d1f1b 100644 --- a/src/mame/drivers/baraduke.c +++ b/src/mame/drivers/baraduke.c @@ -393,8 +393,8 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state ) MCFG_SCREEN_VBLANK_DRIVER(baraduke_state, screen_eof_baraduke) MCFG_GFXDECODE_ADD("gfxdecode", baraduke) - MCFG_PALETTE_LENGTH(2048) - + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_INIT_OWNER(baraduke_state, baraduke) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bartop52.c b/src/mame/drivers/bartop52.c index 2c567c79fd7..3bf008a86e6 100644 --- a/src/mame/drivers/bartop52.c +++ b/src/mame/drivers/bartop52.c @@ -133,8 +133,8 @@ static MACHINE_CONFIG_START( a5200, bartop52_state ) MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) MCFG_SCREEN_UPDATE_STATIC(atari) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT(atari) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_LEGACY(atari) MCFG_VIDEO_START(atari) diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c index ebc78c77f11..f70c808f417 100644 --- a/src/mame/drivers/batman.c +++ b/src/mame/drivers/batman.c @@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( batman, batman_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", batman) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line)) MCFG_ATARI_VAD_PLAYFIELD(batman_state, get_playfield_tile_info) diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c index f73a4873f9b..570e6a5118b 100644 --- a/src/mame/drivers/battlane.c +++ b/src/mame/drivers/battlane.c @@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( battlane, battlane_state ) MCFG_SCREEN_UPDATE_DRIVER(battlane_state, screen_update_battlane) MCFG_GFXDECODE_ADD("gfxdecode", battlane) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) /* sound hardware */ diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c index 841ec0422c3..7153079412d 100644 --- a/src/mame/drivers/battlera.c +++ b/src/mame/drivers/battlera.c @@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state ) MCFG_SCREEN_UPDATE_DRIVER(battlera_state, screen_update_battlera) MCFG_GFXDECODE_ADD("gfxdecode", battlera) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c index f1cb24f3236..8946a1c6e93 100644 --- a/src/mame/drivers/battlex.c +++ b/src/mame/drivers/battlex.c @@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( battlex, battlex_state ) MCFG_SCREEN_UPDATE_DRIVER(battlex_state, screen_update_battlex) MCFG_GFXDECODE_ADD("gfxdecode", battlex) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c index e7a5bbf1e39..9a04143657d 100644 --- a/src/mame/drivers/battlnts.c +++ b/src/mame/drivers/battlnts.c @@ -58,7 +58,7 @@ static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8, battlnts_state ) AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("k007342", k007342_device, read, write) /* Color RAM + Video RAM */ AM_RANGE(0x2000, 0x21ff) AM_DEVREADWRITE("k007420", k007420_device, read, write) /* Sprite RAM */ AM_RANGE(0x2200, 0x23ff) AM_DEVREADWRITE("k007342", k007342_device, scroll_r, scroll_w) /* Scroll RAM */ - AM_RANGE(0x2400, 0x24ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram")/* palette */ + AM_RANGE(0x2400, 0x24ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* palette */ AM_RANGE(0x2600, 0x2607) AM_DEVWRITE("k007342", k007342_device, vreg_w) /* Video Registers */ AM_RANGE(0x2e00, 0x2e00) AM_READ_PORT("DSW1") AM_RANGE(0x2e01, 0x2e01) AM_READ_PORT("P2") @@ -256,12 +256,14 @@ static MACHINE_CONFIG_START( battlnts, battlnts_state ) MCFG_SCREEN_UPDATE_DRIVER(battlnts_state, screen_update_battlnts) MCFG_GFXDECODE_ADD("gfxdecode", battlnts) - MCFG_PALETTE_LENGTH(128) + MCFG_PALETTE_ADD("palette", 128) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_K007342_ADD("k007342", bladestl_k007342_intf) MCFG_K007342_GFXDECODE("gfxdecode") MCFG_K007420_ADD("k007420", bladestl_k007420_intf) + MCFG_K007420_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index 54c1f00c7ca..60f0983ea35 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -331,7 +331,7 @@ static ADDRESS_MAP_START( bbusters_map, AS_PROGRAM, 16, bbusters_state ) AM_RANGE(0x0b4000, 0x0b5fff) AM_RAM /* service mode */ AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_SHARE("pf1_scroll_data") AM_RANGE(0x0b8008, 0x0b800b) AM_WRITEONLY AM_SHARE("pf2_scroll_data") - AM_RANGE(0x0d0000, 0x0d0fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d0000, 0x0d0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("COINS") /* Coins */ AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("IN0") /* Player 1 & 2 */ AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("IN1") /* Player 3 */ @@ -358,7 +358,7 @@ static ADDRESS_MAP_START( mechatt_map, AS_PROGRAM, 16, bbusters_state ) AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_SHARE("pf1_scroll_data") AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM_WRITE(bbusters_pf2_w) AM_SHARE("pf2_data") AM_RANGE(0x0c8000, 0x0c8003) AM_WRITEONLY AM_SHARE("pf2_scroll_data") - AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0") AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1") AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r) @@ -682,7 +682,8 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state ) MCFG_SCREEN_VBLANK_DRIVER(bbusters_state, screen_eof_bbuster) MCFG_GFXDECODE_ADD("gfxdecode", bbusters) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(bbusters_state,bbuster) @@ -720,7 +721,8 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", mechatt) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(bbusters_state,mechatt) diff --git a/src/mame/drivers/beathead.c b/src/mame/drivers/beathead.c index 832ad8a83a2..c445fa12640 100644 --- a/src/mame/drivers/beathead.c +++ b/src/mame/drivers/beathead.c @@ -377,7 +377,7 @@ static MACHINE_CONFIG_START( beathead, beathead_state ) MCFG_SCREEN_UPDATE_DRIVER(beathead_state, screen_update) MCFG_SCREEN_SIZE(42*8, 262) MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c index abf9f6edfa6..d79b8f85a05 100644 --- a/src/mame/drivers/beezer.c +++ b/src/mame/drivers/beezer.c @@ -99,7 +99,7 @@ static MACHINE_CONFIG_START( beezer, beezer_state ) MCFG_SCREEN_VISIBLE_AREA(16, 304-1, 0, 240-1) // 288 x 240, correct? MCFG_SCREEN_UPDATE_DRIVER(beezer_state, screen_update_beezer) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c index 4bba2ecff10..09e8c903cba 100644 --- a/src/mame/drivers/bestleag.c +++ b/src/mame/drivers/bestleag.c @@ -155,26 +155,26 @@ void bestleag_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec if(m_vregs[0x00/2] & 0x1000) color &= 7; - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, color, flipx, 0, flipx ? (sx+16) : (sx),sy,15); - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code+1, color, flipx, 0, flipx ? (sx) : (sx+16),sy,15); /* wraparound x */ - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, color, flipx, 0, flipx ? (sx+16 - 512) : (sx - 512),sy,15); - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code+1, color, flipx, 0, @@ -247,7 +247,7 @@ static ADDRESS_MAP_START( bestleag_map, AS_PROGRAM, 16, bestleag_state ) AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(bestleag_fgram_w) AM_SHARE("fgram") AM_RANGE(0x0f0000, 0x0f3fff) AM_RAM_WRITE(bestleag_txram_w) AM_SHARE("txram") AM_RANGE(0x0f8000, 0x0f800b) AM_RAM AM_SHARE("vregs") - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x100000, 0x100fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x200fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x300010, 0x300011) AM_READ_PORT("SYSTEM") AM_RANGE(0x300012, 0x300013) AM_READ_PORT("P1") @@ -381,8 +381,8 @@ static MACHINE_CONFIG_START( bestleag, bestleag_state ) MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleag) MCFG_GFXDECODE_ADD("gfxdecode", bestleag) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c index 68768d122bc..2bbcfd95aef 100644 --- a/src/mame/drivers/bfcobra.c +++ b/src/mame/drivers/bfcobra.c @@ -428,13 +428,13 @@ UINT32 bfcobra_state::screen_update_bfcobra(screen_device &screen, bitmap_rgb32 if ( ( m_videomode & 0x81 ) == 1 || (m_videomode & 0x80 && pen & 0x80) ) { - *dest++ = machine().pens[hirescol[pen & 0x0f]]; - *dest++ = machine().pens[hirescol[(pen >> 4) & 0x0f]]; + *dest++ = m_palette->pen(hirescol[pen & 0x0f]); + *dest++ = m_palette->pen(hirescol[(pen >> 4) & 0x0f]); } else { - *dest++ = machine().pens[lorescol[pen]]; - *dest++ = machine().pens[lorescol[pen]]; + *dest++ = m_palette->pen(lorescol[pen]); + *dest++ = m_palette->pen(lorescol[pen]); } } } @@ -772,7 +772,7 @@ READ8_MEMBER(bfcobra_state::ramdac_r) if (*count == 0) { rgb_t color; - color = palette_get_color(machine(), ramdac.addr_r); + color = m_palette->pen_color(ramdac.addr_r); ramdac.color_r[0] = color.r(); ramdac.color_r[1] = color.g(); @@ -817,7 +817,7 @@ WRITE8_MEMBER(bfcobra_state::ramdac_w) ramdac.color_w[ramdac.count_w] = pal6bit(data); if (++ramdac.count_w == 3) { - palette_set_color_rgb(machine(), ramdac.addr_w, ramdac.color_w[0], ramdac.color_w[1], ramdac.color_w[2]); + m_palette->set_pen_color(ramdac.addr_w, ramdac.color_w[0], ramdac.color_w[1], ramdac.color_w[2]); ramdac.count_w = 0; ramdac.addr_w++; } @@ -1334,7 +1334,7 @@ void bfcobra_state::machine_reset() for (pal = 0; pal < 256; ++pal) { - palette_set_color_rgb(machine(), pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3)); + m_palette->set_pen_color(pal, pal3bit((pal>>5)&7), pal3bit((pal>>2)&7), pal2bit(pal&3)); } m_bank_data[0] = 1; @@ -1745,7 +1745,7 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1) MCFG_SCREEN_UPDATE_DRIVER(bfcobra_state, screen_update_bfcobra) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c index bbdc37544c2..3f44a6269b4 100644 --- a/src/mame/drivers/big10.c +++ b/src/mame/drivers/big10.c @@ -266,7 +266,7 @@ static MACHINE_CONFIG_START( big10, big10_state ) MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2) MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c index 0d14b81257f..2313cb9aab9 100644 --- a/src/mame/drivers/bigevglf.c +++ b/src/mame/drivers/bigevglf.c @@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( bigevglf, bigevglf_state ) MCFG_SCREEN_UPDATE_DRIVER(bigevglf_state, screen_update_bigevglf) MCFG_GFXDECODE_ADD("gfxdecode", bigevglf) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c index f30020ed03b..0ff6163ab4c 100644 --- a/src/mame/drivers/bigstrkb.c +++ b/src/mame/drivers/bigstrkb.c @@ -53,7 +53,7 @@ static ADDRESS_MAP_START( bigstrkb_map, AS_PROGRAM, 16, bigstrkb_state ) AM_RANGE(0x0ec000, 0x0effff) AM_RAM_WRITE(bsb_videoram_w) AM_SHARE("videoram") AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM - AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0f8800, 0x0fffff) AM_RAM AM_RANGE(0x1f0000, 0x1f7fff) AM_RAM @@ -209,7 +209,8 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update_bigstrkb) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/bingoc.c b/src/mame/drivers/bingoc.c index 8ae0f5b13bf..ee868bf8dfb 100644 --- a/src/mame/drivers/bingoc.c +++ b/src/mame/drivers/bingoc.c @@ -168,7 +168,7 @@ static MACHINE_CONFIG_START( bingoc, bingoc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(bingoc_state, screen_update_bingoc) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") //might just be mono... diff --git a/src/mame/drivers/bingoman.c b/src/mame/drivers/bingoman.c index b2f93f668c6..c160a89342a 100644 --- a/src/mame/drivers/bingoman.c +++ b/src/mame/drivers/bingoman.c @@ -254,14 +254,13 @@ public: // screen updates UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - + DECLARE_PALETTE_INIT(bingoman); protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void bingoman_state::video_start() @@ -364,7 +363,7 @@ void bingoman_state::machine_reset() } -void bingoman_state::palette_init() +PALETTE_INIT_MEMBER(bingoman_state, bingoman) { } @@ -385,7 +384,8 @@ static MACHINE_CONFIG_START( bingoman, bingoman_state ) MCFG_GFXDECODE_ADD("gfxdecode", bingoman) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(bingoman_state, bingoman) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c index 681b79d2fce..e069a6e30d2 100644 --- a/src/mame/drivers/bingor.c +++ b/src/mame/drivers/bingor.c @@ -470,7 +470,7 @@ UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &b { int x,y,count; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = (0x2000/2); @@ -483,22 +483,22 @@ UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &b color = (m_blit_ram[count] & 0xf000)>>12; if(cliprect.contains(x+3, y)) - bitmap.pix32(y, x+3) = machine().pens[color]; + bitmap.pix32(y, x+3) = m_palette->pen(color); color = (m_blit_ram[count] & 0x0f00)>>8; if(cliprect.contains(x+2, y)) - bitmap.pix32(y, x+2) = machine().pens[color]; + bitmap.pix32(y, x+2) = m_palette->pen(color); color = (m_blit_ram[count] & 0x00f0)>>4; if(cliprect.contains(x+1, y)) - bitmap.pix32(y, x+1) = machine().pens[color]; + bitmap.pix32(y, x+1) = m_palette->pen(color); color = (m_blit_ram[count] & 0x000f)>>0; if(cliprect.contains(x+0, y)) - bitmap.pix32(y, x+0) = machine().pens[color]; + bitmap.pix32(y, x+0) = m_palette->pen(color); count++; } @@ -517,7 +517,7 @@ READ16_MEMBER(bingor_state::test_r) static ADDRESS_MAP_START( bingor_map, AS_PROGRAM, 16, bingor_state ) AM_RANGE(0x00000, 0x0ffff) AM_RAM AM_RANGE(0x90000, 0x9ffff) AM_ROM AM_REGION("gfx", 0) - AM_RANGE(0xa0300, 0xa031f) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBIIII_word_w) AM_SHARE("paletteram") //wrong + AM_RANGE(0xa0300, 0xa031f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") //wrong AM_RANGE(0xa0000, 0xaffff) AM_RAM AM_SHARE("blit_ram") AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("boot_prg",0) ADDRESS_MAP_END @@ -642,8 +642,8 @@ static MACHINE_CONFIG_START( bingor, bingor_state ) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) MCFG_SCREEN_UPDATE_DRIVER(bingor_state, screen_update_bingor) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBIIII) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SAA1099_ADD("saa", 6000000 ) diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c index 586d1241f23..9f3dc41fe9b 100644 --- a/src/mame/drivers/bionicc.c +++ b/src/mame/drivers/bionicc.c @@ -368,7 +368,7 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", bionicc) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c index eb0df04bd8f..f28fcf58ffb 100644 --- a/src/mame/drivers/bishi.c +++ b/src/mame/drivers/bishi.c @@ -154,7 +154,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state ) AM_RANGE(0x870000, 0x8700ff) AM_DEVWRITE("k055555", k055555_device, k055555_word_w) // PCU2 AM_RANGE(0x880000, 0x880003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0xff00) AM_RANGE(0xa00000, 0xa01fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) // Graphic planes - AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(paletteram_xbgr_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb03fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb04000, 0xb047ff) AM_READ(bishi_mirror_r) // bug in the ram/rom test? AM_RANGE(0xc00000, 0xc01fff) AM_READ(bishi_K056832_rom_r) ADDRESS_MAP_END @@ -399,7 +399,7 @@ static MACHINE_CONFIG_START( bishi, bishi_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -408,11 +408,15 @@ static MACHINE_CONFIG_START( bishi, bishi_state ) MCFG_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(bishi_state, screen_update_bishi) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(XBGR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD("k056832", bishi_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K054338_ADD("k054338", bishi_k054338_intf) MCFG_K055555_ADD("k055555") diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c index 734dce70d12..61f11efb72a 100644 --- a/src/mame/drivers/bking.c +++ b/src/mame/drivers/bking.c @@ -481,7 +481,8 @@ static MACHINE_CONFIG_START( bking, bking_state ) MCFG_SCREEN_VBLANK_DRIVER(bking_state, screen_eof_bking) MCFG_GFXDECODE_ADD("gfxdecode", bking) - MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2) + MCFG_PALETTE_ADD("palette", 4*8+4*4+4*2+4*2) + MCFG_PALETTE_INIT_OWNER(bking_state, bking) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c index 8e58ea0c035..42340469c3e 100644 --- a/src/mame/drivers/blackt96.c +++ b/src/mame/drivers/blackt96.c @@ -238,11 +238,11 @@ void blackt96_state::draw_strip(bitmap_ind16 &bitmap, const rectangle &cliprect, if (tile&0x2000) { - gfxbg->transpen(bitmap,cliprect,tile&0x1fff,colour>>4,flipx,0,xx,yy+y*16,0); + gfxbg->transpen(m_palette,bitmap,cliprect,tile&0x1fff,colour>>4,flipx,0,xx,yy+y*16,0); } else { - gfxspr->transpen(bitmap,cliprect,tile&0x1fff,colour,flipx,0,xx,yy+y*16,0); + gfxspr->transpen(m_palette,bitmap,cliprect,tile&0x1fff,colour,flipx,0,xx,yy+y*16,0); } } } @@ -257,7 +257,7 @@ void blackt96_state::draw_page(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); draw_page(bitmap, cliprect, 2); // bg draw_page(bitmap, cliprect, 3); // lower pri sprites @@ -275,7 +275,7 @@ UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind1 { UINT16 tile = (m_tilemapram[count*2]&0xff); tile += m_txt_bank * 0x100; - gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,-16+y*8,0); + gfx->transpen(m_palette,bitmap,cliprect,tile,0,0,0,x*8,-16+y*8,0); count++; } } @@ -327,7 +327,7 @@ static ADDRESS_MAP_START( blackt96_map, AS_PROGRAM, 16, blackt96_state ) AM_RANGE(0x207000, 0x207fff) AM_RAM_WRITE(bg_videoram7_w) AM_SHARE("spriteram7") - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc00000, 0xc03fff) AM_RAM // main ram ADDRESS_MAP_END @@ -612,7 +612,8 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 256-1, 0*8, 224-1) MCFG_SCREEN_UPDATE_DRIVER(blackt96_state, screen_update_blackt96) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c index c1576eda5ce..ab2a1d9b66d 100644 --- a/src/mame/drivers/bladestl.c +++ b/src/mame/drivers/bladestl.c @@ -335,12 +335,14 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state ) MCFG_SCREEN_UPDATE_DRIVER(bladestl_state, screen_update_bladestl) MCFG_GFXDECODE_ADD("gfxdecode", bladestl) - MCFG_PALETTE_LENGTH(32 + 16*16) + MCFG_PALETTE_ADD("palette", 32 + 16*16) + MCFG_PALETTE_INIT_OWNER(bladestl_state, bladestl) MCFG_K007342_ADD("k007342", bladestl_k007342_intf) MCFG_K007342_GFXDECODE("gfxdecode") MCFG_K007420_ADD("k007420", bladestl_k007420_intf) + MCFG_K007420_PALETTE("palette") MCFG_K051733_ADD("k051733") /* sound hardware */ diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c index 44caff5dc1a..1fe9f1c50bd 100644 --- a/src/mame/drivers/blitz.c +++ b/src/mame/drivers/blitz.c @@ -314,7 +314,7 @@ public: DECLARE_WRITE8_MEMBER(sound_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(blitz); UINT32 screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -371,7 +371,7 @@ UINT32 blitz_state::screen_update_megadpkr(screen_device &screen, bitmap_ind16 & } -void blitz_state::palette_init() +PALETTE_INIT_MEMBER(blitz_state, blitz) { const UINT8 *color_prom = memregion("proms")->base(); /* @@ -392,7 +392,7 @@ void blitz_state::palette_init() if (color_prom == 0) return; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0, bit1, bit2, bit3, r, g, b, bk; @@ -412,7 +412,7 @@ void blitz_state::palette_init() bit2 = (color_prom[i] >> 2) & 0x01; b = bk * (bit2 * 0xff); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -789,8 +789,8 @@ static MACHINE_CONFIG_START( megadpkr, blitz_state ) MCFG_MC6845_ADD("crtc", MC6845, "screen", CPU_CLOCK, mc6845_intf) MCFG_GFXDECODE_ADD("gfxdecode", megadpkr) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(blitz_state, blitz) MACHINE_CONFIG_END diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c index 8c90bc6497e..66a549caeec 100644 --- a/src/mame/drivers/blitz68k.c +++ b/src/mame/drivers/blitz68k.c @@ -221,7 +221,7 @@ UINT32 blitz68k_state::screen_update_blitz68k(screen_device &screen, bitmap_rgb3 { for(x = 0; x < 512; x++) { - bitmap.pix32(y, x) = machine().pens[*src++]; + bitmap.pix32(y, x) = m_palette->pen(*src++); } } @@ -242,10 +242,10 @@ UINT32 blitz68k_state::screen_update_blitz68k_noblit(screen_device &screen, bitm for(x = 0; x < 512; ) { UINT16 pen = *src++; - bitmap.pix32(y, x++) = machine().pens[(pen >> 8) & 0xf]; - bitmap.pix32(y, x++) = machine().pens[(pen >> 12) & 0xf]; - bitmap.pix32(y, x++) = machine().pens[(pen >> 0) & 0xf]; - bitmap.pix32(y, x++) = machine().pens[(pen >> 4) & 0xf]; + bitmap.pix32(y, x++) = m_palette->pen((pen >> 8) & 0xf); + bitmap.pix32(y, x++) = m_palette->pen((pen >> 12) & 0xf); + bitmap.pix32(y, x++) = m_palette->pen((pen >> 0) & 0xf); + bitmap.pix32(y, x++) = m_palette->pen((pen >> 4) & 0xf); } } @@ -1733,11 +1733,11 @@ static MACHINE_CONFIG_START( ilpag, blitz68k_state ) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1807,10 +1807,10 @@ static MACHINE_CONFIG_START( cjffruit, blitz68k_state ) MCFG_MC6845_ADD("crtc", R6545_1, "screen", XTAL_22_1184MHz/8, mc6845_intf_irq1) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1839,10 +1839,10 @@ static MACHINE_CONFIG_START( bankrob, blitz68k_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq3) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1869,10 +1869,10 @@ static MACHINE_CONFIG_START( bankroba, blitz68k_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq5) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k_addr_factor1) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1898,10 +1898,10 @@ static MACHINE_CONFIG_START( deucesw2, blitz68k_state ) MCFG_MC6845_ADD("crtc", R6545_1, "screen", XTAL_22_1184MHz/8, mc6845_intf_irq3) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1929,10 +1929,10 @@ static MACHINE_CONFIG_START( dualgame, blitz68k_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq3) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1958,10 +1958,10 @@ static MACHINE_CONFIG_START( hermit, blitz68k_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_22_1184MHz/8, mc6845_intf_irq1) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(blitz68k_state,blitz68k) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac") @@ -1992,8 +1992,8 @@ static MACHINE_CONFIG_START( maxidbl, blitz68k_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", XTAL_11_0592MHz/4, mc6845_intf_irq3) - MCFG_PALETTE_LENGTH(0x100) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SAA1099_ADD("saa", XTAL_8MHz/2) diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c index c05ad0afab3..54685979731 100644 --- a/src/mame/drivers/blktiger.c +++ b/src/mame/drivers/blktiger.c @@ -72,8 +72,8 @@ static ADDRESS_MAP_START( blktiger_map, AS_PROGRAM, 8, blktiger_state ) AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xcfff) AM_READWRITE(blktiger_bgvideoram_r, blktiger_bgvideoram_w) AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(blktiger_txvideoram_w) AM_SHARE("txvideoram") - AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xd800, 0xdbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xdc00, 0xdfff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xe000, 0xfdff) AM_RAM AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE("spriteram") ADDRESS_MAP_END @@ -329,8 +329,9 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", blktiger) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) MCFG_BUFFERED_SPRITERAM8_ADD("spriteram") diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c index bc35b0d8a7e..27d488478c0 100644 --- a/src/mame/drivers/blmbycar.c +++ b/src/mame/drivers/blmbycar.c @@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state ) MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar) MCFG_GFXDECODE_ADD("gfxdecode", blmbycar) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) /* sound hardware */ @@ -405,7 +405,7 @@ static MACHINE_CONFIG_START( watrball, blmbycar_state ) MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar) MCFG_GFXDECODE_ADD("gfxdecode", blmbycar) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) /* sound hardware */ diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c index bd78e006f96..135d1143062 100644 --- a/src/mame/drivers/blockade.c +++ b/src/mame/drivers/blockade.c @@ -437,12 +437,6 @@ static GFXDECODE_START( blasto ) GFXDECODE_ENTRY( "gfx1", 0x0000, blasto_layout, 0, 1 ) GFXDECODE_END -void blockade_state::palette_init() -{ - palette_set_color(machine(),0,rgb_t(0x00,0x00,0x00)); /* BLACK */ - palette_set_color(machine(),1,rgb_t(0xff,0xff,0xff)); /* WHITE */ -} - /************************************* * @@ -480,7 +474,7 @@ static MACHINE_CONFIG_START( blockade, blockade_state ) MCFG_SCREEN_UPDATE_DRIVER(blockade_state, screen_update_blockade) MCFG_GFXDECODE_ADD("gfxdecode", blockade) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c index ed728f01e0a..a92f5e66248 100644 --- a/src/mame/drivers/blockhl.c +++ b/src/mame/drivers/blockhl.c @@ -46,7 +46,7 @@ READ8_MEMBER(blockhl_state::bankedram_r) WRITE8_MEMBER(blockhl_state::bankedram_w) { if (m_palette_selected) - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); else m_ram[offset] = data; } @@ -209,8 +209,6 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -218,13 +216,17 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(blockhl_state, screen_update_blockhl) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", blockhl_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", blockhl_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c index f3d53eed7fb..dafe46efb43 100644 --- a/src/mame/drivers/blockout.c +++ b/src/mame/drivers/blockout.c @@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( blockout, blockout_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247) MCFG_SCREEN_UPDATE_DRIVER(blockout_state, screen_update_blockout) - MCFG_PALETTE_LENGTH(513) + MCFG_PALETTE_ADD("palette", 513) /* sound hardware */ diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c index 4ff2c642ff6..6138af7c61a 100644 --- a/src/mame/drivers/bloodbro.c +++ b/src/mame/drivers/bloodbro.c @@ -137,7 +137,7 @@ static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, bloodbro_state ) AM_RANGE(0x08d400, 0x08d7ff) AM_RAM AM_RANGE(0x08d800, 0x08dfff) AM_RAM_WRITE(bloodbro_txvideoram_w) AM_SHARE("txvideoram") AM_RANGE(0x08e000, 0x08e7ff) AM_RAM - AM_RANGE(0x08e800, 0x08f7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x08e800, 0x08f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08f800, 0x08ffff) AM_RAM AM_RANGE(0x0a0000, 0x0a000d) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, main_word_r, main_word_w) // AM_RANGE(0x0c0000, 0x0c007f) AM_RAM AM_SHARE("scroll") @@ -173,7 +173,7 @@ static ADDRESS_MAP_START( weststry_map, AS_PROGRAM, 16, bloodbro_state ) AM_RANGE(0x0c1002, 0x0c1003) AM_READ_PORT("IN0") AM_RANGE(0x0c1004, 0x0c1005) AM_READ_PORT("IN1") AM_RANGE(0x0c1000, 0x0c17ff) AM_RAM - AM_RANGE(0x128000, 0x1287ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x128000, 0x1287ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x120000, 0x128fff) AM_RAM ADDRESS_MAP_END @@ -478,7 +478,8 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state ) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) MCFG_GFXDECODE_ADD("gfxdecode", bloodbro) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) // sound hardware SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_7_15909MHz/2, XTAL_12MHz/12) @@ -491,7 +492,9 @@ static MACHINE_CONFIG_DERIVED( weststry, bloodbro ) MCFG_CPU_VBLANK_INT_DRIVER("screen", bloodbro_state, irq6_line_hold) MCFG_GFXDECODE_MODIFY("gfxdecode", weststry) - MCFG_PALETTE_LENGTH(1024) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry) diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c index 7814d2e61a0..d04e4f692a4 100644 --- a/src/mame/drivers/blstroid.c +++ b/src/mame/drivers/blstroid.c @@ -77,7 +77,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state ) AM_RANGE(0xff9804, 0xff9805) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL1") AM_RANGE(0xff9c00, 0xff9c01) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN0") AM_RANGE(0xff9c02, 0xff9c03) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN1") - AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) AM_RANGE(0xffc000, 0xffcfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob") @@ -184,7 +184,9 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", blstroid) - MCFG_PALETTE_LENGTH(512) + + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, blstroid_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64) MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", blstroid_state::s_mob_config) diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c index 0243b9e3ba9..09f3c2f62ce 100644 --- a/src/mame/drivers/blueprnt.c +++ b/src/mame/drivers/blueprnt.c @@ -386,7 +386,8 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state ) MCFG_SCREEN_UPDATE_DRIVER(blueprnt_state, screen_update_blueprnt) MCFG_GFXDECODE_ADD("gfxdecode", blueprnt) - MCFG_PALETTE_LENGTH(128*4+8) + MCFG_PALETTE_ADD("palette", 128*4+8) + MCFG_PALETTE_INIT_OWNER(blueprnt_state, blueprnt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c index fe3d46f5112..261c037db2b 100644 --- a/src/mame/drivers/bmcbowl.c +++ b/src/mame/drivers/bmcbowl.c @@ -160,7 +160,7 @@ UINT32 bmcbowl_state::screen_update_bmcbowl(screen_device &screen, bitmap_ind16 */ int x,y,z,pixdat; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); z=0; for (y=0;y<230;y++) @@ -231,7 +231,7 @@ WRITE16_MEMBER(bmcbowl_state::bmc_RAMDAC_offset_w) WRITE16_MEMBER(bmcbowl_state::bmc_RAMDAC_color_w) { m_colorram[m_clr_offset]=data; - palette_set_color_rgb(machine(),m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2])); + m_palette->set_pen_color(m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2])); m_clr_offset=(m_clr_offset+1)%768; } @@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 0*8, 29*8-1) MCFG_SCREEN_UPDATE_DRIVER(bmcbowl_state, screen_update_bmcbowl) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_NVRAM_ADD_1FILL("nvram") diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c index c981b33a5b8..f2277b628ab 100644 --- a/src/mame/drivers/bmcpokr.c +++ b/src/mame/drivers/bmcpokr.c @@ -213,7 +213,7 @@ UINT32 bmcpokr_state::screen_update_bmcpokr(screen_device &screen, bitmap_ind16 UINT16 data = m_videoram[count]; count++; - gfx->opaque(bitmap,cliprect,data,0,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,data,0,0,0,x*8,y*8); } } @@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state ) MCFG_SCREEN_UPDATE_DRIVER(bmcpokr_state, screen_update_bmcpokr) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_GFXDECODE_ADD("gfxdecode", bmcpokr) MACHINE_CONFIG_END diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index da15237fc8c..25d67cae03c 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -366,7 +366,7 @@ void bnstars_state::update_color(int color, int screen) g = ((m_ms32_pal_ram[screen][color*2] & 0x00ff) >>0 ); b = ((m_ms32_pal_ram[screen][color*2+1] & 0x00ff) >>0 ); - palette_set_color(machine(),color+screen*0x8000,rgb_t(r,g,b)); + m_palette->set_pen_color(color+screen*0x8000,rgb_t(r,g,b)); } WRITE32_MEMBER(bnstars_state::ms32_pal0_ram_w) @@ -499,7 +499,7 @@ void bnstars_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co pri_mask = 0xfe; gfx->set_source_clip(tx, xsize, ty, ysize); - gfx->prio_zoom_transpen(bitmap,cliprect, + gfx->prio_zoom_transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, @@ -1390,7 +1390,7 @@ static MACHINE_CONFIG_START( bnstars, bnstars_state ) MCFG_GFXDECODE_ADD("gfxdecode", bnstars) - MCFG_PALETTE_LENGTH(0x8000*2) + MCFG_PALETTE_ADD("palette", 0x8000*2) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) diff --git a/src/mame/drivers/bntyhunt.c b/src/mame/drivers/bntyhunt.c index 5efe3cc2685..7b41d2919cb 100644 --- a/src/mame/drivers/bntyhunt.c +++ b/src/mame/drivers/bntyhunt.c @@ -59,7 +59,7 @@ static MACHINE_CONFIG_START( bntyhunt, bntyhunt_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c index 8dbbac05158..57ed8dc6bc0 100644 --- a/src/mame/drivers/bogeyman.c +++ b/src/mame/drivers/bogeyman.c @@ -251,8 +251,9 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state ) MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update_bogeyman) MCFG_GFXDECODE_ADD("gfxdecode", bogeyman) - MCFG_PALETTE_LENGTH(16+256) - + MCFG_PALETTE_ADD("palette", 16+256) + MCFG_PALETTE_FORMAT(BBGGGRRR) + MCFG_PALETTE_INIT_OWNER(bogeyman_state, bogeyman) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c index 8fdd126d70a..6368d5840c5 100644 --- a/src/mame/drivers/bombjack.c +++ b/src/mame/drivers/bombjack.c @@ -140,7 +140,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bombjack_state ) AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(bombjack_colorram_w) AM_SHARE("colorram") AM_RANGE(0x9820, 0x987f) AM_WRITEONLY AM_SHARE("spriteram") AM_RANGE(0x9a00, 0x9a00) AM_WRITENOP - AM_RANGE(0x9c00, 0x9cff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0x9c00, 0x9cff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x9e00, 0x9e00) AM_WRITE(bombjack_background_w) AM_RANGE(0xb000, 0xb000) AM_READ_PORT("P1") AM_RANGE(0xb000, 0xb000) AM_WRITE(irq_mask_w) @@ -371,7 +371,8 @@ static MACHINE_CONFIG_START( bombjack, bombjack_state ) MCFG_SCREEN_UPDATE_DRIVER(bombjack_state, screen_update_bombjack) MCFG_GFXDECODE_ADD("gfxdecode", bombjack) - MCFG_PALETTE_LENGTH(128) + MCFG_PALETTE_ADD("palette", 128) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c index 121568adda8..19c7e670c85 100644 --- a/src/mame/drivers/boogwing.c +++ b/src/mame/drivers/boogwing.c @@ -351,7 +351,7 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(boogwing_state, screen_update_boogwing) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_GFXDECODE_ADD("gfxdecode", boogwing) @@ -362,17 +362,21 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state ) MCFG_DECO16IC_ADD("tilegen1", boogwing_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", boogwing_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c index cb184aad7a4..f8f63cbb4c4 100644 --- a/src/mame/drivers/bottom9.c +++ b/src/mame/drivers/bottom9.c @@ -83,7 +83,7 @@ WRITE8_MEMBER(bottom9_state::bottom9_bankedram2_w) if (m_k052109_selected) k052109_051960_w(space, offset + 0x2000, data); else - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); } WRITE8_MEMBER(bottom9_state::bankswitch_w) @@ -340,8 +340,6 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -349,15 +347,20 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(bottom9_state, screen_update_bottom9) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", bottom9_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", bottom9_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K051316_ADD("k051316", bottom9_k051316_intf) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bowltry.c b/src/mame/drivers/bowltry.c index af23b436a8e..f2730ed7349 100644 --- a/src/mame/drivers/bowltry.c +++ b/src/mame/drivers/bowltry.c @@ -67,7 +67,7 @@ static MACHINE_CONFIG_START( bowltry, bowltry_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(bowltry_state, screen_update_bowltry) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* tt5665 sound */ diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c index 2171892b257..dfa850d93a2 100644 --- a/src/mame/drivers/boxer.c +++ b/src/mame/drivers/boxer.c @@ -58,7 +58,7 @@ public: DECLARE_WRITE8_MEMBER(boxer_led_w); virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(boxer); UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(pot_interrupt); TIMER_CALLBACK_MEMBER(periodic_callback); @@ -143,13 +143,13 @@ TIMER_CALLBACK_MEMBER(boxer_state::periodic_callback) * *************************************/ -void boxer_state::palette_init() +PALETTE_INIT_MEMBER(boxer_state, boxer) { - palette_set_color(machine(),0, rgb_t(0x00,0x00,0x00)); - palette_set_color(machine(),1, rgb_t(0xff,0xff,0xff)); + palette.set_pen_color(0, rgb_t(0x00,0x00,0x00)); + palette.set_pen_color(1, rgb_t(0xff,0xff,0xff)); - palette_set_color(machine(),2, rgb_t(0xff,0xff,0xff)); - palette_set_color(machine(),3, rgb_t(0x00,0x00,0x00)); + palette.set_pen_color(2, rgb_t(0xff,0xff,0xff)); + palette.set_pen_color(3, rgb_t(0x00,0x00,0x00)); } void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect ) @@ -177,7 +177,7 @@ void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect ) code = p[32 * l + 4 * i + j]; - m_gfxdecode->gfx(n)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(n)->transpen(m_palette,bitmap,cliprect, code, 0, code & 0x80, 0, @@ -187,7 +187,7 @@ void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect ) code = p[32 * r + 4 * i - j + 3]; - m_gfxdecode->gfx(n)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(n)->transpen(m_palette,bitmap,cliprect, code, 0, !(code & 0x80), 0, @@ -212,7 +212,7 @@ UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind16 &bit UINT8 code = m_tile_ram[32 * i + j]; - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, 0, code & 0x40, code & 0x40, @@ -483,7 +483,8 @@ static MACHINE_CONFIG_START( boxer, boxer_state ) MCFG_SCREEN_UPDATE_DRIVER(boxer_state, screen_update_boxer) MCFG_GFXDECODE_ADD("gfxdecode", boxer) - MCFG_PALETTE_LENGTH(4) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(boxer_state, boxer) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c index bae48ba6c0c..ed1f633db35 100644 --- a/src/mame/drivers/brkthru.c +++ b/src/mame/drivers/brkthru.c @@ -382,7 +382,9 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", brkthru) - MCFG_PALETTE_LENGTH(256) + + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(brkthru_state, brkthru) /* not sure; assuming to be the same as darwin */ MCFG_SCREEN_ADD("screen", RASTER) @@ -418,7 +420,9 @@ static MACHINE_CONFIG_START( darwin, brkthru_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", brkthru) - MCFG_PALETTE_LENGTH(256) + + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(brkthru_state, brkthru) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248) diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c index 9d70de695d3..04e966c80d7 100644 --- a/src/mame/drivers/bsktball.c +++ b/src/mame/drivers/bsktball.c @@ -35,33 +35,31 @@ * *************************************/ -void bsktball_state::palette_init() +PALETTE_INIT_MEMBER(bsktball_state, bsktball) { int i; - machine().colortable = colortable_alloc(machine(), 4); - - colortable_palette_set_color(machine().colortable,0,rgb_t(0x00,0x00,0x00)); /* BLACK */ - colortable_palette_set_color(machine().colortable,1,rgb_t(0x80,0x80,0x80)); /* LIGHT GREY */ - colortable_palette_set_color(machine().colortable,2,rgb_t(0x50,0x50,0x50)); /* DARK GREY */ - colortable_palette_set_color(machine().colortable,3,rgb_t(0xff,0xff,0xff)); /* WHITE */ + palette.set_indirect_color(0,rgb_t(0x00,0x00,0x00)); /* BLACK */ + palette.set_indirect_color(1,rgb_t(0x80,0x80,0x80)); /* LIGHT GREY */ + palette.set_indirect_color(2,rgb_t(0x50,0x50,0x50)); /* DARK GREY */ + palette.set_indirect_color(3,rgb_t(0xff,0xff,0xff)); /* WHITE */ /* playfield */ for (i = 0; i < 2; i++) { - colortable_entry_set_value(machine().colortable, i*4 + 0, 1); - colortable_entry_set_value(machine().colortable, i*4 + 1, 3 * i); - colortable_entry_set_value(machine().colortable, i*4 + 2, 3 * i); - colortable_entry_set_value(machine().colortable, i*4 + 3, 3 * i); + palette.set_pen_indirect(i*4 + 0, 1); + palette.set_pen_indirect(i*4 + 1, 3 * i); + palette.set_pen_indirect(i*4 + 2, 3 * i); + palette.set_pen_indirect(i*4 + 3, 3 * i); } /* motion */ for (i = 0; i < 4*4*4; i++) { - colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 0, 1); - colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 1, (i >> 2) & 3); - colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 2, (i >> 0) & 3); - colortable_entry_set_value(machine().colortable, 2*4 + i*4 + 3, (i >> 4) & 3); + palette.set_pen_indirect(2*4 + i*4 + 0, 1); + palette.set_pen_indirect(2*4 + i*4 + 1, (i >> 2) & 3); + palette.set_pen_indirect(2*4 + i*4 + 2, (i >> 0) & 3); + palette.set_pen_indirect(2*4 + i*4 + 3, (i >> 4) & 3); } } @@ -259,8 +257,8 @@ static MACHINE_CONFIG_START( bsktball, bsktball_state ) MCFG_SCREEN_UPDATE_DRIVER(bsktball_state, screen_update_bsktball) MCFG_GFXDECODE_ADD("gfxdecode", bsktball) - MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4) - + MCFG_PALETTE_ADD("palette", 2*4 + 4*4*4*4) + MCFG_PALETTE_INIT_OWNER(bsktball_state, bsktball) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index 374e676796d..6ddde335845 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -190,7 +190,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(btime_state::audio_nmi_gen) static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase") - AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("paletteram") + AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette") AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram") AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram") AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w) @@ -225,7 +225,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8, btime_state ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase") - AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("paletteram") + AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette") AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram") AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram") AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w) @@ -302,7 +302,7 @@ static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8, btime_state ) AM_RANGE(0x5200, 0x53ff) AM_RAM AM_RANGE(0x5400, 0x5400) AM_WRITE(bnj_scroll1_w) AM_RANGE(0x5800, 0x5800) AM_WRITE(bnj_scroll2_w) - AM_RANGE(0x5c00, 0x5c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("paletteram") + AM_RANGE(0x5c00, 0x5c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette") AM_RANGE(0xa000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -1318,9 +1318,11 @@ static MACHINE_CONFIG_START( btime, btime_state ) MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime) MCFG_GFXDECODE_ADD("gfxdecode", btime) - MCFG_PALETTE_LENGTH(16) + + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(btime_state,btime) + MCFG_PALETTE_FORMAT(BBGGGRRR) - MCFG_PALETTE_INIT_OVERRIDE(btime_state,btime) MCFG_VIDEO_START_OVERRIDE(btime_state,btime) /* sound hardware */ @@ -1355,7 +1357,6 @@ static MACHINE_CONFIG_DERIVED( cookrace, btime ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", cookrace) - MCFG_PALETTE_LENGTH(16) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_cookrace) @@ -1372,9 +1373,11 @@ static MACHINE_CONFIG_DERIVED( lnc, btime ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", lnc) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(8) + MCFG_PALETTE_INIT_OWNER(btime_state,lnc) + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_lnc) MACHINE_CONFIG_END @@ -1409,7 +1412,6 @@ static MACHINE_CONFIG_DERIVED( bnj, btime ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", bnj) - MCFG_PALETTE_LENGTH(16) MCFG_VIDEO_START_OVERRIDE(btime_state,bnj) MCFG_SCREEN_MODIFY("screen") @@ -1434,9 +1436,11 @@ static MACHINE_CONFIG_DERIVED( zoar, btime ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", zoar) - MCFG_PALETTE_LENGTH(64) - MCFG_DEVICE_MODIFY("screen") + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(64) + + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_zoar) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // 256 * 240, confirmed @@ -1462,7 +1466,9 @@ static MACHINE_CONFIG_DERIVED( disco, btime ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", disco) - MCFG_PALETTE_LENGTH(32) + + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(32) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_disco) diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c index 3e3f9752fcb..53092cf64ff 100644 --- a/src/mame/drivers/bublbobl.c +++ b/src/mame/drivers/bublbobl.c @@ -290,7 +290,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, bublbobl_state ) AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram") AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram") AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(bublbobl_sound_status_r, bublbobl_sound_command_w) AM_RANGE(0xfa03, 0xfa03) AM_WRITE(bublbobl_soundcpu_reset_w) AM_RANGE(0xfa80, 0xfa80) AM_WRITE(watchdog_reset_w) @@ -346,7 +346,7 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8, bublbobl_state ) AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram") AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram") AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(bublbobl_sound_status_r, bublbobl_sound_command_w) AM_RANGE(0xfa03, 0xfa03) AM_WRITE(bublbobl_soundcpu_reset_w) AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP // ??? @@ -370,7 +370,7 @@ static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8, bublbobl_state ) AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram") AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram") AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfa00, 0xfa00) AM_WRITE(watchdog_reset_w) AM_RANGE(0xfa03, 0xfa03) AM_READ_PORT("DSW0") AM_RANGE(0xfa04, 0xfa04) AM_READ_PORT("DSW1") @@ -771,7 +771,8 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state ) MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl) MCFG_GFXDECODE_ADD("gfxdecode", bublbobl) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -851,7 +852,8 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state ) MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl) MCFG_GFXDECODE_ADD("gfxdecode", bublbobl) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c index 81b4e8c33f2..79745a7e9f1 100644 --- a/src/mame/drivers/buggychl.c +++ b/src/mame/drivers/buggychl.c @@ -150,7 +150,7 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state ) // AM_RANGE(0xd60b, 0xd60b) // other inputs, not used? AM_RANGE(0xd610, 0xd610) AM_WRITE(sound_command_w) AM_RANGE(0xd618, 0xd618) AM_WRITENOP /* accelerator clear */ - AM_RANGE(0xd700, 0xd7ff) AM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xd700, 0xd7ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd840, 0xd85f) AM_WRITEONLY AM_SHARE("scrollv") AM_RANGE(0xdb00, 0xdbff) AM_WRITEONLY AM_SHARE("scrollh") AM_RANGE(0xdc04, 0xdc04) AM_WRITEONLY /* should be fg scroll */ @@ -409,8 +409,9 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state ) MCFG_SCREEN_UPDATE_DRIVER(buggychl_state, screen_update_buggychl) MCFG_GFXDECODE_ADD("gfxdecode", buggychl) - MCFG_PALETTE_LENGTH(128+128) - + MCFG_PALETTE_ADD("palette", 128+128) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) + MCFG_PALETTE_INIT_OWNER(buggychl_state, buggychl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c index a697749c98f..6cc16e6ba77 100644 --- a/src/mame/drivers/buster.c +++ b/src/mame/drivers/buster.c @@ -24,7 +24,7 @@ public: required_shared_ptr<UINT8> m_vram; DECLARE_READ8_MEMBER(test_r); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(buster); UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -49,7 +49,7 @@ UINT32 buster_state::screen_update_buster(screen_device &screen, bitmap_ind16 &b { int tile = (m_vram[count+1])|(m_vram[count]<<8); //int colour = tile>>12; - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*4); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*4); count+=2; } @@ -325,13 +325,13 @@ static MC6845_INTERFACE( mc6845_intf ) NULL /* update address callback */ }; -void buster_state::palette_init() +PALETTE_INIT_MEMBER(buster_state, buster) { int i; /* RGB format */ for(i=0;i<8;i++) - palette_set_color(machine(), i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2))); + palette.set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2))); } static MACHINE_CONFIG_START( buster, buster_state ) @@ -350,8 +350,8 @@ static MACHINE_CONFIG_START( buster, buster_state ) MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_3_579545MHz/4, mc6845_intf) //unknown clock / type MCFG_GFXDECODE_ADD("gfxdecode", buster) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(buster_state, buster) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c index 595e45b5fa3..2238e0b227a 100644 --- a/src/mame/drivers/bwing.c +++ b/src/mame/drivers/bwing.c @@ -380,7 +380,7 @@ static MACHINE_CONFIG_START( bwing, bwing_state ) MCFG_SCREEN_UPDATE_DRIVER(bwing_state, screen_update_bwing) MCFG_GFXDECODE_ADD("gfxdecode", bwing) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) // sound hardware diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c index a3e07eea37f..491010055be 100644 --- a/src/mame/drivers/cabal.c +++ b/src/mame/drivers/cabal.c @@ -126,7 +126,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cabal_state ) AM_RANGE(0xc0000, 0xc0001) AM_WRITE(track_reset_w) AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */ AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w) - AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xe0000, 0xe07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabal_sound_irq_trigger_word_w) // fix coin insertion AM_RANGE(0xe8000, 0xe800d) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, main_word_r, main_word_w) ADDRESS_MAP_END @@ -144,7 +144,7 @@ static ADDRESS_MAP_START( cabalbl_main_map, AS_PROGRAM, 16, cabal_state ) AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS") AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */ AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w) - AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xe0000, 0xe07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe8000, 0xe8003) AM_WRITE(cabalbl_sndcmd_w) AM_RANGE(0xe8004, 0xe8005) AM_READ(soundlatch2_word_r) AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabalbl_sound_irq_trigger_word_w) @@ -489,8 +489,8 @@ static MACHINE_CONFIG_START( cabal, cabal_state ) MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal) MCFG_GFXDECODE_ADD("gfxdecode", cabal) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SEIBU_SOUND_ADD("seibu_sound") @@ -546,8 +546,8 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state ) MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal) MCFG_GFXDECODE_ADD("gfxdecode", cabal) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c index 3caf3eebb51..1a27572709c 100644 --- a/src/mame/drivers/cabaret.c +++ b/src/mame/drivers/cabaret.c @@ -120,7 +120,7 @@ void cabaret_state::video_start() UINT32 cabaret_state::screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -188,8 +188,8 @@ static ADDRESS_MAP_START( cabaret_portmap, AS_IO, 8, cabaret_state ) AM_RANGE( 0x2000, 0x27ff ) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram") AM_RANGE( 0x2800, 0x2fff ) AM_RAM_WRITE(fg_color_w ) AM_SHARE("fg_color_ram") - AM_RANGE( 0x3000, 0x37ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE( 0x3800, 0x3fff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE( 0x3000, 0x37ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE( 0x3800, 0x3fff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE( 0x1000, 0x103f ) AM_RAM_WRITE(bg_scroll_w ) AM_SHARE("bg_scroll") @@ -352,8 +352,8 @@ static MACHINE_CONFIG_START( cabaret, cabaret_state ) MCFG_SCREEN_UPDATE_DRIVER(cabaret_state, screen_update_cabaret) MCFG_GFXDECODE_ADD("gfxdecode", cabaret) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c index 8c952b99349..dd839c347cf 100644 --- a/src/mame/drivers/calomega.c +++ b/src/mame/drivers/calomega.c @@ -2649,8 +2649,8 @@ static MACHINE_CONFIG_START( sys903, calomega_state ) MCFG_SCREEN_UPDATE_DRIVER(calomega_state, screen_update_calomega) MCFG_GFXDECODE_ADD("gfxdecode", calomega) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(calomega_state, calomega) MCFG_MC6845_ADD("crtc", MC6845, "screen", CPU_CLOCK, mc6845_intf) /* 6845 @ CPU clock */ diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c index 3e3c26a7b2f..6336f668577 100644 --- a/src/mame/drivers/calorie.c +++ b/src/mame/drivers/calorie.c @@ -195,12 +195,12 @@ UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind16 if (m_sprites[x + 1] & 0x10) { /* 32x32 sprites */ - m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap,cliprect, tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0); } else { /* 16x16 sprites */ - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, tileno, color, flipx, flipy, xpos, ypos - 15, 0); + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, tileno, color, flipx, flipy, xpos, ypos - 15, 0); } } return 0; @@ -255,7 +255,7 @@ static ADDRESS_MAP_START( calorie_map, AS_PROGRAM, 8, calorie_state ) AM_RANGE(0xc000, 0xcfff) AM_RAM AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(fg_ram_w) AM_SHARE("fg_ram") AM_RANGE(0xd800, 0xdbff) AM_RAM AM_SHARE("sprites") - AM_RANGE(0xdc00, 0xdcff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xdc00, 0xdcff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xde00, 0xde00) AM_WRITE(bg_bank_w) AM_RANGE(0xf000, 0xf000) AM_READ_PORT("P1") AM_RANGE(0xf001, 0xf001) AM_READ_PORT("P2") @@ -460,8 +460,8 @@ static MACHINE_CONFIG_START( calorie, calorie_state ) MCFG_SCREEN_UPDATE_DRIVER(calorie_state, screen_update_calorie) MCFG_GFXDECODE_ADD("gfxdecode", calorie) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c index 22043d27512..877b8fedd28 100644 --- a/src/mame/drivers/canyon.c +++ b/src/mame/drivers/canyon.c @@ -48,12 +48,12 @@ * *************************************/ -void canyon_state::palette_init() +PALETTE_INIT_MEMBER(canyon_state, canyon) { - palette_set_color(machine(), 0, rgb_t(0x80, 0x80, 0x80)); /* GREY */ - palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); /* BLACK */ - palette_set_color(machine(), 2, rgb_t(0x80, 0x80, 0x80)); /* GREY */ - palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff)); /* WHITE */ + palette.set_pen_color(0, rgb_t(0x80, 0x80, 0x80)); /* GREY */ + palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); /* BLACK */ + palette.set_pen_color(2, rgb_t(0x80, 0x80, 0x80)); /* GREY */ + palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); /* WHITE */ } @@ -251,8 +251,8 @@ static MACHINE_CONFIG_START( canyon, canyon_state ) MCFG_SCREEN_UPDATE_DRIVER(canyon_state, screen_update_canyon) MCFG_GFXDECODE_ADD("gfxdecode", canyon) - MCFG_PALETTE_LENGTH(4) - + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(canyon_state, canyon) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c index 09dd7bd1a44..ba89c4e2977 100644 --- a/src/mame/drivers/cardline.c +++ b/src/mame/drivers/cardline.c @@ -42,7 +42,7 @@ public: DECLARE_WRITE8_MEMBER(video_w); DECLARE_READ8_MEMBER(unk_r); DECLARE_WRITE8_MEMBER(lamps_w); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cardline); UINT32 screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -50,7 +50,7 @@ public: -#define DRAW_TILE(machine, offset, transparency) m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,\ +#define DRAW_TILE(machine, offset, transparency) m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,\ (m_videoram[index+offset] | (m_colorram[index+offset]<<8))&0x3fff,\ (m_colorram[index+offset]&0x80)>>7,\ 0,0,\ @@ -189,12 +189,12 @@ static GFXDECODE_START( cardline ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 2 ) GFXDECODE_END -void cardline_state::palette_init() +PALETTE_INIT_MEMBER(cardline_state, cardline) { const UINT8 *color_prom = memregion("proms")->base(); int i,r,g,b,data; int bit0,bit1,bit2; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { data=color_prom[i]; @@ -212,7 +212,7 @@ void cardline_state::palette_init() bit0 = (data >> 0) & 0x01; bit1 = (data >> 1) & 0x01; b = 0x55 * bit0 + 0xaa * bit1; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -233,7 +233,8 @@ static MACHINE_CONFIG_START( cardline, cardline_state ) MCFG_SCREEN_UPDATE_DRIVER(cardline_state, screen_update_cardline) MCFG_GFXDECODE_ADD("gfxdecode", cardline) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(cardline_state, cardline) MCFG_DEFAULT_LAYOUT(layout_cardline) diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c index 719b012341e..509cd17276c 100644 --- a/src/mame/drivers/carjmbre.c +++ b/src/mame/drivers/carjmbre.c @@ -216,8 +216,8 @@ static MACHINE_CONFIG_START( carjmbre, carjmbre_state ) MCFG_SCREEN_UPDATE_DRIVER(carjmbre_state, screen_update_carjmbre) MCFG_GFXDECODE_ADD("gfxdecode", carjmbre) - MCFG_PALETTE_LENGTH(64) - + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(carjmbre_state, carjmbre) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c index a9a5d3cbd6b..970c5fd71ce 100644 --- a/src/mame/drivers/carpolo.c +++ b/src/mame/drivers/carpolo.c @@ -293,7 +293,8 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state ) MCFG_SCREEN_VBLANK_DRIVER(carpolo_state, screen_eof_carpolo) MCFG_GFXDECODE_ADD("gfxdecode", carpolo) - MCFG_PALETTE_LENGTH(12*2+2*16+4*2) + MCFG_PALETTE_ADD("palette", 12*2+2*16+4*2) + MCFG_PALETTE_INIT_OWNER(carpolo_state,carpolo) MACHINE_CONFIG_END diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c index 65902a154b6..8be58182c76 100644 --- a/src/mame/drivers/carrera.c +++ b/src/mame/drivers/carrera.c @@ -63,7 +63,7 @@ public: required_shared_ptr<UINT8> m_tileram; DECLARE_READ8_MEMBER(unknown_r); - virtual void palette_init(); + DECLARE_PALETTE_INIT(carrera); UINT32 screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -263,7 +263,7 @@ UINT32 carrera_state::screen_update_carrera(screen_device &screen, bitmap_ind16 { int tile = m_tileram[count&0x7ff] | m_tileram[(count&0x7ff)+0x800]<<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); count++; } } @@ -286,7 +286,7 @@ static const ay8910_interface ay8910_config = DEVCB_NULL }; -void carrera_state::palette_init() +PALETTE_INIT_MEMBER(carrera_state, carrera) { const UINT8 *color_prom = memregion("proms")->base(); int br_bit0, br_bit1, bit0, bit1, r, g, b; @@ -307,7 +307,7 @@ void carrera_state::palette_init() bit1 = (color_prom[0] >> 5) & 0x01; r = 0x0e * br_bit0 + 0x1f * br_bit1 + 0x43 * bit0 + 0x8f * bit1; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -347,8 +347,9 @@ static MACHINE_CONFIG_START( carrera, carrera_state ) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / 16, mc6845_intf) MCFG_GFXDECODE_ADD("gfxdecode", carrera) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(carrera_state, carrera) + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c index d48375ce9df..c14c5d70ca4 100644 --- a/src/mame/drivers/caswin.c +++ b/src/mame/drivers/caswin.c @@ -93,7 +93,7 @@ public: DECLARE_WRITE8_MEMBER(vvillage_lamps_w); TILE_GET_INFO_MEMBER(get_sc0_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(caswin); UINT32 screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -301,7 +301,7 @@ static const ay8910_interface ay8910_config = DEVCB_NULL }; -void caswin_state::palette_init() +PALETTE_INIT_MEMBER(caswin_state, caswin) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, bit2 , r, g, b; @@ -322,7 +322,7 @@ void caswin_state::palette_init() bit2 = (color_prom[0] >> 7) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -346,8 +346,8 @@ static MACHINE_CONFIG_START( vvillage, caswin_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_GFXDECODE_ADD("gfxdecode", vvillage) - MCFG_PALETTE_LENGTH(0x40) - + MCFG_PALETTE_ADD("palette", 0x40) + MCFG_PALETTE_INIT_OWNER(caswin_state, caswin) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index 09e02494b0e..ea6c4e729a5 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -2006,8 +2006,8 @@ static MACHINE_CONFIG_START( dfeveron, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", dfeveron) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron) + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_2_layers) @@ -2048,8 +2048,8 @@ static MACHINE_CONFIG_START( ddonpach, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", ddonpach) - MCFG_PALETTE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2 - MCFG_PALETTE_INIT_OVERRIDE(cave_state,ddonpach) + MCFG_PALETTE_ADD("palette", 0x8000 + 0x40*16) // $400 extra entries for layers 1&2 + MCFG_PALETTE_INIT_OWNER(cave_state,ddonpach) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2094,8 +2094,8 @@ static MACHINE_CONFIG_START( donpachi, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", donpachi) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron) + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2140,8 +2140,8 @@ static MACHINE_CONFIG_START( esprade, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", esprade) - MCFG_PALETTE_LENGTH(0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_INIT_OWNER(cave_state,cave) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2180,8 +2180,8 @@ static MACHINE_CONFIG_START( gaia, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", esprade) - MCFG_PALETTE_LENGTH(0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_INIT_OWNER(cave_state,cave) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2221,8 +2221,8 @@ static MACHINE_CONFIG_START( guwange, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", esprade) - MCFG_PALETTE_LENGTH(0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_INIT_OWNER(cave_state,cave) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2265,8 +2265,8 @@ static MACHINE_CONFIG_START( hotdogst, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", hotdogst) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron) + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2318,8 +2318,8 @@ static MACHINE_CONFIG_START( korokoro, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", korokoro) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,korokoro) + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,korokoro) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer) @@ -2372,8 +2372,8 @@ static MACHINE_CONFIG_START( mazinger, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", mazinger) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,mazinger) + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,mazinger) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_2_layers) @@ -2431,8 +2431,8 @@ static MACHINE_CONFIG_START( metmqstr, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", donpachi) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,dfeveron) + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,dfeveron) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2488,8 +2488,8 @@ static MACHINE_CONFIG_START( pacslot, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", tjumpman) - MCFG_PALETTE_LENGTH(0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_INIT_OWNER(cave_state,cave) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer) @@ -2557,8 +2557,8 @@ static MACHINE_CONFIG_START( ppsatan, cave_state ) MCFG_TIMER_DRIVER_ADD("int_timer_right", cave_state, cave_vblank_start_right) MCFG_GFXDECODE_ADD("gfxdecode", ppsatan) - MCFG_PALETTE_LENGTH(0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,ppsatan) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_INIT_OWNER(cave_state,ppsatan) MCFG_DEFAULT_LAYOUT(layout_ppsatan) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_3_layers) @@ -2609,8 +2609,8 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", pwrinst2) - MCFG_PALETTE_LENGTH(0x8000+0x2800) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,pwrinst2) + MCFG_PALETTE_ADD("palette", 0x8000+0x2800) + MCFG_PALETTE_INIT_OWNER(cave_state,pwrinst2) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_4_layers) @@ -2673,8 +2673,8 @@ static MACHINE_CONFIG_START( sailormn, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", sailormn) - MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - MCFG_PALETTE_INIT_OVERRIDE(cave_state,sailormn) // 4 bit sprites, 6 bit tiles + MCFG_PALETTE_ADD("palette", 0x8000) /* $8000 palette entries for consistency with the other games */ + MCFG_PALETTE_INIT_OWNER(cave_state,sailormn) // 4 bit sprites, 6 bit tiles MCFG_VIDEO_START_OVERRIDE(cave_state,sailormn_3_layers) /* Layer 2 has 1 banked ROM */ @@ -2729,8 +2729,8 @@ static MACHINE_CONFIG_START( tjumpman, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", tjumpman) - MCFG_PALETTE_LENGTH(0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_INIT_OWNER(cave_state,cave) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer) @@ -2770,9 +2770,9 @@ static MACHINE_CONFIG_START( uopoko, cave_state ) MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave) MCFG_GFXDECODE_ADD("gfxdecode", uopoko) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) - MCFG_PALETTE_INIT_OVERRIDE(cave_state,cave) + MCFG_PALETTE_INIT_OWNER(cave_state,cave) MCFG_VIDEO_START_OVERRIDE(cave_state,cave_1_layer) /* sound hardware */ diff --git a/src/mame/drivers/cavepc.c b/src/mame/drivers/cavepc.c index 41052739968..9570bf4f9a0 100644 --- a/src/mame/drivers/cavepc.c +++ b/src/mame/drivers/cavepc.c @@ -118,7 +118,7 @@ static MACHINE_CONFIG_START( cavepc, cavepc_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199) MCFG_SCREEN_UPDATE_DRIVER(cavepc_state, screen_update_cavepc) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MACHINE_CONFIG_END diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c index e49c8dc8537..38bc972c399 100644 --- a/src/mame/drivers/cb2001.c +++ b/src/mame/drivers/cb2001.c @@ -72,7 +72,7 @@ public: TILE_GET_INFO_MEMBER(get_cb2001_reel2_tile_info); TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cb2001); UINT32 screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); required_device<cpu_device> m_maincpu; @@ -340,7 +340,7 @@ e3 -> c6 UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int count,x,y; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = 0x0000; @@ -361,7 +361,7 @@ UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &b tile += m_videobank*0x2000; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,colour,0,0,x*8,y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8); count++; } @@ -427,7 +427,7 @@ UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &b tile += 0x1000; } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,tile,colour,0,0,x*8,y*8,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8,0); count++; } } @@ -775,7 +775,7 @@ static GFXDECODE_START( cb2001 ) GFXDECODE_ENTRY( "gfx", 0, cb2001_layout32, 0x0, 32 ) GFXDECODE_END -void cb2001_state::palette_init() +PALETTE_INIT_MEMBER(cb2001_state, cb2001) { int i; for (i = 0; i < 0x200; i++) @@ -795,11 +795,11 @@ void cb2001_state::palette_init() if (length==0x400) // are the cb2001 proms dumped incorrectly? { - if (!(i&0x20)) palette_set_color(machine(), (i&0x1f) | ((i&~0x3f)>>1), rgb_t(r, g, b)); + if (!(i&0x20)) palette.set_pen_color((i&0x1f) | ((i&~0x3f)>>1), rgb_t(r, g, b)); } else { - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } } @@ -854,8 +854,8 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(cb2001_state, screen_update_cb2001) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(cb2001_state, cb2001) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index 2845eba7c33..2433a467a9b 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -40,7 +40,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cball); UINT32 screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(interrupt_callback); @@ -76,7 +76,7 @@ UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw sprite */ - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, m_video_ram[0x399] >> 4, 0, 0, 0, @@ -124,14 +124,14 @@ void cball_state::machine_reset() } -void cball_state::palette_init() +PALETTE_INIT_MEMBER(cball_state, cball) { - palette_set_color(machine(), 0, rgb_t(0x80, 0x80, 0x80)); - palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 2, rgb_t(0x80, 0x80, 0x80)); - palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff)); - palette_set_color(machine(), 4, rgb_t(0x80, 0x80, 0x80)); - palette_set_color(machine(), 5, rgb_t(0xc0, 0xc0, 0xc0)); + palette.set_pen_color(0, rgb_t(0x80, 0x80, 0x80)); + palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(2, rgb_t(0x80, 0x80, 0x80)); + palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); + palette.set_pen_color(4, rgb_t(0x80, 0x80, 0x80)); + palette.set_pen_color(5, rgb_t(0xc0, 0xc0, 0xc0)); } @@ -262,8 +262,8 @@ static MACHINE_CONFIG_START( cball, cball_state ) MCFG_SCREEN_UPDATE_DRIVER(cball_state, screen_update_cball) MCFG_GFXDECODE_ADD("gfxdecode", cball) - MCFG_PALETTE_LENGTH(6) - + MCFG_PALETTE_ADD("palette", 6) + MCFG_PALETTE_INIT_OWNER(cball_state, cball) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c index 290ced11fb1..c59549c0eb1 100644 --- a/src/mame/drivers/cbasebal.c +++ b/src/mame/drivers/cbasebal.c @@ -48,7 +48,7 @@ READ8_MEMBER(cbasebal_state::bankedram_r) return cbasebal_textram_r(space, offset); /* VRAM */ case 1: if (offset < 0x800) - return m_generic_paletteram_8[offset]; + return m_palette->basemem().read8(offset); else return 0; break; @@ -66,7 +66,7 @@ WRITE8_MEMBER(cbasebal_state::bankedram_w) break; case 1: if (offset < 0x800) - paletteram_xxxxBBBBRRRRGGGG_byte_le_w(space, offset, data); + m_palette->write(space, offset, data); break; default: cbasebal_scrollram_w(space, offset, data); @@ -271,8 +271,9 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state ) MCFG_SCREEN_UPDATE_DRIVER(cbasebal_state, screen_update_cbasebal) MCFG_GFXDECODE_ADD("gfxdecode", cbasebal) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c index 64d902023a6..dd48f8d1d44 100644 --- a/src/mame/drivers/cbuster.c +++ b/src/mame/drivers/cbuster.c @@ -317,17 +317,20 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state ) MCFG_SCREEN_UPDATE_DRIVER(cbuster_state, screen_update_twocrude) MCFG_GFXDECODE_ADD("gfxdecode", cbuster) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECO16IC_ADD("tilegen1", twocrude_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", twocrude_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index 0a3f9b5c875..682d8f87219 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -476,7 +476,7 @@ static MACHINE_CONFIG_START( ccastles, ccastles_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ccastles) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1) /* will be adjusted later */ diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c index b0b253d6e6f..4d9ba651c11 100644 --- a/src/mame/drivers/cchance.c +++ b/src/mame/drivers/cchance.c @@ -222,6 +222,7 @@ static MACHINE_CONFIG_START( cchance, cchance_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -232,8 +233,8 @@ static MACHINE_CONFIG_START( cchance, cchance_state ) MCFG_SCREEN_UPDATE_DRIVER(cchance_state, screen_update_tnzs) MCFG_SCREEN_VBLANK_DRIVER(cchance_state, screen_eof_tnzs) - MCFG_PALETTE_LENGTH(512) - MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(cchance_state,arknoid2) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c index 457acaa971f..b5f56ce60f1 100644 --- a/src/mame/drivers/cclimber.c +++ b/src/mame/drivers/cclimber.c @@ -996,9 +996,9 @@ static MACHINE_CONFIG_START( root, cclimber_state ) MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_cclimber) MCFG_GFXDECODE_ADD("gfxdecode", cclimber) - MCFG_PALETTE_LENGTH(16*4+8*4) + MCFG_PALETTE_ADD("palette", 16*4+8*4) - MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,cclimber) + MCFG_PALETTE_INIT_OWNER(cclimber_state,cclimber) MCFG_VIDEO_START_OVERRIDE(cclimber_state,cclimber) MACHINE_CONFIG_END @@ -1040,8 +1040,9 @@ static MACHINE_CONFIG_DERIVED( yamato, root ) MCFG_CPU_IO_MAP(yamato_audio_portmap) /* video hardware */ - MCFG_PALETTE_LENGTH(16*4+8*4+256) - MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16*4+8*4+256) + MCFG_PALETTE_INIT_OWNER(cclimber_state,yamato) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_yamato) @@ -1064,8 +1065,9 @@ static MACHINE_CONFIG_DERIVED( toprollr, cclimber ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", toprollr) - MCFG_PALETTE_LENGTH(32*5) - MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,toprollr) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32*5) + MCFG_PALETTE_INIT_OWNER(cclimber_state,toprollr) MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr) MCFG_SCREEN_MODIFY("screen") @@ -1094,9 +1096,9 @@ static MACHINE_CONFIG_START( swimmer, cclimber_state ) MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_swimmer) MCFG_GFXDECODE_ADD("gfxdecode", swimmer) - MCFG_PALETTE_LENGTH(32*8+4*8+1) + MCFG_PALETTE_ADD("palette", 32*8+4*8+1) - MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,swimmer) + MCFG_PALETTE_INIT_OWNER(cclimber_state,swimmer) MCFG_VIDEO_START_OVERRIDE(cclimber_state,swimmer) /* audio hardware */ diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c index 619140d5b79..6b1d8220d44 100644 --- a/src/mame/drivers/cdi.c +++ b/src/mame/drivers/cdi.c @@ -342,7 +342,7 @@ static MACHINE_CONFIG_START( cdi, cdi_state ) MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1) MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEFAULT_LAYOUT(layout_cdi) diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index fcbd9f15269..21ea0294238 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_START( centiped_base, centiped_state ) MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped) MCFG_GFXDECODE_ADD("gfxdecode", centiped) - MCFG_PALETTE_LENGTH(4+4*4*4*4) + MCFG_PALETTE_ADD("palette", 4+4*4*4*4) MCFG_VIDEO_START_OVERRIDE(centiped_state,centiped) @@ -1825,7 +1825,8 @@ static MACHINE_CONFIG_DERIVED( milliped, centiped ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", milliped) - MCFG_PALETTE_LENGTH(4*4+4*4*4*4*4) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4*4+4*4*4*4*4) MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped) MCFG_SCREEN_MODIFY("screen") @@ -1861,9 +1862,10 @@ static MACHINE_CONFIG_DERIVED( warlords, centiped ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", warlords) - MCFG_PALETTE_LENGTH(8*4+8*4) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 8*4+8*4) - MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords) + MCFG_PALETTE_INIT_OWNER(centiped_state,warlords) MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_warlords) @@ -1902,7 +1904,7 @@ static MACHINE_CONFIG_START( bullsdrt, centiped_state ) MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_bullsdrt) MCFG_GFXDECODE_ADD("gfxdecode", centiped) - MCFG_PALETTE_LENGTH(4+4*4*4*4) + MCFG_PALETTE_ADD("palette", 4+4*4*4*4) MCFG_VIDEO_START_OVERRIDE(centiped_state,bullsdrt) diff --git a/src/mame/drivers/cesclass.c b/src/mame/drivers/cesclass.c index 78a752b0cfd..8e6eb91e6fc 100644 --- a/src/mame/drivers/cesclass.c +++ b/src/mame/drivers/cesclass.c @@ -42,7 +42,7 @@ public: UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - + DECLARE_PALETTE_INIT(cesclassic); protected: // devices @@ -53,7 +53,6 @@ protected: // driver_device overrides virtual void video_start(); - virtual void palette_init(); }; @@ -65,7 +64,7 @@ UINT32 cesclassic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm { int x,y,xi; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); { for(y=0;y<64;y++) @@ -80,7 +79,7 @@ UINT32 cesclassic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm color |= (((m_vram[x+y*16])>>(15-xi)) & 1)<<1; if((x*16+xi)<256 && ((y)+0)<256) - bitmap.pix32(y, x*16+xi) = machine().pens[color]; + bitmap.pix32(y, x*16+xi) = m_palette->pen(color); } } } @@ -233,12 +232,12 @@ static INPUT_PORTS_START( cesclassic ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("l_lcd") INPUT_PORTS_END -void cesclassic_state::palette_init() +PALETTE_INIT_MEMBER(cesclassic_state, cesclassic) { int i; for (i = 0; i < 4; i++) - palette_set_color_rgb(machine(), i, pal2bit(i), 0, 0); + palette.set_pen_color(i, pal2bit(i), 0, 0); } static MACHINE_CONFIG_START( cesclassic, cesclassic_state ) @@ -259,7 +258,8 @@ static MACHINE_CONFIG_START( cesclassic, cesclassic_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 8*16*2-1, 0*8, 8*8-1) MCFG_DEFAULT_LAYOUT( layout_lcd ) - MCFG_PALETTE_LENGTH(4) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(cesclassic_state, cesclassic) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki", 24000000/16, OKIM6295_PIN7_LOW) diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c index a99d164db39..261789f98db 100644 --- a/src/mame/drivers/chaknpop.c +++ b/src/mame/drivers/chaknpop.c @@ -386,8 +386,8 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state ) MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update_chaknpop) MCFG_GFXDECODE_ADD("gfxdecode", chaknpop) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(chaknpop_state, chaknpop) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c index eaaf4304896..b4fa8e2dcb2 100644 --- a/src/mame/drivers/cham24.c +++ b/src/mame/drivers/cham24.c @@ -94,7 +94,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cham24); UINT32 screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void cham24_set_mirroring( int mirroring ); void ppu_irq(int *ppu_regs); @@ -281,9 +281,9 @@ void cham24_state::machine_reset() { } -void cham24_state::palette_init() +PALETTE_INIT_MEMBER(cham24_state, cham24) { - m_ppu->init_palette(machine(), 0); + m_ppu->init_palette(palette, 0); } void cham24_state::ppu_irq(int *ppu_regs) @@ -358,8 +358,8 @@ static MACHINE_CONFIG_START( cham24, cham24_state ) MCFG_SCREEN_UPDATE_DRIVER(cham24_state, screen_update_cham24) MCFG_GFXDECODE_ADD("gfxdecode", cham24) - MCFG_PALETTE_LENGTH(8*4*16) - + MCFG_PALETTE_ADD("palette", 8*4*16) + MCFG_PALETTE_INIT_OWNER(cham24_state, cham24) MCFG_PPU2C04_ADD("ppu", ppu_interface) MCFG_PPU2C0X_SET_NMI(cham24_state, ppu_irq) diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c index 4d0a3a18c2c..2681ebb1d0d 100644 --- a/src/mame/drivers/champbas.c +++ b/src/mame/drivers/champbas.c @@ -621,9 +621,9 @@ static MACHINE_CONFIG_START( talbot, champbas_state ) MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE_ADD("gfxdecode", talbot) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) - MCFG_PALETTE_INIT_OVERRIDE(champbas_state,champbas) + MCFG_PALETTE_INIT_OWNER(champbas_state,champbas) MCFG_VIDEO_START_OVERRIDE(champbas_state,champbas) /* sound hardware */ @@ -656,9 +656,9 @@ static MACHINE_CONFIG_START( champbas, champbas_state ) MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE_ADD("gfxdecode", champbas) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) - MCFG_PALETTE_INIT_OVERRIDE(champbas_state,champbas) + MCFG_PALETTE_INIT_OWNER(champbas_state,champbas) MCFG_VIDEO_START_OVERRIDE(champbas_state,champbas) /* sound hardware */ @@ -713,9 +713,9 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state ) MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE_ADD("gfxdecode", exctsccr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) - MCFG_PALETTE_INIT_OVERRIDE(champbas_state,exctsccr) + MCFG_PALETTE_INIT_OWNER(champbas_state,exctsccr) MCFG_VIDEO_START_OVERRIDE(champbas_state,exctsccr) /* sound hardware */ @@ -764,9 +764,9 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state ) MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas) MCFG_GFXDECODE_ADD("gfxdecode", exctsccr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) - MCFG_PALETTE_INIT_OVERRIDE(champbas_state,exctsccr) + MCFG_PALETTE_INIT_OWNER(champbas_state,exctsccr) MCFG_VIDEO_START_OVERRIDE(champbas_state,exctsccr) /* sound hardware */ diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index 7a237f7ece1..123115023af 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -487,6 +487,7 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -498,9 +499,9 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state ) MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_champbwl) MCFG_GFXDECODE_ADD("gfxdecode", champbwl) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) - MCFG_PALETTE_INIT_OVERRIDE(champbwl_state,arknoid2) + MCFG_PALETTE_INIT_OWNER(champbwl_state,arknoid2) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -548,6 +549,7 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) MCFG_MACHINE_START_OVERRIDE(champbwl_state,doraemon) @@ -562,9 +564,9 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state ) MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_doraemon) MCFG_GFXDECODE_ADD("gfxdecode", champbwl) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) - MCFG_PALETTE_INIT_OVERRIDE(champbwl_state,arknoid2) + MCFG_PALETTE_INIT_OWNER(champbwl_state,arknoid2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index cffb5b68f8e..d501ac0865d 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -95,25 +95,25 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(chanbara); UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(sound_irq); }; -void chanbara_state::palette_init() +PALETTE_INIT_MEMBER(chanbara_state, chanbara) { const UINT8 *color_prom = memregion("proms")->base(); int i, red, green, blue; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { red = color_prom[i]; - green = color_prom[machine().total_colors() + i]; - blue = color_prom[2 * machine().total_colors() + i]; + green = color_prom[palette.entries() + i]; + blue = color_prom[2 * palette.entries() + i]; - palette_set_color_rgb(machine(), i, pal4bit(red << 1), pal4bit(green << 1), pal4bit(blue << 1)); + palette.set_pen_color(i, pal4bit(red << 1), pal4bit(green << 1), pal4bit(blue << 1)); } } @@ -191,18 +191,18 @@ void chanbara_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre { if (!flipy) { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy-16, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code+1, color, flipx, flipy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy-16, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code+1, color, flipx, flipy, sx, sy, 0); } else { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code+1, color, flipx, flipy, sx, sy-16, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code+1, color, flipx, flipy, sx, sy-16, 0); } } else { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); } } } @@ -410,8 +410,9 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state ) MCFG_SCREEN_UPDATE_DRIVER(chanbara_state, screen_update_chanbara) MCFG_GFXDECODE_ADD("gfxdecode", chanbara) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(chanbara_state, chanbara) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c index 83d54363974..b4a652a6792 100644 --- a/src/mame/drivers/chance32.c +++ b/src/mame/drivers/chance32.c @@ -197,7 +197,7 @@ WRITE8_MEMBER(chance32_state::muxout_w) static ADDRESS_MAP_START( chance32_map, AS_PROGRAM, 8, chance32_state ) AM_RANGE(0x0000, 0xcfff) AM_ROM AM_RANGE(0xd800, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xe000, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(chance32_fgram_w) AM_SHARE("fgram") AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(chance32_bgram_w) AM_SHARE("bgram") ADDRESS_MAP_END @@ -479,8 +479,8 @@ static MACHINE_CONFIG_START( chance32, chance32_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", 12000000/16, mc6845_intf) /* 52.786 Hz (similar to Major Poker) */ MCFG_GFXDECODE_ADD("gfxdecode", chance32) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c index 8609b061d92..b7ad7db4d56 100644 --- a/src/mame/drivers/changela.c +++ b/src/mame/drivers/changela.c @@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( changela, changela_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(changela_state, screen_update_changela) - MCFG_PALETTE_LENGTH(0x40) + MCFG_PALETTE_ADD("palette", 0x40) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c index b1b4cd8fe41..08a43596148 100644 --- a/src/mame/drivers/cheekyms.c +++ b/src/mame/drivers/cheekyms.c @@ -136,8 +136,8 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state ) MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update_cheekyms) MCFG_GFXDECODE_ADD("gfxdecode", cheekyms) - MCFG_PALETTE_LENGTH(0xc0) - + MCFG_PALETTE_ADD("palette", 0xc0) + MCFG_PALETTE_INIT_OWNER(cheekyms_state, cheekyms) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c index 0dbcbc70a08..78691251500 100644 --- a/src/mame/drivers/chihiro.c +++ b/src/mame/drivers/chihiro.c @@ -3972,7 +3972,7 @@ static MACHINE_CONFIG_START( chihiro_base, chihiro_state ) MCFG_SCREEN_UPDATE_DRIVER(chihiro_state,screen_update_callback) MCFG_SCREEN_VBLANK_DRIVER(chihiro_state,vblank_callback) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( chihirogd, chihiro_base ) diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c index 91fcbe5ddeb..39340d0ed52 100644 --- a/src/mame/drivers/chinagat.c +++ b/src/mame/drivers/chinagat.c @@ -322,8 +322,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, chinagat_state ) AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1") AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(ddragon_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(ddragon_bgvideoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0x3000, 0x317f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x3400, 0x357f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x3000, 0x317f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x3400, 0x357f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette_ext") AM_RANGE(0x3800, 0x397f) AM_WRITE_BANK("bank3") AM_SHARE("spriteram") AM_RANGE(0x3e00, 0x3e04) AM_WRITE(chinagat_interrupt_w) AM_RANGE(0x3e06, 0x3e06) AM_WRITEONLY AM_SHARE("scrolly_lo") @@ -588,7 +588,8 @@ static MACHINE_CONFIG_START( chinagat, chinagat_state ) MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon) MCFG_GFXDECODE_ADD("gfxdecode", chinagat) - MCFG_PALETTE_LENGTH(384) + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(chinagat_state,chinagat) @@ -632,7 +633,8 @@ static MACHINE_CONFIG_START( saiyugoub1, chinagat_state ) MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon) MCFG_GFXDECODE_ADD("gfxdecode", chinagat) - MCFG_PALETTE_LENGTH(384) + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(chinagat_state,chinagat) @@ -673,7 +675,8 @@ static MACHINE_CONFIG_START( saiyugoub2, chinagat_state ) MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon) MCFG_GFXDECODE_ADD("gfxdecode", chinagat) - MCFG_PALETTE_LENGTH(384) + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(chinagat_state,chinagat) diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c index 95d30b2663a..8d56dda29fa 100644 --- a/src/mame/drivers/chinsan.c +++ b/src/mame/drivers/chinsan.c @@ -77,7 +77,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(chinsan); UINT32 screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(chin_adpcm_int); required_device<cpu_device> m_maincpu; @@ -92,13 +92,13 @@ public: * *************************************/ -void chinsan_state::palette_init() +PALETTE_INIT_MEMBER(chinsan_state, chinsan) { UINT8 *src = memregion( "color_proms" )->base(); int i; for (i = 0; i < 0x100; i++) - palette_set_color_rgb(machine(), i, pal4bit(src[i + 0x200]), pal4bit(src[i + 0x100]), pal4bit(src[i + 0x000])); + palette.set_pen_color(i, pal4bit(src[i + 0x200]), pal4bit(src[i + 0x100]), pal4bit(src[i + 0x000])); } void chinsan_state::video_start() @@ -116,7 +116,7 @@ UINT32 chinsan_state::screen_update_chinsan(screen_device &screen, bitmap_ind16 int tileno, colour; tileno = m_video[count] | (m_video[count + 0x800] << 8); colour = m_video[count + 0x1000] >> 3; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tileno,colour,0,0,x*8,y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tileno,colour,0,0,x*8,y*8); count++; } } @@ -613,8 +613,8 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state ) MCFG_SCREEN_UPDATE_DRIVER(chinsan_state, screen_update_chinsan) MCFG_GFXDECODE_ADD("gfxdecode", chinsan) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(chinsan_state, chinsan) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c index 610ecc05166..7f2762abd8d 100644 --- a/src/mame/drivers/chqflag.c +++ b/src/mame/drivers/chqflag.c @@ -46,7 +46,7 @@ WRITE8_MEMBER(chqflag_state::chqflag_bankswitch_w) if (data & 0x20) { space.install_read_bank(0x1800, 0x1fff, "bank5"); - space.install_write_handler(0x1800, 0x1fff, write8_delegate(FUNC(driver_device::paletteram_xBBBBBGGGGGRRRRR_byte_be_w),this)); + space.install_write_handler(0x1800, 0x1fff, write8_delegate(FUNC(palette_device::write),m_palette.target())); membank("bank5")->set_base(m_generic_paletteram_8); if (m_k051316_readroms) @@ -83,9 +83,9 @@ WRITE8_MEMBER(chqflag_state::chqflag_vreg_w) /* the headlight (which have the shadow bit set) become highlights */ /* Maybe one of the bits inverts the SHAD line while the other darkens the background. */ if (data & 0x08) - palette_set_shadow_factor(machine(), 1 / PALETTE_DEFAULT_SHADOW_FACTOR); + m_palette->set_shadow_factor(1 / PALETTE_DEFAULT_SHADOW_FACTOR); else - palette_set_shadow_factor(machine(), PALETTE_DEFAULT_SHADOW_FACTOR); + m_palette->set_shadow_factor(PALETTE_DEFAULT_SHADOW_FACTOR); if ((data & 0x80) != m_last_vreg) { @@ -96,7 +96,7 @@ WRITE8_MEMBER(chqflag_state::chqflag_vreg_w) /* only affect the background */ for (i = 512; i < 1024; i++) - palette_set_pen_contrast(machine(), i, brt); + m_palette->set_pen_contrast(i, brt); } //if ((data & 0xf8) && (data & 0xf8) != 0x88) @@ -338,8 +338,6 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - //TODO: Vsync 59.17hz Hsync 15.13 / 15.19khz MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -348,15 +346,20 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(chqflag_state, screen_update_chqflag) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K051960_ADD("k051960", chqflag_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K051316_ADD("k051316_1", chqflag_k051316_intf_1) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K051316_ADD("k051316_2", chqflag_k051316_intf_2) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K051733_ADD("k051733") /* sound hardware */ diff --git a/src/mame/drivers/chsuper.c b/src/mame/drivers/chsuper.c index 0d742af5441..b50aa6605b0 100644 --- a/src/mame/drivers/chsuper.c +++ b/src/mame/drivers/chsuper.c @@ -71,7 +71,7 @@ UINT32 chsuper_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap { int tile = ((m_vram[count+1]<<8) | m_vram[count]) & 0xffff; - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*4,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*4,y*8); count+=2; } } @@ -218,9 +218,9 @@ static MACHINE_CONFIG_START( chsuper, chsuper_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_GFXDECODE_ADD("gfxdecode", chsuper) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c index f188705545f..4b1834bab69 100644 --- a/src/mame/drivers/circus.c +++ b/src/mame/drivers/circus.c @@ -293,9 +293,8 @@ static MACHINE_CONFIG_START( circus, circus_state ) MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_circus) MCFG_GFXDECODE_ADD("gfxdecode", circus) - 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") @@ -326,9 +325,8 @@ static MACHINE_CONFIG_START( robotbwl, circus_state ) MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_robotbwl) MCFG_GFXDECODE_ADD("gfxdecode", robotbwl) - 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") @@ -366,9 +364,8 @@ static MACHINE_CONFIG_START( crash, circus_state ) MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_crash) MCFG_GFXDECODE_ADD("gfxdecode", circus) - 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") @@ -398,9 +395,8 @@ static MACHINE_CONFIG_START( ripcord, circus_state ) MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_ripcord) MCFG_GFXDECODE_ADD("gfxdecode", circus) - 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/mame/drivers/circusc.c b/src/mame/drivers/circusc.c index f1c0c0318a2..8a173e386b1 100644 --- a/src/mame/drivers/circusc.c +++ b/src/mame/drivers/circusc.c @@ -348,8 +348,8 @@ static MACHINE_CONFIG_START( circusc, circusc_state ) MCFG_SCREEN_UPDATE_DRIVER(circusc_state, screen_update_circusc) MCFG_GFXDECODE_ADD("gfxdecode", circusc) - MCFG_PALETTE_LENGTH(16*16+16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16) + MCFG_PALETTE_INIT_OWNER(circusc_state, circusc) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c index 3ebbacf9b43..384d6f5ce30 100644 --- a/src/mame/drivers/cischeat.c +++ b/src/mame/drivers/cischeat.c @@ -198,17 +198,17 @@ WRITE16_MEMBER(cischeat_state::bigrun_paletteram16_w) int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01)); // Scroll 0 - if ( (offset >= 0x0e00/2) && (offset <= 0x0fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x0e00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x0e00/2) && (offset <= 0x0fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x0e00/2, rgb_t(r,g,b) ); return;} // Scroll 1 - if ( (offset >= 0x1600/2) && (offset <= 0x17ff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x1600/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x1600/2) && (offset <= 0x17ff/2) ) { m_palette->set_pen_color(0x100 + offset - 0x1600/2, rgb_t(r,g,b) ); return;} // Road 0 - if ( (offset >= 0x1800/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x1800/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x1800/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x1800/2, rgb_t(r,g,b) ); return;} // Road 1 - if ( (offset >= 0x2000/2) && (offset <= 0x27ff/2) ) { palette_set_color(machine(), 0x600 + offset - 0x2000/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x2000/2) && (offset <= 0x27ff/2) ) { m_palette->set_pen_color(0x600 + offset - 0x2000/2, rgb_t(r,g,b) ); return;} // Sprites - if ( (offset >= 0x2800/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0xa00 + offset - 0x2800/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x2800/2) && (offset <= 0x2fff/2) ) { m_palette->set_pen_color(0xa00 + offset - 0x2800/2, rgb_t(r,g,b) ); return;} // Scroll 2 - if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { palette_set_color(machine(), 0xe00 + offset - 0x3600/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { m_palette->set_pen_color(0xe00 + offset - 0x3600/2, rgb_t(r,g,b) ); return;} } static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16, cischeat_state ) @@ -251,17 +251,17 @@ WRITE16_MEMBER(cischeat_state::cischeat_paletteram16_w) int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01)); // Scroll 0 - if ( (offset >= 0x1c00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1c00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x1c00/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x1c00/2, rgb_t(r,g,b) ); return;} // Scroll 1 - if ( (offset >= 0x2c00/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x2c00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x2c00/2) && (offset <= 0x2fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x2c00/2, rgb_t(r,g,b) ); return;} // Scroll 2 - if ( (offset >= 0x6c00/2) && (offset <= 0x6fff/2) ) { palette_set_color(machine(), 0x400 + offset - 0x6c00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x6c00/2) && (offset <= 0x6fff/2) ) { m_palette->set_pen_color(0x400 + offset - 0x6c00/2, rgb_t(r,g,b) ); return;} // Road 0 - if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x600 + offset - 0x3800/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { m_palette->set_pen_color(0x600 + offset - 0x3800/2, rgb_t(r,g,b) ); return;} // Road 1 - if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0xa00 + offset - 0x4800/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { m_palette->set_pen_color(0xa00 + offset - 0x4800/2, rgb_t(r,g,b) ); return;} // Sprites - if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(machine(), 0xe00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { m_palette->set_pen_color(0xe00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;} } static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16, cischeat_state ) @@ -303,17 +303,17 @@ WRITE16_MEMBER(cischeat_state::f1gpstar_paletteram16_w) int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01)); // Scroll 0 - if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;} // Scroll 1 - if ( (offset >= 0x2e00/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x2e00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x2e00/2) && (offset <= 0x2fff/2) ) { m_palette->set_pen_color(0x100 + offset - 0x2e00/2, rgb_t(r,g,b) ); return;} // Scroll 2 - if ( (offset >= 0x6e00/2) && (offset <= 0x6fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x6e00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x6e00/2) && (offset <= 0x6fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x6e00/2, rgb_t(r,g,b) ); return;} // Road 0 - if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x300 + offset - 0x3800/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { m_palette->set_pen_color(0x300 + offset - 0x3800/2, rgb_t(r,g,b) ); return;} // Road 1 - if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0x700 + offset - 0x4800/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { m_palette->set_pen_color(0x700 + offset - 0x4800/2, rgb_t(r,g,b) ); return;} // Sprites - if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(machine(), 0xb00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { m_palette->set_pen_color(0xb00 + offset - 0x5000/2, rgb_t(r,g,b) ); return;} } /* F1 GP Star tests: @@ -384,11 +384,11 @@ WRITE16_MEMBER(cischeat_state::scudhamm_paletteram16_w) int b = pal5bit(((newword >> 3 ) & 0x1E ) | ((newword >> 1) & 0x01)); // Scroll 0 - if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { m_palette->set_pen_color(0x000 + offset - 0x1e00/2, rgb_t(r,g,b) ); return;} // Scroll 2 - if ( (offset >= 0x4e00/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x4e00/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x4e00/2) && (offset <= 0x4fff/2) ) { m_palette->set_pen_color(0x100 + offset - 0x4e00/2, rgb_t(r,g,b) ); return;} // Sprites - if ( (offset >= 0x3000/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x3000/2, rgb_t(r,g,b) ); return;} + if ( (offset >= 0x3000/2) && (offset <= 0x3fff/2) ) { m_palette->set_pen_color(0x200 + offset - 0x3000/2, rgb_t(r,g,b) ); return;} } @@ -1569,7 +1569,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state ) MCFG_QUANTUM_TIME(attotime::from_hz(1200)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(30) //TODO: wrong! @@ -1579,7 +1579,8 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state ) MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_bigrun) MCFG_GFXDECODE_ADD("gfxdecode", bigrun) - MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */ + MCFG_PALETTE_ADD("palette", 16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */ + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(cischeat_state,bigrun) @@ -1621,7 +1622,8 @@ static MACHINE_CONFIG_DERIVED( cischeat, bigrun ) MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_cischeat) MCFG_GFXDECODE_MODIFY("gfxdecode", cischeat) - MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */ MCFG_VIDEO_START_OVERRIDE(cischeat_state,cischeat) MACHINE_CONFIG_END @@ -1647,7 +1649,8 @@ static MACHINE_CONFIG_DERIVED( f1gpstar, bigrun ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", f1gpstar) - MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */ MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar) MCFG_SCREEN_MODIFY("screen") @@ -1702,7 +1705,7 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state ) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cischeat_state, scudhamm_scanline, "screen", 0, 1) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(30) //TODO: wrong! @@ -1712,7 +1715,8 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state ) MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_scudhamm) MCFG_GFXDECODE_ADD("gfxdecode", scudhamm) - MCFG_PALETTE_LENGTH(16*16+16*16+128*16) + MCFG_PALETTE_ADD("palette", 16*16+16*16+128*16) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar) diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c index 2f29224133b..a7250f36083 100644 --- a/src/mame/drivers/citycon.c +++ b/src/mame/drivers/citycon.c @@ -37,7 +37,7 @@ static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8, citycon_state ) AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_byte_w) AM_RANGE(0x3004, 0x3005) AM_READNOP AM_WRITEONLY AM_SHARE("scroll") AM_RANGE(0x3007, 0x3007) AM_READ(citycon_irq_ack_r) - AM_RANGE(0x3800, 0x3cff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x3800, 0x3cff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x4000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -215,9 +215,8 @@ static MACHINE_CONFIG_START( citycon, citycon_state ) MCFG_SCREEN_UPDATE_DRIVER(citycon_state, screen_update_citycon) MCFG_GFXDECODE_ADD("gfxdecode", citycon) - MCFG_PALETTE_LENGTH(640+1024) /* 640 real palette + 1024 virtual palette */ - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) /* guess */ - + MCFG_PALETTE_ADD_INIT_BLACK("palette", 640+1024) /* 640 real palette + 1024 virtual palette */ + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c index 75bae88c2b5..b0443ddcf00 100644 --- a/src/mame/drivers/cloak.c +++ b/src/mame/drivers/cloak.c @@ -352,7 +352,7 @@ static MACHINE_CONFIG_START( cloak, cloak_state ) MCFG_SCREEN_UPDATE_DRIVER(cloak_state, screen_update_cloak) MCFG_GFXDECODE_ADD("gfxdecode", cloak) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) /* sound hardware */ diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index 297ca95eda0..74702fcb6e4 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -426,7 +426,7 @@ static MACHINE_CONFIG_START( cloud9, cloud9_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", cloud9) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE((float)PIXEL_CLOCK / (float)VTOTAL / (float)HTOTAL) diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c index ebc6cd92d57..513acac1929 100644 --- a/src/mame/drivers/clshroad.c +++ b/src/mame/drivers/clshroad.c @@ -247,9 +247,9 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state ) MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad) MCFG_GFXDECODE_ADD("gfxdecode", firebatl) - MCFG_PALETTE_LENGTH(512+64*4) + MCFG_PALETTE_ADD("palette", 512+64*4) - MCFG_PALETTE_INIT_OVERRIDE(clshroad_state,firebatl) + MCFG_PALETTE_INIT_OWNER(clshroad_state,firebatl) MCFG_VIDEO_START_OVERRIDE(clshroad_state,firebatl) /* sound hardware */ @@ -280,9 +280,9 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state ) MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad) MCFG_GFXDECODE_ADD("gfxdecode", clshroad) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_INIT_OVERRIDE(clshroad_state,clshroad) + MCFG_PALETTE_INIT_OWNER(clshroad_state,clshroad) MCFG_VIDEO_START_OVERRIDE(clshroad_state,clshroad) /* sound hardware */ diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c index d91bd6ca01a..b68325146ef 100644 --- a/src/mame/drivers/cmmb.c +++ b/src/mame/drivers/cmmb.c @@ -97,7 +97,7 @@ UINT32 cmmb_state::screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitma { int tile = videoram[count] & 0x3f; int colour = (videoram[count] & 0xc0)>>6; - gfx->opaque(bitmap,cliprect,tile,colour,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8); count++; } @@ -130,7 +130,7 @@ WRITE8_MEMBER(cmmb_state::cmmb_charram_w) WRITE8_MEMBER(cmmb_state::cmmb_paletteram_w) { /* RGB output is inverted */ - paletteram_RRRGGGBB_byte_w(space,offset,~data); + m_palette->write(space, offset, UINT8(~data), mem_mask); } READ8_MEMBER(cmmb_state::cmmb_input_r) @@ -191,7 +191,7 @@ static ADDRESS_MAP_START( cmmb_map, AS_PROGRAM, 8, cmmb_state ) AM_RANGE(0x0000, 0x01ff) AM_RAM /* zero page address */ // AM_RANGE(0x13c0, 0x13ff) AM_RAM //spriteram AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram") - AM_RANGE(0x2480, 0x249f) AM_RAM_WRITE(cmmb_paletteram_w) AM_SHARE("paletteram") + AM_RANGE(0x2480, 0x249f) AM_RAM_WRITE(cmmb_paletteram_w) AM_SHARE("palette") AM_RANGE(0x4000, 0x400f) AM_READWRITE(cmmb_input_r,cmmb_output_w) //i/o AM_RANGE(0x4900, 0x4900) AM_READ(kludge_r) AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") @@ -335,7 +335,9 @@ static MACHINE_CONFIG_START( cmmb, cmmb_state ) MCFG_SCREEN_UPDATE_DRIVER(cmmb_state, screen_update_cmmb) MCFG_GFXDECODE_ADD("gfxdecode", cmmb) - MCFG_PALETTE_LENGTH(512) + + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(RRRGGGBB) /* sound hardware */ // MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c index 5e5906e361c..6739b1b39a9 100644 --- a/src/mame/drivers/cninja.c +++ b/src/mame/drivers/cninja.c @@ -949,7 +949,7 @@ static MACHINE_CONFIG_START( cninja, cninja_state ) MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja) MCFG_GFXDECODE_ADD("gfxdecode", cninja) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -957,14 +957,17 @@ static MACHINE_CONFIG_START( cninja, cninja_state ) MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); decospr_device::set_pri_callback(*device, cninja_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR @@ -1010,7 +1013,7 @@ static MACHINE_CONFIG_START( stoneage, cninja_state ) MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja) MCFG_GFXDECODE_ADD("gfxdecode", cninja) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(cninja_state,stoneage) @@ -1020,14 +1023,17 @@ static MACHINE_CONFIG_START( stoneage, cninja_state ) MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); decospr_device::set_pri_callback(*device, cninja_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR @@ -1070,7 +1076,7 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state ) MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl) MCFG_GFXDECODE_ADD("gfxdecode", cninjabl) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1078,9 +1084,11 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state ) MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1116,7 +1124,7 @@ static MACHINE_CONFIG_START( edrandy, cninja_state ) MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_edrandy) MCFG_GFXDECODE_ADD("gfxdecode", cninja) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1124,14 +1132,17 @@ static MACHINE_CONFIG_START( edrandy, cninja_state ) MCFG_DECO16IC_ADD("tilegen1", edrandy_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", edrandy_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); decospr_device::set_pri_callback(*device, cninja_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") @@ -1176,7 +1187,7 @@ static MACHINE_CONFIG_START( robocop2, cninja_state ) MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_robocop2) MCFG_GFXDECODE_ADD("gfxdecode", robocop2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -1184,14 +1195,17 @@ static MACHINE_CONFIG_START( robocop2, cninja_state ) MCFG_DECO16IC_ADD("tilegen1", robocop2_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", robocop2_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); decospr_device::set_pri_callback(*device, cninja_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR @@ -1241,7 +1255,7 @@ static MACHINE_CONFIG_START( mutantf, cninja_state ) MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf) MCFG_GFXDECODE_ADD("gfxdecode", mutantf) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2") @@ -1250,17 +1264,21 @@ static MACHINE_CONFIG_START( mutantf, cninja_state ) MCFG_DECO16IC_ADD("tilegen1", mutantf_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", mutantf_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c index 9d2b474711c..13cf865f39c 100644 --- a/src/mame/drivers/cntsteer.c +++ b/src/mame/drivers/cntsteer.c @@ -109,7 +109,7 @@ PALETTE_INIT_MEMBER(cntsteer_state,zerotrgt) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2, r, g, b; @@ -129,7 +129,7 @@ PALETTE_INIT_MEMBER(cntsteer_state,zerotrgt) bit2 = (color_prom[i + 256] >> 2) & 0x01; b = (0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2); - palette_set_color(machine(), i, rgb_t(r,g,b)); + palette.set_pen_color(i, rgb_t(r,g,b)); } } @@ -217,17 +217,17 @@ void cntsteer_state::zerotrgt_draw_sprites( bitmap_ind16 &bitmap, const rectangl { if (fy) { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0); } else { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0); } } else - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0); } } @@ -274,24 +274,24 @@ void cntsteer_state::cntsteer_draw_sprites( bitmap_ind16 &bitmap, const rectangl { if (fy) { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy - 16, 0); } else { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy - 16, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code + 1, color, fx, fy, sx, sy, 0); } } else - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, fx, fy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, fx, fy, sx, sy, 0); } } UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_disable_roz) - bitmap.fill(machine().pens[8 * m_bg_color_bank], cliprect); + bitmap.fill(m_palette->pen(8 * m_bg_color_bank), cliprect); else { int p1, p2, p3, p4; @@ -340,7 +340,7 @@ UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind1 UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_disable_roz) - bitmap.fill(machine().pens[8 * m_bg_color_bank], cliprect); + bitmap.fill(m_palette->pen(8 * m_bg_color_bank), cliprect); else { int p1, p2, p3, p4; @@ -905,8 +905,8 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) MCFG_GFXDECODE_ADD("gfxdecode", cntsteer) - MCFG_PALETTE_LENGTH(256) -// MCFG_PALETTE_INIT_OVERRIDE(cntsteer_state,zerotrgt) + MCFG_PALETTE_ADD("palette", 256) +// MCFG_PALETTE_INIT_OWNER(cntsteer_state,zerotrgt) MCFG_VIDEO_START_OVERRIDE(cntsteer_state,cntsteer) @@ -952,9 +952,9 @@ static MACHINE_CONFIG_START( zerotrgt, cntsteer_state ) MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_zerotrgt) MCFG_GFXDECODE_ADD("gfxdecode", zerotrgt) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_INIT_OVERRIDE(cntsteer_state,zerotrgt) + MCFG_PALETTE_INIT_OWNER(cntsteer_state,zerotrgt) MCFG_VIDEO_START_OVERRIDE(cntsteer_state,zerotrgt) /* sound hardware */ diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c index 5d374cf7840..23e502c9827 100644 --- a/src/mame/drivers/cobra.c +++ b/src/mame/drivers/cobra.c @@ -1869,7 +1869,7 @@ WRITE32_MEMBER(cobra_state::sub_psac_palette_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; - palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); + m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } READ32_MEMBER(cobra_state::sub_psac2_r) @@ -3213,8 +3213,8 @@ static MACHINE_CONFIG_START( cobra, cobra_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(512, 400) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) - MCFG_PALETTE_LENGTH(65536) MCFG_SCREEN_UPDATE_DRIVER(cobra_state, screen_update_cobra) + MCFG_PALETTE_ADD("palette", 65536) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3233,6 +3233,7 @@ static MACHINE_CONFIG_START( cobra, cobra_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K001604_ADD("k001604", cobra_k001604_intf) // on the LAN board in Racing Jam DX MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MCFG_DEVICE_ADD("cobra_jvs_host", COBRA_JVS_HOST, 4000000) MCFG_JVS_DEVICE_ADD("cobra_jvs", COBRA_JVS, "cobra_jvs_host") diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c index 6bec5b4b2e5..9d8efb7a6d8 100644 --- a/src/mame/drivers/coinmstr.c +++ b/src/mame/drivers/coinmstr.c @@ -73,7 +73,7 @@ WRITE8_MEMBER(coinmstr_state::quizmstr_bg_w) } -static void coinmstr_set_pal(running_machine &machine, UINT32 paldat, int col) +static void coinmstr_set_pal(palette_device &palette, UINT32 paldat, int col) { col = col *4; @@ -97,10 +97,10 @@ static void coinmstr_set_pal(running_machine &machine, UINT32 paldat, int col) b3 = (paldat & 0x0001) >> 0 ; - palette_set_color_rgb(machine, col+0, (b0 * 255) << 5, (g0 * 255) << 5, (r0 * 255) << 5); - palette_set_color_rgb(machine, col+2, (b1 * 255) << 5, (g1 * 255) << 5, (r1 * 255) << 5); - palette_set_color_rgb(machine, col+1, (b2 * 255) << 5, (g2 * 255) << 5, (r2 * 255) << 5); - palette_set_color_rgb(machine, col+3, (b3 * 255) << 5, (g3 * 255) << 5, (r3 * 255) << 5); + palette.set_pen_color(col+0, (b0 * 255) << 5, (g0 * 255) << 5, (r0 * 255) << 5); + palette.set_pen_color(col+2, (b1 * 255) << 5, (g1 * 255) << 5, (r1 * 255) << 5); + palette.set_pen_color(col+1, (b2 * 255) << 5, (g2 * 255) << 5, (r2 * 255) << 5); + palette.set_pen_color(col+3, (b3 * 255) << 5, (g3 * 255) << 5, (r3 * 255) << 5); } } @@ -116,7 +116,7 @@ WRITE8_MEMBER(coinmstr_state::quizmstr_attr1_w) UINT32 paldata = (m_attr_ram1[offset] & 0x7f) | ((m_attr_ram2[offset] & 0x7f) << 7); m_bg_tilemap->mark_tile_dirty(offset - 0x0240); - coinmstr_set_pal(machine(), paldata, offset - 0x240); + coinmstr_set_pal(m_palette, paldata, offset - 0x240); } } @@ -131,7 +131,7 @@ WRITE8_MEMBER(coinmstr_state::quizmstr_attr2_w) UINT32 paldata = (m_attr_ram1[offset] & 0x7f) | ((m_attr_ram2[offset] & 0x7f) << 7); m_bg_tilemap->mark_tile_dirty(offset - 0x0240); - coinmstr_set_pal(machine(), paldata, offset - 0x240); + coinmstr_set_pal(m_palette, paldata, offset - 0x240); } } @@ -1169,7 +1169,7 @@ static MACHINE_CONFIG_START( coinmstr, coinmstr_state ) MCFG_SCREEN_UPDATE_DRIVER(coinmstr_state, screen_update_coinmstr) MCFG_GFXDECODE_ADD("gfxdecode", coinmstr) - MCFG_PALETTE_LENGTH(46*32*4) + MCFG_PALETTE_ADD("palette", 46*32*4) MCFG_MC6845_ADD("crtc", H46505, "screen", 14000000 / 16, h46505_intf) diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c index 3d19f0edd0f..f93a05c4fcf 100644 --- a/src/mame/drivers/coinmvga.c +++ b/src/mame/drivers/coinmvga.c @@ -237,7 +237,7 @@ public: DECLARE_DRIVER_INIT(colorama); DECLARE_DRIVER_INIT(cmrltv75); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(coinmvga); UINT32 screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); required_device<cpu_device> m_maincpu; @@ -269,7 +269,7 @@ UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind1 { int tile = m_vram[count]; //int colour = tile>>12; - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8); count++; } @@ -280,7 +280,7 @@ UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind1 } -void coinmvga_state::palette_init() +PALETTE_INIT_MEMBER(coinmvga_state, coinmvga) { } @@ -315,7 +315,7 @@ WRITE16_MEMBER(coinmvga_state::ramdac_bg_w) break; case 2: m_bgpal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4); - palette_set_color(machine(), m_bgpal.offs, rgb_t(m_bgpal.r, m_bgpal.g, m_bgpal.b)); + m_palette->set_pen_color(m_bgpal.offs, rgb_t(m_bgpal.r, m_bgpal.g, m_bgpal.b)); m_bgpal.offs_internal = 0; m_bgpal.offs++; break; @@ -345,7 +345,7 @@ WRITE16_MEMBER(coinmvga_state::ramdac_fg_w) break; case 2: m_fgpal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4); - palette_set_color(machine(), 0x100+m_fgpal.offs, rgb_t(m_fgpal.r, m_fgpal.g, m_fgpal.b)); + m_palette->set_pen_color(0x100+m_fgpal.offs, rgb_t(m_fgpal.r, m_fgpal.g, m_fgpal.b)); m_fgpal.offs_internal = 0; m_fgpal.offs++; break; @@ -688,8 +688,8 @@ static MACHINE_CONFIG_START( coinmvga, coinmvga_state ) MCFG_GFXDECODE_ADD("gfxdecode", coinmvga) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(coinmvga_state, coinmvga) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c index 1b9d16cebd4..01035e50ba1 100644 --- a/src/mame/drivers/combatsc.c +++ b/src/mame/drivers/combatsc.c @@ -731,13 +731,15 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state ) MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatsc) MCFG_GFXDECODE_ADD("gfxdecode", combatsc) - MCFG_PALETTE_LENGTH(8*16*16) + MCFG_PALETTE_ADD("palette", 8*16*16) - MCFG_PALETTE_INIT_OVERRIDE(combatsc_state,combatsc) + MCFG_PALETTE_INIT_OWNER(combatsc_state,combatsc) MCFG_VIDEO_START_OVERRIDE(combatsc_state,combatsc) MCFG_K007121_ADD("k007121_1") + MCFG_K007121_PALETTE("palette") MCFG_K007121_ADD("k007121_2") + MCFG_K007121_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -782,9 +784,9 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state ) MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatscb) MCFG_GFXDECODE_ADD("gfxdecode", combatscb) - MCFG_PALETTE_LENGTH(8*16*16) + MCFG_PALETTE_ADD("palette", 8*16*16) - MCFG_PALETTE_INIT_OVERRIDE(combatsc_state,combatscb) + MCFG_PALETTE_INIT_OWNER(combatsc_state,combatscb) MCFG_VIDEO_START_OVERRIDE(combatsc_state,combatscb) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/comebaby.c b/src/mame/drivers/comebaby.c index 050aba9ae92..94fb1e58386 100644 --- a/src/mame/drivers/comebaby.c +++ b/src/mame/drivers/comebaby.c @@ -114,7 +114,7 @@ static MACHINE_CONFIG_START( comebaby, comebaby_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c index 5b3e47b8c4c..c14e6f89154 100644 --- a/src/mame/drivers/commando.c +++ b/src/mame/drivers/commando.c @@ -260,9 +260,7 @@ static MACHINE_CONFIG_START( commando, commando_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", commando) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_BUFFERED_SPRITERAM8_ADD("spriteram") diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c index cc99a351deb..1f8068c33ad 100644 --- a/src/mame/drivers/compgolf.c +++ b/src/mame/drivers/compgolf.c @@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state ) MCFG_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(compgolf_state, screen_update_compgolf) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_GFXDECODE_ADD("gfxdecode", compgolf) diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c index 85abddd6f4c..3eab2db9c67 100644 --- a/src/mame/drivers/contra.c +++ b/src/mame/drivers/contra.c @@ -203,11 +203,13 @@ static MACHINE_CONFIG_START( contra, contra_state ) MCFG_SCREEN_UPDATE_DRIVER(contra_state, screen_update_contra) MCFG_GFXDECODE_ADD("gfxdecode", contra) - MCFG_PALETTE_LENGTH(2*8*16*16) - + MCFG_PALETTE_ADD("palette", 2*8*16*16) + MCFG_PALETTE_INIT_OWNER(contra_state, contra) MCFG_K007121_ADD("k007121_1") + MCFG_K007121_PALETTE("palette") MCFG_K007121_ADD("k007121_2") + MCFG_K007121_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index d9956224808..f29896b5feb 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -2133,7 +2133,7 @@ void *coolridr_state::draw_object_threaded(void *param, int threadid) /* This is a RLE-based sprite blitter (US Patent #6,141,122), very unusual from Sega... */ void coolridr_state::blit_current_sprite(address_space &space) { -// const pen_t *clut = &machine().pens[0]; +// const pen_t *clut = &m_palette->pen(0); // Serialized 32-bit words in order of appearance: // 0: 00000000 - unknown, 0x00000000 or 0x00000001, 0 seems to be regular sprite, 1 seems to change meaning of below, possible clip area? @@ -3615,8 +3615,7 @@ static MACHINE_CONFIG_START( coolridr, coolridr_state ) MCFG_SCREEN_VISIBLE_AREA(CLIPMINX_FULL,CLIPMAXX_FULL, CLIPMINY_FULL, CLIPMAXY_FULL) MCFG_SCREEN_UPDATE_DRIVER(coolridr_state, screen_update_coolridr2) - MCFG_PALETTE_LENGTH(0x10000) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_DEFAULT_LAYOUT(layout_dualhsxs) diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c index d32b643e1d7..c9ccad430b4 100644 --- a/src/mame/drivers/cop01.c +++ b/src/mame/drivers/cop01.c @@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( cop01, cop01_state ) MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01) MCFG_GFXDECODE_ADD("gfxdecode", cop01) - MCFG_PALETTE_LENGTH(16+8*16+16*16) - + MCFG_PALETTE_ADD("palette", 16+8*16+16*16) + MCFG_PALETTE_INIT_OWNER(cop01_state, cop01) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -501,8 +501,8 @@ static MACHINE_CONFIG_START( mightguy, cop01_state ) MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01) MCFG_GFXDECODE_ADD("gfxdecode", cop01) - MCFG_PALETTE_LENGTH(16+8*16+16*16) - + MCFG_PALETTE_ADD("palette", 16+8*16+16*16) + MCFG_PALETTE_INIT_OWNER(cop01_state, cop01) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cops.c b/src/mame/drivers/cops.c index a746a149c4d..ca9c665a69c 100644 --- a/src/mame/drivers/cops.c +++ b/src/mame/drivers/cops.c @@ -601,8 +601,8 @@ static MACHINE_CONFIG_START( cops, cops_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_PALETTE_INIT_OVERRIDE(cops_state,cops) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(cops_state,cops) /* via */ MCFG_DEVICE_ADD("via6522_1", VIA6522, 0) diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c index 31ca451b720..54447caacfe 100644 --- a/src/mame/drivers/copsnrob.c +++ b/src/mame/drivers/copsnrob.c @@ -62,19 +62,6 @@ Added Dip locations according to manual. /************************************* * - * Palette generation - * - *************************************/ - -void copsnrob_state::palette_init() -{ - palette_set_color(machine(),0,rgb_t(0x00,0x00,0x00)); /* black */ - palette_set_color(machine(),1,rgb_t(0xff,0xff,0xff)); /* white */ -} - - -/************************************* - * * I/O * *************************************/ @@ -270,7 +257,7 @@ static MACHINE_CONFIG_START( copsnrob, copsnrob_state ) MCFG_SCREEN_UPDATE_DRIVER(copsnrob_state, screen_update_copsnrob) MCFG_GFXDECODE_ADD("gfxdecode", copsnrob) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c index 54f6448f75e..ceaaf8f0dee 100644 --- a/src/mame/drivers/corona.c +++ b/src/mame/drivers/corona.c @@ -349,7 +349,7 @@ public: DECLARE_WRITE8_MEMBER(ay_port_a_out); DECLARE_WRITE8_MEMBER(ay_port_b_out); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(corona); UINT32 screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; @@ -361,7 +361,7 @@ public: * Video Hardware * *********************************************/ -void corona_state::palette_init() +PALETTE_INIT_MEMBER(corona_state, corona) { const UINT8 *color_prom = memregion("proms")->base(); int bit6, bit7, bit0, bit1, r, g, b; @@ -384,7 +384,7 @@ void corona_state::palette_init() bit1 = (color_prom[0] >> 5) & 0x01; r = 0x0e * bit6 + 0x1f * bit7 + 0x43 * bit0 + 0x8f * bit1; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -1380,8 +1380,8 @@ static MACHINE_CONFIG_START( winner81, corona_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(corona_state, corona) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK1) /* measured */ @@ -1411,8 +1411,8 @@ static MACHINE_CONFIG_START( winner82, corona_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(corona_state, corona) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8910, AY_CLK2) /* measured */ @@ -1442,8 +1442,8 @@ static MACHINE_CONFIG_START( re800, corona_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(corona_state, corona) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK2) @@ -1472,8 +1472,8 @@ static MACHINE_CONFIG_START( rcirulet, corona_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(corona_state, corona) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK2) @@ -1503,8 +1503,8 @@ static MACHINE_CONFIG_START( luckyrlt, corona_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_luckyrlt) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(corona_state, corona) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK1) diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c index 4bc6d2f9623..68988dbbd9f 100644 --- a/src/mame/drivers/cosmic.c +++ b/src/mame/drivers/cosmic.c @@ -1027,9 +1027,9 @@ static MACHINE_CONFIG_DERIVED( panic, cosmic ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", panic) - MCFG_PALETTE_LENGTH(16+8*4) + MCFG_PALETTE_ADD("palette", 16+8*4) - MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic) + MCFG_PALETTE_INIT_OWNER(cosmic_state,panic) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_panic) @@ -1052,9 +1052,9 @@ static MACHINE_CONFIG_DERIVED( cosmica, cosmic ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", cosmica) - MCFG_PALETTE_LENGTH(8+16*4) + MCFG_PALETTE_ADD("palette", 8+16*4) - MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica) + MCFG_PALETTE_INIT_OWNER(cosmic_state,cosmica) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmica) @@ -1097,9 +1097,9 @@ static MACHINE_CONFIG_START( cosmicg, cosmic_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmicg) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) - MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmicg) + MCFG_PALETTE_INIT_OWNER(cosmic_state,cosmicg) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1120,9 +1120,9 @@ static MACHINE_CONFIG_DERIVED( magspot, cosmic ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", panic) - MCFG_PALETTE_LENGTH(16+8*4) + MCFG_PALETTE_ADD("palette", 16+8*4) - MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot) + MCFG_PALETTE_INIT_OWNER(cosmic_state,magspot) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_magspot) @@ -1152,9 +1152,9 @@ static MACHINE_CONFIG_DERIVED( nomnlnd, cosmic ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", panic) - MCFG_PALETTE_LENGTH(16+8*4) + MCFG_PALETTE_ADD("palette", 16+8*4) - MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd) + MCFG_PALETTE_INIT_OWNER(cosmic_state,nomnlnd) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_nomnlnd) diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index c28a2ad66e2..4182b6efac2 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -3171,7 +3171,7 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index 7a117b2ae04..9d617eb8d7f 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -1270,7 +1270,7 @@ static MACHINE_CONFIG_START( cps2, cps_state ) 16MHz -> same as 8 but with a /2 divider; also a possibility */ MCFG_GFXDECODE_ADD("gfxdecode", cps2) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps2) diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index 104e2d0b50f..90bac75cdcf 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -889,7 +889,7 @@ void cps3_state::cps3_set_mame_colours(int colournum, UINT16 data, UINT32 fadeva m_mame_colours[colournum] = (r << (16+3)) | (g << (8+3)) | (b << (0+3)); - if (colournum<0x10000) palette_set_color(machine(),colournum,m_mame_colours[colournum]/* rgb_t(r<<3,g<<3,b<<3)*/);//m_mame_colours[colournum]); + if (colournum<0x10000) m_palette->set_pen_color(colournum,m_mame_colours[colournum]/* rgb_t(r<<3,g<<3,b<<3)*/);//m_mame_colours[colournum]); } @@ -904,12 +904,12 @@ void cps3_state::video_start() save_pointer(NAME(m_char_ram), 0x800000 /4); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), cps3_tiles8x8_layout, (UINT8 *)m_ss_ram, machine().total_colors() / 16, 0))); + m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), cps3_tiles8x8_layout, (UINT8 *)m_ss_ram, m_palette->entries() / 16, 0))); //decode_ssram(); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(1, auto_alloc(machine(), gfx_element(machine(), cps3_tiles16x16_layout, (UINT8 *)m_char_ram, machine().total_colors() / 64, 0))); + m_gfxdecode->set_gfx(1, auto_alloc(machine(), gfx_element(machine(), cps3_tiles16x16_layout, (UINT8 *)m_char_ram, m_palette->entries() / 64, 0))); m_gfxdecode->gfx(1)->set_granularity(64); //decode_charram(); @@ -1293,7 +1293,7 @@ UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitma // for (offset=0;offset<0x200;offset++) // { // int palreadbase = (m_ss_pal_base << 9); -// palette_set_color(machine(),offset,m_mame_colours[palreadbase+offset]); +// m_palette->set_pen_color(offset,m_mame_colours[palreadbase+offset]); // } // fg layer @@ -2585,7 +2585,7 @@ static MACHINE_CONFIG_START( cps3, cps3_state ) */ MCFG_NVRAM_ADD_0FILL("eeprom") - MCFG_PALETTE_LENGTH(0x10000) // actually 0x20000 ... + MCFG_PALETTE_ADD("palette", 0x10000) // actually 0x20000 ... MCFG_GFXDECODE_ADD("gfxdecode", empty) diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c index 8f02378f46c..fcf6bc7a25e 100644 --- a/src/mame/drivers/crbaloon.c +++ b/src/mame/drivers/crbaloon.c @@ -370,7 +370,8 @@ static MACHINE_CONFIG_START( crbaloon, crbaloon_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_GFXDECODE_ADD("gfxdecode", crbaloon) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(crbaloon_state, crbaloon) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index 8f5ef9c1c4a..59628b4a13c 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -272,8 +272,6 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -281,13 +279,17 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(crimfght_state, screen_update_crimfght) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", crimfght_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", crimfght_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -394,7 +396,7 @@ static KONAMI_SETLINES_CALLBACK( crimfght_banking ) if (lines & 0x20) { device->memory().space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank3"); - device->memory().space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(crimfght_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), state)); + device->memory().space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(palette_device::write), state->m_palette.target())); state->membank("bank3")->set_base(state->m_generic_paletteram_8); } else diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c index e4369c4aa1b..9653b60e866 100644 --- a/src/mame/drivers/crospang.c +++ b/src/mame/drivers/crospang.c @@ -58,7 +58,7 @@ static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16, crospang_state ) AM_RANGE(0x10000e, 0x10000f) AM_WRITENOP AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(crospang_fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE(crospang_bg_videoram_w) AM_SHARE("bg_videoram") - AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w) AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2") @@ -78,7 +78,7 @@ static ADDRESS_MAP_START( bestri_map, AS_PROGRAM, 16, crospang_state ) AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(crospang_fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE(crospang_bg_videoram_w) AM_SHARE("bg_videoram") - AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w) AM_RANGE(0x270004, 0x270005) AM_WRITENOP @@ -354,7 +354,8 @@ static MACHINE_CONFIG_START( crospang, crospang_state ) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(crospang_state, screen_update_crospang) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_GFXDECODE_ADD("gfxdecode", crospang) @@ -363,6 +364,7 @@ static MACHINE_CONFIG_START( crospang, crospang_state ) decospr_device::set_is_bootleg(*device, true); decospr_device::set_offsets(*device, 5,7); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c index 2319fe15270..d0a26b61399 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -192,7 +192,7 @@ static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state ) AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_RANGE(0xffc000, 0xffc001) AM_WRITE(crshrace_roz_bank_w) AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(crshrace_videoram2_w) AM_SHARE("videoram2") - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xGGGGGBBBBBRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1") AM_WRITE(crshrace_gfxctrl_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2") AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW0") @@ -470,12 +470,14 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state ) MCFG_SCREEN_VBLANK_DRIVER(crshrace_state, screen_eof_crshrace) MCFG_GFXDECODE_ADD("gfxdecode", crshrace) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xGGGGGBBBBBRRRRR) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( crshrace_state, crshrace_tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(2) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2") diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index d5fd2c100a1..d82b63e4829 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -924,8 +924,7 @@ static MACHINE_CONFIG_START( crystal, crystal_state ) MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette") MCFG_DS1302_ADD("rtc", XTAL_32_768kHz) diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index 8d83f96af91..70c5e70d3fd 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -125,7 +125,7 @@ public: DECLARE_DRIVER_INIT(cshooter); TILE_GET_INFO_MEMBER(get_cstx_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cshooter); DECLARE_MACHINE_RESET(cshooter); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_airraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -133,21 +133,18 @@ public: }; -void cshooter_state::palette_init() +PALETTE_INIT_MEMBER(cshooter_state, cshooter) { const UINT8 *color_prom = memregion("proms")->base(); int i; - // allocate the colortable - machine().colortable = colortable_alloc(machine(), 0x100); - // text uses colors 0xc0-0xdf for (i = 0; i < 0x40; i++) - colortable_entry_set_value(machine().colortable, i, (color_prom[i] & 0x1f) | 0xc0); + palette.set_pen_indirect(i, (color_prom[i] & 0x1f) | 0xc0); // rest is still unknown.. for (i = 0x40; i < 0x100; i++) - colortable_entry_set_value(machine().colortable, i, color_prom[i]); + palette.set_pen_indirect(i, color_prom[i]); } TILE_GET_INFO_MEMBER(cshooter_state::get_cstx_tile_info) @@ -185,10 +182,10 @@ void cshooter_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec tile_low += (tile_low > 0x9) ? 0x37 : 0x30; tile_high += (tile_high > 0x9) ? 0x37 : 0x30; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2],0); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2],0); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2]+8,0); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2]+8,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2],0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_high << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2],0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3]+8,m_spriteram[i+2]+8,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile_low << 1, m_spriteram[i+1], 0, 0, m_spriteram[i+3],m_spriteram[i+2]+8,0); } } @@ -202,7 +199,7 @@ UINT32 cshooter_state::screen_update_airraid(screen_device &screen, bitmap_ind16 int b = m_generic_paletteram2_8[i] & 0xf; rgb_t color = rgb_t(pal4bit(r), pal4bit(g), pal4bit(b)); - colortable_palette_set_color(machine().colortable, i, color); + m_palette->set_indirect_color(i, color); } bitmap.fill(0x80, cliprect); // temp @@ -453,7 +450,8 @@ static MACHINE_CONFIG_START( airraid, cshooter_state ) MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_airraid) MCFG_GFXDECODE_ADD("gfxdecode", cshooter) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(cshooter_state, cshooter) /* sound hardware */ SEIBU_AIRRAID_SOUND_SYSTEM_YM2151_INTERFACE(XTAL_14_31818MHz/4) diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c index 6b3614cdff4..fa92d66ad5b 100644 --- a/src/mame/drivers/csplayh5.c +++ b/src/mame/drivers/csplayh5.c @@ -680,8 +680,6 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state ) 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_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update) - MCFG_PALETTE_LENGTH(19780) - /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/cswat.c b/src/mame/drivers/cswat.c index e9e9438561f..81e7e74c368 100644 --- a/src/mame/drivers/cswat.c +++ b/src/mame/drivers/cswat.c @@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( cswat, cswat_state ) MCFG_SCREEN_UPDATE_DRIVER(cswat_state, screen_update_cswat) MCFG_GFXDECODE_ADD("gfxdecode", cswat) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ // TODO diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index b52764609bb..228d77e1f78 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -62,7 +62,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cubeqst); UINT32 screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank); TIMER_CALLBACK_MEMBER(delayed_bank_swap); @@ -95,7 +95,7 @@ void cubeqst_state::video_start() } /* TODO: Use resistor values */ -void cubeqst_state::palette_init() +PALETTE_INIT_MEMBER(cubeqst_state, cubeqst) { int i; diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c index 0e77be8025c..65726ae71d5 100644 --- a/src/mame/drivers/cultures.c +++ b/src/mame/drivers/cultures.c @@ -152,7 +152,7 @@ WRITE8_MEMBER(cultures_state::bg0_videoram_w) g = ((datax >> 3) & 0x1e) | ((datax & 0x2000) ? 0x1 : 0); b = ((datax << 1) & 0x1e) | ((datax & 0x1000) ? 0x1 : 0); - palette_set_color_rgb(machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b)); } else { @@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( cultures, cultures_state ) MCFG_SCREEN_UPDATE_DRIVER(cultures_state, screen_update_cultures) MCFG_GFXDECODE_ADD("gfxdecode", culture) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) /* sound hardware */ diff --git a/src/mame/drivers/cupidon.c b/src/mame/drivers/cupidon.c index 00dcfce3a39..fc6e0e3c25b 100644 --- a/src/mame/drivers/cupidon.c +++ b/src/mame/drivers/cupidon.c @@ -107,7 +107,7 @@ static MACHINE_CONFIG_START( cupidon, cupidon_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(cupidon_state, screen_update_cupidon) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") /* unknown sound, probably DAC driven using 68340 DMA */ diff --git a/src/mame/drivers/cv1k.c b/src/mame/drivers/cv1k.c index 56aef065128..c8d732de29c 100644 --- a/src/mame/drivers/cv1k.c +++ b/src/mame/drivers/cv1k.c @@ -453,10 +453,10 @@ static MACHINE_CONFIG_START( cv1k, cv1k_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(0x200, 0x200) MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1) + MCFG_SCREEN_UPDATE_DRIVER(cv1k_state, screen_update_cv1k) - MCFG_PALETTE_LENGTH(0x10000) - MCFG_SCREEN_UPDATE_DRIVER(cv1k_state, screen_update_cv1k) + MCFG_PALETTE_ADD("palette", 0x10000) MCFG_MACHINE_RESET_OVERRIDE(cv1k_state, cv1k) diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c index 2b87944b73a..a8d31b2fe64 100644 --- a/src/mame/drivers/cvs.c +++ b/src/mame/drivers/cvs.c @@ -1028,8 +1028,9 @@ static MACHINE_CONFIG_START( cvs, cvs_state ) MCFG_VIDEO_START_OVERRIDE(cvs_state,cvs) MCFG_GFXDECODE_ADD("gfxdecode", cvs) - MCFG_PALETTE_LENGTH((256+4)*8+8+1) - MCFG_PALETTE_INIT_OVERRIDE(cvs_state,cvs) + + MCFG_PALETTE_ADD("palette", (256+4)*8+8+1) + MCFG_PALETTE_INIT_OWNER(cvs_state,cvs) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_SIZE(32*8, 32*8) diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c index 2750047f544..56fdf254a71 100644 --- a/src/mame/drivers/cyberbal.c +++ b/src/mame/drivers/cyberbal.c @@ -411,7 +411,7 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", interleaved) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, cyberbal_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, cyberbal_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0) @@ -475,7 +475,7 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", cyberbal) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, cyberbal_state, get_playfield_tile_info, 16,8, SCAN_ROWS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, cyberbal_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c index a6bcd433a70..62237f7e4de 100644 --- a/src/mame/drivers/cybertnk.c +++ b/src/mame/drivers/cybertnk.c @@ -312,7 +312,7 @@ static void draw_road(screen_device &screen, bitmap_ind16 &bitmap, const rectang // seems to be priority related, cases seen are 0xc0 and 0x00 (once the palette bits are masked out) if ((param2&0x80) == pri) { - gfx->transpen(bitmap,cliprect,param1,col,0,0,-param3+screen_shift,i/4,0); + gfx->transpen(state->m_palette,bitmap,cliprect,param1,col,0,0,-param3+screen_shift,i/4,0); } @@ -324,7 +324,7 @@ static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rect { cybertnk_state *state = screen.machine().driver_data<cybertnk_state>(); const UINT32 *sprrom = (UINT32*)screen.memregion(":spr_gfx")->base(); - const pen_t *paldata = screen.machine().pens; + const pen_t *paldata = state->m_palette->pens(); int miny = cliprect.min_y; int maxy = cliprect.max_y; @@ -489,7 +489,7 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r - bitmap.fill(get_black_pen(screen.machine()), cliprect); + bitmap.fill(state->m_palette->black_pen(), cliprect); draw_road(screen,bitmap,cliprect,screen_shift, 0x00); @@ -609,7 +609,7 @@ static ADDRESS_MAP_START( master_mem, AS_PROGRAM, 16, cybertnk_state ) AM_RANGE(0x0c4000, 0x0c5fff) AM_RAM_WRITE(tilemap1_vram_w) AM_SHARE("tilemap1_vram") AM_RANGE(0x0c8000, 0x0c9fff) AM_RAM_WRITE(tilemap2_vram_w) AM_SHARE("tilemap2_vram") AM_RANGE(0x0e0000, 0x0e0fff) AM_RAM AM_SHARE("sharedram") - AM_RANGE(0x100000, 0x107fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* 2x palettes, one for each screen */ + AM_RANGE(0x100000, 0x107fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* 2x palettes, one for each screen */ AM_RANGE(0x110000, 0x110001) AM_WRITE8(cybertnk_sound_cmd_w,0xffff) AM_RANGE(0x110002, 0x110003) AM_READ_PORT("DSW1") AM_WRITENOP// watchdog? @@ -861,8 +861,8 @@ static MACHINE_CONFIG_START( cybertnk, cybertnk_state ) MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_right) MCFG_GFXDECODE_ADD("gfxdecode", cybertnk) - MCFG_PALETTE_LENGTH(0x4000) - + MCFG_PALETTE_ADD("palette", 0x4000) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c index 0dc2baf33a7..08d6c13ca53 100644 --- a/src/mame/drivers/cyclemb.c +++ b/src/mame/drivers/cyclemb.c @@ -122,7 +122,7 @@ public: DECLARE_DRIVER_INIT(cyclemb); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(cyclemb); UINT32 screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void cyclemb_draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -134,7 +134,7 @@ public: -void cyclemb_state::palette_init() +PALETTE_INIT_MEMBER(cyclemb_state, cyclemb) { const UINT8 *color_prom = memregion("proms")->base(); int i,r,g,b,val; @@ -157,7 +157,7 @@ void cyclemb_state::palette_init() bit2 = (val >> 2) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -188,15 +188,15 @@ void cyclemb_state::cyclemb_draw_tilemap(screen_device &screen, bitmap_ind16 &bi if(flip_screen()) { - gfx->opaque(bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx,256-(y*8)); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx,256-(y*8)); /* wrap-around */ - gfx->opaque(bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx+512,256-(y*8)); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,1,1,512-(x*8)-scrollx+512,256-(y*8)); } else { - gfx->opaque(bitmap,cliprect,tile,color,0,0,(x*8)-scrollx,(y*8)); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,(x*8)-scrollx,(y*8)); /* wrap-around */ - gfx->opaque(bitmap,cliprect,tile,color,0,0,(x*8)-scrollx+512,(y*8)); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,(x*8)-scrollx+512,(y*8)); } count++; @@ -257,7 +257,7 @@ void cyclemb_state::cyclemb_draw_sprites(screen_device &screen, bitmap_ind16 &bi fx = !fx; fy = !fy; } - m_gfxdecode->gfx(region)->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); + m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); } } @@ -295,9 +295,9 @@ void cyclemb_state::skydest_draw_tilemap(screen_device &screen, bitmap_ind16 &bi scrolly = m_vram[(x-32)*64+1]; - gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8+scrollx,((y*8)-scrolly)&0xff); - gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8+scrollx-480,((y*8)-scrolly)&0xff); - gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8+scrollx+480,((y*8)-scrolly)&0xff); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8+scrollx,((y*8)-scrolly)&0xff); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8+scrollx-480,((y*8)-scrolly)&0xff); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8+scrollx+480,((y*8)-scrolly)&0xff); } @@ -353,7 +353,7 @@ void cyclemb_state::skydest_draw_sprites(screen_device &screen, bitmap_ind16 &bi fx = !fx; fy = !fy; } - m_gfxdecode->gfx(region)->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); + m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); } } @@ -917,8 +917,8 @@ static MACHINE_CONFIG_START( cyclemb, cyclemb_state ) MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_cyclemb) MCFG_GFXDECODE_ADD("gfxdecode", cyclemb) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(cyclemb_state, cyclemb) /* sound hardware */ @@ -937,7 +937,7 @@ static MACHINE_CONFIG_DERIVED( skydest, cyclemb ) MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_skydest) -// MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest) +// MCFG_PALETTE_INIT_OWNER(cyclemb_state,skydest) MACHINE_CONFIG_END /*************************************************************************** diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c index f411f192d6b..f8744dfbee5 100644 --- a/src/mame/drivers/d9final.c +++ b/src/mame/drivers/d9final.c @@ -119,8 +119,8 @@ static ADDRESS_MAP_START( d9final_map, AS_PROGRAM, 8, d9final_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xc800, 0xcbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xcc00, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(sc0_lovram) AM_SHARE("lo_vram") AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(sc0_hivram) AM_SHARE("hi_vram") AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(sc0_cram) AM_SHARE("cram") @@ -302,9 +302,8 @@ static MACHINE_CONFIG_START( d9final, d9final_state ) MCFG_SCREEN_UPDATE_DRIVER(d9final_state, screen_update_d9final) MCFG_GFXDECODE_ADD("gfxdecode", d9final) - MCFG_PALETTE_LENGTH(0x400) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) - + MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x400) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c index 7acfb5985f9..76201b601b0 100644 --- a/src/mame/drivers/dacholer.c +++ b/src/mame/drivers/dacholer.c @@ -93,7 +93,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(dacholer); UINT32 screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(sound_irq); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); @@ -151,7 +151,7 @@ void dacholer_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre flipy = !flipy; } - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, 0, flipx,flipy, @@ -607,7 +607,7 @@ void dacholer_state::machine_reset() } /* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */ -void dacholer_state::palette_init() +PALETTE_INIT_MEMBER(dacholer_state, dacholer) { const UINT8 *color_prom = memregion("proms")->base(); static const int resistances_rg[3] = { 1000, 470, 220 }; @@ -621,7 +621,7 @@ void dacholer_state::palette_init() 2, resistances_b, weights_b, 0, 0, 0, 0, 0, 0, 0); - for (i = 0;i < machine().total_colors(); i++) + for (i = 0;i < palette.entries(); i++) { int bit0, bit1, bit2; int r, g, b; @@ -643,7 +643,7 @@ void dacholer_state::palette_init() bit1 = (color_prom[i] >> 7) & 0x01; b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -670,7 +670,8 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) MCFG_SCREEN_UPDATE_DRIVER(dacholer_state, screen_update_dacholer) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(dacholer_state, dacholer) MCFG_GFXDECODE_ADD("gfxdecode", dacholer) diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c index f4366bc1dd8..73b6ab92c60 100644 --- a/src/mame/drivers/dambustr.c +++ b/src/mame/drivers/dambustr.c @@ -268,9 +268,9 @@ static MACHINE_CONFIG_START( dambustr, dambustr_state ) MCFG_SCREEN_UPDATE_DRIVER(dambustr_state, screen_update_dambustr) MCFG_GFXDECODE_ADD("gfxdecode", dambustr) - MCFG_PALETTE_LENGTH(32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */ + MCFG_PALETTE_ADD("palette", 32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */ - MCFG_PALETTE_INIT_OVERRIDE(dambustr_state,dambustr) + MCFG_PALETTE_INIT_OWNER(dambustr_state,dambustr) MCFG_VIDEO_START_OVERRIDE(dambustr_state,dambustr) /* sound hardware */ diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c index 7524e706c61..f14efda4435 100644 --- a/src/mame/drivers/darius.c +++ b/src/mame/drivers/darius.c @@ -243,7 +243,7 @@ static ADDRESS_MAP_START( darius_map, AS_PROGRAM, 16, darius_state ) AM_RANGE(0xd20000, 0xd20003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w) AM_RANGE(0xd40000, 0xd40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w) AM_RANGE(0xd50000, 0xd50003) AM_DEVWRITE("pc080sn", pc080sn_device, ctrl_word_w) - AM_RANGE(0xd80000, 0xd80fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")/* palette */ + AM_RANGE(0xd80000, 0xd80fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* palette */ AM_RANGE(0xe00100, 0xe00fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xe01000, 0xe02fff) AM_RAM AM_SHARE("share2") AM_RANGE(0xe08000, 0xe0ffff) AM_RAM_WRITE(darius_fg_layer_w) AM_SHARE("fg_ram") @@ -254,7 +254,7 @@ static ADDRESS_MAP_START( darius_cpub_map, AS_PROGRAM, 16, darius_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x040000, 0x04ffff) AM_RAM /* local RAM */ AM_RANGE(0xc00000, 0xc0007f) AM_WRITE(darius_ioc_w) /* only writes $c00050 (?) */ - AM_RANGE(0xd80000, 0xd80fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) + AM_RANGE(0xd80000, 0xd80fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe00100, 0xe00fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xe01000, 0xe02fff) AM_RAM AM_SHARE("share2") AM_RANGE(0xe08000, 0xe0ffff) AM_RAM_WRITE(darius_fg_layer_w) AM_SHARE("fg_ram") @@ -874,7 +874,8 @@ static MACHINE_CONFIG_START( darius, darius_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", darius) - MCFG_PALETTE_LENGTH(4096*2) + MCFG_PALETTE_ADD("palette", 4096*2) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEFAULT_LAYOUT(layout_darius) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -901,6 +902,7 @@ static MACHINE_CONFIG_START( darius, darius_state ) MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c index 06704f29e87..3776bdff2ea 100644 --- a/src/mame/drivers/darkmist.c +++ b/src/mame/drivers/darkmist.c @@ -243,7 +243,8 @@ static MACHINE_CONFIG_START( darkmist, darkmist_state ) MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update_darkmist) MCFG_GFXDECODE_ADD("gfxdecode", darkmist) - MCFG_PALETTE_LENGTH(0x100*4) + MCFG_PALETTE_ADD("palette", 0x100*4) + MCFG_PALETTE_INIT_OWNER(darkmist_state, darkmist) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c index ce0c7753d6b..861cb7866a9 100644 --- a/src/mame/drivers/darkseal.c +++ b/src/mame/drivers/darkseal.c @@ -263,19 +263,22 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state ) MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update_darkseal) MCFG_GFXDECODE_ADD("gfxdecode", darkseal) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_DECO16IC_ADD("tilegen1", darkseal_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", darkseal_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c index 40bee4df1fa..188da91ff27 100644 --- a/src/mame/drivers/dassault.c +++ b/src/mame/drivers/dassault.c @@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( dassault, dassault_state ) MCFG_GFXDECODE_ADD("gfxdecode", dassault) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_BUFFERED_SPRITERAM16_ADD("spriteram2") @@ -514,17 +514,21 @@ static MACHINE_CONFIG_START( dassault, dassault_state ) MCFG_DECO16IC_ADD("tilegen1", dassault_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", dassault_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ diff --git a/src/mame/drivers/dblcrown.c b/src/mame/drivers/dblcrown.c index fe0a428f028..b653fb9c3ba 100644 --- a/src/mame/drivers/dblcrown.c +++ b/src/mame/drivers/dblcrown.c @@ -90,14 +90,13 @@ public: DECLARE_WRITE8_MEMBER(lamps_w); TIMER_DEVICE_CALLBACK_MEMBER(dblcrown_irq_scanline); - + DECLARE_PALETTE_INIT(dblcrown); protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void dblcrown_state::video_start() @@ -124,7 +123,7 @@ UINT32 dblcrown_state::screen_update( screen_device &screen, bitmap_ind16 &bitma UINT16 tile = ((m_vram[count])|(m_vram[count+1]<<8)) & 0xfff; UINT8 col = (m_vram[count+1] >> 4); - gfx_2->opaque(bitmap,cliprect,tile,col,0,0,x*16,y*16); + gfx_2->opaque(m_palette,bitmap,cliprect,tile,col,0,0,x*16,y*16); count+=2; } @@ -139,7 +138,7 @@ UINT32 dblcrown_state::screen_update( screen_device &screen, bitmap_ind16 &bitma UINT16 tile = ((m_vram[count])|(m_vram[count+1]<<8)) & 0xfff; UINT8 col = (m_vram[count+1] >> 4); // ok? - gfx->transpen(bitmap,cliprect,tile,col,0,0,x*8,y*8,0); + gfx->transpen(m_palette,bitmap,cliprect,tile,col,0,0,x*8,y*8,0); count+=2; } @@ -194,7 +193,7 @@ WRITE8_MEMBER( dblcrown_state::palette_w) b = ((datax)&0x0f00)>>8; /* TODO: remaining bits */ - palette_set_color_rgb(machine(), offset, pal4bit(r), pal4bit(g), pal4bit(b)); + m_palette->set_pen_color(offset, pal4bit(r), pal4bit(g), pal4bit(b)); } @@ -510,7 +509,7 @@ void dblcrown_state::machine_reset() } -void dblcrown_state::palette_init() +PALETTE_INIT_MEMBER(dblcrown_state, dblcrown) { } @@ -575,7 +574,8 @@ static MACHINE_CONFIG_START( dblcrown, dblcrown_state ) MCFG_GFXDECODE_ADD("gfxdecode", dblcrown) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(dblcrown_state, dblcrown) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c index 2ad71bca17d..47961e8dbf8 100644 --- a/src/mame/drivers/dblewing.c +++ b/src/mame/drivers/dblewing.c @@ -177,7 +177,7 @@ static ADDRESS_MAP_START( dblewing_map, AS_PROGRAM, 16, dblewing_state ) AM_RANGE(0x288000, 0x288001) AM_RAM AM_RANGE(0x28c000, 0x28c00f) AM_RAM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w) AM_RANGE(0x300000, 0x3007ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x320000, 0x3207ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x320000, 0x3207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xff0000, 0xff3fff) AM_MIRROR(0xc000) AM_RAM ADDRESS_MAP_END @@ -386,16 +386,19 @@ static MACHINE_CONFIG_START( dblewing, dblewing_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(dblewing_state, screen_update_dblewing) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_GFXDECODE_ADD("gfxdecode", dblewing) MCFG_DECO16IC_ADD("tilegen1", dblewing_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); decospr_device::set_pri_callback(*device, dblwings_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c index 4074b3cac92..96650cf5219 100644 --- a/src/mame/drivers/dbz.c +++ b/src/mame/drivers/dbz.c @@ -110,7 +110,7 @@ static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state ) AM_RANGE(0x498000, 0x49ffff) AM_DEVREAD("k056832", k056832_device, rom_word_8000_r) // code near a60 in dbz2, subroutine at 730 in dbz AM_RANGE(0x4a0000, 0x4a0fff) AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w) AM_RANGE(0x4a1000, 0x4a3fff) AM_RAM - AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette + AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette AM_RANGE(0x4c0000, 0x4c0001) AM_DEVREAD("k053246", k053247_device, k053246_word_r) AM_RANGE(0x4c0000, 0x4c0007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) AM_RANGE(0x4c4000, 0x4c4007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) @@ -363,8 +363,6 @@ static MACHINE_CONFIG_START( dbz, dbz_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(55) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -374,12 +372,16 @@ static MACHINE_CONFIG_START( dbz, dbz_state ) MCFG_GFXDECODE_ADD("gfxdecode", dbz) - MCFG_PALETTE_LENGTH(0x4000/2) + MCFG_PALETTE_ADD("palette", 0x4000/2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_K056832_ADD("k056832", dbz_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053246_ADD("k053246", dbz_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K053936_ADD("k053936_1", dbz_k053936_intf) MCFG_K053936_ADD("k053936_2", dbz_k053936_intf) diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c index 7e5c6f6d7b7..64a61c56779 100644 --- a/src/mame/drivers/dcheese.c +++ b/src/mame/drivers/dcheese.c @@ -417,8 +417,8 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(dcheese_state, screen_update_dcheese) - MCFG_PALETTE_LENGTH(65534) - + MCFG_PALETTE_ADD("palette", 65534) + MCFG_PALETTE_INIT_OWNER(dcheese_state, dcheese) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c index f3911fa5a19..e0399f9f80c 100644 --- a/src/mame/drivers/dcon.c +++ b/src/mame/drivers/dcon.c @@ -30,7 +30,7 @@ static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16, dcon_state ) AM_RANGE(0x8c800, 0x8cfff) AM_RAM_WRITE(dcon_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x8d000, 0x8d7ff) AM_RAM_WRITE(dcon_midground_w) AM_SHARE("mid_data") AM_RANGE(0x8d800, 0x8e7ff) AM_RAM_WRITE(dcon_text_w) AM_SHARE("textram") - AM_RANGE(0x8e800, 0x8f7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x8e800, 0x8f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x8f800, 0x8ffff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x9d000, 0x9d7ff) AM_WRITE(dcon_gfxbank_w) @@ -284,7 +284,8 @@ static MACHINE_CONFIG_START( dcon, dcon_state ) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) MCFG_GFXDECODE_ADD("gfxdecode", dcon) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(4000000,1320000) @@ -310,7 +311,8 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state ) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) MCFG_GFXDECODE_ADD("gfxdecode", dcon) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000) diff --git a/src/mame/drivers/dday.c b/src/mame/drivers/dday.c index c3c743dc86a..2ee0717cc74 100644 --- a/src/mame/drivers/dday.c +++ b/src/mame/drivers/dday.c @@ -268,9 +268,9 @@ static MACHINE_CONFIG_START( dday, dday_state ) MCFG_SCREEN_UPDATE_DRIVER(dday_state, screen_update_dday) MCFG_GFXDECODE_ADD("gfxdecode", dday) - MCFG_PALETTE_LENGTH(256) - - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_INIT_OWNER(dday_state, dday) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c index bc812dbfc8f..d3bfa2d2f3b 100644 --- a/src/mame/drivers/ddayjlc.c +++ b/src/mame/drivers/ddayjlc.c @@ -107,7 +107,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(ddayjlc); UINT32 screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(ddayjlc_interrupt); INTERRUPT_GEN_MEMBER(ddayjlc_snd_interrupt); @@ -408,7 +408,7 @@ UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 code = (code & 0x7f) | ((flags & 0x30) << 3); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, color, xflip, yflip, x, y, 0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, xflip, yflip, x, y, 0); } { @@ -419,9 +419,9 @@ UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 { c = m_videoram[y * 32 + x]; if (x > 1 && x < 30) - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0); else - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8); + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8); } } return 0; @@ -483,7 +483,7 @@ void ddayjlc_state::machine_reset() } } -void ddayjlc_state::palette_init() +PALETTE_INIT_MEMBER(ddayjlc_state, ddayjlc) { const UINT8 *color_prom = memregion("proms")->base(); int i,r,g,b,val; @@ -506,7 +506,7 @@ void ddayjlc_state::palette_init() bit2 = (val >> 2) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -533,8 +533,8 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state ) MCFG_SCREEN_UPDATE_DRIVER(ddayjlc_state, screen_update_ddayjlc) MCFG_GFXDECODE_ADD("gfxdecode", ddayjlc) - MCFG_PALETTE_LENGTH(0x200) - + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(ddayjlc_state, ddayjlc) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c index cfd0f9689d5..942724077a2 100644 --- a/src/mame/drivers/ddealer.c +++ b/src/mame/drivers/ddealer.c @@ -224,7 +224,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI UINT16 tile = (src[count] & 0x0fff); UINT16 colr = (src[count] & 0xf000) >> 12; count++; - gfx->transpen(bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15); + gfx->transpen(m_palette,bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15); } } count = 0; @@ -237,7 +237,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI UINT16 tile = (src[count] & 0x0fff); UINT16 colr = (src[count] & 0xf000) >> 12; count++; - gfx->transpen(bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15); + gfx->transpen(m_palette,bitmap,cliprect, tile, colr, 0, flipy, (x * 16) - sx, (y * 16) - sy, 15); } } } @@ -256,7 +256,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI UINT16 tile = (src[count] & 0x0fff); UINT16 colr = (src[count] & 0xf000) >> 12; count++; - gfx->transpen(bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15); + gfx->transpen(m_palette,bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15); } } count = 0; @@ -269,7 +269,7 @@ void ddealer_state::ddealer_draw_video_layer( UINT16* vreg_base, UINT16* top, UI UINT16 tile = (src[count] & 0x0fff); UINT16 colr = (src[count] & 0xf000) >> 12; count++; - gfx->transpen(bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15); + gfx->transpen(m_palette,bitmap,cliprect, tile, colr, flipy, flipy, (x * 16) + sx, (y * 16) + sy, 15); } } } @@ -479,7 +479,7 @@ static ADDRESS_MAP_START( ddealer, AS_PROGRAM, 16, ddealer_state ) AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("UNK") AM_RANGE(0x084000, 0x084003) AM_DEVWRITE8("ymsnd", ym2203_device, write, 0x00ff) // ym ? - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") // palette ram + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram AM_RANGE(0x08c000, 0x08cfff) AM_RAM_WRITE(ddealer_vregs_w) AM_SHARE("vregs") // palette ram /* this might actually be 1 tilemap with some funky rowscroll / columnscroll enabled, I'm not sure */ @@ -638,8 +638,8 @@ static MACHINE_CONFIG_START( ddealer, ddealer_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(ddealer_state, screen_update_ddealer) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", ddealer_state, ddealer_mcu_sim, attotime::from_hz(10000)) diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 073454f2035..0843ed9c97a 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -1654,7 +1654,7 @@ WRITE8_MEMBER(ddenlovr_state::rongrong_palette_w) /* what were they smoking??? */ b = ((d1 & 0xe0) >> 5) | (d2 & 0xc0) >> 3; - palette_set_color_rgb(machine(), indx, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(indx, pal5bit(r), pal5bit(g), pal5bit(b)); } WRITE16_MEMBER(ddenlovr_state::ddenlovr_palette_w) @@ -2711,7 +2711,7 @@ WRITE8_MEMBER(ddenlovr_state::hanakanz_palette_w) int g = m_ddenlovr_blit_latch & 0x1f; int r = data & 0x1f; int b = ((data & 0xe0) >> 5) | ((m_ddenlovr_blit_latch & 0x60) >> 2); - palette_set_color_rgb(machine(), (m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color((m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -2919,7 +2919,7 @@ WRITE8_MEMBER(ddenlovr_state::mjchuuka_palette_w) int r = (rgb >> 0) & 0x1f; int g = (rgb >> 8) & 0x1f; int b = ((rgb >> 5) & 0x07) | ((rgb & 0x6000) >> 10); - palette_set_color_rgb(machine(), (m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color((m_palette_index++) & 0x1ff, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -4226,7 +4226,7 @@ static MACHINE_CONFIG_START( htengoku, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+8, 256-1-8) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_htengoku) - MCFG_PALETTE_LENGTH(16*256) + MCFG_PALETTE_ADD("palette", 16*256) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,htengoku) @@ -9443,7 +9443,7 @@ static MACHINE_CONFIG_START( ddenlovr, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,ddenlovr) @@ -9574,7 +9574,7 @@ static MACHINE_CONFIG_START( quizchq, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,ddenlovr) @@ -9661,7 +9661,7 @@ static MACHINE_CONFIG_START( mmpanic, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mmpanic) // extra layers @@ -9741,7 +9741,7 @@ static MACHINE_CONFIG_START( hanakanz, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around @@ -9785,7 +9785,7 @@ static MACHINE_CONFIG_START( kotbinyo, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1+4, 256-15-1+4) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around @@ -10186,7 +10186,7 @@ static MACHINE_CONFIG_START( jongtei, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around @@ -10227,7 +10227,7 @@ static MACHINE_CONFIG_START( sryudens, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mjflove) // blitter commands in the roms are shuffled around @@ -10272,7 +10272,7 @@ static MACHINE_CONFIG_START( janshinp, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,ddenlovr) @@ -10346,7 +10346,7 @@ static MACHINE_CONFIG_START( seljan2, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mjflove) // blitter commands in the roms are shuffled around @@ -10393,7 +10393,7 @@ static MACHINE_CONFIG_START( daimyojn, ddenlovr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1) MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,hanakanz) // blitter commands in the roms are shuffled around diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index 58ffdb527f2..487e4d318a5 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -495,8 +495,8 @@ READ8_MEMBER(ddragon_state::dd_adpcm_status_r) static ADDRESS_MAP_START( ddragon_map, AS_PROGRAM, 8, ddragon_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("rambase") - AM_RANGE(0x1000, 0x11ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1200, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x11ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1200, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(ddragon_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x2000, 0x21ff) AM_READWRITE(ddragon_comram_r, ddragon_comram_w) AM_SHARE("comram") AM_MIRROR(0x0600) AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram") @@ -530,8 +530,8 @@ static ADDRESS_MAP_START( dd2_map, AS_PROGRAM, 8, ddragon_state ) AM_RANGE(0x3809, 0x3809) AM_WRITEONLY AM_SHARE("scrollx_lo") AM_RANGE(0x380a, 0x380a) AM_WRITEONLY AM_SHARE("scrolly_lo") AM_RANGE(0x380b, 0x380f) AM_READWRITE(ddragon_interrupt_r, ddragon_interrupt_w) - AM_RANGE(0x3c00, 0x3dff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x3e00, 0x3fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x3c00, 0x3dff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x3e00, 0x3fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -983,7 +983,8 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ddragon) - MCFG_PALETTE_LENGTH(384) + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) @@ -1046,7 +1047,8 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ddragon) - MCFG_PALETTE_LENGTH(384) + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) @@ -1092,7 +1094,8 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ddragon) - MCFG_PALETTE_LENGTH(384) + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index b4c75d7d2bf..ff586357dc1 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -271,7 +271,7 @@ READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r) WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) { offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2; - paletteram_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask); + m_palette->write(space, offset, data, mem_mask); } /*- Priority Control -*/ @@ -316,7 +316,7 @@ static ADDRESS_MAP_START( ddragon3_map, AS_PROGRAM, 16, ddragon3_state ) AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW") AM_RANGE(0x100006, 0x100007) AM_READ_PORT("P3") AM_RANGE(0x100000, 0x10000f) AM_WRITE(ddragon3_io_w) - AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette RAM */ + AM_RANGE(0x140000, 0x1405ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */ AM_RANGE(0x180000, 0x180fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */ ADDRESS_MAP_END @@ -327,7 +327,7 @@ static ADDRESS_MAP_START( dd3b_map, AS_PROGRAM, 16, ddragon3_state ) AM_RANGE(0x081000, 0x081fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */ AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll_w) - AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette RAM */ + AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */ AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io_w) AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0") AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1") @@ -343,7 +343,7 @@ static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16, ddragon3_state ) AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */ AM_RANGE(0x082800, 0x082fff) AM_RAM AM_RANGE(0x0c0000, 0x0c000f) AM_READWRITE(ddragon3_scroll_r, ddragon3_scroll_w) - AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") /* Palette RAM */ + AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */ AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io_w) AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0") AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1") @@ -841,7 +841,8 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", ddragon3) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") @@ -872,6 +873,9 @@ static MACHINE_CONFIG_DERIVED( ctribe, ddragon3 ) MCFG_CPU_MODIFY("audiocpu") MCFG_CPU_PROGRAM_MAP(ctribe_sound_map) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ctribe) @@ -906,7 +910,8 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", wwfwfest) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c index 1dfe29d47b6..28291ef7ef9 100644 --- a/src/mame/drivers/ddribble.c +++ b/src/mame/drivers/ddribble.c @@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state ) MCFG_SCREEN_UPDATE_DRIVER(ddribble_state, screen_update_ddribble) MCFG_GFXDECODE_ADD("gfxdecode", ddribble) - MCFG_PALETTE_LENGTH(64 + 256) - + MCFG_PALETTE_ADD("palette", 64 + 256) + MCFG_PALETTE_INIT_OWNER(ddribble_state, ddribble) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c index 173beb29bd9..cdce25f2427 100644 --- a/src/mame/drivers/ddz.c +++ b/src/mame/drivers/ddz.c @@ -82,7 +82,7 @@ static MACHINE_CONFIG_START( ddz, ddz_state ) MCFG_SCREEN_UPDATE_DRIVER(ddz_state, screen_update_ddz) MCFG_SCREEN_VBLANK_DRIVER(ddz_state, screen_eof_ddz) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c index 9c69e7c40bc..8190f7e861a 100644 --- a/src/mame/drivers/deadang.c +++ b/src/mame/drivers/deadang.c @@ -67,7 +67,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, deadang_state ) AM_RANGE(0x08800, 0x0bfff) AM_WRITEONLY AM_RANGE(0x0a000, 0x0a001) AM_READ_PORT("P1_P2") AM_RANGE(0x0a002, 0x0a003) AM_READ_PORT("DSW") - AM_RANGE(0x0c000, 0x0cfff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c000, 0x0cfff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0d000, 0x0dfff) AM_WRITEONLY AM_RANGE(0x0e000, 0x0e0ff) AM_WRITEONLY AM_SHARE("scroll_ram") AM_RANGE(0x0e100, 0x0ffff) AM_WRITEONLY @@ -254,7 +254,8 @@ static MACHINE_CONFIG_START( deadang, deadang_state ) MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update_deadang) MCFG_GFXDECODE_ADD("gfxdecode", deadang) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c index 66525925def..f22e519b53a 100644 --- a/src/mame/drivers/dec0.c +++ b/src/mame/drivers/dec0.c @@ -500,7 +500,7 @@ static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16, dec0_state ) AM_RANGE(0x304000, 0x307fff) AM_RAM AM_SHARE("ram") /* Sly spy main ram */ AM_RANGE(0x308000, 0x3087ff) AM_RAM AM_SHARE("spriteram") /* Sprites */ - AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x310000, 0x3107ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w) AM_RANGE(0x314008, 0x31400f) AM_READ(slyspy_controls_r) AM_RANGE(0x31c000, 0x31c00f) AM_READ(slyspy_protection_r) AM_WRITENOP @@ -511,7 +511,7 @@ static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("ram") AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x160001) AM_WRITE(dec0_priority_w) AM_RANGE(0x180000, 0x18000f) AM_READ(midres_controls_r) AM_RANGE(0x180008, 0x18000f) AM_WRITENOP /* ?? watchdog ?? */ @@ -587,7 +587,7 @@ READ16_MEMBER( dec0_automat_state::automat_palette_r ) WRITE16_MEMBER( dec0_automat_state::automat_palette_w ) { offset ^=0xf; - paletteram_xxxxBBBBGGGGRRRR_word_w(space, offset, data, mem_mask); + m_palette->write(space, offset, data, mem_mask); } @@ -1308,7 +1308,8 @@ WRITE_LINE_MEMBER(dec0_state::sound_irq2) static MACHINE_CONFIG_START( dec0_base, dec0_state ) MCFG_GFXDECODE_ADD("gfxdecode", dec0) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) deco_bac06_device::set_gfx_region_wide(*device,0,0,0); @@ -1323,6 +1324,7 @@ static MACHINE_CONFIG_START( dec0_base, dec0_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 3); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0) MACHINE_CONFIG_END @@ -1428,8 +1430,9 @@ static MACHINE_CONFIG_START( automat, dec0_automat_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 3); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_GFXDECODE_ADD("gfxdecode", automat) /* sound hardware */ @@ -1484,8 +1487,10 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 3); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") + - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_GFXDECODE_ADD("gfxdecode", secretab) /* sound hardware */ diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c index 0ffa85a3f82..5a80f04af14 100644 --- a/src/mame/drivers/dec8.c +++ b/src/mame/drivers/dec8.c @@ -561,8 +561,8 @@ WRITE8_MEMBER(dec8_state::flip_screen_w){ flip_screen_set(data); } static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0") AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1") AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2") @@ -587,8 +587,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0") AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1") AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2") @@ -607,8 +607,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0") AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1") AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2") @@ -631,8 +631,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0") AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN1") AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2") @@ -658,8 +658,8 @@ static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x17ff) AM_RAM AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram") AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data") - AM_RANGE(0x2800, 0x2bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x2c00, 0x2fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x2800, 0x2bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2c00, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */ AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */ AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */ @@ -681,8 +681,8 @@ static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x17ff) AM_RAM AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram") AM_RANGE(0x2000, 0x27ff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data") - AM_RANGE(0x2800, 0x2bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x2c00, 0x2fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x2800, 0x2bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2c00, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */ AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */ AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */ @@ -725,8 +725,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN1") AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN0") AM_RANGE(0x1803, 0x1803) AM_READ_PORT("IN2") @@ -750,8 +750,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x1400, 0x17ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x1803, 0x1803) AM_READ_PORT("IN2") AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1") AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w) @@ -771,7 +771,7 @@ static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram") AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("tilegen1", deco_bac06_device, pf_data_8bit_r, pf_data_8bit_w) AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */ - AM_RANGE(0x3800, 0x3bff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x3800, 0x3bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x3c00, 0x3c00) AM_READ_PORT("IN0") AM_RANGE(0x3c01, 0x3c01) AM_READ_PORT("IN1") AM_RANGE(0x3c02, 0x3c02) AM_READ_PORT("IN2") /* VBL & coins */ @@ -809,8 +809,8 @@ static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x1805, 0x1806) AM_WRITE(srdarwin_control_w) /* Scroll & Bank */ AM_RANGE(0x2000, 0x2000) AM_READWRITE(i8751_h_r, dec8_sound_w) /* Sound */ AM_RANGE(0x2001, 0x2001) AM_READWRITE(i8751_l_r, flip_screen_w) /* Flipscreen */ - AM_RANGE(0x2800, 0x288f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x3000, 0x308f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x2800, 0x288f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x3000, 0x308f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette_ext") AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */ AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN0") /* Player 1 */ AM_RANGE(0x3802, 0x3802) AM_READ_PORT("IN1") /* Player 2 (cocktail) + VBL */ @@ -826,7 +826,7 @@ static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8, dec8_state ) AM_RANGE(0x1800, 0x1fff) AM_RAM AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(dec8_videoram_w) AM_SHARE("videoram") AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x3000, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x3000, 0x31ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x3200, 0x37ff) AM_WRITEONLY /* Unused */ AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") /* Player 1 */ AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") /* Player 2 */ @@ -2016,6 +2016,7 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state ) MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 1); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2026,7 +2027,8 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state ) MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn) MCFG_GFXDECODE_ADD("gfxdecode", shackled) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn) @@ -2066,6 +2068,7 @@ static MACHINE_CONFIG_START( shackled, dec8_state ) MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 1); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2076,7 +2079,8 @@ static MACHINE_CONFIG_START( shackled, dec8_state ) MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_shackled) MCFG_GFXDECODE_ADD("gfxdecode", shackled) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,shackled) @@ -2115,6 +2119,7 @@ static MACHINE_CONFIG_START( gondo, dec8_state ) MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 1); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2126,7 +2131,8 @@ static MACHINE_CONFIG_START( gondo, dec8_state ) MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8) MCFG_GFXDECODE_ADD("gfxdecode", gondo) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,gondo) @@ -2165,6 +2171,7 @@ static MACHINE_CONFIG_START( garyoret, dec8_state ) MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 1); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2176,7 +2183,8 @@ static MACHINE_CONFIG_START( garyoret, dec8_state ) MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8) MCFG_GFXDECODE_ADD("gfxdecode", gondo) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,garyoret) @@ -2219,6 +2227,7 @@ static MACHINE_CONFIG_START( ghostb, dec8_state ) MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 1); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2230,9 +2239,10 @@ static MACHINE_CONFIG_START( ghostb, dec8_state ) MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8) MCFG_GFXDECODE_ADD("gfxdecode", ghostb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) - MCFG_PALETTE_INIT_OVERRIDE(dec8_state,ghostb) + MCFG_PALETTE_INIT_OWNER(dec8_state,ghostb) MCFG_VIDEO_START_OVERRIDE(dec8_state,ghostb) /* sound hardware */ @@ -2276,6 +2286,7 @@ static MACHINE_CONFIG_START( csilver, dec8_state ) MCFG_DEVICE_ADD("spritegen_krn", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 1); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2286,7 +2297,8 @@ static MACHINE_CONFIG_START( csilver, dec8_state ) MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn) MCFG_GFXDECODE_ADD("gfxdecode", shackled) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,lastmisn) @@ -2334,6 +2346,7 @@ static MACHINE_CONFIG_START( oscar, dec8_state ) MCFG_DEVICE_ADD("spritegen_mxc", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 1); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(58) @@ -2344,7 +2357,8 @@ static MACHINE_CONFIG_START( oscar, dec8_state ) MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_oscar) MCFG_GFXDECODE_ADD("gfxdecode", oscar) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,oscar) @@ -2386,7 +2400,8 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state ) MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_srdarwin) MCFG_GFXDECODE_ADD("gfxdecode", srdarwin) - MCFG_PALETTE_LENGTH(144) + MCFG_PALETTE_ADD("palette", 144) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,srdarwin) @@ -2429,6 +2444,7 @@ static MACHINE_CONFIG_START( cobracom, dec8_state ) MCFG_DEVICE_ADD("spritegen_mxc", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 1); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") MCFG_SCREEN_ADD("screen", RASTER) @@ -2440,7 +2456,8 @@ static MACHINE_CONFIG_START( cobracom, dec8_state ) MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_cobracom) MCFG_GFXDECODE_ADD("gfxdecode", cobracom) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dec8_state,cobracom) diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c index 6bdd2208f92..4bf6936c462 100644 --- a/src/mame/drivers/deco156.c +++ b/src/mame/drivers/deco156.c @@ -112,7 +112,7 @@ WRITE32_MEMBER(deco156_state::hvysmsh_oki_0_bank_w) WRITE32_MEMBER(deco156_state::wcvol95_nonbuffered_palette_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); - palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10)); + m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10)); } /* This is the same as deco32_nonbuffered_palette_w in video/deco32.c */ @@ -126,7 +126,7 @@ WRITE32_MEMBER(deco156_state::deco156_nonbuffered_palette_w) g = (m_generic_paletteram_32[offset] >> 8) & 0xff; r = (m_generic_paletteram_32[offset] >> 0) & 0xff; - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } READ32_MEMBER(deco156_state::wcvol95_pf1_rowscroll_r){ return m_pf1_rowscroll[offset] ^ 0xffff0000; } @@ -366,16 +366,18 @@ static MACHINE_CONFIG_START( hvysmsh, deco156_state ) MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95) MCFG_GFXDECODE_ADD("gfxdecode", hvysmsh) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); decospr_device::set_pri_callback(*device, deco156_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -406,16 +408,18 @@ static MACHINE_CONFIG_START( wcvol95, deco156_state ) MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95) MCFG_GFXDECODE_ADD("gfxdecode", hvysmsh) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); decospr_device::set_pri_callback(*device, deco156_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index 724fb58effb..9c52c4c3af1 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -1753,18 +1753,21 @@ static MACHINE_CONFIG_START( captaven, deco32_state ) MCFG_SCREEN_VBLANK_DRIVER(deco32_state, screen_eof_captaven) MCFG_GFXDECODE_ADD("gfxdecode", captaven) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECO16IC_ADD("tilegen1", captaven_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", captaven_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); decospr_device::set_pri_callback(*device, captaven_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb) @@ -1825,17 +1828,20 @@ static MACHINE_CONFIG_START( fghthist, deco32_state ) /* DE-0380-2 PCB */ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist) MCFG_GFXDECODE_ADD("gfxdecode", fghthist) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") MCFG_DECO146_SET_PORTA_CALLBACK( deco32_state, port_a_fghthist ) @@ -1884,17 +1890,20 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state ) /* DE-0395-1 PCB */ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist) MCFG_GFXDECODE_ADD("gfxdecode", fghthist) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") MCFG_DECO146_SET_PORTA_CALLBACK( deco32_state, port_a_fghthist ) @@ -2009,12 +2018,14 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state ) MCFG_DECO16IC_ADD("tilegen1", dragngun_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", dragngun_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", dragngun) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(dragngun_state,dragngun) @@ -2094,12 +2105,14 @@ static MACHINE_CONFIG_START( lockload, dragngun_state ) MCFG_DECO16IC_ADD("tilegen1", lockload_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", lockload_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", dragngun) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(dragngun_state,lockload) @@ -2182,20 +2195,24 @@ static MACHINE_CONFIG_START( tattass, deco32_state ) MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tattass) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_PORTB_CALLBACK( deco32_state, port_b_tattass ) @@ -2231,20 +2248,24 @@ static MACHINE_CONFIG_START( nslasher, deco32_state ) MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", nslasher) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(deco32_state,nslasher) diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c index afd01ba70c1..c4d032a93a8 100644 --- a/src/mame/drivers/deco_ld.c +++ b/src/mame/drivers/deco_ld.c @@ -181,7 +181,7 @@ void deco_ld_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect fx = (spriteram[i+0] & 0x04) ? 1 : 0; fy = (spriteram[i+0] & 0x02) ? 1 : 0; - gfx->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); + gfx->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); } for(i=0x3e0;i<0x400;i+=4) @@ -196,7 +196,7 @@ void deco_ld_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect fx = (spriteram[i+0] & 0x04) ? 1 : 0; fy = (spriteram[i+0] & 0x02) ? 1 : 0; - gfx->transpen(bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); + gfx->transpen(m_palette,bitmap,cliprect,spr_offs,col,fx,fy,x,y,0); } } @@ -218,7 +218,7 @@ UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32 int tile = m_vram0[x+y*32] | ((attr & 3) << 8); int colour = (6 & 0x7); /* TODO */ - gfx->transpen(bitmap,cliprect,tile|0x400,colour,0,0,x*8,y*8,0); + gfx->transpen(m_palette,bitmap,cliprect,tile|0x400,colour,0,0,x*8,y*8,0); } } @@ -230,7 +230,7 @@ UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32 int tile = m_vram1[x+y*32] | ((attr & 3) << 8); int colour = (6 & 0x7); /* TODO */ - gfx->transpen(bitmap,cliprect,tile,colour,0,0,x*8,y*8,0); + gfx->transpen(m_palette,bitmap,cliprect,tile,colour,0,0,x*8,y*8,0); } } @@ -262,7 +262,7 @@ WRITE8_MEMBER(deco_ld_state::decold_sound_cmd_w) /* same as Burger Time HW */ WRITE8_MEMBER(deco_ld_state::decold_palette_w) { - paletteram_BBGGGRRR_byte_w(space, offset, ~data); + m_palette->write(space, offset, UINT8(~data)); } /* unknown, but certainly related to audiocpu somehow */ @@ -479,7 +479,7 @@ static MACHINE_CONFIG_START( rblaster, deco_ld_state ) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") MCFG_GFXDECODE_ADD("gfxdecode", rblaster) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ /* TODO: mixing */ diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index ab120062881..7ad7c6d232a 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -190,7 +190,7 @@ WRITE32_MEMBER(deco_mlc_state::avengrs_palette_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); /* x bbbbb ggggg rrrrr */ - palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10)); + m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> 0),pal5bit(m_generic_paletteram_32[offset] >> 5),pal5bit(m_generic_paletteram_32[offset] >> 10)); } @@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state ) MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc) MCFG_GFXDECODE_ADD("gfxdecode", deco_mlc) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) MCFG_VIDEO_START_OVERRIDE(deco_mlc_state,mlc) @@ -529,7 +529,7 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state ) MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc) MCFG_GFXDECODE_ADD("gfxdecode", deco_mlc) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) MCFG_VIDEO_START_OVERRIDE(deco_mlc_state,mlc) diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c index 21735d1b2ef..19f5b85cd9f 100644 --- a/src/mame/drivers/decocass.c +++ b/src/mame/drivers/decocass.c @@ -684,32 +684,30 @@ static GFXDECODE_START( decocass ) GFXDECODE_ENTRY( NULL, 0xd800, objlayout, 48, 4 ) /* object */ GFXDECODE_END -void decocass_state::palette_init() +PALETTE_INIT_MEMBER(decocass_state, decocass) { int i; - machine().colortable = colortable_alloc(machine(), 32); - /* set up 32 colors 1:1 pens */ for (i = 0; i < 32; i++) - colortable_entry_set_value(machine().colortable, i, i); + palette.set_pen_indirect(i, i); /* setup straight/flipped colors for background tiles (D7 of color_center_bot ?) */ for (i = 0; i < 8; i++) { - colortable_entry_set_value(machine().colortable, 32+i, 3*8+i); - colortable_entry_set_value(machine().colortable, 40+i, 3*8+((i << 1) & 0x04) + ((i >> 1) & 0x02) + (i & 0x01)); + palette.set_pen_indirect(32+i, 3*8+i); + palette.set_pen_indirect(40+i, 3*8+((i << 1) & 0x04) + ((i >> 1) & 0x02) + (i & 0x01)); } /* setup 4 colors for 1bpp object */ - colortable_entry_set_value(machine().colortable, 48+0*2+0, 0); - colortable_entry_set_value(machine().colortable, 48+0*2+1, 25); /* testtape red from 4th palette section? */ - colortable_entry_set_value(machine().colortable, 48+1*2+0, 0); - colortable_entry_set_value(machine().colortable, 48+1*2+1, 28); /* testtape blue from 4th palette section? */ - colortable_entry_set_value(machine().colortable, 48+2*2+0, 0); - colortable_entry_set_value(machine().colortable, 48+2*2+1, 26); /* testtape green from 4th palette section? */ - colortable_entry_set_value(machine().colortable, 48+3*2+0, 0); - colortable_entry_set_value(machine().colortable, 48+3*2+1, 23); /* ???? */ + palette.set_pen_indirect(48+0*2+0, 0); + palette.set_pen_indirect(48+0*2+1, 25); /* testtape red from 4th palette section? */ + palette.set_pen_indirect(48+1*2+0, 0); + palette.set_pen_indirect(48+1*2+1, 28); /* testtape blue from 4th palette section? */ + palette.set_pen_indirect(48+2*2+0, 0); + palette.set_pen_indirect(48+2*2+1, 26); /* testtape green from 4th palette section? */ + palette.set_pen_indirect(48+3*2+0, 0); + palette.set_pen_indirect(48+3*2+1, 23); /* ???? */ } @@ -737,7 +735,8 @@ static MACHINE_CONFIG_START( decocass, decocass_state ) MCFG_SCREEN_UPDATE_DRIVER(decocass_state, screen_update_decocass) MCFG_GFXDECODE_ADD("gfxdecode", decocass) - MCFG_PALETTE_LENGTH(32+2*8+2*4) + MCFG_PALETTE_ADD("palette", 32+2*8+2*4) + MCFG_PALETTE_INIT_OWNER(decocass_state, decocass) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c index e37fd5aeabb..3908653366b 100644 --- a/src/mame/drivers/deniam.c +++ b/src/mame/drivers/deniam.c @@ -281,7 +281,7 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state ) MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam) MCFG_GFXDECODE_ADD("gfxdecode", deniam) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state ) MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam) MCFG_GFXDECODE_ADD("gfxdecode", deniam) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c index 6d91f3ddee5..58e59133ca8 100644 --- a/src/mame/drivers/deshoros.c +++ b/src/mame/drivers/deshoros.c @@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( destiny, destiny_state ) MCFG_SCREEN_SIZE(48*8, 16*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*8-1) MCFG_SCREEN_UPDATE_DRIVER(destiny_state, screen_update_destiny) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c index e4ecb5d18ae..7a82dafa039 100644 --- a/src/mame/drivers/destroyr.c +++ b/src/mame/drivers/destroyr.c @@ -61,7 +61,7 @@ public: DECLARE_READ8_MEMBER(destroyr_scanline_r); virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(destroyr); UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(destroyr_dial_callback); TIMER_CALLBACK_MEMBER(destroyr_frame_callback); @@ -98,7 +98,7 @@ UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind1 continue; } - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, num, 0, flipx, 0, horz, 16 * i, 0); + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, num, 0, flipx, 0, horz, 16 * i, 0); } /* draw alpha numerics */ @@ -108,7 +108,7 @@ UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind1 { int num = m_alpha_num_ram[32 * i + j]; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, num, 0, 0, 0, 8 * j, 8 * i, 0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, num, 0, 0, 0, 8 * j, 8 * i, 0); } } @@ -119,13 +119,13 @@ UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind1 int horz = 256 - m_minor_obj_ram[i + 2]; int vert = 256 - m_minor_obj_ram[i + 4]; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 0, 0, horz, vert, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, num, 0, 0, 0, horz, vert, 0); } /* draw waves */ for (i = 0; i < 4; i++) { - m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap,cliprect, m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0); } /* draw cursor */ @@ -448,16 +448,16 @@ static GFXDECODE_START( destroyr ) GFXDECODE_END -void destroyr_state::palette_init() +PALETTE_INIT_MEMBER(destroyr_state, destroyr) { - palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0x00)); /* major objects */ - palette_set_color(machine(), 1, rgb_t(0x50, 0x50, 0x50)); - palette_set_color(machine(), 2, rgb_t(0xAF, 0xAF, 0xAF)); - palette_set_color(machine(), 3, rgb_t(0xFF ,0xFF, 0xFF)); - palette_set_color(machine(), 4, rgb_t(0x00, 0x00, 0x00)); /* alpha numerics, waves, minor objects */ - palette_set_color(machine(), 5, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 6, rgb_t(0x00, 0x00, 0x00)); /* cursor */ - palette_set_color(machine(), 7, rgb_t(0x78, 0x78, 0x78)); + palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); /* major objects */ + palette.set_pen_color(1, rgb_t(0x50, 0x50, 0x50)); + palette.set_pen_color(2, rgb_t(0xAF, 0xAF, 0xAF)); + palette.set_pen_color(3, rgb_t(0xFF ,0xFF, 0xFF)); + palette.set_pen_color(4, rgb_t(0x00, 0x00, 0x00)); /* alpha numerics, waves, minor objects */ + palette.set_pen_color(5, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(6, rgb_t(0x00, 0x00, 0x00)); /* cursor */ + palette.set_pen_color(7, rgb_t(0x78, 0x78, 0x78)); } @@ -488,7 +488,8 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state ) MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update_destroyr) MCFG_GFXDECODE_ADD("gfxdecode", destroyr) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(destroyr_state, destroyr) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/dfruit.c b/src/mame/drivers/dfruit.c index ca0a297d234..db12a6a2028 100644 --- a/src/mame/drivers/dfruit.c +++ b/src/mame/drivers/dfruit.c @@ -400,11 +400,12 @@ static MACHINE_CONFIG_START( dfruit, dfruit_state ) MCFG_SCREEN_UPDATE_DRIVER(dfruit_state, screen_update) MCFG_SCREEN_VBLANK_DRIVER(dfruit_state, screen_eof) - MCFG_GFXDECODE_ADD("gfxdecode", dfruit ) - MCFG_PALETTE_LENGTH(0x100) + MCFG_GFXDECODE_ADD("gfxdecode", dfruit ) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("tc0091lvc", TC0091LVC, 0) MCFG_TC0091LVC_GFXDECODE("gfxdecode") + MCFG_TC0091LVC_PALETTE("palette") MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf ) diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c index 49da6494d58..d24994e6361 100644 --- a/src/mame/drivers/dgpix.c +++ b/src/mame/drivers/dgpix.c @@ -318,8 +318,7 @@ static MACHINE_CONFIG_START( dgpix, dgpix_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(dgpix_state, screen_update_dgpix) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, BBBBB_GGGGG_RRRRR) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette") /* sound hardware */ diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c index 630675845b3..da4cbb23e91 100644 --- a/src/mame/drivers/dietgo.c +++ b/src/mame/drivers/dietgo.c @@ -229,17 +229,19 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(dietgo_state, screen_update_dietgo) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_GFXDECODE_ADD("gfxdecode", dietgo) MCFG_DECOCOMN_ADD("deco_common") MCFG_DECO16IC_ADD("tilegen1", dietgo_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c index e2befa673a7..7eb943f1528 100644 --- a/src/mame/drivers/discoboy.c +++ b/src/mame/drivers/discoboy.c @@ -143,7 +143,7 @@ void discoboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre } } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, flipscreen,0, @@ -168,7 +168,7 @@ UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind1 g = ((pal >> 4) & 0xf) << 4; r = ((pal >> 8) & 0xf) << 4; - palette_set_color(machine(), i / 2, rgb_t(r, g, b)); + m_palette->set_pen_color(i / 2, rgb_t(r, g, b)); } for (i = 0; i < 0x800; i += 2) @@ -181,7 +181,7 @@ UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind1 g = ((pal >> 4) & 0xf) << 4; r = ((pal >> 8) & 0xf) << 4; - palette_set_color(machine(), (i / 2) + 0x400, rgb_t(r, g, b)); + m_palette->set_pen_color((i / 2) + 0x400, rgb_t(r, g, b)); } bitmap.fill(0x3ff, cliprect); @@ -200,7 +200,7 @@ UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind1 tileno = 0x2000 + (tileno & 0x1fff) + 0x0000; } - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, tileno, m_ram_att[count / 2], 0, 0, x*8, y*8); + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, tileno, m_ram_att[count / 2], 0, 0, x*8, y*8); count += 2; } } @@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state ) MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update_discoboy) MCFG_GFXDECODE_ADD("gfxdecode", discoboy) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c index b51ee05ca1c..798b2adf499 100644 --- a/src/mame/drivers/diverboy.c +++ b/src/mame/drivers/diverboy.c @@ -109,7 +109,7 @@ void diverboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr if (!flash || (m_screen->frame_number() & 1)) { - m_gfxdecode->gfx(bank)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(bank)->transpen(m_palette,bitmap,cliprect, number, colr, 0,0, @@ -123,7 +123,7 @@ void diverboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr UINT32 diverboy_state::screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { -// bitmap.fill(get_black_pen(machine()), cliprect); +// bitmap.fill(m_palette->black_pen(), cliprect); draw_sprites(bitmap, cliprect); return 0; } @@ -152,7 +152,7 @@ static ADDRESS_MAP_START( diverboy_map, AS_PROGRAM, 16, diverboy_state ) AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_RANGE(0x080000, 0x083fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x100000, 0x100001) AM_WRITE(soundcmd_w) - AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P1_P2") AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW") AM_RANGE(0x180008, 0x180009) AM_READ_PORT("COINS") @@ -273,7 +273,8 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state ) MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(diverboy_state, screen_update_diverboy) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c index 3f0d387646a..f81cada472d 100644 --- a/src/mame/drivers/djboy.c +++ b/src/mame/drivers/djboy.c @@ -581,10 +581,11 @@ static MACHINE_CONFIG_START( djboy, djboy_state ) MCFG_SCREEN_VBLANK_DRIVER(djboy_state, screen_eof_djboy) MCFG_GFXDECODE_ADD("gfxdecode", djboy) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_KANEKO_PANDORA_ADD("pandora", djboy_pandora_config) MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode") + MCFG_KANEKO_PANDORA_PALETTE("palette") MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c index 21dee24f4d6..7b2f848d83b 100644 --- a/src/mame/drivers/djmain.c +++ b/src/mame/drivers/djmain.c @@ -95,7 +95,7 @@ WRITE32_MEMBER(djmain_state::paletteram32_w) g = (data >> 8) & 0xff; b = (data >> 16) & 0xff; - palette_set_color(machine(), offset, rgb_t(r, g, b)); + m_palette->set_pen_color(offset, rgb_t(r, g, b)); } @@ -1420,11 +1420,12 @@ static MACHINE_CONFIG_START( djmain, djmain_state ) MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1) MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain) - MCFG_PALETTE_LENGTH(0x4440/4) + MCFG_PALETTE_ADD("palette", 0x4440/4) MCFG_GFXDECODE_ADD("gfxdecode", djmain) MCFG_K056832_ADD("k056832", djmain_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K055555_ADD("k055555") /* sound hardware */ diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index 1c3fb777eb5..23cd715c7c5 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -1668,9 +1668,9 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state ) MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong) MCFG_GFXDECODE_ADD("gfxdecode", dkong) - MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", DK2B_PALETTE_LENGTH) - MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) + MCFG_PALETTE_INIT_OWNER(dkong_state,dkong2b) MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong) MACHINE_CONFIG_END @@ -1678,8 +1678,9 @@ static MACHINE_CONFIG_DERIVED( radarscp, dkong_base ) /* basic machine hardware */ MCFG_MACHINE_START_OVERRIDE(dkong_state,radarscp) - MCFG_PALETTE_LENGTH(RS_PALETTE_LENGTH) - MCFG_PALETTE_INIT_OVERRIDE(dkong_state,radarscp) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", RS_PALETTE_LENGTH) + MCFG_PALETTE_INIT_OWNER(dkong_state,radarscp) /* sound hardware */ MCFG_FRAGMENT_ADD(radarscp_audio) @@ -1689,8 +1690,9 @@ static MACHINE_CONFIG_DERIVED( radarscp1, dkong_base ) /* basic machine hardware */ MCFG_MACHINE_START_OVERRIDE(dkong_state,radarscp1) - MCFG_PALETTE_LENGTH(RS_PALETTE_LENGTH) - MCFG_PALETTE_INIT_OVERRIDE(dkong_state,radarscp1) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", RS_PALETTE_LENGTH) + MCFG_PALETTE_INIT_OWNER(dkong_state,radarscp1) /* sound hardware */ MCFG_FRAGMENT_ADD(radarscp1_audio) @@ -1701,7 +1703,8 @@ static MACHINE_CONFIG_DERIVED( dkong2b, dkong_base ) /* basic machine hardware */ MCFG_MACHINE_START_OVERRIDE(dkong_state,dkong2b) - MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", DK2B_PALETTE_LENGTH) /* sound hardware */ MCFG_FRAGMENT_ADD(dkong2b_audio) @@ -1729,10 +1732,10 @@ static MACHINE_CONFIG_START( dkong3, dkong_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong) - MCFG_GFXDECODE_ADD("gfxdecode", dkong) - MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH) + MCFG_GFXDECODE_ADD("gfxdecode", dkong) + MCFG_PALETTE_ADD("palette", DK3_PALETTE_LENGTH) - MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong3) + MCFG_PALETTE_INIT_OWNER(dkong_state,dkong3) MCFG_VIDEO_START_OVERRIDE(dkong_state,dkong) /* sound hardware */ @@ -1752,16 +1755,18 @@ static MACHINE_CONFIG_DERIVED( pestplce, dkongjr ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", pestplce) - MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) - MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) /* wrong! */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", DK2B_PALETTE_LENGTH) + MCFG_PALETTE_INIT_OWNER(dkong_state,dkong2b) /* wrong! */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_pestplce) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( dkong3b, dkongjr ) - /* basic machine hardware */ - MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong3) + /* basic machine hardware */ + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(dkong_state,dkong3) MACHINE_CONFIG_END /************************************* diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c index 50b2876b06e..28c109d5845 100644 --- a/src/mame/drivers/dlair.c +++ b/src/mame/drivers/dlair.c @@ -233,8 +233,8 @@ PALETTE_INIT_MEMBER(dlair_state,dleuro) for (i = 0; i < 8; i++) { - palette_set_color(machine(), 2 * i + 0, rgb_t(0, 0, 0)); - palette_set_color_rgb(machine(), 2 * i + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); + palette.set_pen_color(2 * i + 0, rgb_t(0, 0, 0)); + palette.set_pen_color(2 * i + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); } } @@ -256,7 +256,7 @@ UINT32 dlair_state::screen_update_dleuro(screen_device &screen, bitmap_ind16 &bi for (x = 0; x < 32; x++) { UINT8 *base = &videoram[y * 64 + x * 2 + 1]; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, base[0], base[1], 0, 0, 10 * x, 16 * y); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, base[0], base[1], 0, 0, 10 * x, 16 * y); } return 0; @@ -775,9 +775,9 @@ static MACHINE_CONFIG_START( dleuro, dlair_state ) MCFG_LASERDISC_SCREEN_ADD_PAL("screen", "ld_22vp932") MCFG_GFXDECODE_ADD("gfxdecode", dlair) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) - MCFG_PALETTE_INIT_OVERRIDE(dlair_state,dleuro) + MCFG_PALETTE_INIT_OWNER(dlair_state,dleuro) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/dlair2.c b/src/mame/drivers/dlair2.c index dfa9d5aee5f..e0d6ed00e67 100644 --- a/src/mame/drivers/dlair2.c +++ b/src/mame/drivers/dlair2.c @@ -45,13 +45,14 @@ public: UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(dlair2_timer_irq); + DECLARE_PALETTE_INIT(dlair2); + protected: // driver_device overrides virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; void dlair2_state::video_start() @@ -157,7 +158,7 @@ void dlair2_state::machine_reset() { } -void dlair2_state::palette_init() +PALETTE_INIT_MEMBER(dlair2_state, dlair2) { } @@ -184,7 +185,8 @@ static MACHINE_CONFIG_START( dlair2, dlair2_state ) // MCFG_GFXDECODE_ADD("gfxdecode", dlair2) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(dlair2_state, dlair2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c index 87b07fb225b..3cfb50d3f35 100644 --- a/src/mame/drivers/dmndrby.c +++ b/src/mame/drivers/dmndrby.c @@ -84,7 +84,7 @@ public: DECLARE_WRITE8_MEMBER(output_w); TILE_GET_INFO_MEMBER(get_dmndrby_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(dmndrby); UINT32 screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(dderby_irq); INTERRUPT_GEN_MEMBER(dderby_timer_irq); @@ -364,7 +364,7 @@ UINT32 dmndrby_state::screen_update_dderby(screen_device &screen, bitmap_ind16 & gfx_element *sprites = m_gfxdecode->gfx(1); gfx_element *track = m_gfxdecode->gfx(2); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); /* Draw racetrack @@ -383,13 +383,13 @@ can we draw it with the tilemap? maybe not, the layout is a litle strange int chr = m_racetrack_tilemap_rom[off]; int col = m_racetrack_tilemap_rom[off+0x2000]&0x1f; int flipx = m_racetrack_tilemap_rom[off+0x2000]&0x40; - track->opaque(bitmap,cliprect,chr,col,flipx,0,y*16+scrolly,x*16); + track->opaque(m_palette,bitmap,cliprect,chr,col,flipx,0,y*16+scrolly,x*16); // draw another bit of track // a rubbish way of doing it chr = m_racetrack_tilemap_rom[off-0x100]; col = m_racetrack_tilemap_rom[off+0x1f00]&0x1f; flipx = m_racetrack_tilemap_rom[off+0x1f00]&0x40; - track->opaque(bitmap,cliprect,chr,col,flipx,0,y*16-256+scrolly,x*16); + track->opaque(m_palette,bitmap,cliprect,chr,col,flipx,0,y*16-256+scrolly,x*16); off++; } } @@ -419,13 +419,13 @@ wouldnt like to say its the most effective way though... for (a=0;a<8 ;a++) { for(b=0;b<7;b++) { - sprites->transpen(bitmap,cliprect,anim+a*8+b,col,0,0,sprx+a*8,spry+b*8,0); + sprites->transpen(m_palette,bitmap,cliprect,anim+a*8+b,col,0,0,sprx+a*8,spry+b*8,0); } } // draw the horse number a=3; b=3; - sprites->transpen(bitmap,cliprect,anim+horse,col,0,0,sprx+a*8,spry+b*8,0); + sprites->transpen(m_palette,bitmap,cliprect,anim+horse,col,0,0,sprx+a*8,spry+b*8,0); } @@ -442,7 +442,7 @@ wouldnt like to say its the most effective way though... tileno|=(bank<<8); color=((m_dderby_vidattribs[count])&0x1f); - gfx->transpen(bitmap,cliprect,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1); + gfx->transpen(m_palette,bitmap,cliprect,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1); count++; } @@ -453,7 +453,7 @@ wouldnt like to say its the most effective way though... } // copied from elsewhere. surely incorrect -void dmndrby_state::palette_init() +PALETTE_INIT_MEMBER(dmndrby_state, dmndrby) { const UINT8 *color_prom = memregion("proms")->base(); static const int resistances_rg[3] = { 1000, 470, 220 }; @@ -467,9 +467,6 @@ void dmndrby_state::palette_init() 3, &resistances_rg[0], gweights, 470, 0, 2, &resistances_b[0], bweights, 470, 0); - /* allocate the colortable */ - machine().colortable = colortable_alloc(machine(), 0x20); - /* create a lookup table for the palette */ for (i = 0; i < 0x20; i++) { @@ -493,7 +490,7 @@ void dmndrby_state::palette_init() bit1 = (color_prom[i] >> 7) & 0x01; b = combine_2_weights(bweights, bit0, bit1); - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ @@ -503,7 +500,7 @@ void dmndrby_state::palette_init() for (i = 0x000; i < 0x300; i++) { UINT8 ctabentry = color_prom[i]; - colortable_entry_set_value(machine().colortable, i, ctabentry); + palette.set_pen_indirect(i, ctabentry); } } @@ -540,8 +537,8 @@ static MACHINE_CONFIG_START( dderby, dmndrby_state ) MCFG_SCREEN_UPDATE_DRIVER(dmndrby_state, screen_update_dderby) MCFG_GFXDECODE_ADD("gfxdecode", dmndrby) - MCFG_PALETTE_LENGTH(0x300) - + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_INIT_OWNER(dmndrby_state, dmndrby) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c index 8c47cbe3af5..3311d49133c 100644 --- a/src/mame/drivers/docastle.c +++ b/src/mame/drivers/docastle.c @@ -641,7 +641,8 @@ static MACHINE_CONFIG_START( docastle, docastle_state ) MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle) MCFG_GFXDECODE_ADD("gfxdecode", docastle) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(docastle_state, docastle) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c index b427a148975..11afc6d7463 100644 --- a/src/mame/drivers/dogfgt.c +++ b/src/mame/drivers/dogfgt.c @@ -70,7 +70,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dogfgt_state ) AM_RANGE(0x1830, 0x1830) AM_READ_PORT("DSW2") AM_RANGE(0x1830, 0x1830) AM_WRITE(dogfgt_soundlatch_w) AM_RANGE(0x1840, 0x1840) AM_WRITE(dogfgt_soundcontrol_w) - AM_RANGE(0x1870, 0x187f) AM_WRITE(paletteram_BBGGGRRR_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x1870, 0x187f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x2000, 0x3fff) AM_READWRITE(dogfgt_bitmapram_r, dogfgt_bitmapram_w) AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -254,7 +254,9 @@ static MACHINE_CONFIG_START( dogfgt, dogfgt_state ) MCFG_SCREEN_UPDATE_DRIVER(dogfgt_state, screen_update_dogfgt) MCFG_GFXDECODE_ADD("gfxdecode", dogfgt) - MCFG_PALETTE_LENGTH(16+64) + MCFG_PALETTE_ADD("palette", 16+64) + MCFG_PALETTE_FORMAT(BBGGGRRR) + MCFG_PALETTE_INIT_OWNER(dogfgt_state, dogfgt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c index f979927dc08..e33aa9e6b81 100644 --- a/src/mame/drivers/dominob.c +++ b/src/mame/drivers/dominob.c @@ -113,12 +113,12 @@ void dominob_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec code = m_spriteram[offs + 3] + ((m_spriteram[offs + 2] & 0x03) << 8) ; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, 2 * code, ((m_spriteram[offs + 2] & 0xf8) >> 3) , flip_screen_x(),flip_screen_y(), sx,sy + (flip_screen_y() ? 8 : -8),0); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, 2 * code + 1, ((m_spriteram[offs + 2] & 0xf8) >> 3) , flip_screen_x(),flip_screen_y(), @@ -138,7 +138,7 @@ UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16 for (x = 0; x < 256 / 32; x++) { - m_gfxdecode->gfx(1)->opaque(bitmap, + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap, cliprect, m_bgram[index] + 256 * (m_bgram[index + 1] & 0xf), m_bgram[index + 1] >> 4, @@ -153,7 +153,7 @@ UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16 for (x = 0; x < 32; x++) { - m_gfxdecode->gfx(0)->transpen(bitmap, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap, cliprect, m_videoram[(y * 32 + x) * 2 + 1] + (m_videoram[(y * 32 + x) * 2] & 7) * 256, (m_videoram[(y * 32 + x) * 2] >> 3), @@ -189,7 +189,7 @@ static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, dominob_state ) AM_RANGE(0xe840, 0xefff) AM_RAM AM_RANGE(0xf000, 0xf07f) AM_RAM AM_SHARE("bgram") AM_RANGE(0xf080, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xfbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfc00, 0xffff) AM_RAM ADDRESS_MAP_END @@ -314,7 +314,8 @@ static MACHINE_CONFIG_START( dominob, dominob_state ) MCFG_SCREEN_UPDATE_DRIVER(dominob_state, screen_update_dominob) MCFG_GFXDECODE_ADD("gfxdecode", dominob) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c index 474f1d78aa6..b29ae41444d 100644 --- a/src/mame/drivers/dooyong.c +++ b/src/mame/drivers/dooyong.c @@ -126,7 +126,7 @@ static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_state ) AM_RANGE(0xc012, 0xc012) AM_WRITE(soundlatch_byte_w) AM_RANGE(0xc013, 0xc013) AM_READ_PORT("DSWA") AM_RANGE(0xc014, 0xc014) AM_READ_PORT("DSWB") - AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xc800, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram") AM_RANGE(0xe000, 0xefff) AM_RAM AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram") @@ -147,7 +147,7 @@ static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_state ) AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w) AM_RANGE(0xf018, 0xf01f) AM_WRITE(dooyong_bgscroll8_w) AM_RANGE(0xf020, 0xf027) AM_WRITE(dooyong_fgscroll8_w) - AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state ) @@ -166,7 +166,7 @@ static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state ) AM_RANGE(0xf010, 0xf010) AM_WRITE(soundlatch_byte_w) AM_RANGE(0xf018, 0xf01f) AM_WRITE(dooyong_bgscroll8_w) AM_RANGE(0xf020, 0xf027) AM_WRITE(dooyong_fgscroll8_w) - AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state ) @@ -183,7 +183,7 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state ) AM_RANGE(0xc018, 0xc01f) AM_WRITE(dooyong_fg2scroll8_w) AM_RANGE(0xc040, 0xc047) AM_WRITE(dooyong_bgscroll8_w) AM_RANGE(0xc048, 0xc04f) AM_WRITE(dooyong_fgscroll8_w) - AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xc800, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram") AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xf000, 0xffff) AM_RAM @@ -214,7 +214,7 @@ static ADDRESS_MAP_START( primella_map, AS_PROGRAM, 8, dooyong_state ) AM_RANGE(0xc000, 0xcfff) AM_RAM AM_RANGE(0xd000, 0xd3ff) AM_RAM /* what is this? looks like a palette? scratchpad RAM maybe? */ AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(dooyong_txvideoram8_w) AM_SHARE("txvideoram") - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf7ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSWA") AM_RANGE(0xf800, 0xf800) AM_WRITE(primella_ctrl_w) /* bank switch, flip screen etc */ AM_RANGE(0xf810, 0xf810) AM_READ_PORT("DSWB") @@ -237,7 +237,7 @@ static ADDRESS_MAP_START( rshark_map, AS_PROGRAM, 16, dooyong_state ) AM_RANGE(0x0c0006, 0x0c0007) AM_READ_PORT("SYSTEM") AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w) AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w) - AM_RANGE(0x0c8000, 0x0c8fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c8000, 0x0c8fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0c0012, 0x0c0013) AM_WRITE(soundlatch_word_w) AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(rshark_ctrl_w) /* flip screen + unknown stuff */ AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(dooyong_fgscroll16_w) @@ -255,7 +255,7 @@ static ADDRESS_MAP_START( superx_map, AS_PROGRAM, 16, dooyong_state ) AM_RANGE(0x080006, 0x080007) AM_READ_PORT("SYSTEM") AM_RANGE(0x084000, 0x08400f) AM_WRITE(dooyong_bgscroll16_w) AM_RANGE(0x084010, 0x08401f) AM_WRITE(dooyong_bg2scroll16_w) - AM_RANGE(0x088000, 0x088fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x088fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x080012, 0x080013) AM_WRITE(soundlatch_word_w) AM_RANGE(0x080014, 0x080015) AM_WRITE(rshark_ctrl_w) /* flip screen + unknown stuff */ AM_RANGE(0x08c000, 0x08c00f) AM_WRITE(dooyong_fgscroll16_w) @@ -276,7 +276,7 @@ static ADDRESS_MAP_START( popbingo_map, AS_PROGRAM, 16, dooyong_state ) AM_RANGE(0x0c0018, 0x0c001b) AM_WRITENOP // ? AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w) AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w) // not used atm - AM_RANGE(0x0c8000, 0x0c8fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c8000, 0x0c8fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0cc000, 0x0cc00f) AM_WRITE(dooyong_fgscroll16_w) // not used atm AM_RANGE(0x0cc010, 0x0cc01f) AM_WRITE(dooyong_fg2scroll16_w) // not used atm AM_RANGE(0x0dc000, 0x0dc01f) AM_RAM // registers of some kind? @@ -874,7 +874,8 @@ static MACHINE_CONFIG_START( lastday, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", lastday) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(dooyong_state,lastday) @@ -918,7 +919,8 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", lastday) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,gulfstrm) @@ -951,7 +953,8 @@ static MACHINE_CONFIG_START( pollux, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", lastday) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,pollux) @@ -983,7 +986,8 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", bluehawk) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,bluehawk) @@ -1015,7 +1019,8 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", flytiger) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,flytiger) @@ -1044,7 +1049,8 @@ static MACHINE_CONFIG_START( primella, dooyong_state ) MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_primella) MCFG_GFXDECODE_ADD("gfxdecode", primella) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,primella) @@ -1086,7 +1092,8 @@ static MACHINE_CONFIG_START( rshark, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", rshark) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark) @@ -1116,7 +1123,8 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", rshark) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,rshark) @@ -1146,7 +1154,8 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", popbingo) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(dooyong_state,popbingo) diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c index 247a97b4705..1a231746aef 100644 --- a/src/mame/drivers/dragrace.c +++ b/src/mame/drivers/dragrace.c @@ -287,24 +287,24 @@ static GFXDECODE_START( dragrace ) GFXDECODE_END -void dragrace_state::palette_init() +PALETTE_INIT_MEMBER(dragrace_state, dragrace) { - palette_set_color(machine(), 0, rgb_t(0xFF, 0xFF, 0xFF)); /* 2 color tiles */ - palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 2, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 3, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 4, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 5, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 6, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 7, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 8, rgb_t(0xFF, 0xFF, 0xFF)); /* 4 color tiles */ - palette_set_color(machine(), 9, rgb_t(0xB0, 0xB0, 0xB0)); - palette_set_color(machine(), 10,rgb_t(0x5F, 0x5F, 0x5F)); - palette_set_color(machine(), 11,rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 12,rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 13,rgb_t(0x5F, 0x5F, 0x5F)); - palette_set_color(machine(), 14,rgb_t(0xB0, 0xB0, 0xB0)); - palette_set_color(machine(), 15,rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(0, rgb_t(0xFF, 0xFF, 0xFF)); /* 2 color tiles */ + palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(2, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(3, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(4, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(5, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(6, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(7, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(8, rgb_t(0xFF, 0xFF, 0xFF)); /* 4 color tiles */ + palette.set_pen_color(9, rgb_t(0xB0, 0xB0, 0xB0)); + palette.set_pen_color(10,rgb_t(0x5F, 0x5F, 0x5F)); + palette.set_pen_color(11,rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(12,rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(13,rgb_t(0x5F, 0x5F, 0x5F)); + palette.set_pen_color(14,rgb_t(0xB0, 0xB0, 0xB0)); + palette.set_pen_color(15,rgb_t(0x00, 0x00, 0x00)); } @@ -339,7 +339,8 @@ static MACHINE_CONFIG_START( dragrace, dragrace_state ) MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace) MCFG_GFXDECODE_ADD("gfxdecode", dragrace) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(dragrace_state, dragrace) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/dreambal.c b/src/mame/drivers/dreambal.c index 3bdb59c9561..3e8c0ee196f 100644 --- a/src/mame/drivers/dreambal.c +++ b/src/mame/drivers/dreambal.c @@ -114,7 +114,7 @@ static ADDRESS_MAP_START( dreambal_map, AS_PROGRAM, 16, dreambal_state ) AM_RANGE(0x103000, 0x103fff) AM_RAM AM_RANGE(0x120000, 0x123fff) AM_RAM - AM_RANGE(0x140000, 0x1403ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1403ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x161000, 0x16100f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w) AM_RANGE(0x160000, 0x163fff) AM_READWRITE(dreambal_protection_region_0_104_r,dreambal_protection_region_0_104_w)AM_SHARE("prot16ram") /* Protection device */ @@ -325,7 +325,8 @@ static MACHINE_CONFIG_START( dreambal, dreambal_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(dreambal_state, screen_update_dreambal) - MCFG_PALETTE_LENGTH(0x400/2) + MCFG_PALETTE_ADD("palette", 0x400/2) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_GFXDECODE_ADD("gfxdecode", dreambal) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") // 93lc46b @@ -334,6 +335,7 @@ static MACHINE_CONFIG_START( dreambal, dreambal_state ) MCFG_DECO16IC_ADD("tilegen1", dreambal_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c index 9817120930e..193ba3577e6 100644 --- a/src/mame/drivers/dreamwld.c +++ b/src/mame/drivers/dreamwld.c @@ -224,10 +224,10 @@ void dreamwld_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre { for (xct = 0; xct < xsize; xct++) { - gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, ypos + yct * yinc, 0); - gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, ypos + yct * yinc, 0); - gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, (ypos + yct * yinc) - 0x200, 0); - gfx->transpen(bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, (ypos + yct * yinc) - 0x200 , 0); + gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, ypos + yct * yinc, 0); + gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, ypos + yct * yinc, 0); + gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, (xpos + xct * xinc) - 0x200, (ypos + yct * yinc) - 0x200, 0); + gfx->transpen(m_palette,bitmap,cliprect, redirect[tileno], colour, xflip, yflip, xpos + xct * xinc, (ypos + yct * yinc) - 0x200 , 0); tileno++; } @@ -455,10 +455,10 @@ WRITE32_MEMBER(dreamwld_state::dreamwld_palette_w) color = offset * 2; dat = m_paletteram[offset] & 0x7fff; - palette_set_color_rgb(machine(), color+1, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0)); + m_palette->set_pen_color(color+1, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0)); dat = (m_paletteram[offset] >> 16) & 0x7fff; - palette_set_color_rgb(machine(), color, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0)); + m_palette->set_pen_color(color, pal5bit(dat >> 10), pal5bit(dat >> 5), pal5bit(dat >> 0)); } @@ -602,7 +602,7 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state ) MCFG_SCREEN_UPDATE_DRIVER(dreamwld_state, screen_update_dreamwld) MCFG_SCREEN_VBLANK_DRIVER(dreamwld_state, screen_eof_dreamwld) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_GFXDECODE_ADD("gfxdecode", dreamwld) diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c index beaf1da5194..5691560c22a 100644 --- a/src/mame/drivers/drgnmst.c +++ b/src/mame/drivers/drgnmst.c @@ -197,7 +197,7 @@ static ADDRESS_MAP_START( drgnmst_main_map, AS_PROGRAM, 16, drgnmst_state ) AM_RANGE(0x800180, 0x800181) AM_WRITE(drgnmst_snd_command_w) AM_RANGE(0x800188, 0x800189) AM_WRITE(drgnmst_snd_flag_w) AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP - AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x900000, 0x903fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(drgnmst_md_videoram_w) AM_SHARE("md_videoram") AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(drgnmst_bg_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(drgnmst_fg_videoram_w) AM_SHARE("fg_videoram") @@ -409,8 +409,8 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state ) MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(drgnmst_state, screen_update_drgnmst) - MCFG_PALETTE_LENGTH(0x2000) - + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c index debaf209333..8bc4301cc20 100644 --- a/src/mame/drivers/dribling.c +++ b/src/mame/drivers/dribling.c @@ -314,8 +314,8 @@ static MACHINE_CONFIG_START( dribling, dribling_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255) MCFG_SCREEN_UPDATE_DRIVER(dribling_state, screen_update_dribling) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(dribling_state, dribling) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c index 6eafe6fb0df..f6c2f4b0214 100644 --- a/src/mame/drivers/drmicro.c +++ b/src/mame/drivers/drmicro.c @@ -259,8 +259,8 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state ) MCFG_SCREEN_UPDATE_DRIVER(drmicro_state, screen_update_drmicro) MCFG_GFXDECODE_ADD("gfxdecode", drmicro) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(drmicro_state, drmicro) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c index b7fc0fd3f09..8792189ccfe 100644 --- a/src/mame/drivers/drtomy.c +++ b/src/mame/drivers/drtomy.c @@ -120,7 +120,7 @@ void drtomy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ex = xflip ? (spr_size - 1 - x) : x; ey = yflip ? (spr_size - 1 - y) : y; - gfx->transpen(bitmap,cliprect,number + x_offset[ex] + y_offset[ey], + gfx->transpen(m_palette,bitmap,cliprect,number + x_offset[ex] + y_offset[ey], color,xflip,yflip, sx-0x09+x*8,sy+y*8,0); } @@ -171,7 +171,7 @@ static ADDRESS_MAP_START( drtomy_map, AS_PROGRAM, 16, drtomy_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */ AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(drtomy_vram_fg_w) AM_SHARE("videorafg") /* Video RAM FG */ AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(drtomy_vram_bg_w) AM_SHARE("videorabg") /* Video RAM BG */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW1") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW2") @@ -311,7 +311,8 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state ) MCFG_SCREEN_UPDATE_DRIVER(drtomy_state, screen_update_drtomy) MCFG_GFXDECODE_ADD("gfxdecode", drtomy) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c index 451ed646f08..5048bbe7c50 100644 --- a/src/mame/drivers/drw80pkr.c +++ b/src/mame/drivers/drw80pkr.c @@ -71,7 +71,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_start(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(drw80pkr); UINT32 screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -350,12 +350,12 @@ UINT32 drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind1 return 0; } -void drw80pkr_state::palette_init() +PALETTE_INIT_MEMBER(drw80pkr_state, drw80pkr) { const UINT8 *color_prom = memregion("proms")->base(); int j; - for (j = 0; j < machine().total_colors(); j++) + for (j = 0; j < palette.entries(); j++) { int r, g, b, tr, tg, tb, i; @@ -374,7 +374,7 @@ void drw80pkr_state::palette_init() tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01)); b = tb - (i * (tb / 5)); - palette_set_color(machine(), j, rgb_t(r, g, b)); + palette.set_pen_color(j, rgb_t(r, g, b)); } } @@ -483,8 +483,8 @@ static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state ) MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update_drw80pkr) MCFG_GFXDECODE_ADD("gfxdecode", drw80pkr) - MCFG_PALETTE_LENGTH(16*16) - + MCFG_PALETTE_ADD("palette", 16*16) + MCFG_PALETTE_INIT_OWNER(drw80pkr_state, drw80pkr) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index 27b2e0b73a4..ad04a3a4074 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -177,7 +177,7 @@ if (machine().input().code_pressed(KEYCODE_Z)) } #endif - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); switch (m_layers) { @@ -403,7 +403,7 @@ WRITE8_MEMBER(dunhuang_state::dunhuang_paldata_w) { m_paldata[m_paloffs] = data; - palette_set_color_rgb( machine(), m_paloffs/3, + m_palette->set_pen_color( m_paloffs/3, pal6bit(m_paldata[(m_paloffs/3)*3+0]), pal6bit(m_paldata[(m_paloffs/3)*3+1]), pal6bit(m_paldata[(m_paloffs/3)*3+2]) @@ -835,7 +835,7 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state ) MCFG_SCREEN_UPDATE_DRIVER(dunhuang_state, screen_update_dunhuang) MCFG_GFXDECODE_ADD("gfxdecode", dunhuang) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) /* sound hardware */ diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c index 0a91dc745d6..89b711d57e6 100644 --- a/src/mame/drivers/dwarfd.c +++ b/src/mame/drivers/dwarfd.c @@ -351,7 +351,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(dwarfd); UINT32 screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(dwarfd_interrupt); void drawCrt( bitmap_rgb32 &bitmap,const rectangle &cliprect ); @@ -837,7 +837,7 @@ void dwarfd_state::drawCrt( bitmap_rgb32 &bitmap,const rectangle &cliprect ) else b = 1; } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile + (m_bank + bank2) * 128, 0, 0, 0, @@ -849,7 +849,7 @@ void dwarfd_state::drawCrt( bitmap_rgb32 &bitmap,const rectangle &cliprect ) UINT32 dwarfd_state::screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); drawCrt(bitmap, cliprect); return 0; } @@ -978,7 +978,7 @@ static GFXDECODE_START( dwarfd ) GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout3, 0, 16 ) GFXDECODE_END -void dwarfd_state::palette_init() +PALETTE_INIT_MEMBER(dwarfd_state, dwarfd) { int i; @@ -989,12 +989,12 @@ void dwarfd_state::palette_init() int b = machine().rand()|0x80; if (i == 0) r = g = b = 0; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } - palette_set_color(machine(), 8, rgb_t(255, 255, 0)); - palette_set_color(machine(), 12, rgb_t(127, 127, 255)); - palette_set_color(machine(), 4, rgb_t(0, 255, 0)); - palette_set_color(machine(), 6, rgb_t(255, 0, 0)); + palette.set_pen_color(8, rgb_t(255, 255, 0)); + palette.set_pen_color(12, rgb_t(127, 127, 255)); + palette.set_pen_color(4, rgb_t(0, 255, 0)); + palette.set_pen_color(6, rgb_t(255, 0, 0)); } static const ay8910_interface ay8910_config = @@ -1070,8 +1070,8 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state ) MCFG_SCREEN_UPDATE_DRIVER(dwarfd_state, screen_update_dwarfd) MCFG_GFXDECODE_ADD("gfxdecode", dwarfd) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(dwarfd_state, dwarfd) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8910, 1500000) diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c index 7f1c6efceef..ea4f774ec02 100644 --- a/src/mame/drivers/dynadice.c +++ b/src/mame/drivers/dynadice.c @@ -66,7 +66,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(dynadice); UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -225,11 +225,11 @@ UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind1 return 0; } -void dynadice_state::palette_init() +PALETTE_INIT_MEMBER(dynadice_state, dynadice) { 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 dynadice_state::machine_start() @@ -265,8 +265,8 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state ) MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update_dynadice) MCFG_GFXDECODE_ADD("gfxdecode", dynadice) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(dynadice_state, dynadice) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 9c67fd4bab1..1543e389d55 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -325,7 +325,7 @@ WRITE8_MEMBER(dynax_state::hnoridur_palette_w) int r = BITSWAP8((x >> 0) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4); int g = BITSWAP8((x >> 5) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4); int b = BITSWAP8((x >> 10) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4); - palette_set_color_rgb(machine(), 256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -358,7 +358,7 @@ WRITE8_MEMBER(dynax_state::yarunara_palette_w) int r = br & 0x1f; int g = bg & 0x1f; int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5); - palette_set_color_rgb(machine(), 256 * m_palbank + ((offset & 0x0f) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(256 * m_palbank + ((offset & 0x0f) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -385,7 +385,7 @@ WRITE8_MEMBER(dynax_state::nanajign_palette_w) int r = br & 0x1f; int g = bg & 0x1f; int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5); - palette_set_color_rgb(machine(), 256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -1211,7 +1211,7 @@ WRITE8_MEMBER(dynax_state::tenkai_palette_w) int r = br & 0x1f; int g = bg & 0x1f; int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5); - palette_set_color_rgb(machine(), 256 * m_palbank + ((offset & 0xf) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(256 * m_palbank + ((offset & 0xf) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -4103,9 +4103,9 @@ static MACHINE_CONFIG_START( hanamai, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16+8, 255-8) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hanamai) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette + MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette MCFG_VIDEO_START_OVERRIDE(dynax_state,hanamai) /* sound hardware */ @@ -4161,7 +4161,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur) - MCFG_PALETTE_LENGTH(16*256) + MCFG_PALETTE_ADD("palette", 16*256) MCFG_VIDEO_START_OVERRIDE(dynax_state,hnoridur) @@ -4206,7 +4206,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur) - MCFG_PALETTE_LENGTH(16*256) + MCFG_PALETTE_ADD("palette", 16*256) MCFG_VIDEO_START_OVERRIDE(dynax_state,hnoridur) @@ -4261,9 +4261,9 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_sprtmtch) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette + MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette MCFG_VIDEO_START_OVERRIDE(dynax_state,sprtmtch) /* sound hardware */ @@ -4304,9 +4304,9 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette + MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette MCFG_VIDEO_START_OVERRIDE(dynax_state,mjdialq2) /* sound hardware */ @@ -4454,7 +4454,8 @@ static MACHINE_CONFIG_START( jantouki, dynax_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette MCFG_DEFAULT_LAYOUT(layout_dualhuov) MCFG_SCREEN_ADD("top", RASTER) @@ -4471,7 +4472,6 @@ static MACHINE_CONFIG_START( jantouki, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_bottom) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki) /* sound hardware */ @@ -4497,7 +4497,8 @@ static MACHINE_CONFIG_START( jantouki, dynax_state ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( janyuki, jantouki ) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,janyuki) // static palette + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(dynax_state,janyuki) // static palette MACHINE_CONFIG_END @@ -4660,7 +4661,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(4, 512-1, 4, 255-8-4) // hide first 4 horizontal pixels (see scroll of gal 4 in test mode) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur) - MCFG_PALETTE_LENGTH(16*256) + MCFG_PALETTE_ADD("palette", 16*256) MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn) @@ -4679,8 +4680,9 @@ static MACHINE_CONFIG_START( tenkai, dynax_state ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( majrjhdx, tenkai ) - MCFG_PALETTE_LENGTH(512) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette MACHINE_CONFIG_END /*************************************************************************** @@ -4727,8 +4729,8 @@ static MACHINE_CONFIG_START( gekisha, dynax_state ) MCFG_SCREEN_VISIBLE_AREA(2, 256-1, 16, 256-1) MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2) - MCFG_PALETTE_LENGTH(512) - MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette MCFG_VIDEO_START_OVERRIDE(dynax_state,mjdialq2) /* sound hardware */ diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c index 91b79f0d61a..041c4176969 100644 --- a/src/mame/drivers/dynduke.c +++ b/src/mame/drivers/dynduke.c @@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", dynduke) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) // sound hardware diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c index fbb22c082b1..289bb88ac64 100644 --- a/src/mame/drivers/egghunt.c +++ b/src/mame/drivers/egghunt.c @@ -121,7 +121,7 @@ void egghunt_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect sx = 496 - sx; sy = 240 - sy; } - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipscreen,flipscreen, @@ -227,7 +227,7 @@ WRITE8_MEMBER(egghunt_state::egghunt_okibanking_w) static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8, egghunt_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xc000, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(egghunt_atram_w) AM_SHARE("atram") AM_RANGE(0xd000, 0xdfff) AM_READWRITE(egghunt_bgram_r, egghunt_bgram_w) AM_RANGE(0xe000, 0xffff) AM_RAM @@ -429,8 +429,9 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state ) MCFG_SCREEN_UPDATE_DRIVER(egghunt_state, screen_update_egghunt) MCFG_GFXDECODE_ADD("gfxdecode", egghunt) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c index 8ccf2ede085..4c166abbdbd 100644 --- a/src/mame/drivers/eolith.c +++ b/src/mame/drivers/eolith.c @@ -592,8 +592,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_VIDEO_START_OVERRIDE(eolith_state,eolith) diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c index d9edbc83801..ce511d71275 100644 --- a/src/mame/drivers/eolith16.c +++ b/src/mame/drivers/eolith16.c @@ -158,7 +158,7 @@ PALETTE_INIT_MEMBER(eolith16_state,eolith16) bit1 = (c >> 7) & 0x01; b = 0x55 * bit0 + 0xaa * bit1; - palette_set_color(machine(),c,rgb_t(r,g,b)); + palette.set_pen_color(c,rgb_t(r,g,b)); } } @@ -179,9 +179,9 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199) MCFG_SCREEN_UPDATE_DRIVER(eolith16_state, screen_update_eolith16) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_INIT_OVERRIDE(eolith16_state,eolith16) + MCFG_PALETTE_INIT_OWNER(eolith16_state,eolith16) MCFG_VIDEO_START_OVERRIDE(eolith16_state,eolith16) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c index a528a039829..05d665cd801 100644 --- a/src/mame/drivers/eprom.c +++ b/src/mame/drivers/eprom.c @@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( eprom, eprom_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", eprom) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, eprom_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, eprom_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) @@ -439,7 +439,7 @@ static MACHINE_CONFIG_START( klaxp, eprom_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", eprom) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, eprom_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, eprom_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) @@ -479,7 +479,7 @@ static MACHINE_CONFIG_START( guts, eprom_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", guts) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, eprom_state, guts_get_playfield_tile_info, 8,8, SCAN_COLS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, eprom_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index 832bd34fdfa..caa73799646 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -1240,8 +1240,8 @@ static MACHINE_CONFIG_START( equites, equites_state ) MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_equites) MCFG_GFXDECODE_ADD("gfxdecode", equites) - MCFG_PALETTE_LENGTH(0x180) - MCFG_PALETTE_INIT_OVERRIDE(equites_state,equites) + MCFG_PALETTE_ADD("palette", 0x180) + MCFG_PALETTE_INIT_OWNER(equites_state,equites) MCFG_VIDEO_START_OVERRIDE(equites_state,equites) MCFG_MACHINE_START_OVERRIDE(equites_state,equites) @@ -1277,8 +1277,8 @@ static MACHINE_CONFIG_START( splndrbt, equites_state ) MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_splndrbt) MCFG_GFXDECODE_ADD("gfxdecode", splndrbt) - MCFG_PALETTE_LENGTH(0x280) - MCFG_PALETTE_INIT_OVERRIDE(equites_state,splndrbt) + MCFG_PALETTE_ADD("palette", 0x280) + MCFG_PALETTE_INIT_OWNER(equites_state,splndrbt) MCFG_VIDEO_START_OVERRIDE(equites_state,splndrbt) MCFG_MACHINE_START_OVERRIDE(equites_state,equites) diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c index ea7a1140014..75ad4014c0a 100644 --- a/src/mame/drivers/ertictac.c +++ b/src/mame/drivers/ertictac.c @@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( ertictac, ertictac_state ) MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 1024-1) MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac0") diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c index aaeaa179bcb..37b167fa9d8 100644 --- a/src/mame/drivers/esd16.c +++ b/src/mame/drivers/esd16.c @@ -146,7 +146,7 @@ WRITE16_MEMBER(esd16_state::esd_eeprom_w) AM_RANGE(_BASE + 0xc, _BASE + 0xd) AM_WRITENOP \ AM_RANGE(_BASE + 0xe, _BASE + 0xf) AM_WRITEONLY AM_SHARE("head_layersize") #define ESD16_PALETTE_AREA( _BASE ) \ - AM_RANGE(_BASE + 0x000, _BASE + 0xfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(_BASE + 0x000, _BASE + 0xfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") #define ESD16_SPRITE_AREA( _BASE ) \ AM_RANGE(_BASE + 0x000, _BASE + 0x7ff) AM_WRITEONLY AM_SHARE("spriteram") AM_MIRROR(0x000800) #define ESD16_VRAM_AREA( _BASE ) \ @@ -627,9 +627,11 @@ static MACHINE_CONFIG_START( esd16, esd16_state ) decospr_device::set_pri_callback(*device, esd16_state::hedpanic_pri_callback); decospr_device::set_flipallx(*device, 1); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", esd16) - MCFG_PALETTE_LENGTH(0x1000/2) + MCFG_PALETTE_ADD("palette", 0x1000/2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c index 391e4309b6b..705c88b5bc2 100644 --- a/src/mame/drivers/esh.c +++ b/src/mame/drivers/esh.c @@ -55,7 +55,7 @@ public: DECLARE_WRITE8_MEMBER(nmi_line_w); DECLARE_DRIVER_INIT(esh); virtual void machine_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(esh); UINT32 screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_callback_esh); required_device<cpu_device> m_maincpu; @@ -90,7 +90,7 @@ UINT32 esh_state::screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, //int blinkLine = (m_tile_control_ram[current_screen_character] & 0x40) >> 6; //int blinkChar = (m_tile_control_ram[current_screen_character] & 0x80) >> 7; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, m_tile_ram[current_screen_character] + (0x100 * tileOffs), palIndex, 0, 0, charx*8, chary*8, 0); @@ -238,13 +238,13 @@ static INPUT_PORTS_START( esh ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -void esh_state::palette_init() +PALETTE_INIT_MEMBER(esh_state, esh) { const UINT8 *color_prom = memregion("proms")->base(); int i; /* Oddly enough, the top 4 bits of each byte is 0 */ - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int r,g,b; int bit0,bit1,bit2; @@ -269,11 +269,11 @@ void esh_state::palette_init() bit2 = (color_prom[i+0x100] >> 6) & 0x01; b = (0x97 * bit2) + (0x47 * bit1) + (0x21 * bit0); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } /* make color 0 transparent */ - palette_set_color(machine(), 0, rgb_t(0,0,0,0)); + palette.set_pen_color(0, rgb_t(0,0,0,0)); } static const gfx_layout esh_gfx_layout = @@ -333,7 +333,8 @@ static MACHINE_CONFIG_START( esh, esh_state ) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(esh_state, esh) MCFG_GFXDECODE_ADD("gfxdecode", esh) diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c index da47b8c1b65..310e6bc30bc 100644 --- a/src/mame/drivers/espial.c +++ b/src/mame/drivers/espial.c @@ -332,8 +332,8 @@ static MACHINE_CONFIG_START( espial, espial_state ) MCFG_SCREEN_UPDATE_DRIVER(espial_state, screen_update_espial) MCFG_GFXDECODE_ADD("gfxdecode", espial) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(espial_state, espial) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 6ca896618be..975b805a49b 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -61,7 +61,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info_bg); TILE_GET_INFO_MEMBER(get_tile_info_fg); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(ettrivia); UINT32 screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(ettrivia_interrupt); inline void get_tile_info(tile_data &tileinfo, int tile_index, UINT8 *vidram, int gfx_code); @@ -221,7 +221,7 @@ TILE_GET_INFO_MEMBER(ettrivia_state::get_tile_info_fg) get_tile_info(tileinfo, tile_index, m_fg_videoram, 1); } -void ettrivia_state::palette_init() +PALETTE_INIT_MEMBER(ettrivia_state, ettrivia) { const UINT8 *color_prom = memregion("proms")->base(); static const int resistances[2] = { 270, 130 }; @@ -234,7 +234,7 @@ void ettrivia_state::palette_init() 2, resistances, weights, 0, 0, 0, 0, 0, 0, 0); - for (i = 0;i < machine().total_colors(); i++) + for (i = 0;i < palette.entries(); i++) { int bit0, bit1; int r, g, b; @@ -254,7 +254,7 @@ void ettrivia_state::palette_init() bit1 = (color_prom[i+0x100] >> 1) & 0x01; b = combine_2_weights(weights, bit0, bit1); - palette_set_color(machine(), BITSWAP8(i,5,7,6,2,1,0,4,3), rgb_t(r, g, b)); + palette.set_pen_color(BITSWAP8(i,5,7,6,2,1,0,4,3), rgb_t(r, g, b)); } } @@ -319,8 +319,8 @@ static MACHINE_CONFIG_START( ettrivia, ettrivia_state ) MCFG_SCREEN_UPDATE_DRIVER(ettrivia_state, screen_update_ettrivia) MCFG_GFXDECODE_ADD("gfxdecode", ettrivia) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(ettrivia_state, ettrivia) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c index 1f586d4e782..1690d918b5d 100644 --- a/src/mame/drivers/exedexes.c +++ b/src/mame/drivers/exedexes.c @@ -235,8 +235,9 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", exedexes) - MCFG_PALETTE_LENGTH(64*4+64*4+16*16+16*16) - + + MCFG_PALETTE_ADD("palette", 64*4+64*4+16*16+16*16) + MCFG_PALETTE_INIT_OWNER(exedexes_state, exedexes) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c index 3816735a5c4..66c80903dcc 100644 --- a/src/mame/drivers/exerion.c +++ b/src/mame/drivers/exerion.c @@ -420,8 +420,8 @@ static MACHINE_CONFIG_START( exerion, exerion_state ) MCFG_SCREEN_UPDATE_DRIVER(exerion_state, screen_update_exerion) MCFG_GFXDECODE_ADD("gfxdecode", exerion) - MCFG_PALETTE_LENGTH(256*3) - + MCFG_PALETTE_ADD("palette", 256*3) + MCFG_PALETTE_INIT_OWNER(exerion_state, exerion) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c index 900a7b2043f..19c11aefb00 100644 --- a/src/mame/drivers/exidy.c +++ b/src/mame/drivers/exidy.c @@ -812,7 +812,7 @@ static MACHINE_CONFIG_START( base, exidy_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_GFXDECODE_ADD("gfxdecode", exidy) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(EXIDY_PIXEL_CLOCK, EXIDY_HTOTAL, EXIDY_HBEND, EXIDY_HBSTART, EXIDY_VTOTAL, EXIDY_VBEND, EXIDY_VBSTART) diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c index e7939d3fa42..f506c1a79b0 100644 --- a/src/mame/drivers/expro02.c +++ b/src/mame/drivers/expro02.c @@ -181,14 +181,14 @@ public: DECLARE_DRIVER_INIT(galsnew); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(expro02); UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(expro02_scanline); required_device<cpu_device> m_maincpu; }; -void expro02_state::palette_init() +PALETTE_INIT_MEMBER(expro02_state, expro02) { int i; @@ -196,7 +196,7 @@ void expro02_state::palette_init() /* initialize 555 RGB lookup */ for (i = 0; i < 32768; i++) - palette_set_color_rgb(machine(),2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0)); + palette.set_pen_color(2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0)); } UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -418,7 +418,7 @@ WRITE16_MEMBER(expro02_state::galsnew_6295_bankswitch_w) WRITE16_MEMBER(expro02_state::galsnew_paletteram_w) { data = COMBINE_DATA(&m_generic_paletteram_16[offset]); - palette_set_color_rgb(machine(),offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1)); + m_palette->set_pen_color(offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1)); } @@ -560,7 +560,8 @@ static MACHINE_CONFIG_START( galsnew, expro02_state ) MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew) MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit) - MCFG_PALETTE_LENGTH(2048 + 32768) + MCFG_PALETTE_ADD("palette", 2048 + 32768) + MCFG_PALETTE_INIT_OWNER(expro02_state, expro02) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c index 7e3cf4e649d..25e29e99e99 100644 --- a/src/mame/drivers/exprraid.c +++ b/src/mame/drivers/exprraid.c @@ -517,9 +517,7 @@ static MACHINE_CONFIG_START( exprraid, exprraid_state ) MCFG_SCREEN_UPDATE_DRIVER(exprraid_state, screen_update_exprraid) MCFG_GFXDECODE_ADD("gfxdecode", exprraid) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c index d3f771a0581..74c9187c379 100644 --- a/src/mame/drivers/exterm.c +++ b/src/mame/drivers/exterm.c @@ -283,7 +283,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16, exterm_state ) AM_RANGE(0x01500000, 0x0153ffff) AM_MIRROR(0xfc000000) AM_WRITE(exterm_output_port_0_w) AM_RANGE(0x01580000, 0x015bffff) AM_MIRROR(0xfc000000) AM_WRITE(sound_latch_w) AM_RANGE(0x015c0000, 0x015fffff) AM_MIRROR(0xfc000000) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x01800000, 0x01807fff) AM_MIRROR(0xfc7f8000) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x01800000, 0x01807fff) AM_MIRROR(0xfc7f8000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x02800000, 0x02807fff) AM_MIRROR(0xfc7f8000) AM_RAM AM_SHARE("nvram") AM_RANGE(0x03000000, 0x03ffffff) AM_MIRROR(0xfc000000) AM_ROM AM_REGION("user1", 0) ADDRESS_MAP_END @@ -458,7 +458,9 @@ static MACHINE_CONFIG_START( exterm, exterm_state ) MCFG_TIMER_DRIVER_ADD("snd_nmi_timer", exterm_state, master_sound_nmi_callback) /* video hardware */ - MCFG_PALETTE_LENGTH(2048+32768) + MCFG_PALETTE_ADD("palette", 2048+32768) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + MCFG_PALETTE_INIT_OWNER(exterm_state, exterm) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(40000000/8, 318, 0, 256, 264, 0, 240) diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c index 4bde78db4ce..ecc6d286139 100644 --- a/src/mame/drivers/exzisus.c +++ b/src/mame/drivers/exzisus.c @@ -287,9 +287,7 @@ static MACHINE_CONFIG_START( exzisus, exzisus_state ) MCFG_SCREEN_UPDATE_DRIVER(exzisus_state, screen_update_exzisus) MCFG_GFXDECODE_ADD("gfxdecode", exzisus) - MCFG_PALETTE_LENGTH(1024) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 1024) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c index 1b693821c6a..600d872ad48 100644 --- a/src/mame/drivers/f-32.c +++ b/src/mame/drivers/f-32.c @@ -149,8 +149,7 @@ static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223) MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index 480e2f01e37..ced59e427ea 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -102,7 +102,7 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1 AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram") // DUAL RAM AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_SHARE("fgvideoram") // CHARACTER - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // PALETTE + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // PALETTE AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp_gfxctrl_w) // AM_RANGE(0xfff002, 0xfff003) analog wheel? @@ -124,7 +124,7 @@ static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1 AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram") // DUAL RAM AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_SHARE("fgvideoram") // CHARACTER - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // PALETTE + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // PALETTE AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE(f1gp2_gfxctrl_w) // AM_RANGE(0xfff002, 0xfff003) analog wheel? AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1") @@ -197,7 +197,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state ) AM_RANGE(0xff8000, 0xffbfff) AM_RAM AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram") AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_SHARE("fgvideoram") - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1") AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2") @@ -462,19 +462,22 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state ) MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp) MCFG_GFXDECODE_ADD("gfxdecode", f1gp) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( f1gp_state, f1gp_old_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(1) MCFG_VSYSTEM_SPR2_SET_PRITYPE(2) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( f1gp_state, f1gp_ol2_tile_callback ) MCFG_VSYSTEM_SPR2_SET_GFXREGION(2) MCFG_VSYSTEM_SPR2_SET_PRITYPE(2) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gp) @@ -517,7 +520,8 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state ) MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gpb) MCFG_GFXDECODE_ADD("gfxdecode", f1gp) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gpb) @@ -547,6 +551,7 @@ static MACHINE_CONFIG_DERIVED( f1gp2, f1gp ) MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( f1gp_state, f1gp2_tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(1) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_DEVICE_REMOVE("k053936") MCFG_K053936_ADD("k053936", f1gp2_k053936_intf) diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c index ea2c058ead0..e35eab57dd2 100644 --- a/src/mame/drivers/famibox.c +++ b/src/mame/drivers/famibox.c @@ -116,7 +116,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(famibox); UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(famicombox_attract_timer_callback); TIMER_CALLBACK_MEMBER(famicombox_gameplay_timer_callback); @@ -516,9 +516,9 @@ static const nesapu_interface famibox_interface_1 = "maincpu" }; -void famibox_state::palette_init() +PALETTE_INIT_MEMBER(famibox_state, famibox) { - m_ppu->init_palette(machine(), 0); + m_ppu->init_palette(palette, 0); } void famibox_state::ppu_irq(int *ppu_regs) @@ -592,7 +592,8 @@ static MACHINE_CONFIG_START( famibox, famibox_state ) MCFG_SCREEN_UPDATE_DRIVER(famibox_state, screen_update_famibox) MCFG_GFXDECODE_ADD("gfxdecode", famibox) - MCFG_PALETTE_LENGTH(8*4*16) + MCFG_PALETTE_ADD("palette", 8*4*16) + MCFG_PALETTE_INIT_OWNER(famibox_state, famibox) MCFG_PPU2C04_ADD("ppu", ppu_interface) diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index d71641ad8a2..08591b89032 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -123,7 +123,7 @@ static ADDRESS_MAP_START( fantland_map, AS_PROGRAM, 16, fantland_state ) AM_RANGE( 0x00000, 0x07fff ) AM_RAM AM_RANGE( 0x08000, 0x7ffff ) AM_ROM - AM_RANGE( 0xa2000, 0xa21ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w ) AM_SHARE("paletteram") + AM_RANGE( 0xa2000, 0xa21ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0xa3000, 0xa3001 ) AM_READ_PORT("a3000") AM_WRITE(fantland_nmi_enable_16_w ) AM_RANGE( 0xa3002, 0xa3003 ) AM_READ_PORT("a3002") AM_WRITE(fantland_soundlatch_16_w ) @@ -143,7 +143,7 @@ static ADDRESS_MAP_START( galaxygn_map, AS_PROGRAM, 8, fantland_state ) AM_RANGE( 0x00000, 0x07fff ) AM_RAM AM_RANGE( 0x10000, 0x2ffff ) AM_ROM - AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram") + AM_RANGE( 0x52000, 0x521ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x53000, 0x53000 ) AM_READ_PORT("P1") AM_WRITE(fantland_nmi_enable_w ) AM_RANGE( 0x53001, 0x53001 ) AM_READ_PORT("P2") @@ -235,7 +235,7 @@ static ADDRESS_MAP_START( borntofi_map, AS_PROGRAM, 8, fantland_state ) AM_RANGE( 0x00000, 0x07fff ) AM_RAM AM_RANGE( 0x10000, 0x2ffff ) AM_ROM - AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram") + AM_RANGE( 0x52000, 0x521ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x53000, 0x53001 ) AM_READWRITE(borntofi_inputs_r, borntofi_nmi_enable_w ) AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT( "DSW" ) AM_WRITE(fantland_soundlatch_w ) AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT( "Controls" ) @@ -264,7 +264,7 @@ static ADDRESS_MAP_START( wheelrun_map, AS_PROGRAM, 8, fantland_state ) AM_RANGE(0x30000, 0x3ffff) AM_ROM AM_RANGE(0x70000, 0x7ffff) AM_ROM - AM_RANGE(0x52000, 0x521ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE( "paletteram" ) + AM_RANGE(0x52000, 0x521ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x53000, 0x53000) AM_READ_PORT( "53000" ) AM_WRITE(borntofi_nmi_enable_w ) AM_RANGE(0x53001, 0x53001) AM_READ_PORT( "53001" ) @@ -861,8 +861,8 @@ static MACHINE_CONFIG_START( fantland, fantland_state ) MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE_ADD("gfxdecode", fantland) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -905,7 +905,8 @@ static MACHINE_CONFIG_START( galaxygn, fantland_state ) MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE_ADD("gfxdecode", fantland) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1003,7 +1004,8 @@ static MACHINE_CONFIG_START( borntofi, fantland_state ) MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE_ADD("gfxdecode", fantland) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1038,7 +1040,8 @@ static MACHINE_CONFIG_START( wheelrun, fantland_state ) MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland) MCFG_GFXDECODE_ADD("gfxdecode", fantland) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c index 25f8f88a2bf..e120a7ec8be 100644 --- a/src/mame/drivers/fastfred.c +++ b/src/mame/drivers/fastfred.c @@ -654,9 +654,9 @@ static MACHINE_CONFIG_START( fastfred, fastfred_state ) MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_fastfred) MCFG_GFXDECODE_ADD("gfxdecode", fastfred) - MCFG_PALETTE_LENGTH(32*8) + MCFG_PALETTE_ADD("palette", 32*8) - MCFG_PALETTE_INIT_OVERRIDE(fastfred_state,fastfred) + MCFG_PALETTE_INIT_OWNER(fastfred_state,fastfred) MCFG_VIDEO_START_OVERRIDE(fastfred_state,fastfred) /* sound hardware */ @@ -693,7 +693,8 @@ static MACHINE_CONFIG_DERIVED( imago, fastfred ) MCFG_MACHINE_START_OVERRIDE(fastfred_state,imago) /* video hardware */ - MCFG_PALETTE_LENGTH(256+64+2) /* 256 for characters, 64 for the stars and 2 for the web */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256+64+2) /* 256 for characters, 64 for the stars and 2 for the web */ MCFG_GFXDECODE_MODIFY("gfxdecode", imago) MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago) diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c index ae102fb23a1..ac5446b1102 100644 --- a/src/mame/drivers/fastlane.c +++ b/src/mame/drivers/fastlane.c @@ -218,9 +218,11 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state ) MCFG_SCREEN_UPDATE_DRIVER(fastlane_state, screen_update_fastlane) MCFG_GFXDECODE_ADD("gfxdecode", fastlane) - MCFG_PALETTE_LENGTH(1024*16) + MCFG_PALETTE_ADD("palette", 1024*16) + MCFG_PALETTE_INIT_OWNER(fastlane_state, fastlane) MCFG_K007121_ADD("k007121") + MCFG_K007121_PALETTE("palette") MCFG_K051733_ADD("k051733") /* sound hardware */ diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c index 55a590ddbfc..d4a3eee122e 100644 --- a/src/mame/drivers/fcombat.c +++ b/src/mame/drivers/fcombat.c @@ -295,8 +295,8 @@ static MACHINE_CONFIG_START( fcombat, fcombat_state ) MCFG_SCREEN_UPDATE_DRIVER(fcombat_state, screen_update_fcombat) MCFG_GFXDECODE_ADD("gfxdecode", fcombat) - MCFG_PALETTE_LENGTH(256*3) - + MCFG_PALETTE_ADD("palette", 256*3) + MCFG_PALETTE_INIT_OWNER(fcombat_state, fcombat) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c index cc3dac07410..cb68d823707 100644 --- a/src/mame/drivers/fcrash.c +++ b/src/mame/drivers/fcrash.c @@ -513,7 +513,7 @@ void cps_state::fcrash_render_sprites( screen_device &screen, bitmap_ind16 &bitm ypos = 256 - ypos - 16; xpos = xpos + m_sprite_x_offset + 49; - m_gfxdecode->gfx(2)->prio_transpen(bitmap,cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 0x02, 15); + m_gfxdecode->gfx(2)->prio_transpen(m_palette,bitmap,cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 0x02, 15); } } } @@ -571,7 +571,7 @@ void cps_state::fcrash_build_palette() g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d; b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d; - palette_set_color (machine(), offset, rgb_t(r, g, b)); + m_palette->set_pen_color (offset, rgb_t(r, g, b)); } } @@ -1490,7 +1490,7 @@ static MACHINE_CONFIG_START( fcrash, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) @@ -1548,7 +1548,7 @@ static MACHINE_CONFIG_START( kodb, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) @@ -1588,7 +1588,7 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) @@ -1631,7 +1631,7 @@ static MACHINE_CONFIG_START( knightsb, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) @@ -1970,7 +1970,7 @@ static MACHINE_CONFIG_START( dinopic, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) @@ -2122,7 +2122,7 @@ static MACHINE_CONFIG_START( sgyxz, cps_state ) MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") @@ -2215,7 +2215,7 @@ static MACHINE_CONFIG_START( punipic, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) @@ -2401,7 +2401,7 @@ static MACHINE_CONFIG_START( sf2m1, cps_state ) MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) /* sound hardware */ @@ -2605,7 +2605,7 @@ static MACHINE_CONFIG_START( slampic, cps_state ) MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1) MCFG_GFXDECODE_ADD("gfxdecode", cps1) - MCFG_PALETTE_LENGTH(0xc00) + MCFG_PALETTE_ADD("palette", 0xc00) MCFG_VIDEO_START_OVERRIDE(cps_state,cps1) diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c index 0b6ed15238c..2617141d05d 100644 --- a/src/mame/drivers/feversoc.c +++ b/src/mame/drivers/feversoc.c @@ -102,7 +102,7 @@ UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind1 UINT32 *spriteram32 = m_spriteram; int offs,spr_offs,colour,sx,sy,h,w,dx,dy; - bitmap.fill(machine().pens[0], cliprect); //black pen + bitmap.fill(m_palette->pen(0), cliprect); //black pen for(offs=(0x2000/4)-2;offs>-1;offs-=2) { @@ -120,7 +120,7 @@ UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind1 for(dx=0;dx<w;dx++) for(dy=0;dy<h;dy++) - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,spr_offs++,colour,0,0,(sx+dx*16),(sy+dy*16),0x3f); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,spr_offs++,colour,0,0,(sx+dx*16),(sy+dy*16),0x3f); } return 0; @@ -135,13 +135,13 @@ WRITE32_MEMBER(feversoc_state::fs_paletteram_w) g = ((m_generic_paletteram_32[offset] & 0x03e00000)>>16) >> 2; b = ((m_generic_paletteram_32[offset] & 0x7c000000)>>16) >> 7; - palette_set_color(machine(),offset*2+0,rgb_t(r,g,b)); + m_palette->set_pen_color(offset*2+0,rgb_t(r,g,b)); r = (m_generic_paletteram_32[offset] & 0x001f) << 3; g = (m_generic_paletteram_32[offset] & 0x03e0) >> 2; b = (m_generic_paletteram_32[offset] & 0x7c00) >> 7; - palette_set_color(machine(),offset*2+1,rgb_t(r,g,b)); + m_palette->set_pen_color(offset*2+1,rgb_t(r,g,b)); } READ32_MEMBER(feversoc_state::in0_r) @@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state ) MCFG_SCREEN_UPDATE_DRIVER(feversoc_state, screen_update_feversoc) MCFG_GFXDECODE_ADD("gfxdecode", feversoc) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index e123d95ea03..ba22042dc75 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -44,7 +44,7 @@ int fgoal_state::intensity(int bits) } -void fgoal_state::palette_init() +PALETTE_INIT_MEMBER(fgoal_state, fgoal) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -54,17 +54,17 @@ void fgoal_state::palette_init() for (i = 0; i < 128; i++) { UINT8 color = color_prom[0x80 | i] & 63; - palette_set_color_rgb(machine(), i, intensity(color >> 4), intensity(color >> 2), intensity(color >> 0)); + palette.set_pen_color(i, intensity(color >> 4), intensity(color >> 2), intensity(color >> 0)); } for (i = 0; i < 8; i++) { - palette_set_color(machine(), 128 + 0*8 + i, rgb_t(0x2e,0x80,0x2e)); - palette_set_color(machine(), 128 + 1*8 + i, rgb_t(0x2e,0x2e,0x2e)); + palette.set_pen_color(128 + 0*8 + i, rgb_t(0x2e,0x80,0x2e)); + palette.set_pen_color(128 + 1*8 + i, rgb_t(0x2e,0x2e,0x2e)); } /* ball is a fixed color */ - palette_set_color_rgb(machine(), 128 + 16, intensity(0x38 >> 4), intensity(0x38 >> 2), intensity(0x38 >> 0)); + palette.set_pen_color(128 + 16, intensity(0x38 >> 4), intensity(0x38 >> 2), intensity(0x38 >> 0)); } @@ -378,8 +378,8 @@ static MACHINE_CONFIG_START( fgoal, fgoal_state ) MCFG_SCREEN_UPDATE_DRIVER(fgoal_state, screen_update_fgoal) MCFG_GFXDECODE_ADD("gfxdecode", fgoal) - MCFG_PALETTE_LENGTH(128 + 16 + 1) - + MCFG_PALETTE_ADD("palette", 128 + 16 + 1) + MCFG_PALETTE_INIT_OWNER(fgoal_state, fgoal) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c index bc3e806bd70..6c96ad091d2 100644 --- a/src/mame/drivers/finalizr.c +++ b/src/mame/drivers/finalizr.c @@ -271,8 +271,8 @@ static MACHINE_CONFIG_START( finalizr, finalizr_state ) MCFG_SCREEN_UPDATE_DRIVER(finalizr_state, screen_update_finalizr) MCFG_GFXDECODE_ADD("gfxdecode", finalizr) - MCFG_PALETTE_LENGTH(2*16*16) - + MCFG_PALETTE_ADD("palette", 2*16*16) + MCFG_PALETTE_INIT_OWNER(finalizr_state, finalizr) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c index 9b1c43c4e87..079decc967e 100644 --- a/src/mame/drivers/firebeat.c +++ b/src/mame/drivers/firebeat.c @@ -1762,8 +1762,7 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state ) MCFG_DEVICE_CARD_MACHINE_CONFIG( "cdrom", cdrom_config ) /* video hardware */ - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -1810,8 +1809,7 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state ) MCFG_DEVICE_CARD_MACHINE_CONFIG( "cdrom", cdrom_config ) /* video hardware */ - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index a2f24f98a14..dd2d9f9a418 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -229,7 +229,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 int sprite; int gfxtop = screen.visible_area().min_y; - bitmap.fill(palette_get_color(machine(), 256), cliprect); + bitmap.fill(m_palette->pen_color(256), cliprect); for( sprite = 0; sprite < 32; sprite++ ) { @@ -249,7 +249,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 int flipx = flags & 0x20; int code = sprite_data[ 15 - row ] + ( 256 * ( ( flags >> 6 ) & 3 ) ); - m_gfxdecode->gfx( 1 )->transpen(bitmap,cliprect, code, color, flipx, flipy, x + 8, gfxtop + 500 - y - ( row * 16 ), 0 ); + m_gfxdecode->gfx( 1 )->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, x + 8, gfxtop + 500 - y - ( row * 16 ), 0 ); } } } @@ -273,7 +273,7 @@ void firefox_state::set_rgba( int start, int index, unsigned char *palette_ram ) int b = palette_ram[ index + 512 ]; int a = ( b & 3 ) * 0x55; - palette_set_color( machine(), start + index, rgb_t( a, r, g, b ) ); + m_palette->set_pen_color( start + index, rgb_t( a, r, g, b ) ); } WRITE8_MEMBER(firefox_state::tile_palette_w) @@ -722,7 +722,7 @@ static MACHINE_CONFIG_START( firefox, firefox_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", firefox) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_LASERDISC_22VP931_ADD("laserdisc") diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c index ce99197bd41..f11e7ab1316 100644 --- a/src/mame/drivers/firetrap.c +++ b/src/mame/drivers/firetrap.c @@ -651,7 +651,8 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state ) MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap) MCFG_GFXDECODE_ADD("gfxdecode", firetrap) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(firetrap_state, firetrap) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -686,7 +687,8 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state ) MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap) MCFG_GFXDECODE_ADD("gfxdecode", firetrap) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(firetrap_state, firetrap) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index 0e91959dbe1..d41ba2042eb 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -866,7 +866,9 @@ static MACHINE_CONFIG_START( firetrk, firetrk_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_firetrk) - MCFG_PALETTE_LENGTH(28) + MCFG_PALETTE_ADD("palette", 28) + MCFG_PALETTE_INIT_OWNER(firetrk_state, firetrk) + MCFG_GFXDECODE_ADD("gfxdecode", firetrk) /* sound hardware */ @@ -890,7 +892,10 @@ static MACHINE_CONFIG_DERIVED( superbug, firetrk ) MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug) MCFG_GFXDECODE_MODIFY("gfxdecode", superbug) - MCFG_PALETTE_LENGTH(28) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 28) + MCFG_PALETTE_INIT_OWNER(firetrk_state, firetrk) /* sound hardware */ MCFG_SOUND_REPLACE("discrete", DISCRETE, 0) @@ -912,8 +917,9 @@ static MACHINE_CONFIG_DERIVED( montecar, firetrk ) MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar) MCFG_GFXDECODE_MODIFY("gfxdecode", montecar) - MCFG_PALETTE_INIT_OVERRIDE(firetrk_state,montecar) - MCFG_PALETTE_LENGTH(46) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 46) + MCFG_PALETTE_INIT_OWNER(firetrk_state,montecar) /* sound hardware */ MCFG_SOUND_REPLACE("discrete", DISCRETE, 0) diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c index f40eed9a69b..590b0e0d585 100644 --- a/src/mame/drivers/fitfight.c +++ b/src/mame/drivers/fitfight.c @@ -169,7 +169,7 @@ static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16, fitfight_state ) AM_RANGE(0xb14000, 0xb17fff) AM_RAM //used by histryma @0x0000b25a,b270 AM_RANGE(0xb18000, 0xb1bfff) AM_RAM //used by histryma @0x0000b25a,b270,b286 - AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xc00000, 0xc00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("spriteram") @@ -201,7 +201,7 @@ static ADDRESS_MAP_START( bbprot_main_map, AS_PROGRAM, 16, fitfight_state ) AM_RANGE(0xb0c000, 0xb0ffff) AM_RAM_WRITE(fof_txt_tileram_w) AM_SHARE("fof_txt_tileram") AM_RANGE(0xc00000, 0xc00fff) AM_READONLY - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("spriteram") @@ -744,7 +744,8 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state ) MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -769,7 +770,8 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state ) MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c index cf9ad949fee..5d69522a933 100644 --- a/src/mame/drivers/flipjack.c +++ b/src/mame/drivers/flipjack.c @@ -126,7 +126,7 @@ public: DECLARE_READ8_MEMBER(flipjack_soundlatch_r); DECLARE_WRITE8_MEMBER(flipjack_portc_w); virtual void machine_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(flipjack); UINT32 screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); }; @@ -137,19 +137,19 @@ public: ***************************************************************************/ -void flipjack_state::palette_init() +PALETTE_INIT_MEMBER(flipjack_state, flipjack) { // from prom const UINT8 *color_prom = memregion("proms")->base(); for (int i = 0; i < 0x40; i++) { - palette_set_color_rgb(machine(), 2*i+1, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); - palette_set_color_rgb(machine(), 2*i+0, pal1bit(color_prom[i] >> 1), pal1bit(color_prom[i] >> 2), pal1bit(color_prom[i] >> 0)); + palette.set_pen_color(2*i+1, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + palette.set_pen_color(2*i+0, pal1bit(color_prom[i] >> 1), pal1bit(color_prom[i] >> 2), pal1bit(color_prom[i] >> 0)); } // standard 3bpp for blitter for (int i = 0; i < 8; i++) - palette_set_color_rgb(machine(), i+0x80, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); + palette.set_pen_color(i+0x80, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); } @@ -157,7 +157,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3 { int x,y,count; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); // draw playfield if (m_layer & 2) @@ -184,7 +184,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3 color = ((pen_r >> (7-xi)) & 1)<<0; color|= ((pen_g >> (7-xi)) & 1)<<1; color|= ((pen_b >> (7-xi)) & 1)<<2; - bitmap.pix32(y, x+xi) = machine().pens[color+0x80]; + bitmap.pix32(y, x+xi) = m_palette->pen(color+0x80); } } @@ -202,7 +202,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3 int tile = m_bank << 8 | m_vram[x+y*0x100]; int color = m_cram[x+y*0x100] & 0x3f; - gfx->transpen(bitmap,cliprect, tile, color, 0, 0, x*8, y*8, 0); + gfx->transpen(m_palette,bitmap,cliprect, tile, color, 0, 0, x*8, y*8, 0); } } @@ -226,7 +226,7 @@ UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb3 { color = ((pen >> (7-xi)) & 1) ? 0x87 : 0; if(color) - bitmap.pix32(y, x+xi) = machine().pens[color]; + bitmap.pix32(y, x+xi) = m_palette->pen(color); } } @@ -503,7 +503,8 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state ) MCFG_GFXDECODE_ADD("gfxdecode", flipjack) - MCFG_PALETTE_LENGTH(128+8) + MCFG_PALETTE_ADD("palette", 128+8) + MCFG_PALETTE_INIT_OWNER(flipjack_state, flipjack) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c index 5800d70c4a3..1348a86cdad 100644 --- a/src/mame/drivers/flkatck.c +++ b/src/mame/drivers/flkatck.c @@ -91,7 +91,7 @@ static ADDRESS_MAP_START( flkatck_map, AS_PROGRAM, 8, flkatck_state ) AM_RANGE(0x0000, 0x0007) AM_RAM_WRITE(flkatck_k007121_regs_w) /* 007121 registers */ AM_RANGE(0x0008, 0x03ff) AM_RAM /* RAM */ AM_RANGE(0x0400, 0x041f) AM_READWRITE(flkatck_ls138_r, flkatck_ls138_w) /* inputs, DIPS, bankswitch, counters, sound command */ - AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w) AM_SHARE("paletteram") /* palette */ + AM_RANGE(0x0800, 0x0bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* palette */ AM_RANGE(0x1000, 0x1fff) AM_RAM /* RAM */ AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(flkatck_k007121_w) AM_SHARE("k007121_ram") /* Video RAM (007121) */ AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1") /* banked ROM */ @@ -230,10 +230,11 @@ static MACHINE_CONFIG_START( flkatck, flkatck_state ) MCFG_SCREEN_UPDATE_DRIVER(flkatck_state, screen_update_flkatck) MCFG_GFXDECODE_ADD("gfxdecode", flkatck) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_K007121_ADD("k007121") + MCFG_K007121_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c index 10cb80532ae..e9722444d95 100644 --- a/src/mame/drivers/flower.c +++ b/src/mame/drivers/flower.c @@ -274,7 +274,8 @@ static MACHINE_CONFIG_START( flower, flower_state ) MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update_flower) MCFG_GFXDECODE_ADD("gfxdecode", flower) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(flower_state, flower) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c index bc2a8bf216e..656695d748c 100644 --- a/src/mame/drivers/flstory.c +++ b/src/mame/drivers/flstory.c @@ -1086,7 +1086,8 @@ static MACHINE_CONFIG_START( flstory, flstory_state ) MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory) MCFG_GFXDECODE_ADD("gfxdecode", flstory) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(flstory_state,flstory) @@ -1143,7 +1144,8 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state ) MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory) MCFG_GFXDECODE_ADD("gfxdecode", flstory) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(flstory_state,flstory) @@ -1200,7 +1202,8 @@ static MACHINE_CONFIG_START( victnine, flstory_state ) MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_victnine) MCFG_GFXDECODE_ADD("gfxdecode", flstory) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(flstory_state,victnine) @@ -1263,7 +1266,8 @@ static MACHINE_CONFIG_START( rumba, flstory_state ) MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_rumba) MCFG_GFXDECODE_ADD("gfxdecode", flstory) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(flstory_state,rumba) diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index 3f6807149e0..789901f5b6c 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.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(flyball); UINT32 screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(flyball_joystick_callback); TIMER_CALLBACK_MEMBER(flyball_quarter_callback); @@ -132,7 +132,7 @@ UINT32 flyball_state::screen_update_flyball(screen_device &screen, bitmap_ind16 m_tmap->draw(screen, bitmap, cliprect, 0, 0); /* draw pitcher */ - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1); /* draw ball */ @@ -386,12 +386,12 @@ static GFXDECODE_START( flyball ) GFXDECODE_END -void flyball_state::palette_init() +PALETTE_INIT_MEMBER(flyball_state, flyball) { - palette_set_color(machine(), 0, rgb_t(0x3F, 0x3F, 0x3F)); /* tiles, ball */ - palette_set_color(machine(), 1, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 2, rgb_t(0xFF ,0xFF, 0xFF)); /* sprites */ - palette_set_color(machine(), 3, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(0, rgb_t(0x3F, 0x3F, 0x3F)); /* tiles, ball */ + palette.set_pen_color(1, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(2, rgb_t(0xFF ,0xFF, 0xFF)); /* sprites */ + palette.set_pen_color(3, rgb_t(0x00, 0x00, 0x00)); } @@ -452,8 +452,8 @@ static MACHINE_CONFIG_START( flyball, flyball_state ) MCFG_SCREEN_UPDATE_DRIVER(flyball_state, screen_update_flyball) MCFG_GFXDECODE_ADD("gfxdecode", flyball) - MCFG_PALETTE_LENGTH(4) - + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(flyball_state, flyball) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index 31fbef0aa4c..c4a9f971e84 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( foodf, foodf_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", foodf) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("playfield", 2, foodf_state, get_playfield_tile_info, 8,8, SCAN_COLS, 32,32, 0) diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c index 8ba05ee1704..8f39e3a2e77 100644 --- a/src/mame/drivers/fortecar.c +++ b/src/mame/drivers/fortecar.c @@ -346,7 +346,7 @@ public: DECLARE_DRIVER_INIT(fortecar); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(fortecar); UINT32 screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<eeprom_serial_93cxx_device> m_eeprom; required_device<gfxdecode_device> m_gfxdecode; @@ -375,7 +375,7 @@ UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind1 if(bpp) color&=0x3; - m_gfxdecode->gfx(bpp)->opaque(bitmap,cliprect,tile,color,0,0,x*8,y*8); + m_gfxdecode->gfx(bpp)->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8,y*8); count++; } @@ -384,7 +384,7 @@ UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind1 return 0; } -void fortecar_state::palette_init() +PALETTE_INIT_MEMBER(fortecar_state, fortecar) { const UINT8 *color_prom = memregion("proms")->base(); /* Video resistors... @@ -431,7 +431,7 @@ R = 82 Ohms Pull Down. bit1 = (color_prom[i] >> 7) & 0x01; b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -699,8 +699,8 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state ) MCFG_V3021_ADD("rtc") MCFG_GFXDECODE_ADD("gfxdecode", fortecar) - MCFG_PALETTE_LENGTH(0x200) - + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(fortecar_state, fortecar) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* 1.5 MHz, measured */ diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c index 37825da3608..ead25abeb1b 100644 --- a/src/mame/drivers/freekick.c +++ b/src/mame/drivers/freekick.c @@ -638,8 +638,7 @@ static MACHINE_CONFIG_START( base, freekick_state ) MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_pbillrd) MCFG_GFXDECODE_ADD("gfxdecode", freekick) - MCFG_PALETTE_LENGTH(0x200) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x200) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/fresh.c b/src/mame/drivers/fresh.c index 75b75ae6f9d..8816eaff0a5 100644 --- a/src/mame/drivers/fresh.c +++ b/src/mame/drivers/fresh.c @@ -154,7 +154,7 @@ void fresh_state::update_palette( int offset ) UINT16 pal1 = m_paletteram_1[offset]; UINT8 pal2 = m_paletteram_2[offset]; - palette_set_color(machine(),offset,rgb_t(pal1&0xff,(pal1>>8)&0xff,pal2)); + m_palette->set_pen_color(offset,rgb_t(pal1&0xff,(pal1>>8)&0xff,pal2)); } WRITE16_MEMBER(fresh_state::fresh_paletteram_1_w) @@ -626,7 +626,7 @@ static MACHINE_CONFIG_START( fresh, fresh_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(fresh_state, screen_update_fresh) - MCFG_PALETTE_LENGTH(0x1000) // or 0xc00 + MCFG_PALETTE_ADD("palette", 0x1000) // or 0xc00 MCFG_GFXDECODE_ADD("gfxdecode", fresh) /* sound hw? */ diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index 870755c6909..fd1656aee74 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -538,7 +538,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", fromanc2) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", fromancr) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -634,7 +634,7 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", fromancr) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c index 381c1b63f1c..842d5ef3bdc 100644 --- a/src/mame/drivers/fromance.c +++ b/src/mame/drivers/fromance.c @@ -1043,7 +1043,7 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state ) MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE_ADD("gfxdecode", fromance) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(fromance_state,nekkyoku) @@ -1081,7 +1081,7 @@ static MACHINE_CONFIG_START( idolmj, fromance_state ) MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE_ADD("gfxdecode", fromance) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(fromance_state,fromance) @@ -1119,7 +1119,7 @@ static MACHINE_CONFIG_START( fromance, fromance_state ) MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance) MCFG_GFXDECODE_ADD("gfxdecode", fromance) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(fromance_state,fromance) diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c index c8b4e1fe924..e124dbf777f 100644 --- a/src/mame/drivers/funkybee.c +++ b/src/mame/drivers/funkybee.c @@ -306,8 +306,8 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state ) MCFG_SCREEN_UPDATE_DRIVER(funkybee_state, screen_update_funkybee) MCFG_GFXDECODE_ADD("gfxdecode", funkybee) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(funkybee_state, funkybee) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c index d72c28dce09..1da2c73740b 100644 --- a/src/mame/drivers/funkyjet.c +++ b/src/mame/drivers/funkyjet.c @@ -127,7 +127,7 @@ WRITE16_MEMBER( funkyjet_state::funkyjet_protection_region_0_146_w ) static ADDRESS_MAP_START( funkyjet_map, AS_PROGRAM, 16, funkyjet_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x143fff) AM_RAM AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x180000, 0x183fff) AM_READWRITE(funkyjet_protection_region_0_146_r,funkyjet_protection_region_0_146_w) AM_SHARE("prot16ram") /* Protection device */ // unlikely to be cs0 region @@ -338,14 +338,17 @@ static MACHINE_CONFIG_START( funkyjet, funkyjet_state ) MCFG_GFXDECODE_ADD("gfxdecode", funkyjet) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DECO16IC_ADD("tilegen1", funkyjet_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c index 3879648b813..712ec3f9701 100644 --- a/src/mame/drivers/funworld.c +++ b/src/mame/drivers/funworld.c @@ -2945,8 +2945,8 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state ) MCFG_GFXDECODE_ADD("gfxdecode", fw1stpal) - MCFG_PALETTE_LENGTH(0x200) - MCFG_PALETTE_INIT_OVERRIDE(funworld_state, funworld) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(funworld_state, funworld) MCFG_VIDEO_START_OVERRIDE(funworld_state, funworld) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* 2MHz, veryfied on jollycrd & royalcrd */ diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c index 6e840d4bec8..53c85fdc37c 100644 --- a/src/mame/drivers/funybubl.c +++ b/src/mame/drivers/funybubl.c @@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state ) MCFG_SCREEN_UPDATE_DRIVER(funybubl_state, screen_update_funybubl) MCFG_GFXDECODE_ADD("gfxdecode", funybubl) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) /* sound hardware */ diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index 9df20d97701..5d37389987d 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -91,7 +91,7 @@ static ADDRESS_MAP_START( fuuki16_map, AS_PROGRAM, 16, fuuki16_state ) AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(fuuki16_vram_2_w) AM_SHARE("vram.2") // AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(fuuki16_vram_3_w) AM_SHARE("vram.3") // AM_RANGE(0x600000, 0x601fff) AM_MIRROR(0x008000) AM_RAM AM_SHARE("spriteram") // Sprites, mirrored? - AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x700000, 0x703fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x800000, 0x800001) AM_READ_PORT("SYSTEM") AM_RANGE(0x810000, 0x810001) AM_READ_PORT("P1_P2") AM_RANGE(0x880000, 0x880001) AM_READ_PORT("DSW") @@ -466,7 +466,8 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state ) MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update_fuuki16) MCFG_GFXDECODE_ADD("gfxdecode", fuuki16) - MCFG_PALETTE_LENGTH(0x800*4) + MCFG_PALETTE_ADD("palette", 0x800*4) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index f9e61d0c5d5..4c08deb2444 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -175,7 +175,7 @@ WRITE32_MEMBER(fuuki32_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w) g = (m_paletteram[offset] & 0x03e00000) >> (5 + 16); b = (m_paletteram[offset] & 0x001f0000) >> (0 + 16); - palette_set_color_rgb(machine(), offset * 2, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offset * 2, pal5bit(r), pal5bit(g), pal5bit(b)); } if(ACCESSING_BITS_0_15) @@ -187,7 +187,7 @@ WRITE32_MEMBER(fuuki32_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w) g = (m_paletteram[offset] & 0x000003e0) >> (5); b = (m_paletteram[offset] & 0x0000001f) >> (0); - palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offset * 2 + 1, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state ) MCFG_SCREEN_VBLANK_DRIVER(fuuki32_state, screen_eof_fuuki32) MCFG_GFXDECODE_ADD("gfxdecode", fuuki32) - MCFG_PALETTE_LENGTH(0x4000/2) + MCFG_PALETTE_ADD("palette", 0x4000/2) /* sound hardware */ diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c index 113d2d3f44f..38b73625a68 100644 --- a/src/mame/drivers/gaelco.c +++ b/src/mame/drivers/gaelco.c @@ -117,7 +117,7 @@ static ADDRESS_MAP_START( bigkarnk_map, AS_PROGRAM, 16, gaelco_state ) AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ // AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW1") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW2") @@ -144,7 +144,7 @@ static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16, gaelco_state ) AM_RANGE(0x102000, 0x103fff) AM_RAM /* Screen RAM */ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ // AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") @@ -161,7 +161,7 @@ static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16, gaelco_state ) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(gaelco_encrypted_w) AM_SHARE("screenram") /* Screen RAM */ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ // AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") @@ -178,7 +178,7 @@ static ADDRESS_MAP_START( thoop_map, AS_PROGRAM, 16, gaelco_state ) AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(thoop_encrypted_w) AM_SHARE("screenram") /* Screen RAM */ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ // AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") @@ -516,7 +516,8 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state ) MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_bigkarnk) MCFG_GFXDECODE_ADD("gfxdecode", 0x100000) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(gaelco_state,bigkarnk) @@ -547,7 +548,8 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state ) MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) MCFG_GFXDECODE_ADD("gfxdecode", 0x100000) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq) @@ -577,7 +579,8 @@ static MACHINE_CONFIG_START( squash, gaelco_state ) MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) MCFG_GFXDECODE_ADD("gfxdecode", 0x100000) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq) @@ -607,7 +610,8 @@ static MACHINE_CONFIG_START( thoop, gaelco_state ) MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq) MCFG_GFXDECODE_ADD("gfxdecode", 0x100000) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(gaelco_state,maniacsq) diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c index 453a792bc3e..57483239bfe 100644 --- a/src/mame/drivers/gaelco2.c +++ b/src/mame/drivers/gaelco2.c @@ -171,7 +171,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", 0x0080000) - MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", 0x0200000) - MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -532,7 +532,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", 0x0400000) - MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -765,7 +765,7 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state ) /* video hardware */ MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_GFXDECODE_ADD("gfxdecode", 0x0400000) - MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -968,7 +968,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", 0x0400000) - MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -1200,7 +1200,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state ) /* video hardware */ MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_GFXDECODE_ADD("gfxdecode", 0x0200000) - MCFG_PALETTE_LENGTH(4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index d85f7893943..e0013316cd7 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -1009,9 +1009,7 @@ static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state ) MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431) MCFG_SCREEN_UPDATE_DRIVER(gaelco3d_state, screen_update_gaelco3d) - MCFG_PALETTE_LENGTH(32768) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c index 498bb25094b..415bd47e7e6 100644 --- a/src/mame/drivers/gaiden.c +++ b/src/mame/drivers/gaiden.c @@ -385,7 +385,7 @@ static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16, gaiden_state ) AM_RANGE(0x072000, 0x073fff) AM_READWRITE(gaiden_videoram2_r, gaiden_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0x074000, 0x075fff) AM_READWRITE(gaiden_videoram3_r, gaiden_videoram3_w) AM_SHARE("videoram3") AM_RANGE(0x076000, 0x077fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x078000, 0x079fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x078000, 0x079fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM") AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2") AM_WRITE(gaiden_sproffsety_w) AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW") @@ -411,7 +411,7 @@ static ADDRESS_MAP_START( drgnbowl_map, AS_PROGRAM, 16, gaiden_state ) AM_RANGE(0x072000, 0x073fff) AM_RAM_WRITE(gaiden_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0x074000, 0x075fff) AM_RAM_WRITE(gaiden_videoram3_w) AM_SHARE("videoram3") AM_RANGE(0x076000, 0x077fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x078000, 0x079fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x078000, 0x079fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM") AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2") AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW") @@ -771,7 +771,8 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state ) MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden) MCFG_GFXDECODE_ADD("gfxdecode", gaiden) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(gaiden_state,gaiden) @@ -828,7 +829,8 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state ) MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl) MCFG_GFXDECODE_ADD("gfxdecode", drgnbowl) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(gaiden_state,drgnbowl) @@ -904,7 +906,7 @@ static ADDRESS_MAP_START( mastninj_map, AS_PROGRAM, 16, gaiden_state ) AM_RANGE(0x072000, 0x073fff) AM_READWRITE(gaiden_videoram2_r, gaiden_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0x074000, 0x075fff) AM_READWRITE(gaiden_videoram3_r, gaiden_videoram3_w) AM_SHARE("videoram3") AM_RANGE(0x076000, 0x077fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x078000, 0x079fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x078000, 0x079fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // AM_RANGE(0x078800, 0x079fff) AM_RAM AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM") AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2") @@ -944,7 +946,8 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state ) MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden) MCFG_GFXDECODE_ADD("gfxdecode", mastninj) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(gaiden_state,mastninj) diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c index ee65bdae491..97197de83c5 100644 --- a/src/mame/drivers/gal3.c +++ b/src/mame/drivers/gal3.c @@ -189,7 +189,7 @@ void gal3_state::update_palette( ) g = data1&0xff; b = data2&0xff; - palette_set_color( machine(),i, rgb_t(r,g,b) ); + m_palette->set_pen_color( i, rgb_t(r,g,b) ); } } /* update_palette */ @@ -631,7 +631,7 @@ static MACHINE_CONFIG_START( gal3, gal3_state ) MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3) MCFG_GFXDECODE_ADD("gfxdecode", namcos21) - MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) + MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS) MCFG_VIDEO_START_OVERRIDE(gal3_state,gal3) diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index 5f0b6cfb238..009bf3d2290 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -1696,9 +1696,9 @@ static MACHINE_CONFIG_START( bosco, bosco_state ) MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_bosco) MCFG_GFXDECODE_ADD("gfxdecode", bosco) - MCFG_PALETTE_LENGTH(64*4+64*4+4+64) + MCFG_PALETTE_ADD("palette", 64*4+64*4+4+64) - MCFG_PALETTE_INIT_OVERRIDE(bosco_state,bosco) + MCFG_PALETTE_INIT_OWNER(bosco_state,bosco) MCFG_VIDEO_START_OVERRIDE(bosco_state,bosco) /* sound hardware */ @@ -1752,9 +1752,9 @@ static MACHINE_CONFIG_START( galaga, galaga_state ) MCFG_SCREEN_VBLANK_DRIVER(galaga_state, screen_eof_galaga) MCFG_GFXDECODE_ADD("gfxdecode", galaga) - MCFG_PALETTE_LENGTH(64*4+64*4+64) + MCFG_PALETTE_ADD("palette", 64*4+64*4+64) - MCFG_PALETTE_INIT_OVERRIDE(galaga_state,galaga) + MCFG_PALETTE_INIT_OWNER(galaga_state,galaga) MCFG_VIDEO_START_OVERRIDE(galaga_state,galaga) /* sound hardware */ @@ -1829,9 +1829,9 @@ static MACHINE_CONFIG_START( xevious, xevious_state ) MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious) MCFG_GFXDECODE_ADD("gfxdecode", xevious) - MCFG_PALETTE_LENGTH(128*4+64*8+64*2) + MCFG_PALETTE_ADD("palette", 128*4+64*8+64*2) - MCFG_PALETTE_INIT_OVERRIDE(xevious_state,xevious) + MCFG_PALETTE_INIT_OWNER(xevious_state,xevious) MCFG_VIDEO_START_OVERRIDE(xevious_state,xevious) /* sound hardware */ @@ -1872,7 +1872,8 @@ static MACHINE_CONFIG_DERIVED( battles, xevious ) MCFG_MACHINE_RESET_OVERRIDE(xevious_state,battles) /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(xevious_state,battles) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(xevious_state,battles) /* sound hardware */ MCFG_DEVICE_REMOVE("discrete") @@ -1918,9 +1919,9 @@ static MACHINE_CONFIG_START( digdug, digdug_state ) MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug) MCFG_GFXDECODE_ADD("gfxdecode", digdug) - MCFG_PALETTE_LENGTH(16*2+64*4+64*4) + MCFG_PALETTE_ADD("palette", 16*2+64*4+64*4) - MCFG_PALETTE_INIT_OVERRIDE(digdug_state,digdug) + MCFG_PALETTE_INIT_OWNER(digdug_state,digdug) MCFG_VIDEO_START_OVERRIDE(digdug_state,digdug) /* sound hardware */ diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index de832cc3cb5..4e086b5e86d 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -71,7 +71,7 @@ WRITE32_MEMBER(galastrm_state::galastrm_palette_w) if (ACCESSING_BITS_16_31) m_tc0110pcr_addr = data >> 16; if ((ACCESSING_BITS_0_15) && (m_tc0110pcr_addr < 4096)) - palette_set_color_rgb(machine(), m_tc0110pcr_addr, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); + m_palette->set_pen_color(m_tc0110pcr_addr, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } WRITE32_MEMBER(galastrm_state::galastrm_tc0610_0_w) @@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( galastrm, galastrm_state ) MCFG_SCREEN_UPDATE_DRIVER(galastrm_state, screen_update_galastrm) MCFG_GFXDECODE_ADD("gfxdecode", galastrm) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_TC0100SCN_ADD("tc0100scn", galastrm_tc0100scn_intf) diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c index 92c21ec0a9b..f23a6805ea7 100644 --- a/src/mame/drivers/galaxi.c +++ b/src/mame/drivers/galaxi.c @@ -204,7 +204,7 @@ UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &b #endif if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - else bitmap.fill(get_black_pen(machine()), cliprect); + else bitmap.fill(m_palette->black_pen(), cliprect); if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 4) m_bg3_tmap->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 8) m_bg4_tmap->draw(screen, bitmap, cliprect, 0, 0); @@ -292,7 +292,7 @@ static ADDRESS_MAP_START( galaxi_map, AS_PROGRAM, 16, galaxi_state ) AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(galaxi_fg_w ) AM_SHARE("fg_ram") AM_RANGE(0x102000, 0x1047ff) AM_READNOP // unknown - AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x3007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x500001) AM_READ_PORT("INPUTS") AM_RANGE(0x500000, 0x500001) AM_WRITE(galaxi_500000_w) @@ -419,7 +419,8 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state ) MCFG_SCREEN_UPDATE_DRIVER(galaxi_state, screen_update_galaxi) MCFG_GFXDECODE_ADD("gfxdecode", galaxi) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index a4e04ef2428..0649aa4a006 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -305,9 +305,9 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state ) MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_galaxia) MCFG_GFXDECODE_ADD("gfxdecode", galaxia) - MCFG_PALETTE_LENGTH(0x18+2) + MCFG_PALETTE_ADD("palette", 0x18+2) - MCFG_PALETTE_INIT_OVERRIDE(galaxia_state,galaxia) + MCFG_PALETTE_INIT_OWNER(galaxia_state,galaxia) MCFG_VIDEO_START_OVERRIDE(galaxia_state,galaxia) MCFG_S2636_ADD("s2636_0", galaxia_s2636_config[0]) @@ -341,9 +341,9 @@ static MACHINE_CONFIG_START( astrowar, galaxia_state ) MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_astrowar) MCFG_GFXDECODE_ADD("gfxdecode", astrowar) - MCFG_PALETTE_LENGTH(0x18+2) + MCFG_PALETTE_ADD("palette", 0x18+2) - MCFG_PALETTE_INIT_OVERRIDE(galaxia_state,astrowar) + MCFG_PALETTE_INIT_OWNER(galaxia_state,astrowar) MCFG_VIDEO_START_OVERRIDE(galaxia_state,astrowar) MCFG_S2636_ADD("s2636_0", astrowar_s2636_config) diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 666c81ea0b7..d56733f0714 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -5169,7 +5169,8 @@ static MACHINE_CONFIG_START( galaxian_base, galaxian_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", galaxian) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(galaxian_state, galaxian) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) @@ -5290,7 +5291,9 @@ static MACHINE_CONFIG_DERIVED( gmgalax, galaxian ) /* banked video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", gmgalax) - MCFG_PALETTE_LENGTH(64) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(galaxian_state, galaxian) MACHINE_CONFIG_END @@ -5616,7 +5619,8 @@ static MACHINE_CONFIG_DERIVED( moonwar, scobra ) MCFG_I8255A_ADD( "ppi8255_0", moonwar_ppi8255_0_intf ) MCFG_I8255A_ADD( "ppi8255_1", konami_ppi8255_1_intf ) - MCFG_PALETTE_INIT_OVERRIDE(galaxian_state,moonwar) // bullets are less yellow + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(galaxian_state,moonwar) // bullets are less yellow MACHINE_CONFIG_END @@ -6054,7 +6058,7 @@ void galaxian_state::tenspot_set_game_bank(running_machine& machine, int bank, i dstregion = machine.root_device().memregion("proms")->base(); memcpy(dstregion, srcregion, 0x20); - galaxian_state::palette_init(); + PALETTE_INIT_NAME(galaxian)(m_palette); } DRIVER_INIT_MEMBER(galaxian_state,tenspot) diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c index d64d1031539..974051b3b57 100644 --- a/src/mame/drivers/galaxold.c +++ b/src/mame/drivers/galaxold.c @@ -2346,13 +2346,13 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", galaxian) - MCFG_PALETTE_LENGTH(32+2+64) /* 32 for the characters, 2 for the bullets, 64 for the stars */ + MCFG_PALETTE_ADD("palette", 32+2+64) /* 32 for the characters, 2 for the bullets, 64 for the stars */ + MCFG_PALETTE_INIT_OWNER(galaxold_state,galaxold) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold) MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold) /* sound hardware */ @@ -2403,9 +2403,10 @@ static MACHINE_CONFIG_DERIVED( scramblb, galaxian ) MCFG_CPU_PROGRAM_MAP(scramblb_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold) + MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold) MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) MACHINE_CONFIG_END @@ -2417,9 +2418,10 @@ static MACHINE_CONFIG_DERIVED( scramb2, galaxian ) MCFG_CPU_PROGRAM_MAP(scramb2_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold) + MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold) MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) MACHINE_CONFIG_END @@ -2431,9 +2433,10 @@ static MACHINE_CONFIG_DERIVED( scrambler, galaxian ) MCFG_CPU_PROGRAM_MAP(scrambler_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold) + MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold) MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) MACHINE_CONFIG_END @@ -2445,9 +2448,10 @@ static MACHINE_CONFIG_DERIVED( guttang, galaxian ) MCFG_CPU_PROGRAM_MAP(guttang_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+2+64+1) /* 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background */ -// MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,scrambold) +// MCFG_PALETTE_INIT_OWNER(galaxold_state,scrambold) MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) MACHINE_CONFIG_END @@ -2498,8 +2502,9 @@ static MACHINE_CONFIG_DERIVED( rockclim, galaxian ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,rockclim) - MCFG_PALETTE_LENGTH(64+64+2) /* 64 colors only, but still uses bullets so we need to keep the palette big */ - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64+64+2) /* 64 colors only, but still uses bullets so we need to keep the palette big */ + MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(64*8, 32*8) @@ -2517,8 +2522,9 @@ static MACHINE_CONFIG_DERIVED( ozon1, galaxold_base ) MCFG_MACHINE_RESET_REMOVE() /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) - MCFG_PALETTE_LENGTH(32) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim) MCFG_VIDEO_START_OVERRIDE(galaxold_state,ozon1) MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4) @@ -2541,12 +2547,12 @@ static MACHINE_CONFIG_START( drivfrcg, galaxold_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) + + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim) - MCFG_PALETTE_LENGTH(64) MCFG_GFXDECODE_ADD("gfxdecode", gmgalax) - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) - MCFG_VIDEO_START_OVERRIDE(galaxold_state,drivfrcg) /* sound hardware */ @@ -2611,13 +2617,13 @@ static MACHINE_CONFIG_START( racknrol, galaxold_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", galaxian) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim) + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) /* sound hardware */ @@ -2636,13 +2642,13 @@ static MACHINE_CONFIG_START( hexpoola, galaxold_state ) MCFG_CPU_VBLANK_INT_DRIVER("screen", galaxold_state, hunchbks_vh_interrupt) MCFG_GFXDECODE_ADD("gfxdecode", galaxian) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(galaxold_state,rockclim) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) /* sound hardware */ diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c index 8219b3039fd..0cf0e65483c 100644 --- a/src/mame/drivers/galgame.c +++ b/src/mame/drivers/galgame.c @@ -47,7 +47,6 @@ public: DECLARE_WRITE16_MEMBER(clk_w); DECLARE_DRIVER_INIT(galaxygame); virtual void machine_reset(); - virtual void palette_init(); UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(galaxygame_irq); IRQ_CALLBACK_MEMBER(galaxygame_irq_callback); @@ -173,7 +172,7 @@ WRITE16_MEMBER(galaxygame_state::ke_w) UINT32 galaxygame_state::screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); for (int i = 0; i < m_point_display_list_index; i++ ) { bitmap.pix16(m_point_display_list[i].x >> 7, m_point_display_list[i].y >> 7) = 1; @@ -291,12 +290,6 @@ static ADDRESS_MAP_START( galaxygame_map, AS_PROGRAM, 16, galaxygame_state ) ADDRESS_MAP_END -void galaxygame_state::palette_init() -{ - palette_set_color(machine(),0,rgb_t::black); /* black */ - palette_set_color(machine(),1,rgb_t::white); /* white */ -} - IRQ_CALLBACK_MEMBER(galaxygame_state::galaxygame_irq_callback) { device.execute().set_input_line(0, CLEAR_LINE); @@ -337,7 +330,7 @@ static MACHINE_CONFIG_START( galaxygame, galaxygame_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511) MCFG_SCREEN_UPDATE_DRIVER(galaxygame_state, screen_update_galaxygame) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") MACHINE_CONFIG_END diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c index a7b1b14c328..358879b2f27 100644 --- a/src/mame/drivers/galivan.c +++ b/src/mame/drivers/galivan.c @@ -437,8 +437,9 @@ static MACHINE_CONFIG_START( galivan, galivan_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", galivan) - MCFG_PALETTE_LENGTH(8*16+16*16+256*16) - + MCFG_PALETTE_ADD("palette", 8*16+16*16+256*16) + MCFG_PALETTE_INIT_OWNER(galivan_state, galivan) + MCFG_VIDEO_START_OVERRIDE(galivan_state,galivan) /* sound hardware */ @@ -482,7 +483,8 @@ static MACHINE_CONFIG_START( ninjemak, galivan_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", galivan) - MCFG_PALETTE_LENGTH(8*16+16*16+256*16) + MCFG_PALETTE_ADD("palette", 8*16+16*16+256*16) + MCFG_PALETTE_INIT_OWNER(galivan_state, galivan) MCFG_VIDEO_START_OVERRIDE(galivan_state,ninjemak) diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c index 2cb037a66e8..04e2a37f5e1 100644 --- a/src/mame/drivers/galpani2.c +++ b/src/mame/drivers/galpani2.c @@ -343,7 +343,7 @@ static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16, galpani2_state ) AM_RANGE(0x314000, 0x314001) AM_WRITENOP // ? flip backgrounds ? AM_RANGE(0x318000, 0x318001) AM_READWRITE(galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM AM_RANGE(0x380000, 0x387fff) AM_RAM // Palette? - AM_RANGE(0x388000, 0x38ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram" ) // Palette + AM_RANGE(0x388000, 0x38ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x390000, 0x3901ff) AM_WRITENOP // ? at startup of service mode AM_RANGE(0x400000, 0x43ffff) AM_RAM_WRITE(galpani2_bg8_0_w) AM_SHARE("bg8.0") // Background 0 @@ -628,7 +628,9 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state ) MCFG_SCREEN_UPDATE_DRIVER(galpani2_state, screen_update_galpani2) MCFG_GFXDECODE_ADD("gfxdecode", galpani2) - MCFG_PALETTE_LENGTH(0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15 + MCFG_PALETTE_ADD("palette", 0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15 + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) + MCFG_PALETTE_INIT_OWNER(galpani2_state, galpani2) MCFG_DEVICE_ADD_KC002_SPRITES kaneko16_sprite_device::set_offsets(*device, 0x10000 - 0x16c0 + 0xc00, 0); diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c index f7cd379748d..4bd6a3a3470 100644 --- a/src/mame/drivers/galpani3.c +++ b/src/mame/drivers/galpani3.c @@ -195,7 +195,7 @@ UINT32 galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rgb3 UINT16* src1; UINT32* dst; UINT16 pixdata1; - const pen_t *paldata = machine().pens; + const pen_t *paldata = m_palette->pens(); bitmap.fill(0x0000, cliprect); @@ -457,7 +457,7 @@ static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16, galpani3_state ) AM_RANGE(0x000000, 0x17ffff) AM_ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM // area [B] - Work RAM - AM_RANGE(0x280000, 0x287fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // area [A] - palette for sprites + AM_RANGE(0x280000, 0x287fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // area [A] - palette for sprites AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_SHARE("spriteram") AM_RANGE(0x380000, 0x38003f) AM_RAM_WRITE(galpani3_suprnova_sprite32regs_w) AM_SHARE("sprregs") @@ -508,19 +508,22 @@ static MACHINE_CONFIG_START( galpani3, galpani3_state ) MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, 0) - MCFG_PALETTE_LENGTH(0x4303) - + MCFG_PALETTE_ADD("palette", 0x4303) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0) MCFG_DEVICE_ADD("grap2_0", KANEKO_GRAP2, 0) kaneko_grap2_device::set_chipnum(*device, 0); + MCFG_KANEKO_GRAP2_PALETTE("palette") MCFG_DEVICE_ADD("grap2_1", KANEKO_GRAP2, 0) kaneko_grap2_device::set_chipnum(*device, 1); + MCFG_KANEKO_GRAP2_PALETTE("palette") MCFG_DEVICE_ADD("grap2_2", KANEKO_GRAP2, 0) kaneko_grap2_device::set_chipnum(*device, 2); + MCFG_KANEKO_GRAP2_PALETTE("palette") /* sound hardware */ diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 36c60f3d79f..bb7f59e9305 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -569,10 +569,12 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state ) MCFG_SCREEN_VBLANK_DRIVER(galpanic_state, screen_eof_galpanic) MCFG_GFXDECODE_ADD("gfxdecode", galpanic) - MCFG_PALETTE_LENGTH(1024 + 32768) + MCFG_PALETTE_ADD("palette", 1024 + 32768) + MCFG_PALETTE_INIT_OWNER(galpanic_state,galpanic) MCFG_KANEKO_PANDORA_ADD("pandora", galpanic_pandora_config) MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode") + MCFG_KANEKO_PANDORA_PALETTE("palette") MCFG_DEVICE_ADD("calc1_mcu", KANEKO_HIT, 0) kaneko_hit_device::set_type(*device, 0); @@ -580,7 +582,6 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state ) - MCFG_PALETTE_INIT_OVERRIDE(galpanic_state,galpanic) MCFG_VIDEO_START_OVERRIDE(galpanic_state,galpanic) /* sound hardware */ diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c index a4a6aeb9a4c..a176fb88609 100644 --- a/src/mame/drivers/galspnbl.c +++ b/src/mame/drivers/galspnbl.c @@ -67,7 +67,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, galspnbl_state ) AM_RANGE(0x905000, 0x907fff) AM_WRITENOP /* ??? */ AM_RANGE(0x980000, 0x9bffff) AM_RAM AM_SHARE("bgvideoram") AM_RANGE(0xa00000, 0xa00fff) AM_WRITENOP /* more palette ? */ - AM_RANGE(0xa01000, 0xa017ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa01000, 0xa017ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa01800, 0xa027ff) AM_WRITENOP /* more palette ? */ AM_RANGE(0xa80000, 0xa80001) AM_READ_PORT("IN0") AM_RANGE(0xa80010, 0xa80011) AM_READ_PORT("IN1") AM_WRITE(soundcommand_w) @@ -236,8 +236,10 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state ) MCFG_SCREEN_UPDATE_DRIVER(galspnbl_state, screen_update_galspnbl) MCFG_GFXDECODE_ADD("gfxdecode", galspnbl) - MCFG_PALETTE_LENGTH(1024 + 32768) + MCFG_PALETTE_ADD("palette", 1024 + 32768) + MCFG_PALETTE_INIT_OWNER(galspnbl_state, galspnbl) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gambl186.c b/src/mame/drivers/gambl186.c index 536c3f3b209..29ae8501fb2 100644 --- a/src/mame/drivers/gambl186.c +++ b/src/mame/drivers/gambl186.c @@ -73,7 +73,7 @@ static MACHINE_CONFIG_START( gambl186, gambl186_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255) MCFG_SCREEN_UPDATE_DRIVER(gambl186_state, screen_update_gambl186) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index 8d69b666bfa..60129b34ee3 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -109,7 +109,7 @@ void gamecstl_state::video_start() { int i; for (i=0; i < 16; i++) - palette_set_color(machine(), i, cga_palette[i]); + m_palette->set_pen_color(i, cga_palette[i]); } void gamecstl_state::draw_char(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, int ch, int att, int x, int y) @@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state ) MCFG_SCREEN_UPDATE_DRIVER(gamecstl_state, screen_update_gamecstl) MCFG_GFXDECODE_ADD("gfxdecode", CGA) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MACHINE_CONFIG_END diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c index 6035be6eef5..9913c6bc3bb 100644 --- a/src/mame/drivers/gaplus.c +++ b/src/mame/drivers/gaplus.c @@ -596,7 +596,8 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state ) MCFG_SCREEN_VBLANK_DRIVER(gaplus_state, screen_eof_gaplus) MCFG_GFXDECODE_ADD("gfxdecode", gaplus) - MCFG_PALETTE_LENGTH(64*4+64*8) + MCFG_PALETTE_ADD("palette", 64*4+64*8) + MCFG_PALETTE_INIT_OWNER(gaplus_state, gaplus) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c index 380522026ad..ef94335ad88 100644 --- a/src/mame/drivers/gatron.c +++ b/src/mame/drivers/gatron.c @@ -570,7 +570,8 @@ static MACHINE_CONFIG_START( gat, gatron_state ) MCFG_SCREEN_UPDATE_DRIVER(gatron_state, screen_update_gat) MCFG_GFXDECODE_ADD("gfxdecode", gat) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(gatron_state, gatron) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c index dcc8f5732fd..e8547746dc2 100644 --- a/src/mame/drivers/gauntlet.c +++ b/src/mame/drivers/gauntlet.c @@ -307,7 +307,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state ) AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(gauntlet_yscroll_w) AM_SHARE("yscroll") AM_RANGE(0x905000, 0x905f7f) AM_MIRROR(0x2c8000) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha") AM_RANGE(0x905f80, 0x905fff) AM_MIRROR(0x2c8000) AM_RAM AM_SHARE("mob:slip") - AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x930000, 0x930001) AM_MIRROR(0x2cfffe) AM_WRITE(gauntlet_xscroll_w) AM_SHARE("xscroll") ADDRESS_MAP_END @@ -510,7 +510,9 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", gauntlet) - MCFG_PALETTE_LENGTH(1024) + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, gauntlet_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, gauntlet_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c index c624abce5f4..ab5367ec327 100644 --- a/src/mame/drivers/gberet.c +++ b/src/mame/drivers/gberet.c @@ -416,9 +416,9 @@ static MACHINE_CONFIG_START( gberet, gberet_state ) MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet) MCFG_GFXDECODE_ADD("gfxdecode", gberet) - MCFG_PALETTE_LENGTH(2*16*16) + MCFG_PALETTE_ADD("palette", 2*16*16) - MCFG_PALETTE_INIT_OVERRIDE(gberet_state,gberet) + MCFG_PALETTE_INIT_OWNER(gberet_state,gberet) MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet) /* sound hardware */ @@ -455,9 +455,9 @@ static MACHINE_CONFIG_START( gberetb, gberet_state ) MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb) MCFG_GFXDECODE_ADD("gfxdecode", gberetb) - MCFG_PALETTE_LENGTH(2*16*16) + MCFG_PALETTE_ADD("palette", 2*16*16) - MCFG_PALETTE_INIT_OVERRIDE(gberet_state,gberet) + MCFG_PALETTE_INIT_OWNER(gberet_state,gberet) MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet) /* sound hardware */ diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c index 848b44c6df4..5a97cf782d6 100644 --- a/src/mame/drivers/gbusters.c +++ b/src/mame/drivers/gbusters.c @@ -35,7 +35,7 @@ READ8_MEMBER(gbusters_state::bankedram_r) WRITE8_MEMBER(gbusters_state::bankedram_w) { if (m_palette_selected) - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); else m_ram[offset] = data; } @@ -294,8 +294,6 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -303,13 +301,17 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(gbusters_state, screen_update_gbusters) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", gbusters_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", gbusters_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c index 74defec4daf..67c131935c3 100644 --- a/src/mame/drivers/gcpinbal.c +++ b/src/mame/drivers/gcpinbal.c @@ -236,7 +236,7 @@ static ADDRESS_MAP_START( gcpinbal_map, AS_PROGRAM, 16, gcpinbal_state ) AM_RANGE(0x000000, 0x1fffff) AM_ROM AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(gcpinbal_tilemaps_word_r, gcpinbal_tilemaps_word_w) AM_SHARE("tilemapram") AM_RANGE(0xc80000, 0xc80fff) AM_RAM AM_SHARE("spriteram") /* sprite ram */ - AM_RANGE(0xd00000, 0xd00fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xd00000, 0xd00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd80000, 0xd800ff) AM_READWRITE(ioc_r, ioc_w) AM_SHARE("ioc_ram") AM_RANGE(0xff0000, 0xffffff) AM_RAM /* RAM */ ADDRESS_MAP_END @@ -448,8 +448,8 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state ) MCFG_GFXDECODE_ADD("gfxdecode", gcpinbal) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c index 5b635bcd6a2..9fee1ee7f06 100644 --- a/src/mame/drivers/gei.c +++ b/src/mame/drivers/gei.c @@ -139,7 +139,7 @@ public: DECLARE_READ8_MEMBER(portC_r); DECLARE_DRIVER_INIT(geimulti); DECLARE_DRIVER_INIT(setbank); - virtual void palette_init(); + DECLARE_PALETTE_INIT(gei); DECLARE_PALETTE_INIT(quizvid); INTERRUPT_GEN_MEMBER(vblank_irq); }; @@ -173,13 +173,13 @@ WRITE8_MEMBER(gei_state::gei_bitmap_w) m_bitmap.pix16(sy, sx+i) = m_color[8-i-1]; } -void gei_state::palette_init() +PALETTE_INIT_MEMBER(gei_state, gei) { int i; for (i = 0; i < 8; i++ ) { - palette_set_color(machine(), i, rgb_t(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1))); + palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1))); } } @@ -189,7 +189,7 @@ PALETTE_INIT_MEMBER(gei_state,quizvid) for (i = 0; i < 8; i++ ) { - palette_set_color(machine(), i, rgb_t(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2))); + palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2))); } } @@ -1164,7 +1164,8 @@ static MACHINE_CONFIG_START( getrivia, gei_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(48, 511-48, 16, 255-16) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(gei_state, gei) MCFG_NVRAM_ADD_0FILL("nvram") @@ -1192,8 +1193,9 @@ static MACHINE_CONFIG_DERIVED( quizvid, findout ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(quizvid_map) - - MCFG_PALETTE_INIT_OVERRIDE(gei_state,quizvid) + + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(gei_state,quizvid) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gselect, getrivia ) diff --git a/src/mame/drivers/ggconnie.c b/src/mame/drivers/ggconnie.c index 1a402180103..f27f59e45ae 100644 --- a/src/mame/drivers/ggconnie.c +++ b/src/mame/drivers/ggconnie.c @@ -271,8 +271,6 @@ static MACHINE_CONFIG_START( ggconnie, ggconnie_state ) MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/3, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( ggconnie_state, screen_update ) - MCFG_PALETTE_LENGTH( HUC6260_PALETTE_SIZE ) - MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK/3, sgx_huc6260_config ) MCFG_HUC6270_ADD( "huc6270_0", sgx_huc6270_0_config ) MCFG_HUC6270_ADD( "huc6270_1", sgx_huc6270_1_config ) diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c index 52b5ee86381..d7d4c2251ad 100644 --- a/src/mame/drivers/ghosteo.c +++ b/src/mame/drivers/ghosteo.c @@ -653,10 +653,10 @@ static MACHINE_CONFIG_START( ghosteo, ghosteo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) - MCFG_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf) + MCFG_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf, "palette") // MCFG_NAND_ADD("nand", 0xEC, 0x75) // MCFG_DEVICE_CONFIG(bballoon_nand_intf) diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c index be15d7bde16..1340d7ee41f 100644 --- a/src/mame/drivers/gijoe.c +++ b/src/mame/drivers/gijoe.c @@ -216,7 +216,7 @@ static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16, gijoe_state ) AM_RANGE(0x160000, 0x160007) AM_DEVWRITE("k056832", k056832_device, b_word_w) // VSCCS (board dependent) AM_RANGE(0x170000, 0x170001) AM_WRITENOP // Watchdog AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_SHARE("workram") // Main RAM. Spec. 180000-1803ff, 180400-187fff - AM_RANGE(0x190000, 0x190fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x190000, 0x190fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x1a0000, 0x1a001f) AM_DEVWRITE("k053251", k053251_device, lsb_w) AM_RANGE(0x1b0000, 0x1b003f) AM_DEVWRITE("k056832", k056832_device, word_w) AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(sound_cmd_w) @@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_UPDATE_BEFORE_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -347,13 +347,17 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state ) MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(gijoe_state, screen_update_gijoe) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD("k056832", gijoe_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053246_ADD("k053246", gijoe_k053247_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c index 5cc68325012..fbf4b6773d5 100644 --- a/src/mame/drivers/ginganin.c +++ b/src/mame/drivers/ginganin.c @@ -76,7 +76,7 @@ static ADDRESS_MAP_START( ginganin_map, AS_PROGRAM, 16, ginganin_state ) AM_RANGE(0x020000, 0x023fff) AM_RAM AM_RANGE(0x030000, 0x0307ff) AM_RAM_WRITE(ginganin_txtram16_w) AM_SHARE("txtram") AM_RANGE(0x040000, 0x0407ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x050000, 0x0507ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x050000, 0x0507ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x060000, 0x06000f) AM_RAM_WRITE(ginganin_vregs16_w) AM_SHARE("vregs") AM_RANGE(0x068000, 0x06bfff) AM_RAM_WRITE(ginganin_fgram16_w) AM_SHARE("fgram") AM_RANGE(0x070000, 0x070001) AM_READ_PORT("P1_P2") @@ -274,8 +274,8 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state ) MCFG_SCREEN_UPDATE_DRIVER(ginganin_state, screen_update_ginganin) MCFG_GFXDECODE_ADD("gfxdecode", ginganin) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c index f8bc5fc45d5..80a749fbe87 100644 --- a/src/mame/drivers/gladiatr.c +++ b/src/mame/drivers/gladiatr.c @@ -683,7 +683,7 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state ) MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_ppking) MCFG_GFXDECODE_ADD("gfxdecode", ppking) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(gladiatr_state,ppking) @@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state ) MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_gladiatr) MCFG_GFXDECODE_ADD("gfxdecode", gladiatr) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(gladiatr_state,gladiatr) diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c index 77e899e4f28..323f2fdcfc1 100644 --- a/src/mame/drivers/glass.c +++ b/src/mame/drivers/glass.c @@ -81,7 +81,7 @@ static ADDRESS_MAP_START( glass_map, AS_PROGRAM, 16, glass_state ) AM_RANGE(0x102000, 0x102fff) AM_RAM /* Extra Video RAM */ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ AM_RANGE(0x108008, 0x108009) AM_WRITE(clr_int_w) /* CLR INT Video */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") @@ -205,8 +205,8 @@ static MACHINE_CONFIG_START( glass, glass_state ) MCFG_SCREEN_UPDATE_DRIVER(glass_state, screen_update_glass) MCFG_GFXDECODE_ADD("gfxdecode", glass) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gluck2.c b/src/mame/drivers/gluck2.c index 1d97c93e149..d0347161be6 100644 --- a/src/mame/drivers/gluck2.c +++ b/src/mame/drivers/gluck2.c @@ -303,7 +303,7 @@ PALETTE_INIT_MEMBER(gluck2_state, gluck2) bit3 = (color_prom[i + 0x200] >> 3) & 0x01; b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -568,8 +568,8 @@ static MACHINE_CONFIG_START( gluck2, gluck2_state ) MCFG_SCREEN_UPDATE_DRIVER(gluck2_state, screen_update_gluck2) MCFG_GFXDECODE_ADD("gfxdecode", gluck2) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(gluck2_state, gluck2) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(gluck2_state, gluck2) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c index f23654305ab..646c372418f 100644 --- a/src/mame/drivers/gng.c +++ b/src/mame/drivers/gng.c @@ -50,8 +50,8 @@ static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state ) AM_RANGE(0x3002, 0x3002) AM_READ_PORT("P2") AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW1") AM_RANGE(0x3004, 0x3004) AM_READ_PORT("DSW2") - AM_RANGE(0x3800, 0x38ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2") - AM_RANGE(0x3900, 0x39ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram") + AM_RANGE(0x3800, 0x38ff) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0x3900, 0x39ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x3a00, 0x3a00) AM_WRITE(soundlatch_byte_w) AM_RANGE(0x3b08, 0x3b09) AM_WRITE(gng_bgscrollx_w) AM_RANGE(0x3b0a, 0x3b0b) AM_WRITE(gng_bgscrolly_w) @@ -324,14 +324,14 @@ void gng_state::machine_reset() For now let's fill everything with white colors until we have better info about it */ for(i=0;i<0x100;i+=4) { - m_generic_paletteram_8[i] = m_generic_paletteram2_8[i] = 0x00; - m_generic_paletteram_8[i+1] = m_generic_paletteram2_8[i+1] = 0x55; - m_generic_paletteram_8[i+2] = m_generic_paletteram2_8[i+2] = 0xaa; - m_generic_paletteram_8[i+3] = m_generic_paletteram2_8[i+3] = 0xff; - palette_set_color_rgb(machine(),i+0,0x00,0x00,0x00); - palette_set_color_rgb(machine(),i+1,0x55,0x55,0x55); - palette_set_color_rgb(machine(),i+2,0xaa,0xaa,0xaa); - palette_set_color_rgb(machine(),i+3,0xff,0xff,0xff); + m_palette->basemem().write8(i, 0x00); m_palette->extmem().write8(i, 0x00); + m_palette->basemem().write8(i+1, 0x55); m_palette->extmem().write8(i+1, 0x55); + m_palette->basemem().write8(i+2, 0xaa); m_palette->extmem().write8(i+2, 0xaa); + m_palette->basemem().write8(i+3, 0xff); m_palette->extmem().write8(i+3, 0xff); + m_palette->set_pen_color(i+0,0x00,0x00,0x00); + m_palette->set_pen_color(i+1,0x55,0x55,0x55); + m_palette->set_pen_color(i+2,0xaa,0xaa,0xaa); + m_palette->set_pen_color(i+3,0xff,0xff,0xff); } } } @@ -360,8 +360,9 @@ static MACHINE_CONFIG_START( gng, gng_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", gng) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c index fe8cb2c6854..2b71b135dbd 100644 --- a/src/mame/drivers/go2000.c +++ b/src/mame/drivers/go2000.c @@ -73,7 +73,7 @@ static ADDRESS_MAP_START( go2000_map, AS_PROGRAM, 16, go2000_state ) AM_RANGE(0x200000, 0x203fff) AM_RAM AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_SHARE("videoram") AM_RANGE(0x610000, 0x61ffff) AM_RAM AM_SHARE("videoram2") - AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x800fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("INPUTS") AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW") AM_RANGE(0x620002, 0x620003) AM_WRITE(sound_cmd_w) @@ -191,7 +191,7 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b { int tile = m_videoram[count]; int attr = m_videoram2[count]; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8); count++; } } @@ -203,7 +203,7 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b { int tile = m_videoram[count]; int attr = m_videoram2[count]; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8, 0xf); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, tile, attr, 0, 0, x * 8, y * 8, 0xf); count++; } } @@ -291,7 +291,7 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b tile_flipy = !tile_flipy; } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, (tile & 0x1fff) + bank*0x4000, attr, tile_flipx, tile_flipy, @@ -340,7 +340,8 @@ static MACHINE_CONFIG_START( go2000, go2000_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(go2000_state, screen_update_go2000) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c index 841ea98456b..cf828ab9c53 100644 --- a/src/mame/drivers/goal92.c +++ b/src/mame/drivers/goal92.c @@ -53,7 +53,7 @@ static ADDRESS_MAP_START( goal92_map, AS_PROGRAM, 16, goal92_state ) AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(goal92_foreground_w) AM_SHARE("fg_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // it has tiles for clouds, but they aren't used AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(goal92_text_w) AM_SHARE("tx_data") - AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x104000, 0x13ffff) AM_RAM AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x140800, 0x140801) AM_WRITENOP @@ -324,8 +324,8 @@ static MACHINE_CONFIG_START( goal92, goal92_state ) MCFG_SCREEN_VBLANK_DRIVER(goal92_state, screen_eof_goal92) MCFG_GFXDECODE_ADD("gfxdecode", goal92) - MCFG_PALETTE_LENGTH(128*16) - + MCFG_PALETTE_ADD("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c index 4cd44359b0b..35a596bfdd4 100644 --- a/src/mame/drivers/goindol.c +++ b/src/mame/drivers/goindol.c @@ -248,9 +248,7 @@ static MACHINE_CONFIG_START( goindol, goindol_state ) MCFG_SCREEN_UPDATE_DRIVER(goindol_state, screen_update_goindol) MCFG_GFXDECODE_ADD("gfxdecode", goindol) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c index 8ad8426fa23..1cb7fe5c2ca 100644 --- a/src/mame/drivers/goldngam.c +++ b/src/mame/drivers/goldngam.c @@ -248,7 +248,7 @@ public: required_shared_ptr<UINT16> m_videoram; DECLARE_READ16_MEMBER(unk_r); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(goldngam); UINT32 screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -283,7 +283,7 @@ UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind1 } -void goldngam_state::palette_init() +PALETTE_INIT_MEMBER(goldngam_state, goldngam) { } @@ -571,8 +571,8 @@ static MACHINE_CONFIG_START( swisspkr, goldngam_state ) MCFG_GFXDECODE_ADD("gfxdecode", goldngam) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(goldngam_state, goldngam) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index 5c08874d9e9..d153dabce4d 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -1076,7 +1076,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(goldnpkr); DECLARE_PALETTE_INIT(witchcrd); DECLARE_VIDEO_START(wcrdxtnd); DECLARE_PALETTE_INIT(wcrdxtnd); @@ -1158,7 +1158,7 @@ UINT32 goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_ind1 return 0; } -void goldnpkr_state::palette_init() +PALETTE_INIT_MEMBER(goldnpkr_state, goldnpkr) { const UINT8 *color_prom = memregion("proms")->base(); /* prom bits @@ -1174,7 +1174,7 @@ void goldnpkr_state::palette_init() /* 0000IBGR */ if (color_prom == 0) return; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax; @@ -1198,7 +1198,7 @@ void goldnpkr_state::palette_init() b = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin))); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -1226,7 +1226,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,witchcrd) if (color_prom == 0) return; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0, bit1, bit2, bit3, r, g, b, bk; @@ -1246,7 +1246,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,witchcrd) bit2 = (color_prom[i] >> 2) & 0x01; b = bk * (bit2 * 0xff); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -1270,7 +1270,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,wcrdxtnd) if (color_prom == 0) return; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0, bit1, bit2, bit3, r, g, b, bk; @@ -1292,7 +1292,7 @@ PALETTE_INIT_MEMBER(goldnpkr_state,wcrdxtnd) //if ((b == 0) & (bk = 1)) --> needs better implementation // b = 0x3f; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -3746,7 +3746,8 @@ static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state ) MCFG_MC6845_ADD("crtc", MC6845, "screen", CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */ MCFG_GFXDECODE_ADD("gfxdecode", goldnpkr) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldnpkr_state, goldnpkr) MACHINE_CONFIG_END @@ -3789,7 +3790,8 @@ static MACHINE_CONFIG_DERIVED( witchcrd, goldnpkr_base ) MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, mux_port_w)) /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -3812,7 +3814,8 @@ static MACHINE_CONFIG_DERIVED( wcfalcon, goldnpkr_base ) MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, wcfalcon_snd_w)) /* port A out, custom handler due to address + data are muxed */ /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -3834,7 +3837,8 @@ static MACHINE_CONFIG_DERIVED( wildcard, goldnpkr_base ) /* video hardware */ // MCFG_GFXDECODE_MODIFY("gfxdecode", wildcard) - MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd) // MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wildcard) /* sound hardware */ @@ -3857,7 +3861,8 @@ static MACHINE_CONFIG_DERIVED( wcrdxtnd, goldnpkr_base ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", wcrdxtnd) - MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,wcrdxtnd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(goldnpkr_state,wcrdxtnd) MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wcrdxtnd) /* sound hardware */ @@ -3886,7 +3891,8 @@ static MACHINE_CONFIG_DERIVED( wildcrdb, goldnpkr_base ) /* video hardware */ // MCFG_GFXDECODE_MODIFY("gfxdecode", wildcard) - MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd) // MCFG_VIDEO_START_OVERRIDE(goldnpkr_state,wildcard) /* sound hardware */ @@ -3908,7 +3914,8 @@ static MACHINE_CONFIG_DERIVED( genie, goldnpkr_base ) MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, mux_port_w)) /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state, witchcrd) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(goldnpkr_state,witchcrd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c index f8997a42ced..7db3e4f96e0 100644 --- a/src/mame/drivers/goldstar.c +++ b/src/mame/drivers/goldstar.c @@ -162,7 +162,7 @@ static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8, goldstar_state ) AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("aysnd", ay8910_device, address_w) AM_RANGE(0xfa00, 0xfa00) AM_WRITE(goldstar_fa00_w) AM_RANGE(0xfb00, 0xfb00) AM_DEVREADWRITE("oki", okim6295_device, read, write) - AM_RANGE(0xfd00, 0xfdff) AM_RAM_WRITE(paletteram_BBGGGRRR_byte_w) AM_SHARE("paletteram") + AM_RANGE(0xfd00, 0xfdff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfe00, 0xfe00) AM_READWRITE(protection_r,protection_w) ADDRESS_MAP_END @@ -521,8 +521,8 @@ READ8_MEMBER(goldstar_state::unkch_unk_r) /* newer / more capable hw */ static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8, goldstar_state ) AM_RANGE(0x0000, 0x9fff) AM_ROM - AM_RANGE(0xc000, 0xc1ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xc800, 0xc9ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xc000, 0xc1ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xc800, 0xc9ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram") @@ -6245,7 +6245,8 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", goldstar) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGGRRR) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6279,7 +6280,8 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", bl) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGGRRR) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6312,7 +6314,8 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", ml) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGGRRR) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6345,7 +6348,9 @@ static MACHINE_CONFIG_START( goldfrui, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", goldfrui) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGGRRR) + MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6374,7 +6379,7 @@ PALETTE_INIT_MEMBER(goldstar_state,cm) data = proms[0x000 + i] | (proms[0x100 + i] << 4); - palette_set_color_rgb(machine(), i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); + palette.set_pen_color(i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); } } @@ -6391,7 +6396,7 @@ PALETTE_INIT_MEMBER(goldstar_state,cmast91) g = proms[0x100 + i] << 4; r = proms[0x200 + i] << 4; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -6408,7 +6413,7 @@ PALETTE_INIT_MEMBER(goldstar_state,lucky8) { data = proms[0x000 + i] | (proms[0x100 + i] << 4); - palette_set_color_rgb(machine(), i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); + palette.set_pen_color(i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); } proms = memregion("proms2")->base(); @@ -6416,7 +6421,7 @@ PALETTE_INIT_MEMBER(goldstar_state,lucky8) { data = proms[i]; - palette_set_color_rgb(machine(), i + 0x80, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); + palette.set_pen_color(i + 0x80, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); } } @@ -6443,8 +6448,8 @@ static MACHINE_CONFIG_START( chrygld, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", chry10) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6484,8 +6489,8 @@ static MACHINE_CONFIG_START( cb3c, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", cb3c) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6524,8 +6529,8 @@ static MACHINE_CONFIG_START( ncb3, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", ncb3) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") @@ -6564,8 +6569,8 @@ static MACHINE_CONFIG_START( cm, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", cmbitmap) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -6604,8 +6609,8 @@ static MACHINE_CONFIG_START( cmnobmp, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", cm) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -6639,8 +6644,8 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91) MCFG_GFXDECODE_ADD("gfxdecode", cmast91) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cmast91) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cmast91) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -6677,11 +6682,12 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", ncb3) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGGRRR) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6716,11 +6722,11 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng) MCFG_GFXDECODE_ADD("gfxdecode", ncb3) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng) @@ -6755,11 +6761,11 @@ static MACHINE_CONFIG_START( bingownga, goldstar_state ) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng) MCFG_GFXDECODE_ADD("gfxdecode", bingownga) /* GFX Decode is the only difference with the parent machine */ - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng) @@ -6788,7 +6794,7 @@ PALETTE_INIT_MEMBER(goldstar_state,magodds) g = proms[0x100 + i] << 4; r = proms[0x200 + i] << 4; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -6812,10 +6818,10 @@ static MACHINE_CONFIG_START( magodds, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_magical) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds) MCFG_GFXDECODE_ADD("gfxdecode", magodds) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,magodds) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,magical) @@ -6853,10 +6859,10 @@ static MACHINE_CONFIG_START( kkotnoli, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE_ADD("gfxdecode", ncb3) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6888,10 +6894,10 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE_ADD("gfxdecode", ncb3) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6928,10 +6934,10 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE_ADD("gfxdecode", ncb3) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) @@ -6971,8 +6977,8 @@ static MACHINE_CONFIG_START( amcoe1, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", cm) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -7010,8 +7016,8 @@ static MACHINE_CONFIG_START( amcoe1a, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_amcoe1a) MCFG_GFXDECODE_ADD("gfxdecode", cm) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -7049,8 +7055,8 @@ static MACHINE_CONFIG_START( amcoe2, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", cm) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -7083,8 +7089,8 @@ static MACHINE_CONFIG_START( nfm, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", nfm) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -7114,7 +7120,8 @@ static MACHINE_CONFIG_START( unkch, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_unkch) MCFG_GFXDECODE_ADD("gfxdecode", unkch) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) //MCFG_NVRAM_HANDLER(goldstar) @@ -7162,8 +7169,8 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state ) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) MCFG_GFXDECODE_ADD("gfxdecode", pkrmast) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,cm) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,cm) MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,cherrym) @@ -7196,10 +7203,10 @@ static MACHINE_CONFIG_START( megaline, goldstar_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) MCFG_GFXDECODE_ADD("gfxdecode", megaline) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8) // MCFG_NVRAM_ADD_1FILL("nvram") MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar) diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c index c67b362d1f4..16b8fb624b1 100644 --- a/src/mame/drivers/gomoku.c +++ b/src/mame/drivers/gomoku.c @@ -134,8 +134,8 @@ static MACHINE_CONFIG_START( gomoku, gomoku_state ) MCFG_SCREEN_UPDATE_DRIVER(gomoku_state, screen_update_gomoku) MCFG_GFXDECODE_ADD("gfxdecode", gomoku) - MCFG_PALETTE_LENGTH(64) - + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(gomoku_state, gomoku) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c index 98b0f8c0cd0..a1176fb1e4f 100644 --- a/src/mame/drivers/good.c +++ b/src/mame/drivers/good.c @@ -117,7 +117,7 @@ static ADDRESS_MAP_START( good_map, AS_PROGRAM, 16, good_state ) AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN1") AM_RANGE(0x280004, 0x280005) AM_READ_PORT("IN2") - AM_RANGE(0x800000, 0x8007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x8007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x820000, 0x820fff) AM_RAM_WRITE(fg_tilemapram_w) AM_SHARE("fg_tilemapram") AM_RANGE(0x822000, 0x822fff) AM_RAM_WRITE(bg_tilemapram_w) AM_SHARE("bg_tilemapram") @@ -294,7 +294,8 @@ static MACHINE_CONFIG_START( good, good_state ) MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1) MCFG_SCREEN_UPDATE_DRIVER(good_state, screen_update_good) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c index 0a83e922c45..4298d77058f 100644 --- a/src/mame/drivers/goodejan.c +++ b/src/mame/drivers/goodejan.c @@ -307,11 +307,11 @@ void goodejan_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { if (!fx) - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+ax*16,y+ay*16,15); else - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+(dx-1-ax)*16,y+ay*16,15); } @@ -334,7 +334,7 @@ void goodejan_state::video_start() UINT32 goodejan_state::screen_update_goodejan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(screen.machine().pens[0x7ff], cliprect); //black pen + bitmap.fill(m_palette->pen(0x7ff), cliprect); //black pen m_sc0_tilemap->set_scrollx(0, (SEIBU_CRTC_SC0_SX) & 0x1ff ); m_sc0_tilemap->set_scrolly(0, (SEIBU_CRTC_SC0_SY) & 0x1ff ); @@ -395,7 +395,7 @@ static ADDRESS_MAP_START( goodejan_map, AS_PROGRAM, 16, goodejan_state ) AM_RANGE(0x00000, 0x0afff) AM_RAM AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(seibucrtc_sc0vram_w) AM_SHARE("sc0_vram") AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_SHARE("sc3_vram") - AM_RANGE(0x0d000, 0x0dfff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d000, 0x0dfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /*Guess: these two aren't used/initialized at all.*/ AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_SHARE("sc1_vram") AM_RANGE(0x0e800, 0x0efff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_SHARE("sc2_vram") @@ -662,7 +662,8 @@ static MACHINE_CONFIG_START( goodejan, goodejan_state ) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) MCFG_GFXDECODE_ADD("gfxdecode", goodejan) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(GOODEJAN_MHZ1/2,GOODEJAN_MHZ2/16) diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c index d6ceb176ea5..d55ce88244f 100644 --- a/src/mame/drivers/gotcha.c +++ b/src/mame/drivers/gotcha.c @@ -99,7 +99,7 @@ static ADDRESS_MAP_START( gotcha_map, AS_PROGRAM, 16, gotcha_state ) AM_RANGE(0x100002, 0x100003) AM_WRITE(gotcha_lamps_w) AM_RANGE(0x100004, 0x100005) AM_WRITE(gotcha_oki_bank_w) AM_RANGE(0x120000, 0x12ffff) AM_RAM - AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1405ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x180000, 0x180001) AM_READ_PORT("INPUTS") AM_RANGE(0x180002, 0x180003) AM_READ_PORT("SYSTEM") @@ -275,7 +275,8 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state ) MCFG_SCREEN_UPDATE_DRIVER(gotcha_state, screen_update_gotcha) MCFG_GFXDECODE_ADD("gfxdecode", gotcha) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) @@ -283,6 +284,7 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state ) decospr_device::set_is_bootleg(*device, true); decospr_device::set_offsets(*device, 5,-1); // aligned to 2nd instruction screen in attract MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index dff6f77a60e..eaed5e3fbf2 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -1740,7 +1740,7 @@ static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state ) MCFG_SCREEN_UPDATE_DRIVER(gottlieb_state, screen_update_gottlieb) MCFG_GFXDECODE_ADD("gfxdecode", gfxdecode) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) // basic speaker configuration MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c index f7c14f7f6b0..4431ebf6d0b 100644 --- a/src/mame/drivers/gotya.c +++ b/src/mame/drivers/gotya.c @@ -203,8 +203,8 @@ static MACHINE_CONFIG_START( gotya, gotya_state ) MCFG_SCREEN_UPDATE_DRIVER(gotya_state, screen_update_gotya) MCFG_GFXDECODE_ADD("gfxdecode", gotya) - MCFG_PALETTE_LENGTH(16*4) - + MCFG_PALETTE_ADD("palette", 16*4) + MCFG_PALETTE_INIT_OWNER(gotya_state, gotya) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c index f23c7c1a482..8a93e3c59a1 100644 --- a/src/mame/drivers/gpworld.c +++ b/src/mame/drivers/gpworld.c @@ -110,7 +110,7 @@ void gpworld_state::gpworld_draw_tiles(bitmap_rgb32 &bitmap,const rectangle &cli { int current_screen_character = (characterY*64) + characterX; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, m_tile_ram[current_screen_character], + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, m_tile_ram[current_screen_character], characterY, 0, 0, characterX*8, characterY*8, 0); } } @@ -125,7 +125,7 @@ void gpworld_state::draw_pixel(bitmap_rgb32 &bitmap,const rectangle &cliprect,in } if (cliprect.contains(x, y)) - bitmap.pix32(y, x) = machine().pens[color]; + bitmap.pix32(y, x) = m_palette->pen(color); } void gpworld_state::gpworld_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -215,10 +215,10 @@ void gpworld_state::gpworld_draw_sprites(bitmap_rgb32 &bitmap, const rectangle & } /* Daphne says "don't draw the pixel if it's black". */ - draw_pixel(bitmap,cliprect,x+0,y,palette_get_color(machine(), pixel1 + (sprite_color*0x10 + 0x200)),flip); - draw_pixel(bitmap,cliprect,x+1,y,palette_get_color(machine(), pixel2 + (sprite_color*0x10 + 0x200)),flip); - draw_pixel(bitmap,cliprect,x+2,y,palette_get_color(machine(), pixel3 + (sprite_color*0x10 + 0x200)),flip); - draw_pixel(bitmap,cliprect,x+3,y,palette_get_color(machine(), pixel4 + (sprite_color*0x10 + 0x200)),flip); + draw_pixel(bitmap,cliprect,x+0,y,m_palette->pen_color(pixel1 + (sprite_color*0x10 + 0x200)),flip); + draw_pixel(bitmap,cliprect,x+1,y,m_palette->pen_color(pixel2 + (sprite_color*0x10 + 0x200)),flip); + draw_pixel(bitmap,cliprect,x+2,y,m_palette->pen_color(pixel3 + (sprite_color*0x10 + 0x200)),flip); + draw_pixel(bitmap,cliprect,x+3,y,m_palette->pen_color(pixel4 + (sprite_color*0x10 + 0x200)),flip); x += 4; @@ -307,7 +307,7 @@ WRITE8_MEMBER(gpworld_state::palette_write) /* logerror("PAL WRITE index : %x rgb : %d %d %d (real %x) at %x\n", pal_index, r,g,b, data, offset); */ - palette_set_color(machine(), (pal_index & 0xffe) >> 1, rgb_t(a, r, g, b)); + m_palette->set_pen_color((pal_index & 0xffe) >> 1, rgb_t(a, r, g, b)); } /* PROGRAM MAP */ @@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( gpworld, gpworld_state ) MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") MCFG_GFXDECODE_ADD("gfxdecode", gpworld) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c index 95cdc90a7d1..306adaba72e 100644 --- a/src/mame/drivers/gradius3.c +++ b/src/mame/drivers/gradius3.c @@ -143,7 +143,7 @@ WRITE8_MEMBER(gradius3_state::sound_bank_w) static ADDRESS_MAP_START( gradius3_map, AS_PROGRAM, 16, gradius3_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x040000, 0x043fff) AM_RAM - AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, irq enable, priority, coin counters, other? */ AM_RANGE(0x0c8000, 0x0c8001) AM_READ_PORT("SYSTEM") AM_RANGE(0x0c8002, 0x0c8003) AM_READ_PORT("P1") @@ -308,8 +308,6 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -317,13 +315,17 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state ) MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(gradius3_state, screen_update_gradius3) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", gradius3_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", gradius3_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c index 8497b6bb6b0..93944252fd0 100644 --- a/src/mame/drivers/grchamp.c +++ b/src/mame/drivers/grchamp.c @@ -681,6 +681,7 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) + MCFG_GFXDECODE_ADD("gfxdecode", grchamp) MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index 4fd97861196..a356823bc6a 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -427,8 +427,8 @@ static MACHINE_CONFIG_START( gridlee, gridlee_state ) MCFG_SCREEN_RAW_PARAMS(GRIDLEE_PIXEL_CLOCK, GRIDLEE_HTOTAL, GRIDLEE_HBEND, GRIDLEE_HBSTART, GRIDLEE_VTOTAL, GRIDLEE_VBEND, GRIDLEE_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(gridlee_state, screen_update_gridlee) - MCFG_PALETTE_LENGTH(2048) - + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_INIT_OWNER(gridlee_state,gridlee) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index 9e5f726cf81..a1ad1451ee0 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -88,7 +88,7 @@ WRITE32_MEMBER(groundfx_state::color_ram_w) g = (a &0xff00) >> 8; b = (a &0xff); - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } } @@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( groundfx, groundfx_state ) MCFG_SCREEN_UPDATE_DRIVER(groundfx_state, screen_update_groundfx) MCFG_GFXDECODE_ADD("gfxdecode", groundfx) - MCFG_PALETTE_LENGTH(16384) + MCFG_PALETTE_ADD("palette", 16384) MCFG_TC0100SCN_ADD("tc0100scn", groundfx_tc0100scn_intf) diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c index 49de479241a..6a2f15dd334 100644 --- a/src/mame/drivers/gstream.c +++ b/src/mame/drivers/gstream.c @@ -246,12 +246,12 @@ WRITE32_MEMBER(gstream_state::gstream_palette_w) { COMBINE_DATA(&m_paletteram[offset]); - palette_set_color_rgb(machine(), offset * 2, pal5bit(m_paletteram[offset] >> (0 + 16)), + m_palette->set_pen_color(offset * 2, pal5bit(m_paletteram[offset] >> (0 + 16)), pal5bit(m_paletteram[offset] >> (6 + 16)), pal5bit(m_paletteram[offset] >> (11 + 16))); - palette_set_color_rgb(machine(),offset * 2 + 1,pal5bit(m_paletteram[offset] >> (0)), + m_palette->set_pen_color(offset * 2 + 1,pal5bit(m_paletteram[offset] >> (0)), pal5bit(m_paletteram[offset] >> (6)), pal5bit(m_paletteram[offset] >> (11))); } @@ -785,7 +785,7 @@ void gstream_state::draw_bg_gstream(bitmap_rgb32 &bitmap, const rectangle &clipr if (m_gfxdecode->gfx(map+5)) drawgfx_transpen_x2222(bitmap,cliprect,m_gfxdecode->gfx(map),m_gfxdecode->gfx(map+5),code,0,0,0,(x*32)-(scrollx&0x1f)-m_xoffset,(y*32)-(scrolly&0x1f),0); else - m_gfxdecode->gfx(map)->transpen(bitmap,cliprect,code,pal,0,0,(x*32)-(scrollx&0x1f)-m_xoffset,(y*32)-(scrolly&0x1f),0); + m_gfxdecode->gfx(map)->transpen(m_palette,bitmap,cliprect,code,pal,0,0,(x*32)-(scrollx&0x1f)-m_xoffset,(y*32)-(scrolly&0x1f),0); basex++; } @@ -841,10 +841,10 @@ UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_rgb32 } else { - m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y, 0); - m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y-0x100, 0); - m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y, 0); - m_gfxdecode->gfx(3)->transpen(bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y-0x100, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset, y-0x100, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap, cliprect, code, col, 0, 0, x - m_xoffset - 0x200, y-0x100, 0); } } @@ -895,8 +895,8 @@ static MACHINE_CONFIG_START( gstream, gstream_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream) - MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers - MCFG_GFXDECODE_ADD("gfxdecode",gstream) + MCFG_PALETTE_ADD("palette", 0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers + MCFG_GFXDECODE_ADD("gfxdecode", gstream) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -927,8 +927,8 @@ static MACHINE_CONFIG_START( x2222, gstream_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream) - MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // doesn't use a palette, but keep fake gfxdecode happy - MCFG_GFXDECODE_ADD("gfxdecode",x2222) + MCFG_PALETTE_ADD("palette", 0x1000 + 0x400 + 0x400 + 0x400) // doesn't use a palette, but keep fake gfxdecode happy + MCFG_GFXDECODE_ADD("gfxdecode", x2222) // unknown sound hw (no sound roms dumped) diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c index ce4ec2887d6..99a279c7859 100644 --- a/src/mame/drivers/gstriker.c +++ b/src/mame/drivers/gstriker.c @@ -277,7 +277,7 @@ static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16, gstriker_state ) AM_RANGE(0x140000, 0x141fff) AM_RAM AM_SHARE("cg10103_vram") AM_RANGE(0x180000, 0x180fff) AM_RAM_WRITE(VS920A_0_vram_w) AM_SHARE("vs920a_vram") AM_RANGE(0x181000, 0x181fff) AM_RAM AM_SHARE("lineram") - AM_RANGE(0x1c0000, 0x1c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1c0000, 0x1c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x20000f) AM_RAM_WRITE(MB60553_0_regs_w) AM_RANGE(0x200040, 0x20005f) AM_RAM @@ -314,7 +314,7 @@ static ADDRESS_MAP_START( vgoal_map, AS_PROGRAM, 16, gstriker_state ) AM_RANGE(0x140000, 0x141fff) AM_RAM AM_SHARE("cg10103_vram") AM_RANGE(0x180000, 0x180fff) AM_RAM_WRITE(VS920A_0_vram_w) AM_SHARE("vs920a_vram") AM_RANGE(0x181000, 0x181fff) AM_RAM AM_SHARE("lineram") - AM_RANGE(0x1c0000, 0x1c4fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1c0000, 0x1c4fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x20000f) AM_RAM_WRITE(MB60553_0_regs_w) AM_RANGE(0x200040, 0x20005f) AM_RAM @@ -553,7 +553,8 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state ) MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker) MCFG_GFXDECODE_ADD("gfxdecode", gstriker) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) MCFG_VSYSTEM_SPR_SET_GFXREGION(2) @@ -561,6 +562,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state ) MCFG_VSYSTEM_SPR_SET_PALMASK(0x1f) MCFG_VSYSTEM_SPR_SET_TRANSPEN(0) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(gstriker_state,gstriker) @@ -602,12 +604,14 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state ) MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker) MCFG_GFXDECODE_ADD("gfxdecode", gstriker) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) MCFG_VSYSTEM_SPR_SET_GFXREGION(2) MCFG_VSYSTEM_SPR_SET_PALBASE(0x00) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(gstriker_state,vgoalsoc) diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c index 175c45d5d2e..b03d34a889d 100644 --- a/src/mame/drivers/gsword.c +++ b/src/mame/drivers/gsword.c @@ -686,9 +686,9 @@ static MACHINE_CONFIG_START( gsword, gsword_state ) MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword) MCFG_GFXDECODE_ADD("gfxdecode", gsword) - MCFG_PALETTE_LENGTH(64*4+64*4) + MCFG_PALETTE_ADD("palette", 64*4+64*4) - MCFG_PALETTE_INIT_OVERRIDE(gsword_state,gsword) + MCFG_PALETTE_INIT_OWNER(gsword_state,gsword) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -729,9 +729,9 @@ static MACHINE_CONFIG_START( josvolly, gsword_state ) MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword) MCFG_GFXDECODE_ADD("gfxdecode", gsword) - MCFG_PALETTE_LENGTH(64*4+64*4) + MCFG_PALETTE_ADD("palette", 64*4+64*4) - MCFG_PALETTE_INIT_OVERRIDE(gsword_state,josvolly) + MCFG_PALETTE_INIT_OWNER(gsword_state,josvolly) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c index afc8b543c13..ead1976c286 100644 --- a/src/mame/drivers/gticlub.c +++ b/src/mame/drivers/gticlub.c @@ -308,7 +308,7 @@ WRITE32_MEMBER(gticlub_state::paletteram32_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; - palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); + m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } WRITE_LINE_MEMBER(gticlub_state::voodoo_vblank_0) @@ -917,7 +917,7 @@ UINT32 gticlub_state::screen_update_gticlub(screen_device &screen, bitmap_rgb32 UINT32 gticlub_state::screen_update_hangplt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); if (strcmp(screen.tag(), ":lscreen") == 0) { @@ -979,13 +979,14 @@ static MACHINE_CONFIG_START( gticlub, gticlub_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_DRIVER(gticlub_state, screen_update_gticlub) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_VIDEO_START_OVERRIDE(gticlub_state,gticlub) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K001604_ADD("k001604_1", gticlub_k001604_intf) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MCFG_K056800_ADD("k056800", XTAL_33_8688MHz/2) MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_2)) @@ -1014,6 +1015,7 @@ static MACHINE_CONFIG_DERIVED( slrasslt, gticlub ) MCFG_DEVICE_REMOVE("k001604_1") MCFG_K001604_ADD("k001604_1", slrasslt_k001604_intf) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MACHINE_CONFIG_END @@ -1089,7 +1091,7 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state ) MCFG_K033906_ADD("k033906_2", hangplt_k033906_intf_1) /* video hardware */ - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -1107,9 +1109,11 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state ) MCFG_K001604_ADD("k001604_1", hangplt_k001604_intf_l) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MCFG_K001604_ADD("k001604_2", hangplt_k001604_intf_r) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MCFG_K056800_ADD("k056800", XTAL_33_8688MHz/2) MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_2)) diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c index ac1644243ea..419152c1b65 100644 --- a/src/mame/drivers/guab.c +++ b/src/mame/drivers/guab.c @@ -228,7 +228,7 @@ WRITE16_MEMBER(guab_state::ef9369_w) col = pal.clut[entry] & 0xfff; /* Update the MAME palette */ - palette_set_color_rgb(machine(), entry, pal4bit(col >> 0), pal4bit(col >> 4), pal4bit(col >> 8)); + m_palette->set_pen_color(entry, pal4bit(col >> 0), pal4bit(col >> 4), pal4bit(col >> 8)); } /* Address register auto-increment */ @@ -265,7 +265,7 @@ UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitma /* If blanked, fill with black */ if (m_tms34061->m_display.blanked) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); return 0; } @@ -279,8 +279,8 @@ UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitma UINT8 pen = src[x >> 1]; /* Draw two 4-bit pixels */ - *dest++ = machine().pens[pen >> 4]; - *dest++ = machine().pens[pen & 0x0f]; + *dest++ = m_palette->pen(pen >> 4); + *dest++ = m_palette->pen(pen & 0x0f); } } @@ -805,7 +805,7 @@ static MACHINE_CONFIG_START( guab, guab_state ) MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(guab_state, screen_update_guab) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_TMS34061_ADD("tms34061", tms34061intf) diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c index 19b5c9cf69b..55431d51644 100644 --- a/src/mame/drivers/gumbo.c +++ b/src/mame/drivers/gumbo.c @@ -49,7 +49,7 @@ PCB Layout static ADDRESS_MAP_START( gumbo_map, AS_PROGRAM, 16, gumbo_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x083fff) AM_RAM // main ram - AM_RANGE(0x1b0000, 0x1b03ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1b0000, 0x1b03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("P1_P2") AM_RANGE(0x1c0200, 0x1c0201) AM_READ_PORT("DSW") AM_RANGE(0x1c0300, 0x1c0301) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) @@ -63,7 +63,7 @@ static ADDRESS_MAP_START( mspuzzle_map, AS_PROGRAM, 16, gumbo_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x103fff) AM_RAM // main ram AM_RANGE(0x190000, 0x197fff) AM_RAM_WRITE(gumbo_fg_videoram_w) AM_SHARE("fg_videoram") // fg tilemap - AM_RANGE(0x1a0000, 0x1a03ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1a0000, 0x1a03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x1b0100, 0x1b0101) AM_READ_PORT("P1_P2") AM_RANGE(0x1b0200, 0x1b0201) AM_READ_PORT("DSW") AM_RANGE(0x1b0300, 0x1b0301) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) @@ -73,7 +73,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dblpoint_map, AS_PROGRAM, 16, gumbo_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x083fff) AM_RAM // main ram - AM_RANGE(0x1b0000, 0x1b03ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1b0000, 0x1b03ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("P1_P2") AM_RANGE(0x1c0200, 0x1c0201) AM_READ_PORT("DSW") AM_RANGE(0x1c0300, 0x1c0301) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) @@ -242,8 +242,8 @@ static MACHINE_CONFIG_START( gumbo, gumbo_state ) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(gumbo_state, screen_update_gumbo) - MCFG_PALETTE_LENGTH(0x200) - + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c index 61d8f805c81..664d3ab45b2 100644 --- a/src/mame/drivers/gunbustr.c +++ b/src/mame/drivers/gunbustr.c @@ -75,10 +75,10 @@ WRITE32_MEMBER(gunbustr_state::gunbustr_palette_w) COMBINE_DATA(&m_generic_paletteram_32[offset]); a = m_generic_paletteram_32[offset] >> 16; - palette_set_color_rgb(machine(),offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); + m_palette->set_pen_color(offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); a = m_generic_paletteram_32[offset] &0xffff; - palette_set_color_rgb(machine(),offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); + m_palette->set_pen_color(offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); } CUSTOM_INPUT_MEMBER(gunbustr_state::coin_word_r) @@ -312,7 +312,7 @@ static MACHINE_CONFIG_START( gunbustr, gunbustr_state ) MCFG_SCREEN_UPDATE_DRIVER(gunbustr_state, screen_update_gunbustr) MCFG_GFXDECODE_ADD("gfxdecode", gunbustr) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_TC0480SCP_ADD("tc0480scp", gunbustr_tc0480scp_intf) diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c index b24cc57d037..c5a6a0ba1f9 100644 --- a/src/mame/drivers/gundealr.c +++ b/src/mame/drivers/gundealr.c @@ -418,7 +418,7 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state ) MCFG_SCREEN_UPDATE_DRIVER(gundealr_state, screen_update_gundealr) MCFG_GFXDECODE_ADD("gfxdecode", gundealr) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c index d465b887c5a..c43f39a08dd 100644 --- a/src/mame/drivers/gunpey.c +++ b/src/mame/drivers/gunpey.c @@ -222,7 +222,6 @@ public: DECLARE_WRITE16_MEMBER(gunpey_vregs_addr_w); DECLARE_DRIVER_INIT(gunpey); virtual void video_start(); - virtual void palette_init(); UINT32 screen_update_gunpey(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(gunpey_scanline); TIMER_CALLBACK_MEMBER(blitter_end); @@ -555,7 +554,7 @@ UINT32 gunpey_state::screen_update_gunpey(screen_device &screen, bitmap_ind16 &b int count; int scene_index; - bitmap.fill(machine().pens[0], cliprect); //black pen + bitmap.fill(m_palette->pen(0), cliprect); //black pen if((!(m_vreg_addr & 0x8000)) || (!(m_vram_bank & 0x8000))) return 0; @@ -1407,15 +1406,6 @@ INPUT_PORTS_END /***************************************************************************************/ -void gunpey_state::palette_init() -{ - int i; - - for (i = 0; i < 0x8000; i++) - palette_set_color(machine(), i, rgb_t( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f))); -} - - /*: 0x01 0x04 blitter ready @@ -1464,7 +1454,7 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state ) MCFG_SCREEN_RAW_PARAMS(57242400/8, 442, 0, 320, 264, 0, 240) /* just to get ~60 Hz */ MCFG_SCREEN_UPDATE_DRIVER(gunpey_state, screen_update_gunpey) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_GFXDECODE_ADD("gfxdecode", gunpey) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c index da44342a432..33ffe3afd58 100644 --- a/src/mame/drivers/gunsmoke.c +++ b/src/mame/drivers/gunsmoke.c @@ -312,7 +312,9 @@ static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state ) MCFG_SCREEN_UPDATE_DRIVER(gunsmoke_state, screen_update_gunsmoke) MCFG_GFXDECODE_ADD("gfxdecode", gunsmoke) - MCFG_PALETTE_LENGTH(32*4+16*16+16*16) + + MCFG_PALETTE_ADD("palette", 32*4+16*16+16*16) + MCFG_PALETTE_INIT_OWNER(gunsmoke_state, gunsmoke) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c index 0c9444742df..a58c40feae0 100644 --- a/src/mame/drivers/gyruss.c +++ b/src/mame/drivers/gyruss.c @@ -535,8 +535,8 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state ) MCFG_SCREEN_UPDATE_DRIVER(gyruss_state, screen_update_gyruss) MCFG_GFXDECODE_ADD("gfxdecode", gyruss) - MCFG_PALETTE_LENGTH(16*4+16*16) - + MCFG_PALETTE_ADD("palette", 16*4+16*16) + MCFG_PALETTE_INIT_OWNER(gyruss_state, gyruss) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c index b232f4d10de..e0a430e863f 100644 --- a/src/mame/drivers/halleys.c +++ b/src/mame/drivers/halleys.c @@ -265,7 +265,7 @@ public: DECLARE_DRIVER_INIT(halleys); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(halleys); UINT32 screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(blitter_reset); @@ -1122,7 +1122,7 @@ READ8_MEMBER(halleys_state::collision_id_r) //************************************************************************** // Video Initializations and Updates -void halleys_state::palette_init() +PALETTE_INIT_MEMBER(halleys_state, halleys) { UINT32 d, r, g, b, i, j, count; UINT32 *pal_ptr = m_internal_palette; @@ -1130,7 +1130,7 @@ void halleys_state::palette_init() for (count=0; count<1024; count++) { pal_ptr[count] = 0; - palette_set_color(machine(), count, rgb_t(0, 0, 0)); + palette.set_pen_color(count, rgb_t(0, 0, 0)); } // 00-31: palette RAM(ffc0-ffdf) @@ -1151,7 +1151,7 @@ void halleys_state::palette_init() g = r + count + BG_MONO; r += i; pal_ptr[g] = d; - palette_set_color(machine(), g, rgb_t(r, r, r)); + palette.set_pen_color(g, rgb_t(r, r, r)); } } @@ -1166,7 +1166,7 @@ void halleys_state::palette_init() g = d & 0x0c; g |= i; b = d<<2 & 0x0c; b |= i; - palette_set_color_rgb(machine(), j, pal4bit(r), pal4bit(g), pal4bit(b)); + palette.set_pen_color(j, pal4bit(r), pal4bit(g), pal4bit(b)); } } @@ -1234,13 +1234,13 @@ WRITE8_MEMBER(halleys_state::halleys_paletteram_IIRRGGBB_w) g = d & 0x0c; g |= i; g = g<<4 | g; b = d<<2 & 0x0c; b |= i; b = b<<4 | b; - palette_set_color(machine(), offset, rgb_t(r, g, b)); - palette_set_color(machine(), offset+SP_2BACK, rgb_t(r, g, b)); - palette_set_color(machine(), offset+SP_ALPHA, rgb_t(r, g, b)); - palette_set_color(machine(), offset+SP_COLLD, rgb_t(r, g, b)); + m_palette->set_pen_color(offset, rgb_t(r, g, b)); + m_palette->set_pen_color(offset+SP_2BACK, rgb_t(r, g, b)); + m_palette->set_pen_color(offset+SP_ALPHA, rgb_t(r, g, b)); + m_palette->set_pen_color(offset+SP_COLLD, rgb_t(r, g, b)); halleys_decode_rgb(&r, &g, &b, offset, 0); - palette_set_color(machine(), offset+0x20, rgb_t(r, g, b)); + m_palette->set_pen_color(offset+0x20, rgb_t(r, g, b)); } @@ -1943,7 +1943,7 @@ void halleys_state::machine_reset() m_blitter_busy = 0; m_collision_count = 0; m_stars_enabled = 0; - m_bgcolor = get_black_pen(machine()); + m_bgcolor = m_palette->black_pen(); m_fftail = m_ffhead = m_ffcount = 0; memset(m_io_ram, 0xff, m_io_ram.bytes()); @@ -1981,8 +1981,8 @@ static MACHINE_CONFIG_START( halleys, halleys_state ) MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY) MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys) - MCFG_PALETTE_LENGTH(PALETTE_SIZE) - + MCFG_PALETTE_ADD("palette", PALETTE_SIZE) + MCFG_PALETTE_INIT_OWNER(halleys_state, halleys) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c index 74a867deb06..151912588c8 100644 --- a/src/mame/drivers/hanaawas.c +++ b/src/mame/drivers/hanaawas.c @@ -210,8 +210,8 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state ) MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas) MCFG_GFXDECODE_ADD("gfxdecode", hanaawas) - MCFG_PALETTE_LENGTH(32*8) - + MCFG_PALETTE_ADD("palette", 32*8) + MCFG_PALETTE_INIT_OWNER(hanaawas_state, hanaawas) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c index 15b76f0f44f..98a75195f99 100644 --- a/src/mame/drivers/harddriv.c +++ b/src/mame/drivers/harddriv.c @@ -1340,7 +1340,7 @@ static MACHINE_CONFIG_START( driver_nomsp, harddriv_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(HARDDRIV_GSP_CLOCK/12*4, 160*4, 0, 127*4, 417, 0, 384) diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c index 324c8d226b0..329cf9ad435 100644 --- a/src/mame/drivers/hcastle.c +++ b/src/mame/drivers/hcastle.c @@ -214,11 +214,14 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state ) MCFG_SCREEN_UPDATE_DRIVER(hcastle_state, screen_update_hcastle) MCFG_GFXDECODE_ADD("gfxdecode", hcastle) - MCFG_PALETTE_LENGTH(2*8*16*16) + MCFG_PALETTE_ADD("palette", 2*8*16*16) + MCFG_PALETTE_INIT_OWNER(hcastle_state, hcastle) MCFG_K007121_ADD("k007121_1") + MCFG_K007121_PALETTE("palette") MCFG_K007121_ADD("k007121_2") + MCFG_K007121_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/headonb.c b/src/mame/drivers/headonb.c index b592cc94133..51491bc3fcd 100644 --- a/src/mame/drivers/headonb.c +++ b/src/mame/drivers/headonb.c @@ -47,7 +47,6 @@ public: DECLARE_WRITE8_MEMBER(headonb_video_ram_w); - virtual void palette_init(); virtual void video_start(); UINT32 screen_update_headonb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TILE_GET_INFO_MEMBER(get_headonb_tile_info); @@ -62,12 +61,6 @@ public: ***************************************************************************/ -void headonb_state::palette_init() -{ - palette_set_color(machine(), 0, rgb_t::black); - palette_set_color(machine(), 1, rgb_t::white); -} - TILE_GET_INFO_MEMBER(headonb_state::get_headonb_tile_info) { UINT8 code = m_video_ram[tile_index]; @@ -178,7 +171,7 @@ static MACHINE_CONFIG_START( headonb, headonb_state ) MCFG_SCREEN_UPDATE_DRIVER(headonb_state, screen_update_headonb) MCFG_GFXDECODE_ADD("gfxdecode", headonb) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ // TODO diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c index ecf110b63d4..e1f80244179 100644 --- a/src/mame/drivers/hexion.c +++ b/src/mame/drivers/hexion.c @@ -235,9 +235,7 @@ static MACHINE_CONFIG_START( hexion, hexion_state ) MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update_hexion) MCFG_GFXDECODE_ADD("gfxdecode", hexion) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hideseek.c b/src/mame/drivers/hideseek.c index 5feba86cadb..042b64d3fec 100644 --- a/src/mame/drivers/hideseek.c +++ b/src/mame/drivers/hideseek.c @@ -41,7 +41,7 @@ public: DECLARE_DRIVER_INIT(hideseek); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(hideseek); UINT32 screen_update_hideseek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -82,12 +82,12 @@ static GFXDECODE_START( hideseek ) GFXDECODE_END -void hideseek_state::palette_init() +PALETTE_INIT_MEMBER(hideseek_state, hideseek) { int i; for (i = 0; i < 0x8000; i++) - palette_set_color(machine(), i, rgb_t( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f))); + palette.set_pen_color(i, rgb_t( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f))); } @@ -107,7 +107,8 @@ static MACHINE_CONFIG_START( hideseek, hideseek_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(hideseek_state, screen_update_hideseek) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_INIT_OWNER(hideseek_state, hideseek) MCFG_GFXDECODE_ADD("gfxdecode", hideseek) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c index 3af74abecc4..2315fa5112d 100644 --- a/src/mame/drivers/higemaru.c +++ b/src/mame/drivers/higemaru.c @@ -173,8 +173,9 @@ static MACHINE_CONFIG_START( higemaru, higemaru_state ) MCFG_SCREEN_UPDATE_DRIVER(higemaru_state, screen_update_higemaru) MCFG_GFXDECODE_ADD("gfxdecode", higemaru) - MCFG_PALETTE_LENGTH(32*4+16*16) + MCFG_PALETTE_ADD("palette", 32*4+16*16) + MCFG_PALETTE_INIT_OWNER(higemaru_state, higemaru) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c index faa2fd7577d..c5c7033c507 100644 --- a/src/mame/drivers/highvdeo.c +++ b/src/mame/drivers/highvdeo.c @@ -172,12 +172,12 @@ UINT32 highvdeo_state::screen_update_tourvisn(screen_device &screen, bitmap_rgb3 color = ((m_blit_ram[count]) & 0x00ff)>>0; if(cliprect.contains((x*2)+0, y)) - bitmap.pix32(y, (x*2)+0) = machine().pens[color]; + bitmap.pix32(y, (x*2)+0) = m_palette->pen(color); color = ((m_blit_ram[count]) & 0xff00)>>8; if(cliprect.contains((x*2)+1, y)) - bitmap.pix32(y, (x*2)+1) = machine().pens[color]; + bitmap.pix32(y, (x*2)+1) = m_palette->pen(color); count++; } @@ -257,7 +257,7 @@ WRITE16_MEMBER(highvdeo_state::tv_vcf_paletteram_w) break; case 2: m_pal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4); - palette_set_color(machine(), m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b)); + m_palette->set_pen_color(m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b)); m_pal.offs_internal = 0; m_pal.offs++; break; @@ -441,7 +441,7 @@ WRITE16_MEMBER(highvdeo_state::tv_tcf_paletteram_w) g = (color >> 3) & 0xf8; b = (color << 3) & 0xf8; - palette_set_color_rgb(machine(), offset, r, g, b); + m_palette->set_pen_color(offset, r, g, b); } WRITE16_MEMBER(highvdeo_state::tv_tcf_bankselect_w) @@ -1086,7 +1086,7 @@ static MACHINE_CONFIG_START( tv_vcf, highvdeo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn) @@ -1160,7 +1160,7 @@ static MACHINE_CONFIG_START( brasil, highvdeo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(highvdeo_state,tourvisn) diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c index 8aafac4c226..73d888258f6 100644 --- a/src/mame/drivers/hikaru.c +++ b/src/mame/drivers/hikaru.c @@ -502,7 +502,7 @@ static MACHINE_CONFIG_START( hikaru, hikaru_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(hikaru_state, screen_update_hikaru) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) // MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c index d4c45545447..4a11ffda16c 100644 --- a/src/mame/drivers/himesiki.c +++ b/src/mame/drivers/himesiki.c @@ -109,7 +109,7 @@ static ADDRESS_MAP_START( himesiki_prm0, AS_PROGRAM, 8, himesiki_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_RAM AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xa800, 0xafff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb000, 0xbfff) AM_RAM_WRITE(himesiki_bg_ram_w) AM_SHARE("bg_ram") AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1") ADDRESS_MAP_END @@ -306,7 +306,8 @@ static MACHINE_CONFIG_START( himesiki, himesiki_state ) MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki) MCFG_GFXDECODE_ADD("gfxdecode", himesiki) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 97dbf9518bd..d7babf8a7ad 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -323,9 +323,8 @@ static MACHINE_CONFIG_START( hitme, hitme_state ) MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme) MCFG_GFXDECODE_ADD("gfxdecode", hitme) - 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/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c index 99b60be8487..6fefcfc8f1e 100644 --- a/src/mame/drivers/hitpoker.c +++ b/src/mame/drivers/hitpoker.c @@ -117,7 +117,7 @@ UINT32 hitpoker_state::screen_update_hitpoker(screen_device &screen, bitmap_ind1 gfx_bpp = (m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp color = gfx_bpp ? ((m_colorram[count] & 0x70)>>4) : (m_colorram[count] & 0xf); - m_gfxdecode->gfx(gfx_bpp)->opaque(bitmap,cliprect,tile,color,0,0,x*8,y*8); + m_gfxdecode->gfx(gfx_bpp)->opaque(m_palette,bitmap,cliprect,tile,color,0,0,x*8,y*8); count+=2; } @@ -181,7 +181,7 @@ WRITE8_MEMBER(hitpoker_state::hitpoker_paletteram_w) g = ((datax)&0x07e0)>>5; r = ((datax)&0x001f)>>0; - palette_set_color_rgb(machine(), offset, pal5bit(r), pal6bit(g), pal5bit(b)); + m_palette->set_pen_color(offset, pal5bit(r), pal6bit(g), pal5bit(b)); } READ8_MEMBER(hitpoker_state::rtc_r) @@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( hitpoker, hitpoker_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", CRTC_CLOCK/2, mc6845_intf) /* hand tuned to get ~60 fps */ MCFG_GFXDECODE_ADD("gfxdecode", hitpoker) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c index 10b286098f8..8ac847bd948 100644 --- a/src/mame/drivers/hnayayoi.c +++ b/src/mame/drivers/hnayayoi.c @@ -565,9 +565,7 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(hnayayoi_state, screen_update_hnayayoi) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 8983d59e173..0f039cb5d7f 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -525,7 +525,7 @@ WRITE32_MEMBER(hng64_state::hng64_pal_w) g = ((paletteram[offset] & 0x0000ff00) >>8); r = ((paletteram[offset] & 0x00ff0000) >>16); //a = ((paletteram[offset] & 0xff000000) >>24); - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } READ32_MEMBER(hng64_state::hng64_sysregs_r) @@ -1970,10 +1970,9 @@ static MACHINE_CONFIG_START( hng64, hng64_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(hng64_state, screen_update_hng64) - - MCFG_PALETTE_LENGTH(0x1000) - MCFG_SCREEN_VBLANK_DRIVER(hng64_state, screen_eof_hng64) + + MCFG_PALETTE_ADD("palette", 0x1000) MACHINE_CONFIG_END diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c index 7484ca2133e..32668afdbc7 100644 --- a/src/mame/drivers/holeland.c +++ b/src/mame/drivers/holeland.c @@ -291,9 +291,7 @@ static MACHINE_CONFIG_START( holeland, holeland_state ) MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland) MCFG_GFXDECODE_ADD("gfxdecode", holeland) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(holeland_state,holeland) /* sound hardware */ @@ -361,9 +359,7 @@ static MACHINE_CONFIG_START( crzrally, holeland_state ) MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_crzrally) MCFG_GFXDECODE_ADD("gfxdecode", crzrally) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(holeland_state,crzrally) /* sound hardware */ diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c index 89559180671..97148393b47 100644 --- a/src/mame/drivers/homedata.c +++ b/src/mame/drivers/homedata.c @@ -1241,9 +1241,9 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state ) MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata) MCFG_GFXDECODE_ADD("gfxdecode", mrokumei) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) - MCFG_PALETTE_INIT_OVERRIDE(homedata_state,mrokumei) + MCFG_PALETTE_INIT_OWNER(homedata_state,mrokumei) MCFG_VIDEO_START_OVERRIDE(homedata_state,mrokumei) /* sound hardware */ @@ -1298,9 +1298,9 @@ static MACHINE_CONFIG_START( reikaids, homedata_state ) MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata) MCFG_GFXDECODE_ADD("gfxdecode", reikaids) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) - MCFG_PALETTE_INIT_OVERRIDE(homedata_state,reikaids) + MCFG_PALETTE_INIT_OWNER(homedata_state,reikaids) MCFG_VIDEO_START_OVERRIDE(homedata_state,reikaids) /* sound hardware */ @@ -1348,9 +1348,9 @@ static MACHINE_CONFIG_START( pteacher, homedata_state ) MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata) MCFG_GFXDECODE_ADD("gfxdecode", pteacher) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) - MCFG_PALETTE_INIT_OVERRIDE(homedata_state,pteacher) + MCFG_PALETTE_INIT_OWNER(homedata_state,pteacher) MCFG_VIDEO_START_OVERRIDE(homedata_state,pteacher) /* sound hardware */ @@ -1510,9 +1510,9 @@ static MACHINE_CONFIG_START( mirderby, homedata_state ) MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mirderby) MCFG_GFXDECODE_ADD("gfxdecode", mirderby) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) - MCFG_PALETTE_INIT_OVERRIDE(homedata_state,mirderby) + MCFG_PALETTE_INIT_OWNER(homedata_state,mirderby) MCFG_VIDEO_START_OVERRIDE(homedata_state,mirderby) /* sound hardware */ diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c index 73a842b1fbf..4b1374d5349 100644 --- a/src/mame/drivers/homerun.c +++ b/src/mame/drivers/homerun.c @@ -390,7 +390,7 @@ static MACHINE_CONFIG_START( dynashot, homerun_state ) MCFG_SCREEN_UPDATE_DRIVER(homerun_state, screen_update_homerun) MCFG_GFXDECODE_ADD("gfxdecode", homerun) - MCFG_PALETTE_LENGTH(16*4) + MCFG_PALETTE_ADD("palette", 16*4) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index c197a41d335..a6c2c38daa5 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -999,12 +999,13 @@ static MACHINE_CONFIG_START( hornet, hornet_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K037122_ADD("k037122_1", "screen", 0) MCFG_K037122_GFXDECODE("gfxdecode") + MCFG_K037122_PALETTE("palette") MCFG_K056800_ADD("k056800", XTAL_16_9344MHz) MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_2)) @@ -1075,9 +1076,11 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet ) MCFG_DEVICE_REMOVE("k037122_1") MCFG_K037122_ADD("k037122_1", "lscreen", 0) MCFG_K037122_GFXDECODE("gfxdecode") + MCFG_K037122_PALETTE("palette") MCFG_K037122_ADD("k037122_2", "rscreen", 1) MCFG_K037122_GFXDECODE("gfxdecode") + MCFG_K037122_PALETTE("palette") MCFG_DEVICE_REMOVE("voodoo0") MCFG_3DFX_VOODOO_1_ADD("voodoo0", STD_VOODOO_1_CLOCK, voodoo_l_intf) @@ -1086,7 +1089,8 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet ) MCFG_K033906_ADD("k033906_2", hornet_k033906_intf_1) /* video hardware */ - MCFG_PALETTE_LENGTH(65536) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 65536) MCFG_DEVICE_REMOVE("screen") diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c index 4f49c01bb59..de7a58c6340 100644 --- a/src/mame/drivers/hotblock.c +++ b/src/mame/drivers/hotblock.c @@ -152,12 +152,12 @@ UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind1 int i; static const int xxx = 320, yyy = 204; - bitmap.fill(get_black_pen(machine())); + bitmap.fill(m_palette->black_pen()); for (i = 0; i < 256; i++) { int dat = (m_pal[i * 2 + 1] << 8) | m_pal[i * 2]; - palette_set_color_rgb(machine(), i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10)); + m_palette->set_pen_color(i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10)); } count = 0; @@ -230,7 +230,7 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c index cbe5ab2217a..cec4fd0591f 100644 --- a/src/mame/drivers/hotstuff.c +++ b/src/mame/drivers/hotstuff.c @@ -136,7 +136,7 @@ static MACHINE_CONFIG_START( hotstuff, hotstuff_state ) MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1) MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c index b24703a353d..7e21642c5c3 100644 --- a/src/mame/drivers/hvyunit.c +++ b/src/mame/drivers/hvyunit.c @@ -187,7 +187,7 @@ UINT32 hvyunit_state::screen_update_hvyunit(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_pandora->update(bitmap, cliprect); @@ -422,8 +422,8 @@ static ADDRESS_MAP_START( slave_memory, AS_PROGRAM, 8, hvyunit_state ) AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(hu_videoram_w) AM_SHARE("videoram") AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(hu_colorram_w) AM_SHARE("colorram") - AM_RANGE(0xd000, 0xd1ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_split_hi_w) AM_SHARE("paletteram2") - AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_split_lo_w) AM_SHARE("paletteram") + AM_RANGE(0xd000, 0xd1ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0xd800, 0xd9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd000, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1") ADDRESS_MAP_END @@ -668,10 +668,12 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state ) MCFG_SCREEN_VBLANK_DRIVER(hvyunit_state, screen_eof_hvyunit) MCFG_GFXDECODE_ADD("gfxdecode", hvyunit) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_KANEKO_PANDORA_ADD("pandora", hvyunit_pandora_config) MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode") + MCFG_KANEKO_PANDORA_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c index 9cde7e130f4..506ecca6d12 100644 --- a/src/mame/drivers/hyperspt.c +++ b/src/mame/drivers/hyperspt.c @@ -308,8 +308,8 @@ static MACHINE_CONFIG_START( hyperspt, hyperspt_state ) MCFG_SCREEN_UPDATE_DRIVER(hyperspt_state, screen_update_hyperspt) MCFG_GFXDECODE_ADD("gfxdecode", hyperspt) - MCFG_PALETTE_LENGTH(16*16+16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16) + MCFG_PALETTE_INIT_OWNER(hyperspt_state, hyperspt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c index 0318f816e60..bf55ca9673b 100644 --- a/src/mame/drivers/hyprduel.c +++ b/src/mame/drivers/hyprduel.c @@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state ) MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel) MCFG_GFXDECODE_ADD("gfxdecode", 14220) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(hyprduel_state,hyprduel_14220) @@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state ) MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel) MCFG_GFXDECODE_ADD("gfxdecode", 14220) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(hyprduel_state,magerror_14220) diff --git a/src/mame/drivers/ichiban.c b/src/mame/drivers/ichiban.c index 1e1887265c2..d69cebcb0cf 100644 --- a/src/mame/drivers/ichiban.c +++ b/src/mame/drivers/ichiban.c @@ -130,8 +130,7 @@ static MACHINE_CONFIG_START( ichibanjyan, ichibanjyan_state ) MCFG_GFXDECODE_ADD("gfxdecode", ichibanjyan) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index 5cdd058581b..c70cb892f54 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -328,7 +328,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 /* draw top of screen */ clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+2); - bitmap.fill(machine().pens[rowenable], clip); + bitmap.fill(m_palette->pen(rowenable), clip); if (rowenable==0) { // 0 and 1 are the same? or is there a global switchoff? @@ -352,7 +352,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 } } - else bitmap.fill(get_black_pen(machine()), cliprect); + else bitmap.fill(m_palette->black_pen(), cliprect); if (layers_ctrl & 2) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -475,8 +475,8 @@ static ADDRESS_MAP_START( jingbell_portmap, AS_IO, 8, igs009_state ) AM_RANGE( 0x1000, 0x11ff ) AM_RAM_WRITE(bg_scroll_w ) AM_SHARE("bg_scroll") - AM_RANGE( 0x2000, 0x23ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE( 0x2400, 0x27ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE( 0x2000, 0x23ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE( 0x2400, 0x27ff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE( 0x3000, 0x33ff ) AM_RAM_WRITE(gp98_reel1_ram_w ) AM_SHARE("gp98_reel1_ram") AM_RANGE( 0x3400, 0x37ff ) AM_RAM_WRITE(gp98_reel2_ram_w ) AM_SHARE("gp98_reel2_ram") @@ -763,7 +763,8 @@ static MACHINE_CONFIG_START( jingbell, igs009_state ) MCFG_SCREEN_UPDATE_DRIVER(igs009_state, screen_update_jingbell) MCFG_GFXDECODE_ADD("gfxdecode", jingbell) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index 430fd3ebee7..68fa2d07ed0 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -315,7 +315,7 @@ UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &b #ifdef MAME_DEBUG if ((layer_enable != -1) && (pri_addr == 0xff)) - bitmap.pix16(y, x) = get_black_pen(machine()); + bitmap.pix16(y, x) = m_palette->black_pen(); else #endif bitmap.pix16(y, x) = m_layer[l][scr_addr] | (l << 8); @@ -389,7 +389,7 @@ WRITE16_MEMBER(igs011_state::igs011_palette) COMBINE_DATA(&m_generic_paletteram_16[offset]); rgb = (m_generic_paletteram_16[offset & 0x7ff] & 0xff) | ((m_generic_paletteram_16[offset | 0x800] & 0xff) << 8); - palette_set_color_rgb(machine(),offset & 0x7ff,pal5bit(rgb >> 0),pal5bit(rgb >> 5),pal5bit(rgb >> 10)); + m_palette->set_pen_color(offset & 0x7ff,pal5bit(rgb >> 0),pal5bit(rgb >> 5),pal5bit(rgb >> 10)); } /*************************************************************************** @@ -3941,7 +3941,7 @@ static MACHINE_CONFIG_START( igs011_base, igs011_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(igs011_state, screen_update_igs011) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) // MCFG_GFXDECODE_ADD("gfxdecode", igs011) diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index bc2e80615d6..a043d4152d8 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -356,9 +356,9 @@ void igs017_state::draw_sprite(bitmap_ind16 &bitmap,const rectangle &cliprect, i if ( addr + dimx * dimy >= m_sprites_gfx_size ) return; - gfx_element gfx(machine(), m_sprites_gfx + addr, dimx, dimy, dimx, 0x100, 32); + gfx_element gfx(machine(), m_sprites_gfx + addr, dimx, dimy, dimx, m_palette->entries(), 0x100, 32); - gfx.transpen(bitmap,cliprect, + gfx.transpen(m_palette, bitmap,cliprect, 0, color, flipx, flipy, sx, sy, 0x1f ); @@ -459,7 +459,7 @@ UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &b if (debug_viewer(bitmap,cliprect)) return 0; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); if (m_video_disable) return 0; @@ -1395,7 +1395,7 @@ static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state ) AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram") - AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram") + AM_RANGE( 0x1800, 0x1bff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x1c00, 0x1fff ) AM_RAM // AM_RANGE(0x200a, 0x200a) AM_WRITENOP @@ -1511,7 +1511,7 @@ WRITE16_MEMBER(igs017_state::mgcs_paletteram_w) // bitswap bgr = BITSWAP16(bgr, 7,8,9,2,14,3,13,15,12,11,10,0,1,4,5,6); - palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); + m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); } static ADDRESS_MAP_START( mgcs, AS_PROGRAM, 16, igs017_state ) @@ -1541,7 +1541,7 @@ WRITE16_MEMBER(igs017_state::sdmg2_paletteram_w) int bgr = ((m_generic_paletteram_16[offset/2*2+1] & 0xff) << 8) | (m_generic_paletteram_16[offset/2*2+0] & 0xff); - palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); + m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); } READ8_MEMBER(igs017_state::sdmg2_keys_r) @@ -1759,7 +1759,7 @@ WRITE8_MEMBER(igs017_state::tjsb_paletteram_w) // bitswap bgr = BITSWAP16(bgr, 15,12,3,6,10,5,4,2,9,13,8,7,11,1,0,14); - palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); + m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); } WRITE8_MEMBER(igs017_state::tjsb_output_w) @@ -1878,7 +1878,7 @@ static ADDRESS_MAP_START( spkrform_io, AS_IO, 8, igs017_state ) AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram") - AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w ) AM_SHARE("paletteram") + AM_RANGE( 0x1800, 0x1bff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x1c00, 0x1fff ) AM_RAM AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read) @@ -2224,7 +2224,7 @@ WRITE16_MEMBER(igs017_state::lhzb2a_paletteram_w) // bitswap bgr = BITSWAP16(bgr, 15,9,13,12,11,5,4,8,7,6,0,14,3,2,1,10); - palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); + m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); } READ16_MEMBER(igs017_state::lhzb2a_input_r) @@ -2329,7 +2329,7 @@ WRITE16_MEMBER(igs017_state::slqz2_paletteram_w) // bitswap bgr = BITSWAP16(bgr, 15,14,9,4,11,10,12,3,7,6,5,8,13,2,1,0); - palette_set_color_rgb(machine(), offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); + m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10)); } WRITE16_MEMBER(igs017_state::slqz2_magic_w) @@ -3498,7 +3498,8 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -3562,7 +3563,8 @@ static MACHINE_CONFIG_START( mgcs, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017_flipped) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -3603,7 +3605,8 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017_swapped) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) // protection MCFG_DEVICE_ADD("igs025", IGS025, 0) @@ -3646,7 +3649,8 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017_swapped) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -3677,7 +3681,8 @@ static MACHINE_CONFIG_START( slqz2, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) // protection MCFG_DEVICE_ADD("igs025", IGS025, 0) @@ -3723,7 +3728,8 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -3774,7 +3780,8 @@ static MACHINE_CONFIG_START( mgdha, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017_swapped) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -3805,7 +3812,8 @@ static MACHINE_CONFIG_START( tjsb, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -3839,7 +3847,8 @@ static MACHINE_CONFIG_START( spkrform, igs017_state ) MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) MCFG_GFXDECODE_ADD("gfxdecode", igs017) - MCFG_PALETTE_LENGTH(0x100*2) + MCFG_PALETTE_ADD("palette", 0x100*2) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c index 7fda99077f4..9501eaba080 100644 --- a/src/mame/drivers/igs_m027.c +++ b/src/mame/drivers/igs_m027.c @@ -200,7 +200,7 @@ void igs_m027_state::video_start() UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { //?????????? - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); //?????? m_igs_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); @@ -403,7 +403,7 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware */ @@ -429,7 +429,7 @@ static MACHINE_CONFIG_START( fearless, igs_m027_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_fearless) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/igs_m036.c b/src/mame/drivers/igs_m036.c index c69d88f1436..9b672be8de0 100644 --- a/src/mame/drivers/igs_m036.c +++ b/src/mame/drivers/igs_m036.c @@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( igs_m036, igs_m036_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware (OKI) */ MACHINE_CONFIG_END @@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( igs_m036_tt, igs_m036_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware (TT5665) */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c index 28341b31518..f9962538e76 100644 --- a/src/mame/drivers/igspoker.c +++ b/src/mame/drivers/igspoker.c @@ -203,7 +203,7 @@ void igspoker_state::video_start() UINT32 igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); // FIX: CSK227IT must have some way to disable background, or wrong gfx? if (m_bg_enable) m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -364,8 +364,8 @@ static ADDRESS_MAP_START( igspoker_prg_map, AS_PROGRAM, 8, igspoker_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8, igspoker_state ) - AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ @@ -1118,8 +1118,8 @@ INPUT_PORTS_END static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state ) - AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ @@ -1141,8 +1141,8 @@ static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8, igspoker_state ) - AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ @@ -1785,8 +1785,8 @@ static MACHINE_CONFIG_START( igspoker, igspoker_state ) MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_igs_video) MCFG_GFXDECODE_ADD("gfxdecode", igspoker) - MCFG_PALETTE_LENGTH(2048) - + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c index a999766a3e2..897ac036a18 100644 --- a/src/mame/drivers/ikki.c +++ b/src/mame/drivers/ikki.c @@ -258,8 +258,8 @@ static MACHINE_CONFIG_START( ikki, ikki_state ) MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki) MCFG_GFXDECODE_ADD("gfxdecode", ikki) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(ikki_state, ikki) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c index eb27a93bdd2..dccc58935a8 100644 --- a/src/mame/drivers/imolagp.c +++ b/src/mame/drivers/imolagp.c @@ -125,7 +125,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(imolagp); UINT32 screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -136,16 +136,16 @@ public: ***************************************************************************/ -void imolagp_state::palette_init() +PALETTE_INIT_MEMBER(imolagp_state, imolagp) { // palette seems like 3bpp + intensity // this still needs to be verified for (int i = 0; i < 8; i++) { - palette_set_color_rgb(machine(), i*4+0, 0, 0, 0); - palette_set_color_rgb(machine(), i*4+1, pal1bit(i >> 2)/2, pal1bit(i >> 1)/2, pal1bit(i >> 0)/2); - palette_set_color_rgb(machine(), i*4+2, 0, 0, 0); - palette_set_color_rgb(machine(), i*4+3, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)); + palette.set_pen_color(i*4+0, 0, 0, 0); + palette.set_pen_color(i*4+1, pal1bit(i >> 2)/2, pal1bit(i >> 1)/2, pal1bit(i >> 0)/2); + palette.set_pen_color(i*4+2, 0, 0, 0); + palette.set_pen_color(i*4+3, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)); } } @@ -517,7 +517,8 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state ) MCFG_SCREEN_VISIBLE_AREA(0+48,255,0+16,255) MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp) - MCFG_PALETTE_LENGTH(0x20) + MCFG_PALETTE_ADD("palette", 0x20) + MCFG_PALETTE_INIT_OWNER(imolagp_state, imolagp) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) /* sound hardware */ diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c index 6c51b199e9d..96e23952ca5 100644 --- a/src/mame/drivers/intrscti.c +++ b/src/mame/drivers/intrscti.c @@ -45,7 +45,7 @@ UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind1 int y,x; int count; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = 0; for (y=0;y<32;y++) @@ -54,7 +54,7 @@ UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind1 { int dat; dat = m_vram[count]; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,dat/*+0x100*/,0,0,0,x*8,y*8,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,dat/*+0x100*/,0,0,0,x*8,y*8,0); count++; } } @@ -66,7 +66,7 @@ UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind1 { int dat; dat = m_vram[count]; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,dat+0x100,0,0,0,x*8,y*8,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,dat+0x100,0,0,0,x*8,y*8,0); count++; } } @@ -192,7 +192,7 @@ static MACHINE_CONFIG_START( intrscti, intrscti_state ) MCFG_SCREEN_UPDATE_DRIVER(intrscti_state, screen_update_intrscti) MCFG_GFXDECODE_ADD("gfxdecode", intrscti) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index 9ee1d72fddf..8c117525e24 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -143,7 +143,7 @@ static ADDRESS_MAP_START( inufuku_map, AS_PROGRAM, 16, inufuku_state ) AM_RANGE(0x200000, 0x200001) AM_WRITE_PORT("EEPROMOUT") AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w) // sound command - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_xGGGGGBBBBBRRRRR_word_w) AM_SHARE("paletteram") // palette ram + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram AM_RANGE(0x380000, 0x3801ff) AM_WRITEONLY AM_SHARE("bg_rasterram") // bg raster ram AM_RANGE(0x400000, 0x401fff) AM_READWRITE(inufuku_bg_videoram_r, inufuku_bg_videoram_w) AM_SHARE("bg_videoram") // bg ram AM_RANGE(0x402000, 0x403fff) AM_READWRITE(inufuku_tx_videoram_r, inufuku_tx_videoram_w) AM_SHARE("tx_videoram") // text ram @@ -392,10 +392,11 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state ) MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( inufuku_state, inufuku_tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(2) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", inufuku) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xGGGGGBBBBBRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/invqix.c b/src/mame/drivers/invqix.c index e9f9c65990f..da73b924652 100644 --- a/src/mame/drivers/invqix.c +++ b/src/mame/drivers/invqix.c @@ -336,7 +336,7 @@ static MACHINE_CONFIG_START( invqix, invqix_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 256, 0, 240) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c index be5ecefb17b..45cb42e981b 100644 --- a/src/mame/drivers/iqblock.c +++ b/src/mame/drivers/iqblock.c @@ -129,8 +129,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( main_portmap, AS_IO, 8, iqblock_state ) - AM_RANGE(0x2000, 0x23ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) - AM_RANGE(0x2800, 0x2bff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) + AM_RANGE(0x2000, 0x23ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2800, 0x2bff) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x6000, 0x603f) AM_WRITE(iqblock_fgscroll_w) AM_RANGE(0x6800, 0x69ff) AM_WRITE(iqblock_fgvideoram_w) /* initialized up to 6fff... bug or larger tilemap? */ AM_RANGE(0x7000, 0x7fff) AM_WRITE(iqblock_bgvideoram_w) @@ -289,8 +289,8 @@ static MACHINE_CONFIG_START( iqblock, iqblock_state ) MCFG_SCREEN_UPDATE_DRIVER(iqblock_state, screen_update_iqblock) MCFG_GFXDECODE_ADD("gfxdecode", iqblock) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c index 58b3f4aaaca..8c402a17331 100644 --- a/src/mame/drivers/irobot.c +++ b/src/mame/drivers/irobot.c @@ -327,8 +327,8 @@ static MACHINE_CONFIG_START( irobot, irobot_state ) MCFG_SCREEN_UPDATE_DRIVER(irobot_state, screen_update_irobot) MCFG_GFXDECODE_ADD("gfxdecode", irobot) - MCFG_PALETTE_LENGTH(64 + 32) /* 64 for polygons, 32 for text */ - + MCFG_PALETTE_ADD("palette", 64 + 32) /* 64 for polygons, 32 for text */ + MCFG_PALETTE_INIT_OWNER(irobot_state, irobot) MCFG_TIMER_DRIVER_ADD("irvg_timer", irobot_state, irobot_irvg_done_callback) MCFG_TIMER_DRIVER_ADD("irmb_timer", irobot_state, irobot_irmb_done_callback) diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c index bda50958d64..d0050771b19 100644 --- a/src/mame/drivers/ironhors.c +++ b/src/mame/drivers/ironhors.c @@ -386,8 +386,8 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state ) MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_ironhors) MCFG_GFXDECODE_ADD("gfxdecode", ironhors) - MCFG_PALETTE_LENGTH(16*8*16+16*8*16) - + MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16) + MCFG_PALETTE_INIT_OWNER(ironhors_state, ironhors) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c index 54cdfb75745..757e5ab5035 100644 --- a/src/mame/drivers/istellar.c +++ b/src/mame/drivers/istellar.c @@ -55,7 +55,7 @@ public: DECLARE_WRITE8_MEMBER(z80_2_ldp_write); DECLARE_DRIVER_INIT(istellar); virtual void machine_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(istellar); UINT32 screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_callback_istellar); required_device<cpu_device> m_maincpu; @@ -84,7 +84,7 @@ UINT32 istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb3 int tile = m_tile_ram[x+y*32]; int attr = m_tile_control_ram[x+y*32]; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,tile,attr & 0x0f,0, 0, x*8, y*8, 0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,tile,attr & 0x0f,0, 0, x*8, y*8, 0); } } @@ -271,12 +271,12 @@ static INPUT_PORTS_START( istellar ) /* SERVICE might be hanging out back here */ INPUT_PORTS_END -void istellar_state::palette_init() +PALETTE_INIT_MEMBER(istellar_state, istellar) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int r,g,b; int bit0,bit1,bit2,bit3; @@ -304,7 +304,7 @@ void istellar_state::palette_init() bit3 = (color_prom[i+0x200] >> 3) & 0x01; b = (0x8f * bit3) + (0x43 * bit2) + (0x1f * bit1) + (0x0e * bit0); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -358,7 +358,8 @@ static MACHINE_CONFIG_START( istellar, istellar_state ) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(istellar_state, istellar) MCFG_GFXDECODE_ADD("gfxdecode", istellar) diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index 71f1d3fc7cf..420d6f6d307 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -1679,7 +1679,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256) @@ -1708,7 +1708,8 @@ static MACHINE_CONFIG_DERIVED( bloodstm, timekill ) MCFG_CPU_PROGRAM_MAP(bloodstm_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32768) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32768) MACHINE_CONFIG_END diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index 9ca99aed8ca..89fe7db38c7 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -1772,7 +1772,7 @@ static MACHINE_CONFIG_DERIVED( grmatch, itech8_core_hi ) MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_grmatch) /* palette updater */ - MCFG_TIMER_DRIVER_ADD_SCANLINE("palette", itech8_state, grmatch_palette_update, "screen", 0, 0) + MCFG_TIMER_DRIVER_ADD_SCANLINE("palette_timer", itech8_state, grmatch_palette_update, "screen", 0, 0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c index b5b4ceb5790..e82aaee0ea4 100644 --- a/src/mame/drivers/itgambl2.c +++ b/src/mame/drivers/itgambl2.c @@ -69,7 +69,7 @@ public: int m_start_offs; virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(itgambl2); UINT32 screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -118,7 +118,7 @@ UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb3 popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = (m_start_offs); @@ -131,7 +131,7 @@ UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb3 color = (blit_ram[count] & 0xff)>>0; if(cliprect.contains(x, y)) - bitmap.pix32(y, x) = machine().pens[color]; + bitmap.pix32(y, x) = m_palette->pen(color); count++; } @@ -246,7 +246,7 @@ void itgambl2_state::machine_reset() } /* default 444 palette for debug purpose*/ -void itgambl2_state::palette_init() +PALETTE_INIT_MEMBER(itgambl2_state, itgambl2) { int x,r,g,b; @@ -255,7 +255,7 @@ void itgambl2_state::palette_init() r = (x & 0xf)*0x10; g = ((x & 0x3c)>>2)*0x10; b = ((x & 0xf0)>>4)*0x10; - palette_set_color(machine(),x,rgb_t(r,g,b)); + palette.set_pen_color(x,rgb_t(r,g,b)); } } @@ -279,7 +279,8 @@ static MACHINE_CONFIG_START( itgambl2, itgambl2_state ) MCFG_GFXDECODE_ADD("gfxdecode", itgambl2) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(itgambl2_state, itgambl2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c index 90eee9555d0..7480ce41cf3 100644 --- a/src/mame/drivers/itgambl3.c +++ b/src/mame/drivers/itgambl3.c @@ -57,7 +57,7 @@ public: int m_start_offs; virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(itgambl3); UINT32 screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -106,7 +106,7 @@ UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb3 popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = (m_start_offs); @@ -119,7 +119,7 @@ UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb3 color = (blit_ram[count] & 0xff)>>0; if(cliprect.contains(x, y)) - bitmap.pix32(y, x) = machine().pens[color]; + bitmap.pix32(y, x) = m_palette->pen(color); count++; } @@ -234,7 +234,7 @@ void itgambl3_state::machine_reset() } /* default 444 palette for debug purpose*/ -void itgambl3_state::palette_init() +PALETTE_INIT_MEMBER(itgambl3_state, itgambl3) { int x,r,g,b; @@ -243,7 +243,7 @@ void itgambl3_state::palette_init() r = (x & 0xf)*0x11; g = ((x & 0x3c)>>2)*0x11; b = ((x & 0xf0)>>4)*0x11; - palette_set_color(machine(),x,rgb_t(r,g,b)); + palette.set_pen_color(x,rgb_t(r,g,b)); } } @@ -268,7 +268,8 @@ static MACHINE_CONFIG_START( itgambl3, itgambl3_state ) MCFG_GFXDECODE_ADD("gfxdecode", itgambl3) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(itgambl3_state, itgambl3) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/itgamble.c b/src/mame/drivers/itgamble.c index eb80f167c36..0b7d3dd73b5 100644 --- a/src/mame/drivers/itgamble.c +++ b/src/mame/drivers/itgamble.c @@ -90,7 +90,7 @@ void itgamble_state::video_start() UINT32 itgamble_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine())); + bitmap.fill(m_palette->black_pen()); return 0; } @@ -217,7 +217,7 @@ static MACHINE_CONFIG_START( itgamble, itgamble_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MCFG_GFXDECODE_ADD("gfxdecode", itgamble) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c index 1b1c4d5ee37..5f13a6f0693 100644 --- a/src/mame/drivers/jack.c +++ b/src/mame/drivers/jack.c @@ -148,7 +148,7 @@ WRITE8_MEMBER(jack_state::joinem_control_w) // d2: ? // d3-d4: palette bank - int palette_bank = data & (machine().total_colors() - 1) >> 3 & 0x18; + int palette_bank = data & (m_palette->entries() - 1) >> 3 & 0x18; if (m_joinem_palette_bank != palette_bank) { m_joinem_palette_bank = palette_bank; @@ -184,7 +184,7 @@ static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8, jack_state ) AM_RANGE(0xb504, 0xb504) AM_READ_PORT("IN2") AM_RANGE(0xb505, 0xb505) AM_READ_PORT("IN3") AM_RANGE(0xb506, 0xb507) AM_READWRITE(jack_flipscreen_r, jack_flipscreen_w) - AM_RANGE(0xb600, 0xb61f) AM_WRITE(jack_paletteram_w) AM_SHARE("paletteram") + AM_RANGE(0xb600, 0xb61f) AM_WRITE(jack_paletteram_w) AM_SHARE("palette") AM_RANGE(0xb800, 0xbbff) AM_RAM_WRITE(jack_videoram_w) AM_SHARE("videoram") AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE(jack_colorram_w) AM_SHARE("colorram") AM_RANGE(0xc000, 0xffff) AM_ROM @@ -923,7 +923,9 @@ static MACHINE_CONFIG_START( jack, jack_state ) MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_jack) MCFG_GFXDECODE_ADD("gfxdecode", jack) - MCFG_PALETTE_LENGTH(32) + + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_FORMAT(BBGGGRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -973,9 +975,12 @@ static MACHINE_CONFIG_DERIVED( joinem, jack ) MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem) MCFG_GFXDECODE_MODIFY("gfxdecode", joinem) - MCFG_PALETTE_LENGTH(0x40) - MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 0x40) + MCFG_PALETTE_INIT_OWNER(jack_state,joinem) + MCFG_PALETTE_FORMAT(BBGGGRRR) + MCFG_VIDEO_START_OVERRIDE(jack_state,joinem) MACHINE_CONFIG_END @@ -990,7 +995,8 @@ static MACHINE_CONFIG_DERIVED( unclepoo, joinem ) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_ENTRIES(0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c index c3626c39aa3..f27aa0c40e8 100644 --- a/src/mame/drivers/jackal.c +++ b/src/mame/drivers/jackal.c @@ -369,8 +369,8 @@ static MACHINE_CONFIG_START( jackal, jackal_state ) MCFG_SCREEN_UPDATE_DRIVER(jackal_state, screen_update_jackal) MCFG_GFXDECODE_ADD("gfxdecode", jackal) - MCFG_PALETTE_LENGTH(0x300) - + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_INIT_OWNER(jackal_state, jackal) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c index bf9d6c60bd1..536808c94af 100644 --- a/src/mame/drivers/jackie.c +++ b/src/mame/drivers/jackie.c @@ -207,7 +207,7 @@ UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &b int startclipmin = 0; const rectangle &visarea = screen.visible_area(); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); for (i=0;i < 0x40;i++) { @@ -371,8 +371,8 @@ static ADDRESS_MAP_START( jackie_io_map, AS_IO, 8, jackie_state ) AM_RANGE(0x05a0, 0x05a4) AM_WRITE(jackie_unk_reg3_lo_w) AM_RANGE(0x0da0, 0x0da4) AM_WRITE(jackie_unk_reg3_hi_w) AM_RANGE(0x1000, 0x1107) AM_RAM AM_SHARE("bg_scroll2") - AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */ AM_RANGE(0x4001, 0x4001) AM_READ_PORT("DSW2") /* DSW2 */ AM_RANGE(0x4002, 0x4002) AM_READ_PORT("DSW3") /* DSW3 */ @@ -590,8 +590,8 @@ static MACHINE_CONFIG_START( jackie, jackie_state ) MCFG_SCREEN_UPDATE_DRIVER(jackie_state, screen_update_jackie) MCFG_GFXDECODE_ADD("gfxdecode", jackie) - MCFG_PALETTE_LENGTH(2048) - + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c index 8df34358a8f..d84904f675d 100644 --- a/src/mame/drivers/jackpool.c +++ b/src/mame/drivers/jackpool.c @@ -70,7 +70,7 @@ UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind1 int tile = (m_vram[count+(0x2000/2)] & 0x7fff); int attr = (m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8; - gfx->opaque(bitmap,cliprect,tile,attr,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,attr,0,0,x*8,y*8); count++; } } @@ -87,7 +87,7 @@ UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind1 int attr = (m_vram[count+0x800] & 0x1f00)>>8; int t_pen = (m_vram[count+0x800] & 0x1000); - gfx->transpen(bitmap,cliprect,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1); + gfx->transpen(m_palette,bitmap,cliprect,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1); } count++; @@ -187,7 +187,7 @@ static ADDRESS_MAP_START( jackpool_mem, AS_PROGRAM, 16, jackpool_state ) AM_RANGE(0x340000, 0x347fff) AM_RAM AM_SHARE("vram") AM_RANGE(0x348000, 0x34ffff) AM_RAM //<- vram banks 2 & 3? - AM_RANGE(0x360000, 0x3603ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x360000, 0x3603ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x380000, 0x380061) AM_READWRITE(jackpool_io_r,jackpool_io_w) AM_SHARE("io")//AM_READ(jackpool_io_r) AM_RANGE(0x800000, 0x80000f) AM_READ(jackpool_ff_r) AM_WRITENOP //UART @@ -279,8 +279,8 @@ static MACHINE_CONFIG_START( jackpool, jackpool_state ) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") - MCFG_PALETTE_LENGTH(0x200) - + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c index 5886f8b35b0..eed2616dd1f 100644 --- a/src/mame/drivers/jailbrek.c +++ b/src/mame/drivers/jailbrek.c @@ -252,7 +252,8 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", jailbrek) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(jailbrek_state, jailbrek) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240) diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c index 5cb42ec9425..5cdc3857507 100644 --- a/src/mame/drivers/jalmah.c +++ b/src/mame/drivers/jalmah.c @@ -497,7 +497,7 @@ UINT32 jalmah_state::screen_update_jalmah(screen_device &screen, bitmap_ind16 &b m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff); m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff); - bitmap.fill(machine().pens[0xff], cliprect); //selectable by a ram address? + bitmap.fill(m_palette->pen(0xff), cliprect); //selectable by a ram address? for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1) { @@ -519,7 +519,7 @@ UINT32 jalmah_state::screen_update_urashima(screen_device &screen, bitmap_ind16 m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]); m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]); - bitmap.fill(machine().pens[0x1ff], cliprect);//selectable by a ram address? + bitmap.fill(m_palette->pen(0x1ff), cliprect);//selectable by a ram address? if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(screen, bitmap, cliprect, 0,0); } if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(screen, bitmap, cliprect, 0,0); } return 0; @@ -1018,7 +1018,7 @@ static ADDRESS_MAP_START( jalmah, AS_PROGRAM, 16, jalmah_state ) /**/AM_RANGE(0x080020, 0x08003f) AM_RAM_WRITE(jalmah_scroll_w) AM_RANGE(0x080040, 0x080041) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // 0x084000, 0x084001 ? - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") /* Palette RAM */ + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */ AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(sc0_vram_w) AM_SHARE("sc0_vram") AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(sc1_vram_w) AM_SHARE("sc1_vram") AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(sc2_vram_w) AM_SHARE("sc2_vram") @@ -1042,7 +1042,7 @@ static ADDRESS_MAP_START( urashima, AS_PROGRAM, 16, jalmah_state ) /**/AM_RANGE(0x08001c, 0x08001d) AM_RAM_WRITE(urashima_bank_w) AM_RANGE(0x080040, 0x080041) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // 0x084000, 0x084001 ? - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") /* Palette RAM */ + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette RAM */ AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(urashima_sc0_vram_w) AM_SHARE("sc0_vram") AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(urashima_sc0_vram_w) AM_RANGE(0x098000, 0x09bfff) AM_RAM_WRITE(urashima_sc0_vram_w) @@ -1425,8 +1425,8 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_jalmah) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_TIMER_DRIVER_ADD_PERIODIC("mcusim", jalmah_state, jalmah_mcu_sim, attotime::from_hz(10000)) diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c index 36683e97468..e1b7855c4db 100644 --- a/src/mame/drivers/jangou.c +++ b/src/mame/drivers/jangou.c @@ -93,7 +93,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(jangou); DECLARE_MACHINE_START(jngolady); DECLARE_MACHINE_RESET(jngolady); DECLARE_MACHINE_START(common); @@ -113,7 +113,7 @@ public: *************************************/ /* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */ -void jangou_state::palette_init() +PALETTE_INIT_MEMBER(jangou_state, jangou) { const UINT8 *color_prom = memregion("proms")->base(); static const int resistances_rg[3] = { 1000, 470, 220 }; @@ -127,7 +127,7 @@ void jangou_state::palette_init() 2, resistances_b, weights_b, 0, 0, 0, 0, 0, 0, 0); - for (i = 0;i < machine().total_colors(); i++) + for (i = 0;i < palette.entries(); i++) { int bit0, bit1, bit2; int r, g, b; @@ -149,7 +149,7 @@ void jangou_state::palette_init() bit1 = (color_prom[i] >> 7) & 0x01; b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -170,8 +170,8 @@ UINT32 jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind16 &b for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) { UINT32 srcpix = *src++; - *dst++ = machine().pens[srcpix & 0xf]; - *dst++ = machine().pens[(srcpix >> 4) & 0xf]; + *dst++ = m_palette->pen(srcpix & 0xf); + *dst++ = m_palette->pen((srcpix >> 4) & 0xf); } } @@ -997,8 +997,8 @@ static MACHINE_CONFIG_START( jangou, jangou_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(jangou_state, jangou) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c index c5c8398fbd0..6b5fcff99d8 100644 --- a/src/mame/drivers/jantotsu.c +++ b/src/mame/drivers/jantotsu.c @@ -133,7 +133,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(jantotsu); UINT32 screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(jan_adpcm_int); required_device<cpu_device> m_maincpu; @@ -175,7 +175,7 @@ UINT32 jantotsu_state::screen_update_jantotsu(screen_device &screen, bitmap_rgb3 color |= (((m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i; if (cliprect.contains(x + i, y)) - bitmap.pix32(y, x + i) = machine().pens[color]; + bitmap.pix32(y, x + i) = m_palette->pen(color); } count++; @@ -207,7 +207,7 @@ WRITE8_MEMBER(jantotsu_state::bankaddr_w) logerror("I/O port $07 write trips %02x\n",data); } -void jantotsu_state::palette_init() +PALETTE_INIT_MEMBER(jantotsu_state, jantotsu) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, bit2, r, g, b; @@ -228,7 +228,7 @@ void jantotsu_state::palette_init() bit2 = (color_prom[0] >> 7) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -519,8 +519,8 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(jantotsu_state, screen_update_jantotsu) - MCFG_PALETTE_LENGTH(0x20) - + MCFG_PALETTE_ADD("palette", 0x20) + MCFG_PALETTE_INIT_OWNER(jantotsu_state, jantotsu) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c index cb9ba13d724..f63c264201d 100644 --- a/src/mame/drivers/jchan.c +++ b/src/mame/drivers/jchan.c @@ -305,7 +305,7 @@ UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind16 &bit UINT16 pixdata1; UINT16 pixdata2; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); screen.priority().fill(0, cliprect); @@ -446,7 +446,7 @@ static ADDRESS_MAP_START( jchan_main, AS_PROGRAM, 16, jchan_state ) AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(jchan_suprnova_sprite32_1_w) AM_SHARE("spriteram_1") AM_RANGE(0x600000, 0x60003f) AM_RAM_WRITE(jchan_suprnova_sprite32regs_1_w) AM_SHARE("sprregs_1") - AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // palette for sprites? + AM_RANGE(0x700000, 0x70ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette for sprites? AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(jchan_ctrl_r, jchan_ctrl_w) AM_SHARE("ctrl") @@ -598,7 +598,8 @@ static MACHINE_CONFIG_START( jchan, jchan_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(jchan_state, screen_update_jchan) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c index a5d783a32e4..b61469e9def 100644 --- a/src/mame/drivers/jclub2.c +++ b/src/mame/drivers/jclub2.c @@ -220,7 +220,7 @@ void darkhors_state::draw_sprites_darkhors(bitmap_ind16 &bitmap, const rectangle sy = -sy; sy += 0xf8; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code/2, color, flipx, flipy, sx, sy, 0); } @@ -251,7 +251,7 @@ UINT32 darkhors_state::screen_update_darkhors(screen_device &screen, bitmap_ind1 } #endif - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_tmap->set_scrollx(0, (m_tmapscroll[0] >> 16) - 5); m_tmap->set_scrolly(0, (m_tmapscroll[0] & 0xffff) - 0xff ); @@ -306,8 +306,8 @@ WRITE32_MEMBER(darkhors_state::darkhors_eeprom_w) WRITE32_MEMBER(darkhors_state::paletteram32_xBBBBBGGGGGRRRRR_dword_w) { - if (ACCESSING_BITS_16_31) paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset*2, data >> 16, mem_mask >> 16); - if (ACCESSING_BITS_0_15) paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset*2+1, data, mem_mask); + if (ACCESSING_BITS_16_31) m_palette->write(space, offset*2, data >> 16, mem_mask >> 16); + if (ACCESSING_BITS_0_15) m_palette->write(space, offset*2+1, data, mem_mask); } WRITE32_MEMBER(darkhors_state::darkhors_input_sel_w) @@ -703,7 +703,7 @@ static MACHINE_CONFIG_START( darkhors, darkhors_state ) MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_darkhors) MCFG_GFXDECODE_ADD("gfxdecode", darkhors) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) MCFG_VIDEO_START_OVERRIDE(darkhors_state,darkhors) @@ -750,8 +750,9 @@ static MACHINE_CONFIG_START( jclub2, darkhors_state ) st0020_device::set_is_st0032(*device, 1); st0020_device::set_is_jclub2o(*device, 1); // offsets MCFG_ST0020_SPRITES_GFXDECODE("gfxdecode") + MCFG_ST0020_SPRITES_PALETTE("palette") - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2) MACHINE_CONFIG_END @@ -812,13 +813,14 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state ) MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2o) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) st0020_device::set_is_jclub2o(*device, 1); MCFG_ST0020_SPRITES_GFXDECODE("gfxdecode") + MCFG_ST0020_SPRITES_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(darkhors_state,jclub2o) diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c index 94c7031d37b..ac4141be6a3 100644 --- a/src/mame/drivers/jokrwild.c +++ b/src/mame/drivers/jokrwild.c @@ -118,7 +118,7 @@ public: DECLARE_DRIVER_INIT(jokrwild); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(jokrwild); UINT32 screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -172,7 +172,7 @@ UINT32 jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_ind1 } -void jokrwild_state::palette_init() +PALETTE_INIT_MEMBER(jokrwild_state, jokrwild) { //missing proms } @@ -475,7 +475,8 @@ static MACHINE_CONFIG_START( jokrwild, jokrwild_state ) MCFG_SCREEN_UPDATE_DRIVER(jokrwild_state, screen_update_jokrwild) MCFG_GFXDECODE_ADD("gfxdecode", jokrwild) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(jokrwild_state, jokrwild) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c index fbd95f0e5c6..7798cf081f3 100644 --- a/src/mame/drivers/jollyjgr.c +++ b/src/mame/drivers/jollyjgr.c @@ -140,7 +140,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(jollyjgr); UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(jollyjgr_interrupt); @@ -411,7 +411,7 @@ INPUT_PORTS_END * *************************************/ -void jollyjgr_state::palette_init() +PALETTE_INIT_MEMBER(jollyjgr_state, jollyjgr) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -436,13 +436,13 @@ void jollyjgr_state::palette_init() bit1 = BIT(*color_prom, 7); b = 0x4f * bit0 + 0xa8 * bit1; - palette_set_color(machine(), i, rgb_t(r,g,b)); + palette.set_pen_color(i, rgb_t(r,g,b)); color_prom++; } /* bitmap palette */ for (i = 0;i < 8;i++) - palette_set_color_rgb(machine(), 32 + i, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); + palette.set_pen_color(32 + i, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); } /* Tilemap is the same as in Galaxian */ @@ -543,7 +543,7 @@ UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind1 if (offs < 3 * 4) sy++; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code,color, flipx,flipy, sx,sy,0); @@ -665,8 +665,8 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state ) MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr) MCFG_GFXDECODE_ADD("gfxdecode", jollyjgr) - MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */ - + MCFG_PALETTE_ADD("palette", 32+8) /* 32 for tilemap and sprites + 8 for the bitmap */ + MCFG_PALETTE_INIT_OWNER(jollyjgr_state, jollyjgr) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c index d29ad29109f..2865995fb66 100644 --- a/src/mame/drivers/jongkyo.c +++ b/src/mame/drivers/jongkyo.c @@ -59,7 +59,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(jongkyo); UINT32 screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -441,7 +441,7 @@ INPUT_PORTS_END * *************************************/ -void jongkyo_state::palette_init() +PALETTE_INIT_MEMBER(jongkyo_state, jongkyo) { int i; UINT8* proms = memregion("proms")->base(); @@ -453,7 +453,7 @@ void jongkyo_state::palette_init() int g = (data >> 3) & 0x07; int b = (data >> 6) & 0x03; - palette_set_color_rgb(machine(), i, r << 5, g << 5, b << 6 ); + palette.set_pen_color(i, r << 5, g << 5, b << 6 ); } } @@ -513,8 +513,8 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 256-8-1) MCFG_SCREEN_UPDATE_DRIVER(jongkyo_state, screen_update_jongkyo) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(jongkyo_state, jongkyo) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8910, JONGKYO_CLOCK/8) diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c index 14fedee1db4..79fe00bc432 100644 --- a/src/mame/drivers/jpmimpct.c +++ b/src/mame/drivers/jpmimpct.c @@ -880,7 +880,7 @@ static MACHINE_CONFIG_START( jpmimpct, jpmimpct_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(40000000/4, 156*4, 0, 100*4, 328, 0, 300) MCFG_SCREEN_UPDATE_DEVICE("dsp", tms34010_device, tms340x0_rgb32) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK) diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c index 24489cb308c..cec82599acc 100644 --- a/src/mame/drivers/jpmsys5.c +++ b/src/mame/drivers/jpmsys5.c @@ -132,12 +132,12 @@ WRITE16_MEMBER(jpmsys5_state::ramdac_w) } else if (offset == 1) { - m_palette[m_pal_addr][m_pal_idx] = data; + m_palette_val[m_pal_addr][m_pal_idx] = data; if (++m_pal_idx == 3) { /* Update the MAME palette */ - palette_set_color_rgb(machine(), m_pal_addr, pal6bit(m_palette[m_pal_addr][0]), pal6bit(m_palette[m_pal_addr][1]), pal6bit(m_palette[m_pal_addr][2])); + m_palette->set_pen_color(m_pal_addr, pal6bit(m_palette_val[m_pal_addr][0]), pal6bit(m_palette_val[m_pal_addr][1]), pal6bit(m_palette_val[m_pal_addr][2])); m_pal_addr++; m_pal_idx = 0; } @@ -156,7 +156,7 @@ UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 if (m_tms34061->m_display.blanked) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); return 0; } @@ -170,8 +170,8 @@ UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 UINT8 pen = src[(x-cliprect.min_x)>>1]; /* Draw two 4-bit pixels */ - *dest++ = machine().pens[(pen >> 4) & 0xf]; - *dest++ = machine().pens[pen & 0xf]; + *dest++ = m_palette->pen((pen >> 4) & 0xf); + *dest++ = m_palette->pen(pen & 0xf); } } @@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state ) MCFG_TMS34061_ADD("tms34061", tms34061intf) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c index 2f246a92a69..5d89830c892 100644 --- a/src/mame/drivers/jrpacman.c +++ b/src/mame/drivers/jrpacman.c @@ -301,9 +301,9 @@ static MACHINE_CONFIG_START( jrpacman, jrpacman_state ) MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman) MCFG_GFXDECODE_ADD("gfxdecode", jrpacman) - MCFG_PALETTE_LENGTH(128*4) + MCFG_PALETTE_ADD("palette", 128*4) - MCFG_PALETTE_INIT_OVERRIDE(jrpacman_state,pacman) + MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman) MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman) /* sound hardware */ diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c index f5c5f84e019..2106e6c9e40 100644 --- a/src/mame/drivers/jubilee.c +++ b/src/mame/drivers/jubilee.c @@ -222,7 +222,6 @@ public: DECLARE_READ8_MEMBER(mux_port_r); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); UINT32 screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(jubileep_interrupt); required_device<cpu_device> m_maincpu; @@ -275,9 +274,6 @@ UINT32 jubilee_state::screen_update_jubileep(screen_device &screen, bitmap_ind16 return 0; } -void jubilee_state::palette_init() -{} - /************************** * Read / Write Handlers * @@ -506,7 +502,7 @@ static MACHINE_CONFIG_START( jubileep, jubilee_state ) MCFG_SCREEN_UPDATE_DRIVER(jubilee_state, screen_update_jubileep) MCFG_GFXDECODE_ADD("gfxdecode", jubileep) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette",8) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index 96acacd14f6..35e9be3d58a 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -236,7 +236,7 @@ static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_berlwall_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette // AM_RANGE(0x480000, 0x480001) AM_RAM // ? AM_RANGE(0x500000, 0x500001) AM_READWRITE(kaneko16_bg15_reg_r, kaneko16_bg15_reg_w) AM_SHARE("bg15_reg") // High Color Background AM_RANGE(0x580000, 0x580001) AM_READWRITE(kaneko16_bg15_select_r, kaneko16_bg15_select_w) AM_SHARE("bg15_select") @@ -284,7 +284,7 @@ static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x600000, 0x601fff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x700000, 0x700fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x700000, 0x700fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w) AM_RANGE(0x900000, 0x90001f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w) AM_RANGE(0xa80000, 0xa80001) AM_READ(watchdog_reset16_r) // Watchdog @@ -304,7 +304,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM - AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x500000, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w) @@ -363,7 +363,7 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_gtmr_state ) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w) - AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) @@ -417,7 +417,7 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_gtmr_state ) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com1_w) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w) - AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x500000, 0x503fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x580000, 0x583fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) @@ -489,7 +489,7 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_gtmr_state ) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w) - AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x310000, 0x327fff) AM_RAM // AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites @@ -558,7 +558,7 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_gtmr_state ) AM_RANGE(0x2c0000, 0x2c0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE( "toybox", kaneko_toybox_device, toybox_mcu_com3_w) - AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x300000, 0x30ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x310000, 0x327fff) AM_RAM // AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites @@ -598,7 +598,7 @@ static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16, kaneko16_state ) AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_ay1_YM2149_r, kaneko16_ay1_YM2149_w) // Sound AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_ay2_YM2149_r, kaneko16_ay2_YM2149_w) AM_RANGE(0x400400, 0x400401) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x500000, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x680000, 0x683fff) AM_DEVREADWRITE("view2_1", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram") // Sprites @@ -660,7 +660,7 @@ static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16, kaneko16_shogwarr_state ) AM_RANGE(0x2b0000, 0x2b0001) AM_DEVWRITE("calc3_prot", kaneko_calc3_device, calc3_mcu_com2_w) //AM_RANGE(0x2c0000, 0x2c0001) // run calc 3? or irq ack? AM_RANGE(0x2d0000, 0x2d0001) AM_DEVWRITE("calc3_prot", kaneko_calc3_device, calc3_mcu_com3_w) - AM_RANGE(0x380000, 0x380fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x380000, 0x380fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Samples AM_RANGE(0x480000, 0x480001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) AM_RANGE(0x580000, 0x581fff) AM_RAM AM_SHARE("spriteram") // Sprites @@ -1633,7 +1633,9 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state ) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall) MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit) - MCFG_PALETTE_LENGTH(2048 + 32768) /* 32768 static colors for the bg */ + MCFG_PALETTE_ADD("palette", 2048 + 32768) /* 32768 static colors for the bg */ + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) + MCFG_PALETTE_INIT_OWNER(kaneko16_berlwall_state,berlwall) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); @@ -1644,8 +1646,6 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state ) kaneko16_sprite_device::set_altspacing(*device, 1); MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode") - - MCFG_PALETTE_INIT_OVERRIDE(kaneko16_berlwall_state,berlwall) MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,berlwall) /* sound hardware */ @@ -1689,7 +1689,8 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state ) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_2x4bit) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); @@ -1761,7 +1762,8 @@ static MACHINE_CONFIG_START( blazeon, kaneko16_state ) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); @@ -1823,7 +1825,8 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state ) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE_ADD("gfxdecode", 1x8bit_2x4bit) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); @@ -1944,7 +1947,8 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state ) MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16) MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_2x4bit) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); @@ -2071,7 +2075,8 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", 1x4bit_1x4bit) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c index 3a24e26e2cb..515c62e2657 100644 --- a/src/mame/drivers/karnov.c +++ b/src/mame/drivers/karnov.c @@ -803,11 +803,13 @@ static MACHINE_CONFIG_START( karnov, karnov_state ) MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov) MCFG_GFXDECODE_ADD("gfxdecode", karnov) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(karnov_state, karnov) MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 2); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(karnov_state,karnov) @@ -845,11 +847,12 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state ) MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov) MCFG_GFXDECODE_ADD("gfxdecode", karnov) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_DEVICE_ADD("spritegen", DECO_KARNOVSPRITES, 0) deco_karnovsprites_device::set_gfx_region(*device, 2); MCFG_DECO_KARNOVSPRITES_GFXDECODE("gfxdecode") + MCFG_DECO_KARNOVSPRITES_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(karnov_state,wndrplnt) diff --git a/src/mame/drivers/kas89.c b/src/mame/drivers/kas89.c index fd37ca4412f..bd2a720de41 100644 --- a/src/mame/drivers/kas89.c +++ b/src/mame/drivers/kas89.c @@ -798,7 +798,7 @@ static MACHINE_CONFIG_START( kas89, kas89_state ) MCFG_SCREEN_SIZE(544, 524) MCFG_SCREEN_VISIBLE_AREA(0, 544 - 1, 0, 480 - 1) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c index 7908dfb0e71..bf321563589 100644 --- a/src/mame/drivers/kchamp.c +++ b/src/mame/drivers/kchamp.c @@ -422,7 +422,8 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state ) MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchampvs) MCFG_GFXDECODE_ADD("gfxdecode", kchamp) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(kchamp_state, kchamp) /* sound hardware */ @@ -469,7 +470,8 @@ static MACHINE_CONFIG_START( kchamp, kchamp_state ) MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchamp) MCFG_GFXDECODE_ADD("gfxdecode", kchamp) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(kchamp_state, kchamp) /* sound hardware */ diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c index 38adbd2d184..9e85a3539e0 100644 --- a/src/mame/drivers/kickgoal.c +++ b/src/mame/drivers/kickgoal.c @@ -488,7 +488,7 @@ static ADDRESS_MAP_START( kickgoal_program_map, AS_PROGRAM, 16, kickgoal_state ) AM_RANGE(0xa0c000, 0xa0ffff) AM_RAM // more tilemap? AM_RANGE(0xa10000, 0xa1000f) AM_WRITEONLY AM_SHARE("scrram") /* Scroll Registers */ AM_RANGE(0xb00000, 0xb007ff) AM_WRITEONLY AM_SHARE("spriteram") /* Sprites */ - AM_RANGE(0xc00000, 0xc007ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") /* Palette */ // actionhw reads this + AM_RANGE(0xc00000, 0xc007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ // actionhw reads this AM_RANGE(0xff0000, 0xffffff) AM_RAM ADDRESS_MAP_END @@ -661,7 +661,8 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state ) MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal) MCFG_GFXDECODE_ADD("gfxdecode", kickgoal) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(kickgoal_state,kickgoal) @@ -696,7 +697,8 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state ) MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal) MCFG_GFXDECODE_ADD("gfxdecode", actionhw) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(kickgoal_state,actionhw) diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index 691a88c5dea..6fae2d3a88d 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -223,13 +223,13 @@ void kingdrby_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec { for(dy=0;dy<h;dy++) for(dx=0;dx<w;dx++) - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,spr_offs++,colour,1,0,((x+16*w)-(dx+1)*16),(y+dy*16),0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,spr_offs++,colour,1,0,((x+16*w)-(dx+1)*16),(y+dy*16),0); } else { for(dy=0;dy<h;dy++) for(dx=0;dx<w;dx++) - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,spr_offs++,colour,0,0,(x+dx*16),(y+dy*16),0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,spr_offs++,colour,0,0,(x+dx*16),(y+dy*16),0); } } } @@ -980,7 +980,7 @@ PALETTE_INIT_MEMBER(kingdrby_state,kingdrby) bit2 = (color_prom[0] >> 5) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -1013,7 +1013,7 @@ PALETTE_INIT_MEMBER(kingdrby_state,kingdrbb) bit2 = (prom[i] >> 5) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -1041,8 +1041,8 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state ) MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_GFXDECODE_ADD("gfxdecode", kingdrby) - MCFG_PALETTE_LENGTH(0x200) - MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrby) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrby) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ @@ -1065,7 +1065,8 @@ static MACHINE_CONFIG_DERIVED( kingdrbb, kingdrby ) MCFG_CPU_MODIFY("slave") MCFG_CPU_PROGRAM_MAP(slave_1986_map) - MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrbb) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrbb) MCFG_DEVICE_REMOVE("ppi8255_0") MCFG_DEVICE_REMOVE("ppi8255_1") @@ -1080,7 +1081,8 @@ static MACHINE_CONFIG_DERIVED( cowrace, kingdrbb ) MCFG_CPU_IO_MAP(cowrace_sound_io) MCFG_GFXDECODE_MODIFY("gfxdecode", cowrace) - MCFG_PALETTE_INIT_OVERRIDE(kingdrby_state,kingdrby) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(kingdrby_state,kingdrby) MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c index cb1457dd663..1090c1e2e5a 100644 --- a/src/mame/drivers/kingobox.c +++ b/src/mame/drivers/kingobox.c @@ -492,9 +492,9 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state ) MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb) MCFG_GFXDECODE_ADD("gfxdecode", kingobox) - MCFG_PALETTE_LENGTH(256+8*2) + MCFG_PALETTE_ADD("palette", 256+8*2) - MCFG_PALETTE_INIT_OVERRIDE(kingofb_state,kingofb) + MCFG_PALETTE_INIT_OWNER(kingofb_state,kingofb) MCFG_VIDEO_START_OVERRIDE(kingofb_state,kingofb) /* sound hardware */ @@ -542,9 +542,9 @@ static MACHINE_CONFIG_START( ringking, kingofb_state ) MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking) MCFG_GFXDECODE_ADD("gfxdecode", rk) - MCFG_PALETTE_LENGTH(256+8*2) + MCFG_PALETTE_ADD("palette", 256+8*2) - MCFG_PALETTE_INIT_OVERRIDE(kingofb_state,ringking) + MCFG_PALETTE_INIT_OWNER(kingofb_state,ringking) MCFG_VIDEO_START_OVERRIDE(kingofb_state,ringking) /* sound hardware */ diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c index bc53d026f3c..99e5966d0b2 100644 --- a/src/mame/drivers/kinst.c +++ b/src/mame/drivers/kinst.c @@ -696,8 +696,7 @@ static MACHINE_CONFIG_START( kinst, kinst_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update_kinst) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, BBBBB_GGGGG_RRRRR) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette") /* sound hardware */ MCFG_FRAGMENT_ADD(dcs_audio_2k) diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c index c85a9e34a21..8c114f0daf2 100644 --- a/src/mame/drivers/klax.c +++ b/src/mame/drivers/klax.c @@ -170,7 +170,7 @@ static MACHINE_CONFIG_START( klax, klax_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", klax) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, klax_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,32) MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", klax_state::s_mob_config) diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c index 7560b2675bc..33ef8c65d31 100644 --- a/src/mame/drivers/kncljoe.c +++ b/src/mame/drivers/kncljoe.c @@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state ) MCFG_SCREEN_UPDATE_DRIVER(kncljoe_state, screen_update_kncljoe) MCFG_GFXDECODE_ADD("gfxdecode", kncljoe) - MCFG_PALETTE_LENGTH(16*8+16*8) - + MCFG_PALETTE_ADD("palette", 16*8+16*8) + MCFG_PALETTE_INIT_OWNER(kncljoe_state, kncljoe) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c index 38925f237b3..06166b73511 100644 --- a/src/mame/drivers/koftball.c +++ b/src/mame/drivers/koftball.c @@ -117,7 +117,7 @@ WRITE16_MEMBER(koftball_state::bmc_RAMDAC_offset_w) WRITE16_MEMBER(koftball_state::bmc_RAMDAC_color_w) { m_colorram[m_clr_offset]=data; - palette_set_color_rgb(machine(),m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2])); + m_palette->set_pen_color(m_clr_offset/3,pal6bit(m_colorram[(m_clr_offset/3)*3]),pal6bit(m_colorram[(m_clr_offset/3)*3+1]),pal6bit(m_colorram[(m_clr_offset/3)*3+2])); m_clr_offset=(m_clr_offset+1)%768; } @@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( koftball, koftball_state ) MCFG_SCREEN_UPDATE_DRIVER(koftball_state, screen_update_koftball) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_GFXDECODE_ADD("gfxdecode", koftball) diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c index 60e10619bbc..73fb49ade8a 100644 --- a/src/mame/drivers/koikoi.c +++ b/src/mame/drivers/koikoi.c @@ -74,7 +74,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(koikoi); UINT32 screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -96,14 +96,11 @@ TILE_GET_INFO_MEMBER(koikoi_state::get_tile_info) SET_TILE_INFO_MEMBER(m_gfxdecode, 0, code, color, flip); } -void koikoi_state::palette_init() +PALETTE_INIT_MEMBER(koikoi_state, koikoi) { const UINT8 *color_prom = memregion("proms")->base(); int i; - /* allocate the colortable */ - machine().colortable = colortable_alloc(machine(), 0x10); - /* create a lookup table for the palette */ for (i = 0; i < 0x10; i++) { @@ -128,7 +125,7 @@ void koikoi_state::palette_init() bit2 = (color_prom[i] >> 7) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ @@ -138,7 +135,7 @@ void koikoi_state::palette_init() for (i = 0; i < 0x100; i++) { UINT8 ctabentry = color_prom[i] & 0x0f; - colortable_entry_set_value(machine().colortable, i, ctabentry); + palette.set_pen_indirect(i, ctabentry); } } @@ -379,8 +376,8 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state ) MCFG_SCREEN_UPDATE_DRIVER(koikoi_state, screen_update_koikoi) MCFG_GFXDECODE_ADD("gfxdecode", koikoi) - MCFG_PALETTE_LENGTH(8*32) - + MCFG_PALETTE_ADD("palette", 8*32) + MCFG_PALETTE_INIT_OWNER(koikoi_state, koikoi) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index b88ba150f17..279dd9243ef 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -1627,7 +1627,7 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state ) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) @@ -1639,16 +1639,20 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state ) MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD_NOINTF("k056832"/*, konamigx_k056832_intf*/) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K055555_ADD("k055555") MCFG_K055673_ADD_NOINTF("k055673") MCFG_K055673_SET_SCREEN("screen") MCFG_K055673_GFXDECODE("gfxdecode") + MCFG_K055673_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_5bpp) @@ -1722,10 +1726,16 @@ static MACHINE_CONFIG_DERIVED( gxtype3, konamigx ) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konamigx_state, konamigx_hbinterrupt, "screen", 0, 1) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE) MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type3) - MCFG_PALETTE_LENGTH(16384) + + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16384) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(576, 264) MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16) @@ -1747,7 +1757,7 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx ) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", konamigx_state, konamigx_hbinterrupt, "screen", 0, 1) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(128*8, 264) @@ -1760,7 +1770,11 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16) MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right) - MCFG_PALETTE_LENGTH(8192) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() + MCFG_GFXDECODE_MODIFY("gfxdecode", type4) MCFG_VIDEO_START_OVERRIDE(konamigx_state,konamigx_type4) MACHINE_CONFIG_END diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c index a02eba0c4a7..517e545ff8a 100644 --- a/src/mame/drivers/konamim2.c +++ b/src/mame/drivers/konamim2.c @@ -1190,8 +1190,7 @@ static MACHINE_CONFIG_START( m2, konamim2_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_DRIVER(konamim2_state, screen_update_m2) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MACHINE_CONFIG_END diff --git a/src/mame/drivers/konendev.c b/src/mame/drivers/konendev.c index da1a73cbb71..e158a4e7ddc 100644 --- a/src/mame/drivers/konendev.c +++ b/src/mame/drivers/konendev.c @@ -109,8 +109,7 @@ static MACHINE_CONFIG_START( konendev, konendev_state ) MCFG_CPU_PROGRAM_MAP(konendev_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/kontest.c b/src/mame/drivers/kontest.c index 523ff2657ac..428ecc7b092 100644 --- a/src/mame/drivers/kontest.c +++ b/src/mame/drivers/kontest.c @@ -54,8 +54,8 @@ protected: virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); public: + DECLARE_PALETTE_INIT(kontest); INTERRUPT_GEN_MEMBER(kontest_interrupt); }; @@ -66,7 +66,7 @@ public: ***************************************************************************/ -void kontest_state::palette_init() +PALETTE_INIT_MEMBER(kontest_state, kontest) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, bit2 , r, g, b; @@ -87,7 +87,7 @@ void kontest_state::palette_init() bit2 = (color_prom[i] >> 2) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -135,7 +135,7 @@ UINT32 kontest_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap res_y = y*8+yi; if (cliprect.contains(res_x, res_y)) - bitmap.pix32(res_y, res_x) = machine().pens[color|attr*4]; + bitmap.pix32(res_y, res_x) = m_palette->pen(color|attr*4); } } } @@ -259,7 +259,8 @@ static MACHINE_CONFIG_START( kontest, kontest_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(kontest_state, kontest) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c index 1e1df3c1058..57c5b26e9af 100644 --- a/src/mame/drivers/kopunch.c +++ b/src/mame/drivers/kopunch.c @@ -195,8 +195,8 @@ static MACHINE_CONFIG_START( kopunch, kopunch_state ) MCFG_SCREEN_UPDATE_DRIVER(kopunch_state, screen_update_kopunch) MCFG_GFXDECODE_ADD("gfxdecode", kopunch) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(kopunch_state, kopunch) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c index 78a3782731c..f4eddb92690 100644 --- a/src/mame/drivers/ksayakyu.c +++ b/src/mame/drivers/ksayakyu.c @@ -288,8 +288,8 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state ) MCFG_SCREEN_UPDATE_DRIVER(ksayakyu_state, screen_update_ksayakyu) MCFG_GFXDECODE_ADD("gfxdecode", ksayakyu) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(ksayakyu_state, ksayakyu) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/kurukuru.c b/src/mame/drivers/kurukuru.c index e22a6f68555..ff8eeef4153 100644 --- a/src/mame/drivers/kurukuru.c +++ b/src/mame/drivers/kurukuru.c @@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state ) 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_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c index 0c4bb1fa5d9..5af882ce5d5 100644 --- a/src/mame/drivers/kyugo.c +++ b/src/mame/drivers/kyugo.c @@ -548,9 +548,7 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state ) MCFG_SCREEN_UPDATE_DRIVER(kyugo_state, screen_update_kyugo) MCFG_GFXDECODE_ADD("gfxdecode", kyugo) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c index bb4a25568ab..dd4e9adc440 100644 --- a/src/mame/drivers/labyrunr.c +++ b/src/mame/drivers/labyrunr.c @@ -200,10 +200,11 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state ) MCFG_SCREEN_UPDATE_DRIVER(labyrunr_state, screen_update_labyrunr) MCFG_GFXDECODE_ADD("gfxdecode", labyrunr) - MCFG_PALETTE_LENGTH(2*8*16*16) - + MCFG_PALETTE_ADD("palette", 2*8*16*16) + MCFG_PALETTE_INIT_OWNER(labyrunr_state, labyrunr) MCFG_K007121_ADD("k007121") + MCFG_K007121_PALETTE("palette") MCFG_K051733_ADD("k051733") /* sound hardware */ diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c index c054f5f22cf..584862f2a4b 100644 --- a/src/mame/drivers/ladybug.c +++ b/src/mame/drivers/ladybug.c @@ -767,9 +767,10 @@ static MACHINE_CONFIG_START( ladybug, ladybug_state ) MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_ladybug) MCFG_GFXDECODE_ADD("gfxdecode", ladybug) - MCFG_PALETTE_LENGTH(4*8+4*16) + MCFG_PALETTE_ADD("palette", 4*8+4*16) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) - MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,ladybug) + MCFG_PALETTE_INIT_OWNER(ladybug_state,ladybug) MCFG_VIDEO_START_OVERRIDE(ladybug_state,ladybug) /* sound hardware */ @@ -808,9 +809,10 @@ static MACHINE_CONFIG_START( sraider, ladybug_state ) MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_sraider) MCFG_GFXDECODE_ADD("gfxdecode", sraider) - MCFG_PALETTE_LENGTH(4*8+4*16+32+2) + MCFG_PALETTE_ADD("palette", 4*8+4*16+32+2) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) - MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,sraider) + MCFG_PALETTE_INIT_OWNER(ladybug_state,sraider) MCFG_VIDEO_START_OVERRIDE(ladybug_state,sraider) /* sound hardware */ diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c index 03981336dbb..c7c9080f6c6 100644 --- a/src/mame/drivers/ladyfrog.c +++ b/src/mame/drivers/ladyfrog.c @@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state ) MCFG_SCREEN_UPDATE_DRIVER(ladyfrog_state, screen_update_ladyfrog) MCFG_GFXDECODE_ADD("gfxdecode", ladyfrog) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c index b7ae86d8543..1459e8f8e74 100644 --- a/src/mame/drivers/laserbas.c +++ b/src/mame/drivers/laserbas.c @@ -218,7 +218,7 @@ static ADDRESS_MAP_START( laserbas_io, AS_IO, 8, laserbas_state ) AM_RANGE(0x20, 0x23) AM_WRITE(out_w) AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("pit0", pit8253_device, read, write) AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("pit1", pit8253_device, read, write) - AM_RANGE(0x80, 0x9f) AM_RAM_WRITE(paletteram_RRRGGGBB_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x80, 0x9f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static INPUT_PORTS_START( laserbas ) @@ -330,7 +330,8 @@ static MACHINE_CONFIG_START( laserbas, laserbas_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", 3000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_FORMAT(RRRGGGBB) MACHINE_CONFIG_END /* diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index aa45208609a..8d4a9b77eae 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -521,7 +521,7 @@ UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind1 } if (m_sprite_enable) - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, m_sprite_code, m_sprite_color, 0,0, @@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state ) MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat) MCFG_GFXDECODE_ADD("gfxdecode", laserbat) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_S2636_ADD("s2636_1", s2636_1_config) MCFG_S2636_ADD("s2636_2", s2636_2_config) @@ -771,7 +771,7 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state ) MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat) MCFG_GFXDECODE_ADD("gfxdecode", laserbat) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_S2636_ADD("s2636_1", s2636_1_config) MCFG_S2636_ADD("s2636_2", s2636_2_config) diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c index 422452c5db1..efeee23f8e3 100644 --- a/src/mame/drivers/lasso.c +++ b/src/mame/drivers/lasso.c @@ -497,8 +497,8 @@ static MACHINE_CONFIG_START( base, lasso_state ) MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_lasso) MCFG_GFXDECODE_ADD("gfxdecode", lasso) - MCFG_PALETTE_LENGTH(0x40) - + MCFG_PALETTE_ADD("palette", 0x40) + MCFG_PALETTE_INIT_OWNER(lasso_state, lasso) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -549,9 +549,9 @@ static MACHINE_CONFIG_DERIVED( wwjgtin, base ) MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area? MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_wwjgtin) MCFG_GFXDECODE_MODIFY("gfxdecode", wwjgtin) // Has 1 additional layer - MCFG_PALETTE_LENGTH(0x40 + 16*16) - - MCFG_PALETTE_INIT_OVERRIDE(lasso_state,wwjgtin) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 0x40 + 16*16) + MCFG_PALETTE_INIT_OWNER(lasso_state,wwjgtin) MCFG_VIDEO_START_OVERRIDE(lasso_state,wwjgtin) /* sound hardware */ @@ -572,8 +572,8 @@ static MACHINE_CONFIG_DERIVED( pinbo, base ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", pinbo) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo) diff --git a/src/mame/drivers/lastbank.c b/src/mame/drivers/lastbank.c index d1704cf7bdb..3756dc00562 100644 --- a/src/mame/drivers/lastbank.c +++ b/src/mame/drivers/lastbank.c @@ -477,11 +477,12 @@ static MACHINE_CONFIG_START( lastbank, lastbank_state ) MCFG_SCREEN_UPDATE_DRIVER(lastbank_state, screen_update) MCFG_SCREEN_VBLANK_DRIVER(lastbank_state, screen_eof) - MCFG_GFXDECODE_ADD("gfxdecode", lastbank ) - MCFG_PALETTE_LENGTH(0x100) + MCFG_GFXDECODE_ADD("gfxdecode", lastbank ) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_DEVICE_ADD("tc0091lvc", TC0091LVC, 0) MCFG_TC0091LVC_GFXDECODE("gfxdecode") + MCFG_TC0091LVC_PALETTE("palette") // MCFG_VIDEO_START_OVERRIDE(lastbank_state,lastbank) diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c index bdadb8f4958..b093a350e31 100644 --- a/src/mame/drivers/lastduel.c +++ b/src/mame/drivers/lastduel.c @@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state ) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_GFXDECODE_ADD("gfxdecode", lastduel) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(lastduel_state,lastduel) @@ -562,7 +562,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state ) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_GFXDECODE_ADD("gfxdecode", madgear) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(lastduel_state,madgear) diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c index 8fb4a330ee2..956db22ce5f 100644 --- a/src/mame/drivers/lastfght.c +++ b/src/mame/drivers/lastfght.c @@ -163,12 +163,12 @@ UINT32 lastfght_state::screen_update_lastfght(screen_device &screen, bitmap_ind1 count = m_base; - bitmap.fill(get_black_pen(machine()), cliprect ); + bitmap.fill(m_palette->black_pen(), cliprect ); for (y = 0 ; y < 256; y++) { for (x = 0; x < 512; x++) { - data = (((count & 0xf) == 0) && ((count & 0x1e00) == 0)) ? get_white_pen(machine()) : gfxdata[count]; // white grid or data + data = (((count & 0xf) == 0) && ((count & 0x1e00) == 0)) ? m_palette->white_pen() : gfxdata[count]; // white grid or data bitmap.pix16(y, x) = data; count++; } @@ -191,7 +191,7 @@ WRITE16_MEMBER(lastfght_state::colordac_w) if (ACCESSING_BITS_0_7) { m_colorram[m_clr_offset] = data; - palette_set_color_rgb(machine(), m_clr_offset / 3, + m_palette->set_pen_color(m_clr_offset / 3, pal6bit(m_colorram[(m_clr_offset / 3) * 3 + 0]), pal6bit(m_colorram[(m_clr_offset / 3) * 3 + 1]), pal6bit(m_colorram[(m_clr_offset / 3) * 3 + 2]) @@ -573,7 +573,7 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state ) /* video hardware */ - MCFG_PALETTE_LENGTH( 256 ) + MCFG_PALETTE_ADD( "palette", 256 ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_SIZE( 512, 256 ) diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c index 8f3e46bc828..8b552acce9b 100644 --- a/src/mame/drivers/lazercmd.c +++ b/src/mame/drivers/lazercmd.c @@ -593,15 +593,15 @@ static GFXDECODE_START( lazercmd ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 2 ) GFXDECODE_END -void lazercmd_state::palette_init() +PALETTE_INIT_MEMBER(lazercmd_state, lazercmd) { - palette_set_color(machine(), 0, rgb_t(0xb0, 0xb0, 0xb0)); /* white */ - palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); /* black */ + palette.set_pen_color(0, rgb_t(0xb0, 0xb0, 0xb0)); /* white */ + palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); /* black */ - palette_set_color(machine(), 2, rgb_t(0x00, 0x00, 0x00)); /* black */ - palette_set_color(machine(), 3, rgb_t(0xb0, 0xb0, 0xb0)); /* white */ + palette.set_pen_color(2, rgb_t(0x00, 0x00, 0x00)); /* black */ + palette.set_pen_color(3, rgb_t(0xb0, 0xb0, 0xb0)); /* white */ - palette_set_color(machine(), 4, rgb_t(0xff, 0xff, 0xff)); /* bright white */ + palette.set_pen_color(4, rgb_t(0xff, 0xff, 0xff)); /* bright white */ } @@ -647,7 +647,8 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state ) MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd) MCFG_GFXDECODE_ADD("gfxdecode", lazercmd) - MCFG_PALETTE_LENGTH(5) + MCFG_PALETTE_ADD("palette", 5) + MCFG_PALETTE_INIT_OWNER(lazercmd_state, lazercmd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -678,7 +679,8 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state ) MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd) MCFG_GFXDECODE_ADD("gfxdecode", lazercmd) - MCFG_PALETTE_LENGTH(5) + MCFG_PALETTE_ADD("palette", 5) + MCFG_PALETTE_INIT_OWNER(lazercmd_state, lazercmd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -709,7 +711,8 @@ static MACHINE_CONFIG_START( bbonk, lazercmd_state ) MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd) MCFG_GFXDECODE_ADD("gfxdecode", lazercmd) - MCFG_PALETTE_LENGTH(5) + MCFG_PALETTE_ADD("palette", 5) + MCFG_PALETTE_INIT_OWNER(lazercmd_state, lazercmd) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/lbeach.c b/src/mame/drivers/lbeach.c index 7e1e0c353bf..64100ce9556 100644 --- a/src/mame/drivers/lbeach.c +++ b/src/mame/drivers/lbeach.c @@ -71,7 +71,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(lbeach); UINT32 screen_update_lbeach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -83,28 +83,28 @@ public: ***************************************************************************/ -void lbeach_state::palette_init() +PALETTE_INIT_MEMBER(lbeach_state, lbeach) { // tiles - palette_set_color_rgb(machine(), 0, 0x00, 0x00, 0x00); - palette_set_color_rgb(machine(), 1, 0xc0, 0xc0, 0xc0); + palette.set_pen_color(0, 0x00, 0x00, 0x00); + palette.set_pen_color(1, 0xc0, 0xc0, 0xc0); // road - palette_set_color_rgb(machine(), 2, 0x00, 0x00, 0x00); - palette_set_color_rgb(machine(), 3, 0xff, 0xff, 0xff); + palette.set_pen_color(2, 0x00, 0x00, 0x00); + palette.set_pen_color(3, 0xff, 0xff, 0xff); - palette_set_color_rgb(machine(), 4, 0x80, 0x80, 0x80); - palette_set_color_rgb(machine(), 5, 0xff, 0xff, 0xff); + palette.set_pen_color(4, 0x80, 0x80, 0x80); + palette.set_pen_color(5, 0xff, 0xff, 0xff); - palette_set_color_rgb(machine(), 6, 0x00, 0x00, 0x00); - palette_set_color_rgb(machine(), 7, 0x80, 0x80, 0x80); + palette.set_pen_color(6, 0x00, 0x00, 0x00); + palette.set_pen_color(7, 0x80, 0x80, 0x80); - palette_set_color_rgb(machine(), 8, 0x80, 0x80, 0x80); - palette_set_color_rgb(machine(), 9, 0xff, 0xff, 0xff); + palette.set_pen_color(8, 0x80, 0x80, 0x80); + palette.set_pen_color(9, 0xff, 0xff, 0xff); // player car - palette_set_color_rgb(machine(), 10, 0x00, 0x00, 0x00); - palette_set_color_rgb(machine(), 11, 0xff, 0xff, 0xff); + palette.set_pen_color(10, 0x00, 0x00, 0x00); + palette.set_pen_color(11, 0xff, 0xff, 0xff); } @@ -148,7 +148,7 @@ UINT32 lbeach_state::screen_update_lbeach(screen_device &screen, bitmap_ind16 &b int sprite_y = 160; m_colmap_car.fill(0, cliprect); - m_gfxdecode->gfx(2)->transpen(m_colmap_car,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0); + m_gfxdecode->gfx(2)->transpen(m_palette,m_colmap_car,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0); bitmap_ind16 &fg_bitmap = m_fg_tilemap->pixmap(); m_collision_bg_car = 0; @@ -167,7 +167,7 @@ UINT32 lbeach_state::screen_update_lbeach(screen_device &screen, bitmap_ind16 &b m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw player car - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0); + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, sprite_code, 0, 0, 0, sprite_x, sprite_y, 0); return 0; } @@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( lbeach, lbeach_state ) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) // needed for collision detection MCFG_GFXDECODE_ADD("gfxdecode", lbeach) - MCFG_PALETTE_LENGTH(2+8+2) - + MCFG_PALETTE_ADD("palette", 2+8+2) + MCFG_PALETTE_INIT_OWNER(lbeach_state, lbeach) /* sound hardware */ // ... MACHINE_CONFIG_END diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c index 5d37547485c..7b0a8043b8a 100644 --- a/src/mame/drivers/legionna.c +++ b/src/mame/drivers/legionna.c @@ -89,7 +89,7 @@ static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* palette xRRRRxGGGGxBBBBx ? */ + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* palette xRRRRxGGGGxBBBBx ? */ AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x106000, 0x107fff) AM_RAM AM_RANGE(0x108000, 0x11ffff) AM_RAM /* main ram */ @@ -105,7 +105,7 @@ static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") AM_RANGE(0x103000, 0x103fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x108000, 0x11ffff) AM_RAM ADDRESS_MAP_END @@ -118,7 +118,7 @@ static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") AM_RANGE(0x103800, 0x103fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x106000, 0x1067ff) AM_RAM AM_RANGE(0x106800, 0x106fff) AM_RAM @@ -131,7 +131,7 @@ WRITE16_MEMBER(legionna_state::denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) { offset^=1; COMBINE_DATA(&m_generic_paletteram_16[offset]); - paletteram_xBBBBBGGGGGRRRRR_word_w(space,offset,data,mem_mask); + m_palette->write(space,offset,data,mem_mask); } static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16, legionna_state ) @@ -159,7 +159,7 @@ static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") - AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x104000, 0x104fff) AM_RAM//_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") AM_RANGE(0x105000, 0x105fff) AM_RAM AM_RANGE(0x106000, 0x106fff) AM_RAM @@ -175,7 +175,7 @@ static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") - AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x104000, 0x104fff) AM_RAM AM_RANGE(0x105000, 0x106fff) AM_RAM AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram") @@ -194,7 +194,7 @@ static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") - AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x104000, 0x104fff) AM_RAM AM_RANGE(0x105000, 0x106fff) AM_RAM AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram") @@ -213,7 +213,7 @@ static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data") AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram") - AM_RANGE(0x103000, 0x103fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x104000, 0x104fff) AM_RAM AM_RANGE(0x105000, 0x106fff) AM_RAM AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_SHARE("spriteram") @@ -1078,8 +1078,8 @@ static MACHINE_CONFIG_START( legionna, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna) MCFG_GFXDECODE_ADD("gfxdecode", legionna) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,legionna) @@ -1108,8 +1108,9 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna) MCFG_GFXDECODE_ADD("gfxdecode", heatbrl) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,legionna) @@ -1138,8 +1139,9 @@ static MACHINE_CONFIG_START( godzilla, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla) MCFG_GFXDECODE_ADD("gfxdecode", heatbrl) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,godzilla) @@ -1167,8 +1169,9 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla) MCFG_GFXDECODE_ADD("gfxdecode", heatbrl) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,denjinmk) @@ -1196,8 +1199,9 @@ static MACHINE_CONFIG_START( grainbow, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_GFXDECODE_ADD("gfxdecode", grainbow) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,grainbow) @@ -1226,8 +1230,9 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_GFXDECODE_ADD("gfxdecode", cupsoc) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,cupsoc) @@ -1264,8 +1269,9 @@ static MACHINE_CONFIG_START( cupsocbl, legionna_state ) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_GFXDECODE_ADD("gfxdecode", heatbrl_csb) - MCFG_PALETTE_LENGTH(128*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(legionna_state,cupsoc) diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c index 8d3d281f2d6..7bb30685bb7 100644 --- a/src/mame/drivers/leland.c +++ b/src/mame/drivers/leland.c @@ -69,7 +69,7 @@ static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state ) AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1") AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(leland_battery_ram_w) AM_SHARE("battery") AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(leland_gated_paletteram_r, leland_gated_paletteram_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(leland_gated_paletteram_r, leland_gated_paletteram_w) AM_SHARE("palette") AM_RANGE(0xf800, 0xf801) AM_WRITE(leland_master_video_addr_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c index b933c73c24f..77c511b9838 100644 --- a/src/mame/drivers/lemmings.c +++ b/src/mame/drivers/lemmings.c @@ -56,7 +56,7 @@ WRITE16_MEMBER(lemmings_state::lemmings_palette_24bit_w) g = (m_paletteram[offset + 1] >> 8) & 0xff; r = (m_paletteram[offset + 1] >> 0) & 0xff; - palette_set_color(machine(), offset / 2, rgb_t(r, g, b)); + m_palette->set_pen_color(offset / 2, rgb_t(r, g, b)); } void lemmings_state::lemmings_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask ) @@ -264,16 +264,18 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state ) MCFG_SCREEN_VBLANK_DRIVER(lemmings_state, screen_eof_lemmings) MCFG_GFXDECODE_ADD("gfxdecode", lemmings) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 1); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 0); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index 4b62f2e4298..aed95de93fd 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -387,7 +387,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w) { if (m_cur_control2 & 0x10) // RAM enable { - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); } else { @@ -478,7 +478,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w) // use one more palette entry for the BG color WRITE8_MEMBER(lethal_state::le_bgcolor_w) { - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, 0x3800 + offset, data); + m_palette->write(space, 0x3800 + offset, data); } READ8_MEMBER(lethal_state::guns_r) @@ -720,8 +720,6 @@ static MACHINE_CONFIG_START( lethalen, lethal_state ) MCFG_GFXDECODE_ADD("gfxdecode", lethal) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -729,12 +727,16 @@ static MACHINE_CONFIG_START( lethalen, lethal_state ) MCFG_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen) - MCFG_PALETTE_LENGTH(7168+1) + MCFG_PALETTE_ADD("palette", 7168+1) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_K056832_ADD("k056832", lethalen_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053244_ADD("k053244", lethalen_k05324x_intf) MCFG_K053244_GFXDECODE("gfxdecode") + MCFG_K053244_PALETTE("palette") MCFG_K054000_ADD("k054000") /* sound hardware */ @@ -754,6 +756,7 @@ static MACHINE_CONFIG_DERIVED( lethalej, lethalen ) MCFG_DEVICE_REMOVE("k053244") MCFG_K053244_ADD("k053244", lethalej_k05324x_intf) MCFG_K053244_GFXDECODE("gfxdecode") + MCFG_K053244_PALETTE("palette") MACHINE_CONFIG_END ROM_START( lethalen ) // US version UAE diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c index 00ba7c897a6..3dcc5ddc74b 100644 --- a/src/mame/drivers/lethalj.c +++ b/src/mame/drivers/lethalj.c @@ -676,8 +676,7 @@ static MACHINE_CONFIG_START( gameroom, lethalj_state ) MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_ind16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c index 4986d261051..2437e0bc862 100644 --- a/src/mame/drivers/lgp.c +++ b/src/mame/drivers/lgp.c @@ -107,7 +107,7 @@ UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, int charx, chary; /* make color 0 transparent */ - palette_set_color(machine(), 0, rgb_t(0,0,0,0)); + m_palette->set_pen_color(0, rgb_t(0,0,0,0)); /* clear */ bitmap.fill(0, cliprect); @@ -121,7 +121,7 @@ UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, /* Somewhere there's a flag that offsets the tilemap by 0x100*x */ /* Palette is likely set somewhere as well (tile_control_ram?) */ - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, m_tile_ram[current_screen_character], 0, 0, 0, charx*8, chary*8, 0); @@ -379,8 +379,8 @@ static MACHINE_CONFIG_START( lgp, lgp_state ) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") - MCFG_PALETTE_LENGTH(256) - /* MCFG_PALETTE_INIT_OVERRIDE(lgp_state,lgp) */ + MCFG_PALETTE_ADD("palette", 256) + /* MCFG_PALETTE_INIT_OWNER(lgp_state,lgp) */ MCFG_GFXDECODE_ADD("gfxdecode", lgp) diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c index 56feaa014cc..dd89f7834fb 100644 --- a/src/mame/drivers/liberate.c +++ b/src/mame/drivers/liberate.c @@ -839,8 +839,8 @@ static MACHINE_CONFIG_START( liberate, liberate_state ) MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_liberate) MCFG_GFXDECODE_ADD("gfxdecode", liberate) - MCFG_PALETTE_LENGTH(33) - MCFG_PALETTE_INIT_OVERRIDE(liberate_state,liberate) + MCFG_PALETTE_ADD("palette", 33) + MCFG_PALETTE_INIT_OWNER(liberate_state,liberate) MCFG_VIDEO_START_OVERRIDE(liberate_state,liberate) @@ -918,7 +918,7 @@ static MACHINE_CONFIG_START( prosport, liberate_state ) MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosport) MCFG_GFXDECODE_ADD("gfxdecode", prosport) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(liberate_state,prosport) diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index 2cac7db301a..f296cedfd22 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -115,13 +115,13 @@ WRITE32_MEMBER(limenko_state::limenko_paletteram_w) if(ACCESSING_BITS_0_15) { paldata = m_generic_paletteram_32[offset] & 0x7fff; - palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10)); + m_palette->set_pen_color(offset * 2 + 1, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10)); } if(ACCESSING_BITS_16_31) { paldata = (m_generic_paletteram_32[offset] >> 16) & 0x7fff; - palette_set_color_rgb(machine(), offset * 2 + 0, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10)); + m_palette->set_pen_color(offset * 2 + 0, pal5bit(paldata >> 0), pal5bit(paldata >> 5), pal5bit(paldata >> 10)); } } @@ -467,7 +467,7 @@ void limenko_state::draw_sprites(UINT32 *sprites, const rectangle &cliprect, int continue; /* prepare GfxElement on the fly */ - gfx_element gfx(machine(), gfxdata, width, height, width, 0, 256); + gfx_element gfx(machine(), gfxdata, width, height, width, m_palette->entries(), 0, 256); draw_single_sprite(m_sprites_bitmap,cliprect,&gfx,0,color,flipx,flipy,x,y,pri); @@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( limenko, limenko_state ) MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko) MCFG_GFXDECODE_ADD("gfxdecode", limenko) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ @@ -798,7 +798,7 @@ static MACHINE_CONFIG_START( spotty, limenko_state ) MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko) MCFG_GFXDECODE_ADD("gfxdecode", limenko) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c index 0c1ac1e9ea2..5df55e79e87 100644 --- a/src/mame/drivers/littlerb.c +++ b/src/mame/drivers/littlerb.c @@ -950,10 +950,11 @@ static MACHINE_CONFIG_START( littlerb, littlerb_state ) MCFG_DEVICE_ADD("littlerbvdp", LITTLERBVDP, 0) #endif - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") +// MCFG_PALETTE_INIT_OWNER(littlerb_state,littlerb) MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") MCFG_DAC_ADD("dacl") diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c index bb3a1108ba9..83779441988 100644 --- a/src/mame/drivers/lkage.c +++ b/src/mame/drivers/lkage.c @@ -133,7 +133,7 @@ READ8_MEMBER(lkage_state::sound_status_r) static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state ) AM_RANGE(0x0000, 0xdfff) AM_ROM AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */ - AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf000, 0xf003) AM_RAM AM_SHARE("vreg") /* video registers */ AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w) AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r) @@ -563,7 +563,8 @@ static MACHINE_CONFIG_START( lkage, lkage_state ) MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage) MCFG_GFXDECODE_ADD("gfxdecode", lkage) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ @@ -607,7 +608,8 @@ static MACHINE_CONFIG_START( lkageb, lkage_state ) MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage) MCFG_GFXDECODE_ADD("gfxdecode", lkage) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c index 61077b0c365..2b25fd271c7 100644 --- a/src/mame/drivers/lockon.c +++ b/src/mame/drivers/lockon.c @@ -513,8 +513,8 @@ static MACHINE_CONFIG_START( lockon, lockon_state ) MCFG_SCREEN_VBLANK_DRIVER(lockon_state, screen_eof_lockon) MCFG_GFXDECODE_ADD("gfxdecode", lockon) - MCFG_PALETTE_LENGTH(1024 + 2048) - + MCFG_PALETTE_ADD("palette", 1024 + 2048) + MCFG_PALETTE_INIT_OWNER(lockon_state, lockon) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c index fba464999a5..d5cfded32dc 100644 --- a/src/mame/drivers/looping.c +++ b/src/mame/drivers/looping.c @@ -148,7 +148,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(looping); UINT32 screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(looping_interrupt); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -166,7 +166,7 @@ public: * *************************************/ -void looping_state::palette_init() +PALETTE_INIT_MEMBER(looping_state, looping) { const UINT8 *color_prom = memregion("proms")->base(); static const int resistances[3] = { 1000, 470, 220 }; @@ -201,7 +201,7 @@ void looping_state::palette_init() bit1 = (color_prom[i] >> 7) & 1; b = combine_2_weights(bweights, bit0, bit1); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -310,7 +310,7 @@ void looping_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect flipy = !flipy; } - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); } } @@ -684,8 +684,9 @@ static MACHINE_CONFIG_START( looping, looping_state ) MCFG_SCREEN_UPDATE_DRIVER(looping_state, screen_update_looping) MCFG_GFXDECODE_ADD("gfxdecode", looping) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(looping_state, looping) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index 70f57f816df..bcae664bcb9 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state ) MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun) MCFG_GFXDECODE_ADD("gfxdecode", lordgun) - MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level + MCFG_PALETTE_ADD("palette", 0x800 * 8) // 0x800 real colors, repeated per priority level // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state ) MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun) MCFG_GFXDECODE_ADD("gfxdecode", lordgun) - MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level + MCFG_PALETTE_ADD("palette", 0x800 * 8) // 0x800 real colors, repeated per priority level // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c index 67f98f83d20..d6ffe6d6186 100644 --- a/src/mame/drivers/lsasquad.c +++ b/src/mame/drivers/lsasquad.c @@ -633,9 +633,7 @@ static MACHINE_CONFIG_START( lsasquad, lsasquad_state ) MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_lsasquad) MCFG_GFXDECODE_ADD("gfxdecode", lsasquad) - MCFG_PALETTE_LENGTH(512) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -690,9 +688,7 @@ static MACHINE_CONFIG_START( daikaiju, lsasquad_state ) MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_daikaiju) MCFG_GFXDECODE_ADD("gfxdecode", lsasquad) - MCFG_PALETTE_LENGTH(512) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c index 84db2f4950e..1f5bfe69806 100644 --- a/src/mame/drivers/ltcasino.c +++ b/src/mame/drivers/ltcasino.c @@ -662,7 +662,7 @@ static MACHINE_CONFIG_START( ltcasino, ltcasino_state ) MCFG_SCREEN_UPDATE_DRIVER(ltcasino_state, screen_update_ltcasino) MCFG_GFXDECODE_ADD("gfxdecode", ltcasino) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) /* sound hardware */ diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index 7a5da863735..f264bbd9104 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -367,10 +367,10 @@ UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind1 if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0); } - if (tileattr&0x08) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0); + if (tileattr&0x08) m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,clip,tile,col,0,0,x*8,y*8, 0); #else // treat it as priority flag instead (looks better in non-adult title screen - needs verifying) - if (!(tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0); + if (!(tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,clip,tile,col,0,0,x*8,y*8, 0); if (tileattr&0x04) { @@ -380,7 +380,7 @@ UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind1 if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0); } - if ((tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(bitmap,clip,tile,col,0,0,x*8,y*8, 0); + if ((tileattr&0x08)) m_gfxdecode->gfx(region)->transpen(m_palette,bitmap,clip,tile,col,0,0,x*8,y*8, 0); #endif count++; @@ -470,7 +470,7 @@ WRITE8_MEMBER(luckgrln_state::palette_w) g = (dat >> 5) & 0x1f; b = (dat >> 10) & 0x1f; - palette_set_color_rgb(machine(), offs/2, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offs/2, pal5bit(r), pal5bit(g), pal5bit(b)); } @@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_START( luckgrln, luckgrln_state ) MCFG_SCREEN_UPDATE_DRIVER(luckgrln_state, screen_update_luckgrln) MCFG_GFXDECODE_ADD("gfxdecode", luckgrln) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c index 5feca86d6d8..3c8da314782 100644 --- a/src/mame/drivers/lucky74.c +++ b/src/mame/drivers/lucky74.c @@ -1552,8 +1552,8 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state ) MCFG_GFXDECODE_ADD("gfxdecode", lucky74) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(lucky74_state, lucky74) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c index 9ef2aaea5a0..13438c1ae9e 100644 --- a/src/mame/drivers/lvcards.c +++ b/src/mame/drivers/lvcards.c @@ -477,8 +477,8 @@ static MACHINE_CONFIG_START( lvcards, lvcards_state ) MCFG_SCREEN_UPDATE_DRIVER(lvcards_state, screen_update_lvcards) MCFG_GFXDECODE_ADD("gfxdecode", lvcards) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(lvcards_state, lvcards) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") @@ -507,7 +507,8 @@ static MACHINE_CONFIG_DERIVED( ponttehk, lvcards ) MCFG_MACHINE_RESET_OVERRIDE(lvcards_state,lvpoker) // video hardware - MCFG_PALETTE_INIT_OVERRIDE(lvcards_state,ponttehk) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(lvcards_state,ponttehk) MACHINE_CONFIG_END ROM_START( lvpoker ) diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c index c4d6c722d6d..5d4dfcfa7ee 100644 --- a/src/mame/drivers/lwings.c +++ b/src/mame/drivers/lwings.c @@ -280,8 +280,8 @@ static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8, lwings_state ) AM_RANGE(0xdf80, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_SHARE("bg1videoram") - AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2") - AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0xf400, 0xf7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf800, 0xf801) AM_WRITE(lwings_bg1_scrollx_w) AM_RANGE(0xf802, 0xf803) AM_WRITE(lwings_bg1_scrolly_w) AM_RANGE(0xf804, 0xf804) AM_WRITE(trojan_bg2_scrollx_w) @@ -303,8 +303,8 @@ static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8, lwings_state ) AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_SHARE("bg1videoram") - AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2") - AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0xf400, 0xf7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf808, 0xf808) AM_READ_PORT("SERVICE") AM_RANGE(0xf809, 0xf809) AM_READ_PORT("P1") @@ -325,8 +325,8 @@ static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8, lwings_state ) AM_RANGE(0xdf80, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lwings_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lwings_bg1videoram_w) AM_SHARE("bg1videoram") - AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_hi_w) AM_SHARE("paletteram2") - AM_RANGE(0xf400, 0xf7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_split_lo_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0xf400, 0xf7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf800, 0xf801) AM_WRITE(lwings_bg1_scrollx_w) AM_RANGE(0xf802, 0xf803) AM_WRITE(lwings_bg1_scrolly_w) @@ -792,8 +792,9 @@ static MACHINE_CONFIG_START( lwings, lwings_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", lwings) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c index 03161d81144..fc282dbc370 100644 --- a/src/mame/drivers/m10.c +++ b/src/mame/drivers/m10.c @@ -185,7 +185,7 @@ PALETTE_INIT_MEMBER(m10_state,m10) else color = rgb_t::black; - palette_set_color(machine(), i, color); + palette.set_pen_color(i, color); } } @@ -855,9 +855,9 @@ static MACHINE_CONFIG_START( m10, m10_state ) MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m10) MCFG_GFXDECODE_ADD("gfxdecode", m10) - MCFG_PALETTE_LENGTH(2*8) + MCFG_PALETTE_ADD("palette", 2*8) - MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10) + MCFG_PALETTE_INIT_OWNER(m10_state,m10) MCFG_VIDEO_START_OVERRIDE(m10_state,m10) /* 74LS123 */ @@ -900,9 +900,9 @@ static MACHINE_CONFIG_START( m15, m10_state ) MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m15) MCFG_GFXDECODE_ADD("gfxdecode", empty) - MCFG_PALETTE_LENGTH(2*8) + MCFG_PALETTE_ADD("palette", 2*8) - MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10) + MCFG_PALETTE_INIT_OWNER(m10_state,m10) MCFG_VIDEO_START_OVERRIDE(m10_state, m15 ) /* sound hardware */ diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index cecb62cbd72..d5a4ae97eb2 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -131,7 +131,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, m107_state ) AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m107_vram_w) AM_SHARE("vram_data") AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */ AM_RANGE(0xf8000, 0xf8fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xf9000, 0xf9fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xf9000, 0xf9fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("maincpu", 0x7fff0) ADDRESS_MAP_END @@ -777,7 +777,8 @@ static MACHINE_CONFIG_START( firebarr, m107_state ) MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update_m107) MCFG_GFXDECODE_ADD("gfxdecode", firebarr) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c index 746027ecbae..0cc6501079c 100644 --- a/src/mame/drivers/m14.c +++ b/src/mame/drivers/m14.c @@ -90,7 +90,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(m14); UINT32 screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(m14_irq); }; @@ -103,7 +103,7 @@ public: *************************************/ /* guess, might not be 100% accurate. */ -void m14_state::palette_init() +PALETTE_INIT_MEMBER(m14_state, m14) { int i; @@ -116,7 +116,7 @@ void m14_state::palette_init() else color = (i & 0x10) ? rgb_t::white : rgb_t::black; - palette_set_color(machine(), i, color); + palette.set_pen_color(i, color); } } @@ -347,7 +347,8 @@ static MACHINE_CONFIG_START( m14, m14_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(m14_state, screen_update_m14) MCFG_GFXDECODE_ADD("gfxdecode", m14) - MCFG_PALETTE_LENGTH(0x20) + MCFG_PALETTE_ADD("palette", 0x20) + MCFG_PALETTE_INIT_OWNER(m14_state, m14) /* sound hardware */ diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c index 7ed501dd802..9250d1d9bb7 100644 --- a/src/mame/drivers/m52.c +++ b/src/mame/drivers/m52.c @@ -399,7 +399,8 @@ static MACHINE_CONFIG_START( m52, m52_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m52) - MCFG_PALETTE_LENGTH(128*4+16*4+3*4) + MCFG_PALETTE_ADD("palette", 128*4+16*4+3*4) + MCFG_PALETTE_INIT_OWNER(m52_state, m52) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274) diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c index 9402707a2de..33bad79d0e3 100644 --- a/src/mame/drivers/m57.c +++ b/src/mame/drivers/m57.c @@ -241,8 +241,8 @@ static MACHINE_CONFIG_START( m57, m57_state ) MCFG_SCREEN_UPDATE_DRIVER(m57_state, screen_update_m57) MCFG_GFXDECODE_ADD("gfxdecode", m57) - MCFG_PALETTE_LENGTH(32*8+32*8) - + MCFG_PALETTE_ADD("palette", 32*8+32*8) + MCFG_PALETTE_INIT_OWNER(m57_state, m57) /* sound hardware */ MCFG_FRAGMENT_ADD(m52_sound_c_audio) diff --git a/src/mame/drivers/m58.c b/src/mame/drivers/m58.c index 6860caad00b..2652d59a993 100644 --- a/src/mame/drivers/m58.c +++ b/src/mame/drivers/m58.c @@ -197,7 +197,8 @@ static MACHINE_CONFIG_START( yard, m58_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", yard) - MCFG_PALETTE_LENGTH(256+256+256) + MCFG_PALETTE_ADD("palette", 256+256+256) + MCFG_PALETTE_INIT_OWNER(m58_state, m58) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266) diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c index d6e58df5617..ac1e1c8e910 100644 --- a/src/mame/drivers/m62.c +++ b/src/mame/drivers/m62.c @@ -947,8 +947,8 @@ static MACHINE_CONFIG_START( ldrun, m62_state ) MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun) MCFG_GFXDECODE_ADD("gfxdecode", ldrun) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(m62_state,m62) /* sound hardware */ MCFG_FRAGMENT_ADD(m62_audio) @@ -985,9 +985,10 @@ static MACHINE_CONFIG_DERIVED( battroad, ldrun ) MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_battroad) MCFG_GFXDECODE_MODIFY("gfxdecode", battroad) - MCFG_PALETTE_LENGTH(544) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 544) - MCFG_PALETTE_INIT_OVERRIDE(m62_state,battroad) + MCFG_PALETTE_INIT_OWNER(m62_state,battroad) MCFG_VIDEO_START_OVERRIDE(m62_state,battroad) MACHINE_CONFIG_END @@ -1043,9 +1044,11 @@ static MACHINE_CONFIG_DERIVED( lotlot, ldrun ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", lotlot) - MCFG_PALETTE_LENGTH(768) + + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 768) - MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot) + MCFG_PALETTE_INIT_OWNER(m62_state,lotlot) MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_lotlot) @@ -1091,9 +1094,10 @@ static MACHINE_CONFIG_DERIVED( spelunk2, ldrun ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", spelunk2) - MCFG_PALETTE_LENGTH(768) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 768) - MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2) + MCFG_PALETTE_INIT_OWNER(m62_state,spelunk2) MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunk2) diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c index 465583936d8..15996ad761f 100644 --- a/src/mame/drivers/m63.c +++ b/src/mame/drivers/m63.c @@ -228,7 +228,7 @@ PALETTE_INIT_MEMBER(m63_state,m63) bit3 = (color_prom[i + 2*256] >> 3) & 0x01; b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } color_prom += 3 * 256; @@ -252,7 +252,7 @@ PALETTE_INIT_MEMBER(m63_state,m63) bit1 = (color_prom[i] >> 7) & 0x01; b = 0x4f * bit0 + 0xa8 * bit1; - palette_set_color(machine(),i+256,rgb_t(r,g,b)); + palette.set_pen_color(i+256,rgb_t(r,g,b)); } } @@ -346,7 +346,7 @@ void m63_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) } - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); @@ -355,7 +355,7 @@ void m63_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) if (sx > 0xf0) { - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx - 0x100, sy, 0); @@ -775,9 +775,9 @@ static MACHINE_CONFIG_START( m63, m63_state ) MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63) MCFG_GFXDECODE_ADD("gfxdecode", m63) - MCFG_PALETTE_LENGTH(256+4) + MCFG_PALETTE_ADD("palette", 256+4) - MCFG_PALETTE_INIT_OVERRIDE(m63_state,m63) + MCFG_PALETTE_INIT_OWNER(m63_state,m63) MCFG_VIDEO_START_OVERRIDE(m63_state,m63) /* sound hardware */ @@ -819,9 +819,7 @@ static MACHINE_CONFIG_START( fghtbskt, m63_state ) MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63) MCFG_GFXDECODE_ADD("gfxdecode", fghtbskt) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(m63_state,m63) /* sound hardware */ diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index 3ef1198fe06..781c11e4900 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -1802,7 +1802,7 @@ static MACHINE_CONFIG_START( m72_base, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m72) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -1857,7 +1857,7 @@ static MACHINE_CONFIG_START( rtype, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m72) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -1894,7 +1894,7 @@ static MACHINE_CONFIG_START( xmultipl, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m72) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -1935,7 +1935,7 @@ static MACHINE_CONFIG_START( xmultiplm72, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m72) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -1976,7 +1976,7 @@ static MACHINE_CONFIG_START( dbreed, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rtype2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2017,7 +2017,7 @@ static MACHINE_CONFIG_START( dbreedm72, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m72) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2058,7 +2058,7 @@ static MACHINE_CONFIG_START( rtype2, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rtype2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2099,7 +2099,7 @@ static MACHINE_CONFIG_START( majtitle, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", majtitle) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2140,7 +2140,7 @@ static MACHINE_CONFIG_START( hharry, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rtype2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2181,7 +2181,7 @@ static MACHINE_CONFIG_START( hharryu, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rtype2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2222,7 +2222,7 @@ static MACHINE_CONFIG_START( dkgenm72, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", m72) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2263,7 +2263,7 @@ static MACHINE_CONFIG_START( poundfor, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rtype2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) @@ -2304,7 +2304,7 @@ static MACHINE_CONFIG_START( cosmccop, m72_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rtype2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c index 5b91592160f..64ae18307ee 100644 --- a/src/mame/drivers/m90.c +++ b/src/mame/drivers/m90.c @@ -75,7 +75,7 @@ static ADDRESS_MAP_START( m90_main_cpu_map, AS_PROGRAM, 16, m90_state ) AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK("bank1") /* Quiz F1 only */ AM_RANGE(0xa0000, 0xa3fff) AM_RAM AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m90_video_w) AM_SHARE("video_data") - AM_RANGE(0xe0000, 0xe03ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xe0000, 0xe03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffff0, 0xfffff) AM_ROM ADDRESS_MAP_END @@ -84,7 +84,7 @@ static ADDRESS_MAP_START( dynablsb_main_cpu_map, AS_PROGRAM, 16, m90_state ) AM_RANGE(0x6000e, 0x60fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xa0000, 0xa3fff) AM_RAM AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m90_video_w) AM_SHARE("video_data") - AM_RANGE(0xe0000, 0xe03ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xe0000, 0xe03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffff0, 0xfffff) AM_ROM ADDRESS_MAP_END @@ -93,7 +93,7 @@ static ADDRESS_MAP_START( bomblord_main_cpu_map, AS_PROGRAM, 16, m90_state ) AM_RANGE(0xa0000, 0xa3fff) AM_RAM AM_RANGE(0xc000e, 0xc0fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m90_video_w) AM_SHARE("video_data") - AM_RANGE(0xe0000, 0xe03ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xe0000, 0xe03ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffff0, 0xfffff) AM_ROM ADDRESS_MAP_END @@ -735,8 +735,8 @@ static MACHINE_CONFIG_START( m90, m90_state ) MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_m90) MCFG_GFXDECODE_ADD("gfxdecode", m90) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index c9c4b56cdde..e19a17e3bd1 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -942,7 +942,8 @@ static MACHINE_CONFIG_START( m92, m92_state ) MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_m92) MCFG_GFXDECODE_ADD("gfxdecode", m92) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(m92_state,m92) @@ -1021,7 +1022,8 @@ static MACHINE_CONFIG_START( ppan, m92_state ) MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan) MCFG_GFXDECODE_ADD("gfxdecode", m92) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(m92_state,ppan) diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c index e5f1020a3b5..4ad83b03982 100644 --- a/src/mame/drivers/macrossp.c +++ b/src/mame/drivers/macrossp.c @@ -300,7 +300,7 @@ WRITE32_MEMBER(macrossp_state::paletteram32_macrossp_w) g = ((m_paletteram[offset] & 0x00ff0000) >>16); r = ((m_paletteram[offset] & 0xff000000) >>24); - palette_set_color(machine(), offset, rgb_t(r,g,b)); + m_palette->set_pen_color(offset, rgb_t(r,g,b)); } @@ -361,7 +361,7 @@ void macrossp_state::update_colors( ) else r -= m_fade_effect; - palette_set_color(machine(), i, rgb_t(r, g, b)); + m_palette->set_pen_color(i, rgb_t(r, g, b)); } } @@ -616,7 +616,7 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state ) MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp) MCFG_GFXDECODE_ADD("gfxdecode", macrossp) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) /* sound hardware */ diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c index 252845bfcc5..649122902bd 100644 --- a/src/mame/drivers/macs.c +++ b/src/mame/drivers/macs.c @@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( macs, macs_state ) MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016) MCFG_GFXDECODE_ADD("gfxdecode", macs) - MCFG_PALETTE_LENGTH(16*16*4+1) + MCFG_PALETTE_ADD("palette", 16*16*4+1) MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016) diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c index b3a3447fdb8..3a9e58ad367 100644 --- a/src/mame/drivers/madmotor.c +++ b/src/mame/drivers/madmotor.c @@ -54,7 +54,7 @@ static ADDRESS_MAP_START( madmotor_map, AS_PROGRAM, 16, madmotor_state ) AM_RANGE(0x1a4000, 0x1a4fff) AM_DEVREADWRITE("tilegen3", deco_bac06_device, pf_data_r, pf_data_w) AM_RANGE(0x3e0000, 0x3e3fff) AM_RAM AM_RANGE(0x3e8000, 0x3e87ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x3f0000, 0x3f07ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x3f0000, 0x3f07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x3f8002, 0x3f8003) AM_READ_PORT("P1_P2") AM_RANGE(0x3f8004, 0x3f8005) AM_READ_PORT("DSW") AM_RANGE(0x3f8006, 0x3f8007) AM_READ_PORT("SYSTEM") @@ -249,7 +249,8 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state ) MCFG_SCREEN_UPDATE_DRIVER(madmotor_state, screen_update_madmotor) MCFG_GFXDECODE_ADD("gfxdecode", madmotor) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) deco_bac06_device::set_gfx_region_wide(*device,0,0,0); @@ -264,6 +265,7 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 3); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c index 0ef55236961..0715b636dcb 100644 --- a/src/mame/drivers/magic10.c +++ b/src/mame/drivers/magic10.c @@ -155,7 +155,7 @@ WRITE16_MEMBER(magic10_state::layer2_videoram_w) WRITE16_MEMBER(magic10_state::paletteram_w) { data = COMBINE_DATA(&m_generic_paletteram_16[offset]); - palette_set_color_rgb( machine(), offset, pal4bit(data >> 4), pal4bit(data >> 0), pal4bit(data >> 8)); + m_palette->set_pen_color( offset, pal4bit(data >> 4), pal4bit(data >> 0), pal4bit(data >> 8)); } @@ -749,7 +749,7 @@ static MACHINE_CONFIG_START( magic10, magic10_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 2*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(magic10_state, screen_update_magic10) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_GFXDECODE_ADD("gfxdecode", magic10) diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c index ac8d2391b1d..e735537bc18 100644 --- a/src/mame/drivers/magicard.c +++ b/src/mame/drivers/magicard.c @@ -424,7 +424,7 @@ UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb3 int x,y; UINT32 count; - bitmap.fill(get_black_pen(machine()), cliprect); //TODO + bitmap.fill(m_palette->black_pen(), cliprect); //TODO if(!(SCC_DE_VREG)) //display enable return 0; @@ -442,22 +442,22 @@ UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb3 color = ((m_magicram[count]) & 0x000f)>>0; if(cliprect.contains((x*4)+3, y)) - bitmap.pix32(y, (x*4)+3) = machine().pens[color]; + bitmap.pix32(y, (x*4)+3) = m_palette->pen(color); color = ((m_magicram[count]) & 0x00f0)>>4; if(cliprect.contains((x*4)+2, y)) - bitmap.pix32(y, (x*4)+2) = machine().pens[color]; + bitmap.pix32(y, (x*4)+2) = m_palette->pen(color); color = ((m_magicram[count]) & 0x0f00)>>8; if(cliprect.contains((x*4)+1, y)) - bitmap.pix32(y, (x*4)+1) = machine().pens[color]; + bitmap.pix32(y, (x*4)+1) = m_palette->pen(color); color = ((m_magicram[count]) & 0xf000)>>12; if(cliprect.contains((x*4)+0, y)) - bitmap.pix32(y, (x*4)+0) = machine().pens[color]; + bitmap.pix32(y, (x*4)+0) = m_palette->pen(color); count++; } @@ -474,12 +474,12 @@ UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb3 color = ((m_magicram[count]) & 0x00ff)>>0; if(cliprect.contains((x*2)+1, y)) - bitmap.pix32(y, (x*2)+1) = machine().pens[color]; + bitmap.pix32(y, (x*2)+1) = m_palette->pen(color); color = ((m_magicram[count]) & 0xff00)>>8; if(cliprect.contains((x*2)+0, y)) - bitmap.pix32(y, (x*2)+0) = machine().pens[color]; + bitmap.pix32(y, (x*2)+0) = m_palette->pen(color); count++; } @@ -522,7 +522,7 @@ WRITE16_MEMBER(magicard_state::paletteram_io_w) break; case 2: m_pal.b = ((data & 0x3f) << 2) | ((data & 0x30) >> 4); - palette_set_color(machine(), m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b)); + m_palette->set_pen_color(m_pal.offs, rgb_t(m_pal.r, m_pal.g, m_pal.b)); m_pal.offs_internal = 0; m_pal.offs++; break; @@ -733,7 +733,7 @@ static MACHINE_CONFIG_START( magicard, magicard_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO MCFG_SCREEN_UPDATE_DRIVER(magicard_state, screen_update_magicard) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index eccd3c2e81d..143a05698ea 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -568,23 +568,23 @@ PALETTE_INIT_MEMBER(magicfly_state, magicfly) for (i = 0x00; i < 0x10; i += 0x10) { /* 1st gfx bank */ - palette_set_color(machine(), i + 0, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 2, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 4, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 6, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 8, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 10, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 12, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 14, rgb_t(0x00, 0x00, 0x00)); - - palette_set_color(machine(), i + 1, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 3, rgb_t(0xff, 0x00, 0x00)); - palette_set_color(machine(), i + 5, rgb_t(0x00, 0xff, 0x00)); - palette_set_color(machine(), i + 7, rgb_t(0xff, 0xff, 0x00)); - palette_set_color(machine(), i + 9, rgb_t(0x00, 0x00, 0xff)); - palette_set_color(machine(), i + 11, rgb_t(0xff, 0x00, 0xff)); - palette_set_color(machine(), i + 13, rgb_t(0x00, 0xff, 0xff)); - palette_set_color(machine(), i + 15, rgb_t(0xff, 0xff, 0xff)); + palette.set_pen_color(i + 0, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 2, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 4, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 6, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 8, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 10, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 12, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 14, rgb_t(0x00, 0x00, 0x00)); + + palette.set_pen_color(i + 1, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 3, rgb_t(0xff, 0x00, 0x00)); + palette.set_pen_color(i + 5, rgb_t(0x00, 0xff, 0x00)); + palette.set_pen_color(i + 7, rgb_t(0xff, 0xff, 0x00)); + palette.set_pen_color(i + 9, rgb_t(0x00, 0x00, 0xff)); + palette.set_pen_color(i + 11, rgb_t(0xff, 0x00, 0xff)); + palette.set_pen_color(i + 13, rgb_t(0x00, 0xff, 0xff)); + palette.set_pen_color(i + 15, rgb_t(0xff, 0xff, 0xff)); } } @@ -595,27 +595,27 @@ PALETTE_INIT_MEMBER(magicfly_state, bchance) for (i = 0x00; i < 0x10; i += 0x10) { /* 1st gfx bank */ - palette_set_color(machine(), i + 0, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 2, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 4, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 6, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 8, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 10, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 12, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 14, rgb_t(0x00, 0x00, 0x00)); - - palette_set_color(machine(), i + 1, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), i + 3, rgb_t(0xff, 0x00, 0x00)); - palette_set_color(machine(), i + 5, rgb_t(0x00, 0xff, 0x00)); - palette_set_color(machine(), i + 7, rgb_t(0xff, 0xff, 0x00)); - palette_set_color(machine(), i + 9, rgb_t(0x00, 0x00, 0xff)); - palette_set_color(machine(), i + 11, rgb_t(0xff, 0x00, 0xff)); - palette_set_color(machine(), i + 13, rgb_t(0x00, 0xff, 0xff)); - palette_set_color(machine(), i + 15, rgb_t(0xff, 0xff, 0xff)); + palette.set_pen_color(i + 0, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 2, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 4, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 6, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 8, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 10, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 12, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 14, rgb_t(0x00, 0x00, 0x00)); + + palette.set_pen_color(i + 1, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(i + 3, rgb_t(0xff, 0x00, 0x00)); + palette.set_pen_color(i + 5, rgb_t(0x00, 0xff, 0x00)); + palette.set_pen_color(i + 7, rgb_t(0xff, 0xff, 0x00)); + palette.set_pen_color(i + 9, rgb_t(0x00, 0x00, 0xff)); + palette.set_pen_color(i + 11, rgb_t(0xff, 0x00, 0xff)); + palette.set_pen_color(i + 13, rgb_t(0x00, 0xff, 0xff)); + palette.set_pen_color(i + 15, rgb_t(0xff, 0xff, 0xff)); } - palette_set_color(machine(), 0x08 , rgb_t(0xff, 0xff, 0xff)); // white for the cards back logo background. - palette_set_color(machine(), 0x12 , rgb_t(0x00, 0x00, 0x00)); // black for the cards corners (should be transparent) + palette.set_pen_color(0x08 , rgb_t(0xff, 0xff, 0xff)); // white for the cards back logo background. + palette.set_pen_color(0x12 , rgb_t(0x00, 0x00, 0x00)); // black for the cards corners (should be transparent) } @@ -959,8 +959,8 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state ) MCFG_SCREEN_UPDATE_DRIVER(magicfly_state, screen_update_magicfly) MCFG_GFXDECODE_ADD("gfxdecode", magicfly) - MCFG_PALETTE_LENGTH(32) - MCFG_PALETTE_INIT_OVERRIDE(magicfly_state, magicfly) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(magicfly_state, magicfly) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/16, mc6845_intf) /* guess */ @@ -983,7 +983,8 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( bchance, magicfly ) /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(magicfly_state, bchance) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(magicfly_state, bchance) MACHINE_CONFIG_END diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c index 8580a42ecfd..22a311b1256 100644 --- a/src/mame/drivers/magmax.c +++ b/src/mame/drivers/magmax.c @@ -363,8 +363,8 @@ static MACHINE_CONFIG_START( magmax, magmax_state ) MCFG_SCREEN_UPDATE_DRIVER(magmax_state, screen_update_magmax) MCFG_GFXDECODE_ADD("gfxdecode", magmax) - MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256) - + MCFG_PALETTE_ADD("palette", 1*16 + 16*16 + 256) + MCFG_PALETTE_INIT_OWNER(magmax_state, magmax) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c index 7247da870c7..19bae7e8479 100644 --- a/src/mame/drivers/mainevt.c +++ b/src/mame/drivers/mainevt.c @@ -167,7 +167,7 @@ static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state ) AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) AM_RANGE(0x4000, 0x5dff) AM_RAM - AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -191,7 +191,7 @@ static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state ) AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) AM_RANGE(0x4000, 0x5dff) AM_RAM - AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -436,8 +436,6 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -445,15 +443,19 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_mainevt) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(mainevt_state,mainevt) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", mainevt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", mainevt_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -497,8 +499,6 @@ static MACHINE_CONFIG_START( devstors, mainevt_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -506,15 +506,19 @@ static MACHINE_CONFIG_START( devstors, mainevt_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_dv) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(mainevt_state,dv) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", dv_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", dv_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K051733_ADD("k051733") /* sound hardware */ diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c index 38ce6e80e43..68058ddc58d 100644 --- a/src/mame/drivers/mainsnk.c +++ b/src/mame/drivers/mainsnk.c @@ -395,8 +395,6 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state ) MCFG_CPU_PERIODIC_INT_DRIVER(mainsnk_state, irq0_line_hold, 244) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) @@ -404,8 +402,9 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state ) MCFG_SCREEN_UPDATE_DRIVER(mainsnk_state, screen_update_mainsnk) MCFG_GFXDECODE_ADD("gfxdecode", mainsnk) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_INIT_OWNER(mainsnk_state, mainsnk) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c index ac05aab7a9f..a56b0915a88 100644 --- a/src/mame/drivers/majorpkr.c +++ b/src/mame/drivers/majorpkr.c @@ -540,7 +540,7 @@ void majorpkr_state::video_start() UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); rectangle custom_clip; @@ -590,7 +590,7 @@ WRITE8_MEMBER(majorpkr_state::paletteram_w) offset >>= 1; int color = m_generic_paletteram_8[m_palette_bank * 0x800 + offset * 2] + m_generic_paletteram_8[m_palette_bank * 0x800 + offset * 2 + 1] * 256; - palette_set_color(machine(), offset + m_palette_bank * 256 * 4, rgb_t(pal5bit(color >> 5), pal5bit(color >> 10), pal5bit(color))); + m_palette->set_pen_color(offset + m_palette_bank * 256 * 4, rgb_t(pal5bit(color >> 5), pal5bit(color >> 10), pal5bit(color))); } @@ -1041,7 +1041,7 @@ static MACHINE_CONFIG_START( majorpkr, majorpkr_state ) MCFG_SCREEN_UPDATE_DRIVER(majorpkr_state, screen_update_majorpkr) MCFG_GFXDECODE_ADD("gfxdecode", majorpkr) - MCFG_PALETTE_LENGTH(0x100 * 16) + MCFG_PALETTE_ADD("palette", 0x100 * 16) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* verified */ diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index 2990113c03f..ea71d54305a 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -259,14 +259,14 @@ static GFXDECODE_START( malzak ) GFXDECODE_END -void malzak_state::palette_init() +PALETTE_INIT_MEMBER(malzak_state, malzak) { int i; for (i = 0; i < 8 * 8; i++) { - palette_set_color_rgb(machine(), i * 2 + 0, pal1bit(i >> 3), pal1bit(i >> 4), pal1bit(i >> 5)); - palette_set_color_rgb(machine(), i * 2 + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); + palette.set_pen_color(i * 2 + 0, pal1bit(i >> 3), pal1bit(i >> 4), pal1bit(i >> 5)); + palette.set_pen_color(i * 2 + 1, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)); } } @@ -358,7 +358,8 @@ static MACHINE_CONFIG_START( malzak, malzak_state ) MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update_malzak) MCFG_GFXDECODE_ADD("gfxdecode", malzak) - MCFG_PALETTE_LENGTH(128) + MCFG_PALETTE_ADD("palette", 128) + MCFG_PALETTE_INIT_OWNER(malzak_state, malzak) MCFG_S2636_ADD("s2636_0", malzac_s2636_0_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c index ff94ab3682d..85e6acb7a51 100644 --- a/src/mame/drivers/mappy.c +++ b/src/mame/drivers/mappy.c @@ -1720,13 +1720,13 @@ static MACHINE_CONFIG_FRAGMENT( superpac_common ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", superpac) - MCFG_PALETTE_LENGTH(64*4+64*4) + MCFG_PALETTE_ADD("palette", 64*4+64*4) + MCFG_PALETTE_INIT_OWNER(mappy_state,superpac) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac) - MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac) MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac) /* sound hardware */ @@ -1800,13 +1800,13 @@ static MACHINE_CONFIG_START( phozon, mappy_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", phozon) - MCFG_PALETTE_LENGTH(64*4+64*4) + MCFG_PALETTE_ADD("palette", 64*4+64*4) + MCFG_PALETTE_INIT_OWNER(mappy_state,phozon) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon) - MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon) MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon) /* sound hardware */ @@ -1837,13 +1837,13 @@ static MACHINE_CONFIG_FRAGMENT( mappy_common ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", mappy) - MCFG_PALETTE_LENGTH(64*4+16*16) + MCFG_PALETTE_ADD("palette", 64*4+16*16) + MCFG_PALETTE_INIT_OWNER(mappy_state,mappy) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy) - MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy) MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy) /* sound hardware */ @@ -1879,7 +1879,8 @@ static MACHINE_CONFIG_DERIVED( todruaga, digdug2 ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", todruaga) - MCFG_PALETTE_LENGTH(64*4+64*16) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64*4+64*16) MACHINE_CONFIG_END static MACHINE_CONFIG_START( motos, mappy_state ) diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c index 24a6a9963e6..572f1af1f70 100644 --- a/src/mame/drivers/marineb.c +++ b/src/mame/drivers/marineb.c @@ -547,8 +547,8 @@ static MACHINE_CONFIG_START( marineb, marineb_state ) MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_marineb) MCFG_GFXDECODE_ADD("gfxdecode", marineb) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(marineb_state, marineb) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c index d6967a0f7ee..a2be759013b 100644 --- a/src/mame/drivers/marinedt.c +++ b/src/mame/drivers/marinedt.c @@ -153,7 +153,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(marinedt); UINT32 screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -451,12 +451,12 @@ static GFXDECODE_START( marinedt ) GFXDECODE_ENTRY( "gfx3", 0, marinedt_objlayout, 32, 4 ) GFXDECODE_END -void marinedt_state::palette_init() +PALETTE_INIT_MEMBER(marinedt_state, marinedt) { const UINT8 *color_prom = memregion("proms")->base(); int i,r,b,g; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2; @@ -480,7 +480,7 @@ bit0 = 0; // *(palette++) = 0x92 * bit0 + 0x46 * bit1 + 0x27 * bit2; b = 0x27 * bit0 + 0x46 * bit1 + 0x92 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -529,14 +529,14 @@ UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind1 m_tx_tilemap->draw(screen, *m_tile, cliprect, 0, 0); m_obj1->fill(0); - m_gfxdecode->gfx(1)->transpen(*m_obj1,m_obj1->cliprect(), + m_gfxdecode->gfx(1)->transpen(m_palette,*m_obj1,m_obj1->cliprect(), OBJ_CODE(m_obj1_a), OBJ_COLOR(m_obj1_a), OBJ_FLIPX(m_obj1_a), OBJ_FLIPY(m_obj1_a), 0, 0, 0); m_obj2->fill(0); - m_gfxdecode->gfx(2)->transpen(*m_obj2,m_obj2->cliprect(), + m_gfxdecode->gfx(2)->transpen(m_palette,*m_obj2,m_obj2->cliprect(), OBJ_CODE(m_obj2_a), OBJ_COLOR(m_obj2_a), OBJ_FLIPX(m_obj2_a), OBJ_FLIPY(m_obj2_a), @@ -685,8 +685,8 @@ static MACHINE_CONFIG_START( marinedt, marinedt_state ) MCFG_SCREEN_UPDATE_DRIVER(marinedt_state, screen_update_marinedt) MCFG_GFXDECODE_ADD("gfxdecode", marinedt) - MCFG_PALETTE_LENGTH(64) - + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(marinedt_state, marinedt) /* sound hardware */ //discrete sound diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c index 763850c7482..7e116c04eb7 100644 --- a/src/mame/drivers/mario.c +++ b/src/mame/drivers/mario.c @@ -353,8 +353,8 @@ static MACHINE_CONFIG_START( mario_base, mario_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mario_state, screen_update_mario) MCFG_GFXDECODE_ADD("gfxdecode", mario) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(mario_state, mario) MACHINE_CONFIG_END diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c index d4188f97d13..a4a33d14d55 100644 --- a/src/mame/drivers/markham.c +++ b/src/mame/drivers/markham.c @@ -194,8 +194,8 @@ static MACHINE_CONFIG_START( markham, markham_state ) MCFG_SCREEN_UPDATE_DRIVER(markham_state, screen_update_markham) MCFG_GFXDECODE_ADD("gfxdecode", markham) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(markham_state, markham) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c index c24c2725e42..d11bd1eb0fd 100644 --- a/src/mame/drivers/mastboy.c +++ b/src/mame/drivers/mastboy.c @@ -506,7 +506,7 @@ UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 { int coldat = m_colram[i+1] | (m_colram[i+0]<<8); - palette_set_color_rgb(machine(),i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4)); + m_palette->set_pen_color(i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4)); } for (y=0;y<32;y++) @@ -529,7 +529,7 @@ UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 } - gfx->opaque(bitmap,cliprect,tileno,attr,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tileno,attr,0,0,x*8,y*8); count+=4; @@ -903,7 +903,7 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state ) MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy) MCFG_GFXDECODE_ADD("gfxdecode", mastboy) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) // sound hardware diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c index 0fdc4afca50..fcb3f5242cb 100644 --- a/src/mame/drivers/matmania.c +++ b/src/mame/drivers/matmania.c @@ -324,8 +324,8 @@ static MACHINE_CONFIG_START( matmania, matmania_state ) MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_matmania) MCFG_GFXDECODE_ADD("gfxdecode", matmania) - MCFG_PALETTE_LENGTH(64+16) - + MCFG_PALETTE_ADD("palette", 64+16) + MCFG_PALETTE_INIT_OWNER(matmania_state, matmania) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -405,8 +405,8 @@ static MACHINE_CONFIG_START( maniach, matmania_state ) MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_maniach) MCFG_GFXDECODE_ADD("gfxdecode", maniach) - MCFG_PALETTE_LENGTH(64+16) - + MCFG_PALETTE_ADD("palette", 64+16) + MCFG_PALETTE_INIT_OWNER(matmania_state, matmania) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c index 3747e30ff64..9222b54af25 100644 --- a/src/mame/drivers/maxaflex.c +++ b/src/mame/drivers/maxaflex.c @@ -418,8 +418,8 @@ static MACHINE_CONFIG_START( a600xl, maxaflex_state ) MCFG_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) MCFG_SCREEN_UPDATE_STATIC(atari) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT(atari) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_LEGACY(atari) MCFG_DEFAULT_LAYOUT(layout_maxaflex) MCFG_VIDEO_START(atari) diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c index 99a1a4d5f09..61eb97d3d3c 100644 --- a/src/mame/drivers/maygayv1.c +++ b/src/mame/drivers/maygayv1.c @@ -323,7 +323,7 @@ UINT32 maygayv1_state::screen_update_maygayv1(screen_device &screen, bitmap_ind1 /* If screen output is disabled, fill with black */ if (!(VREG(VCR0) & VCR0_DEN)) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); return 0; } @@ -465,7 +465,7 @@ void maygayv1_state::screen_eof_maygayv1(screen_device &screen, bool state) for (i = 0; i < 16; ++i) { UINT16 entry = *palbase++; - palette_set_color_rgb(machine(), entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4)); + m_palette->set_pen_color(entry & 0xf, pal4bit(entry >> 12), pal4bit(entry >> 8), pal4bit(entry >> 4)); } } } @@ -1032,7 +1032,7 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state ) MCFG_SCREEN_UPDATE_DRIVER(maygayv1_state, screen_update_maygayv1) MCFG_SCREEN_VBLANK_DRIVER(maygayv1_state, screen_eof_maygayv1) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_DUARTN68681_ADD("duart68681", DUART_CLOCK) MCFG_DUARTN68681_IRQ_CALLBACK(WRITELINE(maygayv1_state, duart_irq_handler)) diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index ac64f09fff1..9556e35a007 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -411,9 +411,7 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state ) MCFG_SCREEN_UPDATE_DRIVER(mayumi_state, screen_update_mayumi) MCFG_GFXDECODE_ADD("gfxdecode", mayumi) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c index ffa9f3ba2ad..f6aee4eb5f0 100644 --- a/src/mame/drivers/mazerbla.c +++ b/src/mame/drivers/mazerbla.c @@ -221,7 +221,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mazerbla); UINT32 screen_update_mazerbla(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void screen_eof(screen_device &screen, bool state); INTERRUPT_GEN_MEMBER(sound_interrupt); @@ -251,7 +251,7 @@ public: ***************************************************************************/ -void mazerbla_state::palette_init() +PALETTE_INIT_MEMBER(mazerbla_state, mazerbla) { static const int resistances_r[2] = { 4700, 2200 }; static const int resistances_gb[3] = { 10000, 4700, 2200 }; @@ -328,7 +328,7 @@ WRITE8_MEMBER(mazerbla_state::cfb_backgnd_color_w) bit0 = BIT(data, 0); b = combine_3_weights(m_weights_b, bit0, bit1, bit2); - palette_set_color(machine(), 255, rgb_t(r, g, b)); + m_palette->set_pen_color(255, rgb_t(r, g, b)); //logerror("background color (port 01) write=%02x\n",data); } } @@ -674,7 +674,7 @@ READ8_MEMBER(mazerbla_state::vcu_set_clr_addr_r) b = combine_3_weights(m_weights_b, bit0, bit1, bit2); if ((x + y * 16) < 255)//keep color 255 free for use as background color - palette_set_color(machine(), x + y * 16, rgb_t(r, g, b)); + m_palette->set_pen_color(x + y * 16, rgb_t(r, g, b)); m_lookup_ram[lookup_offs + x + y * 16] = colour; } @@ -1491,7 +1491,7 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state ) MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold) /* synchronization forced on the fly */ - MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface) + MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface,"palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1501,9 +1501,9 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla) - MCFG_PALETTE_LENGTH(256+1) - - + MCFG_PALETTE_ADD("palette", 256+1) + MCFG_PALETTE_INIT_OWNER(mazerbla_state, mazerbla) + /* sound hardware */ MACHINE_CONFIG_END @@ -1528,7 +1528,7 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state ) */ MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold) - MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface) + MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface,"palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1539,8 +1539,8 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state ) MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla) MCFG_SCREEN_VBLANK_DRIVER(mazerbla_state, screen_eof) - MCFG_PALETTE_LENGTH(256+1) - + MCFG_PALETTE_ADD("palette", 256+1) + MCFG_PALETTE_INIT_OWNER(mazerbla_state, mazerbla) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 4c1e0577c65..35a9e150e49 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -182,7 +182,7 @@ static ADDRESS_MAP_START( mcatadv_map, AS_PROGRAM, 16, mcatadv_state ) AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(mcatadv_videoram1_w) AM_SHARE("videoram1") // Tilemap 0 AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(mcatadv_videoram2_w) AM_SHARE("videoram2") // Tilemap 1 - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x602000, 0x602fff) AM_RAM // Bigger than needs to be? AM_RANGE(0x700000, 0x707fff) AM_RAM AM_SHARE("spriteram") // Sprites, two halves for double buffering @@ -452,7 +452,8 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state ) MCFG_SCREEN_VBLANK_DRIVER(mcatadv_state, screen_eof_mcatadv) MCFG_GFXDECODE_ADD("gfxdecode", mcatadv) - MCFG_PALETTE_LENGTH(0x2000/2) + MCFG_PALETTE_ADD("palette", 0x2000/2) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(3)) /* a guess, and certainly wrong */ diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c index 3df99672558..baa468803c7 100644 --- a/src/mame/drivers/mcr.c +++ b/src/mame/drivers/mcr.c @@ -765,8 +765,8 @@ static ADDRESS_MAP_START( cpu_90009_map, AS_PROGRAM, 8, mcr_state ) AM_RANGE(0x0000, 0x6fff) AM_ROM AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(mcr_90009_videoram_w) AM_SHARE("videoram") ADDRESS_MAP_END @@ -1852,7 +1852,8 @@ static MACHINE_CONFIG_START( mcr_90009, mcr_state ) MCFG_SCREEN_UPDATE_DRIVER(mcr_state, screen_update_mcr) MCFG_GFXDECODE_ADD("gfxdecode", mcr) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_FORMAT(xxxxRRRRBBBBGGGG) MCFG_VIDEO_START_OVERRIDE(mcr_state,mcr) @@ -1882,7 +1883,9 @@ static MACHINE_CONFIG_DERIVED( mcr_90010, mcr_90009 ) MCFG_CPU_IO_MAP(cpu_90010_portmap) /* video hardware */ - MCFG_PALETTE_LENGTH(64) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_FORMAT(xxxxRRRRBBBBGGGG) MACHINE_CONFIG_END @@ -1900,7 +1903,9 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mcr_91475, mcr_90010 ) /* video hardware */ - MCFG_PALETTE_LENGTH(128) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 128) + MCFG_PALETTE_FORMAT(xxxxRRRRBBBBGGGG) /* sound hardware */ MCFG_SAMPLES_ADD("samples", journey_samples_interface) diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index 92470ae4b79..8f4bb0e0202 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -1326,7 +1326,7 @@ static MACHINE_CONFIG_START( mcrmono, mcr3_state ) MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_mcr3) MCFG_GFXDECODE_ADD("gfxdecode", mcr3) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) MCFG_VIDEO_START_OVERRIDE(mcr3_state,mcrmono) MACHINE_CONFIG_END @@ -1376,9 +1376,10 @@ static MACHINE_CONFIG_DERIVED( mcrscroll, mcrmono ) MCFG_SCREEN_VISIBLE_AREA(0, 30*16-1, 0, 30*16-1) MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhunt) MCFG_GFXDECODE_MODIFY("gfxdecode", spyhunt) - MCFG_PALETTE_LENGTH(64+4) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64+4) - MCFG_PALETTE_INIT_OVERRIDE(mcr3_state,spyhunt) + MCFG_PALETTE_INIT_OWNER(mcr3_state,spyhunt) MCFG_VIDEO_START_OVERRIDE(mcr3_state,spyhunt) MACHINE_CONFIG_END @@ -1445,9 +1446,9 @@ static MACHINE_CONFIG_START( spyhuntpr, mcr3_state ) MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhuntpr) MCFG_GFXDECODE_ADD("gfxdecode", spyhuntpr) - MCFG_PALETTE_LENGTH(64+4) + MCFG_PALETTE_ADD("palette", 64+4) - MCFG_PALETTE_INIT_OVERRIDE(mcr3_state,spyhunt) + MCFG_PALETTE_INIT_OWNER(mcr3_state,spyhunt) MCFG_VIDEO_START_OVERRIDE(mcr3_state,spyhuntpr) diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c index 5495a0325f7..0920c6235b1 100644 --- a/src/mame/drivers/mcr68.c +++ b/src/mame/drivers/mcr68.c @@ -1052,7 +1052,7 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state ) MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_zwackery) MCFG_GFXDECODE_ADD("gfxdecode", zwackery) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(mcr68_state,zwackery) @@ -1083,7 +1083,7 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state ) MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_mcr68) MCFG_GFXDECODE_ADD("gfxdecode", mcr68) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) MCFG_VIDEO_START_OVERRIDE(mcr68_state,mcr68) diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c index dc6362add9e..3bb8c43d84f 100644 --- a/src/mame/drivers/meadows.c +++ b/src/mame/drivers/meadows.c @@ -313,19 +313,6 @@ INTERRUPT_GEN_MEMBER(meadows_state::audio_interrupt) /************************************* * - * Palette init - * - *************************************/ - -void meadows_state::palette_init() -{ - palette_set_color(machine(), 0, rgb_t::black); - palette_set_color(machine(), 1, rgb_t::white); -} - - -/************************************* - * * Main CPU memory handlers * *************************************/ @@ -655,7 +642,7 @@ static MACHINE_CONFIG_START( meadows, meadows_state ) MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows) MCFG_GFXDECODE_ADD("gfxdecode", meadows) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -684,7 +671,7 @@ static MACHINE_CONFIG_START( minferno, meadows_state ) MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows) MCFG_GFXDECODE_ADD("gfxdecode", minferno) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* audio hardware */ // TODO @@ -712,7 +699,7 @@ static MACHINE_CONFIG_START( bowl3d, meadows_state ) MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows) MCFG_GFXDECODE_ADD("gfxdecode", meadows) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index 194abb14bfd..00014a93212 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -227,7 +227,7 @@ void mediagx_state::video_start() int i; for (i=0; i < 16; i++) { - palette_set_color(machine(), i, cga_palette[i]); + m_palette->set_pen_color(i, cga_palette[i]); } } @@ -236,7 +236,7 @@ void mediagx_state::draw_char(bitmap_rgb32 &bitmap, const rectangle &cliprect, g int i,j; const UINT8 *dp; int index = 0; - const pen_t *pens = gfx->machine().pens; + const pen_t *pens = &m_palette->pen(0); dp = gfx->get_data(ch); @@ -888,7 +888,7 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state ) MCFG_TIMER_DRIVER_ADD("sound_timer", mediagx_state, sound_timer_callback) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -898,7 +898,8 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state ) MCFG_SCREEN_UPDATE_DRIVER(mediagx_state, screen_update_mediagx) MCFG_GFXDECODE_ADD("gfxdecode", CGA) - MCFG_PALETTE_LENGTH(256) + + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/megaphx.c b/src/mame/drivers/megaphx.c index 3e263a67234..5c968587402 100644 --- a/src/mame/drivers/megaphx.c +++ b/src/mame/drivers/megaphx.c @@ -193,7 +193,7 @@ static void megaphx_scanline(screen_device &screen, bitmap_rgb32 &bitmap, int sc UINT16 *vram = &state->m_vram[(params->rowaddr << 8) & 0x3ff00]; UINT32 *dest = &bitmap.pix32(scanline); - const pen_t *paldata = screen.machine().pens; + const pen_t *paldata = state->m_palette->pens(); int coladdr = params->coladdr; int x; @@ -456,11 +456,11 @@ static MACHINE_CONFIG_START( megaphx, megaphx_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz/12, 424, 0, 338-1, 262, 0, 246-1) MCFG_SCREEN_UPDATE_DEVICE("tms", tms34010_device, tms340x0_rgb32) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_GFXDECODE_ADD("gfxdecode", megaphx) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MACHINE_CONFIG_END diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c index f939480be0d..171b07d9fb3 100644 --- a/src/mame/drivers/megasys1.c +++ b/src/mame/drivers/megasys1.c @@ -178,7 +178,7 @@ static ADDRESS_MAP_START( megasys1A_map, AS_PROGRAM, 16, megasys1_state ) AM_RANGE(0x080006, 0x080007) AM_READ_PORT("DSW") AM_RANGE(0x080008, 0x080009) AM_READ(soundlatch2_word_r) /* from sound cpu */ AM_RANGE(0x084000, 0x0843ff) AM_RAM_WRITE(megasys1_vregs_A_w) AM_SHARE("vregs") - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08e000, 0x08ffff) AM_RAM AM_SHARE("objectram") AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0") AM_RANGE(0x094000, 0x097fff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1") @@ -255,7 +255,7 @@ static ADDRESS_MAP_START( megasys1B_map, AS_PROGRAM, 16, megasys1_state ) ADDRESS_MAP_GLOBAL_MASK(0xfffff) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x044000, 0x0443ff) AM_RAM_WRITE(megasys1_vregs_A_w) AM_SHARE("vregs") - AM_RANGE(0x048000, 0x0487ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x048000, 0x0487ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x04e000, 0x04ffff) AM_RAM AM_SHARE("objectram") AM_RANGE(0x050000, 0x053fff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0") AM_RANGE(0x054000, 0x057fff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1") @@ -282,7 +282,7 @@ static ADDRESS_MAP_START( megasys1C_map, AS_PROGRAM, 16, megasys1_state ) AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0") AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1") AM_RANGE(0x0f0000, 0x0f3fff) AM_RAM_WRITE(megasys1_scrollram_2_w) AM_SHARE("scrollram.2") - AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0d8000, 0x0d8001) AM_READWRITE(ip_select_r,ip_select_w) AM_RANGE(0x1c0000, 0x1cffff) AM_MIRROR(0x30000) AM_RAM AM_SHARE("ram") //0x1f****, Cybattler reads attract mode inputs at 0x1d**** ADDRESS_MAP_END @@ -303,7 +303,7 @@ static ADDRESS_MAP_START( megasys1D_map, AS_PROGRAM, 16, megasys1_state ) AM_RANGE(0x0ca000, 0x0cbfff) AM_RAM AM_SHARE("objectram") AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_WRITE(megasys1_scrollram_1_w) AM_SHARE("scrollram.1") AM_RANGE(0x0d4000, 0x0d7fff) AM_RAM_WRITE(megasys1_scrollram_2_w) AM_SHARE("scrollram.2") - AM_RANGE(0x0d8000, 0x0d87ff) AM_MIRROR(0x3000) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d8000, 0x0d87ff) AM_MIRROR(0x3000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("DSW") AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(megasys1_scrollram_0_w) AM_SHARE("scrollram.0") AM_RANGE(0x0f0000, 0x0f0001) AM_READ_PORT("SYSTEM") @@ -1477,9 +1477,9 @@ static MACHINE_CONFIG_START( system_A, megasys1_state ) MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1) MCFG_GFXDECODE_ADD("gfxdecode", ABC) - MCFG_PALETTE_LENGTH(1024) - - MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) + MCFG_PALETTE_INIT_OWNER(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) /* sound hardware */ @@ -1537,9 +1537,9 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state ) MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1) MCFG_GFXDECODE_ADD("gfxdecode", ABC) - MCFG_PALETTE_LENGTH(1024) - - MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) + MCFG_PALETTE_INIT_OWNER(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) /* sound hardware */ @@ -1609,9 +1609,9 @@ static MACHINE_CONFIG_START( system_D, megasys1_state ) MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1) MCFG_GFXDECODE_ADD("gfxdecode", ABC) - MCFG_PALETTE_LENGTH(1024) - - MCFG_PALETTE_INIT_OVERRIDE(megasys1_state,megasys1) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) + MCFG_PALETTE_INIT_OWNER(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) /* sound hardware */ @@ -1668,7 +1668,8 @@ static MACHINE_CONFIG_START( system_Z, megasys1_state ) MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1) MCFG_GFXDECODE_ADD("gfxdecode", Z) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c index 9d61c38ed88..db0a1565cbb 100644 --- a/src/mame/drivers/megatech.c +++ b/src/mame/drivers/megatech.c @@ -521,8 +521,6 @@ static MACHINE_CONFIG_START( megatech, mtech_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(mtech_state, screen_update_megatech_menu) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5246_ADD("vdp1", _vdp_intf) MCFG_SEGA315_5246_SET_SCREEN("menu") diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c index 7ee45690c0d..a546956fb72 100644 --- a/src/mame/drivers/megazone.c +++ b/src/mame/drivers/megazone.c @@ -270,8 +270,8 @@ static MACHINE_CONFIG_START( megazone, megazone_state ) MCFG_SCREEN_UPDATE_DRIVER(megazone_state, screen_update_megazone) MCFG_GFXDECODE_ADD("gfxdecode", megazone) - MCFG_PALETTE_LENGTH(16*16+16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16) + MCFG_PALETTE_INIT_OWNER(megazone_state, megazone) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c index e0670c6b6c2..54f770f7c43 100644 --- a/src/mame/drivers/meijinsn.c +++ b/src/mame/drivers/meijinsn.c @@ -95,7 +95,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(meijinsn); UINT32 screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(meijinsn_interrupt); }; @@ -252,7 +252,7 @@ void meijinsn_state::video_start() { } -void meijinsn_state::palette_init() +PALETTE_INIT_MEMBER(meijinsn_state, meijinsn) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -266,7 +266,7 @@ void meijinsn_state::palette_init() 3, resistances_rg, weights_g, 0, 1000+1000, 2, resistances_b, weights_b, 0, 1000+1000); - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2, r, g, b; @@ -287,7 +287,7 @@ void meijinsn_state::palette_init() bit1 = BIT(color_prom[i], 7); b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -371,8 +371,8 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state ) MCFG_SCREEN_VISIBLE_AREA(12, 243, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(meijinsn_state, screen_update_meijinsn) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(meijinsn_state, meijinsn) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c index 88f15278983..480cdf82c51 100644 --- a/src/mame/drivers/meritm.c +++ b/src/mame/drivers/meritm.c @@ -355,7 +355,7 @@ UINT32 meritm_state::screen_update_meritm(screen_device &screen, bitmap_ind16 &b popmessage("Layer 1 %sabled",m_layer1_enabled ? "en" : "dis"); } - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); if ( m_layer0_enabled ) { @@ -1120,7 +1120,7 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state ) 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_SCREEN_UPDATE_DRIVER(meritm_state, screen_update_meritm) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c index e1f5fbe5bd4..87eea536e64 100644 --- a/src/mame/drivers/mermaid.c +++ b/src/mame/drivers/mermaid.c @@ -450,8 +450,8 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state ) MCFG_SCREEN_VBLANK_DRIVER(mermaid_state, screen_eof_mermaid) MCFG_GFXDECODE_ADD("gfxdecode", mermaid) - MCFG_PALETTE_LENGTH(4*16+2*2) - + MCFG_PALETTE_ADD("palette", 4*16+2*2) + MCFG_PALETTE_INIT_OWNER(mermaid_state, mermaid) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -469,7 +469,8 @@ static MACHINE_CONFIG_DERIVED( rougien, mermaid ) MCFG_DEVICE_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(rougien_map) - MCFG_PALETTE_INIT_OVERRIDE(mermaid_state,rougien) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(mermaid_state,rougien) MCFG_SOUND_ADD("adpcm", MSM5205, 384000) MCFG_SOUND_CONFIG(msm5205_config) diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c index 60e76f69e64..fe4b36e18f6 100644 --- a/src/mame/drivers/metalmx.c +++ b/src/mame/drivers/metalmx.c @@ -748,9 +748,7 @@ static MACHINE_CONFIG_START( metalmx, metalmx_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_DRIVER(metalmx_state, screen_update_metalmx) - MCFG_PALETTE_LENGTH(65536) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB) - + MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette") MCFG_FRAGMENT_ADD(cage) MACHINE_CONFIG_END diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c index 175da2a41a1..11bcc7ad03c 100644 --- a/src/mame/drivers/metlclsh.c +++ b/src/mame/drivers/metlclsh.c @@ -65,8 +65,8 @@ static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8, metlclsh_state ) AM_RANGE(0xc080, 0xc080) AM_WRITENOP // ? 0 AM_RANGE(0xc0c2, 0xc0c2) AM_WRITE(metlclsh_cause_irq) // cause irq on cpu #2 AM_RANGE(0xc0c3, 0xc0c3) AM_WRITE(metlclsh_ack_nmi) // nmi ack -/**/AM_RANGE(0xc800, 0xc82f) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") -/**/AM_RANGE(0xcc00, 0xcc2f) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") +/**/AM_RANGE(0xc800, 0xc82f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") +/**/AM_RANGE(0xcc00, 0xcc2f) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xd000, 0xd001) AM_DEVREADWRITE("ym1", ym2203_device, read, write) /**/AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(metlclsh_fgram_w) AM_SHARE("fgram") AM_RANGE(0xe000, 0xe001) AM_DEVWRITE("ym2", ym3526_device, write) @@ -289,8 +289,8 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state ) MCFG_SCREEN_UPDATE_DRIVER(metlclsh_state, screen_update_metlclsh) MCFG_GFXDECODE_ADD("gfxdecode", metlclsh) - MCFG_PALETTE_LENGTH(3 * 16) - + MCFG_PALETTE_ADD("palette", 3 * 16) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 36a8ceada05..907960e9a7f 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -775,7 +775,7 @@ static ADDRESS_MAP_START( balcube_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x670000, 0x671fff) AM_RAM // ??? - AM_RANGE(0x672000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x672000, 0x673fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -804,7 +804,7 @@ static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? - AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -846,7 +846,7 @@ static ADDRESS_MAP_START( bangball_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0xe40000, 0xe5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0xe60000, 0xe6ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0xe70000, 0xe71fff) AM_RAM // ??? - AM_RANGE(0xe72000, 0xe73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xe72000, 0xe73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xe74000, 0xe74fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0xe78000, 0xe787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0xe78840, 0xe7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -874,7 +874,7 @@ static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? - AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -910,7 +910,7 @@ static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? - AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -944,7 +944,7 @@ static ADDRESS_MAP_START( daitorid_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? - AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -979,7 +979,7 @@ static ADDRESS_MAP_START( dharma_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? - AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( karatour_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("IN2") // AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? - AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of) AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of) @@ -1062,7 +1062,7 @@ static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x700000, 0x70ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? - AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of) AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of) @@ -1098,7 +1098,7 @@ static ADDRESS_MAP_START( lastfort_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? - AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers @@ -1139,7 +1139,7 @@ static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x8c0000, 0x8dffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x8e0000, 0x8effff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x8f0000, 0x8f1fff) AM_RAM // ??? - AM_RANGE(0x8f2000, 0x8f3fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x8f2000, 0x8f3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x8f4000, 0x8f4fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x8f8000, 0x8f87ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x8f8800, 0x8f8813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers @@ -1225,7 +1225,7 @@ static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x270000, 0x271fff) AM_RAM // ??? - AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x272000, 0x273fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control @@ -1263,7 +1263,7 @@ static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x670000, 0x671fff) AM_RAM // ??? - AM_RANGE(0x672000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x672000, 0x673fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x675000, 0x675fff) AM_RAM // Sprites? AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set @@ -1333,7 +1333,7 @@ static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x270000, 0x271fff) AM_RAM // ??? - AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x272000, 0x273fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels @@ -1372,7 +1372,7 @@ static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x460000, 0x46ffff) AM_WRITENOP // DSW Selection AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? - AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control @@ -1412,7 +1412,7 @@ static ADDRESS_MAP_START( pangpoms_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? - AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x478800, 0x478813) AM_RAM AM_SHARE("videoregs") // Video Registers @@ -1455,7 +1455,7 @@ static ADDRESS_MAP_START( poitto_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ??? - AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc72000, 0xc73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0xc78800, 0xc78813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers @@ -1491,7 +1491,7 @@ static ADDRESS_MAP_START( skyalert_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? - AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x872000, 0x873fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers @@ -1526,7 +1526,7 @@ static ADDRESS_MAP_START( pururun_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ??? - AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc72000, 0xc73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -1560,7 +1560,7 @@ static ADDRESS_MAP_START( toride2g_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ??? - AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc72000, 0xc73fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -1622,7 +1622,7 @@ static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x260000, 0x26ffff) AM_WRITENOP // ?????? AM_RANGE(0x270000, 0x271fff) AM_RAM // ??? - AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x272000, 0x273fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window @@ -1664,7 +1664,7 @@ static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? - AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x472000, 0x473fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control @@ -1752,7 +1752,7 @@ static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x770000, 0x771fff) AM_RAM // ??? // AM_RANGE(0x772000, 0x773fff) AM_RAM - AM_RANGE(0x772000, 0x773fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x772000, 0x773fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x775000, 0x775fff) AM_RAM_WRITE(vram_0_clr_w) AM_RANGE(0x776000, 0x776fff) AM_RAM_WRITE(vram_1_clr_w) @@ -1862,7 +1862,7 @@ static ADDRESS_MAP_START( vmetal_map, AS_PROGRAM, 16, metro_state ) AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? - AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x172000, 0x173fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter @@ -3571,7 +3571,8 @@ static MACHINE_CONFIG_START( balcube, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3604,7 +3605,8 @@ static MACHINE_CONFIG_START( daitoa, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3637,7 +3639,8 @@ static MACHINE_CONFIG_START( msgogo, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3670,7 +3673,8 @@ static MACHINE_CONFIG_START( bangball, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3703,7 +3707,8 @@ static MACHINE_CONFIG_START( batlbubl, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3740,7 +3745,8 @@ static MACHINE_CONFIG_START( daitorid, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_tmap) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3782,7 +3788,8 @@ static MACHINE_CONFIG_START( dharma, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3823,7 +3830,8 @@ static MACHINE_CONFIG_START( karatour, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4100) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3864,7 +3872,8 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3905,7 +3914,8 @@ static MACHINE_CONFIG_START( lastfort, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4100) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3945,7 +3955,8 @@ static MACHINE_CONFIG_START( lastforg, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4100) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3979,7 +3990,8 @@ static MACHINE_CONFIG_START( dokyusei, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4300) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4014,7 +4026,8 @@ static MACHINE_CONFIG_START( dokyusp, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4300) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4050,7 +4063,8 @@ static MACHINE_CONFIG_START( gakusai, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4300) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4086,7 +4100,8 @@ static MACHINE_CONFIG_START( gakusai2, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4300) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4127,7 +4142,8 @@ static MACHINE_CONFIG_START( pangpoms, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4100) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4168,7 +4184,8 @@ static MACHINE_CONFIG_START( poitto, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4100) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4209,7 +4226,8 @@ static MACHINE_CONFIG_START( pururun, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4251,7 +4269,8 @@ static MACHINE_CONFIG_START( skyalert, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4100) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4292,7 +4311,8 @@ static MACHINE_CONFIG_START( toride2g, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4327,7 +4347,8 @@ static MACHINE_CONFIG_START( mouja, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4300) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4362,7 +4383,8 @@ static MACHINE_CONFIG_START( vmetal, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4220) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_dx_sprite) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -4409,7 +4431,8 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", blzntrnd) MCFG_VIDEO_START_OVERRIDE(metro_state,blzntrnd) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) MCFG_K053936_ADD("k053936", blzntrnd_k053936_intf) @@ -4456,7 +4479,8 @@ static MACHINE_CONFIG_START( gstrik2, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", gstrik2) MCFG_VIDEO_START_OVERRIDE(metro_state,gstrik2) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) MCFG_K053936_ADD("k053936", gstrik2_k053936_intf) @@ -4493,7 +4517,8 @@ static MACHINE_CONFIG_START( puzzlet, metro_state ) MCFG_GFXDECODE_ADD("gfxdecode", i4300) MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c index 83741699a11..a32790009ed 100644 --- a/src/mame/drivers/mexico86.c +++ b/src/mame/drivers/mexico86.c @@ -489,9 +489,7 @@ static MACHINE_CONFIG_START( mexico86, mexico86_state ) MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_mexico86) MCFG_GFXDECODE_ADD("gfxdecode", mexico86) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/meyc8088.c b/src/mame/drivers/meyc8088.c index 261a83248a0..3cb85102e99 100644 --- a/src/mame/drivers/meyc8088.c +++ b/src/mame/drivers/meyc8088.c @@ -66,7 +66,7 @@ public: DECLARE_WRITE8_MEMBER(meyc8088_common_w); DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out); - virtual void palette_init(); + DECLARE_PALETTE_INIT(meyc8088); UINT32 screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_eof_meyc8088(screen_device &screen, bool state); TIMER_DEVICE_CALLBACK_MEMBER(heartbeat_callback); @@ -119,13 +119,13 @@ static const res_net_info meyc8088_net_info = } }; -void meyc8088_state::palette_init() +PALETTE_INIT_MEMBER(meyc8088_state, meyc8088) { const UINT8 *color_prom = memregion("proms")->base(); rgb_t *rgb; rgb = compute_res_net_all(machine(), color_prom, &meyc8088_decode_info, &meyc8088_net_info); - palette_set_colors(machine(), 0, rgb, 32); + palette.set_pen_colors(0, rgb, 32); auto_free(machine(), rgb); } @@ -392,7 +392,8 @@ static MACHINE_CONFIG_START( meyc8088, meyc8088_state ) MCFG_SCREEN_UPDATE_DRIVER(meyc8088_state, screen_update_meyc8088) MCFG_SCREEN_VBLANK_DRIVER(meyc8088_state, screen_eof_meyc8088) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(meyc8088_state, meyc8088) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index 6885c9060d3..10de6aad8ee 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -46,7 +46,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mgolf); UINT32 screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(interrupt_callback); void update_plunger( ); @@ -88,14 +88,14 @@ UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind16 &bit /* draw sprites */ for (i = 0; i < 2; i++) { - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, m_video_ram[0x399 + 4 * i], i, 0, 0, m_video_ram[0x390 + 2 * i] - 7, m_video_ram[0x398 + 4 * i] - 16, 0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, m_video_ram[0x39b + 4 * i], i, 0, 0, @@ -283,12 +283,12 @@ static INPUT_PORTS_START( mgolf ) INPUT_PORTS_END -void mgolf_state::palette_init() +PALETTE_INIT_MEMBER(mgolf_state, mgolf) { - palette_set_color(machine(), 0, rgb_t(0x80, 0x80, 0x80)); - palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 2, rgb_t(0x80, 0x80, 0x80)); - palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff)); + palette.set_pen_color(0, rgb_t(0x80, 0x80, 0x80)); + palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(2, rgb_t(0x80, 0x80, 0x80)); + palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); } static const gfx_layout tile_layout = @@ -360,8 +360,8 @@ static MACHINE_CONFIG_START( mgolf, mgolf_state ) MCFG_SCREEN_UPDATE_DRIVER(mgolf_state, screen_update_mgolf) MCFG_GFXDECODE_ADD("gfxdecode", mgolf) - MCFG_PALETTE_LENGTH(4) - + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(mgolf_state, mgolf) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c index 2dc48c9ab45..c8e85a7144f 100644 --- a/src/mame/drivers/micro3d.c +++ b/src/mame/drivers/micro3d.c @@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state ) MCFG_NVRAM_ADD_0FILL("nvram") MCFG_QUANTUM_TIME(attotime::from_hz(3000)) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz/8*4, 192*4, 0, 144*4, 434, 0, 400) diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c index d94b8ddc244..e9d43dd2940 100644 --- a/src/mame/drivers/midas.c +++ b/src/mame/drivers/midas.c @@ -182,7 +182,7 @@ void midas_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT16 code = codes[y*2]; UINT16 attr = codes[y*2+1]; - m_gfxdecode->gfx(0)->zoom_transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->zoom_transpen(m_palette,bitmap,cliprect, code, attr >> 8, attr & 1, attr & 2, @@ -282,7 +282,7 @@ static ADDRESS_MAP_START( livequiz_map, AS_PROGRAM, 16, midas_state ) AM_RANGE(0x9c0000, 0x9c0005) AM_WRITE(midas_gfxregs_w ) AM_SHARE("gfxregs") - AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_WRITE(paletteram_xrgb_word_be_w ) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa40000, 0xa7ffff) AM_RAM AM_RANGE(0xb00000, 0xb00001) AM_READ(ret_ffff ) @@ -361,7 +361,7 @@ static ADDRESS_MAP_START( hammer_map, AS_PROGRAM, 16, midas_state ) AM_RANGE(0x9c0000, 0x9c0005) AM_WRITE(midas_gfxregs_w ) AM_SHARE("gfxregs") - AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_WRITE(paletteram_xrgb_word_be_w ) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa3ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa40000, 0xa7ffff) AM_RAM AM_RANGE(0xb00000, 0xb00001) AM_READ(ret_ffff ) @@ -714,8 +714,8 @@ static MACHINE_CONFIG_START( livequiz, midas_state ) MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas) MCFG_GFXDECODE_ADD("gfxdecode", midas) - MCFG_PALETTE_LENGTH(0x10000) - + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_FORMAT(XRGB) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -747,7 +747,8 @@ static MACHINE_CONFIG_START( hammer, midas_state ) MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas) MCFG_GFXDECODE_ADD("gfxdecode", midas) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_FORMAT(XRGB) /* sound hardware */ diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c index a4d0b9777e2..207eb9c83f2 100644 --- a/src/mame/drivers/midtunit.c +++ b/src/mame/drivers/midtunit.c @@ -611,7 +611,7 @@ static MACHINE_CONFIG_START( tunit_core, midtunit_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK * 2, 505, 0, 399, 289, 0, 253) diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c index 471eafce18e..e7c36e9a547 100644 --- a/src/mame/drivers/midvunit.c +++ b/src/mame/drivers/midvunit.c @@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( midvcommon, midvunit_state ) MCFG_TIMER_ADD_NONE("timer1") /* video hardware */ - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400) diff --git a/src/mame/drivers/midwunit.c b/src/mame/drivers/midwunit.c index 868e0a00dc1..ce51fb6275f 100644 --- a/src/mame/drivers/midwunit.c +++ b/src/mame/drivers/midwunit.c @@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( wunit, midwunit_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 505, 0, 399, 289, 0, 253) diff --git a/src/mame/drivers/midxunit.c b/src/mame/drivers/midxunit.c index 0b3af310d54..01aacd0fad7 100644 --- a/src/mame/drivers/midxunit.c +++ b/src/mame/drivers/midxunit.c @@ -271,7 +271,7 @@ static MACHINE_CONFIG_START( midxunit, midxunit_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 505, 0, 399, 289, 0, 253) diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c index ef2c2686f47..376d509841a 100644 --- a/src/mame/drivers/midyunit.c +++ b/src/mame/drivers/midyunit.c @@ -1112,7 +1112,7 @@ static MACHINE_CONFIG_START( zunit, midyunit_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MEDRES_PIXEL_CLOCK*2, 673, 0, 511, 433, 0, 399) @@ -1147,7 +1147,7 @@ static MACHINE_CONFIG_START( yunit_core, midyunit_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(STDRES_PIXEL_CLOCK*2, 505, 0, 399, 289, 0, 253) @@ -1165,7 +1165,8 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_4bit_slow, yunit_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* video hardware */ - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_4bit) MACHINE_CONFIG_END @@ -1180,7 +1181,8 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_4bit_fast, yunit_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* video hardware */ - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_4bit) MACHINE_CONFIG_END @@ -1192,7 +1194,8 @@ static MACHINE_CONFIG_DERIVED( yunit_cvsd_6bit_slow, yunit_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit) MACHINE_CONFIG_END @@ -1207,7 +1210,8 @@ static MACHINE_CONFIG_DERIVED( yunit_adpcm_6bit_fast, yunit_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit) MACHINE_CONFIG_END @@ -1222,7 +1226,8 @@ static MACHINE_CONFIG_DERIVED( yunit_adpcm_6bit_faster, yunit_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(midyunit_state,midyunit_6bit) MACHINE_CONFIG_END @@ -1235,7 +1240,8 @@ static MACHINE_CONFIG_DERIVED( mkyawdim, yunit_core ) MCFG_CPU_PROGRAM_MAP(yawdim_sound_map) /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) MCFG_VIDEO_START_OVERRIDE(midyunit_state,mkyawdim) /* sound hardware */ diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index fb871fa8dc8..c89ec45660f 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -1093,7 +1093,7 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state ) MCFG_NVRAM_ADD_1FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256) diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c index b1edc3b45d4..e2e175634a1 100644 --- a/src/mame/drivers/mikie.c +++ b/src/mame/drivers/mikie.c @@ -266,8 +266,8 @@ static MACHINE_CONFIG_START( mikie, mikie_state ) MCFG_SCREEN_UPDATE_DRIVER(mikie_state, screen_update_mikie) MCFG_GFXDECODE_ADD("gfxdecode", mikie) - MCFG_PALETTE_LENGTH(16*8*16+16*8*16) - + MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16) + MCFG_PALETTE_INIT_OWNER(mikie_state, mikie) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c index e5492d25884..f302a8bca84 100644 --- a/src/mame/drivers/mil4000.c +++ b/src/mame/drivers/mil4000.c @@ -312,7 +312,7 @@ static ADDRESS_MAP_START( mil4000_map, AS_PROGRAM, 16, mil4000_state ) AM_RANGE(0x708010, 0x708011) AM_NOP //touch screen AM_RANGE(0x70801e, 0x70801f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x780000, 0x780fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x780000, 0x780fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("nvram") // 2x CY62256L-70 (U7 & U8). ADDRESS_MAP_END @@ -405,8 +405,8 @@ static MACHINE_CONFIG_START( mil4000, mil4000_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(mil4000_state, screen_update_mil4000) - MCFG_PALETTE_LENGTH(0x800) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x800) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_GFXDECODE_ADD("gfxdecode", mil4000) diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index cfbad3e75e9..dbc4ee5f2e9 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -169,7 +169,7 @@ public: DECLARE_WRITE8_MEMBER(miniboy7_colorram_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(miniboy7); UINT32 screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -222,7 +222,7 @@ UINT32 miniboy7_state::screen_update_miniboy7(screen_device &screen, bitmap_ind1 return 0; } -void miniboy7_state::palette_init() +PALETTE_INIT_MEMBER(miniboy7_state, miniboy7) { const UINT8 *color_prom = memregion("proms")->base(); /* FIXME... Can't get the correct palette. @@ -241,7 +241,7 @@ void miniboy7_state::palette_init() /* 0000IBGR */ if (color_prom == 0) return; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax; @@ -265,7 +265,7 @@ void miniboy7_state::palette_init() b = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin))); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -450,7 +450,8 @@ static MACHINE_CONFIG_START( miniboy7, miniboy7_state ) MCFG_GFXDECODE_ADD("gfxdecode", miniboy7) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(miniboy7_state, miniboy7) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/12, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c index 6a07b9089d8..7e4c50407bd 100644 --- a/src/mame/drivers/mirage.c +++ b/src/mame/drivers/mirage.c @@ -148,7 +148,7 @@ static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16, miragemi_state ) AM_RANGE(0x110000, 0x110bff) AM_RAM AM_SHARE("pf1_rowscroll") AM_RANGE(0x112000, 0x112bff) AM_RAM AM_SHARE("pf2_rowscroll") AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x130000, 0x1307ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x130000, 0x1307ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x14000f) AM_DEVREADWRITE8("oki_sfx", okim6295_device, read, write, 0x00ff) AM_RANGE(0x150000, 0x15000f) AM_DEVREADWRITE8("oki_bgm", okim6295_device, read, write, 0x00ff) // AM_RANGE(0x140006, 0x140007) AM_READ(random_readers) @@ -334,14 +334,17 @@ static MACHINE_CONFIG_START( mirage, miragemi_state ) MCFG_GFXDECODE_ADD("gfxdecode", mirage) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DECO16IC_ADD("tilegen1", mirage_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c index 0af5de246eb..ace8a203d01 100644 --- a/src/mame/drivers/mirax.c +++ b/src/mame/drivers/mirax.c @@ -133,7 +133,7 @@ public: DECLARE_WRITE8_MEMBER(ay1_sel); DECLARE_WRITE8_MEMBER(ay2_sel); DECLARE_DRIVER_INIT(mirax); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mirax); virtual void sound_start(); UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(mirax_vblank_irq); @@ -145,12 +145,12 @@ public: }; -void mirax_state::palette_init() +PALETTE_INIT_MEMBER(mirax_state, mirax) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -169,7 +169,7 @@ void mirax_state::palette_init() bit1 = (color_prom[i] >> 7) & 0x01; b = 0x4f * bit0 + 0xa8 * bit1; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -195,9 +195,9 @@ void mirax_state::draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, if((x <= 1 || x >= 30) ^ draw_flag) { - gfx->opaque(bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y); + gfx->opaque(m_palette,bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y); /* wrap-around */ - gfx->opaque(bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y+wrapy); + gfx->opaque(m_palette,bitmap,cliprect,tile,color & 7,(m_flipscreen_x),(m_flipscreen_y),res_x,res_y+wrapy); } } } @@ -226,7 +226,7 @@ void mirax_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) y = (m_flipscreen_y) ? spriteram[count] : 0x100 - spriteram[count] - 16; x = (m_flipscreen_x) ? 240 - spriteram[count+3] : spriteram[count+3]; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,spr_offs,color,fx,fy,x,y,0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,spr_offs,color,fx,fy,x,y,0); } } @@ -476,7 +476,8 @@ static MACHINE_CONFIG_START( mirax, mirax_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(mirax_state, screen_update_mirax) - MCFG_PALETTE_LENGTH(0x40) + MCFG_PALETTE_ADD("palette", 0x40) + MCFG_PALETTE_INIT_OWNER(mirax_state, mirax) MCFG_GFXDECODE_ADD("gfxdecode", mirax) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c index 83a704e0c24..7ff04648d00 100644 --- a/src/mame/drivers/missb2.c +++ b/src/mame/drivers/missb2.c @@ -68,7 +68,7 @@ UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &b //popmessage("%02x",(*m_bgvram) & 0x1f); for (bg_offs = ((*m_bgvram) << 4); bg_offs < (((*m_bgvram) << 4) | 0xf); bg_offs++) { - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, bg_offs, 1, 0,0, @@ -128,7 +128,7 @@ UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &b flipy = !flipy; } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, 0, flipx,flipy, @@ -141,15 +141,15 @@ UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &b return 0; } -INLINE void bg_changecolor_RRRRGGGGBBBBxxxx( running_machine &machine, pen_t color, int data ) +INLINE void bg_changecolor_RRRRGGGGBBBBxxxx( palette_device &palette, pen_t color, int data ) { - palette_set_color_rgb(machine, color + 256, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4)); + palette.set_pen_color(color + 256, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4)); } WRITE8_MEMBER(missb2_state::bg_paletteram_RRRRGGGGBBBBxxxx_be_w) { m_bg_paletteram[offset] = data; - bg_changecolor_RRRRGGGGBBBBxxxx(machine(), offset / 2, m_bg_paletteram[offset | 1] | (m_bg_paletteram[offset & ~1] << 8)); + bg_changecolor_RRRRGGGGBBBBxxxx(m_palette, offset / 2, m_bg_paletteram[offset | 1] | (m_bg_paletteram[offset & ~1] << 8)); } WRITE8_MEMBER(missb2_state::missb2_bg_bank_w) @@ -171,7 +171,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, missb2_state ) AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram") AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram") AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xf9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfa00, 0xfa00) AM_WRITE(bublbobl_sound_command_w) AM_RANGE(0xfa03, 0xfa03) AM_WRITENOP // sound cpu reset AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP @@ -476,7 +476,8 @@ static MACHINE_CONFIG_START( missb2, missb2_state ) MCFG_SCREEN_UPDATE_DRIVER(missb2_state, screen_update_missb2) MCFG_GFXDECODE_ADD("gfxdecode", missb2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c index a6586e20c6f..0d637ac21bf 100644 --- a/src/mame/drivers/missile.c +++ b/src/mame/drivers/missile.c @@ -735,7 +735,7 @@ WRITE8_MEMBER(missile_state::missile_w) /* color RAM */ else if (offset >= 0x4b00 && offset < 0x4c00) - palette_set_color_rgb(machine(), offset & 7, pal1bit(~data >> 3), pal1bit(~data >> 2), pal1bit(~data >> 1)); + m_palette->set_pen_color(offset & 7, pal1bit(~data >> 3), pal1bit(~data >> 2), pal1bit(~data >> 1)); /* watchdog */ else if (offset >= 0x4c00 && offset < 0x4d00) @@ -1030,7 +1030,7 @@ static MACHINE_CONFIG_START( missile, missile_state ) MCFG_WATCHDOG_VBLANK_INIT(8) /* video hardware */ - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c index 7c6a0c9ede7..b4cbc5cc3ba 100644 --- a/src/mame/drivers/mitchell.c +++ b/src/mame/drivers/mitchell.c @@ -264,7 +264,7 @@ WRITE8_MEMBER(mitchell_state::input_w) static ADDRESS_MAP_START( mgakuen_map, AS_PROGRAM, 8, mitchell_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(mgakuen_paletteram_r, mgakuen_paletteram_w) /* palette RAM */ + AM_RANGE(0xc000, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) /* palette RAM */ AM_RANGE(0xc800, 0xcfff) AM_READWRITE(pang_colorram_r, pang_colorram_w) AM_SHARE("colorram") /* Attribute RAM */ AM_RANGE(0xd000, 0xdfff) AM_READWRITE(mgakuen_videoram_r, mgakuen_videoram_w) AM_SHARE("videoram") /* char RAM */ AM_RANGE(0xe000, 0xefff) AM_RAM /* Work RAM */ @@ -1091,7 +1091,9 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state ) MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) MCFG_GFXDECODE_ADD("gfxdecode", mgakuen) - MCFG_PALETTE_LENGTH(1024) /* less colors than the others */ + + MCFG_PALETTE_ADD("palette", 1024) /* less colors than the others */ + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) @@ -1128,7 +1130,9 @@ static MACHINE_CONFIG_START( pang, mitchell_state ) MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) MCFG_GFXDECODE_ADD("gfxdecode", mitchell) - MCFG_PALETTE_LENGTH(2048) + + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) @@ -1232,7 +1236,9 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state ) MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) MCFG_GFXDECODE_ADD("gfxdecode", mstworld) - MCFG_PALETTE_LENGTH(2048) + + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) @@ -1263,7 +1269,9 @@ static MACHINE_CONFIG_START( marukin, mitchell_state ) MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) MCFG_GFXDECODE_ADD("gfxdecode", marukin) - MCFG_PALETTE_LENGTH(2048) + + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) @@ -1314,7 +1322,9 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state ) MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang) MCFG_GFXDECODE_ADD("gfxdecode", pkladiesbl) - MCFG_PALETTE_LENGTH(2048) + + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c index ca9b7103472..51da4f75e60 100644 --- a/src/mame/drivers/mjkjidai.c +++ b/src/mame/drivers/mjkjidai.c @@ -396,9 +396,7 @@ static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state ) MCFG_SCREEN_UPDATE_DRIVER(mjkjidai_state, screen_update_mjkjidai) MCFG_GFXDECODE_ADD("gfxdecode", mjkjidai) - MCFG_PALETTE_LENGTH(0x100) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c index e3d4d17ee00..3532107ff36 100644 --- a/src/mame/drivers/mjsister.c +++ b/src/mame/drivers/mjsister.c @@ -166,7 +166,7 @@ UINT32 mjsister_state::screen_update_mjsister(screen_device &screen, bitmap_ind1 copybitmap_trans(bitmap, *m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0); } else - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); return 0; } @@ -527,8 +527,7 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255+4, 8, 247) MCFG_SCREEN_UPDATE_DRIVER(mjsister_state, screen_update_mjsister) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index 45224566ee6..b9c5289ed81 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -214,7 +214,7 @@ void mlanding_state::machine_reset() UINT32 mlanding_state::screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - const pen_t *pens = machine().pens; + const pen_t *pens = m_palette->pens(); for (UINT32 y = cliprect.min_y; y <= cliprect.max_y; ++y) { @@ -726,7 +726,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, mlanding_state ) AM_RANGE(0x1c4000, 0x1cffff) AM_RAM AM_SHARE("sub_com_ram") AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(dma_start_w) AM_RANGE(0x1d0002, 0x1d0003) AM_WRITE(dma_stop_w) - AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x20ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x240004, 0x240005) AM_READNOP // Watchdog AM_RANGE(0x240006, 0x240007) AM_READ(input_r) AM_RANGE(0x280000, 0x280fff) AM_READWRITE(power_ram_r, power_ram_w) @@ -993,7 +993,8 @@ static MACHINE_CONFIG_START( mlanding, mlanding_state ) MCFG_SCREEN_RAW_PARAMS(16000000, 640, 0, 512, 462, 0, 400) MCFG_SCREEN_UPDATE_DRIVER(mlanding_state, screen_update_mlanding) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index 63893957ac3..df03adaac9a 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -799,9 +799,9 @@ WRITE16_MEMBER(model1_state::md0_w) WRITE16_MEMBER(model1_state::p_w) { - UINT16 old = m_generic_paletteram_16[offset]; - paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset, data, mem_mask); - if(0 && m_generic_paletteram_16[offset] != old) + UINT16 old = m_paletteram16[offset]; + m_palette->write(space, offset, data, mem_mask); + if(0 && m_paletteram16[offset] != old) logerror("XVIDEO: p_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, space.device().safe_pc()); } @@ -896,7 +896,7 @@ static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state ) AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w) - AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("paletteram") + AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("palette") AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_SHARE("color_xlat") AM_RANGE(0xc00000, 0xc0003f) AM_READWRITE(io_r, io_w) @@ -944,7 +944,7 @@ static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16, model1_state ) AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w) - AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("paletteram") + AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_SHARE("palette") AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_SHARE("color_xlat") AM_RANGE(0xc00000, 0xc0003f) AM_READWRITE(io_r, io_w) @@ -1524,6 +1524,7 @@ static MACHINE_CONFIG_START( model1, model1_state ) MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -1532,7 +1533,8 @@ static MACHINE_CONFIG_START( model1, model1_state ) MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1) MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(model1_state,model1) @@ -1567,6 +1569,7 @@ static MACHINE_CONFIG_START( model1_vr, model1_state ) MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -1575,7 +1578,8 @@ static MACHINE_CONFIG_START( model1_vr, model1_state ) MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1) MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(model1_state,model1) diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index 76c50746047..c74ab91fd96 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -438,18 +438,18 @@ MACHINE_RESET_MEMBER(model2_state,model2c) m_dsp_type = DSP_TYPE_TGPX4; } -static void chcolor(running_machine &machine, pen_t color, UINT16 data) +static void chcolor(palette_device &palette, pen_t color, UINT16 data) { - palette_set_color_rgb(machine, color, pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10)); + palette.set_pen_color(color, pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10)); } WRITE32_MEMBER(model2_state::pal32_w) { COMBINE_DATA(m_paletteram32 + offset); if(ACCESSING_BITS_0_15) - chcolor(machine(), offset * 2, m_paletteram32[offset]); + chcolor(m_palette, offset * 2, m_paletteram32[offset]); if(ACCESSING_BITS_16_31) - chcolor(machine(), offset * 2 + 1, m_paletteram32[offset] >> 16); + chcolor(m_palette, offset * 2 + 1, m_paletteram32[offset] >> 16); } WRITE32_MEMBER(model2_state::ctrl0_w) @@ -1973,6 +1973,7 @@ static MACHINE_CONFIG_START( model2o, model2_state ) MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -1983,7 +1984,7 @@ static MACHINE_CONFIG_START( model2o, model2_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(model2_state,model2) @@ -2025,6 +2026,7 @@ static MACHINE_CONFIG_START( model2a, model2_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -2035,7 +2037,7 @@ static MACHINE_CONFIG_START( model2a, model2_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(model2_state,model2) @@ -2129,6 +2131,7 @@ static MACHINE_CONFIG_START( model2b, model2_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -2139,7 +2142,7 @@ static MACHINE_CONFIG_START( model2b, model2_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(model2_state,model2) @@ -2178,6 +2181,7 @@ static MACHINE_CONFIG_START( model2c, model2_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_S24TILE_DEVICE_ADD("tile", 0x3fff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) @@ -2188,7 +2192,7 @@ static MACHINE_CONFIG_START( model2c, model2_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(model2_state,model2) diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 08b2930ef2a..577df0f2c63 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -5469,8 +5469,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state ) MCFG_SCREEN_SIZE(512, 400) MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -5510,8 +5509,7 @@ static MACHINE_CONFIG_START( model3_15, model3_state ) MCFG_SCREEN_SIZE(496, 400) MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -5557,8 +5555,7 @@ static MACHINE_CONFIG_START( model3_20, model3_state ) MCFG_SCREEN_SIZE(496, 400) MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -5596,8 +5593,7 @@ static MACHINE_CONFIG_START( model3_21, model3_state ) MCFG_SCREEN_SIZE(496, 400) MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c index d1ca233085d..fa3f6f27392 100644 --- a/src/mame/drivers/mogura.c +++ b/src/mame/drivers/mogura.c @@ -32,12 +32,12 @@ public: TILE_GET_INFO_MEMBER(get_mogura_tile_info); virtual void machine_start(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mogura); UINT32 screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -void mogura_state::palette_init() +PALETTE_INIT_MEMBER(mogura_state, mogura) { const UINT8 *color_prom = memregion("proms")->base(); int i, j; @@ -63,7 +63,7 @@ void mogura_state::palette_init() bit2 = BIT(color_prom[i], 7); b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), j, rgb_t(r, g, b)); + palette.set_pen_color(j, rgb_t(r, g, b)); j += 4; if (j > 31) j -= 31; } @@ -213,7 +213,8 @@ static MACHINE_CONFIG_START( mogura, mogura_state ) MCFG_SCREEN_UPDATE_DRIVER(mogura_state, screen_update_mogura) MCFG_GFXDECODE_ADD("gfxdecode", mogura) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(mogura_state, mogura) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c index ed2a4ed823b..2307c4ceef7 100644 --- a/src/mame/drivers/mole.c +++ b/src/mame/drivers/mole.c @@ -75,7 +75,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mole); UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -88,12 +88,12 @@ public: * *************************************/ -void mole_state::palette_init() +PALETTE_INIT_MEMBER(mole_state, mole) { int i; for (i = 0; i < 8; i++) - palette_set_color_rgb(machine(), i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); + palette.set_pen_color(i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)); } TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info) @@ -331,8 +331,8 @@ static MACHINE_CONFIG_START( mole, mole_state ) MCFG_SCREEN_UPDATE_DRIVER(mole_state, screen_update_mole) MCFG_GFXDECODE_ADD("gfxdecode", mole) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(mole_state, mole) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c index 2d15da3a2b7..c9dd7938789 100644 --- a/src/mame/drivers/momoko.c +++ b/src/mame/drivers/momoko.c @@ -65,7 +65,7 @@ static ADDRESS_MAP_START( momoko_map, AS_PROGRAM, 8, momoko_state ) AM_RANGE(0xd404, 0xd404) AM_WRITE(watchdog_reset_w) AM_RANGE(0xd406, 0xd406) AM_READ_PORT("DSW0") AM_WRITE(soundlatch_byte_w) AM_RANGE(0xd407, 0xd407) AM_READ_PORT("DSW1") - AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xd800, 0xdbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xdc00, 0xdc00) AM_WRITE(momoko_fg_scrolly_w) AM_RANGE(0xdc01, 0xdc01) AM_WRITE(momoko_fg_scrollx_w) AM_RANGE(0xdc02, 0xdc02) AM_WRITE(momoko_fg_select_w) @@ -275,7 +275,8 @@ static MACHINE_CONFIG_START( momoko, momoko_state ) MCFG_SCREEN_UPDATE_DRIVER(momoko_state, screen_update_momoko) MCFG_GFXDECODE_ADD("gfxdecode", momoko) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c index 50f09162e23..849ea3f75be 100644 --- a/src/mame/drivers/monzagp.c +++ b/src/mame/drivers/monzagp.c @@ -52,7 +52,7 @@ public: DECLARE_WRITE8_MEMBER(port2_w); DECLARE_WRITE8_MEMBER(port3_w); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(monzagp); UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -60,7 +60,7 @@ public: -void monzagp_state::palette_init() +PALETTE_INIT_MEMBER(monzagp_state, monzagp) { } @@ -104,7 +104,7 @@ UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind16 { for(x=0;x<256;x++) { - m_gfxdecode->gfx(m_bank&1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(m_bank&1)->transpen(m_palette,bitmap,cliprect, m_vram[y*m_screenw+x], //(m_vram[y*m_screenw+x]&0x3f)+(m_bank>>1)*64, 0, @@ -269,7 +269,8 @@ static MACHINE_CONFIG_START( monzagp, monzagp_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(monzagp_state, screen_update_monzagp) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(monzagp_state, monzagp) MCFG_GFXDECODE_ADD("gfxdecode", monzagp) MACHINE_CONFIG_END diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index 3ab7240c22a..e727c7273f6 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -342,7 +342,7 @@ static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state ) AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes */ AM_RANGE(0x1a2000, 0x1a3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes mirror */ AM_RANGE(0x1b0000, 0x1b1fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) /* Passthrough to tile roms */ - AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") #if MOO_DEBUG AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r) AM_RANGE(0x0c2000, 0x0c2007) AM_DEVREAD("k053246", k053247_device, k053246_reg_word_r) @@ -375,7 +375,7 @@ static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16, moo_state ) AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes */ AM_RANGE(0x1a2000, 0x1a3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes mirror */ AM_RANGE(0x1b0000, 0x1b1fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) /* Passthrough to tile roms */ - AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16, moo_state ) @@ -406,7 +406,7 @@ static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16, moo_state ) AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* Graphic planes mirror */ AM_RANGE(0x184000, 0x187fff) AM_RAM /* extra tile RAM? */ AM_RANGE(0x190000, 0x191fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) /* Passthrough to tile roms */ - AM_RANGE(0x1b0000, 0x1b3fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x1b0000, 0x1b3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x23ffff) AM_ROM /* data */ #if MOO_DEBUG AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r) @@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( moo, moo_state ) MCFG_K053252_ADD("k053252", XTAL_32MHz/4, moo_k053252_intf) // 8MHz /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -585,15 +585,20 @@ static MACHINE_CONFIG_START( moo, moo_state ) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(XRGB) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(moo_state,moo) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K053246_ADD("k053246", moo_k053247_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K056832_ADD("k056832", moo_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K054338_ADD("k054338", moo_k054338_intf) @@ -622,7 +627,7 @@ static MACHINE_CONFIG_START( moobl, moo_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -631,15 +636,20 @@ static MACHINE_CONFIG_START( moobl, moo_state ) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(XRGB) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(moo_state,moo) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K053246_ADD("k053246", moo_k053247_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K056832_ADD("k056832", moo_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K054338_ADD("k054338", moo_k054338_intf) @@ -661,8 +671,11 @@ static MACHINE_CONFIG_DERIVED( bucky, moo ) MCFG_DEVICE_REMOVE("k053246") MCFG_K053246_ADD("k053246", bucky_k053247_intf) // diff x offset MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") /* video hardware */ - MCFG_PALETTE_LENGTH(4096) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(XRGB) MCFG_VIDEO_START_OVERRIDE(moo_state,bucky) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c index e45ff841e97..f3003658dce 100644 --- a/src/mame/drivers/mosaic.c +++ b/src/mame/drivers/mosaic.c @@ -90,7 +90,7 @@ static ADDRESS_MAP_START( mosaic_map, AS_PROGRAM, 8, mosaic_state ) AM_RANGE(0x20000, 0x21fff) AM_RAM AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_SHARE("bgvideoram") AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(mosaic_fgvideoram_w) AM_SHARE("fgvideoram") - AM_RANGE(0x24000, 0x241ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0x24000, 0x241ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8, mosaic_state ) @@ -98,7 +98,7 @@ static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8, mosaic_state ) AM_RANGE(0x10000, 0x17fff) AM_RAM AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_SHARE("bgvideoram") AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(mosaic_fgvideoram_w) AM_SHARE("fgvideoram") - AM_RANGE(0x24000, 0x241ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0x24000, 0x241ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( mosaic_io_map, AS_IO, 8, mosaic_state ) @@ -272,7 +272,8 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state ) MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update_mosaic) MCFG_GFXDECODE_ADD("gfxdecode", mosaic) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c index 7afe6cf7a28..d4546c0f688 100644 --- a/src/mame/drivers/mouser.c +++ b/src/mame/drivers/mouser.c @@ -214,8 +214,8 @@ static MACHINE_CONFIG_START( mouser, mouser_state ) MCFG_SCREEN_UPDATE_DRIVER(mouser_state, screen_update_mouser) MCFG_GFXDECODE_ADD("gfxdecode", mouser) - MCFG_PALETTE_LENGTH(64) - + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(mouser_state, mouser) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c index b82e4d00756..c00be75d8c3 100644 --- a/src/mame/drivers/mpoker.c +++ b/src/mame/drivers/mpoker.c @@ -200,7 +200,7 @@ public: DECLARE_WRITE8_MEMBER(outport7_w); DECLARE_WRITE8_MEMBER(sound_w); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mpoker); UINT32 screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -224,7 +224,7 @@ UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &b { UINT16 dat = m_video[count]; UINT16 col = m_video[count+0x400] & 0x7f; - gfx->opaque(bitmap,cliprect,dat,col,0,0,x*16,y*16); + gfx->opaque(m_palette,bitmap,cliprect,dat,col,0,0,x*16,y*16); count++; } @@ -232,7 +232,7 @@ UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &b return 0; } -void mpoker_state::palette_init() +PALETTE_INIT_MEMBER(mpoker_state, mpoker) { int i; @@ -245,7 +245,7 @@ void mpoker_state::palette_init() else color = rgb_t::black; - palette_set_color(machine(), i, color); + palette.set_pen_color(i, color); } } @@ -604,8 +604,8 @@ static MACHINE_CONFIG_START( mpoker, mpoker_state ) MCFG_SCREEN_UPDATE_DRIVER(mpoker_state, screen_update_mpoker) MCFG_GFXDECODE_ADD("gfxdecode", mpoker) - MCFG_PALETTE_LENGTH(0x200) - + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(mpoker_state, mpoker) /* sound hardware */ // MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mpu12wbk.c b/src/mame/drivers/mpu12wbk.c index 5155a23ea26..1a08a9311cb 100644 --- a/src/mame/drivers/mpu12wbk.c +++ b/src/mame/drivers/mpu12wbk.c @@ -231,7 +231,7 @@ public: DECLARE_DRIVER_INIT(mpu12wbk); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(mpu12wbk); UINT32 screen_update_mpu12wbk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -286,7 +286,7 @@ UINT32 mpu12wbk_state::screen_update_mpu12wbk(screen_device &screen, bitmap_ind1 } -void mpu12wbk_state::palette_init() +PALETTE_INIT_MEMBER(mpu12wbk_state, mpu12wbk) { } @@ -533,7 +533,8 @@ static MACHINE_CONFIG_START( mpu12wbk, mpu12wbk_state ) MCFG_SCREEN_UPDATE_DRIVER(mpu12wbk_state, screen_update_mpu12wbk) MCFG_GFXDECODE_ADD("gfxdecode", mpu12wbk) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(mpu12wbk_state, mpu12wbk) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/4, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c index 9c04920ff12..23de1ab4b49 100644 --- a/src/mame/drivers/mpu4dealem.c +++ b/src/mame/drivers/mpu4dealem.c @@ -109,7 +109,7 @@ PALETTE_INIT_MEMBER(mpu4dealem_state,dealem) bit1 = BIT(*color_prom,7); b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); color_prom++; } } @@ -126,7 +126,7 @@ UINT32 mpu4dealem_state::screen_update_dealem(screen_device &screen, bitmap_ind1 { int tile = m_dealem_videoram[count + 0x1000] | (m_dealem_videoram[count] << 8); 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); } } @@ -232,8 +232,8 @@ static MACHINE_CONFIG_START( dealem, mpu4dealem_state ) MCFG_GFXDECODE_ADD("gfxdecode", dealem) - MCFG_PALETTE_LENGTH(32) - MCFG_PALETTE_INIT_OVERRIDE(mpu4dealem_state,dealem) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(mpu4dealem_state,dealem) MCFG_MC6845_ADD("crtc", HD6845, "screen", MPU4_MASTER_CLOCK / 4 / 8, hd6845_intf) /* HD68B45 */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/mpu4plasma.c b/src/mame/drivers/mpu4plasma.c index 73cba8891e8..2fd0c2dd26f 100644 --- a/src/mame/drivers/mpu4plasma.c +++ b/src/mame/drivers/mpu4plasma.c @@ -94,7 +94,7 @@ MACHINE_CONFIG_DERIVED_CLASS( mpu4plasma , mod2, mpu4plasma_state ) MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0*8, 40-1) MCFG_SCREEN_UPDATE_DRIVER(mpu4plasma_state, screen_update_mpu4plasma) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END // plasma v0.1 diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c index 99e6a337f08..45adf1ad16a 100644 --- a/src/mame/drivers/mpu4vid.c +++ b/src/mame/drivers/mpu4vid.c @@ -482,10 +482,10 @@ VIDEO_START_MEMBER(mpu4vid_state,mpu4_vid) assert(m_gfx_index != MAX_GFX_ELEMENTS); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_gfx_index+0, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0))); - m_gfxdecode->set_gfx(m_gfx_index+1, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0))); - m_gfxdecode->set_gfx(m_gfx_index+2, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0))); - m_gfxdecode->set_gfx(m_gfx_index+3, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), machine().total_colors() / 16, 0))); + m_gfxdecode->set_gfx(m_gfx_index+0, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0))); + m_gfxdecode->set_gfx(m_gfx_index+1, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_8x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0))); + m_gfxdecode->set_gfx(m_gfx_index+2, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x8_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0))); + m_gfxdecode->set_gfx(m_gfx_index+3, auto_alloc(machine(), gfx_element(machine(), mpu4_vid_char_16x16_layout, reinterpret_cast<UINT8 *>(m_vid_vidram.target()), m_palette->entries() / 16, 0))); m_scn2674->init_stuff(); @@ -533,7 +533,7 @@ WRITE16_MEMBER(mpu4vid_state::ef9369_w ) col = pal.clut[entry] & 0xfff; /* Update the MAME palette */ - palette_set_color_rgb(space.machine(), entry, pal4bit(col >> 8), pal4bit(col >> 4), pal4bit(col >> 0)); + m_palette->set_pen_color(entry, pal4bit(col >> 8), pal4bit(col >> 4), pal4bit(col >> 0)); } /* Address register auto-increment */ @@ -604,7 +604,7 @@ WRITE16_MEMBER(mpu4vid_state::bt471_w ) if (++*addr_cnt == 3) { - palette_set_color(space.machine(), bt471.address, rgb_t(color[0], color[1], color[2])); + m_palette->set_pen_color(bt471.address, rgb_t(color[0], color[1], color[2])); *addr_cnt = 0; /* Address register increments */ @@ -1426,6 +1426,7 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state ) MCFG_SCN2674_VIDEO_ADD("scn2674_vid", 0, WRITELINE(mpu4vid_state, update_mpu68_interrupts)); MCFG_SCN2674_GFXDECODE("gfxdecode") + MCFG_SCN2674_PALETTE("palette") MCFG_CPU_ADD("video", M68000, VIDEO_MASTER_CLOCK ) MCFG_CPU_PROGRAM_MAP(mpu4_68k_map) @@ -1436,7 +1437,7 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state ) MCFG_MACHINE_RESET_OVERRIDE(mpu4vid_state,mpu4_vid) MCFG_VIDEO_START_OVERRIDE (mpu4vid_state,mpu4_vid) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_PTM6840_ADD("6840ptm_68k", ptm_vid_intf) /* Present on all video cards */ diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c index aa97630d53e..647e2e81cd9 100644 --- a/src/mame/drivers/mquake.c +++ b/src/mame/drivers/mquake.c @@ -397,8 +397,8 @@ static MACHINE_CONFIG_START( mquake, mquake_state ) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) MCFG_SCREEN_UPDATE_DRIVER(mquake_state, screen_update_amiga) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(mquake_state,amiga) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(mquake_state,amiga) MCFG_VIDEO_START_OVERRIDE(mquake_state,amiga) diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c index c126cc7095b..3eb0d1f70a8 100644 --- a/src/mame/drivers/mrdo.c +++ b/src/mame/drivers/mrdo.c @@ -177,8 +177,8 @@ static MACHINE_CONFIG_START( mrdo, mrdo_state ) MCFG_SCREEN_UPDATE_DRIVER(mrdo_state, screen_update_mrdo) MCFG_GFXDECODE_ADD("gfxdecode", mrdo) - MCFG_PALETTE_LENGTH(64*4+16*4) - + MCFG_PALETTE_ADD("palette", 64*4+16*4) + MCFG_PALETTE_INIT_OWNER(mrdo_state, mrdo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c index 74aaf85a3fc..b12740b48b8 100644 --- a/src/mame/drivers/mrflea.c +++ b/src/mame/drivers/mrflea.c @@ -159,7 +159,7 @@ static ADDRESS_MAP_START( mrflea_master_map, AS_PROGRAM, 8, mrflea_state ) AM_RANGE(0x0000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xcfff) AM_RAM AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(mrflea_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xe800, 0xe83f) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xe800, 0xe83f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xec00, 0xecff) AM_RAM_WRITE(mrflea_spriteram_w) AM_SHARE("spriteram") ADDRESS_MAP_END @@ -368,7 +368,8 @@ static MACHINE_CONFIG_START( mrflea, mrflea_state ) MCFG_SCREEN_UPDATE_DRIVER(mrflea_state, screen_update_mrflea) MCFG_GFXDECODE_ADD("gfxdecode", mrflea) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c index 07657055b5e..5bd888bf8e4 100644 --- a/src/mame/drivers/mrjong.c +++ b/src/mame/drivers/mrjong.c @@ -195,8 +195,8 @@ static MACHINE_CONFIG_START( mrjong, mrjong_state ) MCFG_SCREEN_UPDATE_DRIVER(mrjong_state, screen_update_mrjong) MCFG_GFXDECODE_ADD("gfxdecode", mrjong) - MCFG_PALETTE_LENGTH(4*32) - + MCFG_PALETTE_ADD("palette", 4*32) + MCFG_PALETTE_INIT_OWNER(mrjong_state, mrjong) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c index b04bd5f932e..5ef7d90fb51 100644 --- a/src/mame/drivers/ms32.c +++ b/src/mame/drivers/ms32.c @@ -1406,7 +1406,7 @@ static MACHINE_CONFIG_START( ms32, ms32_state ) MCFG_SCREEN_UPDATE_DRIVER(ms32_state, screen_update_ms32) MCFG_GFXDECODE_ADD("gfxdecode", ms32) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) /* sound hardware */ diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c index ba5ab63c9ba..13217b56796 100644 --- a/src/mame/drivers/msisaac.c +++ b/src/mame/drivers/msisaac.c @@ -171,7 +171,7 @@ WRITE8_MEMBER(msisaac_state::msisaac_mcu_w) static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state ) AM_RANGE(0x0000, 0xdfff) AM_ROM AM_RANGE(0xe000, 0xe7ff) AM_RAM - AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf000, 0xf000) AM_WRITE(msisaac_bg2_textbank_w) AM_RANGE(0xf001, 0xf001) AM_WRITENOP //??? AM_RANGE(0xf002, 0xf002) AM_WRITENOP //??? @@ -490,7 +490,8 @@ static MACHINE_CONFIG_START( msisaac, msisaac_state ) MCFG_SCREEN_UPDATE_DRIVER(msisaac_state, screen_update_msisaac) MCFG_GFXDECODE_ADD("gfxdecode", msisaac) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c index 261ec9bf8f8..1077b2ac190 100644 --- a/src/mame/drivers/mugsmash.c +++ b/src/mame/drivers/mugsmash.c @@ -175,7 +175,7 @@ static ADDRESS_MAP_START( mugsmash_map, AS_PROGRAM, 16, mugsmash_state ) AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(mugsmash_videoram1_w) AM_SHARE("videoram1") AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(mugsmash_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE(mugsmash_reg_w) AM_SHARE("regs1") /* video registers*/ - AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x140007) AM_WRITE(mugsmash_reg2_w) AM_SHARE("regs2") /* sound + ? */ AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* main ram? */ AM_RANGE(0x1c4000, 0x1cffff) AM_RAM @@ -409,7 +409,8 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state ) MCFG_SCREEN_UPDATE_DRIVER(mugsmash_state, screen_update_mugsmash) MCFG_GFXDECODE_ADD("gfxdecode", mugsmash) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 9d6746e7e95..164f67628ab 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -223,7 +223,7 @@ UINT32 igrosoft_gamble_state::screen_update_igrosoft_gamble(screen_device &scree { int i; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); if (!m_disp_enable) return 0; @@ -290,7 +290,7 @@ WRITE8_MEMBER(igrosoft_gamble_state::igrosoft_gamble_vid_w) b = ( (coldat &0x00e0)>> (5)); b|= ( (coldat &0xe000)>> (8+5-3)); - palette_set_color_rgb(machine(), (offset-0x4000)/2, r<<3, g<<3, b<<2); + m_palette->set_pen_color((offset-0x4000)/2, r<<3, g<<3, b<<2); } else { @@ -1065,7 +1065,7 @@ MACHINE_CONFIG_START( igrosoft_gamble, igrosoft_gamble_state ) MCFG_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1) MCFG_SCREEN_UPDATE_DRIVER(igrosoft_gamble_state, screen_update_igrosoft_gamble) MCFG_GFXDECODE_ADD("gfxdecode", igrosoft_gamble) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c index 3c9e56407b9..0e6e124d663 100644 --- a/src/mame/drivers/multigam.c +++ b/src/mame/drivers/multigam.c @@ -186,7 +186,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(multigam); DECLARE_MACHINE_START(multigm3); DECLARE_MACHINE_RESET(multigm3); DECLARE_MACHINE_START(supergm3); @@ -1145,9 +1145,9 @@ static const nesapu_interface multigam_interface_1 = "maincpu" }; -void multigam_state::palette_init() +PALETTE_INIT_MEMBER(multigam_state, multigam) { - m_ppu->init_palette(machine(), 0); + m_ppu->init_palette(palette, 0); } void multigam_state::ppu_irq(int *ppu_regs) @@ -1259,8 +1259,8 @@ static MACHINE_CONFIG_START( multigam, multigam_state ) MCFG_SCREEN_UPDATE_DRIVER(multigam_state, screen_update_multigam) MCFG_GFXDECODE_ADD("gfxdecode", multigam) - MCFG_PALETTE_LENGTH(8*4*16) - + MCFG_PALETTE_ADD("palette", 8*4*16) + MCFG_PALETTE_INIT_OWNER(multigam_state, multigam) MCFG_PPU2C04_ADD("ppu", ppu_interface) MCFG_PPU2C0X_SET_NMI(multigam_state, ppu_irq) diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c index 46adbef3afa..3495394c1cf 100644 --- a/src/mame/drivers/munchmo.c +++ b/src/mame/drivers/munchmo.c @@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( mnchmobl, munchmo_state ) MCFG_SCREEN_UPDATE_DRIVER(munchmo_state, screen_update_mnchmobl) MCFG_GFXDECODE_ADD("gfxdecode", mnchmobl) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(munchmo_state, munchmo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c index a14c56b1bdf..2e5cd99565c 100644 --- a/src/mame/drivers/murogem.c +++ b/src/mame/drivers/murogem.c @@ -122,7 +122,7 @@ public: required_shared_ptr<UINT8> m_videoram; DECLARE_WRITE8_MEMBER(outport_w); - virtual void palette_init(); + DECLARE_PALETTE_INIT(murogem); UINT32 screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<dac_device> m_dac; @@ -206,7 +206,7 @@ static GFXDECODE_START( murogem ) GFXDECODE_END -void murogem_state::palette_init() +PALETTE_INIT_MEMBER(murogem_state, murogem) {} UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -223,7 +223,7 @@ UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 int tileno = m_videoram[count]&0x3f; int attr = m_videoram[count+0x400]&0x0f; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,tileno,attr,0,0,xx*8,yy*8,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect,tileno,attr,0,0,xx*8,yy*8,0); count++; @@ -265,7 +265,8 @@ static MACHINE_CONFIG_START( murogem, murogem_state ) MCFG_SCREEN_UPDATE_DRIVER(murogem_state, screen_update_murogem) MCFG_GFXDECODE_ADD("gfxdecode", murogem) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(murogem_state, murogem) MCFG_MC6845_ADD("crtc", MC6845, "screen", 750000, mc6845_intf) /* ? MHz */ diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c index 023d820b8fa..d4dfddde530 100644 --- a/src/mame/drivers/murogmbl.c +++ b/src/mame/drivers/murogmbl.c @@ -51,14 +51,14 @@ public: required_shared_ptr<UINT8> m_video; virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(murogmbl); UINT32 screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; }; -void murogmbl_state::palette_init() +PALETTE_INIT_MEMBER(murogmbl_state, murogmbl) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, bit2 , r, g, b; @@ -79,7 +79,7 @@ void murogmbl_state::palette_init() bit2 = (color_prom[0] >> 7) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -112,7 +112,7 @@ UINT32 murogmbl_state::screen_update_murogmbl(screen_device &screen, bitmap_ind1 for (x = 0; x < 32; x++) { int tile = m_video[count]; - gfx->opaque(bitmap,cliprect, tile, 0, 0, 0, x * 8, y * 8); + gfx->opaque(m_palette,bitmap,cliprect, tile, 0, 0, 0, x * 8, y * 8); count++; } @@ -201,8 +201,8 @@ static MACHINE_CONFIG_START( murogmbl, murogmbl_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(murogmbl_state, screen_update_murogmbl) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(murogmbl_state, murogmbl) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_DAC_ADD("dac1") diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c index 9388028fd4b..919b728e70a 100644 --- a/src/mame/drivers/mustache.c +++ b/src/mame/drivers/mustache.c @@ -187,8 +187,8 @@ static MACHINE_CONFIG_START( mustache, mustache_state ) MCFG_SCREEN_UPDATE_DRIVER(mustache_state, screen_update_mustache) MCFG_GFXDECODE_ADD("gfxdecode", mustache) - MCFG_PALETTE_LENGTH(8*16+16*8) - + MCFG_PALETTE_ADD("palette", 8*16+16*8) + MCFG_PALETTE_INIT_OWNER(mustache_state, mustache) /* sound hardware */ MCFG_SEIBU_SOUND_ADD("seibu_sound") // for seibu_sound_decrypt on the MAIN cpu (not sound) diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c index 7df1b9874fc..075d78df452 100644 --- a/src/mame/drivers/mwarr.c +++ b/src/mame/drivers/mwarr.c @@ -191,7 +191,7 @@ WRITE16_MEMBER(mwarr_state::mwarr_brightness_w) brightness = (double)(data & 0xff); for (i = 0; i < 0x800; i++) { - palette_set_pen_contrast(machine(), i, brightness/255); + m_palette->set_pen_contrast(i, brightness/255); } } @@ -212,7 +212,7 @@ static ADDRESS_MAP_START( mwarr_map, AS_PROGRAM, 16, mwarr_state ) AM_RANGE(0x103400, 0x1037ff) AM_RAM AM_SHARE("mlow_scrollram") AM_RANGE(0x103800, 0x103bff) AM_RAM AM_SHARE("mhigh_scrollram") AM_RANGE(0x103c00, 0x103fff) AM_RAM AM_SHARE("vidattrram") - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x108000, 0x108fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x110000, 0x110001) AM_READ_PORT("P1_P2") AM_RANGE(0x110002, 0x110003) AM_READ_PORT("SYSTEM") @@ -435,7 +435,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con for (i = 0; i <= dy; i++) { - gfx->prio_transpen(bitmap, + gfx->prio_transpen(m_palette,bitmap, cliprect, source[2]+i, color, @@ -444,7 +444,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con screen.priority(),pri_mask,0 ); /* wrap around x */ - gfx->prio_transpen(bitmap, + gfx->prio_transpen(m_palette,bitmap, cliprect, source[2]+i, color, @@ -453,7 +453,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con screen.priority(),pri_mask,0 ); /* wrap around y */ - gfx->prio_transpen(bitmap, + gfx->prio_transpen(m_palette,bitmap, cliprect, source[2]+i, color, @@ -462,7 +462,7 @@ void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, con screen.priority(),pri_mask,0 ); /* wrap around x & y */ - gfx->prio_transpen(bitmap, + gfx->prio_transpen(m_palette,bitmap, cliprect, source[2]+i, color, @@ -563,8 +563,8 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state ) MCFG_SCREEN_UPDATE_DRIVER(mwarr_state, screen_update_mwarr) MCFG_GFXDECODE_ADD("gfxdecode", mwarr) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index 73c69493e27..be3ff34c545 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -318,7 +318,7 @@ static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16, mystwarr_state ) AM_RANGE(0x600000, 0x601fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) AM_RANGE(0x602000, 0x603fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read(essential) AM_RANGE(0x680000, 0x683fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") #if MW_DEBUG AM_RANGE(0x480000, 0x4800ff) AM_DEVREAD("k055555", k055555_device, k055555_word_r) AM_RANGE(0x482010, 0x48201f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) @@ -359,7 +359,7 @@ static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16, mystwarr_state ) AM_RANGE(0x302000, 0x303fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential) AM_RANGE(0x310000, 0x311fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) AM_RANGE(0x320000, 0x321fff) AM_DEVREAD("k053250_1", k053250_device, rom_r) - AM_RANGE(0x330000, 0x331fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x330000, 0x331fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") #if MW_DEBUG AM_RANGE(0x240000, 0x240007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) AM_RANGE(0x244010, 0x24401f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) @@ -402,7 +402,7 @@ static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16, mystwarr_state ) AM_RANGE(0x302000, 0x303fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read(essential) AM_RANGE(0x304000, 0x3041ff) AM_RAM AM_RANGE(0x310000, 0x311fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) - AM_RANGE(0x330000, 0x331fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x330000, 0x331fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") #if MW_DEBUG AM_RANGE(0x240000, 0x240007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) AM_RANGE(0x244010, 0x24401f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) @@ -489,7 +489,7 @@ static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16, mystwarr_state ) AM_RANGE(0x41c000, 0x41c01f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) // CCU AM_RANGE(0x41e000, 0x41e007) AM_DEVWRITE("k056832", k056832_device,b_word_w) // VSCCS AM_RANGE(0x480000, 0x483fff) AM_READWRITE(k053247_martchmp_word_r,k053247_martchmp_word_w) AM_SHARE("spriteram") // sprite RAM - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") // palette RAM + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette RAM AM_RANGE(0x680000, 0x681fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM AM_RANGE(0x682000, 0x683fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential) AM_RANGE(0x700000, 0x703fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) // tile ROM readback @@ -509,7 +509,7 @@ static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16, mystwarr_state ) AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(k053247_scattered_word_r,k053247_scattered_word_w) AM_SHARE("spriteram") AM_RANGE(0x410000, 0x411fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM AM_RANGE(0x412000, 0x413fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential) - AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x420000, 0x421fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x430000, 0x430007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) AM_RANGE(0x440000, 0x443fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) AM_RANGE(0x450000, 0x45000f) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) @@ -556,7 +556,7 @@ static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16, mystwarr_state ) AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(k053247_scattered_word_r,k053247_scattered_word_w) AM_SHARE("spriteram") AM_RANGE(0x410000, 0x411fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM AM_RANGE(0x412000, 0x413fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read / write (essential) - AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x420000, 0x421fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x430000, 0x430007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) AM_RANGE(0x440000, 0x441fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) AM_RANGE(0x450000, 0x45000f) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) @@ -1046,7 +1046,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,mystwarr) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(60) @@ -1056,14 +1056,20 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_mystwarr) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(XRGB) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() + MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD_NOINTF("k056832"/*, mystwarr_k056832_intf*/) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K055555_ADD("k055555") MCFG_K055673_ADD_NOINTF("k055673") MCFG_K055673_GFXDECODE("gfxdecode") + MCFG_K055673_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(mystwarr_state,mystwarr) @@ -1195,7 +1201,12 @@ static MACHINE_CONFIG_DERIVED( martchmp, mystwarr ) MCFG_DEVICE_REMOVE("k053252") MCFG_K053252_ADD("k053252", 16000000/2, martchmp_k053252_intf) - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_FORMAT(XRGB) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp) diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c index bf8cf260efd..5ae0d1a0174 100644 --- a/src/mame/drivers/n8080.c +++ b/src/mame/drivers/n8080.c @@ -516,8 +516,8 @@ static MACHINE_CONFIG_START( spacefev, n8080_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_spacefev) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(n8080_state,n8080) MCFG_VIDEO_START_OVERRIDE(n8080_state,spacefev) MCFG_TIMER_DRIVER_ADD_SCANLINE("rst1", n8080_state, rst1_tick, "screen", 128, 256) @@ -546,8 +546,8 @@ static MACHINE_CONFIG_START( sheriff, n8080_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_sheriff) - MCFG_PALETTE_LENGTH(8) - MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(n8080_state,n8080) MCFG_VIDEO_START_OVERRIDE(n8080_state,sheriff) MCFG_TIMER_DRIVER_ADD_SCANLINE("rst1", n8080_state, rst1_tick, "screen", 128, 256) @@ -589,8 +589,8 @@ static MACHINE_CONFIG_START( helifire, n8080_state ) MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_helifire) MCFG_SCREEN_VBLANK_DRIVER(n8080_state, screen_eof_helifire) - MCFG_PALETTE_LENGTH(8 + 0x400) - MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire) + MCFG_PALETTE_ADD("palette", 8 + 0x400) + MCFG_PALETTE_INIT_OWNER(n8080_state,helifire) MCFG_VIDEO_START_OVERRIDE(n8080_state,helifire) MCFG_TIMER_DRIVER_ADD_SCANLINE("rst1", n8080_state, rst1_tick, "screen", 128, 256) diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index b2b4a3776bd..f537a99424a 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -599,7 +599,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state ) MCFG_SCREEN_VISIBLE_AREA(0, NAMCOFL_HBSTART-1, 0, NAMCOFL_VBSTART-1) MCFG_SCREEN_UPDATE_DRIVER(namcofl_state, screen_update_namcofl) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_GFXDECODE_ADD("gfxdecode", 2) diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c index 479e1d88c7e..f9209dee483 100644 --- a/src/mame/drivers/namcoic.c +++ b/src/mame/drivers/namcoic.c @@ -275,8 +275,8 @@ void namcos2_shared_state::zdrawgfxzoom( { if( gfx ) { - int shadow_offset = (gfx->machine().config().m_video_attributes&VIDEO_HAS_SHADOWS)?gfx->machine().total_colors():0; - const pen_t *pal = &gfx->machine().pens[gfx->colorbase() + gfx->granularity() * (color % gfx->colors())]; + int shadow_offset = (m_palette->shadows_enabled())?m_palette->entries():0; + const pen_t *pal = &m_palette->pen(gfx->colorbase() + gfx->granularity() * (color % gfx->colors())); const UINT8 *source_base = gfx->get_data(code % gfx->elements()); int sprite_screen_height = (scaley*gfx->height()+0x8000)>>16; int sprite_screen_width = (scalex*gfx->width()+0x8000)>>16; @@ -1311,7 +1311,8 @@ namco_c45_road_device::namco_c45_road_device(const machine_config &mconfig, cons : device_t(mconfig, NAMCO_C45_ROAD, "Namco C45 Road", tag, owner, clock, "namco_c45_road", __FILE__), m_transparent_color(~0), m_tilemap(NULL), - m_gfxdecode(*this, "gfxdecode") + m_gfxdecode(*this, "gfxdecode"), + m_palette(*this) { } @@ -1410,7 +1411,7 @@ void namco_c45_road_device::draw(bitmap_ind16 &bitmap, const rectangle &cliprect while (numpixels-- > 0) { int pen = source_gfx[sourcex >> 16]; - if (colortable_entry_get_value(machine().colortable, pen) != m_transparent_color) + if (m_palette->pen_indirect(pen) != m_transparent_color) { if (clut != NULL) pen = (pen & ~0xff) | clut[pen & 0xff]; @@ -1485,3 +1486,13 @@ TILE_GET_INFO_MEMBER( namco_c45_road_device::get_road_info ) int color = data >> 10; SET_TILE_INFO_MEMBER(m_gfxdecode, 0, tile, color, 0); } + +//------------------------------------------------- +// static_set_palette_tag: Set the tag of the +// palette device +//------------------------------------------------- + +void namco_c45_road_device::static_set_palette_tag(device_t &device, const char *tag) +{ + downcast<namco_c45_road_device &>(device).m_palette.set_tag(tag); +} diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index 02b562bb1d6..764ceaa11ae 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -944,8 +944,6 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state ) MCFG_QUANTUM_TIME(attotime::from_hz(2400)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -953,7 +951,8 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state ) MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_GFXDECODE_ADD("gfxdecode", empty) /* sound hardware */ diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index df8ad565cd9..9bd2d1041c2 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -1154,7 +1154,6 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) MCFG_EEPROM_2816_ADD("eeprom") MCFG_MACHINE_START_OVERRIDE(namconb1_state,namconb) - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.7) @@ -1163,7 +1162,10 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb1) MCFG_GFXDECODE_ADD("gfxdecode", namconb1) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb1) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1186,7 +1188,6 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state ) MCFG_EEPROM_2816_ADD("eeprom") MCFG_MACHINE_START_OVERRIDE(namconb1_state,namconb) - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.7) @@ -1195,7 +1196,9 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state ) MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb2) MCFG_GFXDECODE_ADD("gfxdecode", 2) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb2) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c index e5d8777d45a..25720540d78 100644 --- a/src/mame/drivers/namcond1.c +++ b/src/mame/drivers/namcond1.c @@ -311,7 +311,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state ) MCFG_SCREEN_UPDATE_DEVICE("ygv608", ygv608_device, update_screen) MCFG_GFXDECODE_ADD("gfxdecode", namcond1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -326,6 +326,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state ) MCFG_YGV608_ADD("ygv608") MCFG_YGV608_GFXDECODE("gfxdecode") + MCFG_YGV608_PALETTE("palette") MACHINE_CONFIG_END ROM_START( ncv1 ) diff --git a/src/mame/drivers/namcops2.c b/src/mame/drivers/namcops2.c index 232ede808bd..a9056d87e75 100644 --- a/src/mame/drivers/namcops2.c +++ b/src/mame/drivers/namcops2.c @@ -146,7 +146,7 @@ static MACHINE_CONFIG_START( system246, namcops2_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( system256, system246 ) diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c index f5f4c4ffb85..468b247c5e7 100644 --- a/src/mame/drivers/namcos1.c +++ b/src/mame/drivers/namcos1.c @@ -1096,15 +1096,15 @@ static MACHINE_CONFIG_START( ns1, namcos1_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 9+8*8, 9+44*8, 264, 2*8, 30*8) MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1) MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1) MCFG_GFXDECODE_ADD("gfxdecode", namcos1) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() /* sound hardware */ diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c index 3fd8a22cefe..3453fa6f272 100644 --- a/src/mame/drivers/namcos2.c +++ b/src/mame/drivers/namcos2.c @@ -1724,8 +1724,6 @@ static MACHINE_CONFIG_START( default, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -1733,7 +1731,9 @@ static MACHINE_CONFIG_START( default, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", namcos2) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1798,8 +1798,6 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -1807,7 +1805,9 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", namcos2) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1845,8 +1845,6 @@ static MACHINE_CONFIG_START( finallap, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -1854,11 +1852,14 @@ static MACHINE_CONFIG_START( finallap, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_finallap) MCFG_GFXDECODE_ADD("gfxdecode", finallap) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(namcos2_state, finallap) MCFG_NAMCO_C45_ROAD_ADD("c45_road") + MCFG_NAMCO_C45_ROAD_PALETTE("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1896,8 +1897,6 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -1905,7 +1904,9 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_sgunner) MCFG_GFXDECODE_ADD("gfxdecode", sgunner) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(namcos2_state, sgunner) @@ -1950,8 +1951,6 @@ static MACHINE_CONFIG_START( sgunner2, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -1959,7 +1958,9 @@ static MACHINE_CONFIG_START( sgunner2, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_sgunner) MCFG_GFXDECODE_ADD("gfxdecode", sgunner) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(namcos2_state, sgunner) @@ -1999,8 +2000,6 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -2008,11 +2007,14 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_luckywld) MCFG_GFXDECODE_ADD("gfxdecode", luckywld) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(namcos2_state, luckywld) MCFG_NAMCO_C45_ROAD_ADD("c45_road") + MCFG_NAMCO_C45_ROAD_PALETTE("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -2050,8 +2052,6 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state ) MCFG_MACHINE_RESET_OVERRIDE(namcos2_state,namcos2) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) ) MCFG_SCREEN_SIZE(384, 264) @@ -2059,7 +2059,9 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_metlhawk) MCFG_GFXDECODE_ADD("gfxdecode", metlhawk) - MCFG_PALETTE_LENGTH(0x2000) + + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(namcos2_state, metlhawk) diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c index 1a7e0f7cb4a..25d97bf91fb 100644 --- a/src/mame/drivers/namcos21.c +++ b/src/mame/drivers/namcos21.c @@ -1527,7 +1527,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21) MCFG_GFXDECODE_ADD("gfxdecode", namcos21) - MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) + MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS) MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21) @@ -1582,7 +1582,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state ) MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21) MCFG_GFXDECODE_ADD("gfxdecode", namcos21) - MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) + MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS) MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21) @@ -1640,7 +1640,7 @@ static MACHINE_CONFIG_START( winrun, namcos21_state ) MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21) - MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) + MCFG_PALETTE_ADD("palette", NAMCOS21_NUM_COLORS) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_VIDEO_START_OVERRIDE(namcos21_state,namcos21) diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index 07445b1d04a..83cff89ef8f 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -3779,7 +3779,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_GFXDECODE_ADD("gfxdecode", namcos22) MCFG_VIDEO_START_OVERRIDE(namcos22_state,namcos22) @@ -3830,7 +3830,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_GFXDECODE_ADD("gfxdecode", super) MCFG_VIDEO_START_OVERRIDE(namcos22_state,namcos22s) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index e9f5821608c..c00a2eee87b 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -2013,7 +2013,7 @@ void namcos23_state::render_one_model(const namcos23_render_entry *re) p->front = !(h & 0x00000001); p->rd.machine = &machine(); p->rd.texture_lookup = render_texture_lookup_nocache_point; - p->rd.pens = machine().pens + (color << 8); + p->rd.pens = m_palette->pens() + (color << 8); render.poly_count++; } @@ -2109,7 +2109,7 @@ WRITE32_MEMBER(namcos23_state::s23_paletteram_w) int r = nthbyte(m_generic_paletteram_32, which|0x00001); int g = nthbyte(m_generic_paletteram_32, which|0x10001); int b = nthbyte(m_generic_paletteram_32, which|0x20001); - palette_set_color(machine(), which/2, rgb_t(r,g,b)); + m_palette->set_pen_color(which/2, rgb_t(r,g,b)); } } @@ -3455,7 +3455,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_s23) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_NVRAM_ADD_0FILL("nvram") @@ -3502,7 +3502,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_s23) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_GFXDECODE_ADD("gfxdecode", namcos23) @@ -3563,7 +3563,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_s23) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_GFXDECODE_ADD("gfxdecode", namcos23) diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index 03ed34d01e7..70a00f4adc6 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -1012,8 +1012,8 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state ) MCFG_SCREEN_VBLANK_DRIVER(namcos86_state, screen_eof_namcos86) MCFG_GFXDECODE_ADD("gfxdecode", namcos86) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(namcos86_state, namcos86) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index 16482257d69..4484a46558a 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -2516,7 +2516,7 @@ static MACHINE_CONFIG_START( naomi_aw_base, naomi_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(13458568*2, 820, 0, 640, 532, 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/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c index 860eb209635..4829b132bf6 100644 --- a/src/mame/drivers/naughtyb.c +++ b/src/mame/drivers/naughtyb.c @@ -433,8 +433,8 @@ static MACHINE_CONFIG_START( naughtyb, naughtyb_state ) MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb) MCFG_GFXDECODE_ADD("gfxdecode", naughtyb) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(naughtyb_state, naughtyb) /* sound hardware */ /* uses the TMS3615NS for sound */ @@ -465,7 +465,8 @@ static MACHINE_CONFIG_START( popflame, naughtyb_state ) MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb) MCFG_GFXDECODE_ADD("gfxdecode", naughtyb) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(naughtyb_state, naughtyb) /* sound hardware */ diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c index 6cbb9fe69d3..5d547a7d875 100644 --- a/src/mame/drivers/nbmj8688.c +++ b/src/mame/drivers/nbmj8688.c @@ -2781,9 +2781,9 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) - MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_12bit) + MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_12bit) MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_12bit) /* sound hardware */ @@ -2802,9 +2802,10 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV_256, NBMJDRV_4096 ) /* basic machine hardware */ /* video hardware */ - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_8bit) + MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_8bit) MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_8bit) MACHINE_CONFIG_END @@ -2814,9 +2815,10 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV_65536, NBMJDRV_4096 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_PALETTE_LENGTH(65536) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 65536) - MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_16bit) + MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_16bit) MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_hybrid_16bit) MACHINE_CONFIG_END @@ -2925,8 +2927,8 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(65536) - MCFG_PALETTE_INIT_OVERRIDE(nbmj8688_state,mbmj8688_16bit) + MCFG_PALETTE_ADD("palette", 65536) + MCFG_PALETTE_INIT_OWNER(nbmj8688_state,mbmj8688_16bit) MCFG_DEFAULT_LAYOUT(layout_nbmj8688) MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c index 99091637018..616dd04214c 100644 --- a/src/mame/drivers/nbmj8891.c +++ b/src/mame/drivers/nbmj8891.c @@ -2537,7 +2537,7 @@ static MACHINE_CONFIG_START( gionbana, nbmj8891_state ) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1) MCFG_SCREEN_UPDATE_DRIVER(nbmj8891_state, screen_update_nbmj8891) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c index 02335f02c36..344720fa916 100644 --- a/src/mame/drivers/nbmj8900.c +++ b/src/mame/drivers/nbmj8900.c @@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state ) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1) MCFG_SCREEN_UPDATE_DRIVER(nbmj8900_state, screen_update_nbmj8900) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c index fbb26ebe042..8f02150c545 100644 --- a/src/mame/drivers/nbmj8991.c +++ b/src/mame/drivers/nbmj8991.c @@ -1412,7 +1412,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1447,7 +1447,7 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type2) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c index 84c7b92e640..bd145898f3b 100644 --- a/src/mame/drivers/nbmj9195.c +++ b/src/mame/drivers/nbmj9195.c @@ -3179,7 +3179,7 @@ static MACHINE_CONFIG_START( NBMJDRV1, nbmj9195_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ @@ -3210,7 +3210,8 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV3, NBMJDRV1 ) /* basic machine hardware */ /* video hardware */ - MCFG_PALETTE_LENGTH(512) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090) MCFG_SCREEN_MODIFY("screen") diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index 17433c16974..f324e075a23 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -1561,7 +1561,7 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1612,7 +1612,7 @@ static MACHINE_CONFIG_START( gx400, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1665,7 +1665,7 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1716,7 +1716,7 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1771,7 +1771,7 @@ static MACHINE_CONFIG_START( salamand, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1817,7 +1817,7 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1905,7 +1905,7 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -1949,7 +1949,7 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ @@ -2701,7 +2701,7 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state ) MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis) MCFG_GFXDECODE_ADD("gfxdecode", nemesis) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index 1f328649259..66df6fb7e44 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -113,10 +113,10 @@ void neoprint_state::draw_layer(bitmap_ind16 &bitmap,const rectangle &cliprect,i UINT8 fx = (m_npvidram[i*2+1] & 0x0040); UINT8 fy = (m_npvidram[i*2+1] & 0x0080); - gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly,0); - gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly,0); - gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly-512,0); - gfx->transpen(bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly-512,0); + gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly,0); + gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly,0); + gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx,y*16-scrolly-512,0); + gfx->transpen(m_palette,bitmap,cliprect,dat,color,fx,fy,x*16+scrollx-512,y*16-scrolly-512,0); i++; //i&=0x3ff; @@ -233,7 +233,7 @@ static ADDRESS_MAP_START( neoprint_map, AS_PROGRAM, 16, neoprint_state ) AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x400000, 0x43ffff) AM_RAM AM_SHARE("npvidram") - AM_RANGE(0x500000, 0x51ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500000, 0x51ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x600001) AM_READWRITE(neoprint_audio_result_r,audio_command_w) AM_RANGE(0x600002, 0x600003) AM_READWRITE(neoprint_calendar_r,neoprint_calendar_w) AM_RANGE(0x600004, 0x600005) AM_READ_PORT("SYSTEM") AM_WRITENOP @@ -271,7 +271,7 @@ WRITE16_MEMBER(neoprint_state::nprsp_palette_w) pal_entry = ((offset & 0xfffe) >> 1) + ((offset & 0x20000) ? 0x8000 : 0); - palette_set_color(machine(), pal_entry, rgb_t(r,g,b)); + m_palette->set_pen_color(pal_entry, rgb_t(r,g,b)); } } @@ -488,8 +488,8 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_neoprint) - MCFG_PALETTE_LENGTH(0x10000) - + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -530,8 +530,8 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state ) MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp) - MCFG_PALETTE_LENGTH(0x10000) - + MCFG_PALETTE_ADD("palette", 0x10000) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/neptunp2.c b/src/mame/drivers/neptunp2.c index 5bbb57917a9..9c8917fd344 100644 --- a/src/mame/drivers/neptunp2.c +++ b/src/mame/drivers/neptunp2.c @@ -104,7 +104,7 @@ static MACHINE_CONFIG_START( neptunp2, neptunp2_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", neptunp2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c index ec5290c4e37..71e81e385fc 100644 --- a/src/mame/drivers/news.c +++ b/src/mame/drivers/news.c @@ -23,7 +23,7 @@ static ADDRESS_MAP_START( news_map, AS_PROGRAM, 8, news_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* 4000-7fff is written to during startup, probably leftover code */ AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(news_fgram_w) AM_SHARE("fgram") AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(news_bgram_w) AM_SHARE("bgram") - AM_RANGE(0x9000, 0x91ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x9000, 0x91ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW") AM_RANGE(0xc001, 0xc001) AM_READ_PORT("INPUTS") AM_RANGE(0xc002, 0xc002) AM_DEVREADWRITE("oki", okim6295_device, read, write) @@ -140,8 +140,8 @@ static MACHINE_CONFIG_START( news, news_state ) MCFG_SCREEN_UPDATE_DRIVER(news_state, screen_update_news) MCFG_GFXDECODE_ADD("gfxdecode", news) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/nexus3d.c b/src/mame/drivers/nexus3d.c index 2e3568aff30..314dd094857 100644 --- a/src/mame/drivers/nexus3d.c +++ b/src/mame/drivers/nexus3d.c @@ -126,7 +126,7 @@ static MACHINE_CONFIG_START( nexus3d, nexus3d_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(nexus3d_state, screen_update_nexus3d) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_SERFLASH_ADD("flash") diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c index dc06762ccd7..9fbbd068120 100644 --- a/src/mame/drivers/nightgal.c +++ b/src/mame/drivers/nightgal.c @@ -103,7 +103,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(nightgal); UINT32 screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); protected: @@ -156,8 +156,8 @@ UINT32 nightgal_state::screen_update_nightgal(screen_device &screen, bitmap_ind1 for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) { UINT32 srcpix = *src++; - *dst++ = machine().pens[srcpix & 0xf]; - *dst++ = machine().pens[(srcpix >> 4) & 0xf]; + *dst++ = m_palette->pen(srcpix & 0xf); + *dst++ = m_palette->pen((srcpix >> 4) & 0xf); } } @@ -302,7 +302,7 @@ WRITE8_MEMBER(nightgal_state::sexygal_nsc_true_blitter_w) } /* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */ -void nightgal_state::palette_init() +PALETTE_INIT_MEMBER(nightgal_state, nightgal) { const UINT8 *color_prom = memregion("proms")->base(); static const int resistances_rg[3] = { 1000, 470, 220 }; @@ -316,7 +316,7 @@ void nightgal_state::palette_init() 2, resistances_b, weights_b, 0, 0, 0, 0, 0, 0, 0); - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2; int r, g, b; @@ -338,7 +338,7 @@ void nightgal_state::palette_init() bit1 = BIT(color_prom[i], 7); b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -923,8 +923,8 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(nightgal_state, screen_update_nightgal) - MCFG_PALETTE_LENGTH(0x10) - + MCFG_PALETTE_ADD("palette", 0x10) + MCFG_PALETTE_INIT_OWNER(nightgal_state, nightgal) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c index 1fdb7c55ecd..f53e697af47 100644 --- a/src/mame/drivers/ninjakd2.c +++ b/src/mame/drivers/ninjakd2.c @@ -369,7 +369,7 @@ static ADDRESS_MAP_START( ninjakd2_main_cpu, AS_PROGRAM, 8, ninjakd2_state ) AM_RANGE(0xc202, 0xc202) AM_WRITE(ninjakd2_bankselect_w) AM_RANGE(0xc203, 0xc203) AM_WRITE(ninjakd2_sprite_overdraw_w) AM_RANGE(0xc208, 0xc20c) AM_WRITE(ninjakd2_bg_ctrl_w) - AM_RANGE(0xc800, 0xcdff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xc800, 0xcdff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram") AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_SHARE("bg_videoram") AM_RANGE(0xe000, 0xf9ff) AM_RAM @@ -384,7 +384,7 @@ static ADDRESS_MAP_START( mnight_main_cpu, AS_PROGRAM, 8, ninjakd2_state ) AM_RANGE(0xda00, 0xdfff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_SHARE("bg_videoram") AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram") - AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf800, 0xf800) AM_READ_PORT("KEYCOIN") AM_RANGE(0xf801, 0xf801) AM_READ_PORT("PAD1") AM_RANGE(0xf802, 0xf802) AM_READ_PORT("PAD2") @@ -401,7 +401,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( robokid_main_cpu, AS_PROGRAM, 8, ninjakd2_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xc000, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram") AM_RANGE(0xd000, 0xd3ff) AM_READWRITE(robokid_bg2_videoram_r, robokid_bg2_videoram_w) // banked AM_RANGE(0xd400, 0xd7ff) AM_READWRITE(robokid_bg1_videoram_r, robokid_bg1_videoram_w) // banked @@ -442,7 +442,7 @@ static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8, ninjakd2_state ) AM_RANGE(0xc800, 0xcbff) AM_READWRITE(robokid_bg1_videoram_r, robokid_bg1_videoram_w) // banked AM_RANGE(0xcc00, 0xcfff) AM_READWRITE(robokid_bg2_videoram_r, robokid_bg2_videoram_w) // banked AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram") - AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xd800, 0xdfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe000, 0xf9ff) AM_RAM AM_RANGE(0xfa00, 0xffff) AM_RAM AM_SHARE("spriteram") ADDRESS_MAP_END @@ -948,7 +948,8 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state ) MCFG_SCREEN_VBLANK_DRIVER(ninjakd2_state, screen_eof_ninjakd2) MCFG_GFXDECODE_ADD("gfxdecode", ninjakd2) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1005,7 +1006,9 @@ static MACHINE_CONFIG_DERIVED( robokid, mnight ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", robokid) - MCFG_PALETTE_LENGTH(0x400) // RAM is this large, but still only 0x300 colors used + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 0x400) // RAM is this large, but still only 0x300 colors used + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid) MCFG_SCREEN_MODIFY("screen") diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index b566aecb155..d08d3bac98b 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -814,7 +814,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ninjaw) - MCFG_PALETTE_LENGTH(4096*3) + MCFG_PALETTE_ADD("palette", 4096*3) MCFG_DEFAULT_LAYOUT(layout_darius) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -846,9 +846,12 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) MCFG_TC0100SCN_ADD("tc0100scn_3", darius2_tc0100scn_intf_r) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2_tc0110pcr_intf_l) + MCFG_TC0110PCR_PALETTE("palette") MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2_tc0110pcr_intf_m) + MCFG_TC0110PCR_PALETTE("palette") MCFG_TC0110PCR_ADD("tc0110pcr_3", darius2_tc0110pcr_intf_r) - + MCFG_TC0110PCR_PALETTE("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -897,7 +900,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ninjaw) - MCFG_PALETTE_LENGTH(4096*3) + MCFG_PALETTE_ADD("palette", 4096*3) MCFG_DEFAULT_LAYOUT(layout_darius) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -929,8 +932,11 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state ) MCFG_TC0100SCN_ADD("tc0100scn_3", darius2_tc0100scn_intf_r) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2_tc0110pcr_intf_l) + MCFG_TC0110PCR_PALETTE("palette") MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2_tc0110pcr_intf_m) + MCFG_TC0110PCR_PALETTE("palette") MCFG_TC0110PCR_ADD("tc0110pcr_3", darius2_tc0110pcr_intf_r) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c index 86f8204b23b..9e4495f7a83 100644 --- a/src/mame/drivers/nitedrvr.c +++ b/src/mame/drivers/nitedrvr.c @@ -154,9 +154,8 @@ static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state ) MCFG_SCREEN_UPDATE_DRIVER(nitedrvr_state, screen_update_nitedrvr) MCFG_GFXDECODE_ADD("gfxdecode", nitedrvr) - 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/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index eb2d546d59b..73d604a3fed 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) MCFG_SCREEN_UPDATE_DRIVER(niyanpai_state, screen_update_niyanpai) - MCFG_PALETTE_LENGTH(256*3) + MCFG_PALETTE_ADD("palette", 256*3) /* sound hardware */ diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c index 4f3dba0eb19..4c238036d49 100644 --- a/src/mame/drivers/nmg5.c +++ b/src/mame/drivers/nmg5.c @@ -354,7 +354,7 @@ WRITE8_MEMBER(nmg5_state::oki_banking_w) static ADDRESS_MAP_START( nmg5_map, AS_PROGRAM, 16, nmg5_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x120000, 0x12ffff) AM_RAM - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x180000, 0x180001) AM_WRITE(nmg5_soundlatch_w) AM_RANGE(0x180002, 0x180003) AM_WRITENOP @@ -374,7 +374,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pclubys_map, AS_PROGRAM, 16, nmg5_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM - AM_RANGE(0x440000, 0x4407ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x440000, 0x4407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x460000, 0x4607ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x480000, 0x480001) AM_WRITE(nmg5_soundlatch_w) AM_RANGE(0x480002, 0x480003) AM_WRITENOP @@ -1020,8 +1020,8 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state ) MCFG_SCREEN_UPDATE_DRIVER(nmg5_state, screen_update_nmg5) MCFG_GFXDECODE_ADD("gfxdecode", nmg5) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 1); @@ -1029,6 +1029,7 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state ) decospr_device::set_flipallx(*device, 1); decospr_device::set_offsets(*device, 0,8); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index 82683a14326..ae9ae793095 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -310,7 +310,7 @@ static ADDRESS_MAP_START( vandyke_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c007) AM_WRITE(vandyke_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */ @@ -329,7 +329,7 @@ static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x080010, 0x08001d) AM_WRITE(vandykeb_scroll_w) /* 10, 12, 1a, 1c */ AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c007) AM_WRITENOP /* just in case... */ AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x094000, 0x097fff) AM_RAM /* what is this? */ @@ -347,7 +347,7 @@ static ADDRESS_MAP_START( manybloc_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x08001c, 0x08001d) AM_WRITENOP /* See notes at the top of the driver */ AM_RANGE(0x08001e, 0x08001f) AM_READWRITE(soundlatch2_word_r,soundlatch_word_w) - AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0883ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09cfff) AM_RAM_WRITE(manybloc_scroll_w) AM_SHARE("scrollram") AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") @@ -366,7 +366,7 @@ static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16, nmk16_state ) // AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w) AM_RANGE(0x080202, 0x080203) AM_READ_PORT("IN2") - AM_RANGE(0x088000, 0x0883ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0883ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM /* Unused txvideoram area? */ @@ -401,7 +401,7 @@ static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number? AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ?? AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") @@ -418,7 +418,7 @@ static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number? AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_mustb_w) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ?? AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") @@ -436,7 +436,7 @@ static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number? AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ?? AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") @@ -457,7 +457,7 @@ static ADDRESS_MAP_START( acrobatm_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0xc0016, 0xc0017) AM_WRITENOP AM_RANGE(0xc0018, 0xc0019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0xc001e, 0xc001f) AM_DEVWRITE("nmk004", nmk004_device, write) - AM_RANGE(0xc4000, 0xc45ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xc4000, 0xc45ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc8000, 0xc8007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0xcc000, 0xcffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0xd4000, 0xd47ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") @@ -473,7 +473,7 @@ static ADDRESS_MAP_START( bioship_map, AS_PROGRAM, 16, nmk16_state ) // AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) AM_RANGE(0x084000, 0x084001) AM_WRITE(bioship_bank_w) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(bioshipbg_scroll_w) AM_RANGE(0x08c010, 0x08c017) AM_RAM_WRITE(bioship_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") @@ -652,7 +652,7 @@ static ADDRESS_MAP_START( hachamf_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) /* Video Region */ - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") @@ -884,7 +884,7 @@ static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE("nmk004", nmk004_device, write) AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w) - AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") ADDRESS_MAP_END @@ -907,7 +907,7 @@ static ADDRESS_MAP_START( tdragonb_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ AM_RANGE(0x0c001e, 0x0c001f) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_mustb_w) AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w) - AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") ADDRESS_MAP_END @@ -923,7 +923,7 @@ static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(ssmissin_sound_w) AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE(nmk_scroll_w) - AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x0d0000, 0x0d07ff) AM_MIRROR(0x1800) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") //mirror for airattck ADDRESS_MAP_END @@ -948,7 +948,7 @@ static ADDRESS_MAP_START( strahl_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x8001e, 0x8001f) AM_DEVWRITE("nmk004", nmk004_device, write) AM_RANGE(0x84000, 0x84007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x88000, 0x88007) AM_RAM_WRITE(nmk_scroll_2_w) - AM_RANGE(0x8c000, 0x8c7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x8c000, 0x8c7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x90000, 0x93fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x94000, 0x97fff) AM_RAM_WRITE(nmk_fgvideoram_w) AM_SHARE("nmk_fgvideoram") AM_RANGE(0x9c000, 0x9c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") @@ -966,7 +966,7 @@ static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE(nmk_scroll_w) AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_SHARE("nmk_txvideoram") @@ -984,7 +984,7 @@ static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE("nmk004", nmk004_device, write) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08c000, 0x08c1ff) AM_WRITEONLY AM_SHARE("scrollram") AM_RANGE(0x08c200, 0x08c3ff) AM_WRITEONLY AM_SHARE("scrollramy") AM_RANGE(0x08c400, 0x08c7ff) AM_WRITEONLY // unknown @@ -1004,7 +1004,7 @@ static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x100016, 0x100017) AM_WRITE(macross2_sound_reset_w) /* Z80 reset */ AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */ - AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram") AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy") @@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable or z80 sound reset like in Macross 2? */ AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */ - AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x120000, 0x1207ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_SHARE("scrollram") AM_RANGE(0x130200, 0x1303ff) AM_RAM AM_SHARE("scrollramy") @@ -1092,7 +1092,7 @@ static ADDRESS_MAP_START( bjtwin_map, AS_PROGRAM, 16, nmk16_state ) AM_RANGE(0x084000, 0x084001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) AM_RANGE(0x084010, 0x084011) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) AM_RANGE(0x084020, 0x08402f) AM_DEVWRITE("nmk112", nmk112_device, okibank_lsb_w) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") @@ -1118,7 +1118,7 @@ static ADDRESS_MAP_START( atombjt_map, AS_PROGRAM, 16, nmk16_state ) // AM_RANGE(0x084000, 0x084001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // AM_RANGE(0x084010, 0x084011) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) // AM_RANGE(0x084020, 0x08402f) AM_DEVWRITE("nmk112", nmk112_device, okibank_lsb_w) - AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w) AM_RANGE(0x094002, 0x094003) AM_WRITENOP /* IRQ enable? */ AM_RANGE(0x09c000, 0x09cfff) AM_MIRROR(0x1000) AM_RAM_WRITE(nmk_bgvideoram0_w) AM_SHARE("nmk_bgvideoram0") @@ -3654,8 +3654,8 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", tharrier) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) /* sound hardware */ @@ -3698,7 +3698,8 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", tharrier) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -3738,7 +3739,8 @@ static MACHINE_CONFIG_START( mustang, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -3782,7 +3784,8 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -3812,7 +3815,8 @@ static MACHINE_CONFIG_START( bioship, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", bioship) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,bioship) @@ -3854,7 +3858,8 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -3899,7 +3904,8 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -3930,7 +3936,8 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -3976,7 +3983,8 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -4003,7 +4011,8 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, tdragon_mcu_sim, attotime::from_hz(10000)) @@ -4049,7 +4058,8 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -4079,7 +4089,8 @@ static MACHINE_CONFIG_START( strahl, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_strahl) MCFG_GFXDECODE_ADD("gfxdecode", strahl) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,strahl) @@ -4121,7 +4132,8 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) MCFG_TIMER_DRIVER_ADD_PERIODIC("coinsim", nmk16_state, hachamf_mcu_sim, attotime::from_hz(10000)) @@ -4164,7 +4176,8 @@ static MACHINE_CONFIG_START( macross, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -4206,7 +4219,8 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) @@ -4248,7 +4262,8 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,gunnail) @@ -4294,7 +4309,8 @@ static MACHINE_CONFIG_START( macross2, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross2) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2) @@ -4337,7 +4353,8 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross2) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross2) @@ -4379,7 +4396,8 @@ static MACHINE_CONFIG_START( raphero, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross2) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,raphero) @@ -4421,7 +4439,8 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", bjtwin) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,bjtwin) @@ -4456,7 +4475,8 @@ static MACHINE_CONFIG_START( atombjt, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", atombjt) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,bjtwin) @@ -4748,7 +4768,7 @@ static ADDRESS_MAP_START( afega, AS_PROGRAM, 16, nmk16_state ) /**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..) /**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..) AM_RANGE(0x080020, 0x087fff) AM_WRITEONLY // -/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") // Palette +/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x088600, 0x08bfff) AM_WRITEONLY // /**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll0_w) AM_SHARE("afega_scroll_0") // Scroll /**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll1_w) AM_SHARE("afega_scroll_1") // @@ -4917,7 +4937,8 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", stagger1) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,afega) @@ -5002,7 +5023,8 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", grdnstrm) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk) @@ -5037,7 +5059,8 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state ) MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk) MCFG_GFXDECODE_ADD("gfxdecode", macross) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(nmk16_state,macross) diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c index dc54d0047de..42519cf9214 100644 --- a/src/mame/drivers/norautp.c +++ b/src/mame/drivers/norautp.c @@ -577,7 +577,7 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 count = 0; - bitmap.fill(machine().pens[0], cliprect); //black pen + bitmap.fill(m_palette->pen(0), cliprect); //black pen for(y = 0; y < 8; y++) { @@ -589,7 +589,7 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 int tile = m_np_vram[count] & 0x3f; int colour = (m_np_vram[count] & 0xc0) >> 6; - m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, tile, colour, 0, 0, (x * 32) + 8, y * 32); + m_gfxdecode->gfx(1)->opaque(m_palette,bitmap,cliprect, tile, colour, 0, 0, (x * 32) + 8, y * 32); count+=2; } @@ -601,7 +601,7 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 int tile = m_np_vram[count] & 0x3f; int colour = (m_np_vram[count] & 0xc0) >> 6; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile, colour, 0, 0, x * 16, y * 32); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile, colour, 0, 0, x * 16, y * 32); count++; } @@ -612,17 +612,17 @@ UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 } -void norautp_state::palette_init() +PALETTE_INIT_MEMBER(norautp_state, norautp) { /* 1st gfx bank */ - palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0xff)); /* blue */ - palette_set_color(machine(), 1, rgb_t(0xff, 0xff, 0x00)); /* yellow */ - palette_set_color(machine(), 2, rgb_t(0x00, 0x00, 0xff)); /* blue */ - palette_set_color(machine(), 3, rgb_t(0xff, 0xff, 0xff)); /* white */ - palette_set_color(machine(), 4, rgb_t(0xff, 0xff, 0xff)); /* white */ - palette_set_color(machine(), 5, rgb_t(0xff, 0x00, 0x00)); /* red */ - palette_set_color(machine(), 6, rgb_t(0xff, 0xff, 0xff)); /* white */ - palette_set_color(machine(), 7, rgb_t(0x00, 0x00, 0x00)); /* black */ + palette.set_pen_color(0, rgb_t(0x00, 0x00, 0xff)); /* blue */ + palette.set_pen_color(1, rgb_t(0xff, 0xff, 0x00)); /* yellow */ + palette.set_pen_color(2, rgb_t(0x00, 0x00, 0xff)); /* blue */ + palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); /* white */ + palette.set_pen_color(4, rgb_t(0xff, 0xff, 0xff)); /* white */ + palette.set_pen_color(5, rgb_t(0xff, 0x00, 0x00)); /* red */ + palette.set_pen_color(6, rgb_t(0xff, 0xff, 0xff)); /* white */ + palette.set_pen_color(7, rgb_t(0x00, 0x00, 0x00)); /* black */ } @@ -1273,7 +1273,8 @@ static MACHINE_CONFIG_START( noraut_base, norautp_state ) MCFG_GFXDECODE_ADD("gfxdecode", norautp) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(norautp_state, norautp) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c index deac152df9e..22a7977392d 100644 --- a/src/mame/drivers/nova2001.c +++ b/src/mame/drivers/nova2001.c @@ -693,9 +693,10 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state ) MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_nova2001) MCFG_GFXDECODE_ADD("gfxdecode", nova2001) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(BBGGRRII) - MCFG_PALETTE_INIT_OVERRIDE(nova2001_state,nova2001) + MCFG_PALETTE_INIT_OWNER(nova2001_state,nova2001) MCFG_VIDEO_START_OVERRIDE(nova2001_state,nova2001) /* sound hardware */ @@ -734,7 +735,8 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state ) MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_ninjakun) MCFG_GFXDECODE_ADD("gfxdecode", ninjakun) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_FORMAT(BBGGRRII) MCFG_VIDEO_START_OVERRIDE(nova2001_state,ninjakun) @@ -766,9 +768,10 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state ) MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_pkunwar) MCFG_GFXDECODE_ADD("gfxdecode", pkunwar) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(BBGGRRII) - MCFG_PALETTE_INIT_OVERRIDE(nova2001_state,nova2001) + MCFG_PALETTE_INIT_OWNER(nova2001_state,nova2001) MCFG_VIDEO_START_OVERRIDE(nova2001_state,pkunwar) /* sound hardware */ @@ -805,7 +808,8 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state ) MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_raiders5) MCFG_GFXDECODE_ADD("gfxdecode", raiders5) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_FORMAT(BBGGRRII) MCFG_VIDEO_START_OVERRIDE(nova2001_state,raiders5) diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c index d0f9e086c92..696ef232361 100644 --- a/src/mame/drivers/nsmpoker.c +++ b/src/mame/drivers/nsmpoker.c @@ -83,7 +83,7 @@ public: DECLARE_READ8_MEMBER(debug_r); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(nsmpoker); virtual void machine_reset(); UINT32 screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(nsmpoker_interrupt); @@ -141,7 +141,7 @@ UINT32 nsmpoker_state::screen_update_nsmpoker(screen_device &screen, bitmap_ind1 } -void nsmpoker_state::palette_init() +PALETTE_INIT_MEMBER(nsmpoker_state, nsmpoker) { } @@ -432,8 +432,8 @@ static MACHINE_CONFIG_START( nsmpoker, nsmpoker_state ) MCFG_GFXDECODE_ADD("gfxdecode", nsmpoker) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(nsmpoker_state, nsmpoker) MACHINE_CONFIG_END diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c index 8a80f31ec63..5deba72661a 100644 --- a/src/mame/drivers/nwk-tr.c +++ b/src/mame/drivers/nwk-tr.c @@ -286,7 +286,7 @@ WRITE32_MEMBER(nwktr_state::paletteram32_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; - palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); + m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } WRITE_LINE_MEMBER(nwktr_state::voodoo_vblank_0) @@ -299,7 +299,7 @@ UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bit { device_t *voodoo = machine().device("voodoo"); - bitmap.fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); voodoo_update(voodoo, bitmap, cliprect); @@ -770,12 +770,13 @@ static MACHINE_CONFIG_START( nwktr, nwktr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) MCFG_SCREEN_UPDATE_DRIVER(nwktr_state, screen_update_nwktr) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K001604_ADD("k001604", racingj_k001604_intf) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -792,6 +793,7 @@ static MACHINE_CONFIG_DERIVED( thrilld, nwktr ) MCFG_DEVICE_REMOVE("k001604") MCFG_K001604_ADD("k001604", thrilld_k001604_intf) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MACHINE_CONFIG_END /*****************************************************************************/ diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c index 93dc373c68e..3ca54f24dc3 100644 --- a/src/mame/drivers/nycaptor.c +++ b/src/mame/drivers/nycaptor.c @@ -846,7 +846,8 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state ) MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor) MCFG_GFXDECODE_ADD("gfxdecode", nycaptor) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ @@ -904,7 +905,8 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state ) MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor) MCFG_GFXDECODE_ADD("gfxdecode", nycaptor) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -958,7 +960,8 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state ) MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor) MCFG_GFXDECODE_ADD("gfxdecode", nycaptor) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c index c2af6264c2b..56b384a9987 100644 --- a/src/mame/drivers/offtwall.c +++ b/src/mame/drivers/offtwall.c @@ -370,7 +370,7 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", offtwall) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line)) MCFG_ATARI_VAD_PLAYFIELD(offtwall_state, get_playfield_tile_info) diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c index cd26b2c7a14..36d30eb18db 100644 --- a/src/mame/drivers/ohmygod.c +++ b/src/mame/drivers/ohmygod.c @@ -44,7 +44,7 @@ static ADDRESS_MAP_START( ohmygod_map, AS_PROGRAM, 16, ohmygod_state ) AM_RANGE(0x308000, 0x30ffff) AM_RAM AM_RANGE(0x400000, 0x400001) AM_WRITE(ohmygod_scrollx_w) AM_RANGE(0x400002, 0x400003) AM_WRITE(ohmygod_scrolly_w) - AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x6007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x703fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x704000, 0x707fff) AM_RAM AM_RANGE(0x708000, 0x70ffff) AM_RAM /* Work RAM */ @@ -331,8 +331,9 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state ) MCFG_SCREEN_UPDATE_DRIVER(ohmygod_state, screen_update_ohmygod) MCFG_GFXDECODE_ADD("gfxdecode", ohmygod) - MCFG_PALETTE_LENGTH(1024) - + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c index b1e4222498f..db7c06d9bc8 100644 --- a/src/mame/drivers/ojankohs.c +++ b/src/mame/drivers/ojankohs.c @@ -859,7 +859,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state ) MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs) MCFG_GFXDECODE_ADD("gfxdecode", ojankohs) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankohs) @@ -895,8 +895,8 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state ) MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs) MCFG_GFXDECODE_ADD("gfxdecode", ojankohs) - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT_OVERRIDE(ojankohs_state,ojankoy) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(ojankohs_state,ojankoy) MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy) @@ -932,7 +932,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state ) MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs) MCFG_GFXDECODE_ADD("gfxdecode", ojankohs) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy) @@ -967,7 +967,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 248-1) MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankoc) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoc) diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c index 290f24489b0..5cf557947b4 100644 --- a/src/mame/drivers/olibochu.c +++ b/src/mame/drivers/olibochu.c @@ -87,7 +87,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(olibochu); UINT32 screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(olibochu_scanline); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); @@ -97,12 +97,12 @@ public: -void olibochu_state::palette_init() +PALETTE_INIT_MEMBER(olibochu_state, olibochu) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { UINT8 pen; int bit0, bit1, bit2, r, g, b; @@ -131,7 +131,7 @@ void olibochu_state::palette_init() bit1 = BIT(color_prom[pen], 7); b = 0x4f * bit0 + 0xa8 * bit1; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -199,7 +199,7 @@ void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre } - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); @@ -225,7 +225,7 @@ void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre } - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0); @@ -469,8 +469,8 @@ static MACHINE_CONFIG_START( olibochu, olibochu_state ) MCFG_SCREEN_UPDATE_DRIVER(olibochu_state, screen_update_olibochu) MCFG_GFXDECODE_ADD("gfxdecode", olibochu) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(olibochu_state, olibochu) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c index ad07c60c2ae..def23ab4580 100644 --- a/src/mame/drivers/oneshot.c +++ b/src/mame/drivers/oneshot.c @@ -101,7 +101,7 @@ WRITE16_MEMBER(oneshot_state::soundbank_w) static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16, oneshot_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x087fff) AM_RAM - AM_RANGE(0x0c0000, 0x0c07ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c0000, 0x0c07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x120000, 0x120fff) AM_RAM AM_SHARE("sprites") AM_RANGE(0x180000, 0x180fff) AM_RAM_WRITE(oneshot_mid_videoram_w) AM_SHARE("mid_videoram") // some people , girl etc. AM_RANGE(0x181000, 0x181fff) AM_RAM_WRITE(oneshot_fg_videoram_w) AM_SHARE("fg_videoram") // credits etc. @@ -373,8 +373,8 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state ) MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_oneshot) MCFG_GFXDECODE_ADD("gfxdecode", oneshot) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c index 9ca528c9eac..0c14f63a8cb 100644 --- a/src/mame/drivers/onetwo.c +++ b/src/mame/drivers/onetwo.c @@ -151,7 +151,7 @@ void onetwo_state::set_color(int offset) r = m_paletteram[offset] & 0x1f; g = m_paletteram2[offset] & 0x1f; b = ((m_paletteram[offset] & 0x60) >> 2) | ((m_paletteram2[offset] & 0xe0) >> 5); - palette_set_color_rgb(machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b)); } WRITE8_MEMBER(onetwo_state::palette1_w) @@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state ) MCFG_SCREEN_UPDATE_DRIVER(onetwo_state, screen_update_onetwo) MCFG_GFXDECODE_ADD("gfxdecode", onetwo) - MCFG_PALETTE_LENGTH(0x80) + MCFG_PALETTE_ADD("palette", 0x80) /* sound hardware */ diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c index 140f6300daf..009e3658884 100644 --- a/src/mame/drivers/opwolf.c +++ b/src/mame/drivers/opwolf.c @@ -361,7 +361,7 @@ static ADDRESS_MAP_START( opwolf_map, AS_PROGRAM, 16, opwolf_state ) AM_RANGE(0x0ff802, 0x0ff803) AM_WRITE(opwolf_cchip_status_w) AM_RANGE(0x0ffc00, 0x0ffc01) AM_WRITE(opwolf_cchip_bank_w) AM_RANGE(0x100000, 0x107fff) AM_RAM - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */ AM_RANGE(0x380000, 0x380003) AM_WRITE(opwolf_spritectrl_w) // usually 0x4, changes when you fire AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */ @@ -382,7 +382,7 @@ static ADDRESS_MAP_START( opwolfb_map, AS_PROGRAM, 16, opwolf_state ) AM_RANGE(0x0f0008, 0x0f000b) AM_READ(opwolf_in_r) /* coins and buttons */ AM_RANGE(0x0ff000, 0x0fffff) AM_READWRITE(cchip_r,cchip_w) AM_RANGE(0x100000, 0x107fff) AM_RAM - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */ AM_RANGE(0x380000, 0x380003) AM_WRITE(opwolf_spritectrl_w) // usually 0x4, changes when you fire AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */ @@ -736,12 +736,15 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state ) MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf) MCFG_GFXDECODE_ADD("gfxdecode", opwolf) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_PC080SN_ADD("pc080sn", opwolf_pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") MCFG_PC090OJ_ADD("pc090oj", opwolf_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -792,12 +795,15 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf) MCFG_GFXDECODE_ADD("gfxdecode", opwolfb) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_PC080SN_ADD("pc080sn", opwolf_pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") MCFG_PC090OJ_ADD("pc090oj", opwolf_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index 9f439a24f25..1d1596e89ac 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -302,8 +302,8 @@ static MACHINE_CONFIG_START( orbit, orbit_state ) MCFG_SCREEN_UPDATE_DRIVER(orbit_state, screen_update_orbit) MCFG_GFXDECODE_ADD("gfxdecode", orbit) - 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/mame/drivers/othello.c b/src/mame/drivers/othello.c index f3351491237..a96a3c2cd94 100644 --- a/src/mame/drivers/othello.c +++ b/src/mame/drivers/othello.c @@ -98,7 +98,7 @@ public: DECLARE_WRITE8_MEMBER(n7751_rom_control_w); virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(othello); }; @@ -125,22 +125,22 @@ static MC6845_UPDATE_ROW( update_row ) } } -void othello_state::palette_init() +PALETTE_INIT_MEMBER(othello_state, othello) { int i; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { - palette_set_color(machine(), i, rgb_t(0xff, 0x00, 0xff)); + palette.set_pen_color(i, rgb_t(0xff, 0x00, 0xff)); } /* only colors 2,3,7,9,c,d,f are used */ - palette_set_color(machine(), 0x02, rgb_t(0x00, 0xff, 0x00)); - palette_set_color(machine(), 0x03, rgb_t(0xff, 0x7f, 0x00)); - palette_set_color(machine(), 0x07, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 0x09, rgb_t(0xff, 0x00, 0x00)); - palette_set_color(machine(), 0x0c, rgb_t(0x00, 0x00, 0xff)); - palette_set_color(machine(), 0x0d, rgb_t(0x7f, 0x7f, 0x00)); - palette_set_color(machine(), 0x0f, rgb_t(0xff, 0xff, 0xff)); + palette.set_pen_color(0x02, rgb_t(0x00, 0xff, 0x00)); + palette.set_pen_color(0x03, rgb_t(0xff, 0x7f, 0x00)); + palette.set_pen_color(0x07, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(0x09, rgb_t(0xff, 0x00, 0x00)); + palette.set_pen_color(0x0c, rgb_t(0x00, 0x00, 0xff)); + palette.set_pen_color(0x0d, rgb_t(0x7f, 0x7f, 0x00)); + palette.set_pen_color(0x0f, rgb_t(0xff, 0xff, 0xff)); } static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, othello_state ) @@ -434,7 +434,8 @@ static MACHINE_CONFIG_START( othello, othello_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*6-1, 0*8, 64*8-1) MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) - MCFG_PALETTE_LENGTH(0x10) + MCFG_PALETTE_ADD("palette", 0x10) + MCFG_PALETTE_INIT_OWNER(othello_state, othello) MCFG_MC6845_ADD("crtc", H46505, "screen", 1000000 /* ? MHz */, h46505_intf) /* H46505 @ CPU clock */ diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index 62649aaeac2..cae3db70864 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -691,12 +691,13 @@ static MACHINE_CONFIG_START( othunder, othunder_state ) MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update_othunder) MCFG_GFXDECODE_ADD("gfxdecode", othunder) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_TC0100SCN_ADD("tc0100scn", othunder_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", othunder_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index b3be0a48f69..08c9cae0eca 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -152,7 +152,7 @@ WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq_y_w) static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x040000, 0x043fff) AM_RAM /* work RAM */ - AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("INPUTS") AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("SYSTEM") AM_RANGE(0x0e0000, 0x0e0001) AM_WRITENOP /* unknown (always 0x30) */ @@ -345,8 +345,6 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state ) MCFG_EEPROM_SERIAL_DATA(overdriv_default_eeprom, 128) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) @@ -355,16 +353,21 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state ) MCFG_SCREEN_UPDATE_DRIVER(overdriv_state, screen_update_overdriv) // MCFG_GFXDECODE_ADD("gfxdecode", overdriv) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K053246_ADD("k053246", overdriv_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K051316_ADD("k051316_1", overdriv_k051316_intf_1) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K051316_ADD("k051316_2", overdriv_k051316_intf_2) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K053250_ADD("k053250_1", "screen", 0, 0) MCFG_K053250_ADD("k053250_2", "screen", 0, 0) diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c index a9d54776810..9553f19d140 100644 --- a/src/mame/drivers/pacland.c +++ b/src/mame/drivers/pacland.c @@ -441,7 +441,8 @@ static MACHINE_CONFIG_START( pacland, pacland_state ) MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update_pacland) MCFG_GFXDECODE_ADD("gfxdecode", pacland) - MCFG_PALETTE_LENGTH(256*4+256*4+64*16) + MCFG_PALETTE_ADD("palette", 256*4+256*4+64*16) + MCFG_PALETTE_INIT_OWNER(pacland_state, pacland) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c index a1ecf5c8c0a..5ad4764a0ff 100644 --- a/src/mame/drivers/pacman.c +++ b/src/mame/drivers/pacman.c @@ -3329,13 +3329,13 @@ static MACHINE_CONFIG_START( pacman, pacman_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", pacman) - MCFG_PALETTE_LENGTH(128*4) + MCFG_PALETTE_ADD("palette", 128*4) + MCFG_PALETTE_INIT_OWNER(pacman_state,pacman) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman) - MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman) MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman) /* sound hardware */ diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c index 6a7a0eefc5c..275379285ad 100644 --- a/src/mame/drivers/pandoras.c +++ b/src/mame/drivers/pandoras.c @@ -355,8 +355,8 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state ) MCFG_SCREEN_UPDATE_DRIVER(pandoras_state, screen_update_pandoras) MCFG_GFXDECODE_ADD("gfxdecode", pandoras) - MCFG_PALETTE_LENGTH(16*16+16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16) + MCFG_PALETTE_INIT_OWNER(pandoras_state, pandoras) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c index 5c8fbb9031e..f607defcb7e 100644 --- a/src/mame/drivers/panicr.c +++ b/src/mame/drivers/panicr.c @@ -108,7 +108,7 @@ public: TILE_GET_INFO_MEMBER(get_txttile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(panicr); UINT32 screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(panicr_scanline); void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect ); @@ -131,14 +131,11 @@ public: ***************************************************************************/ -void panicr_state::palette_init() +PALETTE_INIT_MEMBER(panicr_state, panicr) { const UINT8 *color_prom = memregion("proms")->base(); int i; - /* allocate the colortable */ - machine().colortable = colortable_alloc(machine(), 0x100); - /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { @@ -146,7 +143,7 @@ void panicr_state::palette_init() int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); - colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ @@ -162,7 +159,7 @@ void panicr_state::palette_init() else ctabentry = (color_prom[i] & 0x3f) | 0x80; - colortable_entry_set_value(machine().colortable, i, ctabentry); + palette.set_pen_indirect(i, ctabentry); } // tile lookup table @@ -170,9 +167,8 @@ void panicr_state::palette_init() { UINT8 ctabentry = (color_prom[i+0x100] & 0x3f) | 0x00; - colortable_entry_set_value(machine().colortable, ((i&0x0f) + ((i&0xf0)<<1)) +0x200, ctabentry); - colortable_entry_set_value(machine().colortable, ((i&0x0f) + ((i&0xf0)<<1)) +0x210, ctabentry); - + palette.set_pen_indirect(((i&0x0f) + ((i&0xf0)<<1)) +0x200, ctabentry); + palette.set_pen_indirect(((i&0x0f) + ((i&0xf0)<<1)) +0x210, ctabentry); } // sprite lookup table @@ -185,8 +181,7 @@ void panicr_state::palette_init() else ctabentry = (color_prom[i+0x200] & 0x3f) | 0x40; - colortable_entry_set_value(machine().colortable, i+0x100, ctabentry); - + palette.set_pen_indirect(i+0x100, ctabentry); } } @@ -246,7 +241,7 @@ void panicr_state::video_start() m_infotilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_infotile_info_2),this),TILEMAP_SCAN_ROWS,16,16,1024,16 ); m_txttilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(panicr_state::get_txttile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32 ); - colortable_configure_tilemap_groups(machine().colortable, m_txttilemap, m_gfxdecode->gfx(0), 0); + m_palette->configure_tilemap_groups(*m_txttilemap, *m_gfxdecode->gfx(0), 0); } void panicr_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect ) @@ -279,10 +274,10 @@ void panicr_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect ) color = spriteram[offs+1] & 0x0f; sprite = spriteram[offs+0] | (*m_spritebank << 8); - m_gfxdecode->gfx(2)->transmask(bitmap,cliprect, + m_gfxdecode->gfx(2)->transmask(m_palette,bitmap,cliprect, sprite, color,flipx,flipy,x,y, - colortable_get_transpen_mask(machine().colortable, m_gfxdecode->gfx(2), color, 0)); + m_palette->transpen_mask(*m_gfxdecode->gfx(2), color, 0)); } } @@ -295,7 +290,7 @@ UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind16 &b // m_infotilemap_2->draw(screen, *m_temprender, m_tempbitmap_clip, 0,0); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_txttilemap->mark_all_dirty(); @@ -627,8 +622,8 @@ static MACHINE_CONFIG_START( panicr, panicr_state ) MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update_panicr) MCFG_GFXDECODE_ADD("gfxdecode", panicr) - MCFG_PALETTE_LENGTH(256*4) - + MCFG_PALETTE_ADD("palette", 256*4) + MCFG_PALETTE_INIT_OWNER(panicr_state, panicr) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c index 4c4e91b776b..912fbd8f53e 100644 --- a/src/mame/drivers/paradise.c +++ b/src/mame/drivers/paradise.c @@ -715,7 +715,7 @@ static MACHINE_CONFIG_START( paradise, paradise_state ) MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise) MCFG_GFXDECODE_ADD("gfxdecode", paradise) - MCFG_PALETTE_LENGTH(0x800 + 16) + MCFG_PALETTE_ADD("palette", 0x800 + 16) /* sound hardware */ diff --git a/src/mame/drivers/paranoia.c b/src/mame/drivers/paranoia.c index c5c3f10cc06..dcca9b8be81 100644 --- a/src/mame/drivers/paranoia.c +++ b/src/mame/drivers/paranoia.c @@ -201,9 +201,9 @@ static MACHINE_CONFIG_START( paranoia, paranoia_state ) MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242) MCFG_SCREEN_UPDATE_STATIC( pce ) - /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */ - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT( vce ) + /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */ + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_LEGACY( vce ) MCFG_VIDEO_START( pce ) diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c index 6c3bba3b0ee..3215fc0c527 100644 --- a/src/mame/drivers/parodius.c +++ b/src/mame/drivers/parodius.c @@ -43,9 +43,9 @@ WRITE8_MEMBER(parodius_state::bankedram_w) if (m_videobank & 0x01) { if (m_videobank & 0x04) - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset + 0x0800, data); + m_palette->write(space, offset + 0x0800, data); else - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); } else m_ram[offset] = data; @@ -286,8 +286,6 @@ static MACHINE_CONFIG_START( parodius, parodius_state ) /* NMIs are triggered by the 053260 */ /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -295,13 +293,17 @@ static MACHINE_CONFIG_START( parodius, parodius_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(parodius_state, screen_update_parodius) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", parodius_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", parodius_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c index c2f67e63d2a..8a4f456ebeb 100644 --- a/src/mame/drivers/pasha2.c +++ b/src/mame/drivers/pasha2.c @@ -155,10 +155,10 @@ WRITE16_MEMBER(pasha2_state::pasha2_palette_w) offset &= 0xff; color = (m_paletteram[offset] >> 8) | (m_paletteram[offset + 0x100] & 0xff00); - palette_set_color_rgb(machine(), offset * 2 + 0, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10)); + m_palette->set_pen_color(offset * 2 + 0, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10)); color = (m_paletteram[offset] & 0xff) | ((m_paletteram[offset + 0x100] & 0xff) << 8); - palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10)); + m_palette->set_pen_color(offset * 2 + 1, pal5bit(color), pal5bit(color >> 5), pal5bit(color >> 10)); } WRITE16_MEMBER(pasha2_state::vbuffer_set_w) @@ -429,7 +429,7 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state ) MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware */ diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c index 663fab985c0..fce8192b8f5 100644 --- a/src/mame/drivers/pass.c +++ b/src/mame/drivers/pass.c @@ -113,7 +113,7 @@ static ADDRESS_MAP_START( pass_map, AS_PROGRAM, 16, pass_state ) AM_RANGE(0x080000, 0x083fff) AM_RAM AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(pass_bg_videoram_w) AM_SHARE("bg_videoram") // Background AM_RANGE(0x210000, 0x213fff) AM_RAM_WRITE(pass_fg_videoram_w) AM_SHARE("fg_videoram") // Foreground - AM_RANGE(0x220000, 0x2203ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x220000, 0x2203ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x230000, 0x230001) AM_WRITE(soundlatch_word_w) AM_RANGE(0x230100, 0x230101) AM_READ_PORT("DSW") AM_RANGE(0x230200, 0x230201) AM_READ_PORT("INPUTS") @@ -251,7 +251,8 @@ static MACHINE_CONFIG_START( pass, pass_state ) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_GFXDECODE_ADD("gfxdecode", pass) diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c index ba1b1dfbf9b..4b7c67265d8 100644 --- a/src/mame/drivers/pastelg.c +++ b/src/mame/drivers/pastelg.c @@ -424,8 +424,8 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(pastelg_state, pastelg) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( threeds, pastelg_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) /* sound hardware */ diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c index 00353f67116..3c3df6b5372 100644 --- a/src/mame/drivers/pbaction.c +++ b/src/mame/drivers/pbaction.c @@ -90,7 +90,7 @@ static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8, pbaction_state ) AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(pbaction_videoram_w) AM_SHARE("videoram") AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(pbaction_colorram_w) AM_SHARE("colorram") AM_RANGE(0xe000, 0xe07f) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xe400, 0xe5ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xe400, 0xe5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w) AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2") AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM") @@ -293,8 +293,8 @@ static MACHINE_CONFIG_START( pbaction, pbaction_state ) MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction) MCFG_GFXDECODE_ADD("gfxdecode", pbaction) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c index 2349bc4de3e..d527ad551f4 100644 --- a/src/mame/drivers/pcktgal.c +++ b/src/mame/drivers/pcktgal.c @@ -241,7 +241,8 @@ static MACHINE_CONFIG_START( pcktgal, pcktgal_state ) MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgal) MCFG_GFXDECODE_ADD("gfxdecode", pcktgal) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(pcktgal_state, pcktgal) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c index e0068502022..6b66ea5983f 100644 --- a/src/mame/drivers/pcxt.c +++ b/src/mame/drivers/pcxt.c @@ -160,7 +160,7 @@ UINT32 pcxt_state::screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &b color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i; if(cliprect.contains(x*8+xi, y*8+yi)) - bitmap.pix32(y*8+yi, x*8+xi) = machine().pens[color]; + bitmap.pix32(y*8+yi, x*8+xi) = m_palette->pen(color); } } } diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c index 5cd746c5956..6aa2ae3e19a 100644 --- a/src/mame/drivers/pengo.c +++ b/src/mame/drivers/pengo.c @@ -383,13 +383,13 @@ static MACHINE_CONFIG_START( pengo, pengo_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", pengo) - MCFG_PALETTE_LENGTH(128*4) + MCFG_PALETTE_ADD("palette", 128*4) + MCFG_PALETTE_INIT_OWNER(pengo_state,pacman) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman) - MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman) MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo) /* sound hardware */ diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index 115e01c20b6..54a5d9ef466 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -280,10 +280,9 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void peplus_load_superdata(const char *bank_name); - void peplus_init(); + DECLARE_PALETTE_INIT(peplus); required_device<cpu_device> m_maincpu; required_device<i2cmem_device> m_i2cmem; required_device<gfxdecode_device> m_gfxdecode; @@ -347,7 +346,7 @@ WRITE8_MEMBER(peplus_state::peplus_bgcolor_w) { int i; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < m_palette->entries(); i++) { int bit0, bit1, bit2, r, g, b; @@ -369,7 +368,7 @@ WRITE8_MEMBER(peplus_state::peplus_bgcolor_w) bit2 = 0; b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0; - palette_set_color(machine(), (15 + (i*16)), rgb_t(r, g, b)); + m_palette->set_pen_color((15 + (i*16)), rgb_t(r, g, b)); } } @@ -591,7 +590,7 @@ READ8_MEMBER(peplus_state::peplus_sf000_r) /* Last Color in Every Palette is bgcolor */ READ8_MEMBER(peplus_state::peplus_bgcolor_r) { - return palette_get_color(machine(), 15); // Return bgcolor from First Palette + return m_palette->pen_color(15); // Return bgcolor from First Palette } READ8_MEMBER(peplus_state::peplus_dropdoor_r) @@ -998,7 +997,7 @@ UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &b return 0; } -void peplus_state::palette_init() +PALETTE_INIT_MEMBER(peplus_state, peplus) { const UINT8 *color_prom = memregion("proms")->base(); UINT32 proms_size = memregion("proms")->bytes(); @@ -1010,7 +1009,7 @@ void peplus_state::palette_init() */ int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0, bit1, bit2, r, g, b; @@ -1032,7 +1031,7 @@ void peplus_state::palette_init() bit2 = 0; b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -1345,7 +1344,8 @@ static MACHINE_CONFIG_START( peplus, peplus_state ) MCFG_SCREEN_UPDATE_DRIVER(peplus_state, screen_update_peplus) MCFG_GFXDECODE_ADD("gfxdecode", peplus) - MCFG_PALETTE_LENGTH(16*16*2) + MCFG_PALETTE_ADD("palette", 16*16*2) + MCFG_PALETTE_INIT_OWNER(peplus_state, peplus) MCFG_MC6845_ADD("crtc", R6545_1, "screen", MC6845_CLOCK, mc6845_intf) MCFG_X2404P_ADD("i2cmem") diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 9895986e2d9..789ec1948ca 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -316,7 +316,7 @@ ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16, pgm_state ) AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_SHARE("sram") /* Main Ram */ AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_READWRITE(pgm_videoram_r, pgm_videoram_w) AM_SHARE("videoram") /* IGS023 VIDEO CHIP */ - AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa011ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_SHARE("videoregs") /* Video Regs inc. Zoom Table */ AM_RANGE(0xc00002, 0xc00003) AM_READ(soundlatch_word_r) AM_WRITE(m68k_l1_w) @@ -529,7 +529,8 @@ MACHINE_CONFIG_FRAGMENT( pgmbase ) MCFG_SCREEN_VBLANK_DRIVER(pgm_state, screen_eof_pgm) MCFG_GFXDECODE_ADD("gfxdecode", pgm) - MCFG_PALETTE_LENGTH(0x1200/2) + MCFG_PALETTE_ADD("palette", 0x1200/2) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(pgm_state,pgm) diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c index fc59cb2b891..87ef4cff407 100644 --- a/src/mame/drivers/pgm2.c +++ b/src/mame/drivers/pgm2.c @@ -216,7 +216,7 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state ) MCFG_SCREEN_VBLANK_DRIVER(pgm2_state, screen_eof_pgm2) MCFG_GFXDECODE_ADD("gfxdecode", pgm2) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c index ab6aca43fb2..bc142a21a5c 100644 --- a/src/mame/drivers/phoenix.c +++ b/src/mame/drivers/phoenix.c @@ -462,9 +462,9 @@ static MACHINE_CONFIG_START( phoenix, phoenix_state ) MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix) MCFG_GFXDECODE_ADD("gfxdecode", phoenix) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,phoenix) + MCFG_PALETTE_INIT_OWNER(phoenix_state,phoenix) MCFG_VIDEO_START_OVERRIDE(phoenix_state,phoenix) /* sound hardware */ @@ -492,7 +492,8 @@ static MACHINE_CONFIG_DERIVED( pleiads, phoenix ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", pleiads) - MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,pleiads) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(phoenix_state,pleiads) /* sound hardware */ MCFG_TMS36XX_REPLACE("tms", 247) @@ -528,9 +529,9 @@ static MACHINE_CONFIG_START( survival, phoenix_state ) MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix) MCFG_GFXDECODE_ADD("gfxdecode", phoenix) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) - MCFG_PALETTE_INIT_OVERRIDE(phoenix_state,survival) + MCFG_PALETTE_INIT_OWNER(phoenix_state,survival) MCFG_VIDEO_START_OVERRIDE(phoenix_state,phoenix) /* sound hardware */ diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c index a812a498c49..4b1ed32987a 100644 --- a/src/mame/drivers/photon.c +++ b/src/mame/drivers/photon.c @@ -215,8 +215,8 @@ static MACHINE_CONFIG_START( photon, photon_state ) MCFG_SCREEN_SIZE(256+32, 192+32) MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update_photon) - 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/mame/drivers/photon2.c b/src/mame/drivers/photon2.c index df3b2cb8643..32fc35bcbd6 100644 --- a/src/mame/drivers/photon2.c +++ b/src/mame/drivers/photon2.c @@ -35,7 +35,7 @@ public: DECLARE_WRITE8_MEMBER(photon2_misc_w); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(photon2); UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_eof_spectrum(screen_device &screen, bool state); TIMER_DEVICE_CALLBACK_MEMBER(spec_interrupt_hack); @@ -89,9 +89,9 @@ static const rgb_t spectrum_palette[16] = { }; /* Initialise the palette */ -void photon2_state::palette_init() +PALETTE_INIT_MEMBER(photon2_state, photon2) { - palette_set_colors(machine(), 0, spectrum_palette, ARRAY_LENGTH(spectrum_palette)); + palette.set_pen_colors(0, spectrum_palette, ARRAY_LENGTH(spectrum_palette)); } void photon2_state::video_start() @@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( photon2, photon2_state ) MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum) MCFG_SCREEN_VBLANK_DRIVER(photon2_state, screen_eof_spectrum) - MCFG_PALETTE_LENGTH(16) - + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(photon2_state, photon2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c index a6cef441bb3..50510dc7adc 100644 --- a/src/mame/drivers/photoply.c +++ b/src/mame/drivers/photoply.c @@ -123,7 +123,7 @@ static MACHINE_CONFIG_START( photoply, photoply_state ) MCFG_FRAGMENT_ADD( pcat_common ) - MCFG_GFXDECODE_ADD("gfxdecode", photoply ) + MCFG_GFXDECODE_ADD("gfxdecode", photoply ) MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", NULL, true) MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w)) diff --git a/src/mame/drivers/pinball2k.c b/src/mame/drivers/pinball2k.c index f466347bc7c..809ad1698e5 100644 --- a/src/mame/drivers/pinball2k.c +++ b/src/mame/drivers/pinball2k.c @@ -136,7 +136,7 @@ void pinball2k_state::video_start() int i; for (i=0; i < 16; i++) { - palette_set_color(machine(), i, cga_palette[i]); + m_palette->set_pen_color(i, cga_palette[i]); } } @@ -145,7 +145,7 @@ void pinball2k_state::draw_char(bitmap_rgb32 &bitmap, const rectangle &cliprect, int i,j; const UINT8 *dp; int index = 0; - const pen_t *pens = gfx->machine().pens; + const pen_t *pens = m_palette->pens(); dp = gfx->get_data(ch); @@ -584,7 +584,7 @@ static MACHINE_CONFIG_START( mediagx, pinball2k_state ) MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", NULL, true) MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w)) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( mediagx, pinball2k_state ) MCFG_SCREEN_UPDATE_DRIVER(pinball2k_state, screen_update_mediagx) MCFG_GFXDECODE_ADD("gfxdecode", CGA) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c index 24acd7026e3..408cb85100b 100644 --- a/src/mame/drivers/pingpong.c +++ b/src/mame/drivers/pingpong.c @@ -456,8 +456,8 @@ static MACHINE_CONFIG_START( pingpong, pingpong_state ) MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong) MCFG_GFXDECODE_ADD("gfxdecode", pingpong) - MCFG_PALETTE_LENGTH(64*4+64*4) - + MCFG_PALETTE_ADD("palette", 64*4+64*4) + MCFG_PALETTE_INIT_OWNER(pingpong_state, pingpong) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c index 7b23922f6fc..0184867c2f3 100644 --- a/src/mame/drivers/pinkiri8.c +++ b/src/mame/drivers/pinkiri8.c @@ -167,7 +167,7 @@ void pinkiri8_state::draw_background(bitmap_ind16 &bitmap, const rectangle &clip attr = m_janshi_back_vram[count + 2] ^ 0xf0; col = (attr >> 4) | 0x10; - gfx->transpen(bitmap,cliprect, tile, col, 0, 0, x * 16, y * 8, 0); + gfx->transpen(m_palette,bitmap,cliprect, tile, col, 0, 0, x * 16, y * 8, 0); count += 4; } @@ -313,7 +313,7 @@ void pinkiri8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec { for (int xx=0;xx<width;xx++) { - gfx->transpen(bitmap,cliprect,spr_offs+count,col,0,0,(x+xx*16) -7 ,(y+yy*8)-33,0); + gfx->transpen(m_palette,bitmap,cliprect,spr_offs+count,col,0,0,(x+xx*16) -7 ,(y+yy*8)-33,0); count++; } } @@ -330,7 +330,7 @@ UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind1 int r = (val & 0x001f) >> 0; int g = (val & 0x03e0) >> 5; int b = (val & 0x7c00) >> 10; - palette_set_color_rgb(machine(), pen, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(pen, pal5bit(r), pal5bit(g), pal5bit(b)); } @@ -358,7 +358,7 @@ UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind1 #endif - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); draw_background(bitmap, cliprect); @@ -1095,7 +1095,7 @@ static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state ) MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8) MCFG_GFXDECODE_ADD("gfxdecode", pinkiri8) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0) diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c index 71986a0a038..c86b748d11a 100644 --- a/src/mame/drivers/pipedrm.c +++ b/src/mame/drivers/pipedrm.c @@ -286,7 +286,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pipedrm_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_RAM AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xc000, 0xcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd000, 0xffff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w) AM_SHARE("videoram") ADDRESS_MAP_END @@ -661,13 +661,15 @@ static MACHINE_CONFIG_START( pipedrm, pipedrm_state ) MCFG_SCREEN_UPDATE_DRIVER(pipedrm_state, screen_update_pipedrm) MCFG_GFXDECODE_ADD("gfxdecode", pipedrm) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_GFXREGION(2) MCFG_VSYSTEM_SPR2_SET_OFFSETS(-13, -6) MCFG_VSYSTEM_SPR2_SET_PRITYPE(3) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(pipedrm_state,pipedrm) @@ -706,7 +708,8 @@ static MACHINE_CONFIG_START( hatris, pipedrm_state ) MCFG_SCREEN_UPDATE_DRIVER(pipedrm_state, screen_update_fromance) MCFG_GFXDECODE_ADD("gfxdecode", hatris) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(pipedrm_state,hatris) diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c index f966deabf29..9619d5b7c8d 100644 --- a/src/mame/drivers/pipeline.c +++ b/src/mame/drivers/pipeline.c @@ -102,7 +102,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info); TILE_GET_INFO_MEMBER(get_tile_info2); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pipeline); UINT32 screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(protection_deferred_w); required_device<cpu_device> m_maincpu; @@ -168,7 +168,7 @@ WRITE8_MEMBER(pipeline_state::vram2_w) if(offset<0x300) { offset&=0xff; - palette_set_color_rgb(machine(), offset, pal6bit(m_palram[offset]), pal6bit(m_palram[offset+0x100]), pal6bit(m_palram[offset+0x200])); + m_palette->set_pen_color(offset, pal6bit(m_palram[offset]), pal6bit(m_palram[offset+0x100]), pal6bit(m_palram[offset+0x200])); } } } @@ -369,7 +369,7 @@ static const ay8910_interface ay8910_config = DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }; -void pipeline_state::palette_init() +PALETTE_INIT_MEMBER(pipeline_state, pipeline) { int r,g,b,i,c; UINT8 *prom1 = &memregion("proms")->base()[0x000]; @@ -384,7 +384,7 @@ void pipeline_state::palette_init() r*=36; g*=36; b*=85; - palette_set_color(machine(), 0x100+i, rgb_t(r, g, b)); + palette.set_pen_color(0x100+i, rgb_t(r, g, b)); } } @@ -419,8 +419,8 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state ) MCFG_GFXDECODE_ADD("gfxdecode", pipeline) - MCFG_PALETTE_LENGTH(0x100+0x100) - + MCFG_PALETTE_ADD("palette", 0x100+0x100) + MCFG_PALETTE_INIT_OWNER(pipeline_state, pipeline) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c index d895de932d2..0c597b7c527 100644 --- a/src/mame/drivers/pirates.c +++ b/src/mame/drivers/pirates.c @@ -158,7 +158,7 @@ static ADDRESS_MAP_START( pirates_map, AS_PROGRAM, 16, pirates_state ) // AM_RANGE(0x500800, 0x50080f) AM_WRITENOP AM_RANGE(0x600000, 0x600001) AM_WRITE(pirates_out_w) AM_RANGE(0x700000, 0x700001) AM_WRITEONLY AM_SHARE("scroll") // scroll reg - AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x803fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x900000, 0x90017f) AM_RAM // more of tilemaps ? AM_RANGE(0x900180, 0x90137f) AM_RAM_WRITE(pirates_tx_tileram_w) AM_SHARE("tx_tileram") AM_RANGE(0x901380, 0x902a7f) AM_RAM_WRITE(pirates_fg_tileram_w) AM_SHARE("fg_tileram") @@ -263,7 +263,8 @@ static MACHINE_CONFIG_START( pirates, pirates_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update_pirates) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c index 1513b9513d6..74edb2bca7b 100644 --- a/src/mame/drivers/pitnrun.c +++ b/src/mame/drivers/pitnrun.c @@ -252,7 +252,8 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state ) MCFG_SCREEN_UPDATE_DRIVER(pitnrun_state, screen_update_pitnrun) MCFG_GFXDECODE_ADD("gfxdecode", pitnrun) - MCFG_PALETTE_LENGTH(32*3) + MCFG_PALETTE_ADD("palette", 32*3) + MCFG_PALETTE_INIT_OWNER(pitnrun_state, pitnrun) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index b93e3c8c2e9..ce488e8aca3 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -119,7 +119,7 @@ static ADDRESS_MAP_START( pkscramble_map, AS_PROGRAM, 16, pkscram_state ) AM_RANGE(0x045000, 0x045fff) AM_RAM_WRITE(pkscramble_mdtilemap_w) AM_SHARE("mdtilemap_ram") // md tilemap (just a copy of fg?) AM_RANGE(0x046000, 0x046fff) AM_RAM_WRITE(pkscramble_bgtilemap_w) AM_SHARE("bgtilemap_ram") // bg tilemap AM_RANGE(0x047000, 0x047fff) AM_RAM // unused - AM_RANGE(0x048000, 0x048fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x048000, 0x048fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x049000, 0x049001) AM_READ_PORT("DSW") AM_RANGE(0x049004, 0x049005) AM_READ_PORT("INPUTS") AM_RANGE(0x049008, 0x049009) AM_WRITE(pkscramble_output_w) @@ -319,7 +319,8 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_GFXDECODE_ADD("gfxdecode", pkscram) diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c index 4078074f1bd..a30f5a71492 100644 --- a/src/mame/drivers/pktgaldx.c +++ b/src/mame/drivers/pktgaldx.c @@ -165,7 +165,7 @@ static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16, pktgaldx_state ) AM_RANGE(0x300000, 0x30000f) AM_RAM // ?? - AM_RANGE(0x330000, 0x330bff) AM_RAM_WRITE(paletteram_xbgr_word_be_w) AM_SHARE("paletteram") // extra colours? + AM_RANGE(0x330000, 0x330bff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // extra colours? ADDRESS_MAP_END @@ -341,17 +341,21 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(XBGR) + MCFG_GFXDECODE_ADD("gfxdecode", pktgaldx) MCFG_DECOCOMN_ADD("deco_common") MCFG_DECO16IC_ADD("tilegen1", pktgaldx_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_INTERFACE_SCRAMBLE(8,9, 4,5,6,7 ,1,0,3,2) // hopefully this is correct, nothing else uses this arrangement! @@ -385,7 +389,9 @@ static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(XBGR) + MCFG_GFXDECODE_ADD("gfxdecode", bootleg) /* sound hardware */ diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c index 7f3752a816e..205533b8df1 100644 --- a/src/mame/drivers/playch10.c +++ b/src/mame/drivers/playch10.c @@ -679,7 +679,8 @@ static MACHINE_CONFIG_START( playch10, playch10_state ) // video hardware MCFG_GFXDECODE_ADD("gfxdecode", playch10) - MCFG_PALETTE_LENGTH(256+8*4*16) + MCFG_PALETTE_ADD("palette", 256+8*4*16) + MCFG_PALETTE_INIT_OWNER(playch10_state, playch10) MCFG_DEFAULT_LAYOUT(layout_dualhuov) MCFG_SCREEN_ADD("top", RASTER) diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c index eb34e3bb05c..657af486f09 100644 --- a/src/mame/drivers/playmark.c +++ b/src/mame/drivers/playmark.c @@ -250,7 +250,7 @@ static ADDRESS_MAP_START( wbeachvl_main_map, AS_PROGRAM, 16, playmark_state ) AM_RANGE(0x71001a, 0x71001b) AM_READ_PORT("P4") // AM_RANGE(0x71001c, 0x71001d) AM_READ(playmark_snd_status???) // AM_RANGE(0x71001e, 0x71001f) AM_WRITENOP//playmark_snd_command_w }, - AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x780000, 0x780fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xff0000, 0xffffff) AM_RAM ADDRESS_MAP_END @@ -1059,7 +1059,8 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state ) MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin) MCFG_GFXDECODE_ADD("gfxdecode", playmark) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_VIDEO_START_OVERRIDE(playmark_state,bigtwin) @@ -1093,7 +1094,8 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state ) MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb) MCFG_GFXDECODE_ADD("gfxdecode", bigtwinb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_VIDEO_START_OVERRIDE(playmark_state,bigtwinb) @@ -1130,7 +1132,8 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state ) MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl) MCFG_GFXDECODE_ADD("gfxdecode", wbeachvl) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_VIDEO_START_OVERRIDE(playmark_state,wbeachvl) @@ -1164,7 +1167,8 @@ static MACHINE_CONFIG_START( excelsr, playmark_state ) MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr) MCFG_GFXDECODE_ADD("gfxdecode", excelsr) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_VIDEO_START_OVERRIDE(playmark_state,excelsr) @@ -1201,7 +1205,8 @@ static MACHINE_CONFIG_START( hotmind, playmark_state ) MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) MCFG_GFXDECODE_ADD("gfxdecode", hrdtimes) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_VIDEO_START_OVERRIDE(playmark_state,hotmind) @@ -1239,7 +1244,8 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state ) MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) MCFG_GFXDECODE_ADD("gfxdecode", hrdtimes) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_VIDEO_START_OVERRIDE(playmark_state,hrdtimes) diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c index e42d824d4b9..c8e5b688fdc 100644 --- a/src/mame/drivers/plygonet.c +++ b/src/mame/drivers/plygonet.c @@ -298,7 +298,7 @@ WRITE32_MEMBER(polygonet_state::plygonet_palette_w) g = (m_generic_paletteram_32[offset] >> 8) & 0xff; b = (m_generic_paletteram_32[offset] >> 0) & 0xff; - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } @@ -676,7 +676,7 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state ) MCFG_SCREEN_VISIBLE_AREA(64, 64+368-1, 0, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(polygonet_state, screen_update_polygonet) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_K053936_ADD("k053936", polygonet_k053936_intf) diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c index bad860f112e..51fec6fe009 100644 --- a/src/mame/drivers/pokechmp.c +++ b/src/mame/drivers/pokechmp.c @@ -92,8 +92,8 @@ static ADDRESS_MAP_START( pokechmp_map, AS_PROGRAM, 8, pokechmp_state ) AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW") AM_WRITE(pokechmp_bank_w) /* Extra on Poke Champ (not on Pocket Gal) */ - AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) AM_SHARE("paletteram2") - AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) AM_SHARE("paletteram") + AM_RANGE(0x2000, 0x23ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0x2400, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xffff) AM_ROMBANK("fixed") @@ -221,8 +221,8 @@ static MACHINE_CONFIG_START( pokechmp, pokechmp_state ) MCFG_SCREEN_UPDATE_DRIVER(pokechmp_state, screen_update_pokechmp) MCFG_GFXDECODE_ADD("gfxdecode", pokechmp) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c index f4acdba9487..172775dab93 100644 --- a/src/mame/drivers/poker72.c +++ b/src/mame/drivers/poker72.c @@ -34,7 +34,7 @@ public: DECLARE_DRIVER_INIT(poker72); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(poker72); UINT32 screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -62,7 +62,7 @@ UINT32 poker72_state::screen_update_poker72(screen_device &screen, bitmap_ind16 tile|= m_tile_bank << 12; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,color,fx,fy,x*8,y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,color,fx,fy,x*8,y*8); count+=2; } @@ -80,7 +80,7 @@ WRITE8_MEMBER(poker72_state::poker72_paletteram_w) g = m_pal[(offset & 0x3ff)+0x400] & 0x3f; b = m_pal[(offset & 0x3ff)+0x800] & 0x3f; - palette_set_color_rgb( machine(), offset & 0x3ff, pal6bit(r), pal6bit(g), pal6bit(b)); + m_palette->set_pen_color( offset & 0x3ff, pal6bit(r), pal6bit(g), pal6bit(b)); } WRITE8_MEMBER(poker72_state::output_w) @@ -322,7 +322,7 @@ static GFXDECODE_START( poker72 ) GFXDECODE_END /* default 444 palette for debug purpose */ -void poker72_state::palette_init() +PALETTE_INIT_MEMBER(poker72_state, poker72) { int x,r,g,b; @@ -331,7 +331,7 @@ void poker72_state::palette_init() r = (x & 0xf)*0x10; g = ((x & 0x3c)>>2)*0x10; b = ((x & 0xf0)>>4)*0x10; - palette_set_color(machine(),x,rgb_t(r,g,b)); + palette.set_pen_color(x,rgb_t(r,g,b)); } } @@ -370,8 +370,8 @@ static MACHINE_CONFIG_START( poker72, poker72_state ) MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72) MCFG_GFXDECODE_ADD("gfxdecode", poker72) - MCFG_PALETTE_LENGTH(0xe00) - + MCFG_PALETTE_ADD("palette", 0xe00) + MCFG_PALETTE_INIT_OWNER(poker72_state, poker72) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index 8f9c2e4cd83..fa768b53cfb 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -919,10 +919,10 @@ static MACHINE_CONFIG_START( polepos, polepos_state ) MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos) MCFG_GFXDECODE_ADD("gfxdecode", polepos) - MCFG_PALETTE_LENGTH(0x0f00) + MCFG_PALETTE_ADD("palette", 0x0f00) MCFG_DEFAULT_LAYOUT(layout_polepos) - MCFG_PALETTE_INIT_OVERRIDE(polepos_state,polepos) + MCFG_PALETTE_INIT_OWNER(polepos_state,polepos) MCFG_VIDEO_START_OVERRIDE(polepos_state,polepos) /* sound hardware */ @@ -998,10 +998,10 @@ static MACHINE_CONFIG_START( topracern, polepos_state ) MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos) MCFG_GFXDECODE_ADD("gfxdecode", polepos) - MCFG_PALETTE_LENGTH(0x0f00) + MCFG_PALETTE_ADD("palette", 0x0f00) MCFG_DEFAULT_LAYOUT(layout_topracer) - MCFG_PALETTE_INIT_OVERRIDE(polepos_state,polepos) + MCFG_PALETTE_INIT_OWNER(polepos_state,polepos) MCFG_VIDEO_START_OVERRIDE(polepos_state,polepos) /* sound hardware */ diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index c8ba9c262e2..d3e870e4b3c 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( policetr, policetr_state ) MCFG_SCREEN_VISIBLE_AREA(0, 393, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(policetr_state, screen_update_policetr) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c index e952c1209b8..2b55a37ef23 100644 --- a/src/mame/drivers/polyplay.c +++ b/src/mame/drivers/polyplay.c @@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( polyplay, polyplay_state ) MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay) MCFG_GFXDECODE_ADD("gfxdecode", polyplay) - MCFG_PALETTE_LENGTH(10) - + MCFG_PALETTE_ADD("palette", 10) + MCFG_PALETTE_INIT_OWNER(polyplay_state, polyplay) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c index f4bb0e1dc2b..71d06d18b58 100644 --- a/src/mame/drivers/poolshrk.c +++ b/src/mame/drivers/poolshrk.c @@ -202,12 +202,12 @@ static GFXDECODE_START( poolshrk ) GFXDECODE_END -void poolshrk_state::palette_init() +PALETTE_INIT_MEMBER(poolshrk_state, poolshrk) { - palette_set_color(machine(),0,rgb_t(0x7F, 0x7F, 0x7F)); - palette_set_color(machine(),1,rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(),2,rgb_t(0x7F, 0x7F, 0x7F)); - palette_set_color(machine(),3,rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(0,rgb_t(0x7F, 0x7F, 0x7F)); + palette.set_pen_color(1,rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(2,rgb_t(0x7F, 0x7F, 0x7F)); + palette.set_pen_color(3,rgb_t(0x00, 0x00, 0x00)); } @@ -226,7 +226,8 @@ static MACHINE_CONFIG_START( poolshrk, poolshrk_state ) MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update_poolshrk) MCFG_GFXDECODE_ADD("gfxdecode", poolshrk) - MCFG_PALETTE_LENGTH(4) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(poolshrk_state, poolshrk) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c index 6ff011bb0a9..2af7132d0ff 100644 --- a/src/mame/drivers/pooyan.c +++ b/src/mame/drivers/pooyan.c @@ -198,8 +198,8 @@ static MACHINE_CONFIG_START( pooyan, pooyan_state ) MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update_pooyan) MCFG_GFXDECODE_ADD("gfxdecode", pooyan) - MCFG_PALETTE_LENGTH(16*16+16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16) + MCFG_PALETTE_INIT_OWNER(pooyan_state, pooyan) /* sound hardware */ MCFG_FRAGMENT_ADD(timeplt_sound) diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c index 4e58f4ebb15..bb8c7430efa 100644 --- a/src/mame/drivers/popeye.c +++ b/src/mame/drivers/popeye.c @@ -391,8 +391,8 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state ) MCFG_SCREEN_UPDATE_DRIVER(popeye_state, screen_update_popeye) MCFG_GFXDECODE_ADD("gfxdecode", popeye) - MCFG_PALETTE_LENGTH(16+16*2+64*4) - + MCFG_PALETTE_ADD("palette", 16+16*2+64*4) + MCFG_PALETTE_INIT_OWNER(popeye_state, popeye) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -425,7 +425,8 @@ static MACHINE_CONFIG_DERIVED( popeyebl, popeye ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(popeyebl_map) - MCFG_PALETTE_INIT_OVERRIDE(popeye_state,popeyebl) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(popeye_state,popeyebl) MACHINE_CONFIG_END diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c index 8c57efe2de8..660a4368e78 100644 --- a/src/mame/drivers/popobear.c +++ b/src/mame/drivers/popobear.c @@ -222,7 +222,7 @@ void popobear_state::video_start() /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_gfx_index, auto_alloc(machine(), gfx_element(machine(), popobear_char_layout, (UINT8 *)m_vram_rearranged, machine().total_colors() / 16, 0))); + m_gfxdecode->set_gfx(m_gfx_index, auto_alloc(machine(), gfx_element(machine(), popobear_char_layout, (UINT8 *)m_vram_rearranged, m_palette->entries() / 16, 0))); m_bg_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64); m_bg_tilemap[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64); @@ -338,7 +338,7 @@ void popobear_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect // colours on game over screen are still wrong without the weird param kludge above if (pix&0x3f) { - bitmap.pix16(y_draw, x_draw) = machine().pens[((pix+(add_it))&0xff)+0x100]; + bitmap.pix16(y_draw, x_draw) = m_palette->pen(((pix+(add_it))&0xff)+0x100); } } @@ -491,7 +491,7 @@ static ADDRESS_MAP_START( popobear_mem, AS_PROGRAM, 16, popobear_state ) AM_RANGE(0x480034, 0x480035) AM_RAM // coin counter or coin lockout AM_RANGE(0x48003a, 0x48003b) AM_RAM //AM_READ(popo_48003a_r) AM_WRITE(popo_48003a_w) - AM_RANGE(0x480400, 0x4807ff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x480400, 0x4807ff) AM_RAM AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0") AM_RANGE(0x520000, 0x520001) AM_READ_PORT("IN1") @@ -651,7 +651,9 @@ static MACHINE_CONFIG_START( popobear, popobear_state ) MCFG_SCREEN_SIZE(128*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 239) - MCFG_PALETTE_LENGTH(256*2) + + MCFG_PALETTE_ADD("palette", 256*2) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c index 4a9750753d9..5ee043b93af 100644 --- a/src/mame/drivers/popper.c +++ b/src/mame/drivers/popper.c @@ -353,8 +353,8 @@ static MACHINE_CONFIG_START( popper, popper_state ) MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update_popper) MCFG_GFXDECODE_ADD("gfxdecode", popper) - MCFG_PALETTE_LENGTH(64) - + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(popper_state, popper) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c index bb25b8c34d6..a1815542916 100644 --- a/src/mame/drivers/portrait.c +++ b/src/mame/drivers/portrait.c @@ -260,8 +260,8 @@ static MACHINE_CONFIG_START( portrait, portrait_state ) MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update_portrait) MCFG_GFXDECODE_ADD("gfxdecode", portrait) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_INIT_OWNER(portrait_state, portrait) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c index f33161890c7..75854ffb80f 100644 --- a/src/mame/drivers/powerbal.c +++ b/src/mame/drivers/powerbal.c @@ -417,7 +417,7 @@ void powerbal_state::draw_sprites_powerbal(bitmap_ind16 &bitmap, const rectangle code = spriteram[offs + 2]; color = (spriteram[offs + 1] & 0xf000) >> 12; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, color, flipx,0, @@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( powerbal, powerbal_state ) MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal) MCFG_GFXDECODE_ADD("gfxdecode", powerbal) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(powerbal_state,powerbal) @@ -536,7 +536,7 @@ static MACHINE_CONFIG_START( magicstk, powerbal_state ) MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal) MCFG_GFXDECODE_ADD("gfxdecode", powerbal) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(powerbal_state,powerbal) diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c index 49af36b87f4..f8d65e9d4a9 100644 --- a/src/mame/drivers/powerins.c +++ b/src/mame/drivers/powerins.c @@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( powerins, powerins_state ) MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update_powerins) MCFG_GFXDECODE_ADD("gfxdecode", powerins) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c index 50d379f787e..785523b365a 100644 --- a/src/mame/drivers/ppmast93.c +++ b/src/mame/drivers/ppmast93.c @@ -389,8 +389,7 @@ static MACHINE_CONFIG_START( ppmast93, ppmast93_state ) MCFG_GFXDECODE_ADD("gfxdecode", ppmast93) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c index dad0c5a434b..14220bb18e8 100644 --- a/src/mame/drivers/prehisle.c +++ b/src/mame/drivers/prehisle.c @@ -30,7 +30,7 @@ static ADDRESS_MAP_START( prehisle_map, AS_PROGRAM, 16, prehisle_state ) AM_RANGE(0x090000, 0x0907ff) AM_RAM_WRITE(prehisle_fg_videoram16_w) AM_SHARE("videoram") AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(prehisle_bg_videoram16_w) AM_SHARE("bg_videoram16") - AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0e0000, 0x0e00ff) AM_READ(prehisle_control16_r) AM_RANGE(0x0f0070, 0x0ff071) AM_WRITE(prehisle_sound16_w) AM_RANGE(0x0f0000, 0x0ff0ff) AM_WRITE(prehisle_control16_w) @@ -217,7 +217,8 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state ) MCFG_SCREEN_UPDATE_DRIVER(prehisle_state, screen_update_prehisle) MCFG_GFXDECODE_ADD("gfxdecode", prehisle) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c index f07e21766e1..c1cd8cd099d 100644 --- a/src/mame/drivers/progolf.c +++ b/src/mame/drivers/progolf.c @@ -89,7 +89,7 @@ public: DECLARE_WRITE8_MEMBER(progolf_videoram_w); DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(progolf); UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<cpu_device> m_audiocpu; @@ -125,9 +125,9 @@ UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16 { int tile = videoram[count]; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll,y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll,y*8); /* wrap-around */ - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll-1024,y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,tile,1,0,0,(256-x*8)+scroll-1024,y*8); count++; } @@ -149,7 +149,7 @@ UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16 color = m_fg_fb[(xi+yi*8)+count*0x40]; if(color != 0 && cliprect.contains(x+yi, 256-y+xi)) - bitmap.pix16(x+yi, 256-y+xi) = machine().pens[(color & 0x7)]; + bitmap.pix16(x+yi, 256-y+xi) = m_palette->pen((color & 0x7)); } } @@ -392,12 +392,12 @@ static MC6845_INTERFACE( mc6845_intf ) }; -void progolf_state::palette_init() +PALETTE_INIT_MEMBER(progolf_state, progolf) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < m_palette->entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -417,7 +417,7 @@ void progolf_state::palette_init() bit2 = (color_prom[i] >> 7) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(),i,rgb_t(r,g,b)); + m_palette->set_pen_color(i,rgb_t(r,g,b)); } } @@ -440,7 +440,8 @@ static MACHINE_CONFIG_START( progolf, progolf_state ) MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update_progolf) MCFG_GFXDECODE_ADD("gfxdecode", progolf) - MCFG_PALETTE_LENGTH(32*3) + MCFG_PALETTE_ADD("palette", 32*3) + MCFG_PALETTE_INIT_OWNER(progolf_state, progolf) MCFG_MC6845_ADD("crtc", MC6845, "screen", 3000000/4, mc6845_intf) /* hand tuned to get ~57 fps */ diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c index 9516e36abf6..97b40768a16 100644 --- a/src/mame/drivers/psattack.c +++ b/src/mame/drivers/psattack.c @@ -190,8 +190,7 @@ static MACHINE_CONFIG_START( psattack, psattack_state ) MCFG_SCREEN_VBLANK_DRIVER(psattack_state, screen_eof_psattack) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 4d1f110e435..3ad78f16d27 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -308,7 +308,7 @@ READ32_MEMBER(psikyo_state::s1945_input_r) static ADDRESS_MAP_START( psikyo_map, AS_PROGRAM, 32, psikyo_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used) AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites, buffered by two frames (list buffered + fb buffered) - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(psikyo_vram_0_w) AM_SHARE("vram_0") // Layer 0 AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(psikyo_vram_1_w) AM_SHARE("vram_1") // Layer 1 AM_RANGE(0x804000, 0x807fff) AM_RAM AM_SHARE("vregs") // RAM + Vregs @@ -356,7 +356,7 @@ static ADDRESS_MAP_START( psikyo_bootleg_map, AS_PROGRAM, 32, psikyo_state ) AM_RANGE(0x200000, 0x200fff) AM_RAM AM_SHARE("boot_spritebuf") // RAM (it copies the spritelist here, the HW probably doesn't have automatic buffering like the originals? AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites, buffered by two frames (list buffered + fb buffered) - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(psikyo_vram_0_w) AM_SHARE("vram_0") // Layer 0 AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(psikyo_vram_1_w) AM_SHARE("vram_1") // Layer 1 AM_RANGE(0x804000, 0x807fff) AM_RAM AM_SHARE("vregs") // RAM + Vregs @@ -1051,7 +1051,8 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state ) MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE_ADD("gfxdecode", psikyo) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(psikyo_state,sngkace) @@ -1095,7 +1096,8 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state ) MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE_ADD("gfxdecode", psikyo) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo) @@ -1128,7 +1130,8 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE_ADD("gfxdecode", psikyo) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo) @@ -1176,7 +1179,8 @@ static MACHINE_CONFIG_START( s1945, psikyo_state ) MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo) MCFG_GFXDECODE_ADD("gfxdecode", psikyo) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(psikyo_state,psikyo) diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index 47d74bb18d1..9c65d148383 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -209,8 +209,8 @@ WRITE32_MEMBER(psikyo4_state::ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_ g = ((m_paletteram[offset] & 0x00ff0000) >> 16); r = ((m_paletteram[offset] & 0xff000000) >> 24); - palette_set_color(machine(), offset, rgb_t(r, g, b)); - palette_set_color(machine(), offset + 0x800, rgb_t(r, g, b)); // For screen 2 + m_palette->set_pen_color(offset, rgb_t(r, g, b)); + m_palette->set_pen_color(offset + 0x800, rgb_t(r, g, b)); // For screen 2 } WRITE32_MEMBER(psikyo4_state::ps4_bgpen_1_dword_w) @@ -222,7 +222,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_bgpen_1_dword_w) g = ((m_bgpen_1[0] & 0x00ff0000) >>16); r = ((m_bgpen_1[0] & 0xff000000) >>24); - palette_set_color(machine(), 0x1000, rgb_t(r, g, b)); // Clear colour for screen 1 + m_palette->set_pen_color(0x1000, rgb_t(r, g, b)); // Clear colour for screen 1 } WRITE32_MEMBER(psikyo4_state::ps4_bgpen_2_dword_w) @@ -234,7 +234,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_bgpen_2_dword_w) g = ((m_bgpen_2[0] & 0x00ff0000) >>16); r = ((m_bgpen_2[0] & 0xff000000) >>24); - palette_set_color(machine(), 0x1001, rgb_t(r, g, b)); // Clear colour for screen 2 + m_palette->set_pen_color(0x1001, rgb_t(r, g, b)); // Clear colour for screen 2 } WRITE32_MEMBER(psikyo4_state::ps4_screen1_brt_w) @@ -253,7 +253,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_screen1_brt_w) int i; for (i = 0; i < 0x800; i++) - palette_set_pen_contrast(machine(), i, brt1); + m_palette->set_pen_contrast(i, brt1); m_oldbrt1 = brt1; } @@ -283,7 +283,7 @@ WRITE32_MEMBER(psikyo4_state::ps4_screen2_brt_w) int i; for (i = 0x800; i < 0x1000; i++) - palette_set_pen_contrast(machine(), i, brt2); + m_palette->set_pen_contrast(i, brt2); m_oldbrt2 = brt2; } @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", ps4) - MCFG_PALETTE_LENGTH((0x2000/4)*2 + 2) /* 0x2000/4 for each screen. 1 for each screen clear colour */ + MCFG_PALETTE_ADD("palette", (0x2000/4)*2 + 2) /* 0x2000/4 for each screen. 1 for each screen clear colour */ MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c index 4dd47e5a97d..c37af22f690 100644 --- a/src/mame/drivers/psikyosh.c +++ b/src/mame/drivers/psikyosh.c @@ -356,7 +356,7 @@ WRITE32_MEMBER(psikyosh_state::paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dwo g = ((m_paletteram[offset] & 0x00ff0000) >>16); r = ((m_paletteram[offset] & 0xff000000) >>24); - palette_set_color(machine(), offset, rgb_t(r, g, b)); + m_palette->set_pen_color(offset, rgb_t(r, g, b)); } WRITE32_MEMBER(psikyosh_state::psikyosh_vidregs_w) @@ -802,7 +802,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", psikyosh) - MCFG_PALETTE_LENGTH(0x5000/4) + MCFG_PALETTE_ADD("palette", 0x5000/4) /* sound hardware */ diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c index b8fad19930b..aa57764e27b 100644 --- a/src/mame/drivers/psychic5.c +++ b/src/mame/drivers/psychic5.c @@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state ) MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5) MCFG_GFXDECODE_ADD("gfxdecode", psychic5) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) MCFG_VIDEO_START_OVERRIDE(psychic5_state,psychic5) MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5) @@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state ) MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa) MCFG_GFXDECODE_ADD("gfxdecode", bombsa) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa) MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,bombsa) diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c index b7d5f8a479c..ea1be3e9634 100644 --- a/src/mame/drivers/pturn.c +++ b/src/mame/drivers/pturn.c @@ -202,7 +202,7 @@ UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bit if(sx|sy) { - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, spriteram[offs+1] & 0x3f , (spriteram[offs+2] & 0x1f), flipx, flipy, @@ -504,8 +504,7 @@ static MACHINE_CONFIG_START( pturn, pturn_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update_pturn) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100) MCFG_GFXDECODE_ADD("gfxdecode", pturn) diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c index bc4d4a64256..93939bd7252 100644 --- a/src/mame/drivers/punchout.c +++ b/src/mame/drivers/punchout.c @@ -947,7 +947,7 @@ static MACHINE_CONFIG_START( punchout, punchout_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", punchout) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_DEFAULT_LAYOUT(layout_dualhovu) MCFG_SCREEN_ADD("top", RASTER) diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c index 0f1721b428e..e9ee88c6ff9 100644 --- a/src/mame/drivers/pushman.c +++ b/src/mame/drivers/pushman.c @@ -148,7 +148,7 @@ static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16, pushman_state ) AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(pushman_scroll_w) AM_RANGE(0xfe800e, 0xfe800f) AM_WRITENOP /* ? */ AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(pushman_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xff8000, 0xff87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffc000, 0xffffff) AM_RAM ADDRESS_MAP_END @@ -181,7 +181,7 @@ static ADDRESS_MAP_START( bballs_map, AS_PROGRAM, 16, pushman_state ) AM_RANGE(0xe8000, 0xe8003) AM_WRITE(pushman_scroll_w) AM_RANGE(0xe800e, 0xe800f) AM_WRITENOP /* ? */ AM_RANGE(0xec000, 0xec7ff) AM_RAM_WRITE(pushman_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xf8000, 0xf87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xf8000, 0xf87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfc000, 0xfffff) AM_RAM ADDRESS_MAP_END @@ -437,8 +437,9 @@ static MACHINE_CONFIG_START( pushman, pushman_state ) MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman) MCFG_GFXDECODE_ADD("gfxdecode", pushman) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -483,8 +484,9 @@ static MACHINE_CONFIG_START( bballs, pushman_state ) MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman) MCFG_GFXDECODE_ADD("gfxdecode", pushman) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/pyson.c b/src/mame/drivers/pyson.c index d9c8bc6bcd9..f43c78b0408 100644 --- a/src/mame/drivers/pyson.c +++ b/src/mame/drivers/pyson.c @@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( pyson, pyson_state ) MCFG_SCREEN_SIZE(640, 480) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MACHINE_CONFIG_END #define PYSON_BIOS \ diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index f7abf79717d..81f61736e22 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -64,7 +64,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(pzletime); UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<okim6295_device> m_oki; @@ -106,7 +106,7 @@ UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind1 int count; int y, x; - bitmap.fill(machine().pens[0], cliprect); //bg pen + bitmap.fill(m_palette->pen(0), cliprect); //bg pen m_txt_tilemap->set_scrolly(0, m_tilemap_regs[0] - 3); m_txt_tilemap->set_scrollx(0, m_tilemap_regs[1]); @@ -148,7 +148,7 @@ UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind1 // is spriteram[offs + 0] & 0x200 flipy? it's always set - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, spr_offs, colour, 0, 1, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, spr_offs, colour, 0, 1, sx, sy, 0); } } @@ -199,7 +199,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w) { for (i = 0; i < 0x300; i++) { - palette_set_pen_contrast(machine(), i, (double)0x8000/(double)m_video_regs[0]); + m_palette->set_pen_contrast(i, (double)0x8000/(double)m_video_regs[0]); } } } @@ -209,7 +209,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w) { for (i = 0x300; i < 32768 + 0x300; i++) { - palette_set_pen_contrast(machine(), i, (double)0x8000/(double)m_video_regs[1]); + m_palette->set_pen_contrast(i, (double)0x8000/(double)m_video_regs[1]); } } } @@ -229,7 +229,7 @@ static ADDRESS_MAP_START( pzletime_map, AS_PROGRAM, 16, pzletime_state ) AM_RANGE(0x000000, 0x3fffff) AM_ROM AM_RANGE(0x700000, 0x700005) AM_RAM_WRITE(video_regs_w) AM_SHARE("video_regs") AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x900000, 0x9005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x900000, 0x9005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa00000, 0xa00007) AM_RAM AM_SHARE("tilemap_regs") AM_RANGE(0xb00000, 0xb3ffff) AM_RAM AM_SHARE("bg_videoram") AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(mid_videoram_w) AM_SHARE("mid_videoram") @@ -301,7 +301,7 @@ static GFXDECODE_START( pzletime ) GFXDECODE_ENTRY( "gfx3", 0, layout16x16, 0x000, 0x10 ) GFXDECODE_END -void pzletime_state::palette_init() +PALETTE_INIT_MEMBER(pzletime_state, pzletime) { int i; @@ -309,7 +309,7 @@ void pzletime_state::palette_init() /* initialize 555 RGB lookup */ for (i = 0; i < 32768; i++) - palette_set_color_rgb(machine(), i + 0x300, pal5bit(i >> 10), pal5bit(i >> 5), pal5bit(i >> 0)); + palette.set_pen_color(i + 0x300, pal5bit(i >> 10), pal5bit(i >> 5), pal5bit(i >> 0)); } void pzletime_state::machine_start() @@ -338,7 +338,10 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime) MCFG_GFXDECODE_ADD("gfxdecode", pzletime) - MCFG_PALETTE_LENGTH(0x300 + 32768) + MCFG_PALETTE_ADD("palette", 0x300 + 32768) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + MCFG_PALETTE_INIT_OWNER(pzletime_state, pzletime) + MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index 520da90653a..06bb8cbe39d 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -301,7 +301,7 @@ static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16, qdrmfgp_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("workram") /* work ram */ AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_device, word_w) /* video reg */ AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) /* ccu */ AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service sw */ @@ -324,7 +324,7 @@ static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16, qdrmfgp_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x110fff) AM_RAM AM_SHARE("workram") /* work ram */ AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_device, word_w) /* video reg */ AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0xff00) /* ccu */ AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service */ @@ -633,13 +633,15 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state ) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD("k056832", qdrmfgp_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053252_ADD("k053252", XTAL_32MHz/4, qdrmfgp_k053252_intf) /* sound hardware */ @@ -672,13 +674,15 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state ) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp2) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD("k056832", qdrmfgp2_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053252_ADD("k053252", XTAL_32MHz/4, qdrmfgp2_k053252_intf) /* sound hardware */ diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c index 9eae04d0d60..8091b0ca110 100644 --- a/src/mame/drivers/quakeat.c +++ b/src/mame/drivers/quakeat.c @@ -131,7 +131,7 @@ static MACHINE_CONFIG_START( quake, quakeat_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c index f4ce158998b..c722372e000 100644 --- a/src/mame/drivers/quasar.c +++ b/src/mame/drivers/quasar.c @@ -337,13 +337,13 @@ static MACHINE_CONFIG_START( quasar, quasar_state ) MCFG_SCREEN_UPDATE_DRIVER(quasar_state, screen_update_quasar) MCFG_GFXDECODE_ADD("gfxdecode", quasar) - MCFG_PALETTE_LENGTH((64+1)*8+(4*256)) + MCFG_PALETTE_ADD("palette", (64+1)*8+(4*256)) + MCFG_PALETTE_INIT_OWNER(quasar_state,quasar) MCFG_S2636_ADD("s2636_0", s2636_0_config) MCFG_S2636_ADD("s2636_1", s2636_1_config) MCFG_S2636_ADD("s2636_2", s2636_2_config) - MCFG_PALETTE_INIT_OVERRIDE(quasar_state,quasar) MCFG_VIDEO_START_OVERRIDE(quasar_state,quasar) /* sound hardware */ diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c index 0c4c596f935..37df47f0193 100644 --- a/src/mame/drivers/quizdna.c +++ b/src/mame/drivers/quizdna.c @@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state ) MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update_quizdna) MCFG_GFXDECODE_ADD("gfxdecode", quizdna) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c index ea992f36994..5ae2a186e3d 100644 --- a/src/mame/drivers/quizo.c +++ b/src/mame/drivers/quizo.c @@ -42,7 +42,7 @@ public: DECLARE_WRITE8_MEMBER(port70_w); DECLARE_WRITE8_MEMBER(port60_w); DECLARE_DRIVER_INIT(quizo); - virtual void palette_init(); + DECLARE_PALETTE_INIT(quizo); UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -54,7 +54,7 @@ public: static const UINT8 rombankLookup[]={ 2, 3, 4, 4, 4, 4, 4, 5, 0, 1}; -void quizo_state::palette_init() +PALETTE_INIT_MEMBER(quizo_state, quizo) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -77,7 +77,7 @@ void quizo_state::palette_init() bit2 = (*color_prom >> 7) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); color_prom++; } } @@ -220,7 +220,8 @@ static MACHINE_CONFIG_START( quizo, quizo_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1) MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update_quizo) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(quizo_state, quizo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c index 8c66000589a..55d20f2bfe7 100644 --- a/src/mame/drivers/quizpani.c +++ b/src/mame/drivers/quizpani.c @@ -61,7 +61,7 @@ static ADDRESS_MAP_START( quizpani_map, AS_PROGRAM, 16, quizpani_state ) AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w) AM_RANGE(0x104000, 0x104001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0x104020, 0x104027) AM_DEVWRITE("nmk112", nmk112_device, okibank_lsb_w) - AM_RANGE(0x108000, 0x1083ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x108000, 0x1083ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x108400, 0x1085ff) AM_WRITENOP AM_RANGE(0x10c000, 0x10c007) AM_RAM AM_SHARE("scrollreg") AM_RANGE(0x10c008, 0x10c403) AM_WRITENOP @@ -200,7 +200,8 @@ static MACHINE_CONFIG_START( quizpani, quizpani_state ) MCFG_CPU_PERIODIC_INT_DRIVER(quizpani_state, irq1_line_hold, 164) // music tempo MCFG_GFXDECODE_ADD("gfxdecode", quizpani) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c index 1d2d6232999..ea2330435f1 100644 --- a/src/mame/drivers/quizpun2.c +++ b/src/mame/drivers/quizpun2.c @@ -177,9 +177,9 @@ UINT32 quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind1 #endif if (layers_ctrl & 1) m_bg_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - else bitmap.fill(get_black_pen(machine()), cliprect); + else bitmap.fill(m_palette->black_pen(), cliprect); -bitmap.fill(get_black_pen(machine()), cliprect); +bitmap.fill(m_palette->black_pen(), cliprect); if (layers_ctrl & 2) m_fg_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; @@ -372,7 +372,7 @@ static ADDRESS_MAP_START( quizpun2_map, AS_PROGRAM, 8, quizpun2_state ) AM_RANGE( 0xc000, 0xc7ff ) AM_RAM_WRITE(bg_ram_w ) AM_SHARE("bg_ram") // 4 * 400 AM_RANGE( 0xc800, 0xcfff ) AM_RAM // - AM_RANGE( 0xd000, 0xd3ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w ) AM_SHARE("paletteram") + AM_RANGE( 0xd000, 0xd3ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0xe000, 0xffff ) AM_RAM ADDRESS_MAP_END @@ -512,7 +512,8 @@ static MACHINE_CONFIG_START( quizpun2, quizpun2_state ) MCFG_SCREEN_UPDATE_DRIVER(quizpun2_state, screen_update_quizpun2) MCFG_GFXDECODE_ADD("gfxdecode", quizpun2) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index 6bb1bc70602..73b014b575b 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -71,7 +71,7 @@ public: TILE_GET_INFO_MEMBER(get_tile_info); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(quizshow); UINT32 screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(quizshow_clock_timer_cb); }; @@ -83,12 +83,10 @@ public: ***************************************************************************/ -void quizshow_state::palette_init() +PALETTE_INIT_MEMBER(quizshow_state, quizshow) { - machine().colortable = colortable_alloc(machine(), 2); - - colortable_palette_set_color(machine().colortable, 0, rgb_t::black); - colortable_palette_set_color(machine().colortable, 1, rgb_t::white); + palette.set_indirect_color(0, rgb_t::black); + palette.set_indirect_color(1, rgb_t::white); // normal, blink/off, invert, blink+invert const int lut_pal[16] = { @@ -99,7 +97,7 @@ void quizshow_state::palette_init() }; for (int i = 0; i < 16 ; i++) - colortable_entry_set_value(machine().colortable, i, lut_pal[i]); + palette.set_pen_indirect(i, lut_pal[i]); } TILE_GET_INFO_MEMBER(quizshow_state::get_tile_info) @@ -392,7 +390,8 @@ static MACHINE_CONFIG_START( quizshow, quizshow_state ) MCFG_SCREEN_UPDATE_DRIVER(quizshow_state, screen_update_quizshow) MCFG_GFXDECODE_ADD("gfxdecode", quizshow) - MCFG_PALETTE_LENGTH(8*2) + MCFG_PALETTE_ADD("palette", 8*2) + MCFG_PALETTE_INIT_OWNER(quizshow_state, quizshow) /* sound hardware (discrete) */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index 7be751b2747..20f2b5c33d1 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -165,7 +165,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+ax*16,y+ay*16,15); } @@ -175,7 +175,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+ax*16,y+(dy-ay-1)*16,15); } @@ -188,7 +188,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+(dx-ax-1)*16,y+ay*16,15); } @@ -198,7 +198,7 @@ void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+(dx-ax-1)*16,y+(dy-ay-1)*16,15); } @@ -222,7 +222,7 @@ void r2dx_v33_state::video_start() UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -434,7 +434,7 @@ static ADDRESS_MAP_START( rdx_v33_map, AS_PROGRAM, 16, r2dx_v33_state ) AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(rdx_tx_vram_w) AM_SHARE("tx_vram") AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */ AM_RANGE(0x10000, 0x1efff) AM_RAM - AM_RANGE(0x1f000, 0x1ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank1") AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000 ) @@ -507,7 +507,7 @@ static ADDRESS_MAP_START( nzerotea_map, AS_PROGRAM, 16, r2dx_v33_state ) AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(rdx_tx_vram_w) AM_SHARE("tx_vram") AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */ AM_RANGE(0x10000, 0x1efff) AM_RAM - AM_RANGE(0x1f000, 0x1ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("bank1") AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000 ) @@ -711,8 +711,8 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state ) MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33) MCFG_GFXDECODE_ADD("gfxdecode", rdx_v33) - MCFG_PALETTE_LENGTH(2048) - + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -741,8 +741,8 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33) MCFG_GFXDECODE_ADD("gfxdecode", rdx_v33) - MCFG_PALETTE_LENGTH(2048) - + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ // SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(28636360/8,28636360/28,1,2) diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index 3beb483f50b..6acf0b15a57 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -312,8 +312,8 @@ void rabbit_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect if(xpos&0x800)xpos-=0x1000; - gfx->transpen(*m_sprite_bitmap,m_sprite_clip,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0x20-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,15); -// gfx->transpen(bitmap,cliprect,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0xa0-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24+0x80/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,0); + gfx->transpen(m_palette,*m_sprite_bitmap,m_sprite_clip,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0x20-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,15); +// gfx->transpen(m_palette,bitmap,cliprect,tileno,colr,!xflip/*wrongdecode?*/,yflip,xpos+0xa0-8/*-(m_spriteregs[0]&0x00000fff)*/,ypos-24+0x80/*-((m_spriteregs[1]&0x0fff0000)>>16)*/,0); source-=2; @@ -479,7 +479,7 @@ UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &b { int prilevel; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); // popmessage("%08x %08x", m_viewregs0[0], m_viewregs0[1]); // popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[0][0],m_tilemap_regs[0][1],m_tilemap_regs[0][2],m_tilemap_regs[0][3],m_tilemap_regs[0][4],m_tilemap_regs[0][5]); @@ -522,7 +522,7 @@ WRITE32_MEMBER(rabbit_state::rabbit_paletteram_dword_w) r = ((m_generic_paletteram_32[offset] & 0x0000ff00) >>8); g = ((m_generic_paletteram_32[offset] & 0x00ff0000) >>16); - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } READ32_MEMBER(rabbit_state::rabbit_tilemap0_r) @@ -908,9 +908,7 @@ static MACHINE_CONFIG_START( rabbit, rabbit_state ) // MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1) MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit) - MCFG_PALETTE_LENGTH(0x4000) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) - + MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x4000) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c index f8b281e6b3d..73ccf1b0555 100644 --- a/src/mame/drivers/raiden.c +++ b/src/mame/drivers/raiden.c @@ -76,7 +76,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, raiden_state ) AM_RANGE(0x00000, 0x01fff) AM_RAM AM_RANGE(0x02000, 0x027ff) AM_RAM_WRITE(raiden_background_w) AM_SHARE("back_data") AM_RANGE(0x02800, 0x02fff) AM_RAM_WRITE(raiden_foreground_w) AM_SHARE("fore_data") - AM_RANGE(0x03000, 0x03fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x03000, 0x03fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE("shared_ram") AM_RANGE(0x07ffe, 0x07fff) AM_WRITENOP // ? AM_RANGE(0x08000, 0x08001) AM_WRITENOP // watchdog? @@ -105,7 +105,7 @@ static ADDRESS_MAP_START( raidenu_sub_map, AS_PROGRAM, 16, raiden_state ) AM_RANGE(0x00000, 0x05fff) AM_RAM AM_RANGE(0x06000, 0x067ff) AM_RAM_WRITE(raiden_background_w) AM_SHARE("back_data") AM_RANGE(0x06800, 0x06fff) AM_RAM_WRITE(raiden_foreground_w) AM_SHARE("fore_data") - AM_RANGE(0x07000, 0x07fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x07000, 0x07fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x08000, 0x08fff) AM_RAM AM_SHARE("shared_ram") AM_RANGE(0x0a000, 0x0a001) AM_WRITENOP // ? AM_RANGE(0x0c000, 0x0c001) AM_WRITENOP // watchdog? @@ -291,7 +291,8 @@ static MACHINE_CONFIG_START( raiden, raiden_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", raiden) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_14_31818MHz/4,XTAL_12MHz/12) // frequency and pin 7 verified (pin set in audio\seibu.h) diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c index 3d0f3ba0791..8ff0c399d59 100644 --- a/src/mame/drivers/raiden2.c +++ b/src/mame/drivers/raiden2.c @@ -798,7 +798,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, - gfx->transpen( + gfx->transpen(m_palette, bitmap, cliprect, tile_number, @@ -807,7 +807,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, (sx+xstep*xtiles)&ZEROTEAM_MASK_X,(sy+ystep*ytiles)&ZEROTEAM_MASK_Y,15); - gfx->transpen( + gfx->transpen(m_palette, bitmap, cliprect, tile_number, @@ -816,7 +816,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, ((sx+xstep*xtiles)&ZEROTEAM_MASK_X)-0x200,(sy+ystep*ytiles)&ZEROTEAM_MASK_Y,15); - gfx->transpen( + gfx->transpen(m_palette, bitmap, cliprect, tile_number, @@ -825,7 +825,7 @@ void raiden2_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, (sx+xstep*xtiles)&ZEROTEAM_MASK_X,((sy+ystep*ytiles)&ZEROTEAM_MASK_Y)-0x200,15); - gfx->transpen( + gfx->transpen(m_palette, bitmap, cliprect, tile_number, @@ -1007,7 +1007,7 @@ VIDEO_START_MEMBER(raiden2_state,raiden2) UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); //if (!machine().input().code_pressed(KEYCODE_Q)) { @@ -1482,7 +1482,7 @@ static ADDRESS_MAP_START( raiden2_mem, AS_PROGRAM, 16, raiden2_state ) AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */ AM_RANGE(0x10000, 0x1efff) AM_RAM - AM_RANGE(0x1f000, 0x1ffff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("mainbank") AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000) @@ -1518,7 +1518,7 @@ static ADDRESS_MAP_START( zeroteam_mem, AS_PROGRAM, 16, raiden2_state ) AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(raiden2_midground_w) AM_SHARE("mid_data") AM_RANGE(0x0d000, 0x0dfff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data") - AM_RANGE(0x0e000, 0x0efff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0e000, 0x0efff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0f000, 0x0ffff) AM_RAM AM_SHARE("sprites") AM_RANGE(0x10000, 0x1ffff) AM_RAM @@ -1548,7 +1548,7 @@ static ADDRESS_MAP_START( xsedae_mem, AS_PROGRAM, 16, raiden2_state ) AM_RANGE(0x0c000, 0x0c7ff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(raiden2_midground_w) AM_SHARE("mid_data") AM_RANGE(0x0d000, 0x0dfff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data") - AM_RANGE(0x0e000, 0x0efff) AM_RAM AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0e000, 0x0efff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0f000, 0x0ffff) AM_RAM AM_SHARE("sprites") AM_RANGE(0x10000, 0x1ffff) AM_RAM @@ -1888,7 +1888,8 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2) MCFG_GFXDECODE_ADD("gfxdecode", raiden2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) @@ -1944,7 +1945,8 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state ) MCFG_SCREEN_RAW_PARAMS(XTAL_32MHz/4,546,0,40*8,264,0,32*8) /* hand-tuned to match ~55.47 */ MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2) MCFG_GFXDECODE_ADD("gfxdecode", raiden2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c index ee457232665..dabb8c780e7 100644 --- a/src/mame/drivers/rainbow.c +++ b/src/mame/drivers/rainbow.c @@ -345,7 +345,7 @@ WRITE16_MEMBER(rbisland_state::jumping_sound_w) static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16, rbisland_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */ - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */ AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA") AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rbisland_spritectrl_w) @@ -366,7 +366,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16, rbisland_state ) AM_RANGE(0x000000, 0x09ffff) AM_ROM AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */ - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */ AM_RANGE(0x400000, 0x400001) AM_READ_PORT("DSWA") AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB") @@ -667,12 +667,15 @@ static MACHINE_CONFIG_START( rbisland, rbisland_state ) MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow) MCFG_GFXDECODE_ADD("gfxdecode", rbisland) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_PC080SN_ADD("pc080sn", rbisland_pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") MCFG_PC090OJ_ADD("pc090oj", rbisland_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -710,12 +713,14 @@ static MACHINE_CONFIG_START( jumping, rbisland_state ) MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping) MCFG_GFXDECODE_ADD("gfxdecode", jumping) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping) MCFG_PC080SN_ADD("pc080sn", jumping_pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c index 407eb68a67d..a74e6f36eb6 100644 --- a/src/mame/drivers/rallyx.c +++ b/src/mame/drivers/rallyx.c @@ -860,8 +860,6 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state ) MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60.606060) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -870,9 +868,11 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state ) MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx) MCFG_GFXDECODE_ADD("gfxdecode", rallyx) - MCFG_PALETTE_LENGTH(64*4+4) - MCFG_PALETTE_INIT_OVERRIDE(rallyx_state,rallyx) + MCFG_PALETTE_ADD("palette", 64*4+4) + MCFG_PALETTE_ENABLE_SHADOWS() + + MCFG_PALETTE_INIT_OWNER(rallyx_state,rallyx) MCFG_VIDEO_START_OVERRIDE(rallyx_state,rallyx) /* sound hardware */ @@ -898,8 +898,6 @@ static MACHINE_CONFIG_START( jungler, rallyx_state ) MCFG_MACHINE_RESET_OVERRIDE(rallyx_state,rallyx) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) @@ -908,9 +906,11 @@ static MACHINE_CONFIG_START( jungler, rallyx_state ) MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler) MCFG_GFXDECODE_ADD("gfxdecode", jungler) - MCFG_PALETTE_LENGTH(64*4+4+64) - MCFG_PALETTE_INIT_OVERRIDE(rallyx_state,jungler) + MCFG_PALETTE_ADD("palette", 64*4+4+64) + MCFG_PALETTE_ENABLE_SHADOWS() + + MCFG_PALETTE_INIT_OWNER(rallyx_state,jungler) MCFG_VIDEO_START_OVERRIDE(rallyx_state,jungler) /* sound hardware */ diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c index 68b61c483b1..6fff1a51a5e 100644 --- a/src/mame/drivers/rampart.c +++ b/src/mame/drivers/rampart.c @@ -348,7 +348,7 @@ static MACHINE_CONFIG_START( rampart, rampart_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", rampart) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_ATARI_MOTION_OBJECTS_ADD("mob", "screen", rampart_state::s_mob_config) MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("gfxdecode") diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c index 72d6f2b1dcf..f3a38a695a6 100644 --- a/src/mame/drivers/rastan.c +++ b/src/mame/drivers/rastan.c @@ -202,7 +202,7 @@ WRITE8_MEMBER(rastan_state::rastan_msm5205_stop_w) static ADDRESS_MAP_START( rastan_map, AS_PROGRAM, 16, rastan_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x10c000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x350008, 0x350009) AM_WRITENOP /* 0 only (often) ? */ AM_RANGE(0x380000, 0x380001) AM_WRITE(rastan_spritectrl_w) /* sprite palette bank, coin counters & lockout */ AM_RANGE(0x390000, 0x390001) AM_READ_PORT("P1") @@ -401,12 +401,15 @@ static MACHINE_CONFIG_START( rastan, rastan_state ) MCFG_SCREEN_UPDATE_DRIVER(rastan_state, screen_update_rastan) MCFG_GFXDECODE_ADD("gfxdecode", rastan) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_PC080SN_ADD("pc080sn", rastan_pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") MCFG_PC090OJ_ADD("pc090oj", rastan_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/rastersp.c b/src/mame/drivers/rastersp.c index 07cf737bf49..754f7f5c47f 100644 --- a/src/mame/drivers/rastersp.c +++ b/src/mame/drivers/rastersp.c @@ -126,7 +126,7 @@ public: UINT8 m_io_reg; UINT8 m_irq_status; UINT32 m_dpyaddr; - UINT16 *m_palette; + UINT16 *m_paletteram; UINT32 m_speedup_count; UINT32 m_tms_io_regs[0x80]; bitmap_ind16 m_update_bitmap; @@ -156,7 +156,7 @@ void rastersp_state::machine_start() m_nvram8 = auto_alloc_array(machine(), UINT8, NVRAM_SIZE); - m_palette = auto_alloc_array(machine(), UINT16, 0x8000); + m_paletteram = auto_alloc_array(machine(), UINT16, 0x8000); membank("bank1")->set_base(m_dram); membank("bank2")->set_base(&m_dram[0x10000/4]); @@ -207,7 +207,7 @@ WRITE32_MEMBER( rastersp_state::dpylist_w ) // TODO: This should probably be done in sync with the video scan if (m_dpyaddr == 0) { - m_update_bitmap.fill(get_black_pen(machine())); + m_update_bitmap.fill(m_palette->black_pen()); return; } @@ -244,7 +244,7 @@ WRITE32_MEMBER( rastersp_state::dpylist_w ) UINT32 pixels = (word2 >> 16) & 0x1ff; UINT32 palbase = (word2 >> 4) & 0xf00; - UINT16* palptr = &m_palette[palbase]; + UINT16* palptr = &m_paletteram[palbase]; UINT8* srcptr = reinterpret_cast<UINT8*>(&m_dram[0]); UINT32 acc = srcaddr << 8; @@ -300,7 +300,7 @@ void rastersp_state::upload_palette(UINT32 word1, UINT32 word2) while (entries--) { UINT32 data = m_dram[addr / 4]; - m_palette[index++] = data & 0xffff; + m_paletteram[index++] = data & 0xffff; addr += 4; } } @@ -906,8 +906,7 @@ static MACHINE_CONFIG_START( rastersp, rastersp_state ) MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGGG_BBBBB) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD_RRRRRGGGGGGBBBBB("palette") /* Sound */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c index 3f551422f07..ed98ffdc38d 100644 --- a/src/mame/drivers/rbmk.c +++ b/src/mame/drivers/rbmk.c @@ -129,7 +129,7 @@ static ADDRESS_MAP_START( rbmk_mem, AS_PROGRAM, 16, rbmk_state ) AM_RANGE(0x500000, 0x50ffff) AM_RAM AM_RANGE(0x940000, 0x940fff) AM_RAM AM_SHARE("gms_vidram2") AM_RANGE(0x980300, 0x983fff) AM_RAM // 0x2048 words ???, byte access - AM_RANGE(0x900000, 0x900fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x900000, 0x900fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x9c0000, 0x9c0fff) AM_RAM AM_SHARE("gms_vidram") AM_RANGE(0xb00000, 0xb00001) AM_WRITE(eeprom_w) AM_RANGE(0xC00000, 0xC00001) AM_READ_PORT("IN0") AM_WRITE(gms_write1) @@ -515,7 +515,7 @@ UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitma for (x=0;x<64;x++) { int tile = m_gms_vidram2[count+0x600]; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect,(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect,(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32); count++; } } @@ -527,7 +527,7 @@ UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitma for (x=0;x<64;x++) { int tile = m_gms_vidram[count]; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect,(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0); count++; } } @@ -559,8 +559,8 @@ static MACHINE_CONFIG_START( rbmk, rbmk_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update_rbmk) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") diff --git a/src/mame/drivers/rcorsair.c b/src/mame/drivers/rcorsair.c index 1318cd20aed..cee28384b20 100644 --- a/src/mame/drivers/rcorsair.c +++ b/src/mame/drivers/rcorsair.c @@ -144,7 +144,7 @@ static MACHINE_CONFIG_START( rcorsair, rcorsair_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_GFXDECODE_ADD("gfxdecode", rcorsair) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END ROM_START( rcorsair ) diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c index df208f6bb9f..9685b18b0ea 100644 --- a/src/mame/drivers/realbrk.c +++ b/src/mame/drivers/realbrk.c @@ -154,7 +154,7 @@ WRITE16_MEMBER(realbrk_state::backup_ram_w) static ADDRESS_MAP_START( base_mem, AS_PROGRAM, 16, realbrk_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram" ) // Palette + AM_RANGE(0x400000, 0x40ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(realbrk_vram_0_w) AM_SHARE("vram_0") // Background (0) AM_RANGE(0x602000, 0x603fff) AM_RAM_WRITE(realbrk_vram_1_w) AM_SHARE("vram_1") // Background (1) AM_RANGE(0x604000, 0x604fff) AM_RAM_WRITE(realbrk_vram_2_w) AM_SHARE("vram_2") // Text (2) @@ -780,8 +780,8 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state ) MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_realbrk) MCFG_GFXDECODE_ADD("gfxdecode", realbrk) - MCFG_PALETTE_LENGTH(0x8000) - + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c index d171ee0ac49..51e16cd804e 100644 --- a/src/mame/drivers/redclash.c +++ b/src/mame/drivers/redclash.c @@ -364,9 +364,9 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state ) MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash) MCFG_GFXDECODE_ADD("gfxdecode", redclash) - MCFG_PALETTE_LENGTH(4*8+4*16+32) + MCFG_PALETTE_ADD("palette", 4*8+4*16+32) - MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,redclash) + MCFG_PALETTE_INIT_OWNER(ladybug_state,redclash) MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash) /* sound hardware */ @@ -392,9 +392,9 @@ static MACHINE_CONFIG_START( redclash, ladybug_state ) MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash) MCFG_GFXDECODE_ADD("gfxdecode", redclash) - MCFG_PALETTE_LENGTH(4*8+4*16+32) + MCFG_PALETTE_ADD("palette", 4*8+4*16+32) - MCFG_PALETTE_INIT_OVERRIDE(ladybug_state,redclash) + MCFG_PALETTE_INIT_OWNER(ladybug_state,redclash) MCFG_VIDEO_START_OVERRIDE(ladybug_state,redclash) /* sound hardware */ diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c index cdf7ef34fa2..b4f3af9d650 100644 --- a/src/mame/drivers/relief.c +++ b/src/mame/drivers/relief.c @@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( relief, relief_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", relief) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line)) MCFG_ATARI_VAD_PLAYFIELD(relief_state, get_playfield_tile_info) diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index 6d27db3387d..666f8c5abbc 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -635,8 +635,8 @@ static ADDRESS_MAP_START( renegade_map, AS_PROGRAM, 8, renegade_state ) AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(renegade_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(renegade_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x3000, 0x30ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x3100, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x3000, 0x30ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x3100, 0x31ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") AM_WRITE(renegade_scroll0_w) /* Player#1 controls, P1,P2 start */ AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") AM_WRITE(renegade_scroll1_w) /* Player#2 controls, coin triggers */ AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW2") AM_WRITE(sound_w) /* DIP2 various IO ports */ @@ -894,8 +894,8 @@ static MACHINE_CONFIG_START( renegade, renegade_state ) MCFG_SCREEN_UPDATE_DRIVER(renegade_state, screen_update_renegade) MCFG_GFXDECODE_ADD("gfxdecode", renegade) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c index cee79d41698..e1d9e0b422c 100644 --- a/src/mame/drivers/retofinv.c +++ b/src/mame/drivers/retofinv.c @@ -370,8 +370,8 @@ static MACHINE_CONFIG_START( retofinv, retofinv_state ) MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv) MCFG_GFXDECODE_ADD("gfxdecode", retofinv) - MCFG_PALETTE_LENGTH(256*2+64*16+64*16) - + MCFG_PALETTE_ADD("palette", 256*2+64*16+64*16) + MCFG_PALETTE_INIT_OWNER(retofinv_state, retofinv) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c index 9e0928b44a6..7348ba47d05 100644 --- a/src/mame/drivers/rgum.c +++ b/src/mame/drivers/rgum.c @@ -57,7 +57,7 @@ UINT32 rgum_state::screen_update_royalgum(screen_device &screen, bitmap_ind16 &b { int tile = m_vram[count] | ((m_cram[count] & 0xf) <<8); - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8); count++; } @@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( rgum, rgum_state ) MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) MCFG_GFXDECODE_ADD("gfxdecode", rgum) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c index a8a3f572414..319abb2285f 100644 --- a/src/mame/drivers/rltennis.c +++ b/src/mame/drivers/rltennis.c @@ -185,11 +185,11 @@ static MACHINE_CONFIG_START( rltennis, rltennis_state ) MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update_rltennis) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c index 2554d6e3dbf..dd8bf03eabc 100644 --- a/src/mame/drivers/rmhaihai.c +++ b/src/mame/drivers/rmhaihai.c @@ -485,9 +485,8 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state ) MCFG_SCREEN_UPDATE_DRIVER(rmhaihai_state, screen_update_rmhaihai) MCFG_GFXDECODE_ADD("gfxdecode", rmhaihai) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x100) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -507,7 +506,8 @@ static MACHINE_CONFIG_DERIVED( rmhaisei, rmhaihai ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", themj) - MCFG_PALETTE_LENGTH(0x200) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( themj, rmhaihai ) @@ -522,7 +522,8 @@ static MACHINE_CONFIG_DERIVED( themj, rmhaihai ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", themj) - MCFG_PALETTE_LENGTH(0x200) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 0x200) MACHINE_CONFIG_END diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c index 7213fcae894..cf0d06fac8b 100644 --- a/src/mame/drivers/rockrage.c +++ b/src/mame/drivers/rockrage.c @@ -271,10 +271,11 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state ) MCFG_K007342_GFXDECODE("gfxdecode") MCFG_K007420_ADD("k007420", rockrage_k007420_intf) + MCFG_K007420_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", rockrage) - MCFG_PALETTE_LENGTH(64 + 2*16*16) - + MCFG_PALETTE_ADD("palette", 64 + 2*16*16) + MCFG_PALETTE_INIT_OWNER(rockrage_state, rockrage) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c index 6cf438183f4..9a76da73491 100644 --- a/src/mame/drivers/rocnrope.c +++ b/src/mame/drivers/rocnrope.c @@ -208,8 +208,8 @@ static MACHINE_CONFIG_START( rocnrope, rocnrope_state ) MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope) MCFG_GFXDECODE_ADD("gfxdecode", rocnrope) - MCFG_PALETTE_LENGTH(16*16+16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16) + MCFG_PALETTE_INIT_OWNER(rocnrope_state, rocnrope) /* sound hardware */ MCFG_FRAGMENT_ADD(timeplt_sound) diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c index 6e9a8ee8052..da1e660d447 100644 --- a/src/mame/drivers/rohga.c +++ b/src/mame/drivers/rohga.c @@ -829,7 +829,7 @@ static MACHINE_CONFIG_START( rohga, rohga_state ) MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) MCFG_GFXDECODE_ADD("gfxdecode", rohga) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(rohga_state,rohga) @@ -837,13 +837,16 @@ static MACHINE_CONFIG_START( rohga, rohga_state ) MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") @@ -887,23 +890,27 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state ) MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire) MCFG_GFXDECODE_ADD("gfxdecode", wizdfire) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECOCOMN_ADD("deco_common") MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE @@ -950,23 +957,27 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state ) MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal) MCFG_GFXDECODE_ADD("gfxdecode", wizdfire) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_DECOCOMN_ADD("deco_common") MCFG_DECO16IC_ADD("tilegen1", nitrobal_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", nitrobal_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 4); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(rohga_state,wizdfire) @@ -1014,7 +1025,7 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state ) MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) MCFG_GFXDECODE_ADD("gfxdecode", schmeisr) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(rohga_state,schmeisr) @@ -1022,13 +1033,16 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state ) MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 3); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO104_ADD("ioprot104") diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c index 918664308c5..e4ffa738905 100644 --- a/src/mame/drivers/rollerg.c +++ b/src/mame/drivers/rollerg.c @@ -96,7 +96,7 @@ static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8, rollerg_state ) AM_RANGE(0x0300, 0x030f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_r, k053244_w) AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_k051316_r) AM_DEVWRITE("k051316", k051316_device, write) AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w) - AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x1800, 0x1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x2000, 0x3aff) AM_RAM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xffff) AM_ROM @@ -278,8 +278,6 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state ) /* NMIs are generated by the 053260 */ /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -287,15 +285,19 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(rollerg_state, screen_update_rollerg) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K053244_ADD("k053244", rollerg_k05324x_intf) MCFG_K053244_GFXDECODE("gfxdecode") + MCFG_K053244_PALETTE("palette") MCFG_K051316_ADD("k051316", rollerg_k051316_intf) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K053252_ADD("k053252", 3000000*2, rollerg_k053252_intf) diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c index 2b40b1b3df2..5f50e5a98a3 100644 --- a/src/mame/drivers/rollrace.c +++ b/src/mame/drivers/rollrace.c @@ -238,8 +238,8 @@ static MACHINE_CONFIG_START( rollrace, rollrace_state ) MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update_rollrace) MCFG_GFXDECODE_ADD("gfxdecode", rollrace) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(rollrace_state, rollrace) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c index 20d7ce98c56..d6e44459b4e 100644 --- a/src/mame/drivers/roul.c +++ b/src/mame/drivers/roul.c @@ -85,7 +85,7 @@ public: DECLARE_WRITE8_MEMBER(sound_latch_w); DECLARE_WRITE8_MEMBER(ball_w); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(roul); UINT32 screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<cpu_device> m_soundcpu; @@ -95,7 +95,7 @@ public: #define VIDEOBUF_SIZE 256*256 -void roul_state::palette_init() +PALETTE_INIT_MEMBER(roul_state, roul) { const UINT8 *color_prom = memregion("proms")->base(); int bit6, bit7, bit0, bit1, r, g, b; @@ -116,7 +116,7 @@ void roul_state::palette_init() bit1 = (color_prom[0] >> 5) & 0x01; r = 0x0e * bit6 + 0x1f * bit7 + 0x43 * bit0 + 0x8f * bit1; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -302,8 +302,8 @@ static MACHINE_CONFIG_START( roul, roul_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update_roul) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(roul_state, roul) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("aysnd", AY8910, 1000000) diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index 9c7526c868c..967c0d1de91 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -197,7 +197,7 @@ public: DECLARE_WRITE_LINE_MEMBER(mjtensin_rtc_irq); DECLARE_DRIVER_INIT(janptr96); DECLARE_DRIVER_INIT(ippatsu); - virtual void palette_init(); + DECLARE_PALETTE_INIT(royalmah); DECLARE_PALETTE_INIT(mjderngr); UINT32 screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(suzume_irq); @@ -210,7 +210,7 @@ public: -void royalmah_state::palette_init() +PALETTE_INIT_MEMBER(royalmah_state, royalmah) { offs_t i; const UINT8 *prom = memregion("proms")->base(); @@ -240,7 +240,7 @@ void royalmah_state::palette_init() bit2 = (data >> 7) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color_rgb(machine(),i, r,g,b); + palette.set_pen_color(i, r,g,b); } } @@ -259,7 +259,7 @@ PALETTE_INIT_MEMBER(royalmah_state,mjderngr) UINT8 g = BITSWAP8((data >> 5) & 0x1f,7,6,5,0,1,2,3,4 ); UINT8 b = BITSWAP8((data >> 10) & 0x1f,7,6,5,0,1,2,3,4 ); - palette_set_color_rgb(machine(),i, pal5bit(r), pal5bit(g), pal5bit(b)); + palette.set_pen_color(i, pal5bit(r), pal5bit(g), pal5bit(b)); } } @@ -3234,7 +3234,8 @@ static MACHINE_CONFIG_START( royalmah, royalmah_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* video hardware */ - MCFG_PALETTE_LENGTH(16*2) + MCFG_PALETTE_ADD("palette", 16*2) + MCFG_PALETTE_INIT_OWNER(royalmah_state,royalmah) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_SIZE(256, 256) @@ -3345,8 +3346,9 @@ static MACHINE_CONFIG_DERIVED( mjderngr, dondenmj ) MCFG_CPU_IO_MAP(mjderngr_iomap) /* video hardware */ - MCFG_PALETTE_LENGTH(16*32) - MCFG_PALETTE_INIT_OVERRIDE(royalmah_state,mjderngr) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 16*32) + MCFG_PALETTE_INIT_OWNER(royalmah_state,mjderngr) MACHINE_CONFIG_END /* It runs in IM 2, thus needs a vector on the data bus */ diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c index c8c7bb07c50..0e94d0dd3cd 100644 --- a/src/mame/drivers/rpunch.c +++ b/src/mame/drivers/rpunch.c @@ -225,7 +225,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rpunch_state ) AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_SHARE("bitmapram") AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x080000, 0x083fff) AM_RAM_WRITE(rpunch_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE(rpunch_scrollreg_w) AM_RANGE(0x0c0008, 0x0c0009) AM_WRITE(rpunch_crtc_data_w) AM_RANGE(0x0c000c, 0x0c000d) AM_WRITE(rpunch_videoreg_w) @@ -491,7 +491,8 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state ) MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) MCFG_GFXDECODE_ADD("gfxdecode", rpunch) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -526,7 +527,8 @@ static MACHINE_CONFIG_START( svolleybl, rpunch_state ) MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) MCFG_GFXDECODE_ADD("gfxdecode", svolleybl) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c index 6835aa35883..46f10e5ba93 100644 --- a/src/mame/drivers/runaway.c +++ b/src/mame/drivers/runaway.c @@ -361,7 +361,7 @@ static MACHINE_CONFIG_START( runaway, runaway_state ) MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_runaway) MCFG_GFXDECODE_ADD("gfxdecode", runaway) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c index d978f9a04bd..f95682f80cd 100644 --- a/src/mame/drivers/rungun.c +++ b/src/mame/drivers/rungun.c @@ -164,7 +164,7 @@ INTERRUPT_GEN_MEMBER(rungun_state::rng_interrupt) static ADDRESS_MAP_START( rungun_map, AS_PROGRAM, 16, rungun_state ) AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program + data - AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x3007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x380000, 0x39ffff) AM_RAM // work RAM AM_RANGE(0x400000, 0x43ffff) AM_READNOP // AM_READ(K053936_0_rom_r ) // '936 ROM readback window AM_RANGE(0x480000, 0x48001f) AM_READWRITE(rng_sysregs_r, rng_sysregs_w) AM_SHARE("sysreg") @@ -393,7 +393,7 @@ static MACHINE_CONFIG_START( rng, rungun_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -402,11 +402,15 @@ static MACHINE_CONFIG_START( rng, rungun_state ) MCFG_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1) MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_K053936_ADD("k053936", rng_k053936_intf) MCFG_K055673_ADD("k055673", rng_k055673_intf) MCFG_K055673_GFXDECODE("gfxdecode") + MCFG_K055673_PALETTE("palette") MCFG_K053252_ADD("k053252", 16000000/2, rng_k053252_intf) /* sound hardware */ diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c index 89f17b4cb1e..5c9c70c8bac 100644 --- a/src/mame/drivers/safarir.c +++ b/src/mame/drivers/safarir.c @@ -85,7 +85,7 @@ public: TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void machine_start(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(safarir); UINT32 screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -146,14 +146,14 @@ static GFXDECODE_START( safarir ) GFXDECODE_END -void safarir_state::palette_init() +PALETTE_INIT_MEMBER(safarir_state, safarir) { int i; - for (i = 0; i < machine().total_colors() / 2; i++) + for (i = 0; i < palette.entries() / 2; i++) { - palette_set_color(machine(), (i * 2) + 0, rgb_t::black); - palette_set_color(machine(), (i * 2) + 1, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0))); + palette.set_pen_color((i * 2) + 0, rgb_t::black); + palette.set_pen_color((i * 2) + 1, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0))); } } @@ -408,7 +408,9 @@ static MACHINE_CONFIG_START( safarir, safarir_state ) MCFG_CPU_PROGRAM_MAP(main_map) /* video hardware */ - MCFG_PALETTE_LENGTH(2*8) + MCFG_PALETTE_ADD("palette", 2*8) + MCFG_PALETTE_INIT_OWNER(safarir_state, safarir) + MCFG_GFXDECODE_ADD("gfxdecode", safarir) MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c index c8c8f6a9cd5..00812a0ee71 100644 --- a/src/mame/drivers/sandscrp.c +++ b/src/mame/drivers/sandscrp.c @@ -266,7 +266,7 @@ static ADDRESS_MAP_START( sandscrp, AS_PROGRAM, 16, sandscrp_state ) AM_RANGE(0x300000, 0x30001f) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_regs_r, kaneko_tmap_regs_w) AM_RANGE(0x400000, 0x403fff) AM_DEVREADWRITE("view2_0", kaneko_view2_tilemap_device, kaneko_tmap_vram_r, kaneko_tmap_vram_w ) AM_RANGE(0x500000, 0x501fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w ) // sprites - AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x600000, 0x600fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xa00000, 0xa00001) AM_WRITE(sandscrp_coin_counter_w) // Coin Counters (Lockout unused) AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") @@ -510,7 +510,8 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state ) MCFG_SCREEN_VBLANK_DRIVER(sandscrp_state, screen_eof_sandscrp) MCFG_GFXDECODE_ADD("gfxdecode", sandscrp) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) MCFG_DEVICE_ADD("view2_0", KANEKO_TMAP, 0) kaneko_view2_tilemap_device::set_gfx_region(*device, 1); @@ -522,6 +523,7 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state ) MCFG_KANEKO_PANDORA_ADD("pandora", sandscrp_pandora_config) MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode") + MCFG_KANEKO_PANDORA_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c index 201813e9c48..ad294330634 100644 --- a/src/mame/drivers/sangho.c +++ b/src/mame/drivers/sangho.c @@ -469,8 +469,6 @@ static MACHINE_CONFIG_START( pzlestar, sangho_state ) MCFG_MACHINE_RESET_OVERRIDE(sangho_state,pzlestar) - MCFG_PALETTE_LENGTH(19780) - MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2413, 3580000) @@ -499,7 +497,7 @@ static MACHINE_CONFIG_START( sexyboom, sangho_state ) MCFG_MACHINE_RESET_OVERRIDE(sangho_state,sexyboom) - MCFG_PALETTE_LENGTH(19780) + MCFG_PALETTE_ADD("palette", 19780) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2413, 3580000) diff --git a/src/mame/drivers/sanremo.c b/src/mame/drivers/sanremo.c index 856fcc45582..1f565cae981 100644 --- a/src/mame/drivers/sanremo.c +++ b/src/mame/drivers/sanremo.c @@ -122,7 +122,7 @@ public: DECLARE_WRITE8_MEMBER(lamps_w); int banksel; virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(sanremo); UINT32 screen_update_sanremo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -161,15 +161,15 @@ UINT32 sanremo_state::screen_update_sanremo(screen_device &screen, bitmap_ind16 return 0; } -void sanremo_state::palette_init() +PALETTE_INIT_MEMBER(sanremo_state, sanremo) { int index; for (index = 0; index < 0x8; index++) - palette_set_color_rgb(machine(), index, pal1bit((index >> 0)&1), pal1bit((index >> 1)&1), pal1bit((index >> 2)&1)); + palette.set_pen_color(index, rgb_t(pal1bit((index >> 0)&1), pal1bit((index >> 1)&1), pal1bit((index >> 2)&1))); for (index = 0x8; index < 0x10; index++) - palette_set_color_rgb(machine(), index, pal2bit((index >> 0)&1), pal2bit((index >> 1)&1), pal2bit((index >> 2)&1)); + palette.set_pen_color(index, rgb_t(pal2bit((index >> 0)&1), pal2bit((index >> 1)&1), pal2bit((index >> 2)&1))); } @@ -401,7 +401,8 @@ static MACHINE_CONFIG_START( sanremo, sanremo_state ) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) MCFG_GFXDECODE_ADD("gfxdecode", sanremo) - MCFG_PALETTE_LENGTH(0x10) + MCFG_PALETTE_ADD("palette", 0x10) + MCFG_PALETTE_INIT_OWNER(sanremo_state, sanremo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c index 2a8fc794b64..a6850da3067 100644 --- a/src/mame/drivers/sauro.c +++ b/src/mame/drivers/sauro.c @@ -386,8 +386,7 @@ static MACHINE_CONFIG_START( tecfri, sauro_state ) MCFG_SCREEN_SIZE(32 * 8, 32 * 8) MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 2 * 8, 30 * 8 - 1) - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 1024) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c index 67881e394f6..ce65e059d3a 100644 --- a/src/mame/drivers/sbasketb.c +++ b/src/mame/drivers/sbasketb.c @@ -198,8 +198,8 @@ static MACHINE_CONFIG_START( sbasketb, sbasketb_state ) MCFG_SCREEN_UPDATE_DRIVER(sbasketb_state, screen_update_sbasketb) MCFG_GFXDECODE_ADD("gfxdecode", sbasketb) - MCFG_PALETTE_LENGTH(16*16+16*16*16) - + MCFG_PALETTE_ADD("palette", 16*16+16*16*16) + MCFG_PALETTE_INIT_OWNER(sbasketb_state, sbasketb) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c index e6bc9c28892..249f2b2fe81 100644 --- a/src/mame/drivers/sbowling.c +++ b/src/mame/drivers/sbowling.c @@ -74,7 +74,7 @@ public: DECLARE_READ8_MEMBER(controls_r); TILE_GET_INFO_MEMBER(get_sb_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(sbowling); UINT32 screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(sbw_interrupt); }; @@ -338,7 +338,7 @@ static GFXDECODE_START( sbowling ) GFXDECODE_END -void sbowling_state::palette_init() +PALETTE_INIT_MEMBER(sbowling_state, sbowling) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -353,7 +353,7 @@ void sbowling_state::palette_init() 3, resistances_rg, outputs_g, 0, 100, 2, resistances_b, outputs_b, 0, 100); - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -374,7 +374,7 @@ void sbowling_state::palette_init() bit2 = (color_prom[i+0x400] >> 3) & 0x01; r = (int)(outputs_r[ (bit0<<0) | (bit1<<1) | (bit2<<2) ] + 0.5); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -393,7 +393,8 @@ static MACHINE_CONFIG_START( sbowling, sbowling_state ) MCFG_GFXDECODE_ADD("gfxdecode", sbowling) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_INIT_OWNER(sbowling_state, sbowling) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index a64f769f5df..a3f0c30f948 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -347,7 +347,7 @@ UINT32 sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_ind16 int sx = 31 * 8 - videoram[0x380 + 0x10 + ball * 2]; int sy = 30 * 8 - videoram[0x380 + 0x18 + ball * 2]; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, 0, 0, 0, sx, sy, 0); + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, 0, 0, 0, sx, sy, 0); } return 0; } @@ -516,13 +516,12 @@ static MACHINE_CONFIG_START( sbrkout, sbrkout_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", sbrkout) - MCFG_PALETTE_LENGTH(2) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 262, 0, 224) MCFG_SCREEN_UPDATE_DRIVER(sbrkout_state, screen_update_sbrkout) - 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/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c index 048e8ab0a52..68fcc622000 100644 --- a/src/mame/drivers/sbugger.c +++ b/src/mame/drivers/sbugger.c @@ -239,8 +239,8 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update_sbugger) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(sbugger_state, sbugger) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c index 8acbf9452f6..ea91c98c0f3 100644 --- a/src/mame/drivers/scobra.c +++ b/src/mame/drivers/scobra.c @@ -759,9 +759,9 @@ static MACHINE_CONFIG_START( type1, scobra_state ) MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold) MCFG_GFXDECODE_ADD("gfxdecode", scobra) - MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */ + MCFG_PALETTE_ADD("palette", 32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scobra_state,scrambold) + MCFG_PALETTE_INIT_OWNER(scobra_state,scrambold) MCFG_VIDEO_START_OVERRIDE(scobra_state,scrambold) /* sound hardware */ @@ -784,9 +784,10 @@ static MACHINE_CONFIG_DERIVED( rescue, type1 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_PALETTE_LENGTH(32+64+2+128) /* 32 for characters, 64 for stars, 2 for bullets, 128 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+128) /* 32 for characters, 64 for stars, 2 for bullets, 128 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scobra_state,rescue) + MCFG_PALETTE_INIT_OWNER(scobra_state,rescue) MCFG_VIDEO_START_OVERRIDE(scobra_state,rescue) MACHINE_CONFIG_END @@ -797,9 +798,10 @@ static MACHINE_CONFIG_DERIVED( minefld, type1 ) /* video hardware */ MCFG_SCREEN_MODIFY("screen") - MCFG_PALETTE_LENGTH(32+64+2+256) /* 32 for characters, 64 for stars, 2 for bullets, 256 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+256) /* 32 for characters, 64 for stars, 2 for bullets, 256 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scobra_state,minefld) + MCFG_PALETTE_INIT_OWNER(scobra_state,minefld) MCFG_VIDEO_START_OVERRIDE(scobra_state,minefld) MACHINE_CONFIG_END @@ -831,9 +833,10 @@ static MACHINE_CONFIG_DERIVED( stratgyx, type2 ) MCFG_I8255A_ADD( "ppi8255_1", stratgyx_ppi_1_intf ) /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scobra_state,stratgyx) + MCFG_PALETTE_INIT_OWNER(scobra_state,stratgyx) MCFG_VIDEO_START_OVERRIDE(scobra_state,stratgyx) MACHINE_CONFIG_END @@ -843,9 +846,10 @@ static MACHINE_CONFIG_DERIVED( darkplnt, type2 ) /* basic machine hardware */ /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 (buffer) for stars, 2 for bullets */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2) /* 32 for characters, 64 (buffer) for stars, 2 for bullets */ - MCFG_PALETTE_INIT_OVERRIDE(scobra_state,darkplnt) + MCFG_PALETTE_INIT_OWNER(scobra_state,darkplnt) MCFG_VIDEO_START_OVERRIDE(scobra_state,darkplnt) MACHINE_CONFIG_END @@ -886,9 +890,9 @@ static MACHINE_CONFIG_START( hustler, scobra_state ) MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold) MCFG_GFXDECODE_ADD("gfxdecode", scobra) - MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */ + MCFG_PALETTE_ADD("palette", 32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */ - MCFG_PALETTE_INIT_OVERRIDE(scobra_state,galaxold) + MCFG_PALETTE_INIT_OWNER(scobra_state,galaxold) MCFG_VIDEO_START_OVERRIDE(scobra_state,scrambold) /* sound hardware */ diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c index 61beffe7d1a..e0c940fa7cb 100644 --- a/src/mame/drivers/scotrsht.c +++ b/src/mame/drivers/scotrsht.c @@ -197,8 +197,8 @@ static MACHINE_CONFIG_START( scotrsht, scotrsht_state ) MCFG_SCREEN_UPDATE_DRIVER(scotrsht_state, screen_update_scotrsht) MCFG_GFXDECODE_ADD("gfxdecode", scotrsht) - MCFG_PALETTE_LENGTH(16*8*16+16*8*16) - + MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16) + MCFG_PALETTE_INIT_OWNER(scotrsht_state, scotrsht) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c index 2e731ce30dd..be6b1fd3950 100644 --- a/src/mame/drivers/scramble.c +++ b/src/mame/drivers/scramble.c @@ -1477,9 +1477,9 @@ static MACHINE_CONFIG_START( scramble, scramble_state ) MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold) MCFG_GFXDECODE_ADD("gfxdecode", scramble) - MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_ADD("palette", 32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,scrambold) + MCFG_PALETTE_INIT_OWNER(scramble_state,scrambold) MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold) /* sound hardware */ @@ -1503,8 +1503,9 @@ static MACHINE_CONFIG_DERIVED( mars, scramble ) MCFG_I8255A_ADD( "ppi8255_1", stratgyx_ppi_1_intf ) /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( devilfsh, scramble ) @@ -1515,8 +1516,9 @@ static MACHINE_CONFIG_DERIVED( devilfsh, scramble ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", devilfsh) - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( newsin7, scramble ) @@ -1527,8 +1529,9 @@ static MACHINE_CONFIG_DERIVED( newsin7, scramble ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", newsin7) - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold) MACHINE_CONFIG_END @@ -1543,8 +1546,9 @@ static MACHINE_CONFIG_DERIVED( mrkougar, scramble ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", mrkougar) - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( mrkougb, scramble ) @@ -1557,8 +1561,9 @@ static MACHINE_CONFIG_DERIVED( mrkougb, scramble ) MCFG_I8255A_ADD( "ppi8255_1", mrkougar_ppi_1_intf ) /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ckongs, scramble ) @@ -1568,8 +1573,9 @@ static MACHINE_CONFIG_DERIVED( ckongs, scramble ) MCFG_CPU_PROGRAM_MAP(ckongs_map) /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs) MACHINE_CONFIG_END @@ -1588,8 +1594,9 @@ static MACHINE_CONFIG_DERIVED( hotshock, scramble ) MCFG_MACHINE_RESET_OVERRIDE(scramble_state,galaxold) /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MCFG_VIDEO_START_OVERRIDE(scramble_state,pisces) MCFG_SOUND_MODIFY("8910.1") @@ -1607,8 +1614,9 @@ static MACHINE_CONFIG_DERIVED( cavelon, scramble ) /* basic machine hardware */ /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MCFG_VIDEO_START_OVERRIDE(scramble_state,ckongs) MACHINE_CONFIG_END @@ -1635,9 +1643,9 @@ static MACHINE_CONFIG_DERIVED( triplep, scramble ) MCFG_DEVICE_REMOVE("konami_7474") /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */ - - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */ + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) /* sound hardware */ MCFG_SOUND_MODIFY("8910.1") @@ -1654,9 +1662,10 @@ static MACHINE_CONFIG_DERIVED( mariner, triplep ) /* basic machine hardware */ /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+16) /* 32 for characters, 64 for stars, 2 for bullets, 16 for background */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+16) /* 32 for characters, 64 for stars, 2 for bullets, 16 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,mariner) + MCFG_PALETTE_INIT_OWNER(scramble_state,mariner) MCFG_VIDEO_START_OVERRIDE(scramble_state,mariner) MACHINE_CONFIG_END @@ -1673,9 +1682,10 @@ static MACHINE_CONFIG_DERIVED( hunchbks, scramble ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* video hardware */ - MCFG_PALETTE_LENGTH(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */ + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,galaxold) + MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( hncholms, hunchbks ) @@ -1714,9 +1724,9 @@ static MACHINE_CONFIG_START( ad2083, scramble_state ) MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold) MCFG_GFXDECODE_ADD("gfxdecode", ad2083) - MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */ + MCFG_PALETTE_ADD("palette", 32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */ - MCFG_PALETTE_INIT_OVERRIDE(scramble_state,turtles) + MCFG_PALETTE_INIT_OWNER(scramble_state,turtles) MCFG_VIDEO_START_OVERRIDE(scramble_state,ad2083) /* sound hardware */ diff --git a/src/mame/drivers/scregg.c b/src/mame/drivers/scregg.c index dedcbead124..fd7178269f8 100644 --- a/src/mame/drivers/scregg.c +++ b/src/mame/drivers/scregg.c @@ -268,9 +268,9 @@ static MACHINE_CONFIG_START( dommy, scregg_state ) MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs) MCFG_GFXDECODE_ADD("gfxdecode", scregg) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) - MCFG_PALETTE_INIT_OVERRIDE(scregg_state,btime) + MCFG_PALETTE_INIT_OWNER(scregg_state,btime) MCFG_VIDEO_START_OVERRIDE(scregg_state,btime) /* sound hardware */ @@ -300,9 +300,9 @@ static MACHINE_CONFIG_START( scregg, scregg_state ) MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs) MCFG_GFXDECODE_ADD("gfxdecode", scregg) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) - MCFG_PALETTE_INIT_OVERRIDE(scregg_state,btime) + MCFG_PALETTE_INIT_OWNER(scregg_state,btime) MCFG_VIDEO_START_OVERRIDE(scregg_state,btime) /* sound hardware */ diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c index 14d25fd272f..3a790e8de9e 100644 --- a/src/mame/drivers/sderby.c +++ b/src/mame/drivers/sderby.c @@ -302,7 +302,7 @@ static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r) AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */ AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xffc000, 0xffffff) AM_RAM @@ -320,7 +320,7 @@ static ADDRESS_MAP_START( sderbya_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0x308000, 0x30800d) AM_READ(sderbya_input_r) AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */ AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ //MOD AM_RANGE(0xcf0000, 0xcf07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xcfc000, 0xcfffff) AM_RAM //MOD @@ -339,7 +339,7 @@ static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r) AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */ AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ AM_RANGE(0xe00000, 0xe007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xff0000, 0xffffff) AM_RAM @@ -358,7 +358,7 @@ static ADDRESS_MAP_START( spacewin_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r) AM_RANGE(0x308008, 0x308009) AM_WRITE(scmatto_out_w) /* output port */ AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x380000, 0x380fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd001ff) AM_RAM AM_RANGE(0x800000, 0x800fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x801000, 0x80100d) AM_WRITENOP /* unknown */ @@ -380,7 +380,7 @@ static ADDRESS_MAP_START( roulette_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0x70800a, 0x70800b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0x70800c, 0x70800d) AM_WRITENOP /* watchdog?? (0x0003) */ AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(rprot_r, rprot_w) /* MCU communication */ - AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x780000, 0x780fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xff0000, 0xff07ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xffc000, 0xffffff) AM_RAM @@ -563,7 +563,8 @@ static MACHINE_CONFIG_START( sderby, sderby_state ) MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby) MCFG_GFXDECODE_ADD("gfxdecode", sderby) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ @@ -586,7 +587,8 @@ static MACHINE_CONFIG_START( sderbya, sderby_state ) MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby) MCFG_GFXDECODE_ADD("gfxdecode", sderby) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ @@ -611,7 +613,8 @@ static MACHINE_CONFIG_START( luckboom, sderby_state ) MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby) MCFG_GFXDECODE_ADD("gfxdecode", sderby) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ @@ -634,7 +637,8 @@ static MACHINE_CONFIG_START( spacewin, sderby_state ) MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet) MCFG_GFXDECODE_ADD("gfxdecode", sderby) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ @@ -657,7 +661,8 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state ) MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet) MCFG_GFXDECODE_ADD("gfxdecode", sderby) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ diff --git a/src/mame/drivers/seabattl.c b/src/mame/drivers/seabattl.c index e1b86270fcb..56842979bcb 100644 --- a/src/mame/drivers/seabattl.c +++ b/src/mame/drivers/seabattl.c @@ -91,7 +91,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(seabattl); UINT32 screen_update_seabattl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); bool m_waveenable; UINT8 m_collision; @@ -105,24 +105,24 @@ public: ***************************************************************************/ -void seabattl_state::palette_init() +PALETTE_INIT_MEMBER(seabattl_state, seabattl) { // sprites (m.obj) + s2636 for (int i = 0; i < 8; i++) { - palette_set_color(machine(), i, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00)); + palette.set_pen_color(i, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00)); } // scr for (int i = 0; i < 8; i++) { - palette_set_color(machine(), 8 + 2 * i + 0, rgb_t::black); - palette_set_color(machine(), 8 + 2 * i + 1, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00)); + palette.set_pen_color(8 + 2 * i + 0, rgb_t::black); + palette.set_pen_color(8 + 2 * i + 1, rgb_t((i & 1) ? 0xff : 0x00, (i & 2) ? 0xff : 0x00, (i & 4) ? 0xff : 0x00)); } // wave - palette_set_color(machine(), 24, rgb_t::black); - palette_set_color(machine(), 25, rgb_t(0x00, 0xff, 0xff)); // cyan + palette.set_pen_color(24, rgb_t::black); + palette.set_pen_color(25, rgb_t(0x00, 0xff, 0xff)); // cyan } TILE_GET_INFO_MEMBER(seabattl_state::get_bg_tile_info) @@ -156,7 +156,7 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1 { for ( x = 0; x < 32; x++ ) { - m_gfxdecode->gfx(2)->opaque(bitmap,cliprect, (y & 0x0f) + (((x & 0x0f) + ((screen.frame_number() & 0xe0) >> 4)) << 4), 0, 0, 0, x*8, y*8 ); + m_gfxdecode->gfx(2)->opaque(m_palette,bitmap,cliprect, (y & 0x0f) + (((x & 0x0f) + ((screen.frame_number() & 0xe0) >> 4)) << 4), 0, 0, 0, x*8, y*8 ); } } } @@ -180,7 +180,7 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1 int x = ((offset & 0x0f) << 4) - ((m_objram[offset] & 0xf0) >> 4); int y = (offset & 0xf0); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, code, 0, 0, 0, x, y, 0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, code, 0, 0, 0, x, y, 0); } } @@ -545,7 +545,8 @@ static MACHINE_CONFIG_START( seabattl, seabattl_state ) MCFG_SCREEN_UPDATE_DRIVER(seabattl_state, screen_update_seabattl) MCFG_GFXDECODE_ADD("gfxdecode", seabattl) - MCFG_PALETTE_LENGTH(26) + MCFG_PALETTE_ADD("palette", 26) + MCFG_PALETTE_INIT_OWNER(seabattl_state, seabattl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index a9f71e4dba6..0f054fdf3e9 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -219,7 +219,7 @@ WRITE16_MEMBER(segac2_state::palette_w ) b = ((newword >> 7) & 0x1e) | ((newword >> 14) & 0x01); /* set the color */ - palette_set_color_rgb(space.machine(), offset, pal5bit(r), pal5bit(g), pal5bit(b)); + m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b)); // megadrive_vdp_palette_lookup[offset] = (b) | (g << 5) | (r << 10); // megadrive_vdp_palette_lookup_sprite[offset] = (b) | (g << 5) | (r << 10); @@ -227,13 +227,13 @@ WRITE16_MEMBER(segac2_state::palette_w ) tmpr = r >> 1; tmpg = g >> 1; tmpb = b >> 1; - palette_set_color_rgb(space.machine(), offset + 0x800, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb)); + m_palette->set_pen_color(offset + 0x800, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb)); // how is it calculated on c2? tmpr = tmpr | 0x10; tmpg = tmpg | 0x10; tmpb = tmpb | 0x10; - palette_set_color_rgb(space.machine(), offset + 0x1000, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb)); + m_palette->set_pen_color(offset + 0x1000, pal5bit(tmpr), pal5bit(tmpg), pal5bit(tmpb)); } @@ -1257,10 +1257,10 @@ VIDEO_START_MEMBER(segac2_state,segac2_new) // and applies it's own external colour circuity UINT32 segac2_state::screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - const pen_t *paldata = machine().pens; + const pen_t *paldata = m_palette->pens(); if (!m_segac2_enable_display) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); return 0; } @@ -1376,7 +1376,7 @@ static MACHINE_CONFIG_START( segac, segac2_state ) MCFG_SCREEN_UPDATE_DRIVER(segac2_state, screen_update_segac2_new) MCFG_SCREEN_VBLANK_DRIVER(segac2_state, screen_eof_megadriv ) - MCFG_PALETTE_LENGTH(2048*3) + MCFG_PALETTE_ADD("palette", 2048*3) MCFG_VIDEO_START_OVERRIDE(segac2_state,segac2_new) diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c index 6c119039057..8a5c134091d 100644 --- a/src/mame/drivers/segae.c +++ b/src/mame/drivers/segae.c @@ -992,8 +992,6 @@ static MACHINE_CONFIG_START( systeme, systeme_state ) SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192) MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme) - MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) - MCFG_SEGA315_5124_ADD("vdp1", _315_5124_1_intf) MCFG_DEVICE_ADDRESS_MAP(AS_0, vdp1_map) diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c index db5e2d0a8c8..4afe5703cbb 100644 --- a/src/mame/drivers/segag80r.c +++ b/src/mame/drivers/segag80r.c @@ -829,7 +829,7 @@ static MACHINE_CONFIG_START( g80r_base, segag80r_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", segag80r) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) @@ -871,7 +871,8 @@ static MACHINE_CONFIG_DERIVED( spaceod, g80r_base ) MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_SCREEN_MODIFY("screen") MCFG_GFXDECODE_MODIFY("gfxdecode", spaceod) - MCFG_PALETTE_LENGTH(64+64) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64+64) /* sound boards */ MCFG_FRAGMENT_ADD(spaceod_sound_board) @@ -887,7 +888,8 @@ static MACHINE_CONFIG_DERIVED( monsterb, g80r_base ) /* background board changes */ MCFG_GFXDECODE_MODIFY("gfxdecode", monsterb) - MCFG_PALETTE_LENGTH(64+64) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64+64) /* sound boards */ MCFG_FRAGMENT_ADD(monsterb_sound_board) @@ -900,7 +902,8 @@ static MACHINE_CONFIG_DERIVED( pignewt, g80r_base ) /* background board changes */ MCFG_GFXDECODE_MODIFY("gfxdecode", monsterb) - MCFG_PALETTE_LENGTH(64+64) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64+64) /* sound boards */ MCFG_SEGAUSB_ADD("usbsnd") @@ -918,7 +921,8 @@ static MACHINE_CONFIG_DERIVED( sindbadm, g80r_base ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", monsterb) - MCFG_PALETTE_LENGTH(64+64) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 64+64) /* sound boards */ diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c index 8c7940bd0c9..09d2fb7ef90 100644 --- a/src/mame/drivers/segahang.c +++ b/src/mame/drivers/segahang.c @@ -822,7 +822,7 @@ static MACHINE_CONFIG_START( shared_base, segahang_state ) // video hardware MCFG_GFXDECODE_ADD("gfxdecode", segahang) - MCFG_PALETTE_LENGTH(2048*3) + MCFG_PALETTE_ADD("palette", 2048*3) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224) diff --git a/src/mame/drivers/segajw.c b/src/mame/drivers/segajw.c index b4056fecb17..3c83f432cb4 100644 --- a/src/mame/drivers/segajw.c +++ b/src/mame/drivers/segajw.c @@ -43,7 +43,6 @@ protected: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); }; @@ -81,10 +80,6 @@ void segajw_state::machine_reset() { } -void segajw_state::palette_init() -{ -} - static MACHINE_CONFIG_START( segajw, segajw_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",M68000,8000000) // unknown clock @@ -99,7 +94,7 @@ static MACHINE_CONFIG_START( segajw, segajw_state ) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c index 579c899e580..aef17cebbf5 100644 --- a/src/mame/drivers/segald.c +++ b/src/mame/drivers/segald.c @@ -77,7 +77,7 @@ void segald_state::astron_draw_characters(bitmap_rgb32 &bitmap,const rectangle & for (characterY = 0; characterY < 32; characterY++) { int current_screen_character = (characterY*32) + characterX; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, m_fix_ram[current_screen_character], + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, m_fix_ram[current_screen_character], 1, 0, 0, characterX*8, characterY*8, 0); } } @@ -226,7 +226,7 @@ WRITE8_MEMBER(segald_state::astron_COLOR_write) b = (highBits & 0x0f); a = (highBits & 0x80) ? 0 : 255; - palette_set_color(machine(), palIndex, rgb_t(a, r, g, b)); + m_palette->set_pen_color(palIndex, rgb_t(a, r, g, b)); logerror("COLOR write : 0x%04x @ 0x%04x [0x%x]\n", data, offset, space.device().safe_pc()); } @@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( astron, segald_state ) MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") MCFG_GFXDECODE_ADD("gfxdecode", segald) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardare */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c index ea4897c5368..03e225c5eaa 100644 --- a/src/mame/drivers/segaorun.c +++ b/src/mame/drivers/segaorun.c @@ -1204,7 +1204,7 @@ static MACHINE_CONFIG_START( outrun_base, segaorun_state ) // video hardware MCFG_GFXDECODE_ADD("gfxdecode", segaorun) - MCFG_PALETTE_LENGTH(4096*3) + MCFG_PALETTE_ADD("palette", 4096*3) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224) diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index 4e0f6cab611..266b4aaca12 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -1925,7 +1925,7 @@ static MACHINE_CONFIG_START( system16a, segas16a_state ) MCFG_SEGAIC16VID_GFXDECODE("gfxdecode") MCFG_GFXDECODE_ADD("gfxdecode", segas16a) - MCFG_PALETTE_LENGTH(2048*3) + MCFG_PALETTE_ADD("palette", 2048*3) // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index d216b6c9bf6..be69e347a03 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -3273,7 +3273,7 @@ static MACHINE_CONFIG_START( system16b, segas16b_state ) // video hardware MCFG_GFXDECODE_ADD("gfxdecode", segas16b) - MCFG_PALETTE_LENGTH(2048*3) + MCFG_PALETTE_ADD("palette", 2048*3) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224) diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 357ce0dcf07..426a833431b 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -1251,7 +1251,7 @@ static MACHINE_CONFIG_START( system18, segas18_state ) MCFG_SCREEN_UPDATE_DRIVER(segas18_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", segas18) - MCFG_PALETTE_LENGTH(2048*3+2048 + 64*3) + MCFG_PALETTE_ADD("palette", 2048*3+2048 + 64*3) MCFG_SEGA_SYS16B_SPRITES_ADD("sprites") MCFG_SEGAIC16VID_ADD("segaic16vid") diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c index 0f18a74de7b..13eecd9ba00 100644 --- a/src/mame/drivers/segas24.c +++ b/src/mame/drivers/segas24.c @@ -1106,7 +1106,7 @@ WRITE16_MEMBER( segas24_state::sys16_paletteram_w ) g |= g >> 5; b |= b >> 5; - palette_set_color(machine(), offset, rgb_t(r, g, b)); + m_palette->set_pen_color(offset, rgb_t(r, g, b)); if(data & 0x8000) { r = 255-0.6*(255-r); @@ -1117,7 +1117,7 @@ WRITE16_MEMBER( segas24_state::sys16_paletteram_w ) g = 0.6*g; b = 0.6*b; } - palette_set_color(machine(), offset+machine().total_colors()/2, rgb_t(r, g, b)); + m_palette->set_pen_color(offset+m_palette->entries()/2, rgb_t(r, g, b)); } @@ -1946,6 +1946,7 @@ static MACHINE_CONFIG_START( system24, segas24_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_S24TILE_DEVICE_ADD("tile", 0xfff) MCFG_S24TILE_DEVICE_GFXDECODE("gfxdecode") + MCFG_S24TILE_DEVICE_PALETTE("palette") MCFG_S24SPRITE_DEVICE_ADD("sprite") MCFG_S24MIXER_DEVICE_ADD("mixer") @@ -1953,7 +1954,7 @@ static MACHINE_CONFIG_START( system24, segas24_state ) MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/) MCFG_SCREEN_UPDATE_DRIVER(segas24_state, screen_update_system24) - MCFG_PALETTE_LENGTH(8192*2) + MCFG_PALETTE_ADD("palette", 8192*2) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index df97bc232aa..f9142692e67 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -2344,7 +2344,7 @@ static MACHINE_CONFIG_START( system32, segas32_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", segas32) - MCFG_PALETTE_LENGTH(0x4000) + MCFG_PALETTE_ADD("palette", 0x4000) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2401,7 +2401,7 @@ static MACHINE_CONFIG_START( multi32, segas32_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", segas32) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c index 54634cf1f0a..b4e0ffdea59 100644 --- a/src/mame/drivers/segaxbd.c +++ b/src/mame/drivers/segaxbd.c @@ -1557,7 +1557,7 @@ static MACHINE_CONFIG_START( xboard, segaxbd_state ) // video hardware MCFG_GFXDECODE_ADD("gfxdecode", segaxbd) - MCFG_PALETTE_LENGTH(8192*3) + MCFG_PALETTE_ADD("palette", 8192*3) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/8, 400, 0, 320, 262, 0, 224) diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c index 2ee1c4da660..31b3d083970 100644 --- a/src/mame/drivers/segaybd.c +++ b/src/mame/drivers/segaybd.c @@ -1194,7 +1194,7 @@ static MACHINE_CONFIG_START( yboard, segaybd_state ) MCFG_SEGAIC16VID_ADD("segaic16vid") MCFG_SEGAIC16VID_GFXDECODE("gfxdecode") - MCFG_PALETTE_LENGTH(8192*3) + MCFG_PALETTE_ADD("palette", 8192*3) // sound hardware MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c index 3b18e98c65b..aee062cc357 100644 --- a/src/mame/drivers/seibuspi.c +++ b/src/mame/drivers/seibuspi.c @@ -1846,8 +1846,8 @@ static MACHINE_CONFIG_START( spi, seibuspi_state ) MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi) MCFG_GFXDECODE_ADD("gfxdecode", spi) - MCFG_PALETTE_LENGTH(6144) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1944,8 +1944,8 @@ static MACHINE_CONFIG_START( sys386i, seibuspi_state ) MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi) MCFG_GFXDECODE_ADD("gfxdecode", spi) - MCFG_PALETTE_LENGTH(6144) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1997,8 +1997,8 @@ static MACHINE_CONFIG_START( sys386f, seibuspi_state ) MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f) MCFG_GFXDECODE_ADD("gfxdecode", sys386f) - MCFG_PALETTE_LENGTH(8192) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 8192) MCFG_VIDEO_START_OVERRIDE(seibuspi_state, sys386f) diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c index 53a1fd5d934..1b6a68118e7 100644 --- a/src/mame/drivers/seicross.c +++ b/src/mame/drivers/seicross.c @@ -419,8 +419,8 @@ static MACHINE_CONFIG_START( nvram, seicross_state ) MCFG_SCREEN_UPDATE_DRIVER(seicross_state, screen_update_seicross) MCFG_GFXDECODE_ADD("gfxdecode", seicross) - MCFG_PALETTE_LENGTH(64) - + MCFG_PALETTE_ADD("palette", 64) + MCFG_PALETTE_INIT_OWNER(seicross_state, seicross) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c index 7a172fba155..5d99042cfa3 100644 --- a/src/mame/drivers/sengokmj.c +++ b/src/mame/drivers/sengokmj.c @@ -271,11 +271,11 @@ void sengokmj_state::draw_sprites(running_machine &machine, bitmap_ind16 &bitmap for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { if (!fx) - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+ax*16,y+ay*16,15); else - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, sprite++, color,fx,fy,x+(dx-1-ax)*16,y+ay*16,15); } @@ -296,7 +296,7 @@ void sengokmj_state::video_start() UINT32 sengokmj_state::screen_update_sengokmj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(screen.machine().pens[0x7ff], cliprect); //black pen + bitmap.fill(m_palette->pen(0x7ff), cliprect); //black pen /* TODO: offsetted? */ m_sc0_tilemap->set_scrollx(0, (SEIBU_CRTC_SC0_SX + 128) & 0x1ff ); @@ -372,7 +372,7 @@ static ADDRESS_MAP_START( sengokmj_map, AS_PROGRAM, 16, sengokmj_state ) AM_RANGE(0x0c800, 0x0cfff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_SHARE("sc1_vram") AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_SHARE("sc2_vram") AM_RANGE(0x0d800, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_SHARE("sc3_vram") - AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_SHARE("sprite_ram") AM_RANGE(0xc0000, 0xfffff) AM_ROM ADDRESS_MAP_END @@ -581,7 +581,8 @@ static MACHINE_CONFIG_START( sengokmj, sengokmj_state ) MCFG_SEIBU_CRTC_ADD("crtc",crtc_intf,0) MCFG_GFXDECODE_ADD("gfxdecode", sengokmj) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000) diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c index 28190a34cad..1d3e0c7323b 100644 --- a/src/mame/drivers/senjyo.c +++ b/src/mame/drivers/senjyo.c @@ -124,7 +124,7 @@ WRITE8_MEMBER(senjyo_state::senjyo_paletteram_w) int bb = b|((b!=0)?i:0); m_generic_paletteram_8[offset] = data; - palette_set_color_rgb(machine(), offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) ); + m_palette->set_pen_color(offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) ); } static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state ) @@ -574,8 +574,8 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state ) MCFG_SCREEN_UPDATE_DRIVER(senjyo_state, screen_update_senjyo) MCFG_GFXDECODE_ADD("gfxdecode", senjyo) - MCFG_PALETTE_LENGTH(512+2) /* 512 real palette + 2 for the radar */ - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 512+2) /* 512 real palette + 2 for the radar */ /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index c3742b67355..e57d24ef651 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -7491,6 +7491,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7501,7 +7502,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -7542,6 +7543,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7552,7 +7554,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", downtown) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,twineagl_1_layer) @@ -7585,6 +7587,7 @@ static MACHINE_CONFIG_START( downtown, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7595,7 +7598,7 @@ static MACHINE_CONFIG_START( downtown, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", downtown) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) @@ -7644,6 +7647,7 @@ static MACHINE_CONFIG_START( usclssic, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7654,9 +7658,9 @@ static MACHINE_CONFIG_START( usclssic, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_usclssic) MCFG_GFXDECODE_ADD("gfxdecode", usclssic) - MCFG_PALETTE_LENGTH(16*32 + 64*32*2) /* sprites, layer */ + MCFG_PALETTE_ADD("palette", 16*32 + 64*32*2) /* sprites, layer */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,usclssic) /* layer is 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,usclssic) /* layer is 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) /* sound hardware */ @@ -7694,6 +7698,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7704,7 +7709,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", downtown) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) @@ -7735,6 +7740,7 @@ static MACHINE_CONFIG_START( metafox, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7745,7 +7751,7 @@ static MACHINE_CONFIG_START( metafox, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", downtown) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) @@ -7772,6 +7778,7 @@ static MACHINE_CONFIG_START( atehate, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7782,7 +7789,7 @@ static MACHINE_CONFIG_START( atehate, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -7815,6 +7822,7 @@ static MACHINE_CONFIG_START( blandia, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7826,9 +7834,9 @@ static MACHINE_CONFIG_START( blandia, seta_state ) MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE_ADD("gfxdecode", blandia) - MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ + MCFG_PALETTE_ADD("palette", (16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,blandia) /* layers 1&2 are 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,blandia) /* layers 1&2 are 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -7849,6 +7857,7 @@ static MACHINE_CONFIG_START( blandiap, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7860,9 +7869,9 @@ static MACHINE_CONFIG_START( blandiap, seta_state ) MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE_ADD("gfxdecode", blandia) - MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ + MCFG_PALETTE_ADD("palette", (16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,blandia) /* layers 1&2 are 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,blandia) /* layers 1&2 are 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -7888,6 +7897,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7898,7 +7908,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -7961,6 +7971,7 @@ static MACHINE_CONFIG_START( daioh, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -7971,7 +7982,7 @@ static MACHINE_CONFIG_START( daioh, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8003,6 +8014,7 @@ static MACHINE_CONFIG_START( drgnunit, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8014,7 +8026,7 @@ static MACHINE_CONFIG_START( drgnunit, seta_state ) MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE_ADD("gfxdecode", downtown) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) @@ -8039,6 +8051,7 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8050,7 +8063,7 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state ) MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE_ADD("gfxdecode", qzkklgy2) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) @@ -8088,6 +8101,7 @@ static MACHINE_CONFIG_START( setaroul, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") MCFG_NVRAM_ADD_RANDOM_FILL("nvram") @@ -8101,8 +8115,8 @@ static MACHINE_CONFIG_START( setaroul, seta_state ) MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_setaroul) MCFG_GFXDECODE_ADD("gfxdecode", setaroul) - MCFG_PALETTE_LENGTH(512) - MCFG_PALETTE_INIT_OVERRIDE(seta_state,setaroul) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(seta_state,setaroul) MCFG_VIDEO_START_OVERRIDE(seta_state,setaroul_1_layer) @@ -8129,6 +8143,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8139,7 +8154,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8171,6 +8186,7 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8181,9 +8197,9 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", zingzip) - MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -8233,6 +8249,7 @@ static MACHINE_CONFIG_START( gundhara, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8243,9 +8260,9 @@ static MACHINE_CONFIG_START( gundhara, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk) - MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */ + MCFG_PALETTE_INIT_OWNER(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -8275,6 +8292,7 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8285,9 +8303,9 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk) - MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -8308,6 +8326,7 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8318,9 +8337,9 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk) - MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -8350,6 +8369,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8360,7 +8380,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8388,6 +8408,7 @@ static MACHINE_CONFIG_START( orbs, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8398,7 +8419,7 @@ static MACHINE_CONFIG_START( orbs, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", orbs) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8427,6 +8448,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8437,7 +8459,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", orbs) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8464,6 +8486,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8474,7 +8497,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8506,6 +8529,7 @@ static MACHINE_CONFIG_START( madshark, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8516,9 +8540,9 @@ static MACHINE_CONFIG_START( madshark, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", jjsquawk) - MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,jjsquawk) /* layers are 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8549,6 +8573,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8559,7 +8584,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8596,6 +8621,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8607,7 +8633,7 @@ static MACHINE_CONFIG_START( msgundam, seta_state ) MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8635,6 +8661,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8645,7 +8672,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */ MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps @@ -8673,6 +8700,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8683,7 +8711,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */ MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps @@ -8709,6 +8737,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8719,7 +8748,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8749,6 +8778,7 @@ static MACHINE_CONFIG_START( rezon, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8759,7 +8789,7 @@ static MACHINE_CONFIG_START( rezon, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -8789,6 +8819,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8799,7 +8830,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8861,6 +8892,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8871,7 +8903,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", wiggie) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8896,6 +8928,7 @@ static MACHINE_CONFIG_START( wits, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8906,7 +8939,7 @@ static MACHINE_CONFIG_START( wits, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8933,6 +8966,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8943,7 +8977,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -8974,6 +9008,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -8984,7 +9019,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -9024,6 +9059,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -9034,7 +9070,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", msgundam) - MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ + MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) @@ -9068,6 +9104,7 @@ static MACHINE_CONFIG_START( zingzip, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -9078,9 +9115,9 @@ static MACHINE_CONFIG_START( zingzip, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", zingzip) - MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ + MCFG_PALETTE_ADD("palette", 16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */ + MCFG_PALETTE_INIT_OWNER(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -9122,6 +9159,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -9132,7 +9170,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", tndrcade) - MCFG_PALETTE_LENGTH(2048) /* sprites only */ + MCFG_PALETTE_ADD("palette", 2048) /* sprites only */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers) @@ -9170,6 +9208,7 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -9180,9 +9219,9 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta) MCFG_GFXDECODE_ADD("gfxdecode", crazyfgt) - MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer1, layer2 */ + MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer1, layer2 */ - MCFG_PALETTE_INIT_OVERRIDE(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */ + MCFG_PALETTE_INIT_OWNER(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */ MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers) /* sound hardware */ @@ -9235,6 +9274,7 @@ static MACHINE_CONFIG_START( inttoote, seta_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -9245,9 +9285,9 @@ static MACHINE_CONFIG_START( inttoote, seta_state ) MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_inttoote) MCFG_GFXDECODE_ADD("gfxdecode", inttoote) - MCFG_PALETTE_LENGTH(512 * 1) + MCFG_PALETTE_ADD("palette", 512 * 1) - MCFG_PALETTE_INIT_OVERRIDE(seta_state,inttoote) + MCFG_PALETTE_INIT_OWNER(seta_state,inttoote) MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer) /* sound hardware */ diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 6b851644b68..8ee543529e9 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -168,7 +168,7 @@ static ADDRESS_MAP_START( grdians_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w) AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks @@ -206,7 +206,7 @@ static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w) AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks @@ -264,7 +264,7 @@ static ADDRESS_MAP_START( mj4simai_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers ADDRESS_MAP_END @@ -287,7 +287,7 @@ static ADDRESS_MAP_START( myangel_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x700310, 0x70031f) AM_WRITE(seta2_sound_bank_w) // Samples Banks AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers ADDRESS_MAP_END @@ -310,7 +310,7 @@ static ADDRESS_MAP_START( myangel2_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xd00000, 0xd3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xd40000, 0xd4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xd40000, 0xd4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xd60000, 0xd6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers ADDRESS_MAP_END @@ -354,7 +354,7 @@ static ADDRESS_MAP_START( pzlbowl_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x500006, 0x500007) AM_READ(watchdog_reset16_r) // Watchdog AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r) // Protection AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x840000, 0x84ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x840000, 0x84ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x860000, 0x86003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers @@ -380,7 +380,7 @@ static ADDRESS_MAP_START( penbros_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r) // Watchdog //AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r) // Protection AM_RANGE(0xb00000, 0xb3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xb40000, 0xb4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xb40000, 0xb4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xb60000, 0xb6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers @@ -439,7 +439,7 @@ static ADDRESS_MAP_START( reelquak_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE(0x400300, 0x40030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers ADDRESS_MAP_END @@ -495,7 +495,7 @@ static ADDRESS_MAP_START( samshoot_map, AS_PROGRAM, 16, seta2_state ) AM_RANGE( 0x700006, 0x700007 ) AM_READ(watchdog_reset16_r ) // Watchdog? AM_RANGE( 0x800000, 0x83ffff ) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE( 0x840000, 0x84ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE( 0x840000, 0x84ffff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE( 0x860000, 0x86003f ) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers AM_RANGE( 0x900000, 0x903fff ) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound @@ -581,7 +581,7 @@ static ADDRESS_MAP_START( funcube_map, AS_PROGRAM, 32, seta2_state ) AM_RANGE( 0x00500000, 0x00500003 ) AM_READWRITE(oki_read, oki_write) AM_RANGE( 0x00800000, 0x0083ffff ) AM_READWRITE16(spriteram16_word_r, spriteram16_word_w, 0xffffffff ) AM_SHARE("spriteram") - AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE( 0x00860000, 0x0086003f ) AM_WRITE16(seta2_vregs_w, 0xffffffff ) AM_SHARE("vregs") AM_RANGE( 0x00c00000, 0x00c002ff ) AM_READWRITE(funcube_nvram_dword_r, funcube_nvram_dword_w ) @@ -600,7 +600,7 @@ static ADDRESS_MAP_START( funcube2_map, AS_PROGRAM, 32, seta2_state ) AM_RANGE( 0x00600000, 0x00600003 ) AM_READWRITE(oki_read, oki_write) AM_RANGE( 0x00800000, 0x0083ffff ) AM_READWRITE16(spriteram16_word_r, spriteram16_word_w, 0xffffffff ) AM_SHARE("spriteram") - AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_dword_be_w) AM_SHARE("paletteram") + AM_RANGE( 0x00840000, 0x0084ffff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x00860000, 0x0086003f ) AM_WRITE16(seta2_vregs_w, 0xffffffff ) AM_SHARE("vregs") AM_RANGE( 0x00c00000, 0x00c002ff ) AM_READWRITE(funcube_nvram_dword_r, funcube_nvram_dword_w ) @@ -2029,7 +2029,8 @@ static MACHINE_CONFIG_START( seta2, seta2_state ) MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2) MCFG_GFXDECODE_ADD("gfxdecode", seta2) - MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity + MCFG_PALETTE_ADD("palette", 0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2) @@ -2229,7 +2230,8 @@ static MACHINE_CONFIG_START( funcube, seta2_state ) MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2) MCFG_GFXDECODE_ADD("gfxdecode", funcube) - MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity + MCFG_PALETTE_ADD("palette", 0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2) @@ -2280,7 +2282,8 @@ static MACHINE_CONFIG_START( namcostr, seta2_state ) MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2) MCFG_GFXDECODE_ADD("gfxdecode", funcube) - MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity + MCFG_PALETTE_ADD("palette", 0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(seta2_state,seta2) diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c index f2ca8507cdd..c9d2294f0cc 100644 --- a/src/mame/drivers/sf.c +++ b/src/mame/drivers/sf.c @@ -198,7 +198,7 @@ WRITE8_MEMBER(sf_state::msm2_5205_w) static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16, sf_state ) AM_RANGE(0x000000, 0x04ffff) AM_ROM AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("COINS") AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN0") AM_RANGE(0xc00004, 0xc00005) AM_READ(button1_r) @@ -220,7 +220,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sfus_map, AS_PROGRAM, 16, sf_state ) AM_RANGE(0x000000, 0x04ffff) AM_ROM AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") AM_RANGE(0xc00004, 0xc00005) AM_READ(dummy_r) @@ -242,7 +242,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sfjp_map, AS_PROGRAM, 16, sf_state ) AM_RANGE(0x000000, 0x04ffff) AM_ROM AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(sf_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("COINS") AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1") AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("P2") @@ -841,8 +841,9 @@ static MACHINE_CONFIG_START( sf, sf_state ) MCFG_SCREEN_UPDATE_DRIVER(sf_state, screen_update_sf) MCFG_GFXDECODE_ADD("gfxdecode", sf) - MCFG_PALETTE_LENGTH(1024) - + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c index b0c6a1b388c..cd782cecf93 100644 --- a/src/mame/drivers/sfbonus.c +++ b/src/mame/drivers/sfbonus.c @@ -1076,8 +1076,8 @@ UINT32 sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16 globalyscroll += 8; globalxscroll += 8; - bitmap.fill(machine().pens[0], cliprect); - m_temp_reel_bitmap->fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); + m_temp_reel_bitmap->fill(m_palette->pen(0), cliprect); /* render reels to bitmap */ sfbonus_draw_reel_layer(screen,*m_temp_reel_bitmap,cliprect,0); @@ -1377,9 +1377,9 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 288-1) MCFG_SCREEN_UPDATE_DRIVER(sfbonus_state, screen_update_sfbonus) - MCFG_PALETTE_LENGTH(0x100*2) // *2 for priority workaraound / custom drawing + MCFG_PALETTE_ADD("palette", 0x100*2) // *2 for priority workaraound / custom drawing - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") /* Parrot 3 seems fine at 1 Mhz, but Double Challenge isn't? */ diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c index d0df5d98486..9e7d6f8f5a8 100644 --- a/src/mame/drivers/sfkick.c +++ b/src/mame/drivers/sfkick.c @@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state ) MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS) 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) MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c index b4e65e1278f..143b1ca244c 100644 --- a/src/mame/drivers/shadfrce.c +++ b/src/mame/drivers/shadfrce.c @@ -271,7 +271,7 @@ WRITE16_MEMBER(shadfrce_state::shadfrce_sound_brt_w) double brt = (data & 0xff) / 255.0; for (i = 0; i < 0x4000; i++) - palette_set_pen_contrast(machine(), i, brt); + m_palette->set_pen_contrast(i, brt); } } @@ -366,7 +366,7 @@ static ADDRESS_MAP_START( shadfrce_map, AS_PROGRAM, 16, shadfrce_state ) AM_RANGE(0x102800, 0x103fff) AM_RAM AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(shadfrce_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x142000, 0x143fff) AM_RAM AM_SHARE("spvideoram") /* sprites */ - AM_RANGE(0x180000, 0x187fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x180000, 0x187fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(shadfrce_bg0scrollx_w) /* SCROLL X */ AM_RANGE(0x1c0002, 0x1c0003) AM_WRITE(shadfrce_bg0scrolly_w) /* SCROLL Y */ AM_RANGE(0x1c0004, 0x1c0005) AM_WRITE(shadfrce_bg1scrollx_w) /* SCROLL X */ @@ -555,8 +555,8 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state ) MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof_shadfrce) MCFG_GFXDECODE_ADD("gfxdecode", shadfrce) - MCFG_PALETTE_LENGTH(0x4000) - + MCFG_PALETTE_ADD("palette", 0x4000) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c index bf5240718a0..442490626e0 100644 --- a/src/mame/drivers/shangha3.c +++ b/src/mame/drivers/shangha3.c @@ -127,7 +127,7 @@ WRITE16_MEMBER(shangha3_state::shangha3_irq_ack_w) static ADDRESS_MAP_START( shangha3_map, AS_PROGRAM, 16, shangha3_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x100000, 0x100fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS") AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM") AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w) @@ -145,7 +145,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( heberpop_map, AS_PROGRAM, 16, shangha3_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x100000, 0x100fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS") AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM") AM_RANGE(0x200004, 0x200005) AM_READ_PORT("DSW") @@ -168,7 +168,7 @@ static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16, shangha3_state ) AM_RANGE(0x10000a, 0x10000b) AM_READNOP AM_WRITE(shangha3_irq_ack_w) // r -> unknown purpose (value doesn't matter, left-over?) AM_RANGE(0x10000c, 0x10000d) AM_WRITE(blocken_coinctrl_w) AM_RANGE(0x10000e, 0x10000f) AM_WRITE(heberpop_sound_command_w) - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_SHARE("ram") /* gfx & work ram */ AM_RANGE(0x340000, 0x340001) AM_WRITE(shangha3_flipscreen_w) AM_RANGE(0x360000, 0x360001) AM_WRITE(shangha3_gfxlist_addr_w) @@ -478,8 +478,6 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state ) MCFG_CPU_VBLANK_INT_DRIVER("screen", shangha3_state, irq4_line_assert) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(60) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -490,8 +488,10 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state ) MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3) MCFG_GFXDECODE_ADD("gfxdecode", shangha3) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) + MCFG_PALETTE_ENABLE_SHADOWS() /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -517,8 +517,6 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state ) MCFG_CPU_IO_MAP(heberpop_sound_io_map) /* NMI triggered by YM3438 */ /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(60) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -529,8 +527,10 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state ) MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3) MCFG_GFXDECODE_ADD("gfxdecode", shangha3) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) + MCFG_PALETTE_ENABLE_SHADOWS() /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -557,8 +557,6 @@ static MACHINE_CONFIG_START( blocken, shangha3_state ) MCFG_CPU_IO_MAP(heberpop_sound_io_map) /* NMI triggered by YM3438 */ /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(60) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -569,8 +567,10 @@ static MACHINE_CONFIG_START( blocken, shangha3_state ) MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3) MCFG_GFXDECODE_ADD("gfxdecode", shangha3) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(RRRRRGGGGGBBBBBx) + MCFG_PALETTE_ENABLE_SHADOWS() /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c index 97bc97fc1a5..0916a2922bb 100644 --- a/src/mame/drivers/shanghai.c +++ b/src/mame/drivers/shanghai.c @@ -52,7 +52,7 @@ PALETTE_INIT_MEMBER(shanghai_state,shanghai) int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -73,7 +73,7 @@ PALETTE_INIT_MEMBER(shanghai_state,shanghai) bit2 = (i >> 1) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -150,7 +150,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( shangha2_map, AS_PROGRAM, 16, shanghai_state ) AM_RANGE(0x00000, 0x03fff) AM_RAM - AM_RANGE(0x04000, 0x041ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x04000, 0x041ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x80000, 0xfffff) AM_ROM ADDRESS_MAP_END @@ -189,7 +189,7 @@ static ADDRESS_MAP_START( kothello_map, AS_PROGRAM, 16, shanghai_state ) AM_RANGE(0x09012, 0x09013) AM_READ_PORT("P2") AM_RANGE(0x09014, 0x09015) AM_READ_PORT("SYSTEM") AM_RANGE(0x09016, 0x0901f) AM_WRITENOP // 0x9016 is set to 0 at the boot - AM_RANGE(0x0a000, 0x0a1ff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0a000, 0x0a1ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0b010, 0x0b01f) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, main_word_r, main_word_w) AM_RANGE(0x80000, 0xfffff) AM_ROM ADDRESS_MAP_END @@ -453,9 +453,9 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(shanghai_state,shanghai) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) + MCFG_PALETTE_INIT_OWNER(shanghai_state,shanghai) MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf) @@ -486,8 +486,8 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state ) MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf) @@ -521,8 +521,8 @@ static MACHINE_CONFIG_START( kothello, shanghai_state ) MCFG_SCREEN_VISIBLE_AREA(8, 384-1, 0, 250-1) // Base Screen is 376 pixel MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_HD63484_ADD("hd63484", shanghai_hd63484_intf) diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c index 82cea41bb34..2d519eea86a 100644 --- a/src/mame/drivers/shangkid.c +++ b/src/mame/drivers/shangkid.c @@ -387,9 +387,7 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state ) MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_shangkid) MCFG_GFXDECODE_ADD("gfxdecode", chinhero) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(shangkid_state,shangkid) /* sound hardware */ @@ -466,9 +464,9 @@ static MACHINE_CONFIG_START( dynamski, shangkid_state ) MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_dynamski) MCFG_GFXDECODE_ADD("gfxdecode", dynamski) - MCFG_PALETTE_LENGTH(16*4+16*4) + MCFG_PALETTE_ADD("palette", 16*4+16*4) - MCFG_PALETTE_INIT_OVERRIDE(shangkid_state,dynamski) + MCFG_PALETTE_INIT_OWNER(shangkid_state,dynamski) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c index ccfc234fc65..7efc4dc4aff 100644 --- a/src/mame/drivers/shaolins.c +++ b/src/mame/drivers/shaolins.c @@ -201,8 +201,8 @@ static MACHINE_CONFIG_START( shaolins, shaolins_state ) MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update_shaolins) MCFG_GFXDECODE_ADD("gfxdecode", shaolins) - MCFG_PALETTE_LENGTH(16*8*16+16*8*16) - + MCFG_PALETTE_ADD("palette", 16*8*16+16*8*16) + MCFG_PALETTE_INIT_OWNER(shaolins_state, shaolins) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c index aebbb47823b..1c135de0331 100644 --- a/src/mame/drivers/shisen.c +++ b/src/mame/drivers/shisen.c @@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( shisen, shisen_state ) MCFG_SCREEN_UPDATE_DRIVER(shisen_state, screen_update_sichuan2) MCFG_GFXDECODE_ADD("gfxdecode", shisen) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c index 85bc4d77f00..f1e073ec494 100644 --- a/src/mame/drivers/shootout.c +++ b/src/mame/drivers/shootout.c @@ -274,8 +274,8 @@ static MACHINE_CONFIG_START( shootout, shootout_state ) MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootout) MCFG_GFXDECODE_ADD("gfxdecode", shootout) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(shootout_state, shootout) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -302,8 +302,8 @@ static MACHINE_CONFIG_START( shootouj, shootout_state ) MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootouj) MCFG_GFXDECODE_ADD("gfxdecode", shootout) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(shootout_state, shootout) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c index e3df87616e6..ee1f67d7d43 100644 --- a/src/mame/drivers/shougi.c +++ b/src/mame/drivers/shougi.c @@ -113,7 +113,7 @@ public: DECLARE_WRITE8_MEMBER(nmi_disable_and_clear_line_w); DECLARE_WRITE8_MEMBER(nmi_enable_w); DECLARE_READ8_MEMBER(dummy_r); - virtual void palette_init(); + DECLARE_PALETTE_INIT(shougi); UINT32 screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(shougi_vblank_nmi); required_device<cpu_device> m_maincpu; @@ -140,7 +140,7 @@ public: ***************************************************************************/ -void shougi_state::palette_init() +PALETTE_INIT_MEMBER(shougi_state, shougi) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -154,7 +154,7 @@ void shougi_state::palette_init() 3, resistances_rg, weights_g, 1000, 0, 2, resistances_b, weights_b, 1000, 0); - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit2,r,g,b; @@ -175,7 +175,7 @@ void shougi_state::palette_init() bit1 = (color_prom[i] >> 7) & 0x01; b = combine_2_weights(weights_b, bit0, bit1); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -430,8 +430,8 @@ static MACHINE_CONFIG_START( shougi, shougi_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255) MCFG_SCREEN_UPDATE_DRIVER(shougi_state, screen_update_shougi) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(shougi_state, shougi) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c index 9ebe02db017..f658cf4ca40 100644 --- a/src/mame/drivers/shtzone.c +++ b/src/mame/drivers/shtzone.c @@ -107,7 +107,7 @@ static MACHINE_CONFIG_START( shtzone, shtzone_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(shtzone_state, screen_update_shtzone) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c index 661b8a6e889..021774ff0be 100644 --- a/src/mame/drivers/shuuz.c +++ b/src/mame/drivers/shuuz.c @@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", shuuz) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line)) MCFG_ATARI_VAD_PLAYFIELD(shuuz_state, get_playfield_tile_info) diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c index 1a8f7c579aa..0a650788389 100644 --- a/src/mame/drivers/sidearms.c +++ b/src/mame/drivers/sidearms.c @@ -71,8 +71,8 @@ READ8_MEMBER(sidearms_state::turtship_ports_r) static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8, sidearms_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xc800, 0xc800) AM_READ_PORT("SYSTEM") AM_WRITE(soundlatch_byte_w) AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1") AM_WRITE(sidearms_bankswitch_w) AM_RANGE(0xc802, 0xc802) AM_READ_PORT("P2") AM_WRITE(watchdog_reset_w) @@ -94,8 +94,8 @@ static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8, sidearms_state ) AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xcfff) AM_RAM AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xe800, 0xe807) AM_READ(turtship_ports_r) AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_byte_w) AM_RANGE(0xe801, 0xe801) AM_WRITE(sidearms_bankswitch_w) @@ -141,8 +141,8 @@ WRITE8_MEMBER(sidearms_state::whizz_bankswitch_w) static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xc800, 0xc800) AM_READ_PORT("DSW0") AM_WRITE(soundlatch_byte_w) AM_RANGE(0xc801, 0xc801) AM_READ_PORT("DSW1") AM_WRITE(whizz_bankswitch_w) AM_RANGE(0xc802, 0xc802) AM_READ_PORT("DSW2") AM_WRITE(watchdog_reset_w) @@ -623,8 +623,9 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", sidearms) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -667,7 +668,9 @@ static MACHINE_CONFIG_START( turtship, sidearms_state ) MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms) MCFG_GFXDECODE_ADD("gfxdecode", turtship) - MCFG_PALETTE_LENGTH(1024) + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -713,7 +716,9 @@ static MACHINE_CONFIG_START( whizz, sidearms_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", turtship) - MCFG_PALETTE_LENGTH(1024) + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c index 369745a3b8f..98b574977a6 100644 --- a/src/mame/drivers/sidepckt.c +++ b/src/mame/drivers/sidepckt.c @@ -380,7 +380,8 @@ static MACHINE_CONFIG_START( sidepckt, sidepckt_state ) MCFG_SCREEN_UPDATE_DRIVER(sidepckt_state, screen_update_sidepckt) MCFG_GFXDECODE_ADD("gfxdecode", sidepckt) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(sidepckt_state, sidepckt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c index de796ec9114..0192a1dcece 100644 --- a/src/mame/drivers/sigmab52.c +++ b/src/mame/drivers/sigmab52.c @@ -150,7 +150,7 @@ public: DECLARE_DRIVER_INIT(jwildb52); virtual void machine_start(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(sigmab52); UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(timer_irq); required_device<cpu_device> m_maincpu; @@ -236,7 +236,7 @@ if (!machine().input().code_pressed(KEYCODE_O)) } -void sigmab52_state::palette_init() +PALETTE_INIT_MEMBER(sigmab52_state, sigmab52) { } @@ -606,8 +606,8 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state ) MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(sigmab52_state, sigmab52) MACHINE_CONFIG_END diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 812561f6ef7..9429f56fcea 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -300,7 +300,7 @@ void sigmab98_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec { for (x = x0; x != x1; x += dx) { - m_gfxdecode->gfx(gfx)->zoom_transpen(bitmap,cliprect, + m_gfxdecode->gfx(gfx)->zoom_transpen(m_palette,bitmap,cliprect, code++, color, flipx, flipy, (sx + x * dim) / 0x10000, (sy + y * dim) / 0x10000, @@ -326,7 +326,7 @@ UINT32 sigmab98_state::screen_update_sigmab98(screen_device &screen, bitmap_ind1 } #endif - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); // Draw from priority 3 (bottom, converted to a bitmask) to priority 0 (top) draw_sprites(bitmap, cliprect, layers_ctrl & 8); @@ -508,7 +508,7 @@ static ADDRESS_MAP_START( gegege_mem_map, AS_PROGRAM, 8, sigmab98_state ) AM_RANGE( 0xa000, 0xafff ) AM_RAM AM_SHARE("spriteram") - AM_RANGE( 0xc000, 0xc1ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_be_w) AM_SHARE("paletteram") + AM_RANGE( 0xc000, 0xc1ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0xc800, 0xc87f ) AM_RAM @@ -751,7 +751,7 @@ static ADDRESS_MAP_START( animalc_map, AS_PROGRAM, 8, sigmab98_state ) AM_RANGE( 0xa000, 0xafff ) AM_RAM AM_RANGE( 0xb000, 0xbfff ) AM_RAMBANK("sprbank") - AM_RANGE( 0xd000, 0xd1ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_be_w ) AM_SHARE("paletteram") + AM_RANGE( 0xd000, 0xd1ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0xd800, 0xd87f ) AM_RAM // table? AM_RANGE( 0xe011, 0xe011 ) AM_WRITENOP // IRQ Enable? Screen disable? @@ -944,7 +944,7 @@ WRITE8_MEMBER(sigmab98_state::haekaka_b000_w) case 0x67: // PALETTERAM + TABLE? + REGS if (offset < 0x200) { - paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); // m_generic_paletteram_8[offset] = data; return; } @@ -1185,7 +1185,7 @@ WRITE8_MEMBER(sigmab98_state::itazuram_nvram_palette_w) { if (m_rambank == 0x64) { - paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); // m_generic_paletteram_8[offset] = data; } else if (m_rambank == 0x52) @@ -1203,7 +1203,7 @@ WRITE8_MEMBER(sigmab98_state::itazuram_palette_w) if (m_rombank == 0x6c) { if (offset < 0x200) - paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); // m_generic_paletteram_8[offset] = data; } else @@ -1424,7 +1424,7 @@ WRITE8_MEMBER(sigmab98_state::tdoboon_c000_w) case 0x66: // PALETTERAM + TABLE? if (offset < 0x200) { - paletteram_xRRRRRGGGGGBBBBB_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); // m_generic_paletteram_8[offset] = data; return; } @@ -1701,7 +1701,8 @@ static MACHINE_CONFIG_START( gegege, sigmab98_state ) MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98) MCFG_GFXDECODE_ADD("gfxdecode", sigmab98) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) // sound hardware MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1741,7 +1742,9 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state ) MCFG_SCREEN_VBLANK_DRIVER(sigmab98_state, screen_eof_sammymdl) MCFG_GFXDECODE_ADD("gfxdecode", sigmab98) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + // sound hardware MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c index 4c1c1c6aaa6..da963185595 100644 --- a/src/mame/drivers/silkroad.c +++ b/src/mame/drivers/silkroad.c @@ -130,7 +130,7 @@ ROM15.BIN MX29F1610, SOP44 Surface Mounted Mask ROM / WRITE32_MEMBER(silkroad_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); - palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> (10+16)),pal5bit(m_generic_paletteram_32[offset] >> (5+16)),pal5bit(m_generic_paletteram_32[offset] >> (0+16))); + m_palette->set_pen_color(offset,pal5bit(m_generic_paletteram_32[offset] >> (10+16)),pal5bit(m_generic_paletteram_32[offset] >> (5+16)),pal5bit(m_generic_paletteram_32[offset] >> (0+16))); } WRITE32_MEMBER(silkroad_state::silk_6295_bank_w) @@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( silkroad, silkroad_state ) MCFG_SCREEN_UPDATE_DRIVER(silkroad_state, screen_update_silkroad) MCFG_GFXDECODE_ADD("gfxdecode", silkroad) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) /* sound hardware */ diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c index 615937be952..2627fe0e8ad 100644 --- a/src/mame/drivers/silvmil.c +++ b/src/mame/drivers/silvmil.c @@ -176,7 +176,7 @@ static ADDRESS_MAP_START( silvmil_map, AS_PROGRAM, 16, silvmil_state ) AM_RANGE(0x120000, 0x120fff) AM_RAM_WRITE(silvmil_fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0x122000, 0x122fff) AM_RAM_WRITE(silvmil_bg_videoram_w) AM_SHARE("bg_videoram") - AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x2005ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x270000, 0x270001) AM_WRITE(silvmil_soundcmd_w) AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2") @@ -322,7 +322,8 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state ) MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(silvmil_state, screen_update_silvmil) - MCFG_PALETTE_LENGTH(0x300) + MCFG_PALETTE_ADD("palette", 0x300) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_GFXDECODE_ADD("gfxdecode", silvmil) @@ -331,6 +332,7 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state ) decospr_device::set_is_bootleg(*device, true); decospr_device::set_offsets(*device, 5,7); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c index b12e4c07729..54fa02f0f3d 100644 --- a/src/mame/drivers/simpl156.c +++ b/src/mame/drivers/simpl156.c @@ -151,7 +151,7 @@ WRITE32_MEMBER(simpl156_state::simpl156_palette_w) color = offset; dat = m_generic_paletteram_16[offset] & 0xffff; - palette_set_color_rgb(machine(),color,pal5bit(dat >> 0),pal5bit(dat >> 5),pal5bit(dat >> 10)); + m_palette->set_pen_color(color,pal5bit(dat >> 0),pal5bit(dat >> 5),pal5bit(dat >> 10)); } @@ -434,16 +434,18 @@ static MACHINE_CONFIG_START( chainrec, simpl156_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(simpl156_state, screen_update_simpl156) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) MCFG_GFXDECODE_ADD("gfxdecode", simpl156) MCFG_DECO16IC_ADD("tilegen1", simpl156_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); decospr_device::set_pri_callback(*device, simpl156_pri_callback); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c index 85567173019..e1f11914330 100644 --- a/src/mame/drivers/simpsons.c +++ b/src/mame/drivers/simpsons.c @@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.1856) @@ -342,13 +342,18 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(simpsons_state, screen_update_simpsons) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", simpsons_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053246_ADD("k053246", simpsons_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c index 8bdf37747e4..795ef350b84 100644 --- a/src/mame/drivers/skimaxx.c +++ b/src/mame/drivers/skimaxx.c @@ -536,10 +536,9 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state ) MCFG_SCREEN_UPDATE_DEVICE("tms", tms34010_device, tms340x0_ind16) -// MCFG_GFXDECODE_ADD("gfxdecode", skimaxx ) +// MCFG_GFXDECODE_ADD("gfxdecode", skimaxx ) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c index 52110c0ff26..7ce51fa9c06 100644 --- a/src/mame/drivers/skullxbo.c +++ b/src/mame/drivers/skullxbo.c @@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", skullxbo) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, skullxbo_state, get_playfield_tile_info, 16,8, SCAN_COLS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, skullxbo_state, get_alpha_tile_info, 16,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c index 23e73e556d8..066eed95380 100644 --- a/src/mame/drivers/skyarmy.c +++ b/src/mame/drivers/skyarmy.c @@ -54,7 +54,7 @@ public: DECLARE_WRITE8_MEMBER(nmi_enable_w); TILE_GET_INFO_MEMBER(get_skyarmy_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(skyarmy); UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(skyarmy_nmi_source); required_device<cpu_device> m_maincpu; @@ -91,7 +91,7 @@ WRITE8_MEMBER(skyarmy_state::skyarmy_colorram_w) m_tilemap->mark_tile_dirty(offset); } -void skyarmy_state::palette_init() +PALETTE_INIT_MEMBER(skyarmy_state, skyarmy) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -115,7 +115,7 @@ void skyarmy_state::palette_init() bit2 = (*color_prom >> 7) & 0x01; b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); color_prom++; } } @@ -147,7 +147,7 @@ UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16 flipy = (spriteram[offs+1]&0x80)>>7; flipx = (spriteram[offs+1]&0x40)>>6; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, spriteram[offs+1]&0x3f, pal, flipx,flipy, @@ -295,8 +295,8 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_state ) MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update_skyarmy) MCFG_GFXDECODE_ADD("gfxdecode", skyarmy) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(skyarmy_state, skyarmy) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c index 3d8fcc965b2..3c5b337a32c 100644 --- a/src/mame/drivers/skydiver.c +++ b/src/mame/drivers/skydiver.c @@ -112,7 +112,7 @@ static const int colortable_source[] = 0x01, 0x02 }; -void skydiver_state::palette_init() +PALETTE_INIT_MEMBER(skydiver_state, skydiver) { int i; @@ -127,7 +127,7 @@ void skydiver_state::palette_init() default: color = rgb_t(0xa0, 0xa0, 0xa0); break; /* grey */ } - palette_set_color(machine(), i, color); + palette.set_pen_color(i, color); } } @@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state ) MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update_skydiver) MCFG_GFXDECODE_ADD("gfxdecode", skydiver) - MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) + MCFG_PALETTE_ADD("palette", sizeof(colortable_source) / sizeof(colortable_source[0])) /* sound hardware */ diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c index b8fab5ab118..0f3d921cb7b 100644 --- a/src/mame/drivers/skyfox.c +++ b/src/mame/drivers/skyfox.c @@ -249,8 +249,8 @@ static MACHINE_CONFIG_START( skyfox, skyfox_state ) MCFG_SCREEN_UPDATE_DRIVER(skyfox_state, screen_update_skyfox) MCFG_GFXDECODE_ADD("gfxdecode", skyfox) - MCFG_PALETTE_LENGTH(256+256) /* 256 static colors (+256 for the background??) */ - + MCFG_PALETTE_ADD("palette", 256+256) /* 256 static colors (+256 for the background??) */ + MCFG_PALETTE_INIT_OWNER(skyfox_state, skyfox) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c index 12fda79a507..210434e4a6d 100644 --- a/src/mame/drivers/skykid.c +++ b/src/mame/drivers/skykid.c @@ -460,8 +460,8 @@ static MACHINE_CONFIG_START( skykid, skykid_state ) MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid) MCFG_GFXDECODE_ADD("gfxdecode", skykid) - MCFG_PALETTE_LENGTH(64*4+128*4+64*8) - + MCFG_PALETTE_ADD("palette", 64*4+128*4+64*8) + MCFG_PALETTE_INIT_OWNER(skykid_state, skykid) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 9181df9df5d..8e5a2d1cb4d 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -282,7 +282,7 @@ WRITE8_MEMBER(skylncr_state::skylncr_paletteram_w) g = (g << 2) | (g >> 4); b = (b << 2) | (b >> 4); - palette_set_color(machine(), m_color / 3, rgb_t(r, g, b)); + m_palette->set_pen_color(m_color / 3, rgb_t(r, g, b)); m_color = (m_color + 1) % (0x100 * 3); } } @@ -305,7 +305,7 @@ WRITE8_MEMBER(skylncr_state::skylncr_paletteram2_w) g = (g << 2) | (g >> 4); b = (b << 2) | (b >> 4); - palette_set_color(machine(), 0x100 + m_color2 / 3, rgb_t(r, g, b)); + m_palette->set_pen_color(0x100 + m_color2 / 3, rgb_t(r, g, b)); m_color2 = (m_color2 + 1) % (0x100 * 3); } } @@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state ) MCFG_SCREEN_UPDATE_DRIVER(skylncr_state, screen_update_skylncr) MCFG_GFXDECODE_ADD("gfxdecode", skylncr) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) /* sound hardware */ diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c index 02019a787da..af8b0f8b497 100644 --- a/src/mame/drivers/skyraid.c +++ b/src/mame/drivers/skyraid.c @@ -10,28 +10,28 @@ Atari Sky Raider driver -void skyraid_state::palette_init() +PALETTE_INIT_MEMBER(skyraid_state, skyraid) { - palette_set_color(machine(), 0, rgb_t(0x00, 0x00, 0x00)); /* terrain */ - palette_set_color(machine(), 1, rgb_t(0x18, 0x18, 0x18)); - palette_set_color(machine(), 2, rgb_t(0x30, 0x30, 0x30)); - palette_set_color(machine(), 3, rgb_t(0x48, 0x48, 0x48)); - palette_set_color(machine(), 4, rgb_t(0x60, 0x60, 0x60)); - palette_set_color(machine(), 5, rgb_t(0x78, 0x78, 0x78)); - palette_set_color(machine(), 6, rgb_t(0x90, 0x90, 0x90)); - palette_set_color(machine(), 7, rgb_t(0xA8, 0xA8, 0xA8)); - palette_set_color(machine(), 8, rgb_t(0x10, 0x10, 0x10)); /* sprites */ - palette_set_color(machine(), 9, rgb_t(0xE0, 0xE0, 0xE0)); - palette_set_color(machine(), 10, rgb_t(0xA0, 0xA0, 0xA0)); - palette_set_color(machine(), 11, rgb_t(0x48, 0x48, 0x48)); - palette_set_color(machine(), 12, rgb_t(0x10, 0x10, 0x10)); - palette_set_color(machine(), 13, rgb_t(0x48, 0x48, 0x48)); - palette_set_color(machine(), 14, rgb_t(0xA0, 0xA0, 0xA0)); - palette_set_color(machine(), 15, rgb_t(0xE0, 0xE0, 0xE0)); - palette_set_color(machine(), 16, rgb_t(0x00, 0x00, 0x00)); /* missiles */ - palette_set_color(machine(), 17, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 18, rgb_t(0x00, 0x00, 0x00)); /* text */ - palette_set_color(machine(), 19, rgb_t(0xE0, 0xE0, 0xE0)); + palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); /* terrain */ + palette.set_pen_color(1, rgb_t(0x18, 0x18, 0x18)); + palette.set_pen_color(2, rgb_t(0x30, 0x30, 0x30)); + palette.set_pen_color(3, rgb_t(0x48, 0x48, 0x48)); + palette.set_pen_color(4, rgb_t(0x60, 0x60, 0x60)); + palette.set_pen_color(5, rgb_t(0x78, 0x78, 0x78)); + palette.set_pen_color(6, rgb_t(0x90, 0x90, 0x90)); + palette.set_pen_color(7, rgb_t(0xA8, 0xA8, 0xA8)); + palette.set_pen_color(8, rgb_t(0x10, 0x10, 0x10)); /* sprites */ + palette.set_pen_color(9, rgb_t(0xE0, 0xE0, 0xE0)); + palette.set_pen_color(10, rgb_t(0xA0, 0xA0, 0xA0)); + palette.set_pen_color(11, rgb_t(0x48, 0x48, 0x48)); + palette.set_pen_color(12, rgb_t(0x10, 0x10, 0x10)); + palette.set_pen_color(13, rgb_t(0x48, 0x48, 0x48)); + palette.set_pen_color(14, rgb_t(0xA0, 0xA0, 0xA0)); + palette.set_pen_color(15, rgb_t(0xE0, 0xE0, 0xE0)); + palette.set_pen_color(16, rgb_t(0x00, 0x00, 0x00)); /* missiles */ + palette.set_pen_color(17, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(18, rgb_t(0x00, 0x00, 0x00)); /* text */ + palette.set_pen_color(19, rgb_t(0xE0, 0xE0, 0xE0)); } READ8_MEMBER(skyraid_state::skyraid_port_0_r) @@ -230,8 +230,8 @@ static MACHINE_CONFIG_START( skyraid, skyraid_state ) MCFG_GFXDECODE_ADD("gfxdecode", skyraid) - MCFG_PALETTE_LENGTH(20) - + MCFG_PALETTE_ADD("palette", 20) + MCFG_PALETTE_INIT_OWNER(skyraid_state, skyraid) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c index 34f1862bde7..967e14c7fe4 100644 --- a/src/mame/drivers/slapfght.c +++ b/src/mame/drivers/slapfght.c @@ -754,9 +754,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", perfrman) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(slapfght_state,perfrman) /* sound hardware */ @@ -800,9 +798,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", slapfght) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight) /* sound hardware */ @@ -848,9 +844,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", slapfght) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight) /* sound hardware */ @@ -897,9 +891,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", slapfght) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(slapfght_state,slapfight) /* sound hardware */ diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index 0fcd4b2c190..b0b64a6b2ed 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -160,7 +160,7 @@ WRITE16_MEMBER(slapshot_state::color_ram_word_w) g = (m_color_ram[offset] & 0xff00) >> 8; b = (m_color_ram[offset] & 0xff); - palette_set_color(machine(), offset / 2, rgb_t(r,g,b)); + m_palette->set_pen_color(offset / 2, rgb_t(r,g,b)); } } @@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state ) MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer) MCFG_GFXDECODE_ADD("gfxdecode", slapshot) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf) @@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state ) MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer) MCFG_GFXDECODE_ADD("gfxdecode", slapshot) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf) diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c index 6b374553656..2fe87b0a3c2 100644 --- a/src/mame/drivers/sliver.c +++ b/src/mame/drivers/sliver.c @@ -482,7 +482,8 @@ static MACHINE_CONFIG_START( sliver, sliver_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 384-1-16, 0*8, 240-1) MCFG_SCREEN_UPDATE_DRIVER(sliver_state, screen_update_sliver) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c index 55c7022e5e0..ef06c584c57 100644 --- a/src/mame/drivers/slotcarn.c +++ b/src/mame/drivers/slotcarn.c @@ -626,7 +626,7 @@ static MACHINE_CONFIG_START( slotcarn, slotcarn_state ) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) MCFG_GFXDECODE_ADD("gfxdecode", slotcarn) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/smsmcorp.c b/src/mame/drivers/smsmcorp.c index ea12230d622..7e5b79fc146 100644 --- a/src/mame/drivers/smsmcorp.c +++ b/src/mame/drivers/smsmcorp.c @@ -244,7 +244,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(smsmfg); DECLARE_MACHINE_START(sureshot); UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; @@ -489,13 +489,13 @@ UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind16 &bitm return 0; } -void smsmfg_state::palette_init() +PALETTE_INIT_MEMBER(smsmfg_state, smsmfg) { int i; for (i = 0; i < 8; i++ ) { - palette_set_color(machine(), i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i))); + palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i))); } } @@ -582,8 +582,8 @@ static MACHINE_CONFIG_START( sms, smsmfg_state ) MCFG_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff) MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(smsmfg_state, smsmfg) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c index 65defa1be5b..027f7582648 100644 --- a/src/mame/drivers/snk.c +++ b/src/mame/drivers/snk.c @@ -3622,8 +3622,6 @@ static MACHINE_CONFIG_START( marvins, snk_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) @@ -3631,9 +3629,11 @@ static MACHINE_CONFIG_START( marvins, snk_state ) MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_marvins) MCFG_GFXDECODE_ADD("gfxdecode", marvins) - MCFG_PALETTE_LENGTH(0x400) - MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() + + MCFG_PALETTE_INIT_OWNER(snk_state,tnk3) MCFG_VIDEO_START_OVERRIDE(snk_state,marvins) /* sound hardware */ @@ -3691,8 +3691,6 @@ static MACHINE_CONFIG_START( jcross, snk_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) @@ -3700,9 +3698,11 @@ static MACHINE_CONFIG_START( jcross, snk_state ) MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3) MCFG_GFXDECODE_ADD("gfxdecode", tnk3) - MCFG_PALETTE_LENGTH(0x400) - MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() + + MCFG_PALETTE_INIT_OWNER(snk_state,tnk3) MCFG_VIDEO_START_OVERRIDE(snk_state,jcross) /* sound hardware */ @@ -3769,8 +3769,6 @@ static MACHINE_CONFIG_START( tnk3, snk_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) @@ -3778,9 +3776,11 @@ static MACHINE_CONFIG_START( tnk3, snk_state ) MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3) MCFG_GFXDECODE_ADD("gfxdecode", tnk3) - MCFG_PALETTE_LENGTH(0x400) - MCFG_PALETTE_INIT_OVERRIDE(snk_state,tnk3) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() + + MCFG_PALETTE_INIT_OWNER(snk_state,tnk3) MCFG_VIDEO_START_OVERRIDE(snk_state,tnk3) /* sound hardware */ @@ -3853,8 +3853,6 @@ static MACHINE_CONFIG_START( ikari, snk_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(36*8, 28*8) @@ -3862,9 +3860,10 @@ static MACHINE_CONFIG_START( ikari, snk_state ) MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_ikari) MCFG_GFXDECODE_ADD("gfxdecode", ikari) - MCFG_PALETTE_LENGTH(0x400) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_VIDEO_START_OVERRIDE(snk_state,ikari) /* sound hardware */ @@ -3918,9 +3917,7 @@ static MACHINE_CONFIG_START( bermudat, snk_state ) MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_gwar) MCFG_GFXDECODE_ADD("gfxdecode", gwar) - MCFG_PALETTE_LENGTH(0x400) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x400) MCFG_VIDEO_START_OVERRIDE(snk_state,gwar) /* sound hardware */ @@ -4013,8 +4010,6 @@ static MACHINE_CONFIG_START( tdfever, snk_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(50*8, 28*8) @@ -4022,9 +4017,10 @@ static MACHINE_CONFIG_START( tdfever, snk_state ) MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tdfever) MCFG_GFXDECODE_ADD("gfxdecode", tdfever) - MCFG_PALETTE_LENGTH(0x400) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_VIDEO_START_OVERRIDE(snk_state,tdfever) /* sound hardware */ diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c index d9d9a73fcc4..25167cf5a3e 100644 --- a/src/mame/drivers/snk6502.c +++ b/src/mame/drivers/snk6502.c @@ -831,9 +831,9 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state ) MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502) MCFG_GFXDECODE_ADD("gfxdecode", sasuke) - MCFG_PALETTE_LENGTH(32) + MCFG_PALETTE_ADD("palette", 32) - MCFG_PALETTE_INIT_OVERRIDE(snk6502_state,satansat) + MCFG_PALETTE_INIT_OWNER(snk6502_state,satansat) MCFG_VIDEO_START_OVERRIDE(snk6502_state,satansat) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / 16, mc6845_intf) @@ -904,9 +904,9 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state ) MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502) MCFG_GFXDECODE_ADD("gfxdecode", vanguard) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) - MCFG_PALETTE_INIT_OVERRIDE(snk6502_state,snk6502) + MCFG_PALETTE_INIT_OWNER(snk6502_state,snk6502) MCFG_VIDEO_START_OVERRIDE(snk6502_state,snk6502) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK / 16, mc6845_intf) diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c index afbea47d4cb..77cbf96c14d 100644 --- a/src/mame/drivers/snk68.c +++ b/src/mame/drivers/snk68.c @@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( pow, snk68_state ) MCFG_SCREEN_UPDATE_DRIVER(snk68_state, screen_update_pow) MCFG_GFXDECODE_ADD("gfxdecode", pow) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) /* sound hardware */ diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c index 3e892cf94ab..d86dd579ff2 100644 --- a/src/mame/drivers/snookr10.c +++ b/src/mame/drivers/snookr10.c @@ -1042,7 +1042,8 @@ static MACHINE_CONFIG_START( snookr10, snookr10_state ) MCFG_SCREEN_UPDATE_DRIVER(snookr10_state, screen_update_snookr10) MCFG_GFXDECODE_ADD("gfxdecode", snookr10) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(snookr10_state, snookr10) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1057,7 +1058,8 @@ static MACHINE_CONFIG_DERIVED( apple10, snookr10 ) MCFG_CPU_MODIFY("maincpu") /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(snookr10_state, apple10) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(snookr10_state, apple10) MCFG_VIDEO_START_OVERRIDE(snookr10_state, apple10) MACHINE_CONFIG_END @@ -1076,7 +1078,8 @@ static MACHINE_CONFIG_DERIVED( crystalc, snookr10 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(crystalc_map) - MCFG_PALETTE_INIT_OVERRIDE(snookr10_state, crystalc) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(snookr10_state, crystalc) MCFG_VIDEO_START_OVERRIDE(snookr10_state, crystalc) MACHINE_CONFIG_END diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c index 7cc789c20a3..a467b30f634 100644 --- a/src/mame/drivers/snowbros.c +++ b/src/mame/drivers/snowbros.c @@ -196,7 +196,7 @@ static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1") AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2") AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM") - AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w) AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */ @@ -278,7 +278,7 @@ static ADDRESS_MAP_START( wintbob_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1") AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2") AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM") - AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram16b") AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */ @@ -299,7 +299,7 @@ static ADDRESS_MAP_START( honeydol_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW1") AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2") AM_RANGE(0x900004, 0x900005) AM_READ_PORT("SYSTEM") - AM_RANGE(0xa00000, 0xa007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb00000, 0xb01fff) AM_RAM AM_SHARE("spriteram16b") ADDRESS_MAP_END @@ -336,7 +336,7 @@ static ADDRESS_MAP_START( twinadv_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1") AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2") AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM") - AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram16b") AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */ @@ -376,7 +376,7 @@ static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2") AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM") - AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w) AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */ @@ -512,7 +512,7 @@ static ADDRESS_MAP_START( snowbros3_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE( 0x500000, 0x500001) AM_READ_PORT("DSW1") AM_RANGE( 0x500002, 0x500003) AM_READ_PORT("DSW2") AM_RANGE( 0x500004, 0x500005) AM_READ_PORT("SYSTEM") - AM_RANGE( 0x600000, 0x6003ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE( 0x600000, 0x6003ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x700000, 0x7021ff) AM_RAM AM_SHARE("spriteram16b") AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */ @@ -531,7 +531,7 @@ static ADDRESS_MAP_START( finalttr_map, AS_PROGRAM, 16, snowbros_state ) AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2") AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM") - AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x6001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w) AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */ @@ -1536,10 +1536,12 @@ static MACHINE_CONFIG_START( snowbros, snowbros_state ) MCFG_SCREEN_VBLANK_DRIVER(snowbros_state, screen_eof_snowbros) MCFG_GFXDECODE_ADD("gfxdecode", snowbros) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_KANEKO_PANDORA_ADD("pandora", snowbros_pandora_config) MCFG_KANEKO_PANDORA_GFXDECODE("gfxdecode") + MCFG_KANEKO_PANDORA_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1647,7 +1649,8 @@ static MACHINE_CONFIG_START( honeydol, snowbros_state ) MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_honeydol) MCFG_GFXDECODE_ADD("gfxdecode", honeydol) - MCFG_PALETTE_LENGTH(0x800/2) + MCFG_PALETTE_ADD("palette", 0x800/2) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1684,7 +1687,8 @@ static MACHINE_CONFIG_START( twinadv, snowbros_state ) MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_twinadv) MCFG_GFXDECODE_ADD("gfxdecode", twinadv) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1756,7 +1760,8 @@ static MACHINE_CONFIG_START( snowbro3, snowbros_state ) MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbro3) MCFG_GFXDECODE_ADD("gfxdecode", sb3) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c index 671dba8bc7e..3c6b6bbab27 100644 --- a/src/mame/drivers/solomon.c +++ b/src/mame/drivers/solomon.c @@ -51,7 +51,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, solomon_state ) AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(solomon_colorram2_w) AM_SHARE("colorram2") AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(solomon_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0xe000, 0xe07f) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xe400, 0xe5ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xe400, 0xe5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1") AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2") AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM") @@ -222,8 +222,8 @@ static MACHINE_CONFIG_START( solomon, solomon_state ) MCFG_SCREEN_UPDATE_DRIVER(solomon_state, screen_update_solomon) MCFG_GFXDECODE_ADD("gfxdecode", solomon) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c index b6f17c2e9c5..54da5f5dfd8 100644 --- a/src/mame/drivers/sonson.c +++ b/src/mame/drivers/sonson.c @@ -255,8 +255,9 @@ static MACHINE_CONFIG_START( sonson, sonson_state ) MCFG_SCREEN_UPDATE_DRIVER(sonson_state, screen_update_sonson) MCFG_GFXDECODE_ADD("gfxdecode", sonson) - MCFG_PALETTE_LENGTH(64*4+32*8) + MCFG_PALETTE_ADD("palette", 64*4+32*8) + MCFG_PALETTE_INIT_OWNER(sonson_state, sonson) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c index 028ccfe04c1..4d0308de526 100644 --- a/src/mame/drivers/sothello.c +++ b/src/mame/drivers/sothello.c @@ -389,7 +389,7 @@ static MACHINE_CONFIG_START( sothello, sothello_state ) MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2) MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c index 55e2cad191e..89933931275 100644 --- a/src/mame/drivers/spaceg.c +++ b/src/mame/drivers/spaceg.c @@ -190,7 +190,7 @@ public: required_shared_ptr<UINT8> m_io9401; DECLARE_WRITE8_MEMBER(zvideoram_w); DECLARE_READ8_MEMBER(spaceg_colorram_r); - virtual void palette_init(); + DECLARE_PALETTE_INIT(spaceg); UINT32 screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -201,31 +201,31 @@ public: * *************************************/ -void spaceg_state::palette_init() +PALETTE_INIT_MEMBER(spaceg_state, spaceg) { int i; for (i = 0; i < 128; i++) - palette_set_color (machine(), i, rgb_t(0x00,0x00,0x00)); + palette.set_pen_color (i, rgb_t(0x00,0x00,0x00)); // proms are currently undumped... - palette_set_color (machine(), 0, rgb_t(0x00,0x00,0x00)); //ok czarny - palette_set_color (machine(), 1, rgb_t(0x7f,0x00,0x00));//??? - palette_set_color (machine(), 2, rgb_t(0xff,0xff,0xff)); //ok+ bialy - palette_set_color (machine(), 3, rgb_t(0xff,0x00,0x00)); //ok j.czerw. - palette_set_color (machine(), 4, rgb_t(0x3f,0x3f,0xff)); //ok j.niebieski - palette_set_color (machine(), 5, rgb_t(0x3f,0xff,0x3f)); //ok j.zielony - palette_set_color (machine(), 6, rgb_t(0xff,0xbf,0xbf)); //ok+ 'majtki' - palette_set_color (machine(), 7, rgb_t(0xff,0xff,0x00)); //ok+ zolty - - palette_set_color (machine(), 8, rgb_t(0xff,0x7f,0x00)); //ok+ pomaranczowy - palette_set_color (machine(), 9, rgb_t(0x3f,0xbf,0xff)); //ok j.niebieski (ciemniejszy od 13) - palette_set_color (machine(), 10, rgb_t(0x3f,0xbf,0x3f)); //ok+ c.zielony - palette_set_color (machine(), 11, rgb_t(0x00,0xff,0x00)); //ok j.zielony - palette_set_color (machine(), 12, rgb_t(0x7f,0x00,0x00)); //ok brazowy (c.czerw) - palette_set_color (machine(), 13, rgb_t(0x7f,0xbf,0xff)); //ok j.niebieski (jasniejszy od 9) - palette_set_color (machine(), 14, rgb_t(0x00,0xff,0xff));//??? - palette_set_color (machine(), 15, rgb_t(0x7f,0x7f,0x7f));//??? + palette.set_pen_color (0, rgb_t(0x00,0x00,0x00)); //ok czarny + palette.set_pen_color (1, rgb_t(0x7f,0x00,0x00));//??? + palette.set_pen_color (2, rgb_t(0xff,0xff,0xff)); //ok+ bialy + palette.set_pen_color (3, rgb_t(0xff,0x00,0x00)); //ok j.czerw. + palette.set_pen_color (4, rgb_t(0x3f,0x3f,0xff)); //ok j.niebieski + palette.set_pen_color (5, rgb_t(0x3f,0xff,0x3f)); //ok j.zielony + palette.set_pen_color (6, rgb_t(0xff,0xbf,0xbf)); //ok+ 'majtki' + palette.set_pen_color (7, rgb_t(0xff,0xff,0x00)); //ok+ zolty + + palette.set_pen_color (8, rgb_t(0xff,0x7f,0x00)); //ok+ pomaranczowy + palette.set_pen_color (9, rgb_t(0x3f,0xbf,0xff)); //ok j.niebieski (ciemniejszy od 13) + palette.set_pen_color (10, rgb_t(0x3f,0xbf,0x3f)); //ok+ c.zielony + palette.set_pen_color (11, rgb_t(0x00,0xff,0x00)); //ok j.zielony + palette.set_pen_color (12, rgb_t(0x7f,0x00,0x00)); //ok brazowy (c.czerw) + palette.set_pen_color (13, rgb_t(0x7f,0xbf,0xff)); //ok j.niebieski (jasniejszy od 9) + palette.set_pen_color (14, rgb_t(0x00,0xff,0xff));//??? + palette.set_pen_color (15, rgb_t(0x7f,0x7f,0x7f));//??? } WRITE8_MEMBER(spaceg_state::zvideoram_w) @@ -281,13 +281,13 @@ READ8_MEMBER(spaceg_state::spaceg_colorram_r) { /* palette 1 */ int col_ind = offset & 0x1f; - palette_set_color_rgb(machine(), 0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3)); + m_palette->set_pen_color(0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3)); } else if ((offset >= 0x300) && (offset < 0x320)) /* 0xa300- 0xa31f */ { /* palette 2 */ int col_ind = offset & 0x1f; - palette_set_color_rgb(machine(), 0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3)); + m_palette->set_pen_color(0x10 + 0x00 + col_ind, pal3bit(rgbcolor >> 0), pal3bit(rgbcolor >> 6), pal3bit(rgbcolor >> 3)); } else logerror("palette? read from colorram offset = %04x\n",offset); @@ -423,7 +423,8 @@ static MACHINE_CONFIG_START( spaceg, spaceg_state ) MCFG_SCREEN_VISIBLE_AREA(0, 255, 32, 255) MCFG_SCREEN_UPDATE_DRIVER(spaceg_state, screen_update_spaceg) - MCFG_PALETTE_LENGTH(16+128-16) + MCFG_PALETTE_ADD("palette", 16+128-16) + MCFG_PALETTE_INIT_OWNER(spaceg_state, spaceg) /* sound hardware */ // MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c index 77a7f4814de..c173c983532 100644 --- a/src/mame/drivers/spbactn.c +++ b/src/mame/drivers/spbactn.c @@ -153,7 +153,7 @@ static ADDRESS_MAP_START( spbactn_map, AS_PROGRAM, 16, spbactn_state ) AM_RANGE(0x50000, 0x50fff) AM_RAM AM_SHARE("spvideoram") AM_RANGE(0x60000, 0x67fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x70000, 0x77fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x80000, 0x827ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x90000, 0x90001) AM_READ_PORT("IN0") AM_RANGE(0x90010, 0x90011) AM_READ_PORT("IN1") AM_RANGE(0x90020, 0x90021) AM_READ_PORT("SYSTEM") @@ -201,7 +201,7 @@ static ADDRESS_MAP_START( spbactnp_map, AS_PROGRAM, 16, spbactn_state ) AM_RANGE(0x50000, 0x50fff) AM_RAM AM_SHARE("spvideoram") AM_RANGE(0x60000, 0x67fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x70000, 0x77fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0x80000, 0x827ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_word_w) AM_SHARE("paletteram") // yes R and G are swapped vs. the released version + AM_RANGE(0x80000, 0x827ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // yes R and G are swapped vs. the released version AM_RANGE(0x90002, 0x90003) AM_WRITE( spbatnp_90002_w ) AM_RANGE(0x90006, 0x90007) AM_WRITE( spbatnp_90006_w ) @@ -427,8 +427,8 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state ) MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactn) MCFG_GFXDECODE_ADD("gfxdecode", spbactn) - MCFG_PALETTE_LENGTH(0x2800/2) - + MCFG_PALETTE_ADD("palette", 0x2800/2) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -469,8 +469,8 @@ static MACHINE_CONFIG_START( spbactnp, spbactn_state ) MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactnp) MCFG_GFXDECODE_ADD("gfxdecode", spbactnp) - MCFG_PALETTE_LENGTH(0x2800/2) - + MCFG_PALETTE_ADD("palette", 0x2800/2) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware - different? */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c index 954d63ea46b..560badffb85 100644 --- a/src/mame/drivers/spcforce.c +++ b/src/mame/drivers/spcforce.c @@ -238,7 +238,7 @@ static const int colortable_source[] = 0, 2, 3, 4, 5, 6, 7, 0 }; -void spcforce_state::palette_init() +PALETTE_INIT_MEMBER(spcforce_state, spcforce) { int i; @@ -247,7 +247,7 @@ void spcforce_state::palette_init() int data = colortable_source[i]; rgb_t color = rgb_t(pal1bit(data >> 0), pal1bit(data >> 1), pal1bit(data >> 2)); - palette_set_color(machine(), i, color); + palette.set_pen_color(i, color); } } @@ -279,7 +279,8 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state ) MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update_spcforce) MCFG_GFXDECODE_ADD("gfxdecode", spcforce) - MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) + MCFG_PALETTE_ADD("palette", sizeof(colortable_source) / sizeof(colortable_source[0])) + MCFG_PALETTE_INIT_OWNER(spcforce_state, spcforce) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c index 061e6b1f448..4274f16e23f 100644 --- a/src/mame/drivers/spdodgeb.c +++ b/src/mame/drivers/spdodgeb.c @@ -429,8 +429,8 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state ) MCFG_SCREEN_UPDATE_DRIVER(spdodgeb_state, screen_update_spdodgeb) MCFG_GFXDECODE_ADD("gfxdecode", spdodgeb) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(spdodgeb_state, spdodgeb) /* sound hardware */ diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c index 226c69842b6..916aeb5bce0 100644 --- a/src/mame/drivers/speedatk.c +++ b/src/mame/drivers/speedatk.c @@ -338,8 +338,8 @@ static MACHINE_CONFIG_START( speedatk, speedatk_state ) MCFG_MC6845_ADD("crtc", H46505, "screen", MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */ MCFG_GFXDECODE_ADD("gfxdecode", speedatk) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(speedatk_state, speedatk) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c index 67547f0623c..601d69342a1 100644 --- a/src/mame/drivers/speedbal.c +++ b/src/mame/drivers/speedbal.c @@ -50,7 +50,7 @@ static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8, speedbal_state ) AM_RANGE(0xdc00, 0xdfff) AM_RAM AM_SHARE("share1") // shared with SOUND AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(speedbal_background_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(speedbal_foreground_videoram_w) AM_SHARE("fg_videoram") - AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf5ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf600, 0xfeff) AM_RAM AM_RANGE(0xff00, 0xffff) AM_RAM AM_SHARE("spriteram") ADDRESS_MAP_END @@ -256,7 +256,8 @@ static MACHINE_CONFIG_START( speedbal, speedbal_state ) MCFG_SCREEN_UPDATE_DRIVER(speedbal_state, screen_update_speedbal) MCFG_GFXDECODE_ADD("gfxdecode", speedbal) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c index 4fe745b6967..36182c9912f 100644 --- a/src/mame/drivers/speedspn.c +++ b/src/mame/drivers/speedspn.c @@ -107,7 +107,7 @@ WRITE8_MEMBER(speedspn_state::oki_banking_w) static ADDRESS_MAP_START( speedspn_map, AS_PROGRAM, 8, speedspn_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_byte_le_w) AM_SHARE("paletteram") /* RAM COLOUR */ + AM_RANGE(0x8000, 0x87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* RAM COLOUR */ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(speedspn_attram_w) AM_SHARE("attram") AM_RANGE(0x9000, 0x9fff) AM_READWRITE(speedspn_vidram_r,speedspn_vidram_w) /* RAM FIX / RAM OBJECTS (selected by bit 0 of port 17) */ AM_RANGE(0xa000, 0xa7ff) AM_RAM @@ -286,8 +286,8 @@ static MACHINE_CONFIG_START( speedspn, speedspn_state ) MCFG_SCREEN_UPDATE_DRIVER(speedspn_state, screen_update_speedspn) MCFG_GFXDECODE_ADD("gfxdecode", speedspn) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c index ca45e0d0f9a..1706ba5c7cd 100644 --- a/src/mame/drivers/speglsht.c +++ b/src/mame/drivers/speglsht.c @@ -369,7 +369,7 @@ UINT32 speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rgb3 { if(srcline[x]) { - rgb_t color=palette_get_color(machine(), srcline[x]); + rgb_t color=m_palette->pen_color(srcline[x]); PLOT_PIXEL_RGB(x,y,color.r(),color.g(),color.b()); } } @@ -403,7 +403,7 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state ) MCFG_SCREEN_UPDATE_DRIVER(speglsht_state, screen_update_speglsht) MCFG_GFXDECODE_ADD("gfxdecode", speglsht) - MCFG_PALETTE_LENGTH(16*16*4+1) + MCFG_PALETTE_ADD("palette", 16*16*4+1) MCFG_VIDEO_START_OVERRIDE(speglsht_state,speglsht) diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c index e3f1b9ec325..c9d3b2a05f3 100644 --- a/src/mame/drivers/splash.c +++ b/src/mame/drivers/splash.c @@ -100,7 +100,7 @@ static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state ) AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_SHARE("videoram") /* Video RAM */ AM_RANGE(0x881800, 0x881803) AM_RAM AM_SHARE("vregs") /* Scroll registers */ AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */ - AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette is xRRRRxGGGGxBBBBx */ + AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette is xRRRRxGGGGxBBBBx */ AM_RANGE(0x900000, 0x900fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */ ADDRESS_MAP_END @@ -173,7 +173,7 @@ static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16, splash_state ) AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_SHARE("videoram") /* Video RAM */ AM_RANGE(0x881800, 0x881803) AM_RAM AM_SHARE("vregs") /* Scroll registers */ AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */ - AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette is xRRRRxGGGGxBBBBx */ + AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette is xRRRRxGGGGxBBBBx */ AM_RANGE(0xa00000, 0xa00001) AM_READ(roldfrog_bombs_r) AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0xe00000, 0xe00001) AM_WRITEONLY AM_SHARE("bitmap_mode") /* Bitmap Mode? */ @@ -234,7 +234,7 @@ static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state ) AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE(splash_vram_w) AM_SHARE("videoram") /* Video RAM */ AM_RANGE(0x881800, 0x881803) AM_RAM AM_SHARE("vregs") /* Scroll registers */ AM_RANGE(0x881804, 0x881fff) AM_WRITENOP - AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette is xRRRRxGGGGxBBBBx */ + AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette is xRRRRxGGGGxBBBBx */ AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE(spr_read, spr_write) AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0xfe0000, 0xffffff) AM_RAM AM_MASK(0xffff) /* there's fe0000 <-> ff0000 compare */ /* Work RAM */ ADDRESS_MAP_END @@ -503,7 +503,8 @@ static MACHINE_CONFIG_START( splash, splash_state ) MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash) MCFG_GFXDECODE_ADD("gfxdecode", splash) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_MACHINE_RESET_OVERRIDE(splash_state, splash ) @@ -556,7 +557,8 @@ static MACHINE_CONFIG_START( roldfrog, splash_state ) MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash) MCFG_GFXDECODE_ADD("gfxdecode", splash) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_MACHINE_RESET_OVERRIDE(splash_state, splash ) @@ -634,7 +636,8 @@ static MACHINE_CONFIG_START( funystrp, splash_state ) MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_funystrp) MCFG_GFXDECODE_ADD("gfxdecode", splash) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_MACHINE_RESET_OVERRIDE(splash_state, funystrp ) diff --git a/src/mame/drivers/splus.c b/src/mame/drivers/splus.c index 2895e312893..7821ecbe032 100644 --- a/src/mame/drivers/splus.c +++ b/src/mame/drivers/splus.c @@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( splus, splus_state ) // basic machine hardware MCFG_NVRAM_ADD_0FILL("cmosh") // video hardware (ALL FAKE, NO VIDEO) - MCFG_PALETTE_LENGTH(16*16) + MCFG_PALETTE_ADD("palette", 16*16) MCFG_SCREEN_ADD("scrn", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index f7269a38bba..fbf80927bbe 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -105,7 +105,7 @@ void spoker_state::video_start() UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; @@ -225,8 +225,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( spoker_portmap, AS_IO, 8, spoker_state ) AM_RANGE( 0x0000, 0x003f ) AM_RAM // Z180 internal regs - AM_RANGE( 0x2000, 0x23ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE( 0x2400, 0x27ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE( 0x2000, 0x23ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE( 0x2400, 0x27ff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE( 0x3000, 0x33ff ) AM_RAM_WRITE(bg_tile_w ) AM_SHARE("bg_tile_ram") @@ -256,8 +256,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( 3super8_portmap, AS_IO, 8, spoker_state ) // AM_RANGE( 0x1000, 0x1fff ) AM_WRITENOP - AM_RANGE( 0x2000, 0x27ff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w ) AM_SHARE("paletteram") - AM_RANGE( 0x2800, 0x2fff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w ) AM_SHARE("paletteram2") + AM_RANGE( 0x2000, 0x27ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE( 0x2800, 0x2fff ) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE( 0x3000, 0x33ff ) AM_RAM_WRITE(bg_tile_w ) AM_SHARE("bg_tile_ram") @@ -538,8 +538,8 @@ static MACHINE_CONFIG_START( spoker, spoker_state ) MCFG_SCREEN_UPDATE_DRIVER(spoker_state, screen_update_spoker) MCFG_GFXDECODE_ADD("gfxdecode", spoker) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c index 8b58f56e5db..7828aca839a 100644 --- a/src/mame/drivers/spool99.c +++ b/src/mame/drivers/spool99.c @@ -227,7 +227,7 @@ static ADDRESS_MAP_START( spool99_map, AS_PROGRAM, 8, spool99_state ) AM_RANGE(0xafef, 0xafef) AM_WRITE(eeprom_dataline_w ) AM_RANGE(0xaff8, 0xaff8) AM_DEVWRITE("oki", okim6295_device, write) - AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xb000, 0xb3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb800, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(spool99_vram_w) AM_SHARE("vram") @@ -273,7 +273,7 @@ static ADDRESS_MAP_START( vcarn_map, AS_PROGRAM, 8, spool99_state ) AM_RANGE(0xa747, 0xa747) AM_WRITE(eeprom_dataline_w ) AM_RANGE(0xa780, 0xa780) AM_DEVWRITE("oki", okim6295_device, write) - AM_RANGE(0xa800, 0xabff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xa800, 0xabff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb000, 0xdfff) AM_RAM // AM_RANGE(0xdf00, 0xdfff) AM_READWRITE(vcarn_io_r,vcarn_io_w) AM_SHARE("vcarn_io") @@ -363,7 +363,8 @@ static MACHINE_CONFIG_START( spool99, spool99_state ) MCFG_SCREEN_VISIBLE_AREA(7*8, 55*8-1, 1*8, 31*8-1) //384x240,raw guess MCFG_SCREEN_UPDATE_DRIVER(spool99_state, screen_update_spool99) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c index 2a92c78a1f0..7bc10134751 100644 --- a/src/mame/drivers/sprcros2.c +++ b/src/mame/drivers/sprcros2.c @@ -279,8 +279,8 @@ static MACHINE_CONFIG_START( sprcros2, sprcros2_state ) MCFG_SCREEN_UPDATE_DRIVER(sprcros2_state, screen_update_sprcros2) MCFG_GFXDECODE_ADD("gfxdecode", sprcros2) - MCFG_PALETTE_LENGTH(768) - + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_INIT_OWNER(sprcros2_state, sprcros2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index 70a76e1c719..e73db2debac 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -498,8 +498,8 @@ static MACHINE_CONFIG_START( sprint2, sprint2_state ) MCFG_SCREEN_VBLANK_DRIVER(sprint2_state, screen_eof_sprint2) MCFG_GFXDECODE_ADD("gfxdecode", sprint2) - MCFG_PALETTE_LENGTH(12) - + MCFG_PALETTE_ADD("palette", 12) + MCFG_PALETTE_INIT_OWNER(sprint2_state, sprint2) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index bd2b0736ceb..b5cfcb84035 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -411,8 +411,8 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state ) MCFG_SCREEN_VBLANK_DRIVER(sprint4_state, screen_eof_sprint4) MCFG_GFXDECODE_ADD("gfxdecode", sprint4) - MCFG_PALETTE_LENGTH(10) - + MCFG_PALETTE_ADD("palette", 10) + MCFG_PALETTE_INIT_OWNER(sprint4_state, sprint4) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c index e79f474eff3..5369026e9ad 100644 --- a/src/mame/drivers/sprint8.c +++ b/src/mame/drivers/sprint8.c @@ -465,9 +465,8 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state ) MCFG_SCREEN_VBLANK_DRIVER(sprint8_state, screen_eof_sprint8) MCFG_GFXDECODE_ADD("gfxdecode", sprint8) - MCFG_PALETTE_LENGTH(36) - - + MCFG_PALETTE_ADD("palette", 36) + MCFG_PALETTE_INIT_OWNER(sprint8_state, sprint8) /* sound hardware */ /* the proper way is to hook up 4 speakers, but they are not really diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c index 454765bbfce..4151decd943 100644 --- a/src/mame/drivers/spy.c +++ b/src/mame/drivers/spy.c @@ -58,7 +58,7 @@ WRITE8_MEMBER(spy_state::spy_bankedram1_w) { if (m_rambank & 1) { - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset,data); + m_palette->write(space,offset,data); } else if (m_rambank & 2) { @@ -527,8 +527,6 @@ static MACHINE_CONFIG_START( spy, spy_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -536,13 +534,17 @@ static MACHINE_CONFIG_START( spy, spy_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(spy_state, screen_update_spy) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", spy_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", spy_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c index f6d89e87d55..01bc08c8062 100644 --- a/src/mame/drivers/srmp2.c +++ b/src/mame/drivers/srmp2.c @@ -421,7 +421,7 @@ static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16, srmp2_state ) AM_RANGE(0x300000, 0x300001) AM_READ8(mjyuugi_irq4_ack_r,0x00ff) /* irq ack lv 4? */ AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW3-1") /* DSW 3-1 */ AM_RANGE(0x500010, 0x500011) AM_READ_PORT("DSW3-2") /* DSW 3-2 */ - AM_RANGE(0x700000, 0x7003ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x7003ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x800001) AM_READNOP /* ??? */ AM_RANGE(0x900000, 0x900001) AM_READWRITE8(iox_mux_r, iox_command_w,0x00ff) /* key matrix | I/O */ AM_RANGE(0x900002, 0x900003) AM_READWRITE8(iox_status_r,iox_data_w,0x00ff) @@ -1169,6 +1169,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1179,9 +1180,10 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state ) MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp2) MCFG_GFXDECODE_ADD("gfxdecode", srmp2) - MCFG_PALETTE_LENGTH(1024) /* sprites only */ + MCFG_PALETTE_ADD("palette", 1024) /* sprites only */ + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_PALETTE_INIT_OVERRIDE(srmp2_state,srmp2) + MCFG_PALETTE_INIT_OWNER(srmp2_state,srmp2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1211,6 +1213,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1221,9 +1224,10 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state ) MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp3) MCFG_GFXDECODE_ADD("gfxdecode", srmp3) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_PALETTE_INIT_OVERRIDE(srmp2_state,srmp3) + MCFG_PALETTE_INIT_OWNER(srmp2_state,srmp3) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1262,6 +1266,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1272,7 +1277,8 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state ) MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_mjyuugi) MCFG_GFXDECODE_ADD("gfxdecode", srmp3) - MCFG_PALETTE_LENGTH(512) /* sprites only */ + MCFG_PALETTE_ADD("palette", 512) /* sprites only */ + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c index c6bde4360fe..709de62a279 100644 --- a/src/mame/drivers/srmp5.c +++ b/src/mame/drivers/srmp5.c @@ -229,7 +229,7 @@ READ32_MEMBER(srmp5_state::srmp5_palette_r) WRITE32_MEMBER(srmp5_state::srmp5_palette_w) { COMBINE_DATA(&m_palram[offset]); - palette_set_color(machine(), offset, rgb_t(data << 3 & 0xFF, data >> 2 & 0xFF, data >> 7 & 0xFF)); + m_palette->set_pen_color(offset, rgb_t(data << 3 & 0xFF, data >> 2 & 0xFF, data >> 7 & 0xFF)); } WRITE32_MEMBER(srmp5_state::bank_w) { @@ -552,9 +552,9 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 2*8, 32*8-1) MCFG_SCREEN_UPDATE_DRIVER(srmp5_state, screen_update_srmp5) - MCFG_PALETTE_LENGTH(0x1800) + MCFG_PALETTE_ADD("palette", 0x1800) #ifdef DEBUG_CHAR - MCFG_GFXDECODE_ADD("gfxdecode", srmp5 ) + MCFG_GFXDECODE_ADD("gfxdecode", srmp5 ) #endif MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016) diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c index ef0fe73e57f..ade067146d8 100644 --- a/src/mame/drivers/srmp6.c +++ b/src/mame/drivers/srmp6.c @@ -156,7 +156,7 @@ void srmp6_state::update_palette() b += ((0x1F - b) * brg) >> 5; if(b > 0x1F) b = 0x1F; } - palette_set_color(machine(), i, rgb_t(r << 3, g << 3, b << 3)); + m_palette->set_pen_color(i, rgb_t(r << 3, g << 3, b << 3)); } } @@ -167,7 +167,7 @@ void srmp6_state::video_start() m_sprram_old = auto_alloc_array_clear(machine(), UINT16, 0x80000/2); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), tiles8x8_layout, (UINT8*)m_tileram, machine().total_colors() / 256, 0))); + m_gfxdecode->set_gfx(0, auto_alloc(machine(), gfx_element(machine(), tiles8x8_layout, (UINT8*)m_tileram, m_palette->entries() / 256, 0))); m_gfxdecode->gfx(0)->set_granularity(256); m_brightness = 0x60; @@ -275,7 +275,7 @@ UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bit else yb=y+(height-yw-1)*8+global_y; - m_gfxdecode->gfx(0)->alpha(bitmap,cliprect,tileno,global_pal,flip_x,flip_y,xb,yb,0,alpha); + m_gfxdecode->gfx(0)->alpha(m_palette,bitmap,cliprect,tileno,global_pal,flip_x,flip_y,xb,yb,0,alpha); tileno++; } } @@ -504,7 +504,7 @@ WRITE16_MEMBER(srmp6_state::paletteram_w) INT8 r, g, b; int brg = m_brightness - 0x60; - paletteram_xBBBBBGGGGGRRRRR_word_w(space, offset, data, mem_mask); + m_palette->write(space, offset, data, mem_mask); if(brg) { @@ -529,7 +529,7 @@ WRITE16_MEMBER(srmp6_state::paletteram_w) if(b > 0x1F) b = 0x1F; } - palette_set_color(machine(), offset, rgb_t(r << 3, g << 3, b << 3)); + m_palette->set_pen_color(offset, rgb_t(r << 3, g << 3, b << 3)); } } @@ -677,7 +677,8 @@ static MACHINE_CONFIG_START( srmp6, srmp6_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c index 53e1120e415..5c054bd1d67 100644 --- a/src/mame/drivers/srumbler.c +++ b/src/mame/drivers/srumbler.c @@ -86,7 +86,7 @@ static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8, srumbler_state ) AM_RANGE(0x6000, 0x6fff) AM_ROMBANK("6000") /* Banked ROM */ AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* Video RAM 2 ??? (not used) */ AM_RANGE(0x7000, 0x7fff) AM_ROMBANK("7000") /* Banked ROM */ - AM_RANGE(0x7000, 0x73ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0x7000, 0x73ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("8000") /* Banked ROM */ AM_RANGE(0x9000, 0x9fff) AM_ROMBANK("9000") /* Banked ROM */ AM_RANGE(0xa000, 0xafff) AM_ROMBANK("a000") /* Banked ROM */ @@ -257,8 +257,9 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", srumbler) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c index 02dc2b175f3..8fe992147c7 100644 --- a/src/mame/drivers/ssfindo.c +++ b/src/mame/drivers/ssfindo.c @@ -300,7 +300,7 @@ WRITE32_MEMBER(ssfindo_state::FIFO_w) if(!(data>>28)) { - palette_set_color_rgb(machine(), m_PS7500_FIFO[1]&0xff, data&0xff,(data>>8)&0xff,(data>>16)&0xff); + m_palette->set_pen_color(m_PS7500_FIFO[1]&0xff, data&0xff,(data>>8)&0xff,(data>>16)&0xff); m_PS7500_FIFO[1]++; //autoinc } } @@ -774,7 +774,7 @@ static MACHINE_CONFIG_START( ssfindo, ssfindo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(ssfindo_state, screen_update_ssfindo) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ppcar, ssfindo ) diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c index 0ce3e3b1c3f..5e2e99a55e7 100644 --- a/src/mame/drivers/sshangha.c +++ b/src/mame/drivers/sshangha.c @@ -92,7 +92,7 @@ void sshangha_state::machine_reset() inline void sshangha_state::sshangha_set_color_888(pen_t color, int rshift, int gshift, int bshift, UINT32 data) { - palette_set_color_rgb(machine(), color, (data >> rshift) & 0xff, (data >> gshift) & 0xff, (data >> bshift) & 0xff); + m_palette->set_pen_color(color, (data >> rshift) & 0xff, (data >> gshift) & 0xff, (data >> bshift) & 0xff); } @@ -418,18 +418,21 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state ) MCFG_SCREEN_UPDATE_DRIVER(sshangha_state, screen_update_sshangha) MCFG_GFXDECODE_ADD("gfxdecode", sshangha) - MCFG_PALETTE_LENGTH(0x4000) + MCFG_PALETTE_ADD("palette", 0x4000) MCFG_DECO16IC_ADD("tilegen1", sshangha_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_DECO146_ADD("ioprot") diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c index 8122f40c58a..423204a2fb6 100644 --- a/src/mame/drivers/sshot.c +++ b/src/mame/drivers/sshot.c @@ -182,7 +182,6 @@ public: DECLARE_WRITE8_MEMBER(supershot_output1_w); TILE_GET_INFO_MEMBER(get_supershot_text_tile_info); virtual void video_start(); - virtual void palette_init(); UINT32 screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -335,12 +334,6 @@ static GFXDECODE_START( supershot ) GFXDECODE_ENTRY( "gfx", 0, supershot_charlayout, 0, 1 ) GFXDECODE_END -void supershot_state::palette_init() -{ - palette_set_color(machine(),0,rgb_t::black); /* black */ - palette_set_color(machine(),1,rgb_t::white); /* white */ -} - static MACHINE_CONFIG_START( supershot, supershot_state ) /* basic machine hardware */ @@ -357,7 +350,7 @@ static MACHINE_CONFIG_START( supershot, supershot_state ) MCFG_SCREEN_UPDATE_DRIVER(supershot_state, screen_update_supershot) MCFG_GFXDECODE_ADD("gfxdecode", supershot) - MCFG_PALETTE_LENGTH(2) + MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") /* sound hardware */ //... diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c index a5e80c93d9c..a0b07eb57c3 100644 --- a/src/mame/drivers/ssingles.c +++ b/src/mame/drivers/ssingles.c @@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( ssingles, ssingles_state ) MCFG_SCREEN_RAW_PARAMS(4000000, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */ MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) - MCFG_PALETTE_LENGTH(4) //guess + MCFG_PALETTE_ADD("palette", 4) //guess MCFG_GFXDECODE_ADD("gfxdecode", ssingles) diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c index e2aa8b74ecc..aa18844b867 100644 --- a/src/mame/drivers/sslam.c +++ b/src/mame/drivers/sslam.c @@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( sslam, sslam_state ) MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_sslam) MCFG_GFXDECODE_ADD("gfxdecode", sslam) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) MCFG_VIDEO_START_OVERRIDE(sslam_state,sslam) @@ -744,7 +744,7 @@ static MACHINE_CONFIG_START( powerbls, sslam_state ) MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_powerbls) MCFG_GFXDECODE_ADD("gfxdecode", powerbls) - MCFG_PALETTE_LENGTH(0x200) + MCFG_PALETTE_ADD("palette", 0x200) MCFG_VIDEO_START_OVERRIDE(sslam_state,powerbls) diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c index ab27afd23fd..94fd0c797c6 100644 --- a/src/mame/drivers/ssozumo.c +++ b/src/mame/drivers/ssozumo.c @@ -205,8 +205,8 @@ static MACHINE_CONFIG_START( ssozumo, ssozumo_state ) MCFG_SCREEN_UPDATE_DRIVER(ssozumo_state, screen_update_ssozumo) MCFG_GFXDECODE_ADD("gfxdecode", ssozumo) - MCFG_PALETTE_LENGTH(64 + 16) - + MCFG_PALETTE_ADD("palette", 64 + 16) + MCFG_PALETTE_INIT_OWNER(ssozumo_state, ssozumo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c index a62cdabbb6f..de31ed95382 100644 --- a/src/mame/drivers/sspeedr.c +++ b/src/mame/drivers/sspeedr.c @@ -11,7 +11,7 @@ Taito Super Speed Race driver -void sspeedr_state::palette_init() +PALETTE_INIT_MEMBER(sspeedr_state, sspeedr) { int i; @@ -28,7 +28,7 @@ void sspeedr_state::palette_init() b += 0x4f; } - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -202,8 +202,8 @@ static MACHINE_CONFIG_START( sspeedr, sspeedr_state ) MCFG_SCREEN_VBLANK_DRIVER(sspeedr_state, screen_eof_sspeedr) MCFG_GFXDECODE_ADD("gfxdecode", sspeedr) - MCFG_PALETTE_LENGTH(16) - + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(sspeedr_state, sspeedr) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c index 242ed8d9f88..a58fa50dc06 100644 --- a/src/mame/drivers/ssrj.c +++ b/src/mame/drivers/ssrj.c @@ -156,8 +156,8 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state ) MCFG_SCREEN_VBLANK_DRIVER(ssrj_state, screen_eof_ssrj) MCFG_GFXDECODE_ADD("gfxdecode", ssrj) - MCFG_PALETTE_LENGTH(128) - + MCFG_PALETTE_ADD("palette", 128) + MCFG_PALETTE_INIT_OWNER(ssrj_state, ssrj) /* sound hardware */ diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index 249fe4caf04..53df8a50878 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -2593,7 +2593,7 @@ static MACHINE_CONFIG_START( ssv, ssv_state ) MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv) MCFG_GFXDECODE_ADD("gfxdecode", ssv) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -2642,6 +2642,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv ) MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) MCFG_ST0020_SPRITES_GFXDECODE("gfxdecode") + MCFG_ST0020_SPRITES_PALETTE("palette") MCFG_GFXDECODE_MODIFY("gfxdecode", gdfs) MCFG_VIDEO_START_OVERRIDE(ssv_state,gdfs) diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c index 86964a66652..0e1732ba6df 100644 --- a/src/mame/drivers/st0016.c +++ b/src/mame/drivers/st0016.c @@ -423,7 +423,7 @@ static MACHINE_CONFIG_START( st0016, st0016_state ) MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016) MCFG_GFXDECODE_ADD("gfxdecode", st0016) - MCFG_PALETTE_LENGTH(16*16*4+1) + MCFG_PALETTE_ADD("palette", 16*16*4+1) MCFG_VIDEO_START_OVERRIDE(st0016_state,st0016) diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c index 0cf86a58d22..4f304f8d78e 100644 --- a/src/mame/drivers/stadhero.c +++ b/src/mame/drivers/stadhero.c @@ -74,7 +74,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, stadhero_state ) AM_RANGE(0x240010, 0x240017) AM_DEVWRITE("tilegen1", deco_bac06_device, pf_control_1_w) AM_RANGE(0x260000, 0x261fff) AM_DEVREADWRITE("tilegen1", deco_bac06_device, pf_data_r, pf_data_w) AM_RANGE(0x30c000, 0x30c00b) AM_READWRITE(stadhero_control_r, stadhero_control_w) - AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x310000, 0x3107ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* Main ram */ AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x000800) AM_RAM AM_SHARE("spriteram") ADDRESS_MAP_END @@ -236,7 +236,8 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state ) MCFG_SCREEN_UPDATE_DRIVER(stadhero_state, screen_update_stadhero) MCFG_GFXDECODE_ADD("gfxdecode", stadhero) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) deco_bac06_device::set_gfx_region_wide(*device,1,1,2); @@ -245,6 +246,7 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state ) MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 2); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") /* sound hardware */ diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c index dd967b3a999..bf1ac48abfc 100644 --- a/src/mame/drivers/starcrus.c +++ b/src/mame/drivers/starcrus.c @@ -151,9 +151,8 @@ static MACHINE_CONFIG_START( starcrus, starcrus_state ) MCFG_SCREEN_UPDATE_DRIVER(starcrus_state, screen_update_starcrus) MCFG_GFXDECODE_ADD("gfxdecode", starcrus) - 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/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c index 29307ed7994..4c52e007823 100644 --- a/src/mame/drivers/starshp1.c +++ b/src/mame/drivers/starshp1.c @@ -308,8 +308,8 @@ static MACHINE_CONFIG_START( starshp1, starshp1_state ) MCFG_SCREEN_VBLANK_DRIVER(starshp1_state, screen_eof_starshp1) MCFG_GFXDECODE_ADD("gfxdecode", starshp1) - MCFG_PALETTE_LENGTH(19) - + MCFG_PALETTE_ADD("palette", 19) + MCFG_PALETTE_INIT_OWNER(starshp1_state, starshp1) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index 9a9d3d04314..ee700719809 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -116,7 +116,7 @@ public: TILE_GET_INFO_MEMBER(horizontal_tile_info); TILE_GET_INFO_MEMBER(vertical_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(statriv2); DECLARE_VIDEO_START(vertical); UINT32 screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(statriv2_interrupt); @@ -158,14 +158,14 @@ TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info) * *************************************/ -void statriv2_state::palette_init() +PALETTE_INIT_MEMBER(statriv2_state, statriv2) { int i; for (i = 0; i < 64; i++) { - palette_set_color_rgb(machine(), 2*i+0, pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1)); - palette_set_color_rgb(machine(), 2*i+1, pal1bit(i >> 5), pal1bit(i >> 3), pal1bit(i >> 4)); + palette.set_pen_color(2*i+0, pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1)); + palette.set_pen_color(2*i+1, pal1bit(i >> 5), pal1bit(i >> 3), pal1bit(i >> 4)); } } @@ -205,7 +205,7 @@ WRITE8_MEMBER(statriv2_state::statriv2_videoram_w) UINT32 statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_tms->screen_reset()) - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); else m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; @@ -626,8 +626,8 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state ) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf) MCFG_GFXDECODE_ADD("gfxdecode", horizontal) - MCFG_PALETTE_LENGTH(2*64) - + MCFG_PALETTE_ADD("palette", 2*64) + MCFG_PALETTE_INIT_OWNER(statriv2_state, statriv2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c index fabec1c1b5a..1f75184652b 100644 --- a/src/mame/drivers/stfight.c +++ b/src/mame/drivers/stfight.c @@ -562,7 +562,8 @@ static MACHINE_CONFIG_START( stfight, stfight_state ) MCFG_VIDEO_START_OVERRIDE(stfight_state,stfight) MCFG_GFXDECODE_ADD("gfxdecode", stfight) - MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16) + MCFG_PALETTE_ADD("palette", 16*4+16*16+16*16+16*16) + MCFG_PALETTE_INIT_OWNER(stfight_state, stfight) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c index 370985c5d38..3ece7c027dc 100644 --- a/src/mame/drivers/stlforce.c +++ b/src/mame/drivers/stlforce.c @@ -100,7 +100,7 @@ static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state ) AM_RANGE(0x103400, 0x1037ff) AM_RAM AM_SHARE("mlow_scrollram") AM_RANGE(0x103800, 0x103bff) AM_RAM AM_SHARE("mhigh_scrollram") AM_RANGE(0x103c00, 0x103fff) AM_RAM AM_SHARE("vidattrram") - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x105000, 0x107fff) AM_RAM /* unknown / ram */ AM_RANGE(0x108000, 0x108fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x109000, 0x11ffff) AM_RAM @@ -201,8 +201,8 @@ static MACHINE_CONFIG_START( stlforce, stlforce_state ) MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update_stlforce) MCFG_GFXDECODE_ADD("gfxdecode", stlforce) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c index bacdbba0fb4..b85c8897006 100644 --- a/src/mame/drivers/strnskil.c +++ b/src/mame/drivers/strnskil.c @@ -352,8 +352,8 @@ static MACHINE_CONFIG_START( strnskil, strnskil_state ) MCFG_SCREEN_UPDATE_DRIVER(strnskil_state, screen_update_strnskil) MCFG_GFXDECODE_ADD("gfxdecode", strnskil) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(strnskil_state, strnskil) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/stuntair.c b/src/mame/drivers/stuntair.c index 6512a97fc8a..8b38eab1eb0 100644 --- a/src/mame/drivers/stuntair.c +++ b/src/mame/drivers/stuntair.c @@ -153,12 +153,12 @@ PALETTE_INIT_MEMBER(stuntair_state, stuntair) int g = (data&0x38)>>3; int r = (data&0x07)>>0; - palette_set_color(machine(),i,rgb_t(r<<5,g<<5,b<<6)); + palette.set_pen_color(i,rgb_t(r<<5,g<<5,b<<6)); } // just set the FG layer to black and white - palette_set_color(machine(),0x100,rgb_t(0x00,0x00,0x00)); - palette_set_color(machine(),0x101,rgb_t(0xff,0xff,0xff)); + palette.set_pen_color(0x100,rgb_t(0x00,0x00,0x00)); + palette.set_pen_color(0x101,rgb_t(0xff,0xff,0xff)); } @@ -213,7 +213,7 @@ void stuntair_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec y = 240 - y; - gfx->transpen(bitmap,cliprect,tile,colour,flipx,flipy,x,y,0); + gfx->transpen(m_palette,bitmap,cliprect,tile,colour,flipx,flipy,x,y,0); } } @@ -541,9 +541,9 @@ static MACHINE_CONFIG_START( stuntair, stuntair_state ) MCFG_SCREEN_UPDATE_DRIVER(stuntair_state, screen_update_stuntair) MCFG_GFXDECODE_ADD("gfxdecode", stuntair) - MCFG_PALETTE_LENGTH(0x100+2) + MCFG_PALETTE_ADD("palette", 0x100+2) - MCFG_PALETTE_INIT_OVERRIDE(stuntair_state, stuntair) + MCFG_PALETTE_INIT_OWNER(stuntair_state, stuntair) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") // stereo? diff --git a/src/mame/drivers/stv.c b/src/mame/drivers/stv.c index 3cf630217b7..bc6a632df13 100644 --- a/src/mame/drivers/stv.c +++ b/src/mame/drivers/stv.c @@ -1013,7 +1013,7 @@ static MACHINE_CONFIG_START( stv, stv_state ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) MCFG_SCREEN_UPDATE_DRIVER(stv_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/mame/drivers/sub.c b/src/mame/drivers/sub.c index 23c5680bb97..aba00241f17 100644 --- a/src/mame/drivers/sub.c +++ b/src/mame/drivers/sub.c @@ -137,7 +137,7 @@ public: DECLARE_WRITE8_MEMBER(subm_to_sound_w); DECLARE_WRITE8_MEMBER(nmi_mask_w); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(sub); UINT32 screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(subm_sound_irq); required_device<cpu_device> m_maincpu; @@ -167,8 +167,8 @@ UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, tile += (m_attr[count]&0xe0)<<3; col = (m_attr[count]&0x1f); - gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs); - gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256); + gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs); + gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256); count++; } @@ -200,7 +200,7 @@ UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, if(fx) { x = 0xe0 - x; } fy = (spriteram_2[i+0] & 0x40) ? 0 : 1; - gfx_1->transpen(bitmap,cliprect,spr_offs,col,0,fy,x,y,0); + gfx_1->transpen(m_palette,bitmap,cliprect,spr_offs,col,0,fy,x,y,0); } } @@ -220,8 +220,8 @@ UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, if(x >= 28) { - gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs); - gfx->opaque(bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256); + gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs); + gfx->opaque(m_palette,bitmap,cliprect,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256); } count++; @@ -394,15 +394,12 @@ static GFXDECODE_START( sub ) GFXDECODE_ENTRY( "gfx2", 0, tiles16x32_layout, 0, 0x80 ) GFXDECODE_END -void sub_state::palette_init() +PALETTE_INIT_MEMBER(sub_state, sub) { const UINT8 *color_prom = memregion("proms")->base(); int i; UINT8* lookup = memregion("proms2")->base(); - /* allocate the colortable */ - machine().colortable = colortable_alloc(machine(), 0x100); - for (i = 0;i < 0x100;i++) { int r,g,b; @@ -410,8 +407,8 @@ void sub_state::palette_init() g = (color_prom[0x100] >> 0); b = (color_prom[0x200] >> 0); - //colortable_palette_set_color(machine().colortable, i, rgb_t(r, g, b)); - colortable_palette_set_color(machine().colortable, i, rgb_t(pal4bit(r), pal4bit(g), pal4bit(b))); + //palette.set_indirect_color(i, rgb_t(r, g, b)); + palette.set_indirect_color(i, rgb_t(pal4bit(r), pal4bit(g), pal4bit(b))); color_prom++; } @@ -420,7 +417,7 @@ void sub_state::palette_init() for (i = 0;i < 0x400;i++) { UINT8 ctabentry = lookup[i+0x400] | (lookup[i+0x000] << 4); - colortable_entry_set_value(machine().colortable, i, ctabentry); + palette.set_pen_indirect(i, ctabentry); } } @@ -455,8 +452,8 @@ static MACHINE_CONFIG_START( sub, sub_state ) MCFG_SCREEN_UPDATE_DRIVER(sub_state, screen_update_sub) MCFG_GFXDECODE_ADD("gfxdecode", sub) - MCFG_PALETTE_LENGTH(0x400) - + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_INIT_OWNER(sub_state, sub) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c index 32dd6a7dc13..19840ed451f 100644 --- a/src/mame/drivers/subs.c +++ b/src/mame/drivers/subs.c @@ -29,12 +29,12 @@ * *************************************/ -void subs_state::palette_init() +PALETTE_INIT_MEMBER(subs_state, subs) { - palette_set_color(machine(),0,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */ - palette_set_color(machine(),1,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert */ - palette_set_color(machine(),2,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */ - palette_set_color(machine(),3,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert*/ + palette.set_pen_color(0,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */ + palette.set_pen_color(1,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert */ + palette.set_pen_color(2,rgb_t(0x00,0x00,0x00)); /* BLACK - modified on video invert */ + palette.set_pen_color(3,rgb_t(0xff,0xff,0xff)); /* WHITE - modified on video invert*/ } @@ -184,7 +184,10 @@ static MACHINE_CONFIG_START( subs, subs_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", subs) - MCFG_PALETTE_LENGTH(4) + + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(subs_state, subs) + MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c index 6fc63fa0ca5..479b1f600c0 100644 --- a/src/mame/drivers/subsino.c +++ b/src/mame/drivers/subsino.c @@ -602,7 +602,7 @@ PALETTE_INIT_MEMBER(subsino_state,subsino_2proms) bit2 = (val >> 2) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -629,7 +629,7 @@ PALETTE_INIT_MEMBER(subsino_state,subsino_3proms) bit2 = (val >> 0) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -1086,7 +1086,7 @@ WRITE8_MEMBER(subsino_state::colordac_w) case 1: m_stisub_colorram[m_colordac_offs] = data; - palette_set_color_rgb(machine(), m_colordac_offs/3, + m_palette->set_pen_color(m_colordac_offs/3, pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+0]), pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+1]), pal6bit(m_stisub_colorram[(m_colordac_offs/3)*3+2]) @@ -2817,8 +2817,8 @@ static MACHINE_CONFIG_START( victor21, subsino_state ) MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth3) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_2proms) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_2proms) MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino) @@ -2859,8 +2859,8 @@ static MACHINE_CONFIG_START( crsbingo, subsino_state ) MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth4) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_2proms) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_2proms) MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino) @@ -2890,8 +2890,8 @@ static MACHINE_CONFIG_START( srider, subsino_state ) MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth4) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms) MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino) @@ -2931,8 +2931,8 @@ static MACHINE_CONFIG_START( tisub, subsino_state ) MCFG_GFXDECODE_ADD("gfxdecode", subsino_depth4_reels) - MCFG_PALETTE_LENGTH(0x100) - MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms) MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino_reels) @@ -2961,8 +2961,8 @@ static MACHINE_CONFIG_START( stisub, subsino_state ) MCFG_GFXDECODE_ADD("gfxdecode", subsino_stisub) - MCFG_PALETTE_LENGTH(0x100) - //MCFG_PALETTE_INIT_OVERRIDE(subsino_state,subsino_3proms) + MCFG_PALETTE_ADD("palette", 0x100) + //MCFG_PALETTE_INIT_OWNER(subsino_state,subsino_3proms) MCFG_VIDEO_START_OVERRIDE(subsino_state,stisub) diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c index 5c36c3a93c1..45238338031 100644 --- a/src/mame/drivers/subsino2.c +++ b/src/mame/drivers/subsino2.c @@ -692,7 +692,7 @@ UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind1 } } - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); if (layers_ctrl & 1) { @@ -773,7 +773,7 @@ WRITE8_MEMBER(subsino2_state::hm86171_colorram_w) case 1: m_hm86171_colorram[m_hm86171_offs] = data; - palette_set_color_rgb(machine(), m_hm86171_offs/3, + m_palette->set_pen_color(m_hm86171_offs/3, pal6bit(m_hm86171_colorram[(m_hm86171_offs/3)*3+0]), pal6bit(m_hm86171_colorram[(m_hm86171_offs/3)*3+1]), pal6bit(m_hm86171_colorram[(m_hm86171_offs/3)*3+2]) @@ -2143,8 +2143,8 @@ static MACHINE_CONFIG_START( bishjan, subsino2_state ) MCFG_SCREEN_REFRESH_RATE( 60 ) MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) - MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) - MCFG_PALETTE_LENGTH( 256 ) + MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) + MCFG_PALETTE_ADD( "palette", 256 ) MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 ) @@ -2171,8 +2171,8 @@ static MACHINE_CONFIG_START( mtrain, subsino2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) - MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) - MCFG_PALETTE_LENGTH( 256 ) + MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) + MCFG_PALETTE_ADD( "palette", 256 ) MCFG_VIDEO_START_OVERRIDE(subsino2_state, mtrain ) @@ -2202,8 +2202,8 @@ static MACHINE_CONFIG_START( saklove, subsino2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) - MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) - MCFG_PALETTE_LENGTH( 256 ) + MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) + MCFG_PALETTE_ADD( "palette", 256 ) MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 ) @@ -2237,8 +2237,8 @@ static MACHINE_CONFIG_START( xplan, subsino2_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2) - MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) - MCFG_PALETTE_LENGTH( 256 ) + MCFG_GFXDECODE_ADD("gfxdecode", ss9601 ) + MCFG_PALETTE_ADD( "palette", 256 ) MCFG_VIDEO_START_OVERRIDE(subsino2_state, subsino2 ) diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c index 5b8ad4e4bc7..647ab01ebc6 100644 --- a/src/mame/drivers/summit.c +++ b/src/mame/drivers/summit.c @@ -33,7 +33,7 @@ public: required_shared_ptr<UINT8> m_vram; DECLARE_WRITE8_MEMBER(out_w); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(summit); UINT32 screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -57,7 +57,7 @@ UINT32 summit_state::screen_update_summit(screen_device &screen, bitmap_ind16 &b for (x=0;x<32;x++) { int tile = (m_vram[count] | ((m_attr[count]&1)<<8) ); - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8); count++; } @@ -295,7 +295,7 @@ static GFXDECODE_START( summit ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 ) GFXDECODE_END -void summit_state::palette_init() +PALETTE_INIT_MEMBER(summit_state, summit) { } @@ -315,8 +315,8 @@ static MACHINE_CONFIG_START( summit, summit_state ) MCFG_GFXDECODE_ADD("gfxdecode", summit) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(summit_state, summit) MACHINE_CONFIG_END diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c index 9c6d492cb04..b20a220ff2e 100644 --- a/src/mame/drivers/suna16.c +++ b/src/mame/drivers/suna16.c @@ -821,7 +821,7 @@ static MACHINE_CONFIG_START( bssoccer, suna16_state ) MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16) MCFG_GFXDECODE_ADD("gfxdecode", suna16) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ @@ -879,7 +879,7 @@ static MACHINE_CONFIG_START( uballoon, suna16_state ) MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16) MCFG_GFXDECODE_ADD("gfxdecode", suna16) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ @@ -927,7 +927,7 @@ static MACHINE_CONFIG_START( sunaq, suna16_state ) MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16) MCFG_GFXDECODE_ADD("gfxdecode", suna16) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ @@ -988,7 +988,7 @@ static MACHINE_CONFIG_START( bestbest, suna16_state ) MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_bestbest) MCFG_GFXDECODE_ADD("gfxdecode", bestbest) - MCFG_PALETTE_LENGTH(256*8) + MCFG_PALETTE_ADD("palette", 256*8) /* sound hardware */ diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index 9dc4266bd86..4c26875aefc 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -578,7 +578,7 @@ static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM AM_RANGE(0xc000, 0xd7ff) AM_RAM // RAM - AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xd800, 0xd9ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xda00, 0xda00) AM_RAM_READ(hardhead_ip_r) AM_SHARE("hardhead_ip") // Input Port Select AM_RANGE(0xda80, 0xda80) AM_READ(soundlatch2_byte_r) AM_WRITE(hardhead_bankswitch_w ) // ROM Banking AM_RANGE(0xdb00, 0xdb00) AM_WRITE(soundlatch_byte_w ) // To Sound CPU @@ -654,7 +654,7 @@ static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8, suna8_state ) AM_RANGE(0xc280, 0xc280) AM_WRITENOP // ? NMI Ack AM_RANGE(0xc280, 0xc280) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0xc2c0, 0xc2c0) AM_READ_PORT("DSW2") // DSW 2 - AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc800, 0xdfff) AM_RAM // Work RAM AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE(suna8_spriteram_w) AM_SHARE("spriteram") // Sprites ADDRESS_MAP_END @@ -949,7 +949,7 @@ static ADDRESS_MAP_START( hardhea2_map, AS_PROGRAM, 8, suna8_state ) AM_RANGE(0xc533, 0xc533) AM_WRITE(hardhea2_rambank_0_w ) // Protection *** - AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc800, 0xdfff) AM_RAMBANK("bank2") // Work RAM (Banked) AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked) ADDRESS_MAP_END @@ -1053,7 +1053,7 @@ static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state ) AM_RANGE(0xc500, 0xc500) AM_WRITE(starfigh_sound_latch_w ) // To Sound CPU (can be disabled) // (c522 + R & 0x1f) write? - AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc800, 0xdfff) AM_RAM // Work RAM AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked) ADDRESS_MAP_END @@ -1181,7 +1181,7 @@ static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state ) AM_RANGE(0xc480, 0xc480) AM_WRITE(sparkman_coin_counter_w ) // Coin Counter AM_RANGE(0xc500, 0xc57f) AM_WRITE(starfigh_sound_latch_w ) // To Sound CPU (can be disabled) - AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0xc600, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0xc800, 0xdfff) AM_RAM_WRITE(suna8_wram_w) AM_SHARE("wram") // RAM AM_RANGE(0xe000, 0xffff) AM_READWRITE(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked) ADDRESS_MAP_END @@ -1841,7 +1841,8 @@ static MACHINE_CONFIG_START( hardhead, suna8_state ) MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE_ADD("gfxdecode", suna8) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim12) @@ -1902,7 +1903,8 @@ static MACHINE_CONFIG_START( rranger, suna8_state ) MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE_ADD("gfxdecode", suna8) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim8) @@ -1962,7 +1964,8 @@ static MACHINE_CONFIG_START( brickzn, suna8_state ) MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE_ADD("gfxdecode", suna8) - MCFG_PALETTE_LENGTH(256 * 2) // 2 x Palette RAM + MCFG_PALETTE_ADD("palette", 256 * 2) // 2 x Palette RAM + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_brickzn) @@ -2022,7 +2025,9 @@ static MACHINE_CONFIG_DERIVED( hardhea2, brickzn ) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", suna8_state, hardhea2_interrupt, "screen", 0, 1) MCFG_MACHINE_RESET_OVERRIDE(suna8_state,hardhea2) - MCFG_PALETTE_LENGTH(256) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MACHINE_CONFIG_END @@ -2062,7 +2067,8 @@ static MACHINE_CONFIG_START( starfigh, suna8_state ) MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE_ADD("gfxdecode", suna8) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_starfigh) @@ -2109,7 +2115,8 @@ static MACHINE_CONFIG_START( sparkman, suna8_state ) MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8) MCFG_GFXDECODE_ADD("gfxdecode", suna8_x2) // 2 sprite "chips" - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_sparkman) diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c index 6a6ca76b49a..5fa987d230a 100644 --- a/src/mame/drivers/supbtime.c +++ b/src/mame/drivers/supbtime.c @@ -62,7 +62,7 @@ static ADDRESS_MAP_START( supbtime_map, AS_PROGRAM, 16, supbtime_state ) AM_RANGE(0x104000, 0x11ffff) AM_WRITENOP /* Nothing there */ AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x120800, 0x13ffff) AM_WRITENOP /* Nothing there */ - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x18000f) AM_READ(supbtime_controls_r) AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(sound_w) @@ -77,7 +77,7 @@ static ADDRESS_MAP_START( chinatwn_map, AS_PROGRAM, 16, supbtime_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x100000, 0x100001) AM_WRITE(sound_w) AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x18000f) AM_READ(supbtime_controls_r) AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM @@ -342,14 +342,17 @@ static MACHINE_CONFIG_START( supbtime, supbtime_state ) MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime) MCFG_GFXDECODE_ADD("gfxdecode", supbtime) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -386,14 +389,17 @@ static MACHINE_CONFIG_START( chinatwn, supbtime_state ) MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime) MCFG_GFXDECODE_ADD("gfxdecode", supbtime) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c index d1b56752dca..5d15c45a1c2 100644 --- a/src/mame/drivers/supdrapo.c +++ b/src/mame/drivers/supdrapo.c @@ -93,7 +93,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(supdrapo); UINT32 screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -125,7 +125,7 @@ UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind1 /* Global Column Coloring, GUESS! */ color = m_col_line[(x*2) + 1] ? (m_col_line[(x*2) + 1] - 1) & 7 : 0; - m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, tile,color, 0, 0, x*8, y*8); + m_gfxdecode->gfx(0)->opaque(m_palette,bitmap,cliprect, tile,color, 0, 0, x*8, y*8); count++; } @@ -136,7 +136,7 @@ UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind1 /*Maybe bit 2 & 3 of the second color prom are intensity bits? */ -void supdrapo_state::palette_init() +PALETTE_INIT_MEMBER(supdrapo_state, supdrapo) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, bit2 , r, g, b; @@ -159,7 +159,7 @@ void supdrapo_state::palette_init() bit2 = (color_prom[0x100] >> 1) & 0x01; r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -465,8 +465,8 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state ) MCFG_SCREEN_UPDATE_DRIVER(supdrapo_state, screen_update_supdrapo) MCFG_GFXDECODE_ADD("gfxdecode", supdrapo) - MCFG_PALETTE_LENGTH(0x100) - + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(supdrapo_state, supdrapo) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c index 1477e7b3ad8..ba9be62b178 100644 --- a/src/mame/drivers/superchs.c +++ b/src/mame/drivers/superchs.c @@ -103,7 +103,7 @@ WRITE32_MEMBER(superchs_state::superchs_palette_w) g = (a &0xff00) >> 8; b = (a &0xff); - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } READ32_MEMBER(superchs_state::superchs_input_r) @@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( superchs, superchs_state ) MCFG_SCREEN_UPDATE_DRIVER(superchs_state, screen_update_superchs) MCFG_GFXDECODE_ADD("gfxdecode", superchs) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_TC0480SCP_ADD("tc0480scp", superchs_tc0480scp_intf) diff --git a/src/mame/drivers/supercrd.c b/src/mame/drivers/supercrd.c index 250455e98fc..cbb793dbf88 100644 --- a/src/mame/drivers/supercrd.c +++ b/src/mame/drivers/supercrd.c @@ -211,7 +211,7 @@ PALETTE_INIT_MEMBER(supercrd_state, supercrd) 2, resistances_g, weights_g, 100, 0); - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2, r, g, b; @@ -230,7 +230,7 @@ PALETTE_INIT_MEMBER(supercrd_state, supercrd) bit1 = (color_prom[i] >> 7) & 0x01; g = combine_2_weights(weights_g, bit0, bit1); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -475,8 +475,8 @@ static MACHINE_CONFIG_START( supercrd, supercrd_state ) MCFG_GFXDECODE_ADD("gfxdecode", supercrd) - MCFG_PALETTE_LENGTH(0x200) - MCFG_PALETTE_INIT_OVERRIDE(supercrd_state, supercrd) + MCFG_PALETTE_ADD("palette", 0x200) + MCFG_PALETTE_INIT_OWNER(supercrd_state, supercrd) MCFG_VIDEO_START_OVERRIDE(supercrd_state, supercrd) // MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/8, mc6845_intf) diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c index 75c19240ea5..d5e872fc844 100644 --- a/src/mame/drivers/superdq.c +++ b/src/mame/drivers/superdq.c @@ -52,7 +52,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(superdq); UINT32 screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(superdq_vblank); required_device<cpu_device> m_maincpu; @@ -86,7 +86,7 @@ UINT32 superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 * *************************************/ -void superdq_state::palette_init() +PALETTE_INIT_MEMBER(superdq_state, superdq) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -100,7 +100,7 @@ void superdq_state::palette_init() 2, &resistances[1], bweights, 220, 0); /* initialize the palette with these colors */ - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2; int r, g, b; @@ -122,7 +122,7 @@ void superdq_state::palette_init() bit1 = (color_prom[i] >> 0) & 0x01; b = combine_2_weights(bweights, bit1, bit0); - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); } } @@ -170,9 +170,9 @@ WRITE8_MEMBER(superdq_state::superdq_io_w) { int index = black_color_entries[i]; if (data & 0x80) - palette_set_color(machine(), index, palette_get_color(machine(), index) & rgb_t(0,255,255,255)); + m_palette->set_pen_color(index, m_palette->pen_color(index) & rgb_t(0,255,255,255)); else - palette_set_color(machine(), index, palette_get_color(machine(), index) | rgb_t(255,0,0,0)); + m_palette->set_pen_color(index, m_palette->pen_color(index) | rgb_t(255,0,0,0)); } /* @@ -336,8 +336,8 @@ static MACHINE_CONFIG_START( superdq, superdq_state ) MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") MCFG_GFXDECODE_ADD("gfxdecode", superdq) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(superdq_state, superdq) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c index 6aa79505e4f..dfffe55d1ce 100644 --- a/src/mame/drivers/superqix.c +++ b/src/mame/drivers/superqix.c @@ -561,7 +561,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, superqix_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8, superqix_state ) - AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE(paletteram_BBGGRRII_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x0000, 0x01ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0401, 0x0401) AM_DEVREAD("aysnd", ay8910_device, data_r) AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) AM_RANGE(0x0408, 0x0408) AM_READ(pbillian_from_mcu_r) @@ -574,7 +574,7 @@ static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8, superqix_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8, superqix_state ) - AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE(paletteram_BBGGRRII_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x0000, 0x01ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0401, 0x0401) AM_DEVREAD("aysnd", ay8910_device, data_r) AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) AM_RANGE(0x0408, 0x0408) AM_READ(hotsmash_from_mcu_r) @@ -587,7 +587,7 @@ static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8, superqix_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( sqix_port_map, AS_IO, 8, superqix_state ) - AM_RANGE(0x0000, 0x00ff) AM_RAM_WRITE(paletteram_BBGGRRII_byte_w) AM_SHARE("paletteram") + AM_RANGE(0x0000, 0x00ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0401, 0x0401) AM_DEVREAD("ay1", ay8910_device, data_r) AM_RANGE(0x0402, 0x0403) AM_DEVWRITE("ay1", ay8910_device, data_address_w) AM_RANGE(0x0405, 0x0405) AM_DEVREAD("ay2", ay8910_device, data_r) @@ -1006,7 +1006,8 @@ static MACHINE_CONFIG_START( pbillian, superqix_state ) MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian) MCFG_GFXDECODE_ADD("gfxdecode", pbillian) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(BBGGRRII) MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian) @@ -1040,7 +1041,8 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state ) MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian) MCFG_GFXDECODE_ADD("gfxdecode", pbillian) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(BBGGRRII) MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian) @@ -1078,7 +1080,8 @@ static MACHINE_CONFIG_START( sqix, superqix_state ) MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix) MCFG_GFXDECODE_ADD("gfxdecode", sqix) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGRRII) MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix) @@ -1121,7 +1124,8 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state ) MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix) MCFG_GFXDECODE_ADD("gfxdecode", sqix) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(BBGGRRII) MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix) diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c index e76d3797d3b..9a4b988aef6 100644 --- a/src/mame/drivers/superwng.c +++ b/src/mame/drivers/superwng.c @@ -74,7 +74,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(superwng); UINT32 screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(superwng_nmi_interrupt); INTERRUPT_GEN_MEMBER(superwng_sound_nmi_assert); @@ -155,7 +155,7 @@ UINT32 superwng_state::screen_update_superwng(screen_device &screen, bitmap_ind1 int sy = m_colorram_bg[i]; int color = m_colorram_bg[i + 1] & 0xf; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, code, color, flip, flip, @@ -174,12 +174,12 @@ static const UINT8 superwng_colors[]= /* temporary */ 0x00, 0xc0, 0x07, 0x3f, 0x00, 0x1f, 0x3f, 0xff, 0x00, 0x86, 0x05, 0xff, 0x00, 0xc0, 0xe8, 0xff }; -void superwng_state::palette_init() +PALETTE_INIT_MEMBER(superwng_state, superwng) { int i; const UINT8 * ptr=superwng_colors; - for (i = 0; i < machine().total_colors(); i++) + for (i = 0; i < palette.entries(); i++) { int bit0, bit1, bit2, r, g, b; @@ -197,7 +197,7 @@ void superwng_state::palette_init() bit1 = BIT(*ptr, 7); b = 0x4f * bit0 + 0xa8 * bit1; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); ++ptr; } } @@ -481,7 +481,8 @@ static MACHINE_CONFIG_START( superwng, superwng_state ) MCFG_GFXDECODE_ADD("gfxdecode", superwng) - MCFG_PALETTE_LENGTH(0x40) + MCFG_PALETTE_ADD("palette", 0x40) + MCFG_PALETTE_INIT_OWNER(superwng_state, superwng) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index b91fb5e781b..af6ddcb8fdc 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -107,7 +107,7 @@ void suprgolf_state::video_start() UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x,y,count,color; - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); { count = 0; @@ -119,7 +119,7 @@ UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind1 color = m_bg_fb[count]; if(x <= cliprect.max_x && y <= cliprect.max_y) - bitmap.pix16(y, x) = machine().pens[(color & 0x7ff)]; + bitmap.pix16(y, x) = m_palette->pen((color & 0x7ff)); count++; } @@ -136,7 +136,7 @@ UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind1 color = m_fg_fb[count]; if(((m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y)) - bitmap.pix16(y, x) = machine().pens[(color & 0x7ff)]; + bitmap.pix16(y, x) = m_palette->pen((color & 0x7ff)); count++; } @@ -169,7 +169,7 @@ WRITE8_MEMBER(suprgolf_state::suprgolf_videoram_w) g = (datax & 0x8000) ? 0 : ((datax)&0x03e0)>>5; r = (datax & 0x8000) ? 0 : ((datax)&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)); } else { @@ -524,7 +524,7 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state ) MCFG_SCREEN_UPDATE_DRIVER(suprgolf_state, screen_update_suprgolf) MCFG_GFXDECODE_ADD("gfxdecode", suprgolf) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c index a8af507fe03..509028b117a 100644 --- a/src/mame/drivers/suprloco.c +++ b/src/mame/drivers/suprloco.c @@ -178,8 +178,8 @@ static MACHINE_CONFIG_START( suprloco, suprloco_state ) MCFG_SCREEN_UPDATE_DRIVER(suprloco_state, screen_update_suprloco) MCFG_GFXDECODE_ADD("gfxdecode", suprloco) - MCFG_PALETTE_LENGTH(512+256) - + MCFG_PALETTE_ADD("palette", 512+256) + MCFG_PALETTE_INIT_OWNER(suprloco_state, suprloco) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 49264f510e0..a2ca2c9c966 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -772,7 +772,7 @@ static MACHINE_CONFIG_START( skns, skns_state ) MCFG_SCREEN_UPDATE_DRIVER(skns_state, screen_update_skns) MCFG_SCREEN_VBLANK_DRIVER(skns_state, screen_eof_skns) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MCFG_GFXDECODE_ADD("gfxdecode", skns_bg) MCFG_DEVICE_ADD("spritegen", SKNS_SPRITE, 0) diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c index 5b1c966398a..bf61391f424 100644 --- a/src/mame/drivers/suprridr.c +++ b/src/mame/drivers/suprridr.c @@ -375,8 +375,8 @@ static MACHINE_CONFIG_START( suprridr, suprridr_state ) MCFG_SCREEN_UPDATE_DRIVER(suprridr_state, screen_update_suprridr) MCFG_GFXDECODE_ADD("gfxdecode", suprridr) - MCFG_PALETTE_LENGTH(96) - + MCFG_PALETTE_ADD("palette", 96) + MCFG_PALETTE_INIT_OWNER(suprridr_state, suprridr) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c index 3ae7e3e21f4..bef41c0570e 100644 --- a/src/mame/drivers/suprslam.c +++ b/src/mame/drivers/suprslam.c @@ -135,7 +135,7 @@ static ADDRESS_MAP_START( suprslam_map, AS_PROGRAM, 16, suprslam_state ) // AM_RANGE(0xff3000, 0xff3001) AM_WRITENOP // sprite buffer trigger? AM_RANGE(0xff8000, 0xff8fff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w) AM_RANGE(0xff9000, 0xff9001) AM_WRITE(sound_command_w) - AM_RANGE(0xffa000, 0xffafff) AM_RAM_WRITE(paletteram_xGGGGGBBBBBRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffa000, 0xffafff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffd000, 0xffd01f) AM_DEVWRITE("k053936", k053936_device, ctrl_w) AM_RANGE(0xffe000, 0xffe001) AM_WRITE(suprslam_bank_w) AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1") @@ -324,12 +324,14 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(suprslam_state, screen_update_suprslam) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xGGGGGBBBBBRRRRR) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( suprslam_state, suprslam_tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(1) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR_PALETTE("palette") MCFG_K053936_ADD("k053936", suprslam_k053936_intf) diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c index 8dc1309395a..9306a302061 100644 --- a/src/mame/drivers/surpratk.c +++ b/src/mame/drivers/surpratk.c @@ -44,9 +44,9 @@ WRITE8_MEMBER(surpratk_state::bankedram_w) if (m_videobank & 0x02) { if (m_videobank & 0x04) - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset + 0x0800,data); + m_palette->write(space,offset + 0x0800,data); else - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset,data); + m_palette->write(space,offset,data); } else if (m_videobank & 0x01) m_k053244->k053245_w(space, offset, data); @@ -211,8 +211,6 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -220,13 +218,17 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(surpratk_state, screen_update_surpratk) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", surpratk_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053244_ADD("k053244", surpratk_k05324x_intf) MCFG_K053244_GFXDECODE("gfxdecode") + MCFG_K053244_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index a3566085903..4cf2c62c009 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -2159,7 +2159,7 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state ) MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system1) MCFG_GFXDECODE_ADD("gfxdecode", system1) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c index cd3880c66e7..b8fde0d5a57 100644 --- a/src/mame/drivers/system16.c +++ b/src/mame/drivers/system16.c @@ -2008,7 +2008,7 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state ) MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16) MCFG_GFXDECODE_ADD("gfxdecode", sys16) - MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER) + MCFG_PALETTE_ADD("palette", 2048*SHADOW_COLORS_MULTIPLIER) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16) @@ -2155,12 +2155,12 @@ static MACHINE_CONFIG_START( goldnaxeb1, segas1x_bootleg_state ) MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16) MCFG_GFXDECODE_ADD("gfxdecode", sys16) - MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 2048*SHADOW_COLORS_MULTIPLIER) MCFG_BOOTLEG_SYS16B_SPRITES_ADD("sprites") MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-121) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16) MACHINE_CONFIG_END @@ -2288,7 +2288,7 @@ static MACHINE_CONFIG_START( system18, segas1x_bootleg_state ) MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system18old) MCFG_GFXDECODE_ADD("gfxdecode", sys16) - MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works) + MCFG_PALETTE_ADD("palette", (2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works) MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system18old) diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c index cd2c5f19811..61b233fe4df 100644 --- a/src/mame/drivers/tagteam.c +++ b/src/mame/drivers/tagteam.c @@ -221,8 +221,8 @@ static MACHINE_CONFIG_START( tagteam, tagteam_state ) MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update_tagteam) MCFG_GFXDECODE_ADD("gfxdecode", tagteam) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(tagteam_state, tagteam) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c index 6013dbc4024..18d15ac1033 100644 --- a/src/mame/drivers/tail2nos.c +++ b/src/mame/drivers/tail2nos.c @@ -41,7 +41,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state ) AM_RANGE(0xffc000, 0xffc2ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xffc300, 0xffcfff) AM_RAM AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(tail2nos_bgvideoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE(tail2nos_gfxbank_w) AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) @@ -243,11 +243,13 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state ) MCFG_SCREEN_UPDATE_DRIVER(tail2nos_state, screen_update_tail2nos) MCFG_GFXDECODE_ADD("gfxdecode", tail2nos) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_K051316_ADD("k051316", tail2nos_k051316_intf) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index fb6c733bffd..e2312027d79 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -471,7 +471,7 @@ WRITE16_MEMBER(taitob_state::realpunc_output_w) static ADDRESS_MAP_START( rastsag2_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x607fff) AM_RAM /* Main RAM */ /*ashura up to 603fff only*/ TC0180VCU_MEMRW( 0x400000 ) AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) @@ -486,7 +486,7 @@ static ADDRESS_MAP_START( crimec_map, AS_PROGRAM, 16, taitob_state ) TC0180VCU_MEMRW( 0x400000 ) AM_RANGE(0x600000, 0x600001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) - AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa00000, 0xa0ffff) AM_RAM /* Main RAM */ ADDRESS_MAP_END @@ -498,12 +498,12 @@ static ADDRESS_MAP_START( tetrist_map, AS_PROGRAM, 16, taitob_state ) TC0180VCU_MEMRW( 0x400000 ) AM_RANGE(0x600000, 0x60000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00) AM_RANGE(0x800000, 0x807fff) AM_RAM /* Main RAM */ - AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( tetrista_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") TC0180VCU_MEMRW( 0x400000 ) AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0xff00) AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0xff00) @@ -521,7 +521,7 @@ static ADDRESS_MAP_START( hitice_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) AM_RANGE(0x800000, 0x803fff) AM_RAM /* Main RAM */ - AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb00000, 0xb7ffff) AM_RAM_WRITE(hitice_pixelram_w) AM_SHARE("pixelram") // { 0xbffff0, 0xbffff1, ??? AM_RANGE(0xbffff2, 0xbffff5) AM_WRITE(hitice_pixel_scroll_w) @@ -544,7 +544,7 @@ static ADDRESS_MAP_START( rambo3_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x60001c, 0x60001d) AM_READ(trackx2_lo_r) AM_RANGE(0x60001e, 0x60001f) AM_READ(trackx2_hi_r) AM_RANGE(0x800000, 0x803fff) AM_RAM /* Main RAM */ - AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END @@ -559,7 +559,7 @@ static ADDRESS_MAP_START( pbobble_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w) AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) - AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */ ADDRESS_MAP_END @@ -575,7 +575,7 @@ static ADDRESS_MAP_START( spacedx_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w) AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) - AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */ ADDRESS_MAP_END @@ -587,7 +587,7 @@ static ADDRESS_MAP_START( spacedxo_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x210000, 0x210001) AM_READ_PORT("IN3") AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4") AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5") - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x302000, 0x303fff) AM_READONLY AM_RANGE(0x400000, 0x40ffff) AM_RAM /* Main RAM */ TC0180VCU_MEMRW( 0x500000 ) @@ -605,7 +605,7 @@ static ADDRESS_MAP_START( qzshowby_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x600000, 0x600001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) AM_RANGE(0x700000, 0x700003) AM_WRITE(gain_control_w) - AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */ ADDRESS_MAP_END @@ -615,7 +615,7 @@ static ADDRESS_MAP_START( viofight_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x200000, 0x200001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) TC0180VCU_MEMRW( 0x400000 ) - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00) AM_RANGE(0xa00000, 0xa03fff) AM_RAM /* Main RAM */ ADDRESS_MAP_END @@ -625,7 +625,7 @@ static ADDRESS_MAP_START( masterw_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x200000, 0x203fff) AM_RAM /* Main RAM */ TC0180VCU_MEMRW( 0x400000 ) - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0xff00) AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0xff00) AM_RANGE(0xa00000, 0xa00001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) @@ -645,7 +645,7 @@ static ADDRESS_MAP_START( silentd_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5") AM_RANGE(0x240000, 0x240001) AM_WRITENOP // ??? // AM_RANGE(0x240000, 0x240001) AM_READNOP /* read 4 times at init */ - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x403fff) AM_RAM /* Main RAM */ TC0180VCU_MEMRW( 0x500000 ) ADDRESS_MAP_END @@ -655,7 +655,7 @@ static ADDRESS_MAP_START( selfeena_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x103fff) AM_RAM /* Main RAM */ TC0180VCU_MEMRW( 0x200000 ) - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00) AM_RANGE(0x410000, 0x41000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00) /* mirror address - seems to be only used for coin control */ AM_RANGE(0x500000, 0x500001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) @@ -666,7 +666,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sbm_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM /* Main RAM */ - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_wordswap_r, halfword_wordswap_w) AM_RANGE(0x320000, 0x320001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -684,7 +684,7 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x188002, 0x188003) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_w, 0xff00) AM_RANGE(0x18c000, 0x18c001) AM_WRITE(realpunc_output_w) TC0180VCU_MEMRW( 0x200000 ) - AM_RANGE(0x280000, 0x281fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x280000, 0x281fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w) // AM_RANGE(0x320000, 0x320001) AM_NOP // ? @@ -2008,8 +2008,9 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) + MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0) MCFG_TC0180VCU_ADD("tc0180vcu", color0_tc0180vcu_intf) @@ -2053,7 +2054,8 @@ static MACHINE_CONFIG_START( masterw, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2079,6 +2081,9 @@ static MACHINE_CONFIG_DERIVED( tetrist, rastsag2 ) /* Nastar conversion kit with MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(tetrist_map) + + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MACHINE_CONFIG_END @@ -2114,7 +2119,8 @@ static MACHINE_CONFIG_START( ashura, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0) @@ -2159,7 +2165,8 @@ static MACHINE_CONFIG_START( crimec, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1) @@ -2204,7 +2211,8 @@ static MACHINE_CONFIG_START( hitice, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,hitice) MCFG_VIDEO_RESET_OVERRIDE(taitob_state,hitice) @@ -2255,7 +2263,8 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", rambo3) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0) @@ -2300,7 +2309,8 @@ static MACHINE_CONFIG_START( rambo3, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2349,7 +2359,8 @@ static MACHINE_CONFIG_START( pbobble, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1) @@ -2398,7 +2409,8 @@ static MACHINE_CONFIG_START( spacedx, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1) @@ -2443,7 +2455,8 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2492,7 +2505,8 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order1) @@ -2537,7 +2551,8 @@ static MACHINE_CONFIG_START( viofight, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2587,7 +2602,8 @@ static MACHINE_CONFIG_START( silentd, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2632,7 +2648,8 @@ static MACHINE_CONFIG_START( selfeena, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2686,7 +2703,8 @@ static MACHINE_CONFIG_START( ryujin, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order2) @@ -2738,7 +2756,8 @@ static MACHINE_CONFIG_START( sbm, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_color_order0) @@ -2788,7 +2807,8 @@ static MACHINE_CONFIG_START( realpunc, taitob_state ) MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob) MCFG_GFXDECODE_ADD("gfxdecode", taito_b) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc) diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c index 397a685fa3d..6aec0060563 100644 --- a/src/mame/drivers/taito_f2.c +++ b/src/mame/drivers/taito_f2.c @@ -701,7 +701,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dondokod_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -720,7 +720,7 @@ static ADDRESS_MAP_START( megab_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x120000, 0x12000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x180000, 0x180fff) AM_READWRITE(cchip2_word_r, cchip2_word_w) AM_SHARE("cchip2_ram") AM_RANGE(0x200000, 0x20ffff) AM_RAM - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x40001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* ?? */ AM_RANGE(0x600000, 0x60ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x610000, 0x61ffff) AM_RAM /* unused? */ @@ -730,7 +730,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( thundfox_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x100000, 0x101fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x220000, 0x220001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x220002, 0x220003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -746,7 +746,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( cameltry_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x300018, 0x30001f) AM_READ(cameltry_paddle_r) AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) @@ -775,7 +775,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( liquidk_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) @@ -810,7 +810,7 @@ static ADDRESS_MAP_START( ssi_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w) AM_RANGE(0x200000, 0x20ffff) AM_RAM - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x400002, 0x400003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) // AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* ?? */ @@ -822,7 +822,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gunfront_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x0bffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_wordswap_r, halfword_wordswap_w) AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -836,7 +836,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( growl_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSWA") AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DSWB") @@ -882,7 +882,7 @@ static ADDRESS_MAP_START( footchmp_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x400000, 0x40ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x430000, 0x43002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x500000, 0x50001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* 500002 written like a watchdog?! */ - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w) AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB") @@ -899,7 +899,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( koshien_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w) AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -918,7 +918,7 @@ static ADDRESS_MAP_START( yuyugogo_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb00000, 0xb10fff) AM_RAM /* deliberate writes to $b10xxx, I think */ AM_RANGE(0xc00000, 0xc01fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext") AM_RANGE(0xd00000, 0xdfffff) AM_ROM AM_REGION("extra", 0) @@ -927,7 +927,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( ninjak_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30000f) AM_READ(ninjak_input_r) AM_RANGE(0x30000e, 0x30000f) AM_WRITE(ninjak_coin_word_w) AM_RANGE(0x380000, 0x380001) AM_WRITE(watchdog_reset16_w) /* ??? */ @@ -943,7 +943,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( solfigtr_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x201fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) /* NOT VERIFIED */ AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSWA") AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DSWB") @@ -966,7 +966,7 @@ static ADDRESS_MAP_START( qzquest_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w) AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) - AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x401fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x50ffff) AM_RAM AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ @@ -982,7 +982,7 @@ static ADDRESS_MAP_START( pulirula_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE("tc0430grw", tc0280grd_device, tc0430grw_ctrl_word_w) // AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* ??? */ AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext") - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram") @@ -998,7 +998,7 @@ static ADDRESS_MAP_START( metalb_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x500000, 0x50ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x530000, 0x53002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x600000, 0x60001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) - AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x703fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_wordswap_r, halfword_wordswap_w) AM_RANGE(0x900000, 0x900001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x900002, 0x900003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -1010,7 +1010,7 @@ static ADDRESS_MAP_START( qzchikyu_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w) AM_RANGE(0x300000, 0x300001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) - AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x401fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x50ffff) AM_RAM AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ @@ -1023,7 +1023,7 @@ static ADDRESS_MAP_START( yesnoj_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x500000, 0x50ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x520000, 0x52000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // AM_RANGE(0x700000, 0x70000b) AM_READ(yesnoj_unknown_r) /* what's this? */ AM_RANGE(0x800000, 0x800001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) @@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( deadconx_map, AS_PROGRAM, 16, taitof2_state ) // AM_RANGE(0x42000c, 0x42000f) AM_WRITENOP /* zeroed */ AM_RANGE(0x430000, 0x43002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x500000, 0x50001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* uses 500002 like a watchdog !? */ - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x600000, 0x601fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB") AM_RANGE(0x700004, 0x700005) AM_READ_PORT("IN2") @@ -1061,7 +1061,7 @@ static ADDRESS_MAP_START( dinorex_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x2fffff) AM_ROM AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tc0510nio", tc0510nio_device, halfword_r, halfword_w) AM_RANGE(0x400000, 0x400fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext") - AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500000, 0x501fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_RANGE(0x700000, 0x70001f) AM_DEVWRITE8("tc0360pri", tc0360pri_device, write, 0x00ff) /* ?? */ AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram") @@ -1079,7 +1079,7 @@ static ADDRESS_MAP_START( qjinsei_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* watchdog ? */ AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext") - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram") @@ -1095,7 +1095,7 @@ static ADDRESS_MAP_START( qcrayon_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x500000, 0x500001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0xff00) AM_RANGE(0x500002, 0x500003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0xff00) AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_SHARE("sprite_ext") - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) @@ -1106,7 +1106,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( qcrayon2_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM - AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x301fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x500000, 0x50ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x520000, 0x52000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) @@ -1125,7 +1125,7 @@ static ADDRESS_MAP_START( driftout_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_RANGE(0x400000, 0x401fff) AM_DEVREADWRITE("tc0430grw", tc0280grd_device, tc0430grw_word_r, tc0430grw_word_w) /* ROZ tilemap */ AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE("tc0430grw", tc0280grd_device, tc0430grw_ctrl_word_w) - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram") @@ -1142,7 +1142,7 @@ static ADDRESS_MAP_START( driveout_map, AS_PROGRAM, 16, taitof2_state ) AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_RANGE(0x400000, 0x401fff) AM_DEVREADWRITE("tc0430grw", tc0280grd_device, tc0430grw_word_r, tc0430grw_word_w) /* ROZ tilemap */ AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE("tc0430grw", tc0280grd_device, tc0430grw_ctrl_word_w) - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x820000, 0x82000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_SHARE("spriteram") @@ -3029,7 +3029,8 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state ) MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer) MCFG_GFXDECODE_ADD("gfxdecode", taitof2) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_default) @@ -3058,6 +3059,8 @@ static MACHINE_CONFIG_DERIVED( taito_f2_tc0510nio, taito_f2 ) /* basic machine hardware */ MCFG_TC0510NIO_ADD("tc0510nio", taitof2_io510_intf) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MACHINE_CONFIG_END @@ -3076,6 +3079,7 @@ static MACHINE_CONFIG_DERIVED( finalb, taito_f2_tc0220ioc ) MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") MACHINE_CONFIG_END @@ -3172,6 +3176,7 @@ static MACHINE_CONFIG_DERIVED( qtorimon, taito_f2_tc0220ioc ) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") MACHINE_CONFIG_END @@ -3207,6 +3212,7 @@ static MACHINE_CONFIG_DERIVED( quizhq, taito_f2 ) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") MACHINE_CONFIG_END @@ -3274,6 +3280,7 @@ static MACHINE_CONFIG_DERIVED( mjnquest, taito_f2 ) MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") MACHINE_CONFIG_END @@ -3432,7 +3439,9 @@ static MACHINE_CONFIG_DERIVED( metalb, taito_f2_tc0510nio ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", deadconx) - MCFG_PALETTE_LENGTH(8192) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb) @@ -3624,7 +3633,8 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state ) MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer) MCFG_GFXDECODE_ADD("gfxdecode", pivot) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) @@ -3676,7 +3686,8 @@ static MACHINE_CONFIG_START( driveout, taitof2_state ) MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer) MCFG_GFXDECODE_ADD("gfxdecode", pivot) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout) diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index 9c0e89915fe..7ddd327f7a7 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -452,7 +452,7 @@ static MACHINE_CONFIG_START( f3, taito_f3_state ) MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3) MCFG_GFXDECODE_ADD("gfxdecode", taito_f3) - MCFG_PALETTE_LENGTH(0x2000) + MCFG_PALETTE_ADD("palette", 0x2000) MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3) @@ -545,7 +545,7 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state ) MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3) MCFG_GFXDECODE_ADD("gfxdecode", bubsympb) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3) diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c index 6849a8e1faf..89626fd38c1 100644 --- a/src/mame/drivers/taito_h.c +++ b/src/mame/drivers/taito_h.c @@ -246,7 +246,7 @@ static ADDRESS_MAP_START( syvalion_map, AS_PROGRAM, 16, taitoh_state ) AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w) - AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16, taitoh_state ) @@ -257,7 +257,7 @@ static ADDRESS_MAP_START( recordbr_map, AS_PROGRAM, 16, taitoh_state ) AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w) - AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( tetristh_map, AS_PROGRAM, 16, taitoh_state ) @@ -268,7 +268,7 @@ static ADDRESS_MAP_START( tetristh_map, AS_PROGRAM, 16, taitoh_state ) AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, portreg_r, portreg_w, 0x00ff) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, port_r, port_w, 0x00ff) AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w) - AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16, taitoh_state ) @@ -278,7 +278,7 @@ static ADDRESS_MAP_START( dleague_map, AS_PROGRAM, 16, taitoh_state ) AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w) - AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x600001) AM_WRITENOP /* ?? writes zero once per frame */ ADDRESS_MAP_END @@ -695,7 +695,8 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_syvalion) MCFG_GFXDECODE_ADD("gfxdecode", syvalion) - MCFG_PALETTE_LENGTH(33*16) + MCFG_PALETTE_ADD("palette", 33*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_TC0080VCO_ADD("tc0080vco", syvalion_tc0080vco_intf) MCFG_TC0080VCO_GFXDECODE("gfxdecode") @@ -737,7 +738,8 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_recordbr) MCFG_GFXDECODE_ADD("gfxdecode", recordbr) - MCFG_PALETTE_LENGTH(32*16) + MCFG_PALETTE_ADD("palette", 32*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_TC0080VCO_ADD("tc0080vco", recordbr_tc0080vco_intf) MCFG_TC0080VCO_GFXDECODE("gfxdecode") @@ -787,7 +789,8 @@ static MACHINE_CONFIG_START( dleague, taitoh_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_dleague) MCFG_GFXDECODE_ADD("gfxdecode", dleague) - MCFG_PALETTE_LENGTH(33*16) + MCFG_PALETTE_ADD("palette", 33*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_TC0080VCO_ADD("tc0080vco", recordbr_tc0080vco_intf) MCFG_TC0080VCO_GFXDECODE("gfxdecode") diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index 8c1b26ee384..d541ebdd6bd 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -101,7 +101,7 @@ void taitol_state::palette_notifier(int addr) else { // r = g = b = ((addr & 0x1e) != 0)*255; - palette_set_color_rgb(machine(), addr / 2, pal4bit(byte0), pal4bit(byte0 >> 4), pal4bit(byte1)); + m_palette->set_pen_color(addr / 2, pal4bit(byte0), pal4bit(byte0 >> 4), pal4bit(byte1)); } } @@ -1824,7 +1824,7 @@ static MACHINE_CONFIG_START( fhawk, taitol_state ) MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE_ADD("gfxdecode", 2) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) @@ -1918,7 +1918,7 @@ static MACHINE_CONFIG_START( kurikint, taitol_state ) MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE_ADD("gfxdecode", 2) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) @@ -1964,7 +1964,7 @@ static MACHINE_CONFIG_START( plotting, taitol_state ) MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE_ADD("gfxdecode", 1) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) @@ -2057,7 +2057,7 @@ static MACHINE_CONFIG_START( evilston, taitol_state ) MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) MCFG_GFXDECODE_ADD("gfxdecode", 2) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c index d06dad498b9..739ef164905 100644 --- a/src/mame/drivers/taito_o.c +++ b/src/mame/drivers/taito_o.c @@ -65,7 +65,7 @@ static ADDRESS_MAP_START( parentj_map, AS_PROGRAM, 16, taitoo_state ) AM_RANGE(0x200000, 0x20000f) AM_READWRITE(io_r, io_w) /* TC0220IOC ? */ AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8("ymsnd", ym2203_device, read, write, 0x00ff) AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE("tc0080vco", tc0080vco_device, word_r, word_w) - AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500800, 0x500fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static INPUT_PORTS_START( parentj ) @@ -256,7 +256,8 @@ static MACHINE_CONFIG_START( parentj, taitoo_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoo_state, screen_update_parentj) MCFG_GFXDECODE_ADD("gfxdecode", parentj) - MCFG_PALETTE_LENGTH(33*16) + MCFG_PALETTE_ADD("palette", 33*16) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_TC0080VCO_ADD("tc0080vco", parentj_intf) MCFG_TC0080VCO_GFXDECODE("gfxdecode") diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c index e4d9a41ed26..8d029daa186 100644 --- a/src/mame/drivers/taito_x.c +++ b/src/mame/drivers/taito_x.c @@ -419,7 +419,7 @@ static ADDRESS_MAP_START( superman_map, AS_PROGRAM, 16, taitox_state ) AM_RANGE(0x900000, 0x9007ff) AM_READWRITE(cchip1_ram_r, cchip1_ram_w) AM_RANGE(0x900802, 0x900803) AM_READWRITE(cchip1_ctrl_r, cchip1_ctrl_w) AM_RANGE(0x900c00, 0x900c01) AM_WRITE(cchip1_bank_w) - AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16) AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr @@ -434,7 +434,7 @@ static ADDRESS_MAP_START( daisenpu_map, AS_PROGRAM, 16, taitox_state ) AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w) - AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16) AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr @@ -449,7 +449,7 @@ static ADDRESS_MAP_START( gigandes_map, AS_PROGRAM, 16, taitox_state ) AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w) - AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16) AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr @@ -464,7 +464,7 @@ static ADDRESS_MAP_START( ballbros_map, AS_PROGRAM, 16, taitox_state ) AM_RANGE(0x800000, 0x800001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x800002, 0x800003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) AM_RANGE(0x900000, 0x90000f) AM_READWRITE(daisenpu_input_r, daisenpu_input_w) - AM_RANGE(0xb00000, 0xb00fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xb00000, 0xb00fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16) AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr @@ -820,6 +820,7 @@ static MACHINE_CONFIG_START( superman, taitox_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -830,7 +831,8 @@ static MACHINE_CONFIG_START( superman, taitox_state ) MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", superman) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers) @@ -863,6 +865,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -873,7 +876,8 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state ) MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", superman) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers) @@ -904,6 +908,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -914,7 +919,8 @@ static MACHINE_CONFIG_START( gigandes, taitox_state ) MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", superman) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers) @@ -947,6 +953,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -957,7 +964,8 @@ static MACHINE_CONFIG_START( ballbros, taitox_state ) MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers) MCFG_GFXDECODE_ADD("gfxdecode", ballbros) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers) diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index 19be222abf1..5d77f6799ac 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -1550,7 +1550,7 @@ static ADDRESS_MAP_START( bshark_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w) AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w) - AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) @@ -1563,7 +1563,7 @@ static ADDRESS_MAP_START( bsharkjjs_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0x00ff) AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w) // AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w) /* No analog stick, this is the Joystick version */ - AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xa00000, 0xa01fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) @@ -1591,7 +1591,7 @@ static ADDRESS_MAP_START( sci_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r) // AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w) // ?? doesn't seem to fit what's written AM_RANGE(0x420000, 0x420003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) - AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */ AM_RANGE(0xa20000, 0xa2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_SHARE("spriteram") @@ -1685,7 +1685,7 @@ static ADDRESS_MAP_START( dblaxle_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r) AM_RANGE(0x600000, 0x600001) AM_WRITE(dblaxle_cpua_ctrl_w) /* could this be causing int6 ? */ AM_RANGE(0x620000, 0x620003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) - AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x800000, 0x801fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemap mirror */ AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */ AM_RANGE(0xa30000, 0xa3002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w) @@ -1710,7 +1710,7 @@ static ADDRESS_MAP_START( racingb_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r) AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w) AM_RANGE(0x520000, 0x520003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w) - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, word_r, word_w) /* tilemaps */ AM_RANGE(0x930000, 0x93002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_word_r, ctrl_word_w) AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_SHARE("spriteram") /* mostly unused ? */ @@ -3085,7 +3085,8 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc) MCFG_GFXDECODE_ADD("gfxdecode", taitoz) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3093,6 +3094,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state ) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_ADD("front", 0.0, 0.0, 0.7) @@ -3148,7 +3150,8 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq) MCFG_GFXDECODE_ADD("gfxdecode", chasehq) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3156,6 +3159,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state ) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_ADD("front", 0.0, 0.0, 0.7) @@ -3213,7 +3217,8 @@ static MACHINE_CONFIG_START( enforce, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc) MCFG_GFXDECODE_ADD("gfxdecode", taitoz) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3221,6 +3226,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state ) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3274,7 +3280,8 @@ static MACHINE_CONFIG_START( bshark, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_bshark) MCFG_GFXDECODE_ADD("gfxdecode", taitoz) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3346,7 +3353,8 @@ static MACHINE_CONFIG_START( sci, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_sci) MCFG_GFXDECODE_ADD("gfxdecode", taitoz) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3409,7 +3417,8 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq) MCFG_GFXDECODE_ADD("gfxdecode", chasehq) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3417,6 +3426,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state ) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_ADD("front", 0.0, 0.0, 0.7) @@ -3474,7 +3484,8 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_aquajack) MCFG_GFXDECODE_ADD("gfxdecode", taitoz) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3482,6 +3493,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state ) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0150ROD_ADD("tc0150rod", taitoz_tc0150rod_intf) MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3536,12 +3548,13 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_spacegun) MCFG_GFXDECODE_ADD("gfxdecode", taitoz) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_TC0100SCN_ADD("tc0100scn", spacegun_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr", taitoz_tc0110pcr_intf) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -3598,7 +3611,8 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_dblaxle) MCFG_GFXDECODE_ADD("gfxdecode", dblaxle) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) @@ -3661,8 +3675,8 @@ static MACHINE_CONFIG_START( racingb, taitoz_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_racingb) MCFG_GFXDECODE_ADD("gfxdecode", dblaxle) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) MCFG_TC0480SCP_ADD("tc0480scp", taitoz_tc0480scp_intf) diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index c4252b9740a..37be7b46e5e 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -291,7 +291,7 @@ WRITE16_MEMBER(taitoair_state::airsys_paletteram16_w)/* xxBBBBxRRRRxGGGG */ COMBINE_DATA(&m_paletteram[offset]); a = m_paletteram[offset]; - palette_set_color_rgb(machine(), offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10)); + m_palette->set_pen_color(offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10)); } WRITE16_MEMBER(taitoair_state::airsys_gradram_w) @@ -322,7 +322,7 @@ WRITE16_MEMBER(taitoair_state::airsys_gradram_w) //if(g == 0) { g = (pal_g); } //if(b == 0) { b = (pal_b); } - palette_set_color_rgb(machine(), offset+0x2000, r, g, b); + m_palette->set_pen_color(offset+0x2000, r, g, b); } @@ -718,8 +718,8 @@ static MACHINE_CONFIG_START( airsys, taitoair_state ) MCFG_SCREEN_UPDATE_DRIVER(taitoair_state, screen_update_taitoair) MCFG_GFXDECODE_ADD("gfxdecode", airsys) - MCFG_PALETTE_LENGTH(512*16+512*16) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + + MCFG_PALETTE_ADD_INIT_BLACK("palette", 512*16+512*16) MCFG_TC0080VCO_ADD("tc0080vco", airsys_tc0080vco_intf) MCFG_TC0080VCO_GFXDECODE("gfxdecode") diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c index 15f74eefd27..8797047dc42 100644 --- a/src/mame/drivers/taitojc.c +++ b/src/mame/drivers/taitojc.c @@ -1278,7 +1278,7 @@ static MACHINE_CONFIG_START( taitojc, taitojc_state ) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_taitojc) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) /* sound hardware */ MCFG_FRAGMENT_ADD(taito_en_sound) diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c index fb455bdd7cc..e514889d483 100644 --- a/src/mame/drivers/taitosj.c +++ b/src/mame/drivers/taitosj.c @@ -1809,7 +1809,7 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state ) MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_taitosj) MCFG_GFXDECODE_ADD("gfxdecode", taitosj) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) /* sound hardware */ diff --git a/src/mame/drivers/taitotx.c b/src/mame/drivers/taitotx.c index 340a447aae2..98c8b1b935c 100644 --- a/src/mame/drivers/taitotx.c +++ b/src/mame/drivers/taitotx.c @@ -154,7 +154,7 @@ static MACHINE_CONFIG_START( taito_type_x, taito_type_x_state ) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(taito_type_x_state, screen_update_taito_type_x) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) MACHINE_CONFIG_END diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 1460b29723d..d5df6cd1325 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -57,7 +57,7 @@ public: virtual void machine_start(); virtual void machine_reset(); #if !ENABLE_VGA - virtual void palette_init(); + DECLARE_PALETTE_INIT(taitowlf); #endif UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void intel82439tx_init(); @@ -69,7 +69,7 @@ UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb3 int x,y,count; const UINT8 *blit_ram = m_region_user5->base(); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); count = (0); @@ -82,7 +82,7 @@ UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb3 color = (blit_ram[count] & 0xff); if(cliprect.contains(x+0, y)) - bitmap.pix32(y, x+0) = machine().pens[color]; + bitmap.pix32(y, x+0) = m_palette->pen(color); count++; } @@ -352,13 +352,13 @@ void taitowlf_state::machine_reset() #if !ENABLE_VGA /* debug purpose*/ -void taitowlf_state::palette_init() +PALETTE_INIT_MEMBER(taitowlf_state, taitowlf) { - palette_set_color(machine(),0x70,rgb_t(0xff,0xff,0xff)); - palette_set_color(machine(),0x71,rgb_t(0xff,0xff,0xff)); - palette_set_color(machine(),0x01,rgb_t(0x55,0x00,0x00)); - palette_set_color(machine(),0x10,rgb_t(0xaa,0x00,0x00)); - palette_set_color(machine(),0x00,rgb_t(0x00,0x00,0x00)); + palette.set_pen_color(0x70,rgb_t(0xff,0xff,0xff)); + palette.set_pen_color(0x71,rgb_t(0xff,0xff,0xff)); + palette.set_pen_color(0x01,rgb_t(0x55,0x00,0x00)); + palette.set_pen_color(0x10,rgb_t(0xaa,0x00,0x00)); + palette.set_pen_color(0x00,rgb_t(0x00,0x00,0x00)); } #endif @@ -386,8 +386,9 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(512, 256) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_PALETTE_LENGTH(256) MCFG_SCREEN_UPDATE_DRIVER(taitowlf_state, screen_update_taitowlf) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(taitowlf_state, taitowlf) #endif MACHINE_CONFIG_END diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c index 322be93b71b..322e738a51c 100644 --- a/src/mame/drivers/tank8.c +++ b/src/mame/drivers/tank8.c @@ -342,8 +342,8 @@ static MACHINE_CONFIG_START( tank8, tank8_state ) MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8) MCFG_GFXDECODE_ADD("gfxdecode", tank8) - MCFG_PALETTE_LENGTH(20) - + MCFG_PALETTE_ADD("palette", 20) + MCFG_PALETTE_INIT_OWNER(tank8_state, tank8) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c index 54ede4c7f3e..3aaf8ba77e9 100644 --- a/src/mame/drivers/tankbatt.c +++ b/src/mame/drivers/tankbatt.c @@ -294,8 +294,8 @@ static MACHINE_CONFIG_START( tankbatt, tankbatt_state ) MCFG_SCREEN_UPDATE_DRIVER(tankbatt_state, screen_update_tankbatt) MCFG_GFXDECODE_ADD("gfxdecode", tankbatt) - MCFG_PALETTE_LENGTH(256*2) - + MCFG_PALETTE_ADD("palette", 256*2) + MCFG_PALETTE_INIT_OWNER(tankbatt_state, tankbatt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c index ab9b5f5f30d..207f6fde075 100644 --- a/src/mame/drivers/tankbust.c +++ b/src/mame/drivers/tankbust.c @@ -110,7 +110,7 @@ READ8_MEMBER(tankbust_state::debug_output_area_r) -void tankbust_state::palette_init() +PALETTE_INIT_MEMBER(tankbust_state, tankbust) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -155,7 +155,7 @@ void tankbust_state::palette_init() bit1 = (color_prom[i] >> 7) & 0x01; r = 0x55 * bit0 + 0xaa * bit1; - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -346,10 +346,10 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state ) // MCFG_SCREEN_VISIBLE_AREA ( 0*8, 64*8-1, 1*8, 31*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tankbust_state, screen_update_tankbust) - MCFG_GFXDECODE_ADD("gfxdecode", tankbust ) - - MCFG_PALETTE_LENGTH( 128 ) + MCFG_GFXDECODE_ADD("gfxdecode", tankbust ) + MCFG_PALETTE_ADD( "palette", 128 ) + MCFG_PALETTE_INIT_OWNER(tankbust_state, tankbust) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index e232c2a481f..07be888a7c9 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -94,7 +94,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state ) AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_SHARE("spriteram") // sprite ram AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("spriteram2") // sprite tile lookup ram AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram - AM_RANGE(0xffc000, 0xffcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette ram + AM_RANGE(0xffc000, 0xffcfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_SHARE("scrollram") // rowscroll / rowselect / scroll ram AM_RANGE(0xffff80, 0xffff81) AM_READ_PORT("P1") AM_RANGE(0xffff82, 0xffff83) AM_READ_PORT("P2") @@ -347,13 +347,15 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state ) MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update_taotaido) MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof_taotaido) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( taotaido_state, taotaido_tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(0) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") - + MCFG_VSYSTEM_SPR_PALETTE("palette") + /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c index f2bc7a9e0d9..23fca23ba73 100644 --- a/src/mame/drivers/targeth.c +++ b/src/mame/drivers/targeth.c @@ -72,7 +72,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, targeth_state ) AM_RANGE(0x108006, 0x108007) AM_READ_PORT("GUNY2") AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP /* CLR Video INT */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") @@ -186,8 +186,8 @@ static MACHINE_CONFIG_START( targeth, targeth_state ) MCFG_SCREEN_UPDATE_DRIVER(targeth_state, screen_update_targeth) MCFG_GFXDECODE_ADD("gfxdecode", 0x080000) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c index 952fbb16771..4c7cfa1760b 100644 --- a/src/mame/drivers/tasman.c +++ b/src/mame/drivers/tasman.c @@ -71,7 +71,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 UINT32 tile = m_vram[count] & 0xffff; if(m_screen->visible_area().contains(x*8, y*8)) - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*8,y*8); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8); count++; } @@ -86,7 +86,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 UINT32 tile = m_vram[count] & 0xffff; if(m_screen->visible_area().contains(x*8, y*8)) - gfx->transpen(bitmap,cliprect,tile,0,0,0,x*8,y*8,0); + gfx->transpen(m_palette,bitmap,cliprect,tile,0,0,0,x*8,y*8,0); count++; } @@ -608,20 +608,23 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1) MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_VIDEO_START_OVERRIDE(kongambl_state,kongambl) MCFG_K053246_ADD("k053246", k053247_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K055555_ADD("k055555") MCFG_K055673_ADD_NOINTF("k055673") MCFG_K055673_GFXDECODE("gfxdecode") + MCFG_K055673_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tasman) MCFG_K056832_ADD("k056832", k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MACHINE_CONFIG_END diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index 3fd67bc5ac6..39534dc3c10 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -317,7 +317,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram") AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram") - AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */ AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */ ADDRESS_MAP_END @@ -338,7 +338,7 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) - AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w) + AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */ AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */ ADDRESS_MAP_END @@ -373,7 +373,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram") AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram") - AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */ AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */ ADDRESS_MAP_END @@ -392,7 +392,7 @@ static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state ) AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) - AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram_xRRRRRGGGGGBBBBB_word_w) + AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */ AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */ ADDRESS_MAP_END @@ -897,7 +897,8 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state ) MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_apache3) MCFG_GFXDECODE_ADD("gfxdecode", apache3) - MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ + MCFG_PALETTE_ADD("palette", 1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(tatsumi_state,apache3) @@ -938,7 +939,8 @@ static MACHINE_CONFIG_START( roundup5, tatsumi_state ) MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_roundup5) MCFG_GFXDECODE_ADD("gfxdecode", roundup5) - MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ + MCFG_PALETTE_ADD("palette", 1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(tatsumi_state,roundup5) @@ -980,7 +982,8 @@ static MACHINE_CONFIG_START( cyclwarr, tatsumi_state ) MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr) MCFG_GFXDECODE_ADD("gfxdecode", cyclwarr) - MCFG_PALETTE_LENGTH(8192 + 8192) + MCFG_PALETTE_ADD("palette", 8192 + 8192) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(tatsumi_state,cyclwarr) @@ -1022,7 +1025,8 @@ static MACHINE_CONFIG_START( bigfight, tatsumi_state ) MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight) MCFG_GFXDECODE_ADD("gfxdecode", cyclwarr) - MCFG_PALETTE_LENGTH(8192 + 8192) + MCFG_PALETTE_ADD("palette", 8192 + 8192) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_VIDEO_START_OVERRIDE(tatsumi_state,bigfight) diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c index 647a34458fb..15a0ee0b097 100644 --- a/src/mame/drivers/tattack.c +++ b/src/mame/drivers/tattack.c @@ -38,7 +38,7 @@ public: DECLARE_DRIVER_INIT(tattack); TILE_GET_INFO_MEMBER(get_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(tattack); UINT32 screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -180,7 +180,7 @@ static GFXDECODE_START( tattack ) GFXDECODE_ENTRY( "gfx1", 0 , charlayout, 0, 1 ) GFXDECODE_END -void tattack_state::palette_init() +PALETTE_INIT_MEMBER(tattack_state, tattack) { int i,r,g,b; for(i=0;i<8;i++) @@ -194,8 +194,8 @@ void tattack_state::palette_init() else r=g=b=128; - palette_set_color(machine(),2*i,rgb_t(0x00,0x00,0x00)); - palette_set_color(machine(),2*i+1,rgb_t(r,g,b)); + palette.set_pen_color(2*i,rgb_t(0x00,0x00,0x00)); + palette.set_pen_color(2*i+1,rgb_t(r,g,b)); } } @@ -216,8 +216,8 @@ static MACHINE_CONFIG_START( tattack, tattack_state ) MCFG_SCREEN_UPDATE_DRIVER(tattack_state, screen_update_tattack) MCFG_GFXDECODE_ADD("gfxdecode", tattack) - MCFG_PALETTE_LENGTH(16) - + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(tattack_state, tattack) /* sound hardware */ /* Discrete ???? */ diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c index 78d22e51680..65f5c004d0d 100644 --- a/src/mame/drivers/taxidriv.c +++ b/src/mame/drivers/taxidriv.c @@ -362,7 +362,7 @@ static const ay8910_interface ay8910_interface_2 = DEVCB_NULL }; -void taxidriv_state::palette_init() +PALETTE_INIT_MEMBER(taxidriv_state, taxidriv) { const UINT8 *color_prom = memregion("proms")->base(); int bit0, bit1, r, g, b; @@ -382,7 +382,7 @@ void taxidriv_state::palette_init() bit1 = (color_prom[0] >> 5) & 0x01; b = 0x55 * bit0 + 0xaa * bit1; - palette_set_color(machine(), i, rgb_t(r, g, b)); + palette.set_pen_color(i, rgb_t(r, g, b)); color_prom++; } } @@ -421,7 +421,8 @@ static MACHINE_CONFIG_START( taxidriv, taxidriv_state ) MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update_taxidriv) MCFG_GFXDECODE_ADD("gfxdecode", taxidriv) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(taxidriv_state, taxidriv) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c index 80b1b115f6f..48843159c58 100644 --- a/src/mame/drivers/tbowl.c +++ b/src/mame/drivers/tbowl.c @@ -131,7 +131,7 @@ static ADDRESS_MAP_START( 6206C_map, AS_PROGRAM, 8, tbowl_state ) AM_RANGE(0xc000, 0xdfff) AM_READONLY AM_RANGE(0xc000, 0xd7ff) AM_WRITEONLY AM_RANGE(0xd800, 0xdfff) AM_WRITEONLY AM_SHARE("spriteram") - AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram") // 2x palettes, one for each monitor? + AM_RANGE(0xe000, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // 2x palettes, one for each monitor? AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2") AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w) AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w) @@ -483,7 +483,8 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", tbowl) - MCFG_PALETTE_LENGTH(1024*2) + MCFG_PALETTE_ADD("palette", 1024*2) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c index a2a28779e5f..b4bfeea6fa0 100644 --- a/src/mame/drivers/tceptor.c +++ b/src/mame/drivers/tceptor.c @@ -383,10 +383,13 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", tceptor) - MCFG_PALETTE_LENGTH(4096) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(tceptor_state, tceptor) + MCFG_DEFAULT_LAYOUT(layout_horizont) MCFG_NAMCO_C45_ROAD_ADD("c45_road") + MCFG_NAMCO_C45_ROAD_PALETTE("palette") MCFG_SCREEN_ADD("2dscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60.606060) diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c index 3b2ce96c925..7289cbb65ba 100644 --- a/src/mame/drivers/tcl.c +++ b/src/mame/drivers/tcl.c @@ -141,7 +141,7 @@ static MACHINE_CONFIG_START( tcl, tcl_state ) MCFG_SCREEN_UPDATE_DRIVER(tcl_state, screen_update_tcl) MCFG_GFXDECODE_ADD("gfxdecode", tcl) - MCFG_PALETTE_LENGTH(16*16) + MCFG_PALETTE_ADD("palette", 16*16) MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c index 8f62cbc20bc..2861ebc02c1 100644 --- a/src/mame/drivers/tecmo.c +++ b/src/mame/drivers/tecmo.c @@ -148,7 +148,7 @@ static ADDRESS_MAP_START( rygar_map, AS_PROGRAM, 8, tecmo_state ) AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_SHARE("bgvideoram") AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1") AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1") AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1") @@ -175,7 +175,7 @@ static ADDRESS_MAP_START( gemini_map, AS_PROGRAM, 8, tecmo_state ) AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_SHARE("txvideoram") AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1") AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1") @@ -204,7 +204,7 @@ static ADDRESS_MAP_START( silkworm_map, AS_PROGRAM, 8, tecmo_state ) AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_SHARE("txvideoram") AM_RANGE(0xd000, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1") AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1") AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1") @@ -639,7 +639,8 @@ static MACHINE_CONFIG_START( rygar, tecmo_state ) MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo) MCFG_GFXDECODE_ADD("gfxdecode", tecmo) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) MCFG_VIDEO_START_OVERRIDE(tecmo_state,tecmo) @@ -698,7 +699,8 @@ static MACHINE_CONFIG_START( backfirt, tecmo_state ) MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo) MCFG_GFXDECODE_ADD("gfxdecode", tecmo) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) MCFG_VIDEO_START_OVERRIDE(tecmo_state,tecmo) diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c index 4dc9f4b8a13..df9a70be4ae 100644 --- a/src/mame/drivers/tecmo16.c +++ b/src/mame/drivers/tecmo16.c @@ -53,7 +53,7 @@ static ADDRESS_MAP_START( fstarfrc_map, AS_PROGRAM, 16, tecmo16_state ) AM_RANGE(0x121800, 0x121fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_SHARE("colorram2") AM_RANGE(0x122000, 0x127fff) AM_RAM /* work area */ AM_RANGE(0x130000, 0x130fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x141fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w) AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w) AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP /* ??? */ @@ -76,7 +76,7 @@ static ADDRESS_MAP_START( ginkun_map, AS_PROGRAM, 16, tecmo16_state ) AM_RANGE(0x123000, 0x123fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_SHARE("colorram2") AM_RANGE(0x124000, 0x124fff) AM_RAM /* extra RAM for Riot */ AM_RANGE(0x130000, 0x130fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x141fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w) AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w) AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA") AM_WRITENOP /* ??? */ @@ -382,8 +382,8 @@ static MACHINE_CONFIG_START( fstarfrc, tecmo16_state ) MCFG_SCREEN_UPDATE_DRIVER(tecmo16_state, screen_update_tecmo16) MCFG_GFXDECODE_ADD("gfxdecode", tecmo16) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, all_black) + MCFG_PALETTE_ADD_INIT_BLACK("palette", 4096) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 9207c437cc9..5489d81ab45 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -298,7 +298,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state ) AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(fg_tilemap_w) AM_SHARE("fgtilemap_ram") // fix ram AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram") // obj ram AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r) - AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // AM_WRITEONLY // obj pal + AM_RANGE(0x900000, 0x907fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // AM_WRITEONLY // obj pal //AM_RANGE(0x980000, 0x9807ff) AM_WRITEONLY // bg pal //AM_RANGE(0x980800, 0x980fff) AM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // fix pal @@ -468,7 +468,8 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(tecmosys_state, screen_update_tecmosys) - MCFG_PALETTE_LENGTH(0x4000+0x800) + MCFG_PALETTE_ADD("palette", 0x4000+0x800) + MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c index 09b9534da9e..5e6ddab9071 100644 --- a/src/mame/drivers/tehkanwc.c +++ b/src/mame/drivers/tehkanwc.c @@ -220,7 +220,7 @@ static ADDRESS_MAP_START( main_mem, AS_PROGRAM, 8, tehkanwc_state ) AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1") AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(tehkanwc_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(tehkanwc_colorram_w) AM_SHARE("colorram") - AM_RANGE(0xd800, 0xddff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xd800, 0xddff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("spriteram") /* sprites */ @@ -246,7 +246,7 @@ static ADDRESS_MAP_START( sub_mem, AS_PROGRAM, 8, tehkanwc_state ) AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1") AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(tehkanwc_videoram_w) AM_SHARE("videoram") AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(tehkanwc_colorram_w) AM_SHARE("colorram") - AM_RANGE(0xd800, 0xddff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xd800, 0xddff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("spriteram") /* sprites */ @@ -668,8 +668,8 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state ) MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update_tehkanwc) MCFG_GFXDECODE_ADD("gfxdecode", tehkanwc) - MCFG_PALETTE_LENGTH(768) - + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c index 9f0fdd09adb..ec5f0ddc929 100644 --- a/src/mame/drivers/terracre.c +++ b/src/mame/drivers/terracre.c @@ -530,8 +530,8 @@ static MACHINE_CONFIG_START( amazon, terracre_state ) MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) MCFG_GFXDECODE_ADD("gfxdecode", terracre) - MCFG_PALETTE_LENGTH(1*16+16*16+16*256) - + MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256) + MCFG_PALETTE_INIT_OWNER(terracre_state, terracre) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -563,8 +563,8 @@ static MACHINE_CONFIG_START( ym3526, terracre_state ) MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) MCFG_GFXDECODE_ADD("gfxdecode", terracre) - MCFG_PALETTE_LENGTH(1*16+16*16+16*256) - + MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256) + MCFG_PALETTE_INIT_OWNER(terracre_state, terracre) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -596,8 +596,8 @@ static MACHINE_CONFIG_START( ym2203, terracre_state ) MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon) MCFG_GFXDECODE_ADD("gfxdecode", terracre) - MCFG_PALETTE_LENGTH(1*16+16*16+16*256) - + MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256) + MCFG_PALETTE_INIT_OWNER(terracre_state, terracre) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c index 744061f491f..cb2b6911b55 100644 --- a/src/mame/drivers/tetrisp2.c +++ b/src/mame/drivers/tetrisp2.c @@ -1340,7 +1340,7 @@ static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state ) MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2) MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,tetrisp2) @@ -1371,7 +1371,7 @@ static MACHINE_CONFIG_START( nndmseal, tetrisp2_state ) MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2) MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,nndmseal) // bg layer offset @@ -1401,7 +1401,7 @@ static MACHINE_CONFIG_START( rockn, tetrisp2_state ) MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread) @@ -1432,7 +1432,7 @@ static MACHINE_CONFIG_START( rockn2, tetrisp2_state ) MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread) MCFG_GFXDECODE_ADD("gfxdecode", tetrisp2) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rockntread) @@ -1461,7 +1461,7 @@ static MACHINE_CONFIG_START( rocknms, tetrisp2_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", rocknms) - MCFG_PALETTE_LENGTH(0x10000) + MCFG_PALETTE_ADD("palette", 0x10000) MCFG_DEFAULT_LAYOUT(layout_rocknms) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -1522,7 +1522,7 @@ static MACHINE_CONFIG_START( stepstag, stepstag_state ) MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_right) - MCFG_PALETTE_LENGTH(0x8000) // 0x8000 * 3 needed I guess, but it hits an assert + MCFG_PALETTE_ADD("palette", 0x8000) // 0x8000 * 3 needed I guess, but it hits an assert MCFG_VIDEO_START_OVERRIDE(stepstag_state, stepstag ) MCFG_GFXDECODE_ADD("gfxdecode", stepstag) diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c index 43523e7f9aa..7e8846e6a84 100644 --- a/src/mame/drivers/thayers.c +++ b/src/mame/drivers/thayers.c @@ -802,7 +802,7 @@ static MACHINE_CONFIG_START( thayers, thayers_state ) /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c index d7b2af69d0e..6ad238816cd 100644 --- a/src/mame/drivers/thedeep.c +++ b/src/mame/drivers/thedeep.c @@ -461,7 +461,8 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state ) MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep) MCFG_GFXDECODE_ADD("gfxdecode", thedeep) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(thedeep_state, thedeep) /* sound hardware */ diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c index 8eca8cc710c..83f3836b73f 100644 --- a/src/mame/drivers/thepit.c +++ b/src/mame/drivers/thepit.c @@ -722,7 +722,8 @@ static MACHINE_CONFIG_START( thepit, thepit_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", thepit) - MCFG_PALETTE_LENGTH(32+8) + MCFG_PALETTE_ADD("palette", 32+8) + MCFG_PALETTE_INIT_OWNER(thepit_state, thepit) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) @@ -768,7 +769,8 @@ static MACHINE_CONFIG_DERIVED( suprmous, intrepid ) /* basic machine hardware */ /* video hardware */ - MCFG_PALETTE_INIT_OVERRIDE(thepit_state,suprmous) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(thepit_state,suprmous) MCFG_GFXDECODE_MODIFY("gfxdecode", suprmous) MACHINE_CONFIG_END diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c index b4e8220f810..471e9bc2949 100644 --- a/src/mame/drivers/thief.c +++ b/src/mame/drivers/thief.c @@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( sharkatt, thief_state ) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ @@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( thief, thief_state ) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ @@ -519,7 +519,7 @@ static MACHINE_CONFIG_START( natodef, thief_state ) MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c index d89318fe498..c57a40284cf 100644 --- a/src/mame/drivers/thoop2.c +++ b/src/mame/drivers/thoop2.c @@ -89,7 +89,7 @@ static ADDRESS_MAP_START( thoop2_map, AS_PROGRAM, 16, thoop2_state ) AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop2_vram_w) AM_SHARE("videoram") /* Video RAM */ AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */ AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset16_w) /* INT 6 ACK/Watchdog timer */ - AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")/* Palette */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1") @@ -202,8 +202,8 @@ static MACHINE_CONFIG_START( thoop2, thoop2_state ) MCFG_SCREEN_UPDATE_DRIVER(thoop2_state, screen_update_thoop2) MCFG_GFXDECODE_ADD("gfxdecode", thoop2) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c index b7a3fba63ef..78cfc4748e0 100644 --- a/src/mame/drivers/thunderj.c +++ b/src/mame/drivers/thunderj.c @@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", thunderj) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_ATARI_VAD_ADD("vad", "screen", WRITELINE(atarigen_state, scanline_int_write_line)) MCFG_ATARI_VAD_PLAYFIELD(thunderj_state, get_playfield_tile_info) diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c index e57abdecbd9..b4f2a980754 100644 --- a/src/mame/drivers/thunderx.c +++ b/src/mame/drivers/thunderx.c @@ -53,7 +53,7 @@ READ8_MEMBER(thunderx_state::scontra_bankedram_r) WRITE8_MEMBER(thunderx_state::scontra_bankedram_w) { if (m_palette_selected) - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); else m_ram[offset] = data; } @@ -94,7 +94,7 @@ WRITE8_MEMBER(thunderx_state::thunderx_bankedram_w) logerror("%04x pmc internal ram %04x = %02x\n",space.device().safe_pc(),offset,data); } else - paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space, offset, data); + m_palette->write(space, offset, data); } /* @@ -656,8 +656,6 @@ static MACHINE_CONFIG_START( scontra, thunderx_state ) MCFG_MACHINE_RESET_OVERRIDE(thunderx_state,scontra) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -665,13 +663,17 @@ static MACHINE_CONFIG_START( scontra, thunderx_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", thunderx_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", thunderx_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -701,8 +703,6 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state ) MCFG_MACHINE_RESET_OVERRIDE(thunderx_state,thunderx) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) @@ -710,13 +710,17 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", thunderx_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", thunderx_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c index eb52a9db8d5..53fcf3e9795 100644 --- a/src/mame/drivers/tiamc1.c +++ b/src/mame/drivers/tiamc1.c @@ -236,8 +236,8 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state ) MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1) MCFG_GFXDECODE_ADD("gfxdecode", tiamc1) - MCFG_PALETTE_LENGTH(16) - + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(tiamc1_state, tiamc1) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c index de021020f96..47df6294772 100644 --- a/src/mame/drivers/tigeroad.c +++ b/src/mame/drivers/tigeroad.c @@ -176,7 +176,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tigeroad_state ) AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE(tigeroad_videoram_w) AM_SHARE("videoram") AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(tigeroad_scroll_w) AM_RANGE(0xfe800e, 0xfe800f) AM_WRITEONLY /* fe800e = watchdog or IRQ acknowledge */ - AM_RANGE(0xff8200, 0xff867f) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xff8200, 0xff867f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("ram16") ADDRESS_MAP_END @@ -535,8 +535,9 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", tigeroad) - MCFG_PALETTE_LENGTH(576) + MCFG_PALETTE_ADD("palette", 576) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c index 96b535bdd13..bd7fb810116 100644 --- a/src/mame/drivers/timelimt.c +++ b/src/mame/drivers/timelimt.c @@ -247,8 +247,8 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state ) MCFG_SCREEN_UPDATE_DRIVER(timelimt_state, screen_update_timelimt) MCFG_GFXDECODE_ADD("gfxdecode", timelimt) - MCFG_PALETTE_LENGTH(64+32) - + MCFG_PALETTE_ADD("palette", 64+32) + MCFG_PALETTE_INIT_OWNER(timelimt_state, timelimt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c index 7df4e4967d9..861f3049016 100644 --- a/src/mame/drivers/timeplt.c +++ b/src/mame/drivers/timeplt.c @@ -477,7 +477,8 @@ static MACHINE_CONFIG_START( timeplt, timeplt_state ) MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update_timeplt) MCFG_GFXDECODE_ADD("gfxdecode", timeplt) - MCFG_PALETTE_LENGTH(32*4+64*4) + MCFG_PALETTE_ADD("palette", 32*4+64*4) + MCFG_PALETTE_INIT_OWNER(timeplt_state, timeplt) /* sound hardware */ MCFG_FRAGMENT_ADD(timeplt_sound) diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c index 63ecef49133..e44f87f6f58 100644 --- a/src/mame/drivers/timetrv.c +++ b/src/mame/drivers/timetrv.c @@ -166,7 +166,7 @@ static MACHINE_CONFIG_START( timetrv, timetrv_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) MCFG_SCREEN_UPDATE_DRIVER(timetrv_state, screen_update_timetrv) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) /* sound hardware */ MACHINE_CONFIG_END diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index c228e0ae9ae..9989422b001 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -375,7 +375,7 @@ UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16 #endif - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); if (layers_ctrl & 1) copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff); if (layers_ctrl & 2) copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff); @@ -556,7 +556,7 @@ static ADDRESS_MAP_START( tmaster_map, AS_PROGRAM, 16, tmaster_state ) AM_RANGE( 0x580000, 0x580001 ) AM_WRITENOP // often - AM_RANGE( 0x600000, 0x601fff ) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w ) AM_SHARE("paletteram") + AM_RANGE( 0x600000, 0x601fff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0x800000, 0x800001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff ) @@ -636,7 +636,7 @@ WRITE16_MEMBER(tmaster_state::galgames_palette_data_w) { int palette_base; for (palette_base = 0; palette_base < 0x1000; palette_base += 0x100) - palette_set_color(machine(), m_palette_offset + palette_base, rgb_t(m_palette_data[0], m_palette_data[1], m_palette_data[2])); + m_palette->set_pen_color(m_palette_offset + palette_base, rgb_t(m_palette_data[0], m_palette_data[1], m_palette_data[2])); m_palette_index = 0; m_palette_offset++; } @@ -930,7 +930,8 @@ static MACHINE_CONFIG_START( tm, tmaster_state ) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(tmaster_state,tmaster) @@ -989,7 +990,8 @@ static MACHINE_CONFIG_START( galgames, tmaster_state ) MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster) - MCFG_PALETTE_LENGTH(0x1000) // only 0x100 used + MCFG_PALETTE_ADD("palette", 0x1000) // only 0x100 used + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(tmaster_state,galgames) diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c index 1440071813c..d911f61c6a4 100644 --- a/src/mame/drivers/tmmjprd.c +++ b/src/mame/drivers/tmmjprd.c @@ -178,7 +178,7 @@ void tmmjprd_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect tileno >>=1; // 255 for 8bpp - gfx->transpen(bitmap,cliprect,tileno,colr,!xflip,yflip,(xpos-xoffs)-8,(ypos)-8,255); + gfx->transpen(m_palette,bitmap,cliprect,tileno,colr,!xflip,yflip,(xpos-xoffs)-8,(ypos)-8,255); } } @@ -306,7 +306,7 @@ UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_i { UINT8* gfxroms = memregion("gfx2")->base(); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms ); draw_sprites(bitmap,cliprect, 1); @@ -340,7 +340,7 @@ UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_ { UINT8* gfxroms = memregion("gfx2")->base(); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms ); draw_sprites(bitmap,cliprect, 0); @@ -633,7 +633,7 @@ WRITE32_MEMBER(tmmjprd_state::tmmjprd_paletteram_dword_w) r = ((m_generic_paletteram_32[offset] & 0x0000ff00) >>8); g = ((m_generic_paletteram_32[offset] & 0x00ff0000) >>16); - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } @@ -653,7 +653,7 @@ WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_1_w) { m_old_brt1 = brt; for (i = bank; i < 0x800+bank; i++) - palette_set_pen_contrast(machine(), i, brt); + m_palette->set_pen_contrast(i, brt); } } @@ -671,7 +671,7 @@ WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_2_w) { m_old_brt2 = brt; for (i = bank; i < 0x800+bank; i++) - palette_set_pen_contrast(machine(), i, brt); + m_palette->set_pen_contrast(i, brt); } } @@ -766,7 +766,7 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state ) // MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update) // MCFG_SCREEN_SIZE(64*16, 64*16) // MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 7f5db71a0bd..720e550f203 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -540,7 +540,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x083fff) AM_RAM /* main RAM */ - AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x090000, 0x090fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("DSW1/DSW2") AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("COINS/DSW3") AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P3/P4") @@ -559,7 +559,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( lgtnfght_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x090000, 0x093fff) AM_RAM /*main RAM */ AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS") AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1") @@ -589,7 +589,7 @@ static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x180000, 0x183fff) AM_DEVREADWRITE("k052109", k052109_device, word_r, word_w) AM_RANGE(0x204000, 0x207fff) AM_RAM /* main RAM */ AM_RANGE(0x300000, 0x303fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram") - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE("k054000", k054000_device, lsb_r, lsb_w) AM_RANGE(0x680000, 0x68001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w) AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1") @@ -631,7 +631,7 @@ static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */ AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram") - AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x108000, 0x108fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w) /* 053936? */ AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */ AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE("k053245", k05324x_device, k053244_lsb_r, k053244_lsb_w) /* duplicate! */ @@ -655,7 +655,7 @@ static ADDRESS_MAP_START( prmrsocr_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */ AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram") - AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x108000, 0x108fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w) AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */ AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE("k053245", k05324x_device, k053244_lsb_r, k053244_lsb_w) /* duplicate! */ @@ -914,7 +914,7 @@ logerror("copy command %04x sprite %08x data %08x: %04x%04x %04x%04x modifiers static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_SHARE("tmnt2_rom") AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("sunset_104000") /* main RAM */ - AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(k053245_scattered_word_w) AM_SHARE("spriteram") // k053245_scattered_word_r AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1") AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2") @@ -940,7 +940,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x0bffff) AM_ROM AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */ - AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram") AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1") AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2") @@ -966,7 +966,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x0bffff) AM_ROM AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */ - AM_RANGE(0x14c000, 0x14cfff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x14c000, 0x14cfff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x14e700, 0x14e71f) AM_DEVWRITE("k053251", k053251_device, lsb_w) AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram") AM_RANGE(0x184000, 0x18ffff) AM_RAM @@ -992,7 +992,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( thndrx2_main_map, AS_PROGRAM, 16, tmnt_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */ - AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x300000, 0x30001f) AM_DEVWRITE("k053251", k053251_device, lsb_w) AM_RANGE(0x400000, 0x400003) AM_READ8(punkshot_sound_r, 0x00ff) /* K053260 */ AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8("k053260", k053260_device, k053260_w, 0x00ff) @@ -2133,7 +2133,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state ) MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2142,7 +2142,11 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() + MCFG_NVRAM_ADD_0FILL("nvram") MCFG_VIDEO_START_OVERRIDE(tmnt_state,cuebrick) @@ -2150,8 +2154,10 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", cuebrick_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", cuebrick_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2177,8 +2183,6 @@ static MACHINE_CONFIG_START( mia, tmnt_state ) MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -2186,15 +2190,20 @@ static MACHINE_CONFIG_START( mia, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,mia) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", mia_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", mia_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2231,8 +2240,6 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state ) MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,tmnt) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -2242,15 +2249,20 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt) // We see something strange in the left 8 pixels and the right 8 pixels, but it is same as real PCB. - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,tmnt) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", tmnt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", tmnt_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -2287,7 +2299,7 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state ) MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2296,13 +2308,18 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_punkshot) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", tmnt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", punkshot_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ @@ -2331,7 +2348,7 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state ) MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2340,15 +2357,20 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", tmnt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ @@ -2381,7 +2403,7 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2391,15 +2413,20 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght) MCFG_SCREEN_VBLANK_DRIVER(tmnt_state, screen_eof_blswhstl) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state, blswhstl ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", blswhstl_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", blswhstl_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K054000_ADD("k054000") @@ -2448,7 +2475,7 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state ) MCFG_MACHINE_RESET_OVERRIDE(tmnt_state,common) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2458,14 +2485,20 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat) MCFG_GFXDECODE_ADD("gfxdecode", glfgreat) - MCFG_PALETTE_LENGTH(2048) + + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,glfgreat) MCFG_K052109_ADD("k052109", glfgreat_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", glfgreat_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053936_ADD("k053936", glfgreat_k053936_interface) MCFG_K053251_ADD("k053251") @@ -2508,7 +2541,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2518,14 +2551,20 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat) MCFG_GFXDECODE_ADD("gfxdecode", glfgreat) - MCFG_PALETTE_LENGTH(2048) + + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,prmrsocr) MCFG_K052109_ADD("k052109", glfgreat_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", prmrsocr_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053936_ADD("k053936", prmrsocr_k053936_interface) MCFG_K053251_ADD("k053251") @@ -2560,7 +2599,7 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2569,15 +2608,20 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", tmnt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ @@ -2610,7 +2654,7 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2619,15 +2663,20 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", tmnt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ @@ -2656,7 +2705,7 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -2665,13 +2714,18 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", sunsetbl_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053245_ADD("k053245", lgtnfght_k05324x_intf) MCFG_K053245_GFXDECODE("gfxdecode") + MCFG_K053245_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ @@ -2699,8 +2753,6 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -2708,13 +2760,18 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_thndrx2) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", tmnt_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K051960_ADD("k051960", thndrx2_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K054000_ADD("k054000") diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c index 26e7c719d74..e57f50136ef 100644 --- a/src/mame/drivers/tmspoker.c +++ b/src/mame/drivers/tmspoker.c @@ -233,7 +233,7 @@ public: virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(tmspoker); UINT32 screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(tmspoker_interrupt); required_device<cpu_device> m_maincpu; @@ -276,7 +276,7 @@ UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind1 return 0; } -void tmspoker_state::palette_init() +PALETTE_INIT_MEMBER(tmspoker_state, tmspoker) { } @@ -598,7 +598,8 @@ static MACHINE_CONFIG_START( tmspoker, tmspoker_state ) MCFG_GFXDECODE_ADD("gfxdecode", tmspoker) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(tmspoker_state, tmspoker) MCFG_MC6845_ADD("crtc", MC6845, "screen", MASTER_CLOCK/4, mc6845_intf) /* guess */ diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c index 6558b5d044a..ab0c7324c4e 100644 --- a/src/mame/drivers/tnzs.c +++ b/src/mame/drivers/tnzs.c @@ -757,7 +757,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tnzs_state ) /* arknoid2, extrmatn, plumppop and drtoppel have PROMs instead of RAM */ /* drtoppel writes here anyway! (maybe leftover from tests during development) */ /* so the handler is patched out in init_drtopple() */ - AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xfbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( cpu0_type2, AS_PROGRAM, 8, tnzs_state ) @@ -820,7 +820,7 @@ static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state ) AM_RANGE(0xd000, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1") AM_RANGE(0xf000, 0xf003) AM_READONLY - AM_RANGE(0xf000, 0xf3ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf000, 0xf3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state ) @@ -835,7 +835,7 @@ static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state ) AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2") AM_RANGE(0xd000, 0xdfff) AM_RAM AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("share1") - AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xf800, 0xfbff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( tnzsb_cpu2_map, AS_PROGRAM, 8, tnzs_state ) @@ -878,7 +878,7 @@ WRITE8_MEMBER(tnzs_state::jpopnics_palette_w) b = (paldata >> 8) & 0x000f; // the other bits seem to be used, and the colours are wrong.. - palette_set_color_rgb(machine(), offset, r << 4, g << 4, b << 4); + m_palette->set_pen_color(offset, r << 4, g << 4, b << 4); } @@ -1617,6 +1617,7 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1628,9 +1629,10 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", tnzs) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_PALETTE_INIT_OVERRIDE(tnzs_state,arknoid2) + MCFG_PALETTE_INIT_OWNER(tnzs_state,arknoid2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1659,6 +1661,7 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1670,9 +1673,9 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", tnzs) - MCFG_PALETTE_LENGTH(512) - - MCFG_PALETTE_INIT_OVERRIDE(tnzs_state,arknoid2) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + MCFG_PALETTE_INIT_OWNER(tnzs_state,arknoid2) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1704,6 +1707,7 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1715,8 +1719,8 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", tnzs) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1745,6 +1749,7 @@ static MACHINE_CONFIG_START( insectx, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1756,7 +1761,8 @@ static MACHINE_CONFIG_START( insectx, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", insectx) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1785,6 +1791,7 @@ static MACHINE_CONFIG_START( kageki, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1796,7 +1803,8 @@ static MACHINE_CONFIG_START( kageki, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", tnzs) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1835,6 +1843,7 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1846,7 +1855,8 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", tnzs) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1896,6 +1906,7 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state ) MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0) MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode") + MCFG_SETA001_SPRITE_PALETTE("palette") /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1907,7 +1918,8 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state ) MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs) MCFG_GFXDECODE_ADD("gfxdecode", tnzs) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c index 048564beeab..07d573ee924 100644 --- a/src/mame/drivers/toaplan1.c +++ b/src/mame/drivers/toaplan1.c @@ -1828,7 +1828,8 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_rallybik_state ) MCFG_TOAPLAN_SCU_GFXDECODE("gfxdecode") MCFG_GFXDECODE_ADD("gfxdecode", rallybik) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_rallybik_state,rallybik) @@ -1865,7 +1866,8 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) @@ -1902,7 +1904,8 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) @@ -1939,7 +1942,8 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) @@ -1980,7 +1984,8 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) @@ -2015,7 +2020,8 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_samesame) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) @@ -2052,7 +2058,8 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) @@ -2087,7 +2094,8 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1) MCFG_GFXDECODE_ADD("gfxdecode", toaplan1) - MCFG_PALETTE_LENGTH((64*16)+(64*16)) + MCFG_PALETTE_ADD("palette", (64*16)+(64*16)) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(toaplan1_state,toaplan1) diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index 007b4dcd1dd..28bc6e7e079 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -989,7 +989,7 @@ static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0x020000, 0x03ffff) AM_ROM // extra for Whoopee AM_RANGE(0x080000, 0x082fff) AM_RAM - AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSWA") AM_RANGE(0x180010, 0x180011) AM_READ_PORT("DSWB") @@ -1006,7 +1006,7 @@ static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x040000, 0x040001) AM_READ(ghox_p2_h_analog_r) AM_RANGE(0x080000, 0x083fff) AM_RAM - AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x100000, 0x100001) AM_READ(ghox_p1_h_analog_r) AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) AM_RANGE(0x180000, 0x180001) AM_READWRITE(ghox_mcu_r, ghox_mcu_w) // really part of shared RAM @@ -1030,7 +1030,7 @@ static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w ) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8 ADDRESS_MAP_END @@ -1045,7 +1045,7 @@ static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x208018, 0x208019) AM_READ_PORT("SYS") AM_RANGE(0x20801c, 0x20801d) AM_WRITE(toaplan2_coin_word_w) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8 ADDRESS_MAP_END @@ -1067,7 +1067,7 @@ static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x200028, 0x200029) AM_WRITE(oki1_bankswitch_w) AM_RANGE(0x20002c, 0x20002d) AM_READ(video_count_r) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END @@ -1075,7 +1075,7 @@ static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x300fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") AM_RANGE(0x402000, 0x402fff) AM_RAM AM_SHARE("txvram_offs") AM_RANGE(0x403000, 0x4031ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16") @@ -1097,7 +1097,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x082fff) AM_RAM - AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) AM_RANGE(0x190000, 0x190fff) AM_READWRITE(shared_ram_r, shared_ram_w) AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w) @@ -1115,7 +1115,7 @@ static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16, toaplan2_sta AM_RANGE(0x080000, 0x082fff) AM_RAM AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w) // SpriteRAM AM_RANGE(0x083800, 0x087fff) AM_RAM // SpriteRAM (unused) - AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x120000, 0x120fff) AM_RAM // Copy of SpriteRAM ? // AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ??? AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM @@ -1142,7 +1142,7 @@ static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_coin_word_w) AM_RANGE(0x280000, 0x28ffff) AM_READWRITE(shared_ram_r, shared_ram_w ) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") AM_RANGE(0x502000, 0x5021ff) AM_RAM AM_SHARE("txvram_offs") AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16") @@ -1164,7 +1164,7 @@ static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x200018, 0x200019) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0x20001c, 0x20001d) AM_READ_PORT("DSWA") AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) AM_RANGE(0x800000, 0x87ffff) AM_ROM AM_REGION("maincpu", 0x80000) @@ -1181,7 +1181,7 @@ static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w ) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) ADDRESS_MAP_END @@ -1195,7 +1195,7 @@ static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w ) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) ADDRESS_MAP_END @@ -1206,7 +1206,7 @@ static ADDRESS_MAP_START( pwrkick_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff ) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) @@ -1227,7 +1227,7 @@ static ADDRESS_MAP_START( othldrby_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff ) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) @@ -1246,7 +1246,7 @@ static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x500003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff) AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0x700000, 0x700001) AM_READ_PORT("JMPR") @@ -1275,7 +1275,7 @@ static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR") AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("txvram_offs") @@ -1298,7 +1298,7 @@ static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR") AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("txvram_offs") @@ -1320,7 +1320,7 @@ static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR") AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r) AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("txvram_offs") AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16") @@ -1333,7 +1333,7 @@ static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x1fffff) AM_ROM // actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") - AM_RANGE(0x202000, 0x202fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x202000, 0x202fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x203000, 0x2031ff) AM_RAM AM_SHARE("txvram_offs") AM_RANGE(0x203200, 0x2033ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16") AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16") @@ -1363,7 +1363,7 @@ static ADDRESS_MAP_START( bbakraid_68k_mem, AS_PROGRAM, 16, toaplan2_state ) AM_RANGE(0x000000, 0x1fffff) AM_ROM // actually 200000 - 20ffff is probably all main RAM, and the text and palette RAM are written via DMA AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE(toaplan2_txvideoram16_w) AM_SHARE("txvideoram16") - AM_RANGE(0x202000, 0x202fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x202000, 0x202fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x203000, 0x2031ff) AM_RAM AM_SHARE("txvram_offs") AM_RANGE(0x203200, 0x2033ff) AM_RAM_WRITE(toaplan2_txscrollram16_w) AM_SHARE("txscrollram16") AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16") @@ -3135,10 +3135,12 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3178,10 +3180,12 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3265,13 +3269,16 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", t2dualvdp) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_DEVICE_ADD_VDP1 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3313,10 +3320,12 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3352,10 +3361,12 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3388,10 +3399,12 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", truxton2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2) @@ -3445,10 +3458,12 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3488,10 +3503,12 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3566,10 +3583,12 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", truxton2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2) @@ -3605,10 +3624,12 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", fixeightbl) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,fixeightbl) @@ -3644,10 +3665,12 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3684,13 +3707,16 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", t2dualvdp) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_DEVICE_ADD_VDP1 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3723,10 +3749,12 @@ static MACHINE_CONFIG_START( pwrkick, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3755,10 +3783,12 @@ static MACHINE_CONFIG_START( othldrby, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3790,10 +3820,12 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", toaplan2) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2) @@ -3835,10 +3867,12 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", raizing) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga) @@ -3880,10 +3914,12 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", raizing) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga) @@ -3936,10 +3972,12 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state ) MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2) MCFG_GFXDECODE_ADD("gfxdecode", raizing) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga) @@ -3990,10 +4028,12 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state ) MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) MCFG_GFXDECODE_ADD("gfxdecode", batrider) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider) @@ -4043,10 +4083,11 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state ) MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2) MCFG_GFXDECODE_ADD("gfxdecode", batrider) - MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) - + MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEVICE_ADD_VDP0 MCFG_GP9001_VDP_GFXDECODE("gfxdecode") + MCFG_GP9001_VDP_PALETTE("palette") MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider) diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index 296851d5751..7ec94349bdc 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -90,7 +90,7 @@ static ADDRESS_MAP_START( toki_map, AS_PROGRAM, 16, toki_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x060000, 0x06d7ff) AM_RAM AM_RANGE(0x06d800, 0x06dfff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_SHARE("bg1_vram16") AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_SHARE("bg2_vram16") AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_SHARE("videoram") @@ -105,7 +105,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( tokib_map, AS_PROGRAM, 16, toki_state ) AM_RANGE(0x000000, 0x05ffff) AM_ROM AM_RANGE(0x060000, 0x06dfff) AM_RAM - AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x06e000, 0x06e7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_SHARE("bg1_vram16") AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_SHARE("bg2_vram16") AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_SHARE("videoram") @@ -429,8 +429,8 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu * MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", toki) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ SEIBU_SOUND_SYSTEM_YM3812_RAIDEN_INTERFACE(XTAL_14_31818MHz/4,XTAL_12MHz/12) /* verifed on pcb */ @@ -458,8 +458,8 @@ static MACHINE_CONFIG_START( tokib, toki_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", tokib) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tokyocop.c b/src/mame/drivers/tokyocop.c index d9811834263..59e50fcd139 100644 --- a/src/mame/drivers/tokyocop.c +++ b/src/mame/drivers/tokyocop.c @@ -74,7 +74,7 @@ static MACHINE_CONFIG_START( tokyocop, tokyocop_state ) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tonton.c b/src/mame/drivers/tonton.c index e27eb7c917c..e77741ce3a7 100644 --- a/src/mame/drivers/tonton.c +++ b/src/mame/drivers/tonton.c @@ -283,7 +283,7 @@ static MACHINE_CONFIG_START( tonton, tonton_state ) 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_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update) - MCFG_PALETTE_LENGTH(512) + MCFG_PALETTE_ADD("palette", 512) MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW ) diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c index 08295c596a3..fe75be190ce 100644 --- a/src/mame/drivers/toobin.c +++ b/src/mame/drivers/toobin.c @@ -218,7 +218,7 @@ static MACHINE_CONFIG_START( toobin, toobin_state ) MCFG_SCREEN_UPDATE_DRIVER(toobin_state, screen_update_toobin) MCFG_GFXDECODE_ADD("gfxdecode", toobin) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_VIDEO_START_OVERRIDE(toobin_state,toobin) diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c index 4c061af9279..5fbcfa705e8 100644 --- a/src/mame/drivers/topspeed.c +++ b/src/mame/drivers/topspeed.c @@ -367,7 +367,7 @@ WRITE_LINE_MEMBER(topspeed_state::z80ctc_to0) static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 16, topspeed_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("sharedram") - AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500000, 0x503fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600002, 0x600003) AM_WRITE(cpua_ctrl_w) AM_RANGE(0x7e0000, 0x7e0001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, tc0140syt_port_w, 0x00ff) AM_RANGE(0x7e0002, 0x7e0003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff) @@ -623,8 +623,10 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state ) MCFG_Z80CTC_ADD("ctc", XTAL_16MHz / 4, ctc_intf) MCFG_PC080SN_ADD("pc080sn_1", pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") MCFG_PC080SN_ADD("pc080sn_2", pc080sn_intf) MCFG_PC080SN_GFXDECODE("gfxdecode") + MCFG_PC080SN_PALETTE("palette") MCFG_TC0140SYT_ADD("tc0140syt", tc0140syt_intf) MCFG_TC0220IOC_ADD("tc0220ioc", io_intf) @@ -637,7 +639,8 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state ) MCFG_SCREEN_UPDATE_DRIVER(topspeed_state, screen_update_topspeed) MCFG_GFXDECODE_ADD("gfxdecode", topspeed) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) // sound hardware MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/tourtabl.c b/src/mame/drivers/tourtabl.c index bbac3299acd..c6d89bdd804 100644 --- a/src/mame/drivers/tourtabl.c +++ b/src/mame/drivers/tourtabl.c @@ -187,7 +187,7 @@ static MACHINE_CONFIG_START( tourtabl, tourtabl_state ) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK, 228, 34, 34 + 160, 262, 46, 46 + 200 ) 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/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c index aa1c75680a7..553bc4014a6 100644 --- a/src/mame/drivers/tourvis.c +++ b/src/mame/drivers/tourvis.c @@ -382,9 +382,9 @@ static MACHINE_CONFIG_START( tourvision, tourvision_state ) MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242) MCFG_SCREEN_UPDATE_STATIC( pce ) - /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */ - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT( vce ) + /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */ + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_LEGACY( vce ) MCFG_VIDEO_START( pce ) diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c index 2b26de3aa40..e25cd1e3ba1 100644 --- a/src/mame/drivers/toypop.c +++ b/src/mame/drivers/toypop.c @@ -567,8 +567,8 @@ static MACHINE_CONFIG_START( liblrabl, toypop_state ) MCFG_SCREEN_UPDATE_DRIVER(toypop_state, screen_update_toypop) MCFG_GFXDECODE_ADD("gfxdecode", toypop) - MCFG_PALETTE_LENGTH(128*4+64*4+16*2) - + MCFG_PALETTE_ADD("palette", 128*4+64*4+16*2) + MCFG_PALETTE_INIT_OWNER(toypop_state, toypop) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c index 127bfbf9d25..cb6d573470a 100644 --- a/src/mame/drivers/tp84.c +++ b/src/mame/drivers/tp84.c @@ -310,8 +310,8 @@ static MACHINE_CONFIG_START( tp84, tp84_state ) MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84) MCFG_GFXDECODE_ADD("gfxdecode", tp84) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(tp84_state, tp84) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c index 4c31e9c6a84..1b113d2fcfa 100644 --- a/src/mame/drivers/trackfld.c +++ b/src/mame/drivers/trackfld.c @@ -910,9 +910,9 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state ) MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld) MCFG_GFXDECODE_ADD("gfxdecode", trackfld) - MCFG_PALETTE_LENGTH(16*16+16*16) + MCFG_PALETTE_ADD("palette", 16*16+16*16) - MCFG_PALETTE_INIT_OVERRIDE(trackfld_state,trackfld) + MCFG_PALETTE_INIT_OWNER(trackfld_state,trackfld) MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld) /* sound hardware */ @@ -962,9 +962,9 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state ) MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld) MCFG_GFXDECODE_ADD("gfxdecode", trackfld) - MCFG_PALETTE_LENGTH(16*16+16*16) + MCFG_PALETTE_ADD("palette", 16*16+16*16) - MCFG_PALETTE_INIT_OVERRIDE(trackfld_state,trackfld) + MCFG_PALETTE_INIT_OWNER(trackfld_state,trackfld) MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld) /* sound hardware */ diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c index 1c98be75ae1..758043de9c6 100644 --- a/src/mame/drivers/travrusa.c +++ b/src/mame/drivers/travrusa.c @@ -318,8 +318,8 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state ) MCFG_GFXDECODE_ADD("gfxdecode", travrusa) - MCFG_PALETTE_LENGTH(16*8+16*8) - + MCFG_PALETTE_ADD("palette", 16*8+16*8) + MCFG_PALETTE_INIT_OWNER(travrusa_state, travrusa) /* sound hardware */ MCFG_FRAGMENT_ADD(m52_sound_c_audio) @@ -329,7 +329,8 @@ static MACHINE_CONFIG_DERIVED( shtrider, travrusa ) /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", shtrider) - MCFG_PALETTE_INIT_OVERRIDE(travrusa_state,shtrider) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(travrusa_state,shtrider) MACHINE_CONFIG_END diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c index f9f927966e3..c3dd21d8c01 100644 --- a/src/mame/drivers/triforce.c +++ b/src/mame/drivers/triforce.c @@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( triforce_base, triforce_state ) MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) MCFG_SCREEN_UPDATE_DRIVER(triforce_state, screen_update_triforce) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MACHINE_CONFIG_END diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c index 3b103d1dbd5..bf4fbd87367 100644 --- a/src/mame/drivers/triplhnt.c +++ b/src/mame/drivers/triplhnt.c @@ -289,16 +289,16 @@ static GFXDECODE_START( triplhnt ) GFXDECODE_END -void triplhnt_state::palette_init() +PALETTE_INIT_MEMBER(triplhnt_state, triplhnt) { - palette_set_color(machine(), 0, rgb_t(0xAF, 0xAF, 0xAF)); /* sprites */ - palette_set_color(machine(), 1, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 2, rgb_t(0xFF, 0xFF, 0xFF)); - palette_set_color(machine(), 3, rgb_t(0x50, 0x50, 0x50)); - palette_set_color(machine(), 4, rgb_t(0x00, 0x00, 0x00)); /* tiles */ - palette_set_color(machine(), 5, rgb_t(0x3F, 0x3F, 0x3F)); - palette_set_color(machine(), 6, rgb_t(0x00, 0x00, 0x00)); - palette_set_color(machine(), 7, rgb_t(0x3F, 0x3F, 0x3F)); + palette.set_pen_color(0, rgb_t(0xAF, 0xAF, 0xAF)); /* sprites */ + palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(2, rgb_t(0xFF, 0xFF, 0xFF)); + palette.set_pen_color(3, rgb_t(0x50, 0x50, 0x50)); + palette.set_pen_color(4, rgb_t(0x00, 0x00, 0x00)); /* tiles */ + palette.set_pen_color(5, rgb_t(0x3F, 0x3F, 0x3F)); + palette.set_pen_color(6, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(7, rgb_t(0x3F, 0x3F, 0x3F)); } @@ -319,7 +319,8 @@ static MACHINE_CONFIG_START( triplhnt, triplhnt_state ) MCFG_SCREEN_UPDATE_DRIVER(triplhnt_state, screen_update_triplhnt) MCFG_GFXDECODE_ADD("gfxdecode", triplhnt) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(triplhnt_state, triplhnt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c index c5cdb33ba77..cc6677a2e2a 100644 --- a/src/mame/drivers/truco.c +++ b/src/mame/drivers/truco.c @@ -454,7 +454,8 @@ static MACHINE_CONFIG_START( truco, truco_state ) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) MCFG_SCREEN_UPDATE_DRIVER(truco_state, screen_update_truco) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_INIT_OWNER(truco_state, truco) MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK, mc6845_intf) /* Identified as UM6845 */ diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c index 9631a29ac40..d62255264fc 100644 --- a/src/mame/drivers/trucocl.c +++ b/src/mame/drivers/trucocl.c @@ -150,8 +150,8 @@ static MACHINE_CONFIG_START( trucocl, trucocl_state ) MCFG_SCREEN_UPDATE_DRIVER(trucocl_state, screen_update_trucocl) MCFG_GFXDECODE_ADD("gfxdecode", trucocl) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(trucocl_state, trucocl) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c index 47002e1d6b0..a067a1f81b7 100644 --- a/src/mame/drivers/trvmadns.c +++ b/src/mame/drivers/trvmadns.c @@ -207,7 +207,7 @@ WRITE8_MEMBER(trvmadns_state::trvmadns_palette_w) r = (((datax & 0x0038)>>3) | ((datax & 0x0400)>>7)) ^ 0xf; g = (((datax & 0x01c0)>>6) | ((datax & 0x0800)>>8)) ^ 0xf; - palette_set_color_rgb(machine(), offset, pal4bit(r), pal4bit(g), pal4bit(b)); + m_palette->set_pen_color(offset, pal4bit(r), pal4bit(g), pal4bit(b)); } @@ -340,7 +340,7 @@ UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind1 int flipy = attr & 2; if(!(attr & 0x20)) - gfx->opaque(bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8)); + gfx->opaque(m_palette,bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8)); count++; } } @@ -358,7 +358,7 @@ UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind1 int flipy = attr & 2; if(attr & 0x20) - gfx->transpen(bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8),1); + gfx->transpen(m_palette,bitmap,cliprect,tile,color,flipx,flipy,(x*8),(y*8),1); count++; } } @@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( trvmadns, trvmadns_state ) MCFG_SCREEN_UPDATE_DRIVER(trvmadns_state, screen_update_trvmadns) MCFG_GFXDECODE_ADD("gfxdecode", trvmadns) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) /* sound hardware */ diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c index 762a2f17166..4490ad41ea1 100644 --- a/src/mame/drivers/tryout.c +++ b/src/mame/drivers/tryout.c @@ -203,8 +203,8 @@ static MACHINE_CONFIG_START( tryout, tryout_state ) MCFG_SCREEN_UPDATE_DRIVER(tryout_state, screen_update_tryout) MCFG_GFXDECODE_ADD("gfxdecode", tryout) - MCFG_PALETTE_LENGTH(0x20) - + MCFG_PALETTE_ADD("palette", 0x20) + MCFG_PALETTE_INIT_OWNER(tryout_state, tryout) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c index d813df7acf7..af389e57a22 100644 --- a/src/mame/drivers/tsamurai.c +++ b/src/mame/drivers/tsamurai.c @@ -697,9 +697,7 @@ static MACHINE_CONFIG_START( tsamurai, tsamurai_state ) MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai) MCFG_GFXDECODE_ADD("gfxdecode", tsamurai) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(tsamurai_state,tsamurai) /* sound hardware */ @@ -737,9 +735,7 @@ static MACHINE_CONFIG_START( vsgongf, tsamurai_state ) MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_vsgongf) MCFG_GFXDECODE_ADD("gfxdecode", tsamurai) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(tsamurai_state,vsgongf) /* sound hardware */ @@ -781,9 +777,7 @@ static MACHINE_CONFIG_START( m660, tsamurai_state ) MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai) MCFG_GFXDECODE_ADD("gfxdecode", tsamurai) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) MCFG_VIDEO_START_OVERRIDE(tsamurai_state,tsamurai) /* sound hardware */ diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c index 2d7fc58a83b..4603cc55a39 100644 --- a/src/mame/drivers/ttchamp.c +++ b/src/mame/drivers/ttchamp.c @@ -106,7 +106,7 @@ UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16 // int i; static const int xxx=320,yyy=204; - bitmap.fill(get_black_pen(machine())); + bitmap.fill(m_palette->black_pen()); // for (i=0;i<256;i++) // { @@ -116,7 +116,7 @@ UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16 // b = (dat>>10)&0x1f; // g = (dat>>5)&0x1f; // r = (dat>>0)&0x1f; -// palette_set_color_rgb(machine(),i,pal5bit(r),pal5bit(g),pal5bit(b)); +// m_palette->set_pen_color(i,pal5bit(r),pal5bit(g),pal5bit(b)); // } count=0; @@ -154,7 +154,7 @@ WRITE16_MEMBER(ttchamp_state::pcup_prgbank_w) WRITE16_MEMBER(ttchamp_state::paldat_w) { - palette_set_color_rgb(machine(),m_paloff & 0x7fff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10)); + m_palette->set_pen_color(m_paloff & 0x7fff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10)); } READ16_MEMBER(ttchamp_state::peno_rand) @@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update_ttchamp) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c index aeaf9a3d874..52ccfd7f4d0 100644 --- a/src/mame/drivers/tubep.c +++ b/src/mame/drivers/tubep.c @@ -928,9 +928,9 @@ static MACHINE_CONFIG_START( tubep, tubep_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_tubep) - MCFG_PALETTE_LENGTH(32 + 256*64) + MCFG_PALETTE_ADD("palette", 32 + 256*64) - MCFG_PALETTE_INIT_OVERRIDE(tubep_state,tubep) + MCFG_PALETTE_INIT_OWNER(tubep_state,tubep) MCFG_VIDEO_START_OVERRIDE(tubep_state,tubep) MCFG_VIDEO_RESET_OVERRIDE(tubep_state,tubep) @@ -988,9 +988,9 @@ static MACHINE_CONFIG_START( rjammer, tubep_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_rjammer) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) - MCFG_PALETTE_INIT_OVERRIDE(tubep_state,rjammer) + MCFG_PALETTE_INIT_OWNER(tubep_state,rjammer) MCFG_VIDEO_START_OVERRIDE(tubep_state,tubep) MCFG_VIDEO_RESET_OVERRIDE(tubep_state,tubep) diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c index edd9b3ee6d9..d1030566d4d 100644 --- a/src/mame/drivers/tugboat.c +++ b/src/mame/drivers/tugboat.c @@ -59,7 +59,7 @@ public: virtual void machine_start(); virtual void video_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(tugboat); UINT32 screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_tilemap(bitmap_ind16 &bitmap,const rectangle &cliprect, int addr,int gfx0,int gfx1,int transparency); @@ -86,12 +86,12 @@ void tugboat_state::video_start() /* there isn't the usual resistor array anywhere near the color prom, just four 1k resistors. */ -void tugboat_state::palette_init() +PALETTE_INIT_MEMBER(tugboat_state, tugboat) { const UINT8 *color_prom = memregion("proms")->base(); int i; - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int r,g,b,brt; @@ -101,7 +101,7 @@ void tugboat_state::palette_init() g = brt * ((color_prom[i] >> 1) & 0x01); b = brt * ((color_prom[i] >> 2) & 0x01); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -152,7 +152,7 @@ void tugboat_state::draw_tilemap(bitmap_ind16 &bitmap,const rectangle &cliprect, transpen = 1; } - m_gfxdecode->gfx(rgn)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(rgn)->transpen(m_palette,bitmap,cliprect, code, color, 0,0, @@ -361,7 +361,8 @@ static MACHINE_CONFIG_START( tugboat, tugboat_state ) MCFG_SCREEN_UPDATE_DRIVER(tugboat_state, screen_update_tugboat) MCFG_GFXDECODE_ADD("gfxdecode", tugboat) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(tugboat_state, tugboat) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c index 13f72776bb5..92b5e579fcf 100644 --- a/src/mame/drivers/tumbleb.c +++ b/src/mame/drivers/tumbleb.c @@ -632,7 +632,7 @@ static ADDRESS_MAP_START( tumblepopb_main_map, AS_PROGRAM, 16, tumbleb_state ) #endif AM_RANGE(0x100000, 0x100001) AM_READWRITE(tumblepb_prot_r, tumblepb_oki_w) AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram") - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */ AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) @@ -654,7 +654,7 @@ static ADDRESS_MAP_START( fncywld_main_map, AS_PROGRAM, 16, tumbleb_state ) #endif AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff) AM_RANGE(0x100004, 0x100005) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* sprites */ AM_RANGE(0x160800, 0x16080f) AM_WRITEONLY /* goes slightly past the end of spriteram? */ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) @@ -682,7 +682,7 @@ static ADDRESS_MAP_START( htchctch_main_map, AS_PROGRAM, 16, tumbleb_state ) AM_RANGE(0x100000, 0x100001) AM_WRITE(semicom_soundcmd_w) AM_RANGE(0x100002, 0x100003) AM_WRITE(bcstory_tilebank_w) AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram") - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x160fff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP @@ -708,7 +708,7 @@ static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16, tumbleb_state ) AM_RANGE(0xa00000, 0xa0000f) AM_RAM AM_SHARE("control") AM_RANGE(0xa20000, 0xa20fff) AM_RAM_WRITE(tumblepb_pf1_data_w) AM_SHARE("pf1_data") AM_RANGE(0xa22000, 0xa22fff) AM_RAM_WRITE(tumblepb_pf2_data_w) AM_SHARE("pf2_data") - AM_RANGE(0xcf0000, 0xcf05ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0xcf0000, 0xcf05ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("PLAYERS") AM_WRITE(suprtrio_tilebank_w) AM_RANGE(0xe40000, 0xe40001) AM_READ_PORT("SYSTEM") AM_RANGE(0xe80002, 0xe80003) AM_READ_PORT("DSW") @@ -719,7 +719,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pangpang_main_map, AS_PROGRAM, 16, tumbleb_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram") - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */ AM_RANGE(0x160800, 0x160807) AM_WRITEONLY // writes past the end of spriteram AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) @@ -775,7 +775,7 @@ static ADDRESS_MAP_START( jumpkids_main_map, AS_PROGRAM, 16, tumbleb_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x100001) AM_WRITE(jumpkids_sound_w) AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("mainram") - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_SHARE("spriteram") /* Bootleg sprite buffer */ AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r) @@ -2062,9 +2062,11 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state ) decospr_device::set_gfx_region(*device, 3); decospr_device::set_is_bootleg(*device, true); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tumbleb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2098,9 +2100,11 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state ) decospr_device::set_gfx_region(*device, 3); decospr_device::set_is_bootleg(*device, true); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tumbleb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2137,9 +2141,11 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state ) decospr_device::set_gfx_region(*device, 3); decospr_device::set_is_bootleg(*device, true); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tumbleb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2173,9 +2179,11 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state ) decospr_device::set_is_bootleg(*device, true); decospr_device::set_transpen(*device, 15); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", fncywld) - MCFG_PALETTE_LENGTH(0x800) + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,fncywld) @@ -2230,9 +2238,11 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state ) decospr_device::set_gfx_region(*device, 3); decospr_device::set_is_bootleg(*device, true); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tumbleb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,tumblepb) @@ -2333,9 +2343,11 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state ) decospr_device::set_gfx_region(*device, 3); decospr_device::set_is_bootleg(*device, true); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", suprtrio) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,suprtrio) @@ -2369,9 +2381,11 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state ) decospr_device::set_gfx_region(*device, 3); decospr_device::set_is_bootleg(*device, true); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", tumbleb) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_VIDEO_START_OVERRIDE(tumbleb_state,pangpang) @@ -3553,7 +3567,7 @@ DRIVER_INIT_MEMBER(tumbleb_state,chokchok) DRIVER_INIT_CALL(htchctch); /* different palette format, closer to tumblep -- is this controlled by a register? the palette was right with the hatch catch trojan */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16_delegate(FUNC(tumbleb_state::paletteram_xxxxBBBBGGGGRRRR_word_w), this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x140000, 0x140fff, write16_delegate(FUNC(palette_device::write), m_palette.target())); /* slightly different banking */ m_maincpu->space(AS_PROGRAM).install_write_handler(0x100002, 0x100003, write16_delegate(FUNC(tumbleb_state::chokchok_tilebank_w),this)); diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c index 14a6ae9b6c5..5f89db3f409 100644 --- a/src/mame/drivers/tumblep.c +++ b/src/mame/drivers/tumblep.c @@ -112,7 +112,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tumblep_state ) #endif AM_RANGE(0x100000, 0x100001) AM_WRITE(tumblep_sound_w) AM_RANGE(0x120000, 0x123fff) AM_RAM - AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r) AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_SHARE("spriteram") @@ -305,14 +305,17 @@ static MACHINE_CONFIG_START( tumblep, tumblep_state ) MCFG_SCREEN_UPDATE_DRIVER(tumblep_state, screen_update_tumblep) MCFG_GFXDECODE_ADD("gfxdecode", tumblep) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) MCFG_DECO16IC_ADD("tilegen1", tumblep_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) decospr_device::set_gfx_region(*device, 2); MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") + MCFG_DECO_SPRITE_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c index 13536241e9a..3873915250f 100644 --- a/src/mame/drivers/tunhunt.c +++ b/src/mame/drivers/tunhunt.c @@ -308,8 +308,8 @@ static MACHINE_CONFIG_START( tunhunt, tunhunt_state ) MCFG_SCREEN_UPDATE_DRIVER(tunhunt_state, screen_update_tunhunt) MCFG_GFXDECODE_ADD("gfxdecode", tunhunt) - MCFG_PALETTE_LENGTH(0x1a) - + MCFG_PALETTE_ADD("palette", 0x1a) + MCFG_PALETTE_INIT_OWNER(tunhunt_state, tunhunt) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c index 93137b4dc2e..269268739d3 100644 --- a/src/mame/drivers/turbo.c +++ b/src/mame/drivers/turbo.c @@ -941,13 +941,13 @@ static MACHINE_CONFIG_START( turbo, turbo_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_GFXDECODE_ADD("gfxdecode", turbo) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(turbo_state,turbo) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_turbo) - MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo) MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) /* sound hardware */ @@ -970,13 +970,13 @@ static MACHINE_CONFIG_START( subroc3d, turbo_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_GFXDECODE_ADD("gfxdecode", turbo) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(turbo_state,subroc3d) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_subroc3d) - MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d) MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) /* sound hardware */ @@ -1006,13 +1006,13 @@ static MACHINE_CONFIG_START( buckrog, turbo_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) MCFG_GFXDECODE_ADD("gfxdecode", turbo) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_OWNER(turbo_state,buckrog) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_buckrog) - MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog) MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog) /* sound hardware */ diff --git a/src/mame/drivers/turrett.c b/src/mame/drivers/turrett.c index 8caf3646dd3..987c630fa47 100644 --- a/src/mame/drivers/turrett.c +++ b/src/mame/drivers/turrett.c @@ -365,8 +365,9 @@ static MACHINE_CONFIG_START( turrett, turrett_state ) // to ensure in-sync streaming sound MCFG_SCREEN_RAW_PARAMS(4000000, 512, 0, 336, 259, 0, 244) MCFG_SCREEN_UPDATE_DRIVER(turrett_state, screen_update) - MCFG_PALETTE_LENGTH(32768) - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRRR_GGGGG_BBBBB) + //MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") + + MCFG_PALETTE_ADD("palette", 0x2000) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c index 628fc9ec8a0..07804274ec8 100644 --- a/src/mame/drivers/twin16.c +++ b/src/mame/drivers/twin16.c @@ -671,7 +671,6 @@ static MACHINE_CONFIG_START( twin16, twin16_state ) MCFG_MACHINE_RESET_OVERRIDE(twin16_state,twin16) // video hardware - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_SCREEN_ADD("screen", RASTER) @@ -680,7 +679,9 @@ static MACHINE_CONFIG_START( twin16, twin16_state ) MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16) MCFG_GFXDECODE_ADD("gfxdecode", twin16) - MCFG_PALETTE_LENGTH(0x400) + + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(twin16_state,twin16) @@ -722,7 +723,6 @@ static MACHINE_CONFIG_START( fround, twin16_state ) MCFG_MACHINE_RESET_OVERRIDE(twin16_state,twin16) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") MCFG_SCREEN_ADD("screen", RASTER) @@ -731,7 +731,9 @@ static MACHINE_CONFIG_START( fround, twin16_state ) MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16) MCFG_GFXDECODE_ADD("gfxdecode", twin16) - MCFG_PALETTE_LENGTH(0x400) + + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_VIDEO_START_OVERRIDE(twin16_state,twin16) diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c index d6fa5a4b78a..34fc21a18cd 100644 --- a/src/mame/drivers/twincobr.c +++ b/src/mame/drivers/twincobr.c @@ -393,7 +393,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 16, twincobr_state ) AM_RANGE(0x000000, 0x02ffff) AM_ROM AM_RANGE(0x030000, 0x033fff) AM_RAM /* 68K and DSP shared RAM */ AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("spriteram16") - AM_RANGE(0x050000, 0x050dff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x050000, 0x050dff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x060000, 0x060001) AM_DEVWRITE8("crtc", mc6845_device, address_w, 0x00ff) AM_RANGE(0x060002, 0x060003) AM_DEVWRITE8("crtc", mc6845_device, register_w, 0x00ff) AM_RANGE(0x070000, 0x070003) AM_WRITE(twincobr_txscroll_w) /* text layer scroll */ @@ -704,7 +704,8 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", twincobr) - MCFG_PALETTE_LENGTH(1792) + MCFG_PALETTE_ADD("palette", 1792) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(twincobr_state,toaplan0) diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c index 5545a2f6bec..96e356b8feb 100644 --- a/src/mame/drivers/twins.c +++ b/src/mame/drivers/twins.c @@ -128,7 +128,7 @@ UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bit int i; static const int xxx=320,yyy=204; - bitmap.fill(get_black_pen(machine())); + bitmap.fill(m_palette->black_pen()); for (i=0;i<0x100;i++) { @@ -144,7 +144,7 @@ UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bit b = (dat>>10) & 0x1f; b = BITSWAP8(b,7,6,5,0,1,2,3,4); - palette_set_color_rgb(machine(),i, pal5bit(r),pal5bit(g),pal5bit(b)); + m_palette->set_pen_color(i, pal5bit(r),pal5bit(g),pal5bit(b)); } count=0; @@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( twins, twins_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) MCFG_VIDEO_START_OVERRIDE(twins_state,twins) @@ -234,7 +234,7 @@ UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bi int i; static const int xxx=320,yyy=204; - bitmap.fill(get_black_pen(machine())); + bitmap.fill(m_palette->black_pen()); for (i=0;i<0x1000-3;i+=3) { @@ -243,7 +243,7 @@ UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bi g = m_paletteram[i+1]; b = m_paletteram[i+2]; - palette_set_color_rgb(machine(),i/3, pal6bit(r), pal6bit(g), pal6bit(b)); + m_palette->set_pen_color(i/3, pal6bit(r), pal6bit(g), pal6bit(b)); } count=0; @@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( twinsa, twins_state ) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twinsa) - MCFG_PALETTE_LENGTH(0x1000) + MCFG_PALETTE_ADD("palette", 0x1000) MCFG_VIDEO_START_OVERRIDE(twins_state,twinsa) diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 612eef81715..af4dadb0b76 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -708,8 +708,8 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) MCFG_I8255A_ADD("ppi8255", tx1_ppi8255_intf) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(tx1_state,tx1) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(tx1_state,tx1) MCFG_DEFAULT_LAYOUT(layout_triphsxs) @@ -776,8 +776,8 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_right) MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(tx1_state,buggyboy) MCFG_VIDEO_START_OVERRIDE(tx1_state,buggyboy) MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright") @@ -818,8 +818,8 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state ) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggybjr) MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy) - MCFG_PALETTE_LENGTH(256) - MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(tx1_state,buggyboy) MCFG_VIDEO_START_OVERRIDE(tx1_state,buggybjr) MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright") diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c index 6fa53a12798..9900d483bda 100644 --- a/src/mame/drivers/uapce.c +++ b/src/mame/drivers/uapce.c @@ -324,9 +324,9 @@ static MACHINE_CONFIG_START( uapce, uapce_state ) MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242) MCFG_SCREEN_UPDATE_STATIC( pce ) - /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */ - MCFG_PALETTE_LENGTH(1024) - MCFG_PALETTE_INIT( vce ) + /* MCFG_GFXDECODE_ADD("gfxdecode", pce_gfxdecodeinfo ) */ + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_INIT_LEGACY( vce ) MCFG_VIDEO_START( pce ) diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c index 33ccac3a30b..07fa81ff4d1 100644 --- a/src/mame/drivers/ultraman.c +++ b/src/mame/drivers/ultraman.c @@ -32,7 +32,7 @@ WRITE16_MEMBER(ultraman_state::sound_irq_trigger_w) static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, ultraman_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x080000, 0x08ffff) AM_RAM - AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")/* Palette */ + AM_RANGE(0x180000, 0x183fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")/* Palette */ AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("SYSTEM") AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P1") AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P2") @@ -217,8 +217,6 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state ) /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -226,21 +224,27 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state ) MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(ultraman_state, screen_update_ultraman) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + MCFG_PALETTE_ENABLE_SHADOWS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K051960_ADD("k051960", ultraman_k051960_intf) MCFG_K051960_GFXDECODE("gfxdecode") + MCFG_K051960_PALETTE("palette") MCFG_K051316_ADD("k051316_1", ultraman_k051316_intf_0) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K051316_ADD("k051316_2", ultraman_k051316_intf_1) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K051316_ADD("k051316_3", ultraman_k051316_intf_2) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 9c3589cf4d4..c88ac988791 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -314,8 +314,8 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state ) MCFG_SCREEN_VBLANK_DRIVER(ultratnk_state, screen_eof_ultratnk) MCFG_GFXDECODE_ADD("gfxdecode", ultratnk) - MCFG_PALETTE_LENGTH(10) - + MCFG_PALETTE_ADD("palette", 10) + MCFG_PALETTE_INIT_OWNER(ultratnk_state, ultratnk) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c index 77622508550..000fb46bcbd 100644 --- a/src/mame/drivers/ultrsprt.c +++ b/src/mame/drivers/ultrsprt.c @@ -81,8 +81,8 @@ WRITE32_MEMBER(ultrsprt_state::palette_w) COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; - palette_set_color(machine(), (offset*2)+0, rgb_t(pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16))); - palette_set_color(machine(), (offset*2)+1, rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0))); + m_palette->set_pen_color((offset*2)+0, rgb_t(pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16))); + m_palette->set_pen_color((offset*2)+1, rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0))); } @@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state ) MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) MCFG_SCREEN_UPDATE_DRIVER(ultrsprt_state, screen_update_ultrsprt) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) /* sound hardware */ MCFG_K056800_ADD("k056800", XTAL_18_432MHz) diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c index e45cb8bf2f5..1d8d1b81024 100644 --- a/src/mame/drivers/umipoker.c +++ b/src/mame/drivers/umipoker.c @@ -145,7 +145,7 @@ UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind1 m_tilemap_2->set_scrolly(0, m_umipoker_scrolly[2]); m_tilemap_3->set_scrolly(0, m_umipoker_scrolly[3]); - bitmap.fill(get_black_pen(machine()), cliprect); + bitmap.fill(m_palette->black_pen(), cliprect); m_tilemap_0->draw(screen, bitmap, cliprect, 0,0); m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); @@ -312,7 +312,7 @@ static ADDRESS_MAP_START( umipoker_map, AS_PROGRAM, 16, umipoker_state ) ADDRESS_MAP_UNMAP_LOW AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x600000, 0x6007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(umipoker_vram_0_w) AM_SHARE("vra0") AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(umipoker_vram_1_w) AM_SHARE("vra1") AM_RANGE(0x804000, 0x805fff) AM_RAM_WRITE(umipoker_vram_2_w) AM_SHARE("vra2") @@ -679,7 +679,8 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state ) MCFG_GFXDECODE_ADD("gfxdecode", umipoker) - MCFG_PALETTE_LENGTH(0x400) + MCFG_PALETTE_ADD("palette", 0x400) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c index cd0a5fa91c2..b228c3e0d74 100644 --- a/src/mame/drivers/undrfire.c +++ b/src/mame/drivers/undrfire.c @@ -216,7 +216,7 @@ WRITE32_MEMBER(undrfire_state::color_ram_w) g = (a & 0xff00) >> 8; b = (a & 0xff); - palette_set_color(machine(),offset,rgb_t(r,g,b)); + m_palette->set_pen_color(offset,rgb_t(r,g,b)); } } @@ -733,7 +733,7 @@ static MACHINE_CONFIG_START( undrfire, undrfire_state ) MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_undrfire) MCFG_GFXDECODE_ADD("gfxdecode", undrfire) - MCFG_PALETTE_LENGTH(16384) + MCFG_PALETTE_ADD("palette", 16384) MCFG_TC0100SCN_ADD("tc0100scn", undrfire_tc0100scn_intf) @@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( cbombers, undrfire_state ) MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_cbombers) MCFG_GFXDECODE_ADD("gfxdecode", cbombers) - MCFG_PALETTE_LENGTH(16384) + MCFG_PALETTE_ADD("palette", 16384) MCFG_TC0100SCN_ADD("tc0100scn", undrfire_tc0100scn_intf) diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c index c62ee5d6fd1..1b51c2051d4 100644 --- a/src/mame/drivers/unico.c +++ b/src/mame/drivers/unico.c @@ -583,7 +583,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state ) MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) MCFG_GFXDECODE_ADD("gfxdecode", unico) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(unico_state,unico) @@ -628,7 +628,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state ) MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) MCFG_GFXDECODE_ADD("gfxdecode", unico) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(unico_state,unico) @@ -670,7 +670,7 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state ) MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) MCFG_GFXDECODE_ADD("gfxdecode", unico) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) MCFG_VIDEO_START_OVERRIDE(unico_state,unico) diff --git a/src/mame/drivers/unkhorse.c b/src/mame/drivers/unkhorse.c index 37bb6dd5753..d901f86a4f3 100644 --- a/src/mame/drivers/unkhorse.c +++ b/src/mame/drivers/unkhorse.c @@ -41,7 +41,7 @@ public: DECLARE_READ8_MEMBER(horse_input_r); DECLARE_WRITE8_MEMBER(horse_output_w); DECLARE_WRITE_LINE_MEMBER(horse_timer_out); - virtual void palette_init(); + DECLARE_PALETTE_INIT(horse); UINT32 screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(horse_interrupt); required_device<cpu_device> m_maincpu; @@ -55,11 +55,11 @@ public: ***************************************************************************/ -void horse_state::palette_init() +PALETTE_INIT_MEMBER(horse_state, horse) { // palette is simply 3bpp 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)); } UINT32 horse_state::screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -220,7 +220,8 @@ static MACHINE_CONFIG_START( horse, horse_state ) MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update_horse) - MCFG_PALETTE_LENGTH(8) + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(horse_state, horse) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c index 075ee623542..5fdb9292e81 100644 --- a/src/mame/drivers/upscope.c +++ b/src/mame/drivers/upscope.c @@ -327,8 +327,8 @@ static MACHINE_CONFIG_START( upscope, upscope_state ) MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga) - MCFG_PALETTE_LENGTH(4096) - MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga) + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_INIT_OWNER(upscope_state,amiga) MCFG_VIDEO_START_OVERRIDE(upscope_state,amiga) diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c index f5872f7abf5..cde8a96ea83 100644 --- a/src/mame/drivers/usgames.c +++ b/src/mame/drivers/usgames.c @@ -246,8 +246,8 @@ static MACHINE_CONFIG_START( usg32, usgames_state ) MCFG_SCREEN_UPDATE_DRIVER(usgames_state, screen_update_usgames) MCFG_GFXDECODE_ADD("gfxdecode", usgames) - MCFG_PALETTE_LENGTH(2*256) - + MCFG_PALETTE_ADD("palette", 2*256) + MCFG_PALETTE_INIT_OWNER(usgames_state, usgames) MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_18MHz / 16, mc6845_intf) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 970bcd978de..19f6bb93f65 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -252,10 +252,10 @@ WRITE32_MEMBER(vamphalf_state::paletteram32_w) COMBINE_DATA(&m_generic_paletteram_32[offset]); paldata = m_generic_paletteram_32[offset] & 0xffff; - palette_set_color_rgb(machine(), offset*2 + 1, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0)); + m_palette->set_pen_color(offset*2 + 1, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0)); paldata = (m_generic_paletteram_32[offset] >> 16) & 0xffff; - palette_set_color_rgb(machine(), offset*2 + 0, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0)); + m_palette->set_pen_color(offset*2 + 0, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0)); } READ32_MEMBER(vamphalf_state::wyvernwg_prot_r) @@ -412,7 +412,7 @@ WRITE8_MEMBER( vamphalf_state::qs1000_p3_w ) static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, vamphalf_state ) AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram") AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles") - AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0) ADDRESS_MAP_END @@ -666,7 +666,7 @@ static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap) y = 256 - y; } - gfx->transpen(bitmap,clip,code,color,fx,fy,x,y,0); + gfx->transpen(state->m_palette,bitmap,clip,code,color,fx,fy,x,y,0); } } } @@ -727,7 +727,7 @@ static void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap) y = 256 - y; } - gfx->transpen(bitmap,clip,code,color,fx,fy,x,y,0); + gfx->transpen(state->m_palette,bitmap,clip,code,color,fx,fy,x,y,0); } } } @@ -997,7 +997,8 @@ static MACHINE_CONFIG_START( common, vamphalf_state ) MCFG_SCREEN_VISIBLE_AREA(31, 350, 16, 251) MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_common) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_GFXDECODE_ADD("gfxdecode", vamphalf) MACHINE_CONFIG_END @@ -1128,7 +1129,8 @@ static MACHINE_CONFIG_START( aoh, vamphalf_state ) MCFG_SCREEN_VISIBLE_AREA(64, 511-64, 16, 255-16) MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_aoh) - MCFG_PALETTE_LENGTH(0x8000) + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_GFXDECODE_ADD("gfxdecode", vamphalf) /* sound hardware */ diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c index 6f19b786aa9..238e49e983c 100644 --- a/src/mame/drivers/vaportra.c +++ b/src/mame/drivers/vaportra.c @@ -256,18 +256,21 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) MCFG_SCREEN_UPDATE_DRIVER(vaportra_state, screen_update_vaportra) MCFG_GFXDECODE_ADD("gfxdecode", vaportra) - MCFG_PALETTE_LENGTH(1280) + MCFG_PALETTE_ADD("palette", 1280) MCFG_DECO16IC_ADD("tilegen1", vaportra_deco16ic_tilegen1_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DECO16IC_ADD("tilegen2", vaportra_deco16ic_tilegen2_intf) MCFG_DECO16IC_GFXDECODE("gfxdecode") + MCFG_DECO16IC_PALETTE("palette") MCFG_DEVICE_ADD("spritegen", DECO_MXC06, 0) deco_mxc06_device::set_gfx_region(*device, 4); MCFG_DECO_MXC06_GFXDECODE("gfxdecode") + MCFG_DECO_MXC06_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c index be3eff79e09..a6150e82c4d 100644 --- a/src/mame/drivers/vastar.c +++ b/src/mame/drivers/vastar.c @@ -444,9 +444,7 @@ static MACHINE_CONFIG_START( vastar, vastar_state ) MCFG_SCREEN_UPDATE_DRIVER(vastar_state, screen_update_vastar) MCFG_GFXDECODE_ADD("gfxdecode", vastar) - MCFG_PALETTE_LENGTH(256) - - MCFG_PALETTE_INIT_OVERRIDE(driver_device, RRRR_GGGG_BBBB) + MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index 7b700a682ba..2ebaa3ea7ac 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( vball, vball_state ) MCFG_SCREEN_UPDATE_DRIVER(vball_state, screen_update_vb) MCFG_GFXDECODE_ADD("gfxdecode", vb) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c index f16957ae4f4..817230ff65d 100644 --- a/src/mame/drivers/vega.c +++ b/src/mame/drivers/vega.c @@ -157,7 +157,7 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(vega); UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; @@ -481,13 +481,13 @@ INPUT_PORTS_END -void vega_state::palette_init() +PALETTE_INIT_MEMBER(vega_state, vega) { int i; for(i=0;i<8;++i) { - palette_set_color( machine(),2*i, rgb_t(0x00, 0x00, 0x00) ); - palette_set_color( machine(),2*i+1, rgb_t( (i&1)?0xff:0x00, (i&2)?0xff:0x00, (i&4)?0xff:0x00) ); + palette.set_pen_color( 2*i, rgb_t(0x00, 0x00, 0x00) ); + palette.set_pen_color( 2*i+1, rgb_t( (i&1)?0xff:0x00, (i&2)?0xff:0x00, (i&4)?0xff:0x00) ); } } @@ -531,7 +531,7 @@ static void draw_tilemap(vega_state *state, screen_device& screen, bitmap_ind16& { //for(int x=0;x<4;++x) { - state->m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 1,flip?1:0, x*4+x0-offset_x, (flip?(3-y):y)*8+y0-offset_y, 0); + state->m_gfxdecode->gfx(1)->transpen(state->m_palette,bitmap,cliprect, num, 0, 1,flip?1:0, x*4+x0-offset_x, (flip?(3-y):y)*8+y0-offset_y, 0); ++num; } } @@ -580,7 +580,7 @@ UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitma // if(color==0) color=0xf; - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, character, color, 0, 0, x*7, y*10,0); + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, character, color, 0, 0, x*7, y*10,0); ++idx; } @@ -601,7 +601,7 @@ UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitma { //for(int x=0;x<4;++x) { - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, num, 0, 1, flip?1:0, x*4+x0, (flip?(3-y):y)*8+y0, 0); + m_gfxdecode->gfx(2)->transpen(m_palette,bitmap,cliprect, num, 0, 1, flip?1:0, x*4+x0, (flip?(3-y):y)*8+y0, 0); ++num; } } @@ -641,7 +641,7 @@ UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitma for(int y=0;y<4;++y) { - m_gfxdecode->gfx(3)->transpen(bitmap,cliprect, strip_num, 0, !xor_line, 0, x*4+x0, y*8+y0, 0); + m_gfxdecode->gfx(3)->transpen(m_palette,bitmap,cliprect, strip_num, 0, !xor_line, 0, x*4+x0, y*8+y0, 0); ++strip_num; } } @@ -851,7 +851,8 @@ static MACHINE_CONFIG_START( vega, vega_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 280, 0*8, 239) MCFG_SCREEN_UPDATE_DRIVER(vega_state, screen_update_vega) - MCFG_PALETTE_LENGTH(0x100) + MCFG_PALETTE_ADD("palette", 0x100) + MCFG_PALETTE_INIT_OWNER(vega_state, vega) MCFG_GFXDECODE_ADD("gfxdecode", test_decode) diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c index dbd8f54824f..32dce9a789c 100644 --- a/src/mame/drivers/vegaeo.c +++ b/src/mame/drivers/vegaeo.c @@ -113,7 +113,7 @@ WRITE32_MEMBER(vegaeo_state::vega_palette_w) COMBINE_DATA(&m_generic_paletteram_32[offset]); paldata = m_generic_paletteram_32[offset] & 0x7fff; - palette_set_color_rgb(machine(), offset, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0)); + m_palette->set_pen_color(offset, pal5bit(paldata >> 10), pal5bit(paldata >> 5), pal5bit(paldata >> 0)); } WRITE32_MEMBER(vegaeo_state::vega_misc_w) @@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( vega, vegaeo_state ) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) MCFG_SCREEN_UPDATE_DRIVER(vegaeo_state, screen_update_vega) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) MCFG_VIDEO_START_OVERRIDE(vegaeo_state,vega) diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c index 510b181491a..bd68fc18da0 100644 --- a/src/mame/drivers/vendetta.c +++ b/src/mame/drivers/vendetta.c @@ -154,7 +154,7 @@ void vendetta_state::vendetta_video_banking( int select ) if (select & 1) { space.install_read_bank(m_video_banking_base + 0x2000, m_video_banking_base + 0x2fff, "bank4" ); - space.install_write_handler(m_video_banking_base + 0x2000, m_video_banking_base + 0x2fff, write8_delegate(FUNC(vendetta_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), this) ); + space.install_write_handler(m_video_banking_base + 0x2000, m_video_banking_base + 0x2fff, write8_delegate(FUNC(palette_device::write), m_palette.target()) ); space.install_readwrite_handler(m_video_banking_base + 0x0000, m_video_banking_base + 0x0fff, read8_delegate(FUNC(k053247_device::k053247_r), (k053247_device*)m_k053246), write8_delegate(FUNC(k053247_device::k053247_w), (k053247_device*)m_k053246) ); membank("bank4")->set_base(m_generic_paletteram_8); } @@ -490,8 +490,6 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.17) /* measured on PCB */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) @@ -499,13 +497,17 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state ) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) MCFG_SCREEN_UPDATE_DRIVER(vendetta_state, screen_update_vendetta) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", vendetta_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053246_ADD("k053246", vendetta_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053251_ADD("k053251") MCFG_K054000_ADD("k054000") @@ -536,9 +538,11 @@ static MACHINE_CONFIG_DERIVED( esckids, vendetta ) MCFG_DEVICE_REMOVE("k052109") MCFG_K052109_ADD("k052109", esckids_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_DEVICE_REMOVE("k053246") MCFG_K053246_ADD("k053246", esckids_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053252_ADD("k053252", 6000000, esckids_k053252_intf) MACHINE_CONFIG_END diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c index ab847f9292b..953d8d5114c 100644 --- a/src/mame/drivers/victory.c +++ b/src/mame/drivers/victory.c @@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( victory, victory_state ) MCFG_SCREEN_RAW_PARAMS(VICTORY_PIXEL_CLOCK, VICTORY_HTOTAL, VICTORY_HBEND, VICTORY_HBSTART, VICTORY_VTOTAL, VICTORY_VBEND, VICTORY_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(victory_state, screen_update_victory) - MCFG_PALETTE_LENGTH(64) + MCFG_PALETTE_ADD("palette", 64) /* audio hardware */ diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c index 448a2ce34db..5c71f97b788 100644 --- a/src/mame/drivers/videopin.c +++ b/src/mame/drivers/videopin.c @@ -343,9 +343,8 @@ static MACHINE_CONFIG_START( videopin, videopin_state ) MCFG_SCREEN_UPDATE_DRIVER(videopin_state, screen_update_videopin) MCFG_GFXDECODE_ADD("gfxdecode", videopin) - 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/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index 40ed3403b65..18ab48e062f 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -363,7 +363,7 @@ public: TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_start(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(videopkr); DECLARE_VIDEO_START(vidadcba); DECLARE_PALETTE_INIT(babypkr); DECLARE_PALETTE_INIT(fortune1); @@ -418,12 +418,12 @@ static void count_7dig(unsigned long data, UINT8 index) } } -void videopkr_state::palette_init() +PALETTE_INIT_MEMBER(videopkr_state, videopkr) { const UINT8 *color_prom = memregion("proms")->base(); int j; - for (j = 0; j < machine().total_colors(); j++) + for (j = 0; j < palette.entries(); j++) { int r, g, b, tr, tg, tb, i; @@ -441,7 +441,7 @@ void videopkr_state::palette_init() tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01)); b = tb - (i * (tb / 5)); - palette_set_color(machine(), j, rgb_t(r, g, b)); + palette.set_pen_color(j, rgb_t(r, g, b)); } } @@ -450,7 +450,7 @@ PALETTE_INIT_MEMBER(videopkr_state,babypkr) const UINT8 *color_prom = memregion("proms")->base(); int j; - for (j = 0; j < machine().total_colors(); j++) + for (j = 0; j < palette.entries(); j++) { int r, g, b, tr, tg, tb, i, top; @@ -472,7 +472,7 @@ PALETTE_INIT_MEMBER(videopkr_state,babypkr) tb = 0xdf * ((color_prom[j] >> 2) & 0x01); b = top - ((tb * top) / 0x100); - palette_set_color(machine(), j, rgb_t(r, g, b)); + palette.set_pen_color(j, rgb_t(r, g, b)); } } @@ -481,7 +481,7 @@ PALETTE_INIT_MEMBER(videopkr_state,fortune1) const UINT8 *color_prom = memregion("proms")->base(); int j; - for (j = 0; j < machine().total_colors(); j++) + for (j = 0; j < palette.entries(); j++) { int r, g, b, tr, tg, tb, i, c; @@ -505,7 +505,7 @@ PALETTE_INIT_MEMBER(videopkr_state,fortune1) if ((c % 4) == 1 || (c % 4) == 2) c = ((int)(c / 4) * 4) + (3 - (c % 4)); - palette_set_color(machine(), c, rgb_t(r, g, b)); + palette.set_pen_color(c, rgb_t(r, g, b)); } } @@ -1264,7 +1264,8 @@ static MACHINE_CONFIG_START( videopkr, videopkr_state ) MCFG_SCREEN_UPDATE_DRIVER(videopkr_state, screen_update_videopkr) MCFG_GFXDECODE_ADD("gfxdecode", videopkr) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(videopkr_state, videopkr) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -1315,7 +1316,8 @@ static MACHINE_CONFIG_DERIVED( babypkr, videopkr ) MCFG_SCREEN_SIZE(32*16, 32*8) MCFG_SCREEN_VISIBLE_AREA(5*16, 31*16-1, 3*8, 29*8-1) - MCFG_PALETTE_INIT_OVERRIDE(videopkr_state,babypkr) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(videopkr_state,babypkr) MCFG_GFXDECODE_MODIFY("gfxdecode", videodad) MCFG_VIDEO_START_OVERRIDE(videopkr_state,vidadcba) @@ -1330,7 +1332,8 @@ static MACHINE_CONFIG_DERIVED( fortune1, videopkr ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_CLOCK(CPU_CLOCK_ALT) - MCFG_PALETTE_INIT_OVERRIDE(videopkr_state,fortune1) + MCFG_PALETTE_MODIFY("palette") + MCFG_PALETTE_INIT_OWNER(videopkr_state,fortune1) MACHINE_CONFIG_END /************************* diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c index c590edeab66..7f833460d85 100644 --- a/src/mame/drivers/vigilant.c +++ b/src/mame/drivers/vigilant.c @@ -490,7 +490,7 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state ) MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant) MCFG_GFXDECODE_ADD("gfxdecode", vigilant) - MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */ + MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */ /* sound hardware */ @@ -530,7 +530,7 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state ) MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant) MCFG_GFXDECODE_ADD("gfxdecode", buccanrs) - MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */ + MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */ /* sound hardware */ @@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( kikcubic, vigilant_state ) MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic) MCFG_GFXDECODE_ADD("gfxdecode", kikcubic) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c index defef0cc49c..a6eb0d3dbb6 100644 --- a/src/mame/drivers/vindictr.c +++ b/src/mame/drivers/vindictr.c @@ -191,7 +191,7 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", vindictr) - MCFG_PALETTE_LENGTH(2048*8) + MCFG_PALETTE_ADD("palette", 2048*8) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, vindictr_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, vindictr_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c index 2980f2c0bc1..b571cdbb2d2 100644 --- a/src/mame/drivers/viper.c +++ b/src/mame/drivers/viper.c @@ -2063,11 +2063,10 @@ static MACHINE_CONFIG_START( viper, viper_state ) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_SIZE(1024, 768) MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 383) - - MCFG_PALETTE_LENGTH(65536) - MCFG_SCREEN_UPDATE_DRIVER(viper_state, screen_update_viper) + MCFG_PALETTE_ADD("palette", 65536) + MCFG_TIMER_ADD_NONE("ds2430_timer2") /* sound hardware */ diff --git a/src/mame/drivers/vlc.c b/src/mame/drivers/vlc.c index 8ab405851e1..cb2aa7ff8e2 100644 --- a/src/mame/drivers/vlc.c +++ b/src/mame/drivers/vlc.c @@ -179,7 +179,7 @@ public: tilemap_t *m_bg_tilemap; virtual void video_start(); UINT32 screen_update_nevada(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - virtual void palette_init(); + DECLARE_PALETTE_INIT(nevada); DECLARE_WRITE_LINE_MEMBER(duart18_irq_handler); DECLARE_WRITE_LINE_MEMBER(duart39_irq_handler); @@ -311,7 +311,7 @@ UINT32 nevada_state::screen_update_nevada(screen_device &screen, bitmap_ind16 &b } /***************************************************************************/ -void nevada_state::palette_init() +PALETTE_INIT_MEMBER(nevada_state, nevada) { // Palette init } @@ -632,7 +632,8 @@ static MACHINE_CONFIG_START( nevada, nevada_state ) MCFG_SCREEN_UPDATE_DRIVER(nevada_state, screen_update_nevada) MCFG_GFXDECODE_ADD("gfxdecode", nevada) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(nevada_state, nevada) MCFG_MC6845_ADD("crtc", MC6845, "screen", MC6845_CLOCK, mc6845_intf) diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c index 1d78d909c4a..f0306c4556f 100644 --- a/src/mame/drivers/volfied.c +++ b/src/mame/drivers/volfied.c @@ -66,7 +66,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, volfied_state ) AM_RANGE(0x100000, 0x103fff) AM_RAM /* main */ AM_RANGE(0x200000, 0x203fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) AM_RANGE(0x400000, 0x47ffff) AM_READWRITE(volfied_video_ram_r, volfied_video_ram_w) - AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x500000, 0x503fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x600000, 0x600001) AM_WRITE(volfied_video_mask_w) AM_RANGE(0x700000, 0x700001) AM_WRITE(volfied_sprite_ctrl_w) AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(volfied_video_ctrl_r, volfied_video_ctrl_w) @@ -267,11 +267,12 @@ static MACHINE_CONFIG_START( volfied, volfied_state ) MCFG_SCREEN_UPDATE_DRIVER(volfied_state, screen_update_volfied) MCFG_GFXDECODE_ADD("gfxdecode", volfied) - MCFG_PALETTE_LENGTH(8192) - + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_PC090OJ_ADD("pc090oj", volfied_pc090oj_intf) MCFG_PC090OJ_GFXDECODE("gfxdecode") + MCFG_PC090OJ_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/vp101.c b/src/mame/drivers/vp101.c index 18b87144790..fc5e735cd20 100644 --- a/src/mame/drivers/vp101.c +++ b/src/mame/drivers/vp101.c @@ -92,7 +92,7 @@ static MACHINE_CONFIG_START( vp101, vp10x_state ) MCFG_SCREEN_UPDATE_DRIVER(vp10x_state, screen_update) MCFG_SCREEN_SIZE(320, 240) MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_PALETTE_LENGTH(32768) + MCFG_PALETTE_ADD("palette", 32768) MACHINE_CONFIG_END diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c index 30b16428740..136eb4ac6cf 100644 --- a/src/mame/drivers/vpoker.c +++ b/src/mame/drivers/vpoker.c @@ -128,7 +128,7 @@ public: DECLARE_WRITE8_MEMBER(blitter_w); DECLARE_WRITE_LINE_MEMBER(ptm_irq); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(vpoker); UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -154,7 +154,7 @@ UINT32 vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16 &b { int tile = videoram[count]; //int colour = tile>>12; - gfx->opaque(bitmap,cliprect,tile,0,0,0,x*16,y*16); + gfx->opaque(m_palette,bitmap,cliprect,tile,0,0,0,x*16,y*16); count++; } @@ -630,7 +630,7 @@ static GFXDECODE_START( vpoker ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) GFXDECODE_END -void vpoker_state::palette_init() +PALETTE_INIT_MEMBER(vpoker_state, vpoker) { int i; @@ -640,7 +640,7 @@ void vpoker_state::palette_init() color = rgb_t(pal1bit((i & 4) >> 2),pal1bit(i & 1),pal1bit((i & 2) >> 1)); - palette_set_color(machine(), i, color); + palette.set_pen_color(i, color); } } @@ -674,8 +674,8 @@ static MACHINE_CONFIG_START( vpoker, vpoker_state ) MCFG_SCREEN_UPDATE_DRIVER(vpoker_state, screen_update_vpoker) MCFG_GFXDECODE_ADD("gfxdecode", vpoker) - MCFG_PALETTE_LENGTH(8) - + MCFG_PALETTE_ADD("palette", 8) + MCFG_PALETTE_INIT_OWNER(vpoker_state, vpoker) /* 6840 PTM */ MCFG_PTM6840_ADD("6840ptm", ptm_intf) diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c index 59ace9a3d0e..b333a055d92 100644 --- a/src/mame/drivers/vroulet.c +++ b/src/mame/drivers/vroulet.c @@ -88,7 +88,7 @@ WRITE8_MEMBER(vroulet_state::vroulet_paletteram_w) { a=m_generic_paletteram_8[((i*8+j)*2)&0xff ]; b=m_generic_paletteram_8[((i*8+j)*2+1)&0xff ]; - palette_set_color_rgb(machine(),i*16+j,pal4bit(b),pal4bit(b>>4),pal4bit(a)); + m_palette->set_pen_color(i*16+j,pal4bit(b),pal4bit(b>>4),pal4bit(a)); } } } @@ -123,7 +123,7 @@ void vroulet_state::video_start() UINT32 vroulet_state::screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_gfxdecode->gfx(0)->transpen(bitmap,cliprect, 0x320, 1, 0, 0, + m_gfxdecode->gfx(0)->transpen(m_palette,bitmap,cliprect, 0x320, 1, 0, 0, m_ball[1], m_ball[0] - 12, 0); return 0; } @@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state ) MCFG_SCREEN_UPDATE_DRIVER(vroulet_state, screen_update_vroulet) MCFG_GFXDECODE_ADD("gfxdecode", vroulet) - MCFG_PALETTE_LENGTH(128*4) + MCFG_PALETTE_ADD("palette", 128*4) // sound hardware diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c index 02f22ea1390..8a52b4a7880 100644 --- a/src/mame/drivers/vsnes.c +++ b/src/mame/drivers/vsnes.c @@ -1722,9 +1722,9 @@ static MACHINE_CONFIG_START( vsnes, vsnes_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(vsnes_state, screen_update_vsnes) - MCFG_PALETTE_LENGTH(8*4*16) + MCFG_PALETTE_ADD("palette", 8*4*16) - MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsnes) + MCFG_PALETTE_INIT_OWNER(vsnes_state,vsnes) MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsnes) MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1) @@ -1787,7 +1787,9 @@ static MACHINE_CONFIG_START( vsdual, vsnes_state ) MCFG_MACHINE_START_OVERRIDE(vsnes_state,vsdual) /* video hardware */ - MCFG_PALETTE_LENGTH(2*8*4*16) + MCFG_PALETTE_ADD("palette", 2*8*4*16) + MCFG_PALETTE_INIT_OWNER(vsnes_state,vsdual) + MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("screen1", RASTER) @@ -1802,7 +1804,6 @@ static MACHINE_CONFIG_START( vsdual, vsnes_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(vsnes_state, screen_update_vsnes_bottom) - MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsdual) MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsdual) MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1) @@ -1853,9 +1854,9 @@ static MACHINE_CONFIG_START( vsnes_bootleg, vsnes_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(vsnes_state, screen_update_vsnes) - MCFG_PALETTE_LENGTH(8*4*16) + MCFG_PALETTE_ADD("palette", 8*4*16) - MCFG_PALETTE_INIT_OVERRIDE(vsnes_state,vsnes) + MCFG_PALETTE_INIT_OWNER(vsnes_state,vsnes) MCFG_VIDEO_START_OVERRIDE(vsnes_state,vsnes) MCFG_PPU2C04_ADD("ppu1", vsnes_ppu_interface_1) diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c index d198a0c4d05..276b8a52e31 100644 --- a/src/mame/drivers/vulgus.c +++ b/src/mame/drivers/vulgus.c @@ -228,8 +228,9 @@ static MACHINE_CONFIG_START( vulgus, vulgus_state ) MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update_vulgus) MCFG_GFXDECODE_ADD("gfxdecode", vulgus) - MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8) + MCFG_PALETTE_ADD("palette", 64*4+16*16+4*32*8) + MCFG_PALETTE_INIT_OWNER(vulgus_state, vulgus) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c index 493d9464ca5..cf7764a2d4b 100644 --- a/src/mame/drivers/wallc.c +++ b/src/mame/drivers/wallc.c @@ -71,7 +71,7 @@ public: DECLARE_DRIVER_INIT(sidam); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(wallc); UINT32 screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -103,7 +103,7 @@ public: ***************************************************************************/ -void wallc_state::palette_init() +PALETTE_INIT_MEMBER(wallc_state, wallc) { const UINT8 *color_prom = memregion("proms")->base(); int i; @@ -117,7 +117,7 @@ void wallc_state::palette_init() 2, resistances_rg, weights_g, 330, 0, 3, resistances_b, weights_b, 330, 655+220); - for (i = 0;i < machine().total_colors();i++) + for (i = 0;i < palette.entries();i++) { int bit0,bit1,bit7,r,g,b; @@ -137,7 +137,7 @@ void wallc_state::palette_init() bit7 = (color_prom[i] >> 7) & 0x01; b = combine_3_weights(weights_b, bit7, bit1, bit0); - palette_set_color(machine(),i,rgb_t(r,g,b)); + palette.set_pen_color(i,rgb_t(r,g,b)); } } @@ -318,8 +318,8 @@ static MACHINE_CONFIG_START( wallc, wallc_state ) MCFG_SCREEN_UPDATE_DRIVER(wallc_state, screen_update_wallc) MCFG_GFXDECODE_ADD("gfxdecode", wallc) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(wallc_state, wallc) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c index 0048690cf44..408bba1c3f0 100644 --- a/src/mame/drivers/wardner.c +++ b/src/mame/drivers/wardner.c @@ -189,7 +189,7 @@ static ADDRESS_MAP_START( main_program_map, AS_PROGRAM, 8, wardner_state ) AM_RANGE(0x8000, 0xffff) AM_READ(wardner_bank_r) /* Overlapped RAM/Banked ROM */ AM_RANGE(0x8000, 0x8fff) AM_WRITE(wardner_sprite_w) AM_SHARE("spriteram8") AM_RANGE(0x9000, 0x9fff) AM_ROM - AM_RANGE(0xa000, 0xafff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_le_w) AM_SHARE("paletteram") + AM_RANGE(0xa000, 0xafff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xb000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("rambase_c000") /* Shared RAM with Sound Z80 */ AM_RANGE(0xc800, 0xffff) AM_ROM @@ -417,7 +417,8 @@ static MACHINE_CONFIG_START( wardner, wardner_state ) MCFG_SCREEN_VBLANK_DEVICE("spriteram8", buffered_spriteram8_device, vblank_copy_rising) MCFG_GFXDECODE_ADD("gfxdecode", wardner) - MCFG_PALETTE_LENGTH(1792) + MCFG_PALETTE_ADD("palette", 1792) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_VIDEO_START_OVERRIDE(wardner_state,toaplan0) diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c index 9ef90fb296e..7a0c788de7a 100644 --- a/src/mame/drivers/warpsped.c +++ b/src/mame/drivers/warpsped.c @@ -107,7 +107,7 @@ public: TILE_GET_INFO_MEMBER(get_warpspeed_text_tile_info); TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(warpspeed); UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; @@ -291,16 +291,16 @@ static GFXDECODE_START( warpspeed ) GFXDECODE_ENTRY( "gfx2", 0, warpspeed_charlayout, 0, 1 ) GFXDECODE_END -void warpspeed_state::palette_init() +PALETTE_INIT_MEMBER(warpspeed_state, warpspeed) { // tilemaps - palette_set_color(machine(),0,rgb_t::black); /* black */ - palette_set_color(machine(),1,rgb_t::white); /* white */ + palette.set_pen_color(0,rgb_t::black); /* black */ + palette.set_pen_color(1,rgb_t::white); /* white */ // circles for ( int i = 0; i < 8; i++ ) { - palette_set_color_rgb(machine(), 2 + i, 0xff*BIT(i,0), 0xff*BIT(i,1), 0xff*BIT(i,2)); + palette.set_pen_color(2 + i, 0xff*BIT(i,0), 0xff*BIT(i,1), 0xff*BIT(i,2)); } } @@ -322,7 +322,8 @@ static MACHINE_CONFIG_START( warpspeed, warpspeed_state ) MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update_warpspeed) MCFG_GFXDECODE_ADD("gfxdecode", warpspeed) - MCFG_PALETTE_LENGTH(2+8) + MCFG_PALETTE_ADD("palette", 2+8) + MCFG_PALETTE_INIT_OWNER(warpspeed_state, warpspeed) MACHINE_CONFIG_END ROM_START( warpsped ) diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c index b53209f6cab..6aaff3307ad 100644 --- a/src/mame/drivers/warpwarp.c +++ b/src/mame/drivers/warpwarp.c @@ -734,9 +734,9 @@ static MACHINE_CONFIG_START( geebee, warpwarp_state ) MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee) MCFG_GFXDECODE_ADD("gfxdecode", 1k) - MCFG_PALETTE_LENGTH(4*2) + MCFG_PALETTE_ADD("palette", 4*2) - MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,geebee) + MCFG_PALETTE_INIT_OWNER(warpwarp_state,geebee) MCFG_VIDEO_START_OVERRIDE(warpwarp_state,geebee) /* sound hardware */ @@ -750,9 +750,10 @@ static MACHINE_CONFIG_DERIVED( navarone, geebee ) /* basic machine hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", 2k) - MCFG_PALETTE_LENGTH(2*2) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 2*2) - MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,navarone) + MCFG_PALETTE_INIT_OWNER(warpwarp_state,navarone) MCFG_VIDEO_START_OVERRIDE(warpwarp_state,navarone) MACHINE_CONFIG_END @@ -769,9 +770,9 @@ static MACHINE_CONFIG_START( bombbee, warpwarp_state ) MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee) MCFG_GFXDECODE_ADD("gfxdecode", color) - MCFG_PALETTE_LENGTH(2*256+1) - - MCFG_PALETTE_INIT_OVERRIDE(warpwarp_state,warpwarp) + + MCFG_PALETTE_ADD("palette", 2*256+1) + MCFG_PALETTE_INIT_OWNER(warpwarp_state,warpwarp) MCFG_VIDEO_START_OVERRIDE(warpwarp_state,warpwarp) /* sound hardware */ diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index 40e8607980f..1a8317abe02 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", warriorb) - MCFG_PALETTE_LENGTH(4096*2) + MCFG_PALETTE_ADD("palette", 4096*2) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -543,7 +543,9 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state ) MCFG_TC0100SCN_ADD("tc0100scn_2", darius2d_tc0100scn_intf_r) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2d_tc0110pcr_intf_l) + MCFG_TC0110PCR_PALETTE("palette") MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2d_tc0110pcr_intf_r) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -585,7 +587,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", warriorb) - MCFG_PALETTE_LENGTH(4096*2) + MCFG_PALETTE_ADD("palette", 4096*2) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("lscreen", RASTER) @@ -608,7 +610,9 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state ) MCFG_TC0100SCN_ADD("tc0100scn_2", warriorb_tc0100scn_intf_r) MCFG_TC0100SCN_GFXDECODE("gfxdecode") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2d_tc0110pcr_intf_l) + MCFG_TC0110PCR_PALETTE("palette") MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2d_tc0110pcr_intf_r) + MCFG_TC0110PCR_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c index 095cf1fb315..944354cb50f 100644 --- a/src/mame/drivers/wc90.c +++ b/src/mame/drivers/wc90.c @@ -144,7 +144,7 @@ static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state ) AM_RANGE(0xc000, 0xcfff) AM_RAM AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xd800, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2") AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1") AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w) @@ -326,7 +326,8 @@ static MACHINE_CONFIG_START( wc90, wc90_state ) MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90) MCFG_GFXDECODE_ADD("gfxdecode", wc90) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c index 533097ec70a..fc222884be6 100644 --- a/src/mame/drivers/wc90b.c +++ b/src/mame/drivers/wc90b.c @@ -164,7 +164,7 @@ static ADDRESS_MAP_START( wc90b_map2, AS_PROGRAM, 8, wc90b_state ) AM_RANGE(0xc000, 0xcfff) AM_RAM AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xd800, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_be_w) AM_SHARE("paletteram") + AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xe800, 0xefff) AM_ROM AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2") AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1") @@ -378,8 +378,8 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state ) MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update_wc90b) MCFG_GFXDECODE_ADD("gfxdecode", wc90b) - MCFG_PALETTE_LENGTH(1024) - + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c index fba161d4fea..bd094b02c76 100644 --- a/src/mame/drivers/wecleman.c +++ b/src/mame/drivers/wecleman.c @@ -1066,7 +1066,7 @@ static MACHINE_CONFIG_START( wecleman, wecleman_state ) MCFG_GFXDECODE_ADD("gfxdecode", wecleman) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) MCFG_VIDEO_START_OVERRIDE(wecleman_state,wecleman) @@ -1117,7 +1117,7 @@ MACHINE_RESET_MEMBER(wecleman_state,hotchase) for(i=0;i<0x2000/2;i++) { m_generic_paletteram_16[i] = 0xffff; - palette_set_color_rgb(machine(),i,0xff,0xff,0xff); + m_palette->set_pen_color(i,0xff,0xff,0xff); } } @@ -1149,15 +1149,17 @@ static MACHINE_CONFIG_START( hotchase, wecleman_state ) MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_hotchase) MCFG_GFXDECODE_ADD("gfxdecode", hotchase) - MCFG_PALETTE_LENGTH(2048*2) + MCFG_PALETTE_ADD("palette", 2048*2) MCFG_VIDEO_START_OVERRIDE(wecleman_state,hotchase) MCFG_K051316_ADD("k051316_1", hotchase_k051316_intf_0) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") MCFG_K051316_ADD("k051316_2", hotchase_k051316_intf_1) MCFG_K051316_GFXDECODE("gfxdecode") + MCFG_K051316_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index 9f42b9bb327..7b56b94caba 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -356,7 +356,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, welltris_state ) AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work */ AM_RANGE(0xffc000, 0xffc3ff) AM_RAM AM_SHARE("spriteram") /* Sprite */ AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(welltris_charvideoram_w) AM_SHARE("charvideoram") /* Char */ - AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("P1") /* Bottom Controls */ AM_RANGE(0xfff000, 0xfff001) AM_WRITE(welltris_palette_bank_w) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2") /* Top Controls */ @@ -714,12 +714,14 @@ static MACHINE_CONFIG_START( welltris, welltris_state ) MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update_welltris) MCFG_GFXDECODE_ADD("gfxdecode", welltris) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0) MCFG_VSYSTEM_SPR2_SET_GFXREGION(1) MCFG_VSYSTEM_SPR2_SET_PRITYPE(-1) MCFG_VSYSTEM_SPR2_GFXDECODE("gfxdecode") + MCFG_VSYSTEM_SPR2_PALETTE("palette") /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c index 5c2f15201f5..89eb23f3d16 100644 --- a/src/mame/drivers/wgp.c +++ b/src/mame/drivers/wgp.c @@ -644,7 +644,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wgp_state ) AM_RANGE(0x502000, 0x517fff) AM_READWRITE(wgp_pivram_word_r, wgp_pivram_word_w) AM_SHARE("pivram") /* piv tilemaps */ AM_RANGE(0x520000, 0x52001f) AM_READWRITE(wgp_piv_ctrl_word_r, wgp_piv_ctrl_word_w) AM_SHARE("piv_ctrlram") AM_RANGE(0x600000, 0x600003) AM_WRITE(rotate_port_w) /* rotation control ? */ - AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 16 /* LAN areas not mapped... */, wgp_state ) @@ -990,8 +990,8 @@ static MACHINE_CONFIG_START( wgp, wgp_state ) MCFG_SCREEN_UPDATE_DRIVER(wgp_state, screen_update_wgp) MCFG_GFXDECODE_ADD("gfxdecode", wgp) - MCFG_PALETTE_LENGTH(4096) - + MCFG_PALETTE_ADD("palette", 4096) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx) MCFG_TC0100SCN_ADD("tc0100scn", wgp_tc0100scn_intf) MCFG_TC0100SCN_GFXDECODE("gfxdecode") diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c index 4d502129003..906b5357b02 100644 --- a/src/mame/drivers/wheelfir.c +++ b/src/mame/drivers/wheelfir.c @@ -239,7 +239,7 @@ public: INT32 *m_zoom_table; UINT16 *m_blitter_data; - UINT8 *m_palette; + UINT8 *m_palette_ptr; INT32 m_palpos; INT32 m_current_scanline; @@ -616,16 +616,16 @@ WRITE16_MEMBER(wheelfir_state::pal_reset_pos_w) WRITE16_MEMBER(wheelfir_state::pal_data_w) { int color=m_palpos/3; - m_palette[m_palpos] = data & 0xff; + m_palette_ptr[m_palpos] = data & 0xff; ++m_palpos; m_palpos %=NUM_COLORS*3; { - int r = m_palette[color*3]; - int g = m_palette[color*3+1]; - int b = m_palette[color*3+2]; - palette_set_color(machine(), color, rgb_t(r,g,b)); + int r = m_palette_ptr[color*3]; + int g = m_palette_ptr[color*3+1]; + int b = m_palette_ptr[color*3+2]; + m_palette->set_pen_color(color, rgb_t(r,g,b)); } } @@ -767,7 +767,7 @@ void wheelfir_state::machine_start() m_blitter_data = auto_alloc_array(machine(), UINT16, 16); m_scanlines = reinterpret_cast<scroll_info*>(auto_alloc_array(machine(), UINT8, sizeof(scroll_info)*(NUM_SCANLINES+NUM_VBLANK_LINES))); - m_palette=auto_alloc_array(machine(), UINT8, NUM_COLORS*3); + m_palette_ptr = auto_alloc_array(machine(), UINT8, NUM_COLORS*3); for(int i=0;i<(ZOOM_TABLE_SIZE);++i) @@ -816,7 +816,7 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state ) MCFG_SCREEN_UPDATE_DRIVER(wheelfir_state, screen_update_wheelfir) MCFG_SCREEN_VBLANK_DRIVER(wheelfir_state, screen_eof_wheelfir) - MCFG_PALETTE_LENGTH(NUM_COLORS) + MCFG_PALETTE_ADD("palette", NUM_COLORS) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") diff --git a/src/mame/drivers/wildpkr.c b/src/mame/drivers/wildpkr.c index 458f98b27e8..433583f1f0f 100644 --- a/src/mame/drivers/wildpkr.c +++ b/src/mame/drivers/wildpkr.c @@ -176,7 +176,7 @@ public: DECLARE_DRIVER_INIT(wildpkr); virtual void machine_start(); virtual void video_start(); - virtual void palette_init(); + DECLARE_PALETTE_INIT(wildpkr); UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; }; @@ -195,7 +195,7 @@ UINT32 wildpkr_state::screen_update_wildpkr(screen_device &screen, bitmap_ind16 return 0; } -void wildpkr_state::palette_init() +PALETTE_INIT_MEMBER(wildpkr_state, wildpkr) { } @@ -289,10 +289,10 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state ) MCFG_SCREEN_UPDATE_DRIVER(wildpkr_state, screen_update_wildpkr) // MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf) - MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) - - MCFG_PALETTE_LENGTH(256) + MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map, "palette") + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(wildpkr_state, wildpkr) MACHINE_CONFIG_END diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c index fa9c24aa7a2..24ef0b51b45 100644 --- a/src/mame/drivers/williams.c +++ b/src/mame/drivers/williams.c @@ -1673,7 +1673,7 @@ static MACHINE_CONFIG_START( williams2, williams_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE) - MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_ADD("palette", 1024) MCFG_GFXDECODE_ADD("gfxdecode", williams2) MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c index a5fe0084bb4..746f9a05816 100644 --- a/src/mame/drivers/wink.c +++ b/src/mame/drivers/wink.c @@ -155,7 +155,7 @@ WRITE8_MEMBER(wink_state::prot_w) static ADDRESS_MAP_START( wink_io, AS_IO, 8, wink_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x1f) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_byte_le_w) AM_SHARE("paletteram") //0x10-0x1f is likely to be something else + AM_RANGE(0x00, 0x1f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") //0x10-0x1f is likely to be something else // AM_RANGE(0x20, 0x20) AM_WRITENOP //??? seems unused.. AM_RANGE(0x21, 0x21) AM_WRITE(player_mux_w) //??? no mux on the pcb. AM_RANGE(0x22, 0x22) AM_WRITE(tile_banking_w) @@ -369,7 +369,8 @@ static MACHINE_CONFIG_START( wink, wink_state ) MCFG_SCREEN_UPDATE_DRIVER(wink_state, screen_update_wink) MCFG_GFXDECODE_ADD("gfxdecode", wink) - MCFG_PALETTE_LENGTH(16) + MCFG_PALETTE_ADD("palette", 16) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c index bb54f746aa5..cff662ad107 100644 --- a/src/mame/drivers/wiping.c +++ b/src/mame/drivers/wiping.c @@ -294,8 +294,8 @@ static MACHINE_CONFIG_START( wiping, wiping_state ) MCFG_SCREEN_UPDATE_DRIVER(wiping_state, screen_update_wiping) MCFG_GFXDECODE_ADD("gfxdecode", wiping) - MCFG_PALETTE_LENGTH(64*4+64*4) - + MCFG_PALETTE_ADD("palette", 64*4+64*4) + MCFG_PALETTE_INIT_OWNER(wiping_state, wiping) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index 17ef2db7bf3..c900cc1d1f7 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -518,8 +518,8 @@ static ADDRESS_MAP_START( map_main, AS_PROGRAM, 8, witch_state ) AM_RANGE(0xc800, 0xcbff) AM_READWRITE(gfx1_vram_r, gfx1_vram_w) AM_SHARE("gfx1_vram") AM_RANGE(0xcc00, 0xcfff) AM_READWRITE(gfx1_cram_r, gfx1_cram_w) AM_SHARE("gfx1_cram") AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("sprite_ram") - AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0xe800, 0xefff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_SHARE("share1") AM_RANGE(0xf100, 0xf17f) AM_RAM AM_SHARE("nvram") AM_RANGE(0xf180, 0xffff) AM_RAM AM_SHARE("share2") @@ -784,22 +784,22 @@ void witch_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) color = flags & 0x0f; - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, tileno, color, flipx, flipy, sx+8*flipx,sy+8*flipy,0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, tileno+1, color, flipx, flipy, sx+8-8*flipx,sy+8*flipy,0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, tileno+2, color, flipx, flipy, sx+8*flipx,sy+8-8*flipy,0); - m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, + m_gfxdecode->gfx(1)->transpen(m_palette,bitmap,cliprect, tileno+3, color, flipx, flipy, sx+8-8*flipx,sy+8-8*flipy,0); @@ -855,8 +855,8 @@ static MACHINE_CONFIG_START( witch, witch_state ) MCFG_SCREEN_UPDATE_DRIVER(witch_state, screen_update_witch) MCFG_GFXDECODE_ADD("gfxdecode", witch) - MCFG_PALETTE_LENGTH(0x800) - + MCFG_PALETTE_ADD("palette", 0x800) + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c index 77bfe6f109f..fb72dff4202 100644 --- a/src/mame/drivers/wiz.c +++ b/src/mame/drivers/wiz.c @@ -730,7 +730,8 @@ static MACHINE_CONFIG_START( wiz, wiz_state ) MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_wiz) MCFG_GFXDECODE_ADD("gfxdecode", wiz) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(wiz_state, wiz) /* sound hardware */ diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index 35c1edee69d..a609c332b16 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -314,7 +314,8 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state ) MCFG_SCREEN_VBLANK_DRIVER(wolfpack_state, screen_eof_wolfpack) MCFG_GFXDECODE_ADD("gfxdecode", wolfpack) - MCFG_PALETTE_LENGTH(12) + MCFG_PALETTE_ADD("palette", 12) + MCFG_PALETTE_INIT_OWNER(wolfpack_state, wolfpack) /* sound hardware */ MCFG_SOUND_ADD("speech", S14001A, 20000) /* RC Clock (C=100pf, R=470K-670K ohms, adjustable) ranging from 14925.37313hz to 21276.59574hz, likely factory set to 20000hz since anything below 19500 is too slow */ diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c index 803f196add9..6c20f5b6287 100644 --- a/src/mame/drivers/wrally.c +++ b/src/mame/drivers/wrally.c @@ -106,7 +106,7 @@ static ADDRESS_MAP_START( wrally_map, AS_PROGRAM, 16, wrally_state ) AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(wrally_vram_w) AM_SHARE("videoram") /* encrypted Video RAM */ AM_RANGE(0x108000, 0x108007) AM_RAM AM_SHARE("vregs") /* Video Registers */ AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP /* CLR INT Video */ - AM_RANGE(0x200000, 0x203fff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_word_w) AM_SHARE("paletteram") /* Palette */ + AM_RANGE(0x200000, 0x203fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */ AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */ AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW") AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1_P2") @@ -258,7 +258,8 @@ static MACHINE_CONFIG_START( wrally, wrally_state ) MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update_wrally) MCFG_GFXDECODE_ADD("gfxdecode", wrally) - MCFG_PALETTE_LENGTH(1024*8) + MCFG_PALETTE_ADD("palette", 1024*8) + MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG) /* sound hardware */ diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c index 8f6092f9185..044cdf4912b 100644 --- a/src/mame/drivers/wwfsstar.c +++ b/src/mame/drivers/wwfsstar.c @@ -173,7 +173,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfsstar_state ) AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(wwfsstar_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram */ AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE(wwfsstar_bg0_videoram_w) AM_SHARE("bg0_videoram") /* BG0 Ram */ AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */ - AM_RANGE(0x140000, 0x140fff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x140000, 0x140fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x180000, 0x180003) AM_WRITE(wwfsstar_irqack_w) AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSW1") AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW2") @@ -427,8 +427,8 @@ static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state ) MCFG_SCREEN_UPDATE_DRIVER(wwfsstar_state, screen_update_wwfsstar) MCFG_GFXDECODE_ADD("gfxdecode", wwfsstar) - MCFG_PALETTE_LENGTH(384) - + MCFG_PALETTE_ADD("palette", 384) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index 81fb27a3fe5..17c934521ec 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -405,8 +405,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, xain_state ) AM_RANGE(0x3a0d, 0x3a0d) AM_WRITE(xain_flipscreen_w) AM_RANGE(0x3a0e, 0x3a0e) AM_WRITE(xain_68705_w) AM_RANGE(0x3a0f, 0x3a0f) AM_WRITE(xainCPUA_bankswitch_w) - AM_RANGE(0x3c00, 0x3dff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram") - AM_RANGE(0x3e00, 0x3fff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2") + AM_RANGE(0x3c00, 0x3dff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x3e00, 0x3fff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette_ext") AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -595,8 +595,8 @@ static MACHINE_CONFIG_START( xsleena, xain_state ) MCFG_SCREEN_UPDATE_DRIVER(xain_state, screen_update_xain) MCFG_GFXDECODE_ADD("gfxdecode", xain) - MCFG_PALETTE_LENGTH(512) - + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index a48737e2c4f..68f084b5417 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -395,7 +395,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xexex_state ) AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) AM_RANGE(0x190000, 0x191fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) // Passthrough to tile roms AM_RANGE(0x1a0000, 0x1a1fff) AM_DEVREAD("k053250", k053250_device, rom_r) - AM_RANGE(0x1b0000, 0x1b1fff) AM_RAM_WRITE(paletteram_xrgb_word_be_w) AM_SHARE("paletteram") + AM_RANGE(0x1b0000, 0x1b1fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") #if XE_DEBUG AM_RANGE(0x0c0000, 0x0c003f) AM_DEVREAD("k056832", k056832_device, word_r) @@ -556,7 +556,7 @@ static MACHINE_CONFIG_START( xexex, xexex_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK) + MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(XTAL_32MHz/4/512/288) @@ -566,13 +566,18 @@ static MACHINE_CONFIG_START( xexex, xexex_state ) MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 0, 0+256-1) MCFG_SCREEN_UPDATE_DRIVER(xexex_state, screen_update_xexex) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_FORMAT(XRGB) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K056832_ADD("k056832", xexex_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K053246_ADD("k053246", xexex_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053250_ADD("k053250", "screen", -5, -16) MCFG_K053251_ADD("k053251") MCFG_K053252_ADD("k053252", XTAL_32MHz/4, xexex_k053252_intf) diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 06bebdc71e8..583750da87f 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -98,7 +98,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xmen_state ) AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w) AM_RANGE(0x101000, 0x101fff) AM_RAM - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w) AM_RANGE(0x108020, 0x108027) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w) @@ -133,7 +133,7 @@ static ADDRESS_MAP_START( 6p_main_map, AS_PROGRAM, 16, xmen_state ) AM_RANGE(0x101000, 0x101fff) AM_RAM AM_RANGE(0x102000, 0x102fff) AM_RAM AM_SHARE("spriteramright") /* sprites (screen 2) */ AM_RANGE(0x103000, 0x103fff) AM_RAM /* 6p - a buffer? */ - AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram") + AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w) AM_RANGE(0x108020, 0x108027) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) /* sprites */ AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w) @@ -352,21 +352,23 @@ static MACHINE_CONFIG_START( xmen, xmen_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* correct, same issue of TMNT2 */ MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", xmen_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053246_ADD("k053246", xmen_k053246_intf) MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ @@ -404,8 +406,9 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state ) MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom") /* video hardware */ - MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) MCFG_DEFAULT_LAYOUT(layout_dualhsxs) MCFG_SCREEN_ADD("screen", RASTER) @@ -428,9 +431,11 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state ) MCFG_GFXDECODE_ADD("gfxdecode", empty) MCFG_K052109_ADD("k052109", xmen_k052109_intf) MCFG_K052109_GFXDECODE("gfxdecode") + MCFG_K052109_PALETTE("palette") MCFG_K053246_ADD("k053246", xmen6p_k053246_intf) MCFG_K053246_SET_SCREEN("screen") MCFG_K053246_GFXDECODE("gfxdecode") + MCFG_K053246_PALETTE("palette") MCFG_K053251_ADD("k053251") /* sound hardware */ diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c index e6c007875d6..666370f9f8c 100644 --- a/src/mame/drivers/xorworld.c +++ b/src/mame/drivers/xorworld.c @@ -185,7 +185,8 @@ static MACHINE_CONFIG_START( xorworld, xorworld_state ) MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update_xorworld) MCFG_GFXDECODE_ADD("gfxdecode", xorworld) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(xorworld_state, xorworld) // sound hardware diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c index cf57ecad766..2d0a537a1cb 100644 --- a/src/mame/drivers/xxmissio.c +++ b/src/mame/drivers/xxmissio.c @@ -296,7 +296,8 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state ) MCFG_SCREEN_UPDATE_DRIVER(xxmissio_state, screen_update_xxmissio) MCFG_GFXDECODE_ADD("gfxdecode", xxmissio) - MCFG_PALETTE_LENGTH(768) + MCFG_PALETTE_ADD("palette", 768) + MCFG_PALETTE_FORMAT(BBGGRRII) /* sound hardware */ diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c index 339f2139715..26b3d5a9315 100644 --- a/src/mame/drivers/xybots.c +++ b/src/mame/drivers/xybots.c @@ -77,7 +77,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xybots_state ) AM_RANGE(0xff9000, 0xffadff) AM_MIRROR(0x7f8000) AM_RAM AM_RANGE(0xffae00, 0xffafff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob") AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") - AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram") + AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) AM_RANGE(0xffe100, 0xffe1ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100") @@ -191,7 +191,9 @@ static MACHINE_CONFIG_START( xybots, xybots_state ) /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) MCFG_GFXDECODE_ADD("gfxdecode", xybots) - MCFG_PALETTE_LENGTH(1024) + + MCFG_PALETTE_ADD("palette", 1024) + MCFG_PALETTE_FORMAT(IIIIRRRRGGGGBBBB) MCFG_TILEMAP_ADD_STANDARD("playfield", 2, xybots_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 64,32) MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", 2, xybots_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c index 8e767a3b2a5..e5208b32da4 100644 --- a/src/mame/drivers/xyonix.c +++ b/src/mame/drivers/xyonix.c @@ -229,8 +229,8 @@ static MACHINE_CONFIG_START( xyonix, xyonix_state ) MCFG_SCREEN_UPDATE_DRIVER(xyonix_state, screen_update_xyonix) MCFG_GFXDECODE_ADD("gfxdecode", xyonix) - MCFG_PALETTE_LENGTH(256) - + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(xyonix_state, xyonix) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c index 0448d2917eb..46f64f3c368 100644 --- a/src/mame/drivers/yiear.c +++ b/src/mame/drivers/yiear.c @@ -284,8 +284,8 @@ static MACHINE_CONFIG_START( yiear, yiear_state ) MCFG_SCREEN_UPDATE_DRIVER(yiear_state, screen_update_yiear) MCFG_GFXDECODE_ADD("gfxdecode", yiear) - MCFG_PALETTE_LENGTH(32) - + MCFG_PALETTE_ADD("palette", 32) + MCFG_PALETTE_INIT_OWNER(yiear_state, yiear) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c index c2024784b51..e72497f0dc7 100644 --- a/src/mame/drivers/yunsun16.c +++ b/src/mame/drivers/yunsun16.c @@ -129,7 +129,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, yunsun16_state ) AM_RANGE(0x800180, 0x800181) AM_WRITE(yunsun16_sound_bank_w) // Sound AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound AM_RANGE(0x8001fe, 0x8001ff) AM_WRITENOP // ? 0 (during int) - AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette + AM_RANGE(0x900000, 0x903fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // Palette AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(yunsun16_vram_1_w) AM_SHARE("vram_1") // Layer 1 AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(yunsun16_vram_0_w) AM_SHARE("vram_0") // Layer 0 AM_RANGE(0x910000, 0x910fff) AM_RAM AM_SHARE("spriteram") // Sprites @@ -593,7 +593,8 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state ) MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16) MCFG_GFXDECODE_ADD("gfxdecode", yunsun16) - MCFG_PALETTE_LENGTH(8192) + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ @@ -629,8 +630,8 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state ) MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16) MCFG_GFXDECODE_ADD("gfxdecode", yunsun16) - MCFG_PALETTE_LENGTH(8192) - + MCFG_PALETTE_ADD("palette", 8192) + MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c index 24827210156..a494da7c9f0 100644 --- a/src/mame/drivers/yunsung8.c +++ b/src/mame/drivers/yunsung8.c @@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state ) MCFG_SCREEN_UPDATE_DRIVER(yunsung8_state, screen_update_yunsung8) MCFG_GFXDECODE_ADD("gfxdecode", yunsung8) - MCFG_PALETTE_LENGTH(2048) + MCFG_PALETTE_ADD("palette", 2048) /* sound hardware */ diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c index a81670acb99..6d983adf7e0 100644 --- a/src/mame/drivers/zac2650.c +++ b/src/mame/drivers/zac2650.c @@ -185,12 +185,12 @@ static INPUT_PORTS_START( dodgem ) INPUT_PORTS_END -void zac2650_state::palette_init() +PALETTE_INIT_MEMBER(zac2650_state, zac2650) { - palette_set_color(machine(),0,rgb_t::black); - palette_set_color(machine(),1,rgb_t::white); - 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::white); + palette.set_pen_color(2,rgb_t::black); + palette.set_pen_color(3,rgb_t::black); } /************************************************************************************************ @@ -251,7 +251,8 @@ static MACHINE_CONFIG_START( tinvader, zac2650_state ) MCFG_SCREEN_UPDATE_DRIVER(zac2650_state, screen_update_tinvader) MCFG_GFXDECODE_ADD("gfxdecode", tinvader) - MCFG_PALETTE_LENGTH(4) + MCFG_PALETTE_ADD("palette", 4) + MCFG_PALETTE_INIT_OWNER(zac2650_state, zac2650) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c index eb994c1ec46..5f3807c37af 100644 --- a/src/mame/drivers/zaccaria.c +++ b/src/mame/drivers/zaccaria.c @@ -575,8 +575,8 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state ) MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria) MCFG_GFXDECODE_ADD("gfxdecode", zaccaria) - MCFG_PALETTE_LENGTH(32*8+32*8) - + MCFG_PALETTE_ADD("palette", 32*8+32*8) + MCFG_PALETTE_INIT_OWNER(zaccaria_state, zaccaria) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c index cfb16cc5a11..75ff144a014 100644 --- a/src/mame/drivers/zaxxon.c +++ b/src/mame/drivers/zaxxon.c @@ -946,7 +946,8 @@ static MACHINE_CONFIG_START( root, zaxxon_state ) /* video hardware */ MCFG_GFXDECODE_ADD("gfxdecode", zaxxon) - MCFG_PALETTE_LENGTH(256) + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_INIT_OWNER(zaxxon_state, zaxxon) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) @@ -1006,7 +1007,10 @@ static MACHINE_CONFIG_DERIVED( congo, root ) MCFG_CPU_PERIODIC_INT_DRIVER(zaxxon_state, irq0_line_hold, (double)SOUND_CLOCK/16/16/16/4) /* video hardware */ - MCFG_PALETTE_LENGTH(512) + MCFG_DEVICE_REMOVE("palette") + MCFG_PALETTE_ADD("palette", 512) + MCFG_PALETTE_INIT_OWNER(zaxxon_state, zaxxon) + MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_congo) diff --git a/src/mame/drivers/zerozone.c b/src/mame/drivers/zerozone.c index e1a9fdc3cc9..76dba098e1d 100644 --- a/src/mame/drivers/zerozone.c +++ b/src/mame/drivers/zerozone.c @@ -52,7 +52,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, zerozone_state ) AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSWB") AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSWA") AM_RANGE(0x084000, 0x084001) AM_WRITE(sound_w) - AM_RANGE(0x088000, 0x0881ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x088000, 0x0881ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x098000, 0x098001) AM_RAM /* Watchdog? */ AM_RANGE(0x09ce00, 0x09ffff) AM_RAM_WRITE(tilemap_w) AM_SHARE("videoram") AM_RANGE(0x0b4000, 0x0b4001) AM_WRITE(tilebank_w) @@ -185,7 +185,9 @@ static MACHINE_CONFIG_START( zerozone, zerozone_state ) MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 2*8, 30*8-1) MCFG_GFXDECODE_ADD("gfxdecode", zerozone) - MCFG_PALETTE_LENGTH(256) + + MCFG_PALETTE_ADD("palette", 256) + MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c index 7a54b8cd91f..eb745e38fde 100644 --- a/src/mame/drivers/zodiack.c +++ b/src/mame/drivers/zodiack.c @@ -575,9 +575,9 @@ static MACHINE_CONFIG_START( zodiack, zodiack_state ) MCFG_SCREEN_UPDATE_DRIVER(zodiack_state, screen_update) MCFG_GFXDECODE_ADD("gfxdecode", zodiack) - MCFG_PALETTE_LENGTH(4*8+2*8+2*1) + MCFG_PALETTE_ADD("palette", 4*8+2*8+2*1) - MCFG_PALETTE_INIT_OVERRIDE(zodiack_state,zodiack) + MCFG_PALETTE_INIT_OWNER(zodiack_state,zodiack) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c index cd8bf9d0cda..b861c8c18e2 100644 --- a/src/mame/drivers/zr107.c +++ b/src/mame/drivers/zr107.c @@ -246,7 +246,7 @@ VIDEO_START_MEMBER(zr107_state,jetwave) UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); m_k001604->draw_back_layer(bitmap, cliprect); @@ -268,8 +268,8 @@ WRITE32_MEMBER(zr107_state::paletteram32_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; - palette_set_color_rgb(machine(), (offset * 2) + 0, pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16)); - palette_set_color_rgb(machine(), (offset * 2) + 1, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); + m_palette->set_pen_color((offset * 2) + 0, pal5bit(data >> 26), pal5bit(data >> 21), pal5bit(data >> 16)); + m_palette->set_pen_color((offset * 2) + 1, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } #define NUM_LAYERS 2 @@ -296,7 +296,7 @@ VIDEO_START_MEMBER(zr107_state,zr107) UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - bitmap.fill(machine().pens[0], cliprect); + bitmap.fill(m_palette->pen(0), cliprect); m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); K001005_draw(bitmap, cliprect); @@ -459,7 +459,7 @@ WRITE32_MEMBER(zr107_state::jetwave_palette_w) { COMBINE_DATA(&m_generic_paletteram_32[offset]); data = m_generic_paletteram_32[offset]; - palette_set_color_rgb(machine(), offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); + m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); } static ADDRESS_MAP_START( jetwave_map, AS_PROGRAM, 32, zr107_state ) @@ -769,7 +769,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_zr107) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_VIDEO_START_OVERRIDE(zr107_state,zr107) @@ -777,6 +777,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state ) MCFG_K056832_ADD("k056832", zr107_k056832_intf) MCFG_K056832_GFXDECODE("gfxdecode") + MCFG_K056832_PALETTE("palette") MCFG_K056800_ADD("k056800", XTAL_18_432MHz) MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_1)) @@ -832,7 +833,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state ) MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_jetwave) - MCFG_PALETTE_LENGTH(65536) + MCFG_PALETTE_ADD("palette", 65536) MCFG_VIDEO_START_OVERRIDE(zr107_state,jetwave) @@ -840,6 +841,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state ) MCFG_K001604_ADD("k001604", jetwave_k001604_intf) MCFG_K001604_GFXDECODE("gfxdecode") + MCFG_K001604_PALETTE("palette") MCFG_K056800_ADD("k056800", XTAL_18_432MHz) MCFG_K056800_INT_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_1)) |