mirror of
https://github.com/holub/mame
synced 2025-06-28 07:04:35 +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_vblank = m_refresh / vtotal * (vtotal - (vbstart - vbend));
|
||||||
m_width = htotal;
|
m_width = htotal;
|
||||||
m_height = vtotal;
|
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;
|
return *this;
|
||||||
}
|
}
|
||||||
screen_device &set_raw(const XTAL &xtal, u16 htotal, u16 hbend, u16 hbstart, u16 vtotal, u16 vbend, u16 vbstart)
|
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);
|
PALETTE(config, m_palette, FUNC(_1942_state::_1942_palette), 64*4+4*32*8+16*16, 256);
|
||||||
|
|
||||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||||
m_screen->set_refresh_hz(60);
|
m_screen->set_raw(MASTER_CLOCK/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(_1942_state::screen_update));
|
m_screen->set_screen_update(FUNC(_1942_state::screen_update));
|
||||||
m_screen->set_palette(m_palette);
|
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);
|
PALETTE(config, m_palette, FUNC(_1942p_state::_1942p_palette), 0x500, 0x400);
|
||||||
|
|
||||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||||
m_screen->set_refresh_hz(60);
|
m_screen->set_raw(MASTER_CLOCK/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(_1942p_state::screen_update));
|
m_screen->set_screen_update(FUNC(_1942p_state::screen_update));
|
||||||
m_screen->set_palette(m_palette);
|
m_screen->set_palette(m_palette);
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
- use priority PROM for drawing sprites
|
- use priority PROM for drawing sprites
|
||||||
- find and dump an unmodified bme01.12d to correct the 1943 Euro set
|
- find and dump an unmodified bme01.12d to correct the 1943 Euro set
|
||||||
- Accurate interrupt handling
|
- Accurate interrupt handling
|
||||||
- Screen raw parameters
|
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
@ -297,10 +296,7 @@ void _1943_state::_1943(machine_config &config)
|
|||||||
|
|
||||||
// video hardware
|
// video hardware
|
||||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||||
m_screen->set_refresh_hz(60);
|
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_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_screen_update(FUNC(_1943_state::screen_update));
|
m_screen->set_screen_update(FUNC(_1943_state::screen_update));
|
||||||
m_screen->set_palette(m_palette);
|
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(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_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_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
|
// video hardware
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
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, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
screen.set_raw(24_MHz_XTAL / 4, 386, 0, 256, 260, 16, 240);
|
|
||||||
screen.set_screen_update(FUNC(bionicc_state::screen_update));
|
screen.set_screen_update(FUNC(bionicc_state::screen_update));
|
||||||
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||||
screen.set_palette(m_palette);
|
screen.set_palette(m_palette);
|
||||||
|
@ -310,10 +310,7 @@ void blktiger_state::blktiger(machine_config &config)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(60);
|
screen.set_raw(24_MHz_XTAL / 4, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(blktiger_state::screen_update_blktiger));
|
screen.set_screen_update(FUNC(blktiger_state::screen_update_blktiger));
|
||||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||||
screen.set_palette(m_palette);
|
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):
|
// Notes by Jose Tejada (jotego):
|
||||||
// The main CPU frequency is 3 MHz, after a two-stage FF clock divider.
|
// 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
|
// 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.
|
// 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 */
|
/* video hardware */
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(60);
|
screen.set_raw(XTAL / 2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(commando_state::screen_update_commando));
|
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().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||||
screen.screen_vblank().append(FUNC(commando_state::vblank_irq));
|
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);
|
BUFFERED_SPRITERAM8(config, m_spriteram);
|
||||||
|
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(59.59); /* verified on pcb */
|
screen.set_raw(XTAL(12'000'000)/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(gng_state::screen_update_gng));
|
screen.set_screen_update(FUNC(gng_state::screen_update_gng));
|
||||||
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||||
screen.set_palette(m_palette);
|
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
|
z80_device &audiocpu(Z80(config, "audiocpu", 3000000)); // 3 MHz
|
||||||
audiocpu.set_addrmap(AS_PROGRAM, &gunsmoke_state::sound_map);
|
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 */
|
/* video hardware */
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(59.63);
|
screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(gunsmoke_state::screen_update_gunsmoke));
|
screen.set_screen_update(FUNC(gunsmoke_state::screen_update_gunsmoke));
|
||||||
screen.set_palette(m_palette);
|
screen.set_palette(m_palette);
|
||||||
|
|
||||||
|
@ -131,6 +131,12 @@ void supduck_state::video_start()
|
|||||||
m_text_tilemap->set_transparent_pen(0x3);
|
m_text_tilemap->set_transparent_pen(0x3);
|
||||||
m_fore_tilemap->set_transparent_pen(0xf);
|
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)
|
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 */
|
/* video hardware */
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(60);
|
screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
|
|
||||||
screen.set_screen_update(FUNC(supduck_state::screen_update));
|
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.set_palette(m_palette);
|
||||||
screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
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
|
// video hardware
|
||||||
BUFFERED_SPRITERAM16(config, "spriteram");
|
BUFFERED_SPRITERAM16(config, "spriteram");
|
||||||
|
|
||||||
|
// Timings may be different, driver originally had 60.08Hz vblank.
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(60.08); // verified on pcb
|
screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(tigeroad_state::screen_update));
|
screen.set_screen_update(FUNC(tigeroad_state::screen_update));
|
||||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||||
screen.set_palette(m_palette);
|
screen.set_palette(m_palette);
|
||||||
@ -715,10 +713,7 @@ void tigeroad_state::f1dream_comad(machine_config &config)
|
|||||||
BUFFERED_SPRITERAM16(config, "spriteram");
|
BUFFERED_SPRITERAM16(config, "spriteram");
|
||||||
|
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(60.08); // verified on pcb
|
screen.set_raw(6000000, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(tigeroad_state::screen_update));
|
screen.set_screen_update(FUNC(tigeroad_state::screen_update));
|
||||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||||
screen.set_palette(m_palette);
|
screen.set_palette(m_palette);
|
||||||
|
@ -229,10 +229,7 @@ void vulgus_state::vulgus(machine_config &config)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_refresh_hz(59.59);
|
screen.set_raw(XTAL(12'000'000)/2, 384, 128, 0, 262, 22, 246); // hsync is 50..77, vsync is 257..259
|
||||||
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_screen_update(FUNC(vulgus_state::screen_update));
|
screen.set_screen_update(FUNC(vulgus_state::screen_update));
|
||||||
screen.set_palette(m_palette);
|
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_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_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()
|
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_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_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);
|
const rectangle cliprecty(cliprect.min_x, cliprect.max_x, y, y);
|
||||||
uint8_t objdata[4];
|
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)
|
for (int h = 496; h >= 128; h -= 16)
|
||||||
{
|
{
|
||||||
const bool objcnt4 = BIT(h, 8) != BIT(~h, 7);
|
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
|
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);
|
} while (i-- > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -319,7 +329,7 @@ void _1942p_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|||||||
sy = 240 - sy;
|
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_bg_tilemap->configure_groups(*m_gfxdecode->gfx(1), 0x0f);
|
||||||
m_fg_tilemap->set_transparent_pen(0);
|
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_char_on));
|
||||||
save_item(NAME(m_obj_on));
|
save_item(NAME(m_obj_on));
|
||||||
save_item(NAME(m_bg1_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;
|
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(2, 0xff00, 0x80ff);
|
||||||
m_bg_tilemap4x8->set_transmask(3, 0xf000, 0x8fff);
|
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);
|
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,
|
code,
|
||||||
color,
|
color,
|
||||||
flipx,flip_screen(),
|
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_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_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);
|
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)
|
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_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(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_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),
|
buffered_spriteram[offs] + ((attributes << 2) & 0x300),
|
||||||
(attributes >> 4) & 3,
|
(attributes >> 4) & 3,
|
||||||
flipx,flipy,
|
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_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_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);
|
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;
|
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_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));
|
save_item(NAME(m_bgcharbank));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ void tigeroad_spr_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cl
|
|||||||
tile_number,
|
tile_number,
|
||||||
color,
|
color,
|
||||||
flipx, flipy,
|
flipx, flipy,
|
||||||
sx, sy, 15);
|
sx+128, sy+6, 15);
|
||||||
|
|
||||||
source -= 4;
|
source -= 4;
|
||||||
}
|
}
|
||||||
|
@ -114,6 +114,11 @@ void vulgus_state::video_start()
|
|||||||
|
|
||||||
m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 47);
|
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));
|
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;
|
if (row == 2) row = 3;
|
||||||
|
|
||||||
for (; row >= 0; row--)
|
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