mirror of
https://github.com/holub/mame
synced 2025-05-21 13:18:56 +03:00
Reworked NMK16 irqs again by using TIMER_ADD_SCANLINE (not worth)
This commit is contained in:
parent
9e1ebf8795
commit
14bc74d1cf
@ -3516,18 +3516,17 @@ static const ym2203_interface ym2203_config =
|
||||
ym2203_irqhandler
|
||||
};
|
||||
|
||||
/* Not 100% sure that this is really vblank-in irq, but Vandyke definitely works better with this arrangement, sword collisions are fussy otherwise
|
||||
(mostly noticeable with attract mode). */
|
||||
static TIMER_CALLBACK( nmk16_vblank_in_irq )
|
||||
static TIMER_DEVICE_CALLBACK( nmk16_scanline )
|
||||
{
|
||||
cputag_set_input_line(machine, "maincpu", 2, HOLD_LINE);
|
||||
}
|
||||
int scanline = param;
|
||||
|
||||
static INTERRUPT_GEN( nmk16_vblank_out_irq )
|
||||
{
|
||||
cpu_set_input_line(device, 4, HOLD_LINE);
|
||||
if(scanline == 240) // vblank-out irq
|
||||
cputag_set_input_line(timer.machine, "maincpu", 4, HOLD_LINE);
|
||||
|
||||
timer_set(device->machine, device->machine->primary_screen->time_until_pos(0), NULL,0, nmk16_vblank_in_irq);
|
||||
/* This is either vblank-in or sprite dma irq complete, Vandyke definitely relies that irq fires at scanline ~0 instead of 112 (as per previous
|
||||
cpu_getiloops() implementation), mostly noticeable with sword collisions and related attract mode behaviour. */
|
||||
if(scanline == 0)
|
||||
cputag_set_input_line(timer.machine, "maincpu", 2, HOLD_LINE);
|
||||
}
|
||||
|
||||
static const nmk112_interface nmk16_nmk112_intf =
|
||||
@ -3540,8 +3539,8 @@ static MACHINE_CONFIG_START( tharrier, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(tharrier_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, 3000000)
|
||||
MDRV_CPU_PROGRAM_MAP(tharrier_sound_map)
|
||||
@ -3586,8 +3585,8 @@ static MACHINE_CONFIG_START( manybloc, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* 10? MHz - check */
|
||||
MDRV_CPU_PROGRAM_MAP(manybloc_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,56)/* this needs to equal the framerate on this, rather than being double it .. */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, 3000000)
|
||||
MDRV_CPU_PROGRAM_MAP(tharrier_sound_map)
|
||||
@ -3630,8 +3629,8 @@ static MACHINE_CONFIG_START( mustang, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */
|
||||
MDRV_CPU_PROGRAM_MAP(mustang_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_MACHINE_RESET(NMK004)
|
||||
|
||||
@ -3673,8 +3672,8 @@ static MACHINE_CONFIG_START( mustangb, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */
|
||||
MDRV_CPU_PROGRAM_MAP(mustangb_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
|
||||
|
||||
@ -3708,8 +3707,8 @@ static MACHINE_CONFIG_START( bioship, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, BIOSHIP_CRYSTAL1 ) /* 10.0 MHz (verified) */
|
||||
MDRV_CPU_PROGRAM_MAP(bioship_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,100)/* 112 breaks the title screen */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_MACHINE_RESET(NMK004)
|
||||
|
||||
@ -3750,8 +3749,8 @@ static MACHINE_CONFIG_START( vandyke, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* 68000p12 running at 10Mhz, verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(vandyke_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_MACHINE_RESET(NMK004)
|
||||
|
||||
@ -3792,8 +3791,8 @@ static MACHINE_CONFIG_START( vandykeb, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ? */
|
||||
MDRV_CPU_PROGRAM_MAP(vandykeb_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_CPU_ADD("mcu", PIC16C57, 12000000) /* 3MHz */
|
||||
MDRV_DEVICE_DISABLE()
|
||||
@ -3827,8 +3826,8 @@ static MACHINE_CONFIG_START( acrobatm, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz (verified on pcb) */
|
||||
MDRV_CPU_PROGRAM_MAP(acrobatm_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_MACHINE_RESET(NMK004)
|
||||
|
||||
@ -3871,8 +3870,8 @@ static MACHINE_CONFIG_START( tdragonb, driver_device ) /* bootleg using Raiden s
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000)
|
||||
MDRV_CPU_PROGRAM_MAP(tdragonb_map)
|
||||
//MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ?? drives music */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
|
||||
|
||||
@ -3902,9 +3901,9 @@ static MACHINE_CONFIG_START( tdragon, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_8MHz) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(tdragon_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
//MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ?? drives music */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_MACHINE_RESET(NMK004)
|
||||
|
||||
@ -3981,8 +3980,8 @@ static MACHINE_CONFIG_START( strahl, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz ? */
|
||||
MDRV_CPU_PROGRAM_MAP(strahl_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_MACHINE_RESET(NMK004)
|
||||
|
||||
@ -4826,7 +4825,7 @@ static MACHINE_CONFIG_START( stagger1, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,XTAL_12MHz) /* 68000p10 running at 12mhz, verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(afega)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, XTAL_4MHz) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(afega_sound_cpu)
|
||||
@ -4907,7 +4906,7 @@ static MACHINE_CONFIG_START( firehawk, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,12000000)
|
||||
MDRV_CPU_PROGRAM_MAP(afega)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80,4000000)
|
||||
MDRV_CPU_PROGRAM_MAP(firehawk_sound_cpu)
|
||||
@ -4942,8 +4941,8 @@ static MACHINE_CONFIG_START( twinactn, driver_device )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000,12000000)
|
||||
MDRV_CPU_PROGRAM_MAP(twinactn_map)
|
||||
MDRV_CPU_VBLANK_INT("screen",nmk16_vblank_out_irq)
|
||||
MDRV_CPU_PERIODIC_INT(irq1_line_hold,112)/* ???????? */
|
||||
MDRV_TIMER_ADD_SCANLINE("scantimer", nmk16_scanline, "screen", 0, 1)
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, 4000000)
|
||||
MDRV_CPU_PROGRAM_MAP(twinactn_sound_cpu)
|
||||
|
Loading…
Reference in New Issue
Block a user