diff --git a/src/mame/drivers/argus.cpp b/src/mame/drivers/argus.cpp index ddd07617598..c5b00205da6 100644 --- a/src/mame/drivers/argus.cpp +++ b/src/mame/drivers/argus.cpp @@ -272,13 +272,12 @@ void argus_state::sound_map_b(address_map &map) map(0xe000, 0xe000).r("soundlatch", FUNC(generic_latch_8_device::read)); } -#if 0 void argus_state::sound_portmap_1(address_map &map) { map.global_mask(0xff); map(0x00, 0x01).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); + map(0x80, 0x81).noprw(); // second ym2203 is not implemented on argus but still writes here } -#endif void argus_state::sound_portmap_2(address_map &map) { @@ -443,97 +442,43 @@ INPUT_PORTS_END static const gfx_layout charlayout = { 8,8, /* 8x8 characters */ - 1024, /* 1024 characters */ + RGN_FRAC(1,1), /* number of characters */ 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8 }, + { STEP4(0,1) }, + { STEP8(0,4) }, + { STEP8(0,4*8) }, 32*8 }; -static const gfx_layout tilelayout_256 = +static const gfx_layout tilelayout = { 16,16, /* 16x16 characters */ - 256, /* 256 characters */ + RGN_FRAC(1,1), /* number of characters */ 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 64*8, 64*8+4, 64*8+8, 64*8+12, 64*8+16, 64*8+20, 64*8+24, 64*8+28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, - 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8 }, - 128*8 -}; - -static const gfx_layout tilelayout_512 = -{ - 16,16, /* 16x16 characters */ - 512, /* 512 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 64*8, 64*8+4, 64*8+8, 64*8+12, 64*8+16, 64*8+20, 64*8+24, 64*8+28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, - 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8 }, - 128*8 -}; - -static const gfx_layout tilelayout_1024 = -{ - 16,16, /* 16x16 characters */ - 1024, /* 1024 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 64*8, 64*8+4, 64*8+8, 64*8+12, 64*8+16, 64*8+20, 64*8+24, 64*8+28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, - 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8 }, - 128*8 -}; - -static const gfx_layout tilelayout_2048 = -{ - 16,16, /* 16x16 characters */ - 2048, /* 2048 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 64*8, 64*8+4, 64*8+8, 64*8+12, 64*8+16, 64*8+20, 64*8+24, 64*8+28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, - 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8 }, - 128*8 -}; - -static const gfx_layout tilelayout_4096 = -{ - 16,16, /* 16x16 characters */ - 4096, /* 4096 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 64*8, 64*8+4, 64*8+8, 64*8+12, 64*8+16, 64*8+20, 64*8+24, 64*8+28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, - 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8 }, + { STEP4(0,1) }, + { STEP8(0,4), STEP8(4*8*16, 4) }, + { STEP16(0,4*8) }, 128*8 }; static GFXDECODE_START( argus ) - GFXDECODE_ENTRY( "gfx1", 0, tilelayout_1024, 0*16, 8 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout_1024, 8*16, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, tilelayout_256, 24*16, 16 ) - GFXDECODE_ENTRY( "gfx4", 0, charlayout, 40*16, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0*16, 8 ) + GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 8*16, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 24*16, 16 ) + GFXDECODE_ENTRY( "gfx4", 0, charlayout, 40*16, 16 ) GFXDECODE_END static GFXDECODE_START( valtric ) - GFXDECODE_ENTRY( "gfx1", 0, tilelayout_1024, 0*16, 16 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout_2048, 16*16, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, charlayout, 32*16, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0*16, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 16*16, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, charlayout, 32*16, 16 ) GFXDECODE_END static GFXDECODE_START( butasan ) - GFXDECODE_ENTRY( "gfx1", 0, tilelayout_4096, 0*16, 16 ) - GFXDECODE_ENTRY( "gfx2", 0, tilelayout_1024, 16*16, 16 ) - GFXDECODE_ENTRY( "gfx3", 0, tilelayout_512, 12*16, 16 ) - GFXDECODE_ENTRY( "gfx4", 0, charlayout, 32*16, 16 ) + GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0*16, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 16*16, 16 ) + GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 12*16, 16 ) + GFXDECODE_ENTRY( "gfx4", 0, charlayout, 32*16, 16 ) GFXDECODE_END @@ -546,7 +491,7 @@ MACHINE_CONFIG_START(argus_state::argus) MCFG_DEVICE_ADD("audiocpu", Z80, 5000000) MCFG_DEVICE_PROGRAM_MAP(sound_map_a) - MCFG_DEVICE_IO_MAP(sound_portmap_2) + MCFG_DEVICE_IO_MAP(sound_portmap_1) MCFG_QUANTUM_TIME(attotime::from_hz(600)) @@ -577,12 +522,6 @@ MACHINE_CONFIG_START(argus_state::argus) MCFG_SOUND_ROUTE(1, "mono", 0.15) MCFG_SOUND_ROUTE(2, "mono", 0.15) MCFG_SOUND_ROUTE(3, "mono", 0.50) - - MCFG_DEVICE_ADD("ym2", YM2203, 6000000 / 4) - MCFG_SOUND_ROUTE(0, "mono", 0.15) - MCFG_SOUND_ROUTE(1, "mono", 0.15) - MCFG_SOUND_ROUTE(2, "mono", 0.15) - MCFG_SOUND_ROUTE(3, "mono", 0.50) MACHINE_CONFIG_END MACHINE_CONFIG_START(argus_state::valtric) @@ -716,10 +655,10 @@ ROM_START( argus ) ROM_REGION( 0x08000, "gfx4", 0 ) /* Text */ ROM_LOAD( "ag_10.bin", 0x00000, 0x04000, CRC(2de696c4) SHA1(1ad0f1cde127a1618c2ea74a53e522963a79e5ce) ) - ROM_REGION( 0x08000, "user1", 0 ) /* Map */ + ROM_REGION( 0x08000, "vrom1", 0 ) /* Map */ ROM_LOAD( "ag_15.bin", 0x00000, 0x08000, CRC(99834c1b) SHA1(330f271771b158493b28bb178c8cda98efd1d90c) ) - ROM_REGION( 0x08000, "user2", 0 ) /* Pattern */ + ROM_REGION( 0x08000, "vrom2", 0 ) /* Pattern */ ROM_LOAD( "ag_16.bin", 0x00000, 0x08000, CRC(39a51714) SHA1(ad89a630f1352eb4d8beeeebf909d5e2b5d7cc12) ) ROM_END diff --git a/src/mame/includes/argus.h b/src/mame/includes/argus.h index 9c8c1c28a6d..c111396fdb6 100644 --- a/src/mame/includes/argus.h +++ b/src/mame/includes/argus.h @@ -9,22 +9,22 @@ class argus_state : public driver_device { public: argus_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_gfxdecode(*this, "gfxdecode"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_blend(*this, "blend"), - m_bg0_scrollx(*this, "bg0_scrollx"), - m_bg0_scrolly(*this, "bg0_scrolly"), - m_bg1_scrollx(*this, "bg1_scrollx"), - m_bg1_scrolly(*this, "bg1_scrolly"), - m_paletteram(*this, "paletteram"), - m_txram(*this, "txram"), - m_bg1ram(*this, "bg1ram"), - m_spriteram(*this, "spriteram"), - m_butasan_bg1ram(*this, "butasan_bg1ram") { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_audiocpu(*this, "audiocpu") + , m_gfxdecode(*this, "gfxdecode") + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_blend(*this, "blend") + , m_bg_scrollx(*this, "bg%u_scrollx", 0U) + , m_bg_scrolly(*this, "bg%u_scrolly", 0U) + , m_paletteram(*this, "paletteram") + , m_txram(*this, "txram") + , m_bg1ram(*this, "bg1ram") + , m_spriteram(*this, "spriteram") + , m_butasan_bg1ram(*this, "butasan_bg1ram") + , m_vrom(*this, "vrom%u", 1U) + { } required_device m_maincpu; required_device m_audiocpu; @@ -33,15 +33,14 @@ public: required_device m_palette; required_device m_blend; - optional_shared_ptr m_bg0_scrollx; - optional_shared_ptr m_bg0_scrolly; - required_shared_ptr m_bg1_scrollx; - required_shared_ptr m_bg1_scrolly; + optional_shared_ptr_array m_bg_scrollx; + optional_shared_ptr_array m_bg_scrolly; required_shared_ptr m_paletteram; optional_shared_ptr m_txram; optional_shared_ptr m_bg1ram; required_shared_ptr m_spriteram; optional_shared_ptr m_butasan_bg1ram; + optional_region_ptr_array m_vrom; // common uint8_t m_bg_status; @@ -70,8 +69,7 @@ public: int m_mosaic; tilemap_t *m_tx_tilemap; - tilemap_t *m_bg0_tilemap; - tilemap_t *m_bg1_tilemap; + tilemap_t *m_bg_tilemap[2]; // common DECLARE_WRITE8_MEMBER(bankselect_w); diff --git a/src/mame/video/argus.cpp b/src/mame/video/argus.cpp index b4b72b656bd..90a80b8e183 100644 --- a/src/mame/video/argus.cpp +++ b/src/mame/video/argus.cpp @@ -262,11 +262,11 @@ void argus_state::reset_common() VIDEO_START_MEMBER(argus_state,argus) { /* info offset w h col row */ - m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); - m_bg1_tilemap->set_transparent_pen(15); + m_bg_tilemap[1]->set_transparent_pen(15); m_tx_tilemap->set_transparent_pen(15); /* dummy RAM for back ground */ @@ -284,8 +284,8 @@ VIDEO_RESET_MEMBER(argus_state,argus) { m_lowbitscroll = 0; m_prvscrollx = 0; - m_bg0_scrollx[0] = 0; - m_bg0_scrollx[1] = 0; + m_bg_scrollx[0][0] = 0; + m_bg_scrollx[0][1] = 0; memset(m_dummy_bg0ram.get(), 0, 0x800); reset_common(); } @@ -293,7 +293,7 @@ VIDEO_RESET_MEMBER(argus_state,argus) VIDEO_START_MEMBER(argus_state,valtric) { /* info offset w h col row */ - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::valtric_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::valtric_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::valtric_get_tx_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); m_tx_tilemap->set_transparent_pen(15); @@ -317,11 +317,11 @@ VIDEO_RESET_MEMBER(argus_state,valtric) VIDEO_START_MEMBER(argus_state,butasan) { /* info offset w h col row */ - m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - m_bg1_tilemap->set_transparent_pen(15); + m_bg_tilemap[1]->set_transparent_pen(15); m_tx_tilemap->set_transparent_pen(15); m_butasan_pagedram[0] = std::make_unique(0x1000); @@ -363,19 +363,16 @@ void argus_state::argus_write_dummy_rams(int dramoffs, int vromoffs) int voffs; int offs; - uint8_t *VROM1 = memregion("user1")->base(); /* "ag_15.bin" */ - uint8_t *VROM2 = memregion("user2")->base(); /* "ag_16.bin" */ - /* offset in pattern data */ - offs = VROM1[vromoffs] | (VROM1[vromoffs + 1] << 8); + offs = m_vrom[0][vromoffs] | (m_vrom[0][vromoffs + 1] << 8); offs &= 0x7ff; voffs = offs * 16; for (i = 0; i < 8; i++) { - m_dummy_bg0ram[dramoffs] = VROM2[voffs]; - m_dummy_bg0ram[dramoffs + 1] = VROM2[voffs + 1]; - m_bg0_tilemap->mark_tile_dirty(dramoffs >> 1); + m_dummy_bg0ram[dramoffs] = m_vrom[1][voffs]; + m_dummy_bg0ram[dramoffs + 1] = m_vrom[1][voffs + 1]; + m_bg_tilemap[0]->mark_tile_dirty(dramoffs >> 1); dramoffs += 2; voffs += 2; } @@ -445,7 +442,7 @@ WRITE8_MEMBER(argus_state::txram_w) WRITE8_MEMBER(argus_state::bg1ram_w) { m_bg1ram[offset] = data; - m_bg1_tilemap->mark_tile_dirty(offset >> 1); + m_bg_tilemap[1]->mark_tile_dirty(offset >> 1); } WRITE8_MEMBER(argus_state::argus_bg_status_w) @@ -498,7 +495,7 @@ WRITE8_MEMBER(argus_state::butasan_bg1_status_w) m_butasan_bg1_status = data; /* Bank changed */ - m_bg1_tilemap->mark_all_dirty(); + m_bg_tilemap[1]->mark_all_dirty(); } } @@ -623,7 +620,7 @@ WRITE8_MEMBER(argus_state::butasan_bg1ram_w) idx = (offset & 0x00f) | ((offset & 0x200) >> 5) | ((offset & 0x1f0) << 1); idx ^= 0x0f0; - m_bg1_tilemap->mark_tile_dirty(idx); + m_bg_tilemap[1]->mark_tile_dirty(idx); } WRITE8_MEMBER(argus_state::butasan_pageselect_w) @@ -650,7 +647,7 @@ WRITE8_MEMBER(argus_state::butasan_pagedram_w) int idx; idx = ((offset & 0x01e) >> 1) | ((offset & 0x400) >> 6) | (offset & 0x3e0); idx ^= 0x1e0; - m_bg0_tilemap->mark_tile_dirty(idx); + m_bg_tilemap[0]->mark_tile_dirty(idx); } } else @@ -675,10 +672,8 @@ WRITE8_MEMBER(argus_state::butasan_unknown_w) Screen refresh ***************************************************************************/ -#define bg0_scrollx (m_bg0_scrollx[0] | (m_bg0_scrollx[1] << 8)) -#define bg0_scrolly (m_bg0_scrolly[0] | (m_bg0_scrolly[1] << 8)) -#define bg1_scrollx (m_bg1_scrollx[0] | (m_bg1_scrollx[1] << 8)) -#define bg1_scrolly (m_bg1_scrolly[0] | (m_bg1_scrolly[1] << 8)) +#define bg_scrollx(layer) (m_bg_scrollx[layer][0] | (m_bg_scrollx[layer][1] << 8)) +#define bg_scrolly(layer) (m_bg_scrolly[layer][0] | (m_bg_scrolly[layer][1] << 8)) void argus_state::bg_setting() { @@ -686,23 +681,23 @@ void argus_state::bg_setting() if (!m_flipscreen) { - if (m_bg0_tilemap != nullptr) + if (m_bg_tilemap[0] != nullptr) { - m_bg0_tilemap->set_scrollx(0, bg0_scrollx & 0x1ff); - m_bg0_tilemap->set_scrolly(0, bg0_scrolly & 0x1ff); + m_bg_tilemap[0]->set_scrollx(0, bg_scrollx(0) & 0x1ff); + m_bg_tilemap[0]->set_scrolly(0, bg_scrolly(0) & 0x1ff); } - m_bg1_tilemap->set_scrollx(0, bg1_scrollx & 0x1ff); - m_bg1_tilemap->set_scrolly(0, bg1_scrolly & 0x1ff); + m_bg_tilemap[1]->set_scrollx(0, bg_scrollx(1) & 0x1ff); + m_bg_tilemap[1]->set_scrolly(0, bg_scrolly(1) & 0x1ff); } else { - if (m_bg0_tilemap != nullptr) + if (m_bg_tilemap[0] != nullptr) { - m_bg0_tilemap->set_scrollx(0, (bg0_scrollx + 256) & 0x1ff); - m_bg0_tilemap->set_scrolly(0, (bg0_scrolly + 256) & 0x1ff); + m_bg_tilemap[0]->set_scrollx(0, (bg_scrollx(0) + 256) & 0x1ff); + m_bg_tilemap[0]->set_scrolly(0, (bg_scrolly(0) + 256) & 0x1ff); } - m_bg1_tilemap->set_scrollx(0, (bg1_scrollx + 256) & 0x1ff); - m_bg1_tilemap->set_scrolly(0, (bg1_scrolly + 256) & 0x1ff); + m_bg_tilemap[1]->set_scrollx(0, (bg_scrollx(1) + 256) & 0x1ff); + m_bg_tilemap[1]->set_scrolly(0, (bg_scrolly(1) + 256) & 0x1ff); } } @@ -712,16 +707,16 @@ void argus_state::argus_bg0_scroll_handle() int dcolumn; /* Deficit between previous and current scroll value */ - delta = bg0_scrollx - m_prvscrollx; - m_prvscrollx = bg0_scrollx; + delta = bg_scrollx(0) - m_prvscrollx; + m_prvscrollx = bg_scrollx(0); if (delta == 0) return; if (delta > 0) { - m_lowbitscroll += delta % 16; - dcolumn = delta / 16; + m_lowbitscroll += delta & 0xf; + dcolumn = delta >> 4; if (m_lowbitscroll >= 16) { @@ -734,9 +729,9 @@ void argus_state::argus_bg0_scroll_handle() int i, j; int col, woffs, roffs; - col = ((bg0_scrollx / 16) + 16) % 32; + col = ((bg_scrollx(0) >> 4) + 16) & 0x1f; woffs = 32 * 2 * col; - roffs = (((bg0_scrollx / 16) + 16) * 8) % 0x8000; + roffs = (((bg_scrollx(0) >> 4) + 16) * 8) & 0x7fff; if (dcolumn >= 18) dcolumn = 18; @@ -760,8 +755,8 @@ void argus_state::argus_bg0_scroll_handle() } else { - m_lowbitscroll += (delta % 16); - dcolumn = -(delta / 16); + m_lowbitscroll += (delta & 0xf); + dcolumn = -(delta >> 4); if (m_lowbitscroll <= 0) { @@ -774,9 +769,9 @@ void argus_state::argus_bg0_scroll_handle() int i, j; int col, woffs, roffs; - col = ((bg0_scrollx / 16) + 31) % 32; + col = ((bg_scrollx(0) >> 4) + 31) & 0x1f; woffs = 32 * 2 * col; - roffs = ((bg0_scrollx / 16) - 1) * 8; + roffs = ((bg_scrollx(0) >> 4) - 1) * 8; if (roffs < 0) roffs += 0x08000; @@ -850,10 +845,10 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma } if (m_mosaic==0) - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); else { - m_bg1_tilemap->draw(screen, m_mosaicbitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, m_mosaicbitmap, cliprect, 0, 0); { int step=m_mosaic; uint32_t *dest; @@ -892,10 +887,10 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma int step = 0x10 - (m_valtric_mosaic & 0x0f); if (step == 1) - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); else { - m_bg1_tilemap->draw(screen, m_mosaicbitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, m_mosaicbitmap, cliprect, 0, 0); { uint32_t *dest; int x,y,xx,yy,c=0; @@ -1130,10 +1125,10 @@ uint32_t argus_state::screen_update_argus(screen_device &screen, bitmap_rgb32 &b /* scroll BG0 and render tile at proper position */ argus_bg0_scroll_handle(); - m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); argus_draw_sprites(bitmap, cliprect, 0); if (m_bg_status & 1) /* Backgound enable */ - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); argus_draw_sprites(bitmap, cliprect, 1); m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; @@ -1157,10 +1152,10 @@ uint32_t argus_state::screen_update_butasan(screen_device &screen, bitmap_rgb32 bg_setting(); if (m_bg_status & 1) /* Backgound enable */ - m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(m_palette->black_pen(), cliprect); - if (m_butasan_bg1_status & 1) m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + if (m_butasan_bg1_status & 1) m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); butasan_draw_sprites(bitmap, cliprect); m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0);