diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c index 4cc7d23e6ad..79347417736 100644 --- a/src/mame/drivers/baraduke.c +++ b/src/mame/drivers/baraduke.c @@ -375,11 +375,11 @@ static const namco_interface namco_config = static MACHINE_CONFIG_START( baraduke, baraduke_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6809,49152000/32) + MCFG_CPU_ADD("maincpu", M6809, XTAL_49_152MHz/32) MCFG_CPU_PROGRAM_MAP(baraduke_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", baraduke_state, irq0_line_assert) - MCFG_CPU_ADD("mcu", HD63701,49152000/8) + MCFG_CPU_ADD("mcu", HD63701, XTAL_49_152MHz/8) MCFG_CPU_PROGRAM_MAP(mcu_map) MCFG_CPU_IO_MAP(mcu_port_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", baraduke_state, irq0_line_hold) @@ -388,10 +388,7 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.606060) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) + MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 0, 36*8, 264, 2*8, 30*8) MCFG_SCREEN_UPDATE_DRIVER(baraduke_state, screen_update_baraduke) MCFG_SCREEN_VBLANK_DRIVER(baraduke_state, screen_eof_baraduke) @@ -402,7 +399,7 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("namco", NAMCO_CUS30, 49152000/2048) + MCFG_SOUND_ADD("namco", NAMCO_CUS30, XTAL_49_152MHz/2048) MCFG_SOUND_CONFIG(namco_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c index 10e55134c05..479e1d88c7e 100644 --- a/src/mame/drivers/namcoic.c +++ b/src/mame/drivers/namcoic.c @@ -82,16 +82,9 @@ void namcos2_shared_state::namco_tilemap_init( int gfxbank, void *maskBaseAddr, { static const int adj[4] = { 4,2,1,0 }; int dx = 44+adj[i]; - mTilemapInfo.tmap[i]->set_scrolldx( -dx, -(-384-dx) ); - mTilemapInfo.tmap[i]->set_scrolldy( -24, 288 ); + mTilemapInfo.tmap[i]->set_scrolldx( -dx, 288+dx ); + mTilemapInfo.tmap[i]->set_scrolldy( -24, 224+24 ); } - - mTilemapInfo.tmap[4]->set_scrolldx( 0, 96 ); - mTilemapInfo.tmap[4]->set_scrolldy( 0, 40 ); - - mTilemapInfo.tmap[5]->set_scrolldx( 0, 96 ); - mTilemapInfo.tmap[5]->set_scrolldy( 0, 40 ); - } /* namco_tilemap_init */ void diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c index 83ee5ad1842..a9d54776810 100644 --- a/src/mame/drivers/pacland.c +++ b/src/mame/drivers/pacland.c @@ -202,9 +202,7 @@ WRITE8_MEMBER(pacland_state::pacland_subreset_w) WRITE8_MEMBER(pacland_state::pacland_flipscreen_w) { int bit = !BIT(offset,11); - /* can't use flip_screen_set() because the visible area is asymmetrical */ - flip_screen_set_no_update(bit); - machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); + flip_screen_set(bit); } @@ -439,10 +437,7 @@ static MACHINE_CONFIG_START( pacland, pacland_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.606060) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(3*8, 39*8-1, 2*8, 30*8-1) + MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 3*8, 39*8, 264, 2*8, 30*8) MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update_pacland) MCFG_GFXDECODE_ADD("gfxdecode", pacland) diff --git a/src/mame/includes/pacland.h b/src/mame/includes/pacland.h index dd2dc5a7e06..1aa49a7c847 100644 --- a/src/mame/includes/pacland.h +++ b/src/mame/includes/pacland.h @@ -51,6 +51,6 @@ public: INTERRUPT_GEN_MEMBER(main_vblank_irq); INTERRUPT_GEN_MEMBER(mcu_vblank_irq); void switch_palette(); - void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichmask); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip, int whichmask); void draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority ); }; diff --git a/src/mame/video/baraduke.c b/src/mame/video/baraduke.c index 0dc470b8a86..35fb6d36c43 100644 --- a/src/mame/video/baraduke.c +++ b/src/mame/video/baraduke.c @@ -123,7 +123,10 @@ void baraduke_state::video_start() m_bg_tilemap[0]->set_transparent_pen(7); m_bg_tilemap[1]->set_transparent_pen(7); - m_tx_tilemap->set_scrolldx(0,512-288); + m_bg_tilemap[0]->set_scrolldx(-26, -227+26); + m_bg_tilemap[1]->set_scrolldx(-24, -227+24); + m_bg_tilemap[0]->set_scrolldy(-9, 9); + m_bg_tilemap[1]->set_scrolldy(-9, 9); m_tx_tilemap->set_scrolldy(16,16); } @@ -284,14 +287,12 @@ void baraduke_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec void baraduke_state::set_scroll(int layer) { - static const int xdisp[2] = { 26, 24 }; - int scrollx, scrolly; + int scrollx = m_xscroll[layer]; + int scrolly = m_yscroll[layer]; - scrollx = m_xscroll[layer] + xdisp[layer]; - scrolly = m_yscroll[layer] + 9; if (flip_screen()) { - scrollx = -scrollx + 3; + scrollx = -scrollx; scrolly = -scrolly; } @@ -306,9 +307,7 @@ UINT32 baraduke_state::screen_update_baraduke(screen_device &screen, bitmap_ind1 int back; /* flip screen is embedded in the sprite control registers */ - /* can't use flip_screen_set() because the visible area is asymmetrical */ - flip_screen_set_no_update(spriteram[0x07f6] & 0x01); - machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); + flip_screen_set(spriteram[0x07f6] & 0x01); set_scroll(0); set_scroll(1); diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c index 3169cb082aa..7848f33b71d 100644 --- a/src/mame/video/pacland.c +++ b/src/mame/video/pacland.c @@ -198,6 +198,8 @@ void pacland_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); + m_bg_tilemap->set_scrolldx(3, 340); + m_fg_tilemap->set_scrolldx(0, 336); /* scrolling portion needs an additional offset when flipped */ m_fg_tilemap->set_scroll_rows(32); /* create one group per color code; for each group, set the transparency mask @@ -271,7 +273,7 @@ WRITE8_MEMBER(pacland_state::pacland_bankswitch_w) ***************************************************************************/ /* the sprite generator IC is the same as Mappy */ -void pacland_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichmask) +void pacland_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip, int whichmask) { UINT8 *spriteram = m_spriteram + 0x780; UINT8 *spriteram_2 = spriteram + 0x800; @@ -298,7 +300,7 @@ void pacland_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co sprite &= ~sizex; sprite &= ~(sizey << 1); - if (flip_screen()) + if (flip) { flipx ^= 1; flipy ^= 1; @@ -365,16 +367,17 @@ void pacland_state::draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const r UINT32 pacland_state::screen_update_pacland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int row; + int flip = flip_screen(); for (row = 5; row < 29; row++) - m_fg_tilemap->set_scrollx(row, flip_screen() ? m_scroll0-7 : m_scroll0); - m_bg_tilemap->set_scrollx(0, flip_screen() ? m_scroll1-4 : m_scroll1-3); + m_fg_tilemap->set_scrollx(row, m_scroll0 - (flip ? 7 : 0)); + m_bg_tilemap->set_scrollx(0, m_scroll1); /* draw high priority sprite pixels, setting priority bitmap to non-zero wherever there is a high-priority pixel; note that we draw to the bitmap which is safe because the bg_tilemap draw will overwrite everything */ screen.priority().fill(0x00, cliprect); - draw_sprites(screen, bitmap, cliprect, 0); + draw_sprites(screen, bitmap, cliprect, flip, 0); /* draw background */ m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -383,12 +386,12 @@ UINT32 pacland_state::screen_update_pacland(screen_device &screen, bitmap_ind16 draw_fg(screen, bitmap, cliprect, 0); /* draw sprites with regular transparency */ - draw_sprites(screen, bitmap, cliprect, 1); + draw_sprites(screen, bitmap, cliprect, flip, 1); /* draw high priority fg tiles */ draw_fg(screen, bitmap, cliprect, 1); /* draw sprite pixels with colortable values >= 0xf0, which have priority over everything */ - draw_sprites(screen, bitmap, cliprect, 2); + draw_sprites(screen, bitmap, cliprect, flip, 2); return 0; }