mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
Some memory map cleanup.
Changed seibu sound code to share interfaces.
This commit is contained in:
parent
c000a7a284
commit
5e0741e6f1
@ -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
|
||||
};
|
||||
|
||||
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)
|
||||
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_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
|
||||
|
||||
|
@ -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) \
|
||||
|
||||
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
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_READ(MRA8_RAM) /* ??? */
|
||||
AM_RANGE(0x4000, 0x4001) AM_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) /* ??? */
|
||||
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)
|
||||
|
@ -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 */
|
||||
|
@ -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 )
|
||||
|
@ -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 )
|
||||
|
@ -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())
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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 )
|
||||
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user