summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/emu/screen.cpp4
-rw-r--r--src/mame/technos/ddragon3.cpp1
-rw-r--r--src/mame/technos/ddragon3_v.cpp192
3 files changed, 93 insertions, 104 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;
-
- 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));
+ uint16_t *tilebase = &m_fg_videoram[tile_index * 2];
+ int tileno = (tilebase[1] & 0x1fff);
+ int colbank = (tilebase[0] & 0x000f);
+
+ 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;
+
+ int 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;
+ 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;
}