summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2021-05-17 11:20:22 +0200
committer Olivier Galibert <galibert@pobox.com>2021-05-17 11:20:22 +0200
commit989e9a5ee7777fb9e46d49d8398e218a0c2090a2 (patch)
tree8a2c31396ee5295dd1adde508698ee824e98a6b5
parent2f10c2ee2e8cdd536eee61ef28a53badda9c246f (diff)
capcom: Adjust the common screen timings on old capcom games [O. Galibert, Jotego]
-rw-r--r--src/emu/screen.h2
-rw-r--r--src/mame/drivers/1942.cpp10
-rw-r--r--src/mame/drivers/1943.cpp6
-rw-r--r--src/mame/drivers/bionicc.cpp10
-rw-r--r--src/mame/drivers/blktiger.cpp5
-rw-r--r--src/mame/drivers/commando.cpp7
-rw-r--r--src/mame/drivers/gng.cpp5
-rw-r--r--src/mame/drivers/gunsmoke.cpp7
-rw-r--r--src/mame/drivers/supduck.cpp11
-rw-r--r--src/mame/drivers/tigeroad.cpp11
-rw-r--r--src/mame/drivers/vulgus.cpp5
-rw-r--r--src/mame/video/1942.cpp16
-rw-r--r--src/mame/video/1943.cpp9
-rw-r--r--src/mame/video/blktiger.cpp9
-rw-r--r--src/mame/video/commando.cpp7
-rw-r--r--src/mame/video/gng.cpp7
-rw-r--r--src/mame/video/gunsmoke.cpp7
-rw-r--r--src/mame/video/tigeroad.cpp5
-rw-r--r--src/mame/video/tigeroad_spr.cpp2
-rw-r--r--src/mame/video/vulgus.cpp7
20 files changed, 88 insertions, 60 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h
index d3f4ce418b1..bfff28d0f6f 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -238,7 +238,7 @@ public:
m_vblank = m_refresh / vtotal * (vtotal - (vbstart - vbend));
m_width = htotal;
m_height = vtotal;
- m_visarea.set(hbend, hbstart - 1, vbend, vbstart - 1);
+ m_visarea.set(hbend, hbstart ? hbstart - 1 : htotal - 1, vbend, vbstart - 1);
return *this;
}
screen_device &set_raw(const XTAL &xtal, u16 htotal, u16 hbend, u16 hbstart, u16 vtotal, u16 vbend, u16 vbstart)
diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp
index ee44a0caaf0..ec9451f6fa8 100644
--- a/src/mame/drivers/1942.cpp
+++ b/src/mame/drivers/1942.cpp
@@ -513,10 +513,7 @@ void _1942_state::_1942(machine_config &config)
PALETTE(config, m_palette, FUNC(_1942_state::_1942_palette), 64*4+4*32*8+16*16, 256);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(32*8, 32*8);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_raw(MASTER_CLOCK/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
m_screen->set_screen_update(FUNC(_1942_state::screen_update));
m_screen->set_palette(m_palette);
@@ -576,10 +573,7 @@ void _1942p_state::_1942p(machine_config &config)
PALETTE(config, m_palette, FUNC(_1942p_state::_1942p_palette), 0x500, 0x400);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(32*8, 32*8);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_raw(MASTER_CLOCK/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
m_screen->set_screen_update(FUNC(_1942p_state::screen_update));
m_screen->set_palette(m_palette);
diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp
index 4736273669e..57ae008bbfa 100644
--- a/src/mame/drivers/1943.cpp
+++ b/src/mame/drivers/1943.cpp
@@ -28,7 +28,6 @@
- use priority PROM for drawing sprites
- find and dump an unmodified bme01.12d to correct the 1943 Euro set
- Accurate interrupt handling
- - Screen raw parameters
Notes:
@@ -297,10 +296,7 @@ void _1943_state::_1943(machine_config &config)
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(60);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
- m_screen->set_size(32*8, 32*8);
- m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_raw(XTAL(24'000'000)/4, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
m_screen->set_screen_update(FUNC(_1943_state::screen_update));
m_screen->set_palette(m_palette);
diff --git a/src/mame/drivers/bionicc.cpp b/src/mame/drivers/bionicc.cpp
index 9d8bea6d046..c26cf9f0c71 100644
--- a/src/mame/drivers/bionicc.cpp
+++ b/src/mame/drivers/bionicc.cpp
@@ -401,6 +401,13 @@ void bionicc_state::video_start()
m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); /* split type 0 is completely transparent in front half */
m_fg_tilemap->set_transmask(1, 0xffc1, 0x803e); /* split type 1 has pens 1-5 opaque in front half */
m_bg_tilemap->set_transparent_pen(15);
+
+ m_tx_tilemap->set_scrolldx(128, 128);
+ m_tx_tilemap->set_scrolldy( 6, 6);
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
}
@@ -649,8 +656,7 @@ void bionicc_state::bionicc(machine_config &config)
// video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- /* FIXME: should be 257 visible horizontal pixels, first visible pixel should be repeated, back porch/front porch should be separated */
- screen.set_raw(24_MHz_XTAL / 4, 386, 0, 256, 260, 16, 240);
+ screen.set_raw(24_MHz_XTAL / 4, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(bionicc_state::screen_update));
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
screen.set_palette(m_palette);
diff --git a/src/mame/drivers/blktiger.cpp b/src/mame/drivers/blktiger.cpp
index 134aba50ace..2de5018d2c0 100644
--- a/src/mame/drivers/blktiger.cpp
+++ b/src/mame/drivers/blktiger.cpp
@@ -310,10 +310,7 @@ void blktiger_state::blktiger(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(24_MHz_XTAL / 4, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(blktiger_state::screen_update_blktiger));
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
screen.set_palette(m_palette);
diff --git a/src/mame/drivers/commando.cpp b/src/mame/drivers/commando.cpp
index 1841ef4761a..6137c7df8e3 100644
--- a/src/mame/drivers/commando.cpp
+++ b/src/mame/drivers/commando.cpp
@@ -46,7 +46,7 @@ Note : there is an ingame typo bug that doesn't display the bonus life values
// Notes by Jose Tejada (jotego):
// The main CPU frequency is 3 MHz, after a two-stage FF clock divider.
-// The CPU clock is gated by bus arbitrion logic. The CPU clock is halted until
+// The CPU clock is gated by bus arbitration logic. The CPU clock is halted until
// video hardware has an opening in memory access, then the CPU is allowed to
// access common memory. This slows down the CPU but doesn't alter its basic 3MHz frequency.
//
@@ -278,10 +278,7 @@ void commando_state::commando(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(XTAL / 2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(commando_state::screen_update_commando));
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
screen.screen_vblank().append(FUNC(commando_state::vblank_irq));
diff --git a/src/mame/drivers/gng.cpp b/src/mame/drivers/gng.cpp
index 19f8d380928..8e86dae7aa6 100644
--- a/src/mame/drivers/gng.cpp
+++ b/src/mame/drivers/gng.cpp
@@ -408,10 +408,7 @@ void gng_state::gng(machine_config &config)
BUFFERED_SPRITERAM8(config, m_spriteram);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(59.59); /* verified on pcb */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(XTAL(12'000'000)/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(gng_state::screen_update_gng));
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
screen.set_palette(m_palette);
diff --git a/src/mame/drivers/gunsmoke.cpp b/src/mame/drivers/gunsmoke.cpp
index 57e41045361..b4b9d797310 100644
--- a/src/mame/drivers/gunsmoke.cpp
+++ b/src/mame/drivers/gunsmoke.cpp
@@ -316,14 +316,11 @@ void gunsmoke_state::gunsmoke(machine_config &config)
z80_device &audiocpu(Z80(config, "audiocpu", 3000000)); // 3 MHz
audiocpu.set_addrmap(AS_PROGRAM, &gunsmoke_state::sound_map);
- audiocpu.set_periodic_int(FUNC(gunsmoke_state::irq0_line_hold), attotime::from_hz(4*59.63));
+ audiocpu.set_periodic_int(FUNC(gunsmoke_state::irq0_line_hold), attotime::from_ticks(384*262/4, 6000000));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(59.63);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(gunsmoke_state::screen_update_gunsmoke));
screen.set_palette(m_palette);
diff --git a/src/mame/drivers/supduck.cpp b/src/mame/drivers/supduck.cpp
index b2e87589d6f..34f5a062f41 100644
--- a/src/mame/drivers/supduck.cpp
+++ b/src/mame/drivers/supduck.cpp
@@ -131,6 +131,12 @@ void supduck_state::video_start()
m_text_tilemap->set_transparent_pen(0x3);
m_fore_tilemap->set_transparent_pen(0xf);
+ m_text_tilemap->set_scrolldx(128, 128);
+ m_text_tilemap->set_scrolldy( 6, 6);
+ m_fore_tilemap->set_scrolldx(128, 128);
+ m_fore_tilemap->set_scrolldy( 6, 6);
+ m_back_tilemap->set_scrolldx(128, 128);
+ m_back_tilemap->set_scrolldy( 6, 6);
}
uint32_t supduck_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -425,11 +431,8 @@ void supduck_state::supduck(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(supduck_state::screen_update));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_palette(m_palette);
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
diff --git a/src/mame/drivers/tigeroad.cpp b/src/mame/drivers/tigeroad.cpp
index 49b83e36797..d91a1baecd0 100644
--- a/src/mame/drivers/tigeroad.cpp
+++ b/src/mame/drivers/tigeroad.cpp
@@ -632,11 +632,9 @@ void tigeroad_state::tigeroad(machine_config &config)
// video hardware
BUFFERED_SPRITERAM16(config, "spriteram");
+ // Timings may be different, driver originally had 60.08Hz vblank.
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60.08); // verified on pcb
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(tigeroad_state::screen_update));
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
screen.set_palette(m_palette);
@@ -715,10 +713,7 @@ void tigeroad_state::f1dream_comad(machine_config &config)
BUFFERED_SPRITERAM16(config, "spriteram");
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60.08); // verified on pcb
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(tigeroad_state::screen_update));
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
screen.set_palette(m_palette);
diff --git a/src/mame/drivers/vulgus.cpp b/src/mame/drivers/vulgus.cpp
index da67ca433dd..97c7dd8189a 100644
--- a/src/mame/drivers/vulgus.cpp
+++ b/src/mame/drivers/vulgus.cpp
@@ -229,10 +229,7 @@ void vulgus_state::vulgus(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(59.59);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(32*8, 32*8);
- screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_raw(XTAL(12'000'000)/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
screen.set_screen_update(FUNC(vulgus_state::screen_update));
screen.set_palette(m_palette);
diff --git a/src/mame/video/1942.cpp b/src/mame/video/1942.cpp
index 926bc59d0c3..8cb3cc11e65 100644
--- a/src/mame/video/1942.cpp
+++ b/src/mame/video/1942.cpp
@@ -135,6 +135,11 @@ void _1942_state::video_start()
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(0);
+
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
}
void _1942p_state::video_start()
@@ -143,6 +148,11 @@ void _1942p_state::video_start()
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(_1942_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
m_fg_tilemap->set_transparent_pen(3);
+
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
}
@@ -225,7 +235,7 @@ void _1942_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const rectangle cliprecty(cliprect.min_x, cliprect.max_x, y, y);
uint8_t objdata[4];
- uint8_t v = flip_screen() ? ~(y - 1) : y - 1;
+ uint8_t v = flip_screen() ? ~(y - 1 - 6) : y - 1 - 6;
for (int h = 496; h >= 128; h -= 16)
{
const bool objcnt4 = BIT(h, 8) != BIT(~h, 7);
@@ -283,7 +293,7 @@ void _1942_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
do
{
- m_gfxdecode->gfx(2)->transpen(bitmap, cliprecty, code + i, col, flip_screen(), flip_screen(), sx, sy + 16 * i * dir, 15);
+ m_gfxdecode->gfx(2)->transpen(bitmap, cliprecty, code + i, col, flip_screen(), flip_screen(), sx+128, sy + 6 + 16 * i * dir, 15);
} while (i-- > 0);
}
}
@@ -319,7 +329,7 @@ void _1942p_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
sy = 240 - sy;
}
- m_gfxdecode->gfx(2)->transpen(bitmap, cliprect, code, col, flip_screen(), flip_screen(), sx, sy, 15);
+ m_gfxdecode->gfx(2)->transpen(bitmap, cliprect, code, col, flip_screen(), flip_screen(), sx+128, sy+6, 15);
}
}
diff --git a/src/mame/video/1943.cpp b/src/mame/video/1943.cpp
index 0ecc0adc192..32437c08769 100644
--- a/src/mame/video/1943.cpp
+++ b/src/mame/video/1943.cpp
@@ -202,6 +202,13 @@ void _1943_state::video_start()
m_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x0f);
m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_bg2_tilemap->set_scrolldx(128, 128);
+ m_bg2_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
+
save_item(NAME(m_char_on));
save_item(NAME(m_obj_on));
save_item(NAME(m_bg1_on));
@@ -298,7 +305,7 @@ void _1943_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
sy = 240 - sy;
}
- _1943_drawgfx(bitmap,cliprect, m_gfxdecode->gfx(3), code, color, flip_screen(), flip_screen(), sx, sy, 0);
+ _1943_drawgfx(bitmap,cliprect, m_gfxdecode->gfx(3), code, color, flip_screen(), flip_screen(), sx+128, sy+6, 0);
}
}
diff --git a/src/mame/video/blktiger.cpp b/src/mame/video/blktiger.cpp
index 4f5c245bee4..004c4863606 100644
--- a/src/mame/video/blktiger.cpp
+++ b/src/mame/video/blktiger.cpp
@@ -86,6 +86,13 @@ void blktiger_state::video_start()
m_bg_tilemap4x8->set_transmask(2, 0xff00, 0x80ff);
m_bg_tilemap4x8->set_transmask(3, 0xf000, 0x8fff);
+ m_tx_tilemap->set_scrolldx(128, 128);
+ m_tx_tilemap->set_scrolldy( 6, 6);
+ m_bg_tilemap8x4->set_scrolldx(128, 128);
+ m_bg_tilemap8x4->set_scrolldy( 6, 6);
+ m_bg_tilemap4x8->set_scrolldx(128, 128);
+ m_bg_tilemap4x8->set_scrolldy( 6, 6);
+
save_pointer(NAME(m_scroll_ram), BGRAM_BANK_SIZE * BGRAM_BANKS);
}
@@ -207,7 +214,7 @@ void blktiger_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
code,
color,
flipx,flip_screen(),
- sx,sy,15);
+ sx+128,sy+6,15);
}
}
diff --git a/src/mame/video/commando.cpp b/src/mame/video/commando.cpp
index 0297de67b10..92fd2e65112 100644
--- a/src/mame/video/commando.cpp
+++ b/src/mame/video/commando.cpp
@@ -86,6 +86,11 @@ void commando_state::video_start()
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(commando_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(commando_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
+
m_fg_tilemap->set_transparent_pen(3);
}
@@ -115,7 +120,7 @@ void commando_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
}
if (bank < 3)
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 15);
+ m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx+128, sy+6, 15);
}
}
diff --git a/src/mame/video/gng.cpp b/src/mame/video/gng.cpp
index 5770e6ff1bd..d0513344f6e 100644
--- a/src/mame/video/gng.cpp
+++ b/src/mame/video/gng.cpp
@@ -53,6 +53,11 @@ void gng_state::video_start()
m_fg_tilemap->set_transparent_pen(3);
m_bg_tilemap->set_transmask(0, 0xff, 0x00); // split type 0 is totally transparent in front half
m_bg_tilemap->set_transmask(1, 0x41, 0xbe); // split type 1 has pens 0 and 6 transparent in front half
+
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
}
@@ -128,7 +133,7 @@ void gng_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
buffered_spriteram[offs] + ((attributes << 2) & 0x300),
(attributes >> 4) & 3,
flipx,flipy,
- sx,sy,15);
+ sx+128,sy+6,15);
}
}
diff --git a/src/mame/video/gunsmoke.cpp b/src/mame/video/gunsmoke.cpp
index 9e46d5b4ad5..036afa552c0 100644
--- a/src/mame/video/gunsmoke.cpp
+++ b/src/mame/video/gunsmoke.cpp
@@ -128,6 +128,11 @@ void gunsmoke_state::video_start()
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gunsmoke_state::get_bg_tile_info)), TILEMAP_SCAN_COLS, 32, 32, 2048, 8);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(gunsmoke_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
+
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 0x4f);
}
@@ -160,7 +165,7 @@ void gunsmoke_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
flipy = !flipy;
}
- m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx, sy, 0);
+ m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, code, color, flipx, flipy, sx+128, sy+6, 0);
}
}
diff --git a/src/mame/video/tigeroad.cpp b/src/mame/video/tigeroad.cpp
index 647355588dc..adf1dc542d5 100644
--- a/src/mame/video/tigeroad.cpp
+++ b/src/mame/video/tigeroad.cpp
@@ -108,6 +108,11 @@ void tigeroad_state::video_start()
m_fg_tilemap->set_transparent_pen(3);
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
+
save_item(NAME(m_bgcharbank));
}
diff --git a/src/mame/video/tigeroad_spr.cpp b/src/mame/video/tigeroad_spr.cpp
index f636d40a767..dab1db5c7b5 100644
--- a/src/mame/video/tigeroad_spr.cpp
+++ b/src/mame/video/tigeroad_spr.cpp
@@ -102,7 +102,7 @@ void tigeroad_spr_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cl
tile_number,
color,
flipx, flipy,
- sx, sy, 15);
+ sx+128, sy+6, 15);
source -= 4;
}
diff --git a/src/mame/video/vulgus.cpp b/src/mame/video/vulgus.cpp
index e94e0254abd..0971a709e47 100644
--- a/src/mame/video/vulgus.cpp
+++ b/src/mame/video/vulgus.cpp
@@ -114,6 +114,11 @@ void vulgus_state::video_start()
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 47);
+ m_bg_tilemap->set_scrolldx(128, 128);
+ m_bg_tilemap->set_scrolldy( 6, 6);
+ m_fg_tilemap->set_scrolldx(128, 128);
+ m_fg_tilemap->set_scrolldy( 6, 6);
+
save_item(NAME(m_palette_bank));
}
@@ -192,7 +197,7 @@ void vulgus_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
if (row == 2) row = 3;
for (; row >= 0; row--)
- gfx->transpen(bitmap, cliprect, code + row, color, flip, flip, sx, sy + 16 * row * dir, 15);
+ gfx->transpen(bitmap, cliprect, code + row, color, flip, flip, sx+128, sy + 6 + 16 * row * dir, 15);
}
}