ddragon3_v: small cleanup to source code spacing

This commit is contained in:
hap 2025-02-24 19:45:35 +01:00
parent 6783d93bd3
commit 57f6141e41
3 changed files with 92 additions and 103 deletions

View File

@ -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"));

View File

@ -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);
}

View File

@ -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( source<finish )
while (source < finish)
{
int xpos, ypos, colourbank, flipx, flipy, chain, enable, number, count;
enable = (source[1] & 0x0001);
if (enable) {
xpos = +(source[5] & 0x00ff) | (source[1] & 0x0004) << 6;
if (xpos>512-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;count<chain;count++) {
if (flip_screen()) {
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);
}
} 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;
}