mirror of
https://github.com/holub/mame
synced 2025-06-26 14:24:12 +03:00
capcom: Adjust the common screen timings on old capcom games [O. Galibert, Jotego]
This commit is contained in:
parent
2f10c2ee2e
commit
989e9a5ee7
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user