From 132626651ddf708f7b8070bceed0774b41399425 Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 29 May 2024 02:20:20 +0200 Subject: alpha/equites.cpp: reverse irq meanings, fix bullfgtr timing --- src/mame/alpha/equites.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/mame/alpha/equites.cpp b/src/mame/alpha/equites.cpp index 10a954d1ebe..2b9d433e6a1 100644 --- a/src/mame/alpha/equites.cpp +++ b/src/mame/alpha/equites.cpp @@ -385,7 +385,7 @@ protected: TILE_GET_INFO_MEMBER(bg_info); void palette(palette_device &palette) const; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - TIMER_DEVICE_CALLBACK_MEMBER(scanline); + TIMER_DEVICE_CALLBACK_MEMBER(scanline_cb); void draw_sprites_block(bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); void unpack_block(const char *region, int offset, int size); @@ -551,15 +551,17 @@ uint32_t equites_state::screen_update(screen_device &screen, bitmap_ind16 &bitma /******************************************************************************/ // Interrupt Handlers -TIMER_DEVICE_CALLBACK_MEMBER(equites_state::scanline) +TIMER_DEVICE_CALLBACK_MEMBER(equites_state::scanline_cb) { int scanline = param; + // all games but bullfgtr have both valid + // bullfgtr definitely expects to vblank from 2, reversing will make it to run at half speed. if(scanline == 232) // vblank-out irq - m_maincpu->set_input_line(1, HOLD_LINE); - - if(scanline == 24) // vblank-in irq m_maincpu->set_input_line(2, HOLD_LINE); + + if(scanline == 24) // vblank-in irq or sprite DMA done + m_maincpu->set_input_line(1, HOLD_LINE); } @@ -912,7 +914,7 @@ void equites_state::equites(machine_config &config) // basic machine hardware M68000(config, m_maincpu, 12_MHz_XTAL/4); // 68000P8 running at 3mhz! verified on pcb m_maincpu->set_addrmap(AS_PROGRAM, &equites_state::equites_map); - TIMER(config, "scantimer").configure_scanline(FUNC(equites_state::scanline), "screen", 0, 1); + TIMER(config, "scantimer").configure_scanline(FUNC(equites_state::scanline_cb), "screen", 0, 1); LS259(config, m_mainlatch); m_mainlatch->q_out_cb<1>().set(FUNC(equites_state::flip_screen_set)); -- cgit v1.2.3