summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/djmain.c1
-rw-r--r--src/mame/drivers/dooyong.c21
-rw-r--r--src/mame/drivers/fastlane.c26
-rw-r--r--src/mame/video/konicdev.c9
4 files changed, 28 insertions, 29 deletions
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index b1caa1ac87c..8c7af5562c2 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -64,7 +64,6 @@ hard drive 3.5 adapter long 3.5 IDE cable 3.5 adapter PCB
*/
#include "emu.h"
-#include "deprecat.h"
#include "cpu/m68000/m68000.h"
#include "machine/idectrl.h"
#include "sound/k054539.h"
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 13e55c9184d..fac0e1e0753 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -79,7 +79,6 @@ be verified on real PCB.
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/m68000/m68000.h"
-#include "deprecat.h"
#include "sound/2203intf.h"
#include "sound/2151intf.h"
#include "sound/okim6295.h"
@@ -1071,20 +1070,24 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
MCFG_FRAGMENT_ADD( sound_2151 )
MACHINE_CONFIG_END
-static INTERRUPT_GEN( rshark_interrupt )
+static TIMER_DEVICE_CALLBACK( rshark_scanline )
{
- if (cpu_getiloops(device) == 0)
- device_set_input_line(device, 5, HOLD_LINE);
- else
- device_set_input_line(device, 6, HOLD_LINE);
+ int scanline = param;
+
+ if(scanline == 248) // vblank-out irq
+ cputag_set_input_line(timer.machine(), "maincpu", 5, HOLD_LINE);
+
+ if(scanline == 120) // timer irq?
+ cputag_set_input_line(timer.machine(), "maincpu", 6, HOLD_LINE);
}
+
static MACHINE_CONFIG_START( rshark, dooyong_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 8000000) /* measured on super-x */
MCFG_CPU_PROGRAM_MAP(rshark_map)
- MCFG_CPU_VBLANK_INT_HACK(rshark_interrupt,2) /* 5 and 6 */
+ MCFG_TIMER_ADD_SCANLINE("scantimer", rshark_scanline, "screen", 0, 1)
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* measured on super-x */
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
@@ -1115,7 +1118,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 8000000) /* measured on super-x */
MCFG_CPU_PROGRAM_MAP(superx_map)
- MCFG_CPU_VBLANK_INT_HACK(rshark_interrupt,2) /* 5 and 6 */
+ MCFG_TIMER_ADD_SCANLINE("scantimer", rshark_scanline, "screen", 0, 1)
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* measured on super-x */
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
@@ -1146,7 +1149,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 10000000)
MCFG_CPU_PROGRAM_MAP(popbingo_map)
- MCFG_CPU_VBLANK_INT_HACK(rshark_interrupt,2) /* 5 and 6 */
+ MCFG_TIMER_ADD_SCANLINE("scantimer", rshark_scanline, "screen", 0, 1)
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* measured on super-x */
MCFG_CPU_PROGRAM_MAP(bluehawk_sound_map)
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index f9be779b4b8..c3095bc629a 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -5,35 +5,29 @@
Driver by Manuel Abadia <manu@teleline.es>
TODO:
- - colors don't seem 100% accurate.
- verify that sound is correct (volume and bank switching)
***************************************************************************/
#include "emu.h"
-#include "deprecat.h"
#include "cpu/hd6309/hd6309.h"
#include "sound/k007232.h"
#include "video/konicdev.h"
#include "includes/konamipt.h"
#include "includes/fastlane.h"
-static INTERRUPT_GEN( fastlane_interrupt )
+static TIMER_DEVICE_CALLBACK( fastlane_scanline )
{
- fastlane_state *state = device->machine().driver_data<fastlane_state>();
-
- if (cpu_getiloops(device) == 0)
- {
- if (k007121_ctrlram_r(state->m_k007121, 7) & 0x02)
- device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
- }
- else if (cpu_getiloops(device) % 2)
- {
- if (k007121_ctrlram_r(state->m_k007121, 7) & 0x01)
- device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
- }
+ fastlane_state *state = timer.machine().driver_data<fastlane_state>();
+ int scanline = param;
+
+ if(scanline == 240 && k007121_ctrlram_r(state->m_k007121, 7) & 0x02) // vblank irq
+ cputag_set_input_line(timer.machine(), "maincpu", HD6309_IRQ_LINE, HOLD_LINE);
+ else if(((scanline % 32) == 0) && k007121_ctrlram_r(state->m_k007121, 7) & 0x01) // timer irq
+ cputag_set_input_line(timer.machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE);
}
+
static WRITE8_HANDLER( k007121_registers_w )
{
fastlane_state *state = space->machine().driver_data<fastlane_state>();
@@ -215,7 +209,7 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) /* 24MHz/8? */
MCFG_CPU_PROGRAM_MAP(fastlane_map)
- MCFG_CPU_VBLANK_INT_HACK(fastlane_interrupt,16) /* 1 IRQ + ??? NMI (generated by the 007121) */
+ MCFG_TIMER_ADD_SCANLINE("scantimer", fastlane_scanline, "screen", 0, 1)
MCFG_MACHINE_START(fastlane)
diff --git a/src/mame/video/konicdev.c b/src/mame/video/konicdev.c
index 979736d6286..93c5c7d3583 100644
--- a/src/mame/video/konicdev.c
+++ b/src/mame/video/konicdev.c
@@ -5894,6 +5894,7 @@ typedef struct _k051733_state k051733_state;
struct _k051733_state
{
UINT8 ram[0x20];
+ UINT8 rng;
};
/*****************************************************************************
@@ -5953,8 +5954,6 @@ READ8_DEVICE_HANDLER( k051733_r )
int yobj2c = (k051733->ram[0x0c] << 8) | k051733->ram[0x0d];
int xobj2c = (k051733->ram[0x0e] << 8) | k051733->ram[0x0f];
- //logerror("%04x: read 051733 address %02x\n", cpu_get_pc(&space->device()), offset);
-
switch (offset)
{
case 0x00:
@@ -5987,7 +5986,8 @@ READ8_DEVICE_HANDLER( k051733_r )
return k051733_int_sqrt(op3 << 16) & 0xff;
case 0x06:
- return k051733->ram[0x13]; //RNG read, used by Chequered Flag for differentiate cars, could be wrong
+ k051733->rng += k051733->ram[0x13];
+ return k051733->rng; //RNG read, used by Chequered Flag for differentiate cars, implementation is a raw guess
case 0x07:{ /* note: Chequered Flag definitely wants all these bits to be enabled */
if (xobj1c + rad < xobj2c)
@@ -6022,6 +6022,7 @@ static DEVICE_START( k051733 )
k051733_state *k051733 = k051733_get_safe_token(device);
device->save_item(NAME(k051733->ram));
+ device->save_item(NAME(k051733->rng));
}
static DEVICE_RESET( k051733 )
@@ -6031,6 +6032,8 @@ static DEVICE_RESET( k051733 )
for (i = 0; i < 0x20; i++)
k051733->ram[i] = 0;
+
+ k051733->rng = 0;
}