summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ikki.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ikki.cpp')
-rw-r--r--src/mame/drivers/ikki.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/mame/drivers/ikki.cpp b/src/mame/drivers/ikki.cpp
index 74d1f186ddb..5d471fd9e53 100644
--- a/src/mame/drivers/ikki.cpp
+++ b/src/mame/drivers/ikki.cpp
@@ -10,6 +10,7 @@ Ikki (c) 1985 Sun Electronics
TODO:
- understand proper CPU communications and irq firing;
+- merge with markham.cpp
- timings
*****************************************************************************/
@@ -21,6 +22,18 @@ TODO:
#include "sound/sn76496.h"
#include "speaker.h"
+#define MASTER_CLOCK (20_MHz_XTAL)
+#define PIXEL_CLOCK (MASTER_CLOCK/4) // guess
+#define CPU_CLOCK (8_MHz_XTAL)
+
+/* also a guess */
+#define HTOTAL (320)
+#define HBEND (8)
+#define HBSTART (248)
+#define VTOTAL (262)
+#define VBEND (16)
+#define VBSTART (240)
+
/*************************************
*
@@ -243,24 +256,20 @@ TIMER_DEVICE_CALLBACK_MEMBER(ikki_state::ikki_irq)
MACHINE_CONFIG_START(ikki_state::ikki)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,8000000/2) /* 4.000MHz */
+ MCFG_DEVICE_ADD("maincpu", Z80,CPU_CLOCK/2) /* 4.000MHz */
MCFG_DEVICE_PROGRAM_MAP(ikki_cpu1)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ikki_state, ikki_irq, "screen", 0, 1)
- MCFG_DEVICE_ADD("sub", Z80,8000000/2) /* 4.000MHz */
+ MCFG_DEVICE_ADD("sub", Z80,CPU_CLOCK/2) /* 4.000MHz */
MCFG_DEVICE_PROGRAM_MAP(ikki_cpu2)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(ikki_state, irq0_line_hold, 2*60)
+ MCFG_DEVICE_PERIODIC_INT_DRIVER(ikki_state, irq0_line_hold, 2*(PIXEL_CLOCK/HTOTAL/VTOTAL))
MCFG_QUANTUM_PERFECT_CPU("maincpu")
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
-// MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8+3*8)
- MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
+ MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki)
MCFG_SCREEN_PALETTE("palette")
@@ -272,10 +281,10 @@ MACHINE_CONFIG_START(ikki_state::ikki)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("sn1", SN76496, 8000000/4)
+ MCFG_DEVICE_ADD("sn1", SN76496, CPU_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
- MCFG_DEVICE_ADD("sn2", SN76496, 8000000/2)
+ MCFG_DEVICE_ADD("sn2", SN76496, CPU_CLOCK/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END