summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-01-14 17:07:04 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-01-14 17:07:04 +0000
commit5e0741e6f13fe90c2e3915dba61f33bd8c834f27 (patch)
treef872fd0e69e4c39a7ca7a95ba94d329084beefb3
parentc000a7a2847f17df128c8cef0f5863936a149ac2 (diff)
Some memory map cleanup.
Changed seibu sound code to share interfaces.
-rw-r--r--src/mame/audio/seibu.c128
-rw-r--r--src/mame/audio/seibu.h72
-rw-r--r--src/mame/drivers/bloodbro.c4
-rw-r--r--src/mame/drivers/cabal.c14
-rw-r--r--src/mame/drivers/cclimber.c204
-rw-r--r--src/mame/drivers/dcon.c4
-rw-r--r--src/mame/drivers/deadang.c6
-rw-r--r--src/mame/drivers/dynduke.c4
-rw-r--r--src/mame/drivers/goodejan.c2
-rw-r--r--src/mame/drivers/legionna.c7
-rw-r--r--src/mame/drivers/nmk16.c4
-rw-r--r--src/mame/drivers/raiden.c3
-rw-r--r--src/mame/drivers/sengokmj.c2
-rw-r--r--src/mame/drivers/shanghai.c4
-rw-r--r--src/mame/drivers/toki.c4
15 files changed, 157 insertions, 305 deletions
diff --git a/src/mame/audio/seibu.c b/src/mame/audio/seibu.c
index ce175a8b991..45d561b42d7 100644
--- a/src/mame/audio/seibu.c
+++ b/src/mame/audio/seibu.c
@@ -167,7 +167,7 @@ static void seibu_adpcm_callback(void *param, stream_sample_t **inputs, stream_s
}
}
-void *seibu_adpcm_start(int clock, const struct CustomSound_interface *config)
+static void *seibu_adpcm_start(int clock, const struct CustomSound_interface *config)
{
int i;
@@ -185,7 +185,7 @@ void *seibu_adpcm_start(int clock, const struct CustomSound_interface *config)
return NULL;
}
-void seibu_adpcm_stop(void *token)
+static void seibu_adpcm_stop(void *token)
{
struct seibu_adpcm_state *state = token;
state->allocated = 0;
@@ -478,108 +478,110 @@ WRITE16_HANDLER( seibu_main_mustb_w )
/***************************************************************************/
-ADDRESS_MAP_START( seibu_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x4008, 0x4008) AM_READ(YM3812_status_port_0_r)
- AM_RANGE(0x4010, 0x4011) AM_READ(seibu_soundlatch_r)
- AM_RANGE(0x4012, 0x4012) AM_READ(seibu_main_data_pending_r)
- AM_RANGE(0x4013, 0x4013) AM_READ(input_port_0_r)
- AM_RANGE(0x6000, 0x6000) AM_READ(OKIM6295_status_0_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1)
-ADDRESS_MAP_END
+const struct YM3812interface seibu_ym3812_interface =
+{
+ seibu_ym3812_irqhandler
+};
+
+const struct CustomSound_interface seibu_adpcm_interface =
+{
+ seibu_adpcm_start,
+ seibu_adpcm_stop
+};
+
+const struct YM2151interface seibu_ym2151_interface =
+{
+ seibu_ym2151_irqhandler
+};
+
+const struct YM2203interface seibu_ym2203_interface =
+{
+ 0,0,0,0,seibu_ym2203_irqhandler
+};
-ADDRESS_MAP_START( seibu_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_WRITE(MWA8_RAM)
+/***************************************************************************/
+
+ADDRESS_MAP_START( seibu_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE(seibu_irq_clear_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE(seibu_rst10_ack_w)
AM_RANGE(0x4003, 0x4003) AM_WRITE(seibu_rst18_ack_w)
AM_RANGE(0x4007, 0x4007) AM_WRITE(seibu_bank_w)
- AM_RANGE(0x4008, 0x4008) AM_WRITE(YM3812_control_port_0_w)
+ AM_RANGE(0x4008, 0x4008) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w)
AM_RANGE(0x4009, 0x4009) AM_WRITE(YM3812_write_port_0_w)
- AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w)
- AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w)
- AM_RANGE(0x6000, 0x6000) AM_WRITE(OKIM6295_data_0_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START( seibu2_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x4009, 0x4009) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x4010, 0x4011) AM_READ(seibu_soundlatch_r)
AM_RANGE(0x4012, 0x4012) AM_READ(seibu_main_data_pending_r)
AM_RANGE(0x4013, 0x4013) AM_READ(input_port_0_r)
- AM_RANGE(0x6000, 0x6000) AM_READ(OKIM6295_status_0_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1)
+ AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w)
+ AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w)
+ AM_RANGE(0x6000, 0x6000) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1)
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu2_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_WRITE(MWA8_RAM)
+
+ADDRESS_MAP_START( seibu2_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE(seibu_irq_clear_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE(seibu_rst10_ack_w)
AM_RANGE(0x4003, 0x4003) AM_WRITE(seibu_rst18_ack_w)
AM_RANGE(0x4007, 0x4007) AM_WRITE(seibu_bank_w)
AM_RANGE(0x4008, 0x4008) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0x4009, 0x4009) AM_WRITE(YM2151_data_port_0_w)
- AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w)
- AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w)
- AM_RANGE(0x6000, 0x6000) AM_WRITE(OKIM6295_data_0_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START( seibu3_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x4008, 0x4008) AM_READ(YM2203_status_port_0_r)
- AM_RANGE(0x4009, 0x4009) AM_READ(YM2203_read_port_0_r)
+ AM_RANGE(0x4009, 0x4009) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0x4010, 0x4011) AM_READ(seibu_soundlatch_r)
AM_RANGE(0x4012, 0x4012) AM_READ(seibu_main_data_pending_r)
AM_RANGE(0x4013, 0x4013) AM_READ(input_port_0_r)
- AM_RANGE(0x6008, 0x6008) AM_READ(YM2203_status_port_1_r)
- AM_RANGE(0x6009, 0x6009) AM_READ(YM2203_read_port_1_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1)
+ AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w)
+ AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w)
+ AM_RANGE(0x6000, 0x6000) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1)
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu3_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_WRITE(MWA8_RAM)
+
+
+ADDRESS_MAP_START( seibu3_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE(seibu_irq_clear_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE(seibu_rst10_ack_w)
AM_RANGE(0x4003, 0x4003) AM_WRITE(seibu_rst18_ack_w)
AM_RANGE(0x4007, 0x4007) AM_WRITE(seibu_bank_w)
- AM_RANGE(0x4008, 0x4008) AM_WRITE(YM2203_control_port_0_w)
- AM_RANGE(0x4009, 0x4009) AM_WRITE(YM2203_write_port_0_w)
+ AM_RANGE(0x4008, 0x4008) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
+ AM_RANGE(0x4009, 0x4009) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
+ AM_RANGE(0x4010, 0x4011) AM_READ(seibu_soundlatch_r)
+ AM_RANGE(0x4012, 0x4012) AM_READ(seibu_main_data_pending_r)
+ AM_RANGE(0x4013, 0x4013) AM_READ(input_port_0_r)
AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w)
AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w)
- AM_RANGE(0x6008, 0x6008) AM_WRITE(YM2203_control_port_1_w)
- AM_RANGE(0x6009, 0x6009) AM_WRITE(YM2203_write_port_1_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x6008, 0x6008) AM_READWRITE(YM2203_status_port_1_r, YM2203_control_port_1_w)
+ AM_RANGE(0x6009, 0x6009) AM_READWRITE(YM2203_read_port_1_r, YM2203_write_port_1_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1)
ADDRESS_MAP_END
-ADDRESS_MAP_START( seibu3_adpcm_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x2000, 0x27ff) AM_WRITE(MWA8_RAM)
+ADDRESS_MAP_START( seibu3_adpcm_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(seibu_pending_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE(seibu_irq_clear_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE(seibu_rst10_ack_w)
AM_RANGE(0x4003, 0x4003) AM_WRITE(seibu_rst18_ack_w)
AM_RANGE(0x4005, 0x4006) AM_WRITE(seibu_adpcm_adr_1_w)
AM_RANGE(0x4007, 0x4007) AM_WRITE(seibu_bank_w)
- AM_RANGE(0x4008, 0x4008) AM_WRITE(YM2203_control_port_0_w)
- AM_RANGE(0x4009, 0x4009) AM_WRITE(YM2203_write_port_0_w)
+ AM_RANGE(0x4008, 0x4008) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w)
+ AM_RANGE(0x4009, 0x4009) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w)
+ AM_RANGE(0x4010, 0x4011) AM_READ(seibu_soundlatch_r)
+ AM_RANGE(0x4012, 0x4012) AM_READ(seibu_main_data_pending_r)
+ AM_RANGE(0x4013, 0x4013) AM_READ(input_port_0_r)
AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w)
AM_RANGE(0x401a, 0x401a) AM_WRITE(seibu_adpcm_ctl_1_w)
AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w)
AM_RANGE(0x6005, 0x6006) AM_WRITE(seibu_adpcm_adr_2_w)
- AM_RANGE(0x6008, 0x6008) AM_WRITE(YM2203_control_port_1_w)
- AM_RANGE(0x6009, 0x6009) AM_WRITE(YM2203_write_port_1_w)
+ AM_RANGE(0x6008, 0x6008) AM_READWRITE(YM2203_status_port_1_r, YM2203_control_port_1_w)
+ AM_RANGE(0x6009, 0x6009) AM_READWRITE(YM2203_read_port_1_r, YM2203_write_port_1_w)
AM_RANGE(0x601a, 0x601a) AM_WRITE(seibu_adpcm_ctl_2_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1)
ADDRESS_MAP_END
-
diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h
index 5e8cfb363cb..c1885da8065 100644
--- a/src/mame/audio/seibu.h
+++ b/src/mame/audio/seibu.h
@@ -29,13 +29,10 @@
#include "sound/okim6295.h"
#include "sound/custom.h"
-ADDRESS_MAP_EXTERN(seibu_sound_readmem);
-ADDRESS_MAP_EXTERN(seibu_sound_writemem);
-ADDRESS_MAP_EXTERN(seibu2_sound_readmem);
-ADDRESS_MAP_EXTERN(seibu2_sound_writemem);
-ADDRESS_MAP_EXTERN(seibu3_sound_readmem);
-ADDRESS_MAP_EXTERN(seibu3_sound_writemem);
-ADDRESS_MAP_EXTERN(seibu3_adpcm_sound_writemem);
+ADDRESS_MAP_EXTERN(seibu_sound_map);
+ADDRESS_MAP_EXTERN(seibu2_sound_map);
+ADDRESS_MAP_EXTERN(seibu3_sound_map);
+ADDRESS_MAP_EXTERN(seibu3_adpcm_sound_map);
READ16_HANDLER( seibu_main_word_r );
READ8_HANDLER( seibu_main_v30_r );
@@ -59,14 +56,17 @@ MACHINE_RESET( seibu_sound_1 );
MACHINE_RESET( seibu_sound_2 );
void seibu_sound_decrypt(int cpu_region,int length);
-void *seibu_adpcm_start(int clock, const struct CustomSound_interface *config);
-void seibu_adpcm_stop(void *token);
void seibu_adpcm_decrypt(int region);
WRITE8_HANDLER( seibu_adpcm_adr_1_w );
WRITE8_HANDLER( seibu_adpcm_ctl_1_w );
WRITE8_HANDLER( seibu_adpcm_adr_2_w );
WRITE8_HANDLER( seibu_adpcm_ctl_2_w );
+extern const struct YM3812interface seibu_ym3812_interface;
+extern const struct CustomSound_interface seibu_adpcm_interface;
+extern const struct YM2151interface seibu_ym2151_interface;
+extern const struct YM2203interface seibu_ym2203_interface;
+
/**************************************************************************/
#define SEIBU_COIN_INPUTS \
@@ -74,60 +74,28 @@ WRITE8_HANDLER( seibu_adpcm_ctl_2_w );
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(4) \
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(4)
-#define SEIBU_SOUND_SYSTEM_YM3812_HARDWARE \
- \
-static const struct YM3812interface ym3812_interface = \
-{ \
- seibu_ym3812_irqhandler \
-};
-
-#define SEIBU_SOUND_SYSTEM_ADPCM_HARDWARE \
- \
-static const struct CustomSound_interface adpcm_interface = \
-{ \
- seibu_adpcm_start, \
- seibu_adpcm_stop \
-};
-
-#define SEIBU_SOUND_SYSTEM_YM2151_HARDWARE \
- \
-static const struct YM2151interface ym2151_interface = \
-{ \
- seibu_ym2151_irqhandler \
-};
-
-#define SEIBU_SOUND_SYSTEM_YM2203_HARDWARE \
- \
-static const struct YM2203interface ym2203_interface = \
-{ \
- 0,0,0,0,seibu_ym2203_irqhandler \
-};
#define SEIBU_SOUND_SYSTEM_CPU(freq) \
MDRV_CPU_ADD(Z80, freq) \
- /* audio CPU */ \
- MDRV_CPU_PROGRAM_MAP(seibu_sound_readmem,seibu_sound_writemem) \
+ MDRV_CPU_PROGRAM_MAP(seibu_sound_map,0) \
#define SEIBU2_SOUND_SYSTEM_CPU(freq) \
MDRV_CPU_ADD(Z80, freq) \
- /* audio CPU */ \
- MDRV_CPU_PROGRAM_MAP(seibu2_sound_readmem,seibu2_sound_writemem) \
+ MDRV_CPU_PROGRAM_MAP(seibu2_sound_map,0) \
#define SEIBU3_SOUND_SYSTEM_CPU(freq) \
MDRV_CPU_ADD(Z80, freq) \
- /* audio CPU */ \
- MDRV_CPU_PROGRAM_MAP(seibu3_sound_readmem,seibu3_sound_writemem) \
+ MDRV_CPU_PROGRAM_MAP(seibu3_sound_map,0) \
#define SEIBU3A_SOUND_SYSTEM_CPU(freq) \
MDRV_CPU_ADD(Z80, freq) \
- /* audio CPU */ \
- MDRV_CPU_PROGRAM_MAP(seibu3_sound_readmem,seibu3_adpcm_sound_writemem) \
+ MDRV_CPU_PROGRAM_MAP(seibu3_adpcm_sound_map,0) \
#define SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(freq1,freq2,region) \
MDRV_SPEAKER_STANDARD_MONO("mono") \
\
MDRV_SOUND_ADD(YM3812, freq1) \
- MDRV_SOUND_CONFIG(ym3812_interface) \
+ MDRV_SOUND_CONFIG(seibu_ym3812_interface) \
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
\
MDRV_SOUND_ADD(OKIM6295, freq2) \
@@ -138,18 +106,18 @@ static const struct YM2203interface ym2203_interface = \
MDRV_SPEAKER_STANDARD_MONO("mono") \
\
MDRV_SOUND_ADD(YM3812, freq1) \
- MDRV_SOUND_CONFIG(ym3812_interface) \
+ MDRV_SOUND_CONFIG(seibu_ym3812_interface) \
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
\
MDRV_SOUND_ADD(OKIM6295, freq2) \
- MDRV_SOUND_CONFIG(okim6295_interface_region_##region##_pin7high) \
+ MDRV_SOUND_CONFIG(okim6295_interface_region_##region##_pin7high)\
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
#define SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(freq1,freq2,region) \
MDRV_SPEAKER_STANDARD_MONO("mono") \
\
MDRV_SOUND_ADD(YM2151, freq1) \
- MDRV_SOUND_CONFIG(ym2151_interface) \
+ MDRV_SOUND_CONFIG(seibu_ym2151_interface) \
MDRV_SOUND_ROUTE(0, "mono", 0.50) \
MDRV_SOUND_ROUTE(1, "mono", 0.50) \
\
@@ -161,7 +129,7 @@ static const struct YM2203interface ym2203_interface = \
MDRV_SPEAKER_STANDARD_MONO("mono") \
\
MDRV_SOUND_ADD(YM2203, freq) \
- MDRV_SOUND_CONFIG(ym2203_interface) \
+ MDRV_SOUND_CONFIG(seibu_ym2203_interface) \
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) \
\
MDRV_SOUND_ADD(YM2203, freq) \
@@ -169,11 +137,11 @@ static const struct YM2203interface ym2203_interface = \
#define SEIBU_SOUND_SYSTEM_ADPCM_INTERFACE \
MDRV_SOUND_ADD(CUSTOM, 8000) \
- MDRV_SOUND_CONFIG(adpcm_interface) \
+ MDRV_SOUND_CONFIG(seibu_adpcm_interface) \
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) \
\
MDRV_SOUND_ADD(CUSTOM, 8000) \
- MDRV_SOUND_CONFIG(adpcm_interface) \
+ MDRV_SOUND_CONFIG(seibu_adpcm_interface) \
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) \
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index d42f8a93559..95ff6d9751b 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -521,10 +521,6 @@ static GFXDECODE_START( weststry )
GFXDECODE_ENTRY( REGION_GFX3, 0x00000, weststry_spritelayout, 0*16, 0x10 )
GFXDECODE_END
-/* Sound Interfaces */
-
-// Parameters: YM3812 frequency, Oki frequency, Oki memory region
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
/* Machine Drivers */
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index d69a2ec45bd..89ff621ec99 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -513,11 +513,6 @@ static GFXDECODE_START( cabal )
GFXDECODE_END
-static const struct YM2151interface ym2151_interface =
-{
- seibu_ym3812_irqhandler
-};
-
static void irqhandler(int irq)
{
cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
@@ -528,8 +523,6 @@ static const struct YM2151interface cabalbl_ym2151_interface =
irqhandler
};
-SEIBU_SOUND_SYSTEM_ADPCM_HARDWARE
-
static const struct MSM5205interface msm5205_interface_1 =
{
0,
@@ -573,16 +566,15 @@ static MACHINE_DRIVER_START( cabal )
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD(YM2151, 3579580) /* verified on pcb */
- MDRV_SOUND_CONFIG(ym2151_interface)
+ MDRV_SOUND_CONFIG(seibu_ym2151_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.80)
MDRV_SOUND_ADD(CUSTOM, 8000)
- MDRV_SOUND_CONFIG(adpcm_interface)
+ MDRV_SOUND_CONFIG(seibu_adpcm_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.40)
-
MDRV_SOUND_ADD(CUSTOM, 8000)
- MDRV_SOUND_CONFIG(adpcm_interface)
+ MDRV_SOUND_CONFIG(seibu_adpcm_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.40)
MACHINE_DRIVER_END
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index 88d37ca243e..eb2c8a97d4f 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -131,6 +131,10 @@ TODO:
#include "includes/cclimber.h"
+#define MASTER_CLOCK XTAL_18_432MHz
+
+
+
static WRITE8_HANDLER( cannonb_flip_screen_w )
{
flip_screen_set(data);
@@ -175,140 +179,95 @@ static MACHINE_RESET( cclimber )
/* Note that River Patrol reads/writes to a000-a4f0. This is a bug in the code.
The instruction at 0x0593 should say LD DE,$8000 */
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x6000, 0x6bff) AM_READ(MRA8_RAM) /* Crazy Kong only */
- AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8800, 0x8bff) AM_READ(MRA8_RAM)
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_READ(MRA8_RAM) /* video RAM */
- AM_RANGE(0x9800, 0x9bff) AM_READ(MRA8_RAM) /* column scroll registers */
- AM_RANGE(0x9c00, 0x9fff) AM_READ(MRA8_RAM) /* color RAM */
- AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) /* IN0 */
- AM_RANGE(0xa800, 0xa800) AM_READ(input_port_1_r) /* IN1 */
- AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r) /* DSW */
- AM_RANGE(0xb800, 0xb800) AM_READ(input_port_3_r) /* IN2 */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x6000, 0x6bff) AM_WRITE(MWA8_RAM) /* Crazy Kong only */
- AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
- AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
+static ADDRESS_MAP_START( cclimber_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x5fff) AM_ROM
+ AM_RANGE(0x6000, 0x6bff) AM_RAM /* Crazy Kong only */
+ AM_RANGE(0x8000, 0x83ff) AM_RAM
+ AM_RANGE(0x8800, 0x88ff) AM_READWRITE(MRA8_RAM, cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+ AM_RANGE(0x8900, 0x8bff) AM_RAM /* not used, but initialized */
+ AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
- AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll)
- AM_RANGE(0x9880, 0x989f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x98dc, 0x98df) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_bigspriteram)
- AM_RANGE(0x9800, 0x9bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */
- AM_RANGE(0x9c00, 0x9fff) AM_WRITE(cclimber_colorram_w) AM_BASE(&colorram)
- AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w)
+ AM_RANGE(0x9800, 0x981f) AM_RAM AM_BASE(&cclimber_column_scroll)
+ AM_RANGE(0x9880, 0x989f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x98dc, 0x98df) AM_RAM AM_BASE(&cclimber_bigspriteram)
+ AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
+ AM_RANGE(0x9c00, 0x9fff) AM_READWRITE(MRA8_RAM, cclimber_colorram_w) AM_BASE(&colorram)
+ AM_RANGE(0xa000, 0xa000) AM_READWRITE(input_port_0_r, interrupt_enable_w) /* IN0 */
AM_RANGE(0xa001, 0xa001) AM_WRITE(flip_screen_x_w)
AM_RANGE(0xa002, 0xa002) AM_WRITE(flip_screen_y_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE(interrupt_enable_w) //used by Crazy Kong Bootleg with alt levels and speed up
AM_RANGE(0xa004, 0xa004) AM_WRITE(cclimber_sample_trigger_w)
- AM_RANGE(0xa800, 0xa800) AM_WRITE(cclimber_sample_rate_w)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(cclimber_sample_volume_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( cannonb_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x6000, 0x6bff) AM_READ(MRA8_RAM) /* Crazy Kong only, Cannon Ball also*/
- AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8800, 0x8800) AM_READ(MRA8_NOP) /* must not return what's written (game will reset after coin insert if it returns 0xff)*/
-//AM_RANGE(0x8800, 0x8bff) AM_READ(MRA8_RAM)
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_READ(MRA8_RAM) /* video RAM */
- AM_RANGE(0x9820, 0x9bff) AM_READ(MRA8_RAM) /* */
- AM_RANGE(0x9c00, 0x9fff) AM_READ(MRA8_RAM) /* color RAM */
- AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) /* IN0 */
- AM_RANGE(0xa800, 0xa800) AM_READ(input_port_1_r) /* IN1 */
- AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r) /* DSW */
+ AM_RANGE(0xa800, 0xa800) AM_READWRITE(input_port_1_r, cclimber_sample_rate_w) /* IN1 */
+ AM_RANGE(0xb000, 0xb000) AM_READWRITE(input_port_2_r, cclimber_sample_volume_w) /* DSW */
AM_RANGE(0xb800, 0xb800) AM_READ(input_port_3_r) /* IN2 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( cannonb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x5045, 0x505f) AM_WRITE(MWA8_NOP) /* do not errorlog this */
- AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x6000, 0x6bff) AM_WRITE(MWA8_RAM) /* Crazy Kong only, Cannon Ball also */
- AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+static ADDRESS_MAP_START( cannonb_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x5045, 0x505f) AM_WRITENOP /* do not errorlog this */
+ AM_RANGE(0x0000, 0x5fff) AM_ROM
+ AM_RANGE(0x6000, 0x6bff) AM_RAM /* Crazy Kong only, Cannon Ball also */
+ AM_RANGE(0x8000, 0x83ff) AM_RAM
+ AM_RANGE(0x8800, 0x8800) AM_READNOP /* must not return what's written (game will reset after coin insert if it returns 0xff)*/
+ AM_RANGE(0x8800, 0x88ff) AM_READWRITE(MRA8_RAM, cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
//AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
+ AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
- AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll)
- AM_RANGE(0x9880, 0x989f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x98dc, 0x98df) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_bigspriteram)
- AM_RANGE(0x9800, 0x9bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */
- AM_RANGE(0x9c00, 0x9fff) AM_WRITE(cclimber_colorram_w) AM_BASE(&colorram)
- AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w)
+ AM_RANGE(0x9800, 0x981f) AM_RAM AM_BASE(&cclimber_column_scroll)
+ AM_RANGE(0x9880, 0x989f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x98dc, 0x98df) AM_RAM AM_BASE(&cclimber_bigspriteram)
+ AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
+ AM_RANGE(0x9c00, 0x9fff) AM_READWRITE(MRA8_RAM, cclimber_colorram_w) AM_BASE(&colorram)
+ AM_RANGE(0xa000, 0xa000) AM_READWRITE(input_port_0_r, interrupt_enable_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE(cannonb_flip_screen_w)
AM_RANGE(0xa004, 0xa004) AM_WRITE(cclimber_sample_trigger_w)
- AM_RANGE(0xa800, 0xa800) AM_WRITE(cclimber_sample_rate_w)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(cclimber_sample_volume_w)
+ AM_RANGE(0xa800, 0xa800) AM_READWRITE(input_port_1_r, cclimber_sample_rate_w)
+ AM_RANGE(0xb000, 0xb000) AM_READWRITE(input_port_2_r, cclimber_sample_volume_w)
+ AM_RANGE(0xb800, 0xb800) AM_READ(input_port_3_r) /* IN2 */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_READ(MRA8_RAM)
- AM_RANGE(0x9c00, 0x9fff) AM_READ(MRA8_RAM)
- AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r)
- AM_RANGE(0xa800, 0xa800) AM_READ(input_port_1_r)
- AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r)
- AM_RANGE(0xb800, 0xb800) AM_READ(input_port_3_r)
- AM_RANGE(0xb880, 0xb880) AM_READ(input_port_4_r)
- AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) /* ??? used by Guzzler */
- AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) /* Guzzler only */
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( swimmer_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x88ff) AM_MIRROR(0x0100) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
- AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
+ AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll)
AM_RANGE(0x9880, 0x989f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x98fc, 0x98ff) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_bigspriteram)
- AM_RANGE(0x9c00, 0x9fff) AM_WRITE(cclimber_colorram_w) AM_BASE(&colorram)
- AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w)
+ AM_RANGE(0x9c00, 0x9fff) AM_READWRITE(MRA8_RAM, cclimber_colorram_w) AM_BASE(&colorram)
+ AM_RANGE(0xa000, 0xa000) AM_READWRITE(input_port_0_r, interrupt_enable_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE(flip_screen_x_w)
AM_RANGE(0xa002, 0xa002) AM_WRITE(flip_screen_y_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE(swimmer_sidepanel_enable_w)
AM_RANGE(0xa004, 0xa004) AM_WRITE(swimmer_palettebank_w)
- AM_RANGE(0xa800, 0xa800) AM_WRITE(swimmer_sh_soundlatch_w)
- AM_RANGE(0xb800, 0xb800) AM_WRITE(swimmer_bgcolor_w) /* river color in Swimmer */
- AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) /* ??? used by Guzzler */
- AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) /* Guzzler only */
+ AM_RANGE(0xa800, 0xa800) AM_READWRITE(input_port_1_r, swimmer_sh_soundlatch_w)
+ AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r)
+ AM_RANGE(0xb800, 0xb800) AM_READWRITE(input_port_3_r, swimmer_bgcolor_w) /* river color in Swimmer */
+ AM_RANGE(0xb880, 0xb880) AM_READ(input_port_4_r)
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM /* ??? used by Guzzler */
+ AM_RANGE(0xe000, 0xffff) AM_ROM /* Guzzler only */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r)
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( cclimber_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
+ AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
- AM_RANGE(0x4000, 0x4001) AM_READ(MRA8_RAM) /* ??? */
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x4000, 0x4000) AM_WRITE(MWA8_RAM) /* ??? */
+static ADDRESS_MAP_START( swimmer_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
+ AM_RANGE(0x2000, 0x23ff) AM_RAM
+ AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
+ AM_RANGE(0x4000, 0x4001) AM_RAM /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( swimmer_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( swimmer_sound_portmap, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w)
@@ -823,9 +782,9 @@ GFXDECODE_END
static MACHINE_DRIVER_START( cclimber )
/* basic machine hardware */
- MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(readport,writeport)
+ MDRV_CPU_ADD_TAG("main", Z80, MASTER_CLOCK/3/2) /* 3.072 MHz */
+ MDRV_CPU_PROGRAM_MAP(cclimber_map,0)
+ MDRV_CPU_IO_MAP(cclimber_portmap,0)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
MDRV_SCREEN_REFRESH_RATE(60)
@@ -848,7 +807,7 @@ static MACHINE_DRIVER_START( cclimber )
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
- MDRV_SOUND_ADD(AY8910, 1536000)
+ MDRV_SOUND_ADD(AY8910, MASTER_CLOCK/3/2/2)
MDRV_SOUND_CONFIG(cclimber_ay8910_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
@@ -857,55 +816,30 @@ static MACHINE_DRIVER_START( cclimber )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_DRIVER_END
-/* copy of cclimber except for readmem, writemem and video update */
+
static MACHINE_DRIVER_START( cannonb )
- /* basic machine hardware */
- MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz */
- MDRV_CPU_PROGRAM_MAP(cannonb_readmem,cannonb_writemem)
- MDRV_CPU_IO_MAP(readport,writeport)
- MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
+ MDRV_IMPORT_FROM(cclimber)
- MDRV_SCREEN_REFRESH_RATE(60)
- MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
- MDRV_MACHINE_RESET(cclimber)
+ /* basic machine hardware */
+ MDRV_CPU_MODIFY("main")
+ MDRV_CPU_PROGRAM_MAP(cannonb_map,0)
/* video hardware */
- MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
- MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_SIZE(32*8, 32*8)
- MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MDRV_GFXDECODE(cclimber)
- MDRV_PALETTE_LENGTH(96)
- MDRV_COLORTABLE_LENGTH(16*4+8*4)
-
- MDRV_PALETTE_INIT(cclimber)
- MDRV_VIDEO_START(generic)
MDRV_VIDEO_UPDATE(cannonb)
-
- /* sound hardware */
- MDRV_SPEAKER_STANDARD_MONO("mono")
-
- MDRV_SOUND_ADD(AY8910, 1536000)
- MDRV_SOUND_CONFIG(cclimber_ay8910_interface)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-
- MDRV_SOUND_ADD(SAMPLES, 0)
- MDRV_SOUND_CONFIG(cclimber_samples_interface)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_DRIVER_END
+
static MACHINE_DRIVER_START( swimmer )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz */
- MDRV_CPU_PROGRAM_MAP(swimmer_readmem,swimmer_writemem)
+ MDRV_CPU_PROGRAM_MAP(swimmer_map,0)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
MDRV_CPU_ADD(Z80,4000000/2)
- /* audio CPU */ /* 2 MHz */
- MDRV_CPU_PROGRAM_MAP(swimmer_sound_readmem,swimmer_sound_writemem)
- MDRV_CPU_IO_MAP(0,swimmer_sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(swimmer_sound_map,0)
+ MDRV_CPU_IO_MAP(swimmer_sound_portmap,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, (double)4000000/16384) /* IRQs are triggered by the main CPU */
MDRV_SCREEN_REFRESH_RATE(60)
diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c
index 773f65c842a..0e43459942d 100644
--- a/src/mame/drivers/dcon.c
+++ b/src/mame/drivers/dcon.c
@@ -272,10 +272,6 @@ GFXDECODE_END
/******************************************************************************/
-/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-SEIBU_SOUND_SYSTEM_YM2151_HARDWARE
-
static MACHINE_DRIVER_START( dcon )
/* basic machine hardware */
diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c
index 6af7fa85acd..8d978673a87 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -263,12 +263,6 @@ static GFXDECODE_START( deadang )
GFXDECODE_ENTRY( REGION_GFX5, 0x000000, spritelayout, 0, 16 )
GFXDECODE_END
-/* Sound Interfaces */
-
-SEIBU_SOUND_SYSTEM_YM2203_HARDWARE
-
-SEIBU_SOUND_SYSTEM_ADPCM_HARDWARE
-
/* Interrupt Generators */
static INTERRUPT_GEN( deadang_interrupt )
diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c
index 386d380491c..357423e6896 100644
--- a/src/mame/drivers/dynduke.c
+++ b/src/mame/drivers/dynduke.c
@@ -257,10 +257,6 @@ static GFXDECODE_START( dynduke )
GFXDECODE_ENTRY( REGION_GFX4, 0, spritelayout, 0x300, 32 )
GFXDECODE_END
-/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
-
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
/* Interrupt Generator */
static INTERRUPT_GEN( dynduke_interrupt )
diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c
index 24fd6ed921b..1874a9bb17d 100644
--- a/src/mame/drivers/goodejan.c
+++ b/src/mame/drivers/goodejan.c
@@ -263,8 +263,6 @@ static GFXDECODE_START( goodejan )
GFXDECODE_ENTRY( REGION_GFX1, 0, charlayout, 0x100, 0x10 ) /* Text */
GFXDECODE_END
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
static INTERRUPT_GEN( goodejan_interrupt )
{
if (cpu_getiloops())
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index 1b609178dff..d1ace9a20d8 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -3459,13 +3459,6 @@ GFXDECODE_END
/*****************************************************************************/
-/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
-SEIBU_SOUND_SYSTEM_YM2151_HARDWARE
-
-/*****************************************************************************/
-
static MACHINE_DRIVER_START( legionna )
/* basic machine hardware */
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index 1c5a16f9951..cc126d41c84 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -3687,10 +3687,6 @@ static INTERRUPT_GEN( nmk_interrupt )
}
-/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
-
static MACHINE_DRIVER_START( tharrier )
/* basic machine hardware */
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index 3487f66deba..0bb2621d026 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -221,9 +221,6 @@ GFXDECODE_END
/******************************************************************************/
-/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
static INTERRUPT_GEN( raiden_interrupt )
{
cpunum_set_input_line_and_vector(cpunum, 0, HOLD_LINE, 0xc8/4); /* VBL */
diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c
index 7a04be1e25f..a001ef8c24e 100644
--- a/src/mame/drivers/sengokmj.c
+++ b/src/mame/drivers/sengokmj.c
@@ -278,8 +278,6 @@ static GFXDECODE_START( sengokmj )
GFXDECODE_ENTRY( REGION_GFX2, 0, charlayout, 0x700, 0x10 ) /* Text */
GFXDECODE_END
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
static INTERRUPT_GEN( sengokmj_interrupt )
{
cpunum_set_input_line_and_vector(0,0,HOLD_LINE,0xcb/4);
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index cc910b0e3b9..193e4b28514 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -1043,10 +1043,6 @@ static MACHINE_DRIVER_START( shangha2 )
MDRV_SOUND_ROUTE(3, "mono", 0.80)
MACHINE_DRIVER_END
-SEIBU_SOUND_SYSTEM_YM2203_HARDWARE
-
-SEIBU_SOUND_SYSTEM_ADPCM_HARDWARE
-
static MACHINE_DRIVER_START( kothello )
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index 66e358a4c93..79415a9ec22 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -425,10 +425,6 @@ GFXDECODE_END
/*****************************************************************************/
-/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */
-SEIBU_SOUND_SYSTEM_YM3812_HARDWARE
-
-
static const struct MSM5205interface msm5205_interface =
{
toki_adpcm_int, /* interrupt function */