diff options
author | Olivier Galibert <galibert@pobox.com> | 2017-05-28 11:11:19 +0200 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2017-05-28 22:04:01 +0200 |
commit | 53feb420a4d19327a86a4abbd4c7c83fa8152e0f (patch) | |
tree | 10102d5c18901dbb4f11e9ba2ae4bba77a1d5937 /src/mame | |
parent | 8ad55eced85d9d31c21a416b044e435c74242756 (diff) |
drawgfx: Make the palette optional [O. Galibert]
device_gfx_interface does two things:
- go from a possibly weird rom layout to a one-byte-per-pixel tiled layout
- draw the tiles so created
The second part requires a palette, but the first doesn't. And
low-level emulations of individual graphic chips (konami tilemap or
sprite generators for instance) are not supposed to care about the
palette. They just output bits which are partly indexes into
palettes, and partly not, and in any case become pen ids only much
further in the rendering chain. But they need access to the decoding
step, because one-byte-per-pixel is real nice.. So now such a device,
which inherits from device_gfx_interface, can call
set_palette_disable(true) and no palette tag will be required.
Calling the draw functions will segfault though.
As a side effect, the gfx_element constructor now takes a palette
pointer instead of a reference, since it's now optional.
Diffstat (limited to 'src/mame')
32 files changed, 44 insertions, 44 deletions
diff --git a/src/mame/drivers/casloopy.cpp b/src/mame/drivers/casloopy.cpp index f7e57cc1d2b..8b22280df7f 100644 --- a/src/mame/drivers/casloopy.cpp +++ b/src/mame/drivers/casloopy.cpp @@ -237,8 +237,8 @@ void casloopy_state::video_start() for(int i=0;i<0x10000;i++) m_vram[i] = i & 0xff; - m_gfxdecode->set_gfx(m_gfx_index, std::make_unique<gfx_element>(*m_palette, casloopy_4bpp_layout, m_vram.get(), 0, 0x10, 0)); - m_gfxdecode->set_gfx(m_gfx_index+1, std::make_unique<gfx_element>(*m_palette, casloopy_8bpp_layout, m_vram.get(), 0, 1, 0)); + m_gfxdecode->set_gfx(m_gfx_index, std::make_unique<gfx_element>(m_palette, casloopy_4bpp_layout, m_vram.get(), 0, 0x10, 0)); + m_gfxdecode->set_gfx(m_gfx_index+1, std::make_unique<gfx_element>(m_palette, casloopy_8bpp_layout, m_vram.get(), 0, 1, 0)); } uint32_t casloopy_state::screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/drivers/coolridr.cpp b/src/mame/drivers/coolridr.cpp index 28b18846103..37bbc985498 100644 --- a/src/mame/drivers/coolridr.cpp +++ b/src/mame/drivers/coolridr.cpp @@ -570,7 +570,7 @@ void coolridr_state::video_start() m_screen->register_screen_bitmap(m_screen1_bitmap); m_screen->register_screen_bitmap(m_screen2_bitmap); - m_gfxdecode->set_gfx(m_gfx_index, std::make_unique<gfx_element>(*m_palette, h1_tile_layout, m_h1_pcg.get(), 0, 8, 0)); + m_gfxdecode->set_gfx(m_gfx_index, std::make_unique<gfx_element>(m_palette, h1_tile_layout, m_h1_pcg.get(), 0, 8, 0)); } /* diff --git a/src/mame/drivers/cps3.cpp b/src/mame/drivers/cps3.cpp index 18727b38b81..a27ddb555f1 100644 --- a/src/mame/drivers/cps3.cpp +++ b/src/mame/drivers/cps3.cpp @@ -912,12 +912,12 @@ void cps3_state::video_start() save_pointer(NAME(m_char_ram.get()), 0x800000 /4); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(*m_palette, cps3_tiles8x8_layout, (uint8_t *)m_ss_ram.get(), 0, m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, cps3_tiles8x8_layout, (uint8_t *)m_ss_ram.get(), 0, m_palette->entries() / 16, 0)); //decode_ssram(); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(*m_palette, cps3_tiles16x16_layout, (uint8_t *)m_char_ram.get(), 0, m_palette->entries() / 64, 0)); + m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(m_palette, cps3_tiles16x16_layout, (uint8_t *)m_char_ram.get(), 0, m_palette->entries() / 64, 0)); m_gfxdecode->gfx(1)->set_granularity(64); //decode_charram(); diff --git a/src/mame/drivers/limenko.cpp b/src/mame/drivers/limenko.cpp index b4157858677..7edbf9d2b3f 100644 --- a/src/mame/drivers/limenko.cpp +++ b/src/mame/drivers/limenko.cpp @@ -464,7 +464,7 @@ void limenko_state::draw_sprites(uint32_t *sprites, const rectangle &cliprect, i continue; /* prepare GfxElement on the fly */ - gfx_element gfx(*m_palette, gfxdata, width, height, width, m_palette->entries(), 0, 256); + gfx_element gfx(m_palette, gfxdata, width, height, width, m_palette->entries(), 0, 256); draw_single_sprite(m_sprites_bitmap,cliprect,&gfx,0,color,flipx,flipy,x,y,pri); diff --git a/src/mame/drivers/mpu4vid.cpp b/src/mame/drivers/mpu4vid.cpp index f94e46f8183..75e922554a0 100644 --- a/src/mame/drivers/mpu4vid.cpp +++ b/src/mame/drivers/mpu4vid.cpp @@ -438,7 +438,7 @@ 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, std::make_unique<gfx_element>(*m_palette, mpu4_vid_char_8x8_layout, reinterpret_cast<uint8_t *>(m_vid_vidram.target()), NATIVE_ENDIAN_VALUE_LE_BE(8,0), m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(m_gfx_index+0, std::make_unique<gfx_element>(m_palette, mpu4_vid_char_8x8_layout, reinterpret_cast<uint8_t *>(m_vid_vidram.target()), NATIVE_ENDIAN_VALUE_LE_BE(8,0), m_palette->entries() / 16, 0)); } EF9369_COLOR_UPDATE( mpu4vid_state::ef9369_color_update ) diff --git a/src/mame/drivers/mz2500.cpp b/src/mame/drivers/mz2500.cpp index eddd2ad0a46..ebfb341cb2f 100644 --- a/src/mame/drivers/mz2500.cpp +++ b/src/mame/drivers/mz2500.cpp @@ -1773,8 +1773,8 @@ void mz2500_state::machine_start() save_pointer(NAME(m_emm_ram.get()), 0x100000); /* TODO: gfx[4] crashes as per now */ - m_gfxdecode->set_gfx(3, std::make_unique<gfx_element>(*m_palette, mz2500_pcg_layout_1bpp, m_pcg_ram.get(), 0, 0x10, 0)); - m_gfxdecode->set_gfx(4, std::make_unique<gfx_element>(*m_palette, mz2500_pcg_layout_3bpp, m_pcg_ram.get(), 0, 4, 0)); + m_gfxdecode->set_gfx(3, std::make_unique<gfx_element>(m_palette, mz2500_pcg_layout_1bpp, m_pcg_ram.get(), 0, 0x10, 0)); + m_gfxdecode->set_gfx(4, std::make_unique<gfx_element>(m_palette, mz2500_pcg_layout_3bpp, m_pcg_ram.get(), 0, 4, 0)); } void mz2500_state::machine_reset() diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp index bde369f0dca..ca42ce35356 100644 --- a/src/mame/drivers/peoplepc.cpp +++ b/src/mame/drivers/peoplepc.cpp @@ -177,7 +177,7 @@ void peoplepc_state::machine_reset() void peoplepc_state::machine_start() { - m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(*m_palette, peoplepc_charlayout, &m_charram[0], 0, 1, 0)); + m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, peoplepc_charlayout, &m_charram[0], 0, 1, 0)); m_dma0pg = 0; // FIXME: cheat as there no docs about how or obvious ports that set to control the motor diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp index d1d4634bc46..052c8b5d3f2 100644 --- a/src/mame/drivers/smc777.cpp +++ b/src/mame/drivers/smc777.cpp @@ -918,7 +918,7 @@ void smc777_state::machine_start() save_pointer(NAME(m_gvram.get()), 0x8000); save_pointer(NAME(m_pcg.get()), 0x800); - m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(*m_palette, smc777_charlayout, m_pcg.get(), 0, 8, 0)); + m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, smc777_charlayout, m_pcg.get(), 0, 8, 0)); } void smc777_state::machine_reset() diff --git a/src/mame/drivers/srmp6.cpp b/src/mame/drivers/srmp6.cpp index 8e4c2ff22df..01a9aea40b7 100644 --- a/src/mame/drivers/srmp6.cpp +++ b/src/mame/drivers/srmp6.cpp @@ -175,7 +175,7 @@ void srmp6_state::video_start() m_sprram_old = make_unique_clear<uint16_t[]>(0x80000/2); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(*m_palette, tiles8x8_layout, (uint8_t*)m_tileram.get(), 0, m_palette->entries() / 256, 0)); + m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, tiles8x8_layout, (uint8_t*)m_tileram.get(), 0, m_palette->entries() / 256, 0)); m_gfxdecode->gfx(0)->set_granularity(256); m_brightness = 0x60; diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp index 2866515694d..366e325737f 100644 --- a/src/mame/drivers/taitopjc.cpp +++ b/src/mame/drivers/taitopjc.cpp @@ -237,7 +237,7 @@ void taitopjc_state::video_start() m_tilemap[0]->set_transparent_pen(0); m_tilemap[1]->set_transparent_pen(1); - m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(*m_palette, char_layout, (uint8_t*)m_screen_ram.get(), 0, m_palette->entries() / 256, 0)); + m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, char_layout, (uint8_t*)m_screen_ram.get(), 0, m_palette->entries() / 256, 0)); machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&taitopjc_state::video_exit, this)); } diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp index 995fe38bc0e..5b2221b9a38 100644 --- a/src/mame/drivers/x1.cpp +++ b/src/mame/drivers/x1.cpp @@ -2507,7 +2507,7 @@ MACHINE_START_MEMBER(x1_state,x1) save_pointer(NAME(m_emm_ram.get()), 0x1000000); save_pointer(NAME(m_pcg_ram.get()), 0x1800); - m_gfxdecode->set_gfx(3, std::make_unique<gfx_element>(*m_palette, x1_pcg_8x8, m_pcg_ram.get(), 0, 1, 0)); + m_gfxdecode->set_gfx(3, std::make_unique<gfx_element>(m_palette, x1_pcg_8x8, m_pcg_ram.get(), 0, 1, 0)); } PALETTE_INIT_MEMBER(x1_state,x1) diff --git a/src/mame/machine/st0016.cpp b/src/mame/machine/st0016.cpp index 352531878df..f59b351cd5e 100644 --- a/src/mame/machine/st0016.cpp +++ b/src/mame/machine/st0016.cpp @@ -582,7 +582,7 @@ void st0016_cpu_device::startup() assert(gfx_index != MAX_GFX_ELEMENTS); /* create the char set (gfx will then be updated dynamically from RAM) */ - set_gfx(gfx_index, std::make_unique<gfx_element>(palette(), charlayout, m_charram.get(), 0, 0x40, 0)); + set_gfx(gfx_index, std::make_unique<gfx_element>(&palette(), charlayout, m_charram.get(), 0, 0x40, 0)); st0016_ramgfx = gfx_index; spr_dx=0; diff --git a/src/mame/video/atarisy1.cpp b/src/mame/video/atarisy1.cpp index 30c46e10f9a..feb9abb05c2 100644 --- a/src/mame/video/atarisy1.cpp +++ b/src/mame/video/atarisy1.cpp @@ -617,15 +617,15 @@ int atarisy1_state::get_bank(uint8_t prom1, uint8_t prom2, int bpp) switch (bpp) { case 4: - m_gfxdecode->set_gfx(gfx_index,std::make_unique<gfx_element>(*m_palette, objlayout_4bpp, srcdata, 0, 0x40, 256)); + m_gfxdecode->set_gfx(gfx_index,std::make_unique<gfx_element>(m_palette, objlayout_4bpp, srcdata, 0, 0x40, 256)); break; case 5: - m_gfxdecode->set_gfx(gfx_index,std::make_unique<gfx_element>(*m_palette, objlayout_5bpp, srcdata, 0, 0x40, 256)); + m_gfxdecode->set_gfx(gfx_index,std::make_unique<gfx_element>(m_palette, objlayout_5bpp, srcdata, 0, 0x40, 256)); break; case 6: - m_gfxdecode->set_gfx(gfx_index,std::make_unique<gfx_element>(*m_palette, objlayout_6bpp, srcdata, 0, 0x40, 256)); + m_gfxdecode->set_gfx(gfx_index,std::make_unique<gfx_element>(m_palette, objlayout_6bpp, srcdata, 0, 0x40, 256)); break; default: diff --git a/src/mame/video/hyprduel.cpp b/src/mame/video/hyprduel.cpp index c429527fa43..bff54803a75 100644 --- a/src/mame/video/hyprduel.cpp +++ b/src/mame/video/hyprduel.cpp @@ -545,7 +545,7 @@ void hyprduel_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, if ((gfxstart + width * height - 1) >= gfx_size) continue; - gfx_element gfx(*m_palette, base_gfx8 + gfxstart, width, height, width, m_palette->entries(), 0, 256); + gfx_element gfx(m_palette, base_gfx8 + gfxstart, width, height, width, m_palette->entries(), 0, 256); gfx.prio_zoom_transpen(bitmap,cliprect, 0, @@ -561,7 +561,7 @@ void hyprduel_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, if ((gfxstart + width / 2 * height - 1) >= gfx_size) continue; - gfx_element gfx(*m_palette, base_gfx4 + 2 * gfxstart, width, height, width, m_palette->entries(), 0, 16); + gfx_element gfx(m_palette, base_gfx4 + 2 * gfxstart, width, height, width, m_palette->entries(), 0, 16); gfx.prio_zoom_transpen(bitmap,cliprect, 0, diff --git a/src/mame/video/igs017_igs031.cpp b/src/mame/video/igs017_igs031.cpp index 91dabdf1771..a37b23c5d30 100644 --- a/src/mame/video/igs017_igs031.cpp +++ b/src/mame/video/igs017_igs031.cpp @@ -296,7 +296,7 @@ void igs017_igs031_device::draw_sprite(bitmap_ind16 &bitmap,const rectangle &cli if ( addr + dimx * dimy >= m_sprites_gfx_size ) return; - gfx_element gfx(*m_palette, m_sprites_gfx.get() + addr, dimx, dimy, dimx, m_palette->entries(), 0x100, 32); + gfx_element gfx(m_palette, m_sprites_gfx.get() + addr, dimx, dimy, dimx, m_palette->entries(), 0x100, 32); gfx.transpen(bitmap,cliprect, 0, color, diff --git a/src/mame/video/k001604.cpp b/src/mame/video/k001604.cpp index 39955b2a803..6742471315a 100644 --- a/src/mame/video/k001604.cpp +++ b/src/mame/video/k001604.cpp @@ -89,8 +89,8 @@ void k001604_device::device_start() m_layer_8x8[0]->set_transparent_pen(0); m_layer_8x8[1]->set_transparent_pen(0); - set_gfx(0, std::make_unique<gfx_element>(palette(), k001604_char_layout_layer_8x8, (uint8_t*)&m_char_ram[0], 0, palette().entries() / 16, 0)); - set_gfx(1, std::make_unique<gfx_element>(palette(), k001604_char_layout_layer_16x16, (uint8_t*)&m_char_ram[0], 0, palette().entries() / 16, 0)); + set_gfx(0, std::make_unique<gfx_element>(&palette(), k001604_char_layout_layer_8x8, (uint8_t*)&m_char_ram[0], 0, palette().entries() / 16, 0)); + set_gfx(1, std::make_unique<gfx_element>(&palette(), k001604_char_layout_layer_16x16, (uint8_t*)&m_char_ram[0], 0, palette().entries() / 16, 0)); save_pointer(NAME(m_reg.get()), 0x400 / 4); save_pointer(NAME(m_char_ram.get()), 0x200000 / 4); diff --git a/src/mame/video/k037122.cpp b/src/mame/video/k037122.cpp index 9939cdaa24f..71f37e22703 100644 --- a/src/mame/video/k037122.cpp +++ b/src/mame/video/k037122.cpp @@ -57,7 +57,7 @@ void k037122_device::device_start() m_layer[0]->set_transparent_pen(0); m_layer[1]->set_transparent_pen(0); - set_gfx(m_gfx_index,std::make_unique<gfx_element>(palette(), k037122_char_layout, (uint8_t*)m_char_ram.get(), 0, palette().entries() / 16, 0)); + set_gfx(m_gfx_index,std::make_unique<gfx_element>(&palette(), k037122_char_layout, (uint8_t*)m_char_ram.get(), 0, palette().entries() / 16, 0)); save_pointer(NAME(m_reg.get()), 0x400 / 4); save_pointer(NAME(m_char_ram.get()), 0x200000 / 4); diff --git a/src/mame/video/konami_helper.cpp b/src/mame/video/konami_helper.cpp index e2c76140256..f30f1198f37 100644 --- a/src/mame/video/konami_helper.cpp +++ b/src/mame/video/konami_helper.cpp @@ -12,7 +12,7 @@ void konami_decode_gfx(device_gfx_interface &gfxdecode, int gfx_index, uint8_t * memcpy(&gl, layout, sizeof(gl)); gl.total = total; - gfxdecode.set_gfx(gfx_index, std::make_unique<gfx_element>(palette, gl, data, 0, palette.entries() >> bpp, 0)); + gfxdecode.set_gfx(gfx_index, std::make_unique<gfx_element>(&palette, gl, data, 0, palette.entries() >> bpp, 0)); } diff --git a/src/mame/video/m10.cpp b/src/mame/video/m10.cpp index 5b5c1121f13..e3d2fda7e9a 100644 --- a/src/mame/video/m10.cpp +++ b/src/mame/video/m10.cpp @@ -100,14 +100,14 @@ VIDEO_START_MEMBER(m10_state,m10) m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32); m_tx_tilemap->set_transparent_pen(0); - m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(*m_palette, backlayout, m_chargen, 0, 8, 0)); + m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(m_palette, backlayout, m_chargen, 0, 8, 0)); m_back_gfx = m_gfxdecode->gfx(1); return ; } VIDEO_START_MEMBER(m10_state,m15) { - m_gfxdecode->set_gfx(0,std::make_unique<gfx_element>(*m_palette, charlayout, m_chargen, 0, 8, 0)); + m_gfxdecode->set_gfx(0,std::make_unique<gfx_element>(m_palette, charlayout, m_chargen, 0, 8, 0)); m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32); diff --git a/src/mame/video/metro.cpp b/src/mame/video/metro.cpp index a8e3f198c87..663fa3ee61d 100644 --- a/src/mame/video/metro.cpp +++ b/src/mame/video/metro.cpp @@ -495,7 +495,7 @@ void metro_state::metro_draw_sprites( screen_device &screen, bitmap_ind16 &bitma if ((gfxstart + width * height - 1) >= gfx_size) continue; - gfx_element gfx(*m_palette, base_gfx8 + gfxstart, width, height, width, m_palette->entries(), 0, 256); + gfx_element gfx(m_palette, base_gfx8 + gfxstart, width, height, width, m_palette->entries(), 0, 256); gfx.prio_zoom_transpen(bitmap,cliprect, 0, @@ -511,7 +511,7 @@ void metro_state::metro_draw_sprites( screen_device &screen, bitmap_ind16 &bitma if ((gfxstart + width / 2 * height - 1) >= gfx_size) continue; - gfx_element gfx(*m_palette, base_gfx4 + 2 * gfxstart, width, height, width, m_palette->entries(),0, 16); + gfx_element gfx(m_palette, base_gfx4 + 2 * gfxstart, width, height, width, m_palette->entries(),0, 16); gfx.prio_zoom_transpen(bitmap,cliprect, 0, diff --git a/src/mame/video/model3.cpp b/src/mame/video/model3.cpp index a6e74fa823a..99e0f378512 100644 --- a/src/mame/video/model3.cpp +++ b/src/mame/video/model3.cpp @@ -207,10 +207,10 @@ void model3_state::video_start() m_layer8[3] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(model3_state::tile_info_layer3_8bit), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 4-bit tiles - m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(*m_palette, char4_layout, (uint8_t*)m_m3_char_ram.get(), 0, m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, char4_layout, (uint8_t*)m_m3_char_ram.get(), 0, m_palette->entries() / 16, 0)); // 8-bit tiles - m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(*m_palette, char8_layout, (uint8_t*)m_m3_char_ram.get(), 0, m_palette->entries() / 256, 0)); + m_gfxdecode->set_gfx(1, std::make_unique<gfx_element>(m_palette, char8_layout, (uint8_t*)m_m3_char_ram.get(), 0, m_palette->entries() / 256, 0)); init_matrix_stack(); } diff --git a/src/mame/video/pcd.cpp b/src/mame/video/pcd.cpp index d2041384c9c..85a055e2a42 100644 --- a/src/mame/video/pcd.cpp +++ b/src/mame/video/pcd.cpp @@ -401,7 +401,7 @@ void pcd_video_device::device_start() { m_maincpu->space(AS_IO).install_readwrite_handler(0xfb00, 0xfb01, read8_delegate(FUNC(pcdx_video_device::detect_r), this), write8_delegate(FUNC(pcdx_video_device::detect_w), this), 0xff00); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0000, 0xf7fff, read8_delegate(FUNC(pcd_video_device::vram_r), this), write8_delegate(FUNC(pcd_video_device::vram_w), this), 0xffff); - set_gfx(0, std::make_unique<gfx_element>(palette(), pcd_charlayout, &m_charram[0], 0, 1, 0)); + set_gfx(0, std::make_unique<gfx_element>(&palette(), pcd_charlayout, &m_charram[0], 0, 1, 0)); } void pcd_video_device::device_reset() diff --git a/src/mame/video/plygonet.cpp b/src/mame/video/plygonet.cpp index 2e73dcd3c82..51eecb0358e 100644 --- a/src/mame/video/plygonet.cpp +++ b/src/mame/video/plygonet.cpp @@ -102,7 +102,7 @@ void polygonet_state::video_start() assert(m_ttl_gfx_index != MAX_GFX_ELEMENTS); /* decode the ttl layer's gfx */ - m_gfxdecode->set_gfx(m_ttl_gfx_index, std::make_unique<gfx_element>(*m_palette, charlayout, memregion("gfx1")->base(), 0, m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(m_ttl_gfx_index, std::make_unique<gfx_element>(m_palette, charlayout, memregion("gfx1")->base(), 0, m_palette->entries() / 16, 0)); /* create the tilemap */ m_ttl_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(polygonet_state::ttl_get_tile_info),this), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan),this), 8, 8, 64, 32); diff --git a/src/mame/video/rungun.cpp b/src/mame/video/rungun.cpp index 0984292e476..c488ef37842 100644 --- a/src/mame/video/rungun.cpp +++ b/src/mame/video/rungun.cpp @@ -95,7 +95,7 @@ void rungun_state::video_start() assert(gfx_index != MAX_GFX_ELEMENTS); // decode the ttl layer's gfx - m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(*m_palette, charlayout, memregion("gfx3")->base(), 0, m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_palette, charlayout, memregion("gfx3")->base(), 0, m_palette->entries() / 16, 0)); m_ttl_gfx_index = gfx_index; // create the tilemaps diff --git a/src/mame/video/segaic24.cpp b/src/mame/video/segaic24.cpp index 0cd954ca3d7..759f1b0ad64 100644 --- a/src/mame/video/segaic24.cpp +++ b/src/mame/video/segaic24.cpp @@ -96,7 +96,7 @@ void segas24_tile_device::device_start() memset(char_ram.get(), 0, 0x80000); memset(tile_ram.get(), 0, 0x10000); - set_gfx(char_gfx_index, std::make_unique<gfx_element>(palette(), char_layout, (uint8_t *)char_ram.get(), NATIVE_ENDIAN_VALUE_LE_BE(8,0), palette().entries() / 16, 0)); + set_gfx(char_gfx_index, std::make_unique<gfx_element>(&palette(), char_layout, (uint8_t *)char_ram.get(), NATIVE_ENDIAN_VALUE_LE_BE(8,0), palette().entries() / 16, 0)); save_pointer(NAME(tile_ram.get()), 0x10000/2); save_pointer(NAME(char_ram.get()), 0x80000/2); diff --git a/src/mame/video/st0020.cpp b/src/mame/video/st0020.cpp index 924e0b9231a..f9879f6a467 100644 --- a/src/mame/video/st0020.cpp +++ b/src/mame/video/st0020.cpp @@ -79,7 +79,7 @@ void st0020_device::device_start() { STEP8(0,16*8) }, 16*8*8 }; - set_gfx(0, std::make_unique<gfx_element>(palette(), layout_16x8x8, (uint8_t *)m_gfxram.get(), 0, palette().entries() / granularity, 0)); + set_gfx(0, std::make_unique<gfx_element>(&palette(), layout_16x8x8, (uint8_t *)m_gfxram.get(), 0, palette().entries() / granularity, 0)); gfx(0)->set_granularity(granularity); /* 256 colour sprites with palette selectable on 64 colour boundaries */ // Tilemaps diff --git a/src/mame/video/taitojc.cpp b/src/mame/video/taitojc.cpp index b91c7f939bb..65dc07632ef 100644 --- a/src/mame/video/taitojc.cpp +++ b/src/mame/video/taitojc.cpp @@ -317,7 +317,7 @@ void taitojc_state::video_start() m_tile_ram = make_unique_clear<uint32_t[]>(0x4000/4); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_gfx_index, std::make_unique<gfx_element>(*m_palette, taitojc_char_layout, (uint8_t *)m_char_ram.get(), 0, m_palette->entries() / 16, 0)); + m_gfxdecode->set_gfx(m_gfx_index, std::make_unique<gfx_element>(m_palette, taitojc_char_layout, (uint8_t *)m_char_ram.get(), 0, m_palette->entries() / 16, 0)); } uint32_t taitojc_state::screen_update_taitojc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/tc0080vco.cpp b/src/mame/video/tc0080vco.cpp index a0e4a622081..36cc0681226 100644 --- a/src/mame/video/tc0080vco.cpp +++ b/src/mame/video/tc0080vco.cpp @@ -185,7 +185,7 @@ void tc0080vco_device::device_start() m_scroll_ram = m_ram.get() + 0x20800 / 2; /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(m_gfxdecode->palette(), charlayout, (uint8_t *)m_char_ram, 0, 1, 512)); + m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(&m_gfxdecode->palette(), charlayout, (uint8_t *)m_char_ram, 0, 1, 512)); save_pointer(NAME(m_ram.get()), TC0080VCO_RAM_SIZE / 2); machine().save().register_postload(save_prepost_delegate(FUNC(tc0080vco_device::postload), this)); diff --git a/src/mame/video/tc0100scn.cpp b/src/mame/video/tc0100scn.cpp index a919f4379bf..f1c7ffcd30d 100644 --- a/src/mame/video/tc0100scn.cpp +++ b/src/mame/video/tc0100scn.cpp @@ -290,7 +290,7 @@ void tc0100scn_device::device_start() set_layer_ptrs(); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(*m_palette, tc0100scn_charlayout, (uint8_t *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 256, 0)); + m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(m_palette, tc0100scn_charlayout, (uint8_t *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 256, 0)); gfx_element *gfx = m_gfxdecode->gfx(m_gfxnum); gfx_element *txt = m_gfxdecode->gfx(m_txnum); diff --git a/src/mame/video/tc0480scp.cpp b/src/mame/video/tc0480scp.cpp index 1ca4156d1b3..0152631e0bc 100644 --- a/src/mame/video/tc0480scp.cpp +++ b/src/mame/video/tc0480scp.cpp @@ -287,7 +287,7 @@ void tc0480scp_device::device_start() set_layer_ptrs(); /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(m_gfxdecode->palette(), tc0480scp_charlayout, (uint8_t *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 64, m_col_base)); + m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(&m_gfxdecode->palette(), tc0480scp_charlayout, (uint8_t *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 64, m_col_base)); m_gfxdecode->gfx(m_gfxnum)->set_colorbase(m_col_base); save_item(NAME(m_ram)); diff --git a/src/mame/video/tceptor.cpp b/src/mame/video/tceptor.cpp index 75b3e4a9b02..8dc6d01140d 100644 --- a/src/mame/video/tceptor.cpp +++ b/src/mame/video/tceptor.cpp @@ -252,13 +252,13 @@ void tceptor_state::decode_bg(const char * region) memcpy(src, &buffer[0], len); /* decode the graphics */ - m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(*m_palette, bg_layout, memregion(region)->base(), 0, 64, 0x0a00)); + m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_palette, bg_layout, memregion(region)->base(), 0, 64, 0x0a00)); } void tceptor_state::decode_sprite(int gfx_index, const gfx_layout *layout, const void *data) { /* decode the graphics */ - m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(*m_palette, *layout, (const uint8_t *)data, 0, 64, 1024)); + m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_palette, *layout, (const uint8_t *)data, 0, 64, 1024)); } // fix sprite order diff --git a/src/mame/video/x68k.cpp b/src/mame/video/x68k.cpp index a4b61f110c9..6852b07c301 100644 --- a/src/mame/video/x68k.cpp +++ b/src/mame/video/x68k.cpp @@ -1093,11 +1093,11 @@ VIDEO_START_MEMBER(x68k_state,x68000) break; /* create the char set (gfx will then be updated dynamically from RAM) */ - m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(*m_pcgpalette, x68k_pcg_8, memregion("user1")->base(), 0, 32, 0)); + m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_pcgpalette, x68k_pcg_8, memregion("user1")->base(), 0, 32, 0)); gfx_index++; - m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(*m_pcgpalette, x68k_pcg_16, memregion("user1")->base(), 0, 32, 0)); + m_gfxdecode->set_gfx(gfx_index, std::make_unique<gfx_element>(m_pcgpalette, x68k_pcg_16, memregion("user1")->base(), 0, 32, 0)); m_gfxdecode->gfx(gfx_index)->set_colors(32); /* Tilemaps */ |