summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/raiden2.cpp
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2016-11-26 08:49:17 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2016-11-26 08:49:17 +1100
commit0b1a51a9d1700d8b22d65602b9f2a4dfb1a701ea (patch)
tree4a8b4935070429aace58b1ea0149a835b9609af9 /src/mame/drivers/raiden2.cpp
parenta68cefdb4f220455e9a29e98d3b270958078d5ea (diff)
parent7ad15e78260f5dc28912cc700fc87838ca75f198 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src/mame/drivers/raiden2.cpp')
-rw-r--r--src/mame/drivers/raiden2.cpp81
1 files changed, 73 insertions, 8 deletions
diff --git a/src/mame/drivers/raiden2.cpp b/src/mame/drivers/raiden2.cpp
index d17e3143b7c..d35ba423225 100644
--- a/src/mame/drivers/raiden2.cpp
+++ b/src/mame/drivers/raiden2.cpp
@@ -68,7 +68,7 @@ PCB Layout
|----------------------------------------------------------|
Notes:
V30 clock - 16.000MHz [32/2]. Chip is stamped "NEC D70116HG-16 V30 NEC '84" (QFP52)
- Z80 clock - 3.579545MHz [28.63636/8]
+ Z80 clock - 3.579545MHz [28.63636/8]. /NMI, /BUSREQ and /WAIT tied high/unused.
YM2151 clock - 3.579545MHz [28.63636/8]
M6295 clocks - 1.022MHz [28.63636/28] and pin 7 HIGH (both)
CXK58258 - Sony CXK58258 32k x8 SRAM (= 62256)
@@ -173,6 +173,8 @@ Protection Notes:
#include "cpu/nec/nec.h"
#include "cpu/z80/z80.h"
#include "machine/eepromser.h"
+#include "sound/3812intf.h"
+#include "sound/ym2151.h"
#include "sound/okim6295.h"
#include "includes/raiden2.h"
#include "machine/r2crypt.h"
@@ -1060,6 +1062,45 @@ static ADDRESS_MAP_START( xsedae_mem, AS_PROGRAM, 16, raiden2_state )
AM_RANGE(0x20000, 0xfffff) AM_ROM AM_REGION("maincpu", 0x20000)
ADDRESS_MAP_END
+ADDRESS_MAP_START( raiden2_sound_map, AS_PROGRAM, 8, raiden2_state )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x27ff) AM_RAM
+ AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("seibu_sound", seibu_sound_device, pending_w)
+ AM_RANGE(0x4001, 0x4001) AM_DEVWRITE("seibu_sound", seibu_sound_device, irq_clear_w)
+ AM_RANGE(0x4002, 0x4002) AM_DEVWRITE("seibu_sound", seibu_sound_device, rst10_ack_w)
+ AM_RANGE(0x4003, 0x4003) AM_DEVWRITE("seibu_sound", seibu_sound_device, rst18_ack_w)
+ AM_RANGE(0x4008, 0x4009) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, ym_r, ym_w)
+ AM_RANGE(0x4010, 0x4011) AM_DEVREAD("seibu_sound", seibu_sound_device, soundlatch_r)
+ AM_RANGE(0x4012, 0x4012) AM_DEVREAD("seibu_sound", seibu_sound_device, main_data_pending_r)
+ AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN")
+ AM_RANGE(0x4018, 0x4019) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_data_w)
+ AM_RANGE(0x401a, 0x401a) AM_DEVWRITE("seibu_sound", seibu_sound_device, bank_w)
+ AM_RANGE(0x401b, 0x401b) AM_DEVWRITE("seibu_sound", seibu_sound_device, coin_w)
+ AM_RANGE(0x6000, 0x6000) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
+ AM_RANGE(0x6002, 0x6002) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK("seibu_bank1")
+ AM_RANGE(0x4004, 0x4004) AM_NOP
+ AM_RANGE(0x401a, 0x401a) AM_NOP
+ADDRESS_MAP_END
+
+ADDRESS_MAP_START( zeroteam_sound_map, AS_PROGRAM, 8, raiden2_state )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x27ff) AM_RAM
+ AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("seibu_sound", seibu_sound_device, pending_w)
+ AM_RANGE(0x4001, 0x4001) AM_DEVWRITE("seibu_sound", seibu_sound_device, irq_clear_w)
+ AM_RANGE(0x4002, 0x4002) AM_DEVWRITE("seibu_sound", seibu_sound_device, rst10_ack_w)
+ AM_RANGE(0x4003, 0x4003) AM_DEVWRITE("seibu_sound", seibu_sound_device, rst18_ack_w)
+ AM_RANGE(0x4008, 0x4009) AM_DEVREADWRITE("seibu_sound", seibu_sound_device, ym_r, ym_w)
+ AM_RANGE(0x4010, 0x4011) AM_DEVREAD("seibu_sound", seibu_sound_device, soundlatch_r)
+ AM_RANGE(0x4012, 0x4012) AM_DEVREAD("seibu_sound", seibu_sound_device, main_data_pending_r)
+ AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN")
+ AM_RANGE(0x4018, 0x4019) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_data_w)
+ AM_RANGE(0x401a, 0x401a) AM_DEVWRITE("seibu_sound", seibu_sound_device, bank_w)
+ AM_RANGE(0x401b, 0x401b) AM_DEVWRITE("seibu_sound", seibu_sound_device, coin_w)
+ AM_RANGE(0x6000, 0x6000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK("seibu_bank1")
+ADDRESS_MAP_END
+
/* INPUT PORTS */
@@ -1377,7 +1418,8 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
MCFG_MACHINE_RESET_OVERRIDE(raiden2_state,raiden2)
- SEIBU2_RAIDEN2_SOUND_SYSTEM_CPU(XTAL_28_63636MHz/8)
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_28_63636MHz/8)
+ MCFG_CPU_PROGRAM_MAP(raiden2_sound_map)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1399,13 +1441,23 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
/* sound hardware */
- SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(XTAL_28_63636MHz/8,XTAL_28_63636MHz/28,1,2)
- // the sound z80 has /NMI, /BUSREQ and /WAIT tied high/unused
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_YM2151_ADD("ymsnd", XTAL_28_63636MHz/8)
+ MCFG_YM2151_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
+ MCFG_SOUND_ROUTE(0, "mono", 0.50)
+ MCFG_SOUND_ROUTE(1, "mono", 0.50)
-/* Sound hardware infos: Z80 and YM2151 are clocked at XTAL_28_63636MHz/8 */
-/* The 2 Oki M6295 are clocked at XTAL_28_63636MHz/28 and pin 7 is high for both */
+ MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+ MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/28, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+
+ MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
+ MCFG_SEIBU_SOUND_CPU("audiocpu")
+ MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym2151_device, read))
+ MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym2151_device, write))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( xsedae, raiden2 )
@@ -1436,7 +1488,8 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
MCFG_MACHINE_RESET_OVERRIDE(raiden2_state,zeroteam)
- SEIBU_NEWZEROTEAM_SOUND_SYSTEM_CPU(XTAL_28_63636MHz/8)
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_28_63636MHz/8)
+ MCFG_CPU_PROGRAM_MAP(zeroteam_sound_map)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1459,7 +1512,19 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
/* sound hardware */
- SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(XTAL_28_63636MHz/8, 1320000/* ? */)
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28_63636MHz/8)
+ MCFG_YM3812_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_OKIM6295_ADD("oki", 1320000/* ? */, OKIM6295_PIN7_LOW)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+
+ MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
+ MCFG_SEIBU_SOUND_CPU("audiocpu")
+ MCFG_SEIBU_SOUND_YM_READ_CB(DEVREAD8("ymsnd", ym3812_device, read))
+ MCFG_SEIBU_SOUND_YM_WRITE_CB(DEVWRITE8("ymsnd", ym3812_device, write))
MACHINE_CONFIG_END
/* ROM LOADING */