diff options
author | cam900 <dbtlrchl@naver.com> | 2018-11-18 19:24:27 +0900 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-11-18 11:24:27 +0100 |
commit | af615b5fe68493ff5107d72917d521abd7084546 (patch) | |
tree | a246b26bd3c45a8549fbbbbd76b1259c8c9225b3 | |
parent | d895e2c66c55a26a4362f03f1745456c3337aff8 (diff) |
igs011.cpp : Remove unnecessary palette handler, Convert memory_region into region_ptr (#4042)
-rw-r--r-- | src/mame/drivers/igs011.cpp | 89 |
1 files changed, 31 insertions, 58 deletions
diff --git a/src/mame/drivers/igs011.cpp b/src/mame/drivers/igs011.cpp index 3a4924ea89f..f218aac94a9 100644 --- a/src/mame/drivers/igs011.cpp +++ b/src/mame/drivers/igs011.cpp @@ -89,9 +89,8 @@ public: , m_ics(*this, "ics") , m_priority_ram(*this, "priority_ram") , m_vbowl_trackball(*this, "vbowl_trackball") - , m_generic_paletteram_16(*this, "paletteram") - , m_gfx_region(*this, "blitter") - , m_gfx2_region(*this, "blitter_hi") + , m_gfx(*this, "blitter") + , m_gfx2(*this, "blitter_hi") { } @@ -143,11 +142,10 @@ private: /* memory pointers */ required_shared_ptr<uint16_t> m_priority_ram; optional_shared_ptr<uint16_t> m_vbowl_trackball; - required_shared_ptr<uint16_t> m_generic_paletteram_16; /* memory regions */ - required_memory_region m_gfx_region; - optional_memory_region m_gfx2_region; + required_region_ptr<uint8_t> m_gfx; + optional_region_ptr<uint8_t> m_gfx2; std::unique_ptr<uint8_t[]> m_layer[8]; uint16_t m_priority; @@ -186,7 +184,6 @@ private: DECLARE_WRITE16_MEMBER(igs011_priority_w); DECLARE_READ16_MEMBER(igs011_layers_r); DECLARE_WRITE16_MEMBER(igs011_layers_w); - DECLARE_WRITE16_MEMBER(igs011_palette); DECLARE_WRITE16_MEMBER(igs011_blit_x_w); DECLARE_WRITE16_MEMBER(igs011_blit_y_w); DECLARE_WRITE16_MEMBER(igs011_blit_gfx_lo_w); @@ -451,25 +448,6 @@ WRITE16_MEMBER(igs011_state::igs011_layers_w) /*************************************************************************** - Palette (r5g5b5) - - offset + 0x000: xRRRRRGG - offset + 0x800: GGGBBBBB - -***************************************************************************/ - -WRITE16_MEMBER(igs011_state::igs011_palette) -{ - int rgb; - - COMBINE_DATA(&m_generic_paletteram_16[offset]); - - rgb = (m_generic_paletteram_16[offset & 0x7ff] & 0xff) | ((m_generic_paletteram_16[offset | 0x800] & 0xff) << 8); - m_palette->set_pen_color(offset & 0x7ff,pal5bit(rgb >> 0),pal5bit(rgb >> 5),pal5bit(rgb >> 10)); -} - -/*************************************************************************** - Blitter ***************************************************************************/ @@ -533,12 +511,6 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) uint8_t trans_pen, clear_pen, pen_hi, *dest; uint8_t pen = 0; - uint8_t *gfx = m_gfx_region->base(); - int gfx_size = m_gfx_region->bytes(); - - uint8_t *gfx2 = (m_gfx2_region != nullptr) ? m_gfx2_region->base() : nullptr; - int gfx2_size = (m_gfx2_region != nullptr) ? m_gfx2_region->bytes() : 0; - const rectangle &clip = m_screen->visible_area(); COMBINE_DATA(&blitter.flags); @@ -570,14 +542,14 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) if (depth4) { z *= 2; - if (gfx2 && (blitter.gfx_hi & 0x80)) trans_pen = 0x1f; // lhb2 + if (m_gfx2 && (blitter.gfx_hi & 0x80)) trans_pen = 0x1f; // lhb2 else trans_pen = 0x0f; clear_pen = blitter.pen | 0xf0; } else { - if (gfx2) trans_pen = 0x1f; // vbowl + if (m_gfx2) trans_pen = 0x1f; // vbowl else trans_pen = 0xff; clear_pen = blitter.pen; @@ -599,13 +571,13 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) // fetch the pixel if (!clear) { - if (depth4) pen = (gfx[(z/2)%gfx_size] >> ((z&1)?4:0)) & 0x0f; - else pen = gfx[z%gfx_size]; + if (depth4) pen = (m_gfx[(z/2)%m_gfx.length()] >> ((z&1)?4:0)) & 0x0f; + else pen = m_gfx[z%m_gfx.length()]; - if ( gfx2 ) + if ( m_gfx2 ) { pen &= 0x0f; - if ( gfx2[(z/8)%gfx2_size] & (1 << (z & 7)) ) + if ( m_gfx2[(z/8)%m_gfx2.length()] & (1 << (z & 7)) ) pen |= 0x10; } } @@ -2584,7 +2556,8 @@ void igs011_state::drgnwrld(address_map &map) map(0x000000, 0x07ffff).rom(); map(0x100000, 0x103fff).ram().share("nvram"); map(0x200000, 0x200fff).ram().share("priority_ram"); - map(0x400000, 0x401fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x400000, 0x400fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x401000, 0x401fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x500000, 0x500001).portr("COIN"); map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700003).w("ymsnd", FUNC(ym3812_device::write)).umask16(0x00ff); @@ -2672,7 +2645,8 @@ void igs011_state::lhb(address_map &map) map(0x100000, 0x103fff).ram().share("nvram"); map(0x200000, 0x200fff).ram().share("priority_ram"); map(0x300000, 0x3fffff).rw(FUNC(igs011_state::igs011_layers_r), FUNC(igs011_state::igs011_layers_w)); - map(0x400000, 0x401fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x400000, 0x400fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x401000, 0x401fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700001).portr("COIN"); map(0x700002, 0x700005).r(FUNC(igs011_state::lhb_inputs_r)); @@ -2715,7 +2689,8 @@ void igs011_state::xymg(address_map &map) map(0x1f0000, 0x1f3fff).ram().share("nvram"); // extra ram map(0x200000, 0x200fff).ram().share("priority_ram"); map(0x300000, 0x3fffff).rw(FUNC(igs011_state::igs011_layers_r), FUNC(igs011_state::igs011_layers_w)); - map(0x400000, 0x401fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x400000, 0x400fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x401000, 0x401fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x700000, 0x700003).w(FUNC(igs011_state::xymg_igs003_w)); map(0x700002, 0x700003).r(FUNC(igs011_state::xymg_igs003_r)); @@ -2752,7 +2727,8 @@ void igs011_state::wlcc(address_map &map) map(0x100000, 0x103fff).ram().share("nvram"); map(0x200000, 0x200fff).ram().share("priority_ram"); map(0x300000, 0x3fffff).rw(FUNC(igs011_state::igs011_layers_r), FUNC(igs011_state::igs011_layers_w)); - map(0x400000, 0x401fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x400000, 0x400fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x401000, 0x401fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x520000, 0x520001).portr("COIN"); map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x800000, 0x800003).w(FUNC(igs011_state::wlcc_igs003_w)); @@ -2796,7 +2772,8 @@ void igs011_state::lhb2(address_map &map) map(0x208000, 0x208003).w(FUNC(igs011_state::lhb2_igs003_w)); map(0x208002, 0x208003).r(FUNC(igs011_state::lhb2_igs003_r)); map(0x20c000, 0x20cfff).ram().share("priority_ram"); - map(0x210000, 0x211fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x210000, 0x210fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x211000, 0x211fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x214000, 0x214001).portr("COIN"); map(0x300000, 0x3fffff).rw(FUNC(igs011_state::igs011_layers_r), FUNC(igs011_state::igs011_layers_w)); map(0xa20000, 0xa20001).w(FUNC(igs011_state::igs011_priority_w)); @@ -2839,7 +2816,8 @@ void igs011_state::nkishusp(address_map &map) map(0x208000, 0x208003).w(FUNC(igs011_state::lhb2_igs003_w)); map(0x208002, 0x208003).r(FUNC(igs011_state::lhb2_igs003_r)); map(0x20c000, 0x20cfff).ram().share("priority_ram"); - map(0x210000, 0x211fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x210000, 0x210fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x211000, 0x211fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x214000, 0x214001).portr("COIN"); map(0x300000, 0x3fffff).rw(FUNC(igs011_state::igs011_layers_r), FUNC(igs011_state::igs011_layers_w)); map(0xa20000, 0xa20001).w(FUNC(igs011_state::igs011_priority_w)); @@ -2956,7 +2934,8 @@ void igs011_state::vbowl(address_map &map) map(0x100000, 0x103fff).ram().share("nvram"); map(0x200000, 0x200fff).ram().share("priority_ram"); map(0x300000, 0x3fffff).rw(FUNC(igs011_state::igs011_layers_r), FUNC(igs011_state::igs011_layers_w)); - map(0x400000, 0x401fff).ram().w(FUNC(igs011_state::igs011_palette)).share("paletteram"); + map(0x400000, 0x400fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette"); + map(0x401000, 0x401fff).rw(m_palette, FUNC(palette_device::read8_ext), FUNC(palette_device::write8_ext)).umask16(0x00ff).share("palette_ext"); map(0x520000, 0x520001).portr("COIN"); map(0x600000, 0x600007).rw(FUNC(igs011_state::ics2115_word_r), FUNC(igs011_state::ics2115_word_w)); map(0x700000, 0x700003).ram().share("vbowl_trackball"); @@ -4195,9 +4174,10 @@ MACHINE_CONFIG_START(igs011_state::igs011_base) MCFG_SCREEN_UPDATE_DRIVER(igs011_state, screen_update_igs011) MCFG_SCREEN_PALETTE("palette") - MCFG_PALETTE_ADD("palette", 0x800) -// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_igs011) - + PALETTE(config, m_palette, 0x2000/4); + m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR); + m_palette->set_membits(8); +// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_igs011) /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -4229,7 +4209,6 @@ MACHINE_CONFIG_START(igs011_state::drgnwrld_igs012) MACHINE_CONFIG_END - INTERRUPT_GEN_MEMBER(igs011_state::lhb_vblank_irq) { if (!m_lhb_irq_enable) @@ -4256,13 +4235,11 @@ MACHINE_CONFIG_START(igs011_state::lhb) MACHINE_CONFIG_END - TIMER_DEVICE_CALLBACK_MEMBER( igs011_state::lev3_timer_irq_cb ) { m_maincpu->set_input_line(3, HOLD_LINE); } - MACHINE_CONFIG_START(igs011_state::wlcc) igs011_base(config); MCFG_DEVICE_MODIFY("maincpu") @@ -4272,7 +4249,6 @@ MACHINE_CONFIG_START(igs011_state::wlcc) MACHINE_CONFIG_END - MACHINE_CONFIG_START(igs011_state::xymg) igs011_base(config); MCFG_DEVICE_MODIFY("maincpu") @@ -4282,7 +4258,6 @@ MACHINE_CONFIG_START(igs011_state::xymg) MACHINE_CONFIG_END - MACHINE_CONFIG_START(igs011_state::lhb2) igs011_base(config); MCFG_DEVICE_MODIFY("maincpu") @@ -4290,14 +4265,13 @@ MACHINE_CONFIG_START(igs011_state::lhb2) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", igs011_state, irq6_line_hold) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_irq", igs011_state, lev5_timer_irq_cb, attotime::from_hz(240)) // lev5 frequency drives the music tempo -// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_igs011_hi) +// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_igs011_hi) MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0) MACHINE_CONFIG_END - MACHINE_CONFIG_START(igs011_state::nkishusp) igs011_base(config); MCFG_DEVICE_MODIFY("maincpu") @@ -4307,14 +4281,13 @@ MACHINE_CONFIG_START(igs011_state::nkishusp) // VSync 60.0052Hz, HSync 15.620kHz -// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_igs011_hi) +// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_igs011_hi) MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0) MACHINE_CONFIG_END - WRITE_LINE_MEMBER(igs011_state::sound_irq) { // m_maincpu->set_input_line(3, state); @@ -4331,7 +4304,7 @@ MACHINE_CONFIG_START(igs011_state::vbowl) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, igs011_state, screen_vblank_vbowl)) -// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_igs011_hi) +// MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_igs011_hi) MCFG_DEVICE_REMOVE("oki") MCFG_ICS2115_ADD("ics", 0) |