mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
MT #00525 (nw)
This commit is contained in:
parent
4cb6ff1e4c
commit
25565246d8
@ -108,7 +108,6 @@ driver modified by Hau
|
||||
#include "sound/ym2413.h"
|
||||
#include "sound/2610intf.h"
|
||||
#include "sound/ymf278b.h"
|
||||
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
@ -226,6 +225,25 @@ INTERRUPT_GEN_MEMBER(metro_state::metro_periodic_interrupt)
|
||||
update_irq_state();
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(metro_state::bangball_scanline)
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
// vblank irq
|
||||
if(scanline == 224)
|
||||
{
|
||||
m_requested_int[m_vblank_bit] = 1;
|
||||
m_requested_int[4] = 1; // ???
|
||||
update_irq_state();
|
||||
}
|
||||
else if(scanline < 224 && (*m_irq_enable & 2) == 0)
|
||||
{
|
||||
// pretty likely hblank irq (pressing a button when clearing a stage)
|
||||
m_requested_int[1] = 1;
|
||||
update_irq_state();
|
||||
}
|
||||
}
|
||||
|
||||
/* lev 2-7 (lev 1 seems sound related) */
|
||||
INTERRUPT_GEN_MEMBER(metro_state::karatour_interrupt)
|
||||
{
|
||||
@ -3152,9 +3170,10 @@ MACHINE_CONFIG_END
|
||||
static MACHINE_CONFIG_DERIVED( bangball, msgogo )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(bangball_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 60) // ?
|
||||
|
||||
MCFG_CPU_VBLANK_INT_REMOVE()
|
||||
MCFG_CPU_PERIODIC_INT_REMOVE()
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", metro_state, bangball_scanline, "screen", 0, 1)
|
||||
|
||||
// doesn't like 58.2 Hz
|
||||
MCFG_DEVICE_MODIFY("screen")
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
@ -3163,8 +3182,9 @@ MACHINE_CONFIG_END
|
||||
static MACHINE_CONFIG_DERIVED( batlbubl, msgogo )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(batlbubl_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", metro_state, metro_vblank_interrupt)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 60) // ?
|
||||
MCFG_CPU_VBLANK_INT_REMOVE()
|
||||
MCFG_CPU_PERIODIC_INT_REMOVE()
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", metro_state, bangball_scanline, "screen", 0, 1)
|
||||
|
||||
// doesn't like 58.2 Hz
|
||||
MCFG_DEVICE_MODIFY("screen")
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "video/imagetek_i4100.h"
|
||||
#include "machine/eepromser.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/timer.h"
|
||||
#include "screen.h"
|
||||
|
||||
class metro_state : public driver_device
|
||||
@ -102,6 +103,7 @@ public:
|
||||
uint32_t screen_update_psac_vdp2_mix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(metro_vblank_interrupt);
|
||||
INTERRUPT_GEN_MEMBER(metro_periodic_interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(bangball_scanline);
|
||||
INTERRUPT_GEN_MEMBER(karatour_interrupt);
|
||||
INTERRUPT_GEN_MEMBER(puzzlet_interrupt);
|
||||
IRQ_CALLBACK_MEMBER(metro_irq_callback);
|
||||
|
Loading…
Reference in New Issue
Block a user