diff options
Diffstat (limited to 'src/mame/drivers/raiden2.cpp')
-rw-r--r-- | src/mame/drivers/raiden2.cpp | 81 |
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 */ |