From 57f6141e4197ccd436bf91c19d7aac083e2924cf Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 24 Feb 2025 19:45:35 +0100 Subject: [PATCH] ddragon3_v: small cleanup to source code spacing --- src/emu/screen.cpp | 4 +- src/mame/technos/ddragon3.cpp | 1 - src/mame/technos/ddragon3_v.cpp | 190 +++++++++++++++----------------- 3 files changed, 92 insertions(+), 103 deletions(-) diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp index f2fbb290303..8082b7ddad2 100644 --- a/src/emu/screen.cpp +++ b/src/emu/screen.cpp @@ -1172,7 +1172,7 @@ bool screen_device::update_partial(int scanline) } // skip if we already rendered this frame - // this can happen if the executing cpu timeslice is in the previous frame while scanline 0 already started + // this can happen if a cpu timeslice that called update_partial is in the previous frame while scanline 0 already started if (m_last_partial_scan == 0 && m_last_partial_reset > machine().time()) { LOG_PARTIAL_UPDATES(("skipped because frame was already rendered\n")); @@ -1290,7 +1290,7 @@ void screen_device::update_now() } // skip if we already rendered this frame - // this can happen if the executing cpu timeslice is in the previous frame while scanline 0 already started + // this can happen if a cpu timeslice that called update_now is in the previous frame while scanline 0 already started if (m_last_partial_scan == 0 && m_partial_scan_hpos == 0 && m_last_partial_reset > machine().time()) { LOG_PARTIAL_UPDATES(("skipped because frame was already rendered\n")); diff --git a/src/mame/technos/ddragon3.cpp b/src/mame/technos/ddragon3.cpp index f1b8cb27ca5..7734aee2f43 100644 --- a/src/mame/technos/ddragon3.cpp +++ b/src/mame/technos/ddragon3.cpp @@ -234,7 +234,6 @@ void wwfwfest_state::wwfwfest_irq_ack_w(offs_t offset, uint16_t data) { if (offset == 0) m_maincpu->set_input_line(3, CLEAR_LINE); - else m_maincpu->set_input_line(2, CLEAR_LINE); } diff --git a/src/mame/technos/ddragon3_v.cpp b/src/mame/technos/ddragon3_v.cpp index d7e18d044bc..2bd0dfcae8e 100644 --- a/src/mame/technos/ddragon3_v.cpp +++ b/src/mame/technos/ddragon3_v.cpp @@ -13,14 +13,14 @@ void ddragon3_state::ddragon3_scroll_w(offs_t offset, uint16_t data, uint16_t me { switch (offset) { - case 0: COMBINE_DATA(&m_fg_scrollx); break; // Scroll X, BG1 - case 1: COMBINE_DATA(&m_fg_scrolly); break; // Scroll Y, BG1 - case 2: COMBINE_DATA(&m_bg_scrollx); break; // Scroll X, BG0 - case 3: COMBINE_DATA(&m_bg_scrolly); break; // Scroll Y, BG0 - case 4: break; // Unknown write - case 5: flip_screen_set(data & 0x01); break; // Flip Screen + case 0: COMBINE_DATA(&m_fg_scrollx); break; // Scroll X, BG1 + case 1: COMBINE_DATA(&m_fg_scrolly); break; // Scroll Y, BG1 + case 2: COMBINE_DATA(&m_bg_scrollx); break; // Scroll X, BG0 + case 3: COMBINE_DATA(&m_bg_scrolly); break; // Scroll Y, BG0 + case 4: break; // Unknown write + case 5: flip_screen_set(data & 0x01); break; // Flip Screen case 6: - COMBINE_DATA(&m_bg_tilebase); // BG Tile Base + COMBINE_DATA(&m_bg_tilebase); // BG Tile Base m_bg_tilebase &= 0x1ff; m_bg_tilemap->mark_all_dirty(); break; @@ -63,23 +63,15 @@ void ddragon3_state::ddragon3_bg_videoram_w(offs_t offset, uint16_t data, uint16 - /*****************************************************************************************************************************************************/ - - TILE_GET_INFO_MEMBER(ddragon3_state::get_fg_tile_info) { - uint16_t *tilebase; - int tileno,colbank; + uint16_t *tilebase = &m_fg_videoram[tile_index * 2]; + int tileno = (tilebase[1] & 0x1fff); + int colbank = (tilebase[0] & 0x000f); - tilebase = &m_fg_videoram[tile_index*2]; - tileno = (tilebase[1] & 0x1fff); - colbank = (tilebase[0] & 0x000f); - tileinfo.set(1, - tileno, - colbank, - TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6)); + tileinfo.set(1, tileno, colbank, TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6)); } @@ -92,30 +84,23 @@ void ddragon3_state::ddragon3_fg_videoram_w(offs_t offset, uint16_t data, uint16 - /*****************************************************************************************************************************************************/ /* 8x8 text layer - wwfwfest only */ TILE_GET_INFO_MEMBER(wwfwfest_state::get_fg0_tile_info) { - uint16_t *tilebase; - int tileno; - int colbank; - tilebase = &m_fg0_videoram[tile_index*2]; - tileno = (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8); - colbank = (tilebase[1] & 0x00f0) >> 4; - tileinfo.set(3, - tileno, - colbank, - 0); + uint16_t *tilebase = &m_fg0_videoram[tile_index * 2]; + int tileno = (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8); + int colbank = (tilebase[1] & 0x00f0) >> 4; + + tileinfo.set(3, tileno, colbank, 0); } void wwfwfest_state::wwfwfest_fg0_videoram_w(offs_t offset, uint16_t data) { - /* Videoram is 8 bit, upper & lower byte writes end up in the same place due to m68k byte smearing */ - m_fg0_videoram[offset]=data&0xff; - - m_fg0_tilemap->mark_tile_dirty(offset/2); + // Videoram is 8 bit, upper & lower byte writes end up in the same place due to m68k byte smearing + m_fg0_videoram[offset] = data & 0xff; + m_fg0_tilemap->mark_tile_dirty(offset / 2); } /*****************************************************************************************************************************************************/ @@ -138,7 +123,7 @@ void wwfwfest_state::video_start() { ddragon3_state::video_start(); - m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfwfest_state::get_fg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8,64,32); + m_fg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wwfwfest_state::get_fg0_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); m_fg0_tilemap->set_transparent_pen(0); } @@ -179,52 +164,54 @@ void ddragon3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec int length = m_spriteram->bytes(); gfx_element *gfx = m_gfxdecode->gfx(2); uint16_t *source = buffered_spriteram16; - uint16_t *finish = source + length/2; + uint16_t *finish = source + length / 2; - while( source512-16) xpos -=512; + if (source[1] & 0x0001) + { + int xpos = (source[5] & 0x00ff) | (source[1] & 0x0004) << 6; + if (xpos > 512 - 16) xpos -= 512; xpos += m_sprite_xoff; - ypos = (source[0] & 0x00ff) | (source[1] & 0x0002) << 7; - ypos = (256 - ypos) & 0x1ff; - ypos -= 16 ; - flipx = (source[1] & 0x0010) >> 4; - flipy = (source[1] & 0x0008) >> 3; - chain = (source[1] & 0x00e0) >> 5; - chain += 1; - number = (source[2] & 0x00ff) | (source[3] & 0x00ff) << 8; - colourbank = (source[4] & 0x000f); - if (flip_screen()) { - if (flipy) flipy=0; else flipy=1; - if (flipx) flipx=0; else flipx=1; - ypos=240-ypos-m_sprite_xoff; - xpos=304-xpos; + int ypos = (source[0] & 0x00ff) | (source[1] & 0x0002) << 7; + ypos = (256 - ypos) & 0x1ff; + ypos -= 16; + + int flipx = (source[1] & 0x0010) >> 4; + int flipy = (source[1] & 0x0008) >> 3; + int chain = (source[1] & 0x00e0) >> 5; + int number = (source[2] & 0x00ff) | (source[3] & 0x00ff) << 8; + int colourbank = (source[4] & 0x000f); + + if (flip_screen()) + { + flipy = !flipy; + flipx = !flipx; + ypos = 240 - ypos - m_sprite_xoff; + xpos = 304 - xpos; } - for (count=0;counttranspen(bitmap,cliprect,number+count,colourbank,flipx,flipy,xpos,ypos+(16*(chain-1))-(16*count),0); - } else { - gfx->transpen(bitmap,cliprect,number+count,colourbank,flipx,flipy,xpos,ypos+16*count,0); - } - } else { - if (flipy) { - gfx->transpen(bitmap,cliprect,number+count,colourbank,flipx,flipy,xpos,ypos-(16*(chain-1))+(16*count),0); - } else { - gfx->transpen(bitmap,cliprect,number+count,colourbank,flipx,flipy,xpos,ypos-16*count,0); - } + for (int count = 0; count <= chain; count++) + { + if (flip_screen()) + { + if (!flipy) + gfx->transpen(bitmap, cliprect, number + count, colourbank, flipx, flipy, xpos, ypos + (16 * chain) - (16 * count), 0); + else + gfx->transpen(bitmap, cliprect, number + count, colourbank, flipx, flipy, xpos, ypos + 16 * count, 0); + } + else + { + if (flipy) + gfx->transpen(bitmap, cliprect, number + count, colourbank, flipx, flipy, xpos, ypos - (16 * chain) + (16 * count), 0); + else + gfx->transpen(bitmap, cliprect, number + count, colourbank, flipx, flipy, xpos, ypos - 16 * count, 0); } } } - source+=8; + + source += 8; } } @@ -232,8 +219,6 @@ void ddragon3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec /*****************************************************************************************************************************************************/ - - uint32_t ddragon3_state::screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0, m_bg_scrollx); @@ -269,7 +254,7 @@ uint32_t ddragon3_state::screen_update_ctribe(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0, m_fg_scrollx); m_fg_tilemap->set_scrolly(0, m_fg_scrolly); - if(m_vreg & 8) + if (m_vreg & 8) { m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); draw_sprites(bitmap, cliprect); @@ -287,39 +272,44 @@ uint32_t ddragon3_state::screen_update_ctribe(screen_device &screen, bitmap_ind1 uint32_t wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - if (m_pri == 0x78) { - m_fg_tilemap->set_scrolly(0, m_fg_scrolly ); - m_fg_tilemap->set_scrollx(0, m_fg_scrollx + m_bg0_dx); - m_bg_tilemap->set_scrolly(0, m_bg_scrolly ); - m_bg_tilemap->set_scrollx(0, m_bg_scrollx + m_bg1_dx[0]); - } else { - m_bg_tilemap->set_scrolly(0, m_fg_scrolly ); - m_bg_tilemap->set_scrollx(0, m_fg_scrollx + m_bg1_dx[1]); - m_fg_tilemap->set_scrolly(0, m_bg_scrolly ); - m_fg_tilemap->set_scrollx(0, m_bg_scrollx + m_bg0_dx); + if (m_pri == 0x78) + { + m_fg_tilemap->set_scrolly(0, m_fg_scrolly); + m_fg_tilemap->set_scrollx(0, m_fg_scrollx + m_bg0_dx); + m_bg_tilemap->set_scrolly(0, m_bg_scrolly); + m_bg_tilemap->set_scrollx(0, m_bg_scrollx + m_bg1_dx[0]); + } + else + { + m_bg_tilemap->set_scrolly(0, m_fg_scrolly); + m_bg_tilemap->set_scrollx(0, m_fg_scrollx + m_bg1_dx[1]); + m_fg_tilemap->set_scrolly(0, m_bg_scrolly); + m_fg_tilemap->set_scrollx(0, m_bg_scrollx + m_bg0_dx); } - /* todo : which bits of pri are significant to the order */ - - if (m_pri == 0x7b) { - m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); - draw_sprites(bitmap,cliprect); + // TODO: which bits of pri are significant to the order + if (m_pri == 0x7b) + { + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + draw_sprites(bitmap, cliprect); } - if (m_pri == 0x7c) { - m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + if (m_pri == 0x7c) + { + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + draw_sprites(bitmap, cliprect); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } - if (m_pri == 0x78) { - m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); - draw_sprites(bitmap,cliprect); + if (m_pri == 0x78) + { + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + draw_sprites(bitmap, cliprect); } - m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; }