From e31e84167cb5f41713d443259f84a1e80d67deb5 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sun, 15 May 2011 23:36:12 +0000 Subject: [PATCH] Added the CCU for mystwarr.c games, nw --- src/mame/drivers/hexion.c | 2 +- src/mame/drivers/mystwarr.c | 94 ++++++++++++++++++++++++++++++++----- 2 files changed, 84 insertions(+), 12 deletions(-) diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c index 61f062bf3aa..40b0aaaf78d 100644 --- a/src/mame/drivers/hexion.c +++ b/src/mame/drivers/hexion.c @@ -84,7 +84,7 @@ Notes: #include "sound/k051649.h" #include "includes/konamipt.h" #include "includes/hexion.h" -#include "video/konicdev.h" +#include "machine/k053252.h" static WRITE8_HANDLER( coincntr_w ) diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index c8842288565..9158d5fce2c 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -25,6 +25,7 @@ #include "deprecat.h" #include "video/konamiic.h" +#include "machine/k053252.h" #include "includes/konamigx.h" #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" @@ -280,7 +281,7 @@ static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16 ) AM_RANGE(0x498014, 0x498015) AM_READ(sound_status_r) AM_RANGE(0x498000, 0x49801f) AM_RAM AM_RANGE(0x49a000, 0x49a001) AM_WRITE(sound_irq_w) - AM_RANGE(0x49c000, 0x49c01f) AM_WRITE(K053252_word_w) + AM_RANGE(0x49c000, 0x49c01f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) AM_RANGE(0x49e000, 0x49e007) AM_WRITE(irq_ack_w) // VSCCS (custom) AM_RANGE(0x600000, 0x601fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) AM_RANGE(0x602000, 0x603fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read(essential) @@ -292,7 +293,6 @@ static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16 ) AM_RANGE(0x484000, 0x484007) AM_READ(K053246_reg_word_r) AM_RANGE(0x48a000, 0x48a01f) AM_READ(K054338_word_r) AM_RANGE(0x48c000, 0x48c03f) AM_READ(K056832_word_r) - AM_RANGE(0x49c000, 0x49c01f) AM_READ(K053252_word_r) #endif ADDRESS_MAP_END @@ -309,7 +309,7 @@ static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16 ) AM_RANGE(0x250000, 0x25000f) AM_READWRITE(K053250_0_r,K053250_0_w) AM_RANGE(0x254000, 0x25401f) AM_WRITE(K054338_word_w) AM_RANGE(0x258000, 0x2580ff) AM_WRITE(K055555_word_w) - AM_RANGE(0x260000, 0x26001f) AM_WRITE(K053252_word_w) + AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w) AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w) AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w) @@ -333,7 +333,6 @@ static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16 ) AM_RANGE(0x244010, 0x24401f) AM_READ(K053247_reg_word_r) AM_RANGE(0x254000, 0x25401f) AM_READ(K054338_word_r) AM_RANGE(0x258000, 0x2580ff) AM_READ(K055555_word_r) - AM_RANGE(0x260000, 0x26001f) AM_READ(K053252_word_r) AM_RANGE(0x26C000, 0x26C007) AM_READ(K056832_b_word_r) AM_RANGE(0x270000, 0x27003f) AM_READ(K056832_word_r) #endif @@ -353,7 +352,7 @@ static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16 ) AM_RANGE(0x254000, 0x25401f) AM_WRITE(K054338_word_w) AM_RANGE(0x258000, 0x2580ff) AM_WRITE(K055555_word_w) AM_RANGE(0x25c000, 0x25c03f) AM_READWRITE(K055550_word_r,K055550_word_w) - AM_RANGE(0x260000, 0x26001f) AM_WRITE(K053252_word_w) + AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w) AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w) AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w) @@ -377,7 +376,6 @@ static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16 ) AM_RANGE(0x244010, 0x24401f) AM_READ(K053247_reg_word_r) AM_RANGE(0x254000, 0x25401f) AM_READ(K054338_word_r) AM_RANGE(0x258000, 0x2580ff) AM_READ(K055555_word_r) - AM_RANGE(0x260000, 0x26001f) AM_READ(K053252_word_r) AM_RANGE(0x26C000, 0x26C007) AM_READ(K056832_b_word_r) AM_RANGE(0x270000, 0x27003f) AM_READ(K056832_word_r) #endif @@ -460,7 +458,7 @@ static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16 ) AM_RANGE(0x41800e, 0x41800f) AM_WRITE(sound_cmd2_w) AM_RANGE(0x418000, 0x41801f) AM_RAM // sound regs fall through AM_RANGE(0x41a000, 0x41a001) AM_WRITE(sound_irq_w) - AM_RANGE(0x41c000, 0x41c01f) AM_WRITE(K053252_word_w) // CCU + AM_RANGE(0x41c000, 0x41c01f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) // CCU AM_RANGE(0x41e000, 0x41e007) AM_WRITE(K056832_b_word_w) // VSCCS AM_RANGE(0x480000, 0x483fff) AM_READWRITE(K053247_martchmp_word_r,K053247_martchmp_word_w) AM_BASE_MEMBER(mystwarr_state, m_spriteram) // sprite RAM AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram) // palette RAM @@ -494,7 +492,7 @@ static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16 ) AM_RANGE(0x480000, 0x48003f) AM_WRITE(K056832_word_w) // VACSET AM_RANGE(0x482000, 0x482007) AM_WRITE(K056832_b_word_w) // VSCCS AM_RANGE(0x484000, 0x484003) AM_WRITE(ddd_053936_clip_w) - AM_RANGE(0x486000, 0x48601f) AM_WRITE(K053252_word_w) + AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) AM_RANGE(0x488000, 0x4880ff) AM_WRITE(K055555_word_w) AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w) AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w) @@ -517,7 +515,6 @@ static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16 ) AM_RANGE(0x450010, 0x45001f) AM_READ(K053247_reg_word_r) AM_RANGE(0x480000, 0x48003f) AM_READ(K056832_word_r) AM_RANGE(0x482000, 0x482007) AM_READ(K056832_b_word_r) - AM_RANGE(0x486000, 0x48601f) AM_READ(K053252_word_r) AM_RANGE(0x488000, 0x4880ff) AM_READ(K055555_word_r) AM_RANGE(0x48c000, 0x48c01f) AM_READ(K054338_word_r) #endif @@ -542,7 +539,7 @@ static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16 ) AM_RANGE(0x480000, 0x48003f) AM_WRITE(K056832_word_w) // VACSET AM_RANGE(0x482000, 0x482007) AM_WRITE(K056832_b_word_w) // VSCCS AM_RANGE(0x484000, 0x484003) AM_WRITE(ddd_053936_clip_w) - AM_RANGE(0x486000, 0x48601f) AM_WRITE(K053252_word_w) + AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) AM_RANGE(0x488000, 0x4880ff) AM_WRITE(K055555_word_w) AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w) AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w) @@ -565,7 +562,6 @@ static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16 ) AM_RANGE(0x450010, 0x45001f) AM_READ(K053247_reg_word_r) AM_RANGE(0x480000, 0x48003f) AM_READ(K056832_word_r) AM_RANGE(0x482000, 0x482007) AM_READ(K056832_b_word_r) - AM_RANGE(0x486000, 0x48601f) AM_READ(K053252_word_r) AM_RANGE(0x488000, 0x4880ff) AM_READ(K055555_word_r) AM_RANGE(0x48c000, 0x48c01f) AM_READ(K054338_word_r) #endif @@ -943,6 +939,66 @@ static MACHINE_RESET(gaiapols) for (i=5; i<=7; i++) k054539_set_gain(k054539_1, i, 2.0); } +static const k053252_interface mystwarr_k053252_intf = +{ + "screen", + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + 24, 16 +}; + +static const k053252_interface viostorm_k053252_intf = +{ + "screen", + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + 40, 16 +}; + +static const k053252_interface metamrph_k053252_intf = +{ + "screen", + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + 24, 24 +}; + +static const k053252_interface martchmp_k053252_intf = +{ + "screen", + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + 32, 24-1 +}; + +static const k053252_interface dadandrm_k053252_intf = +{ + "screen", + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + 24, 16+1 +}; + +static const k053252_interface gaiapols_k053252_intf = +{ + "screen", + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + 40, 16 +}; + static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) /* basic machine hardware */ @@ -957,6 +1013,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) MCFG_QUANTUM_TIME(attotime::from_hz(1920)) MCFG_EEPROM_ADD("eeprom", eeprom_intf) + MCFG_K053252_ADD("k053252", 6000000, mystwarr_k053252_intf) // 6 MHz? MCFG_MACHINE_START(mystwarr) MCFG_MACHINE_RESET(mystwarr) @@ -995,6 +1052,9 @@ static MACHINE_CONFIG_DERIVED( viostorm, mystwarr ) MCFG_MACHINE_RESET(viostorm) + MCFG_DEVICE_REMOVE("k053252") + MCFG_K053252_ADD("k053252", 16000000/2, viostorm_k053252_intf) + /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(viostorm_map) @@ -1020,6 +1080,9 @@ static MACHINE_CONFIG_DERIVED( metamrph, mystwarr ) MCFG_CPU_PROGRAM_MAP(metamrph_map) MCFG_CPU_VBLANK_INT_HACK(metamrph_interrupt, 40) + MCFG_DEVICE_REMOVE("k053252") + MCFG_K053252_ADD("k053252", 6000000, metamrph_k053252_intf) // 6 MHz? + /* video hardware */ MCFG_VIDEO_START(metamrph) MCFG_SCREEN_MODIFY("screen") @@ -1040,6 +1103,9 @@ static MACHINE_CONFIG_DERIVED( dadandrn, mystwarr ) MCFG_CPU_PROGRAM_MAP(dadandrn_map) MCFG_CPU_VBLANK_INT("screen", ddd_interrupt) + MCFG_DEVICE_REMOVE("k053252") + MCFG_K053252_ADD("k053252", 6000000, dadandrm_k053252_intf) // 6 MHz? + MCFG_GFXDECODE(dadandrn) /* video hardware */ @@ -1062,6 +1128,9 @@ static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr ) MCFG_CPU_PROGRAM_MAP(gaiapols_map) MCFG_CPU_VBLANK_INT("screen", ddd_interrupt) + MCFG_DEVICE_REMOVE("k053252") + MCFG_K053252_ADD("k053252", 6000000, gaiapols_k053252_intf) // 6 MHz? + MCFG_GFXDECODE(gaiapols) MCFG_DEVICE_REMOVE("eeprom") @@ -1088,6 +1157,9 @@ static MACHINE_CONFIG_DERIVED( martchmp, mystwarr ) MCFG_CPU_PROGRAM_MAP(martchmp_map) MCFG_CPU_VBLANK_INT_HACK(mchamp_interrupt, 2) + MCFG_DEVICE_REMOVE("k053252") + MCFG_K053252_ADD("k053252", 16000000/2, martchmp_k053252_intf) + MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK) MCFG_VIDEO_START(martchmp)