travrusa.cpp - hold vblank interrupt for the whole of the vblank period, allowing it to retrigger in some cases - improves shtrider countdown sync at start of race (#7989)

This commit is contained in:
David Haywood 2021-04-21 19:11:37 +01:00 committed by GitHub
parent 83d1b46ff5
commit c115cf1c8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -309,7 +309,6 @@ void travrusa_state::travrusa(machine_config &config)
/* basic machine hardware */
Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
m_maincpu->set_addrmap(AS_PROGRAM, &travrusa_state::main_map);
m_maincpu->set_vblank_int("screen", FUNC(travrusa_state::irq0_line_hold));
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@ -321,6 +320,8 @@ void travrusa_state::travrusa(machine_config &config)
screen.set_visarea(1*8, 31*8-1, 0*8, 32*8-1);
screen.set_screen_update(FUNC(travrusa_state::screen_update_travrusa));
screen.set_palette(m_palette);
// Race start countdown in shtrider needs multiple interrupts per frame to sync, mustache.cpp has the same, and is also a Seibu game
screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_travrusa);
PALETTE(config, m_palette, FUNC(travrusa_state::travrusa_palette), 16*8+16*8, 128+16);