modernised YM3812 [smf]

This commit is contained in:
smf- 2013-05-13 13:03:38 +00:00
parent a12113cbeb
commit 14ce40c047
66 changed files with 286 additions and 507 deletions

View File

@ -22,134 +22,140 @@
#include "sound/fmopl.h"
struct ym3812_state
{
sound_stream * stream;
emu_timer * timer[2];
void * chip;
const ym3812_interface *intf;
device_t *device;
devcb_resolved_write_line irqhandler;
};
INLINE ym3812_state *get_safe_token(device_t *device)
{
assert(device != NULL);
assert(device->type() == YM3812);
return (ym3812_state *)downcast<ym3812_device *>(device)->token();
}
static void IRQHandler(void *param,int irq)
{
ym3812_state *info = (ym3812_state *)param;
if (!info->irqhandler.isnull())
info->irqhandler(irq ? ASSERT_LINE : CLEAR_LINE);
}
static TIMER_CALLBACK( timer_callback_0 )
{
ym3812_state *info = (ym3812_state *)ptr;
ym3812_timer_over(info->chip,0);
ym3812_device *ym3812 = (ym3812_device *) param;
ym3812->_IRQHandler(irq);
}
static TIMER_CALLBACK( timer_callback_1 )
void ym3812_device::_IRQHandler(int irq)
{
ym3812_state *info = (ym3812_state *)ptr;
ym3812_timer_over(info->chip,1);
if (!m_irq_handler.isnull())
m_irq_handler(irq);
}
static void TimerHandler(void *param,int c,attotime period)
/* Timer overflow callback from timer.c */
void ym3812_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
switch(id)
{
case 0:
ym3812_timer_over(m_chip,0);
break;
case 1:
ym3812_timer_over(m_chip,1);
break;
}
}
static void timer_handler(void *param,int c,attotime period)
{
ym3812_device *ym3812 = (ym3812_device *) param;
ym3812->_timer_handler(c, period);
}
void ym3812_device::_timer_handler(int c, attotime period)
{
ym3812_state *info = (ym3812_state *)param;
if( period == attotime::zero )
{ /* Reset FM Timer */
info->timer[c]->enable(false);
m_timer[c]->enable(false);
}
else
{ /* Start FM Timer */
info->timer[c]->adjust(period);
m_timer[c]->adjust(period);
}
}
static STREAM_UPDATE( ym3812_stream_update )
static void ym3812_update_request(void * param, int interval)
{
ym3812_state *info = (ym3812_state *)param;
ym3812_update_one(info->chip, outputs[0], samples);
ym3812_device *ym3812 = (ym3812_device *) param;
ym3812->_ym3812_update_request();
}
static void _stream_update(void * param, int interval)
void ym3812_device::_ym3812_update_request()
{
ym3812_state *info = (ym3812_state *)param;
info->stream->update();
m_stream->update();
}
static DEVICE_START( ym3812 )
{
static const ym3812_interface dummy = { DEVCB_NULL };
ym3812_state *info = get_safe_token(device);
int rate = device->clock()/72;
//-------------------------------------------------
// sound_stream_update - handle a stream update
//-------------------------------------------------
info->intf = device->static_config() ? (const ym3812_interface *)device->static_config() : &dummy;
info->device = device;
info->irqhandler.resolve(info->intf->irqhandler, *device);
void ym3812_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
ym3812_update_one(m_chip, outputs[0], samples);
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void ym3812_device::device_start()
{
int rate = clock()/72;
m_irq_handler.resolve();
/* stream system initialize */
info->chip = ym3812_init(device,device->clock(),rate);
assert_always(info->chip != NULL, "Error creating YM3812 chip");
m_chip = ym3812_init(this,clock(),rate);
assert_always(m_chip != NULL, "Error creating YM3812 chip");
info->stream = device->machine().sound().stream_alloc(*device,0,1,rate,info,ym3812_stream_update);
m_stream = machine().sound().stream_alloc(*this,0,1,rate);
/* YM3812 setup */
ym3812_set_timer_handler (info->chip, TimerHandler, info);
ym3812_set_irq_handler (info->chip, IRQHandler, info);
ym3812_set_update_handler(info->chip, _stream_update, info);
ym3812_set_timer_handler (m_chip, timer_handler, this);
ym3812_set_irq_handler (m_chip, IRQHandler, this);
ym3812_set_update_handler(m_chip, ym3812_update_request, this);
info->timer[0] = device->machine().scheduler().timer_alloc(FUNC(timer_callback_0), info);
info->timer[1] = device->machine().scheduler().timer_alloc(FUNC(timer_callback_1), info);
m_timer[0] = timer_alloc(0);
m_timer[1] = timer_alloc(1);
}
static DEVICE_STOP( ym3812 )
//-------------------------------------------------
// device_stop - device-specific stop
//-------------------------------------------------
void ym3812_device::device_stop()
{
ym3812_state *info = get_safe_token(device);
ym3812_shutdown(info->chip);
ym3812_shutdown(m_chip);
}
static DEVICE_RESET( ym3812 )
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void ym3812_device::device_reset()
{
ym3812_state *info = get_safe_token(device);
ym3812_reset_chip(info->chip);
ym3812_reset_chip(m_chip);
}
READ8_DEVICE_HANDLER( ym3812_r )
READ8_MEMBER( ym3812_device::read )
{
ym3812_state *info = get_safe_token(device);
return ym3812_read(info->chip, offset & 1);
return ym3812_read(m_chip, offset & 1);
}
WRITE8_DEVICE_HANDLER( ym3812_w )
WRITE8_MEMBER( ym3812_device::write )
{
ym3812_state *info = get_safe_token(device);
ym3812_write(info->chip, offset & 1, data);
ym3812_write(m_chip, offset & 1, data);
}
READ8_DEVICE_HANDLER( ym3812_status_port_r ) { return ym3812_r(device, space, 0); }
READ8_DEVICE_HANDLER( ym3812_read_port_r ) { return ym3812_r(device, space, 1); }
WRITE8_DEVICE_HANDLER( ym3812_control_port_w ) { ym3812_w(device, space, 0, data); }
WRITE8_DEVICE_HANDLER( ym3812_write_port_w ) { ym3812_w(device, space, 1, data); }
READ8_MEMBER( ym3812_device::status_port_r ) { return read(space, 0); }
READ8_MEMBER( ym3812_device::read_port_r ) { return read(space, 1); }
WRITE8_MEMBER( ym3812_device::control_port_w ) { write(space, 0, data); }
WRITE8_MEMBER( ym3812_device::write_port_w ) { write( space, 1, data); }
const device_type YM3812 = &device_creator<ym3812_device>;
ym3812_device::ym3812_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, YM3812, "YM3812", tag, owner, clock),
device_sound_interface(mconfig, *this)
device_sound_interface(mconfig, *this),
m_irq_handler(*this)
{
m_token = global_alloc_clear(ym3812_state);
}
//-------------------------------------------------
@ -161,40 +167,3 @@ ym3812_device::ym3812_device(const machine_config &mconfig, const char *tag, dev
void ym3812_device::device_config_complete()
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void ym3812_device::device_start()
{
DEVICE_START_NAME( ym3812 )(this);
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void ym3812_device::device_reset()
{
DEVICE_RESET_NAME( ym3812 )(this);
}
//-------------------------------------------------
// device_stop - device-specific stop
//-------------------------------------------------
void ym3812_device::device_stop()
{
DEVICE_STOP_NAME( ym3812 )(this);
}
//-------------------------------------------------
// sound_stream_update - handle a stream update
//-------------------------------------------------
void ym3812_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
// should never get here
fatalerror("sound_stream_update called; not applicable to legacy sound devices\n");
}

View File

@ -3,30 +3,32 @@
#ifndef __3812INTF_H__
#define __3812INTF_H__
#include "devlegcy.h"
#include "emu.h"
struct ym3812_interface
{
devcb_write_line irqhandler;
};
DECLARE_READ8_DEVICE_HANDLER( ym3812_r );
DECLARE_WRITE8_DEVICE_HANDLER( ym3812_w );
DECLARE_READ8_DEVICE_HANDLER( ym3812_status_port_r );
DECLARE_READ8_DEVICE_HANDLER( ym3812_read_port_r );
DECLARE_WRITE8_DEVICE_HANDLER( ym3812_control_port_w );
DECLARE_WRITE8_DEVICE_HANDLER( ym3812_write_port_w );
#define MCFG_YM3812_IRQ_HANDLER(_devcb) \
devcb = &ym3812_device::set_irq_handler(*device, DEVCB2_##_devcb);
class ym3812_device : public device_t,
public device_sound_interface
{
public:
ym3812_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
~ym3812_device() { global_free(m_token); }
// access to legacy token
void *token() const { assert(m_token != NULL); return m_token; }
// static configuration helpers
template<class _Object> static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast<ym3812_device &>(device).m_irq_handler.set_callback(object); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( status_port_r );
DECLARE_READ8_MEMBER( read_port_r );
DECLARE_WRITE8_MEMBER( control_port_w );
DECLARE_WRITE8_MEMBER( write_port_w );
void _IRQHandler(int irq);
void _timer_handler(int c, attotime period);
void _ym3812_update_request();
protected:
// device-level overrides
virtual void device_config_complete();
@ -34,11 +36,16 @@ protected:
virtual void device_stop();
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
private:
// internal state
void *m_token;
sound_stream * m_stream;
emu_timer * m_timer[2];
void * m_chip;
devcb2_write_line m_irq_handler;
};
extern const device_type YM3812;

View File

@ -445,11 +445,6 @@ WRITE16_HANDLER( seibu_main_mustb_w )
/***************************************************************************/
const ym3812_interface seibu_ym3812_interface =
{
DEVCB_LINE(seibu_ym3812_irqhandler)
};
const ay8910_interface seibu_ay8910_config =
{
AY8910_LEGACY_OUTPUT,
@ -467,7 +462,7 @@ ADDRESS_MAP_START( seibu_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x4002, 0x4002) AM_WRITE_LEGACY(seibu_rst10_ack_w)
AM_RANGE(0x4003, 0x4003) AM_WRITE_LEGACY(seibu_rst18_ack_w)
AM_RANGE(0x4007, 0x4007) AM_WRITE_LEGACY(seibu_bank_w)
AM_RANGE(0x4008, 0x4009) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x4008, 0x4009) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x4010, 0x4011) AM_READ_LEGACY(seibu_soundlatch_r)
AM_RANGE(0x4012, 0x4012) AM_READ_LEGACY(seibu_main_data_pending_r)
AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN")
@ -541,7 +536,7 @@ ADDRESS_MAP_START( seibu_newzeroteam_sound_map, AS_PROGRAM, 8, driver_device )
AM_RANGE(0x4001, 0x4001) AM_WRITE_LEGACY(seibu_irq_clear_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE_LEGACY(seibu_rst10_ack_w)
AM_RANGE(0x4003, 0x4003) AM_WRITE_LEGACY(seibu_rst18_ack_w)
AM_RANGE(0x4008, 0x4009) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x4008, 0x4009) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x4010, 0x4011) AM_READ_LEGACY(seibu_soundlatch_r)
AM_RANGE(0x4012, 0x4012) AM_READ_LEGACY(seibu_main_data_pending_r)
AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN")

View File

@ -87,7 +87,6 @@ private:
extern const device_type SEIBU_ADPCM;
extern const ym3812_interface seibu_ym3812_interface;
extern const ay8910_interface seibu_ay8910_config;
struct seibu_adpcm_interface
@ -139,7 +138,7 @@ extern const seibu_adpcm_interface seibu_adpcm2_intf;
MCFG_SPEAKER_STANDARD_MONO("mono") \
\
MCFG_SOUND_ADD("ymsnd", YM3812, freq1) \
MCFG_SOUND_CONFIG(seibu_ym3812_interface) \
MCFG_YM2151_IRQ_HANDLER(WRITELINE(driver_device, member_wrapper_line<seibu_ym3812_irqhandler>)) \
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
\
MCFG_OKIM6295_ADD("oki", freq2, OKIM6295_PIN7_LOW) \
@ -148,7 +147,7 @@ extern const seibu_adpcm_interface seibu_adpcm2_intf;
MCFG_SPEAKER_STANDARD_MONO("mono") \
\
MCFG_SOUND_ADD("ymsnd", YM3812, freq1) \
MCFG_SOUND_CONFIG(seibu_ym3812_interface) \
MCFG_YM2151_IRQ_HANDLER(WRITELINE(driver_device, member_wrapper_line<seibu_ym3812_irqhandler>)) \
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) \
\
MCFG_OKIM6295_ADD("oki", freq2, OKIM6295_PIN7_HIGH) \

View File

@ -116,7 +116,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x4000, 0xffff) AM_ROM
@ -280,11 +280,6 @@ WRITE_LINE_MEMBER(actfancr_state::sound_irq)
m_audiocpu->set_input_line(0, state); /* IRQ */
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(actfancr_state,sound_irq)
};
/******************************************************************************/
MACHINE_START_MEMBER(actfancr_state,actfancr)
@ -354,7 +349,7 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_SOUND_ROUTE(3, "mono", 0.50)
MCFG_SOUND_ADD("ym2", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(actfancr_state, sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
@ -404,7 +399,7 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_SOUND_ROUTE(3, "mono", 0.50)
MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz/4) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(actfancr_state, sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) /* verified on pcb */

View File

@ -406,7 +406,7 @@ static ADDRESS_MAP_START( wbbc97_sound_map, AS_PROGRAM, 8, aerofgt_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xfc00, 0xfc00) AM_NOP
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@ -1276,11 +1276,6 @@ WRITE_LINE_MEMBER(aerofgt_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(aerofgt_state,irqhandler) /* IRQ Line */
};
MACHINE_START_MEMBER(aerofgt_state,common)
{
@ -1779,7 +1774,7 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 3579545)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified

View File

@ -774,8 +774,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( alpha68k_I_s_map, AS_PROGRAM, 8, alpha68k_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xe000, 0xe000) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xfc00, 0xfc00) AM_RAM // unknown port
ADDRESS_MAP_END
@ -815,8 +815,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tnextspc_sound_portmap, AS_IO, 8, alpha68k_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w)
AM_RANGE(0x3b, 0x3b) AM_READNOP // unknown read port
AM_RANGE(0x3d, 0x3d) AM_READNOP // unknown read port
AM_RANGE(0x7b, 0x7b) AM_READNOP // unknown read port
@ -1848,11 +1848,6 @@ WRITE_LINE_MEMBER(alpha68k_state::ym3812_irq)
m_audiocpu->set_input_line(0, (state) ? HOLD_LINE : CLEAR_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(alpha68k_state,ym3812_irq)
};
/******************************************************************************/
@ -2101,7 +2096,7 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 4000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(alpha68k_state, ym3812_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -2318,7 +2313,7 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 4000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(alpha68k_state, ym3812_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -644,7 +644,7 @@ static ADDRESS_MAP_START( amaticmg_portmap, AS_IO, 8, amaticmg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x60, 0x60) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
AM_RANGE(0x80, 0x80) AM_WRITE(unk80_w)
@ -660,7 +660,7 @@ static ADDRESS_MAP_START( amaticmg2_portmap, AS_IO, 8, amaticmg_state )
// ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x60, 0x60) AM_DEVWRITE("crtc", mc6845_device, address_w) // 0e for mg_iii_vger_3.64_v_8309
AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) // 0f for mg_iii_vger_3.64_v_8309
AM_RANGE(0xc0, 0xc0) AM_WRITE(rombank_w)
@ -788,15 +788,6 @@ static GFXDECODE_START( amaticmg2 )
GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout_6bpp, 0, 0x10000/0x40 )
GFXDECODE_END
/************************************
* Sound Interface *
************************************/
static const ym3812_interface ym3812_config =
{
DEVCB_NULL
};
/************************************
* CRTC Interface *
@ -898,7 +889,6 @@ static MACHINE_CONFIG_START( amaticmg, amaticmg_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, SND_CLOCK)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
// MCFG_DAC_ADD("dac") /* Y3014B */

View File

@ -743,7 +743,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, armedf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0, 0x1) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x0, 0x1) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x2, 0x2) AM_DEVWRITE("dac1", dac_device, write_signed8)
AM_RANGE(0x3, 0x3) AM_DEVWRITE("dac2", dac_device, write_signed8)
AM_RANGE(0x4, 0x4) AM_READ(soundlatch_clear_r)

View File

@ -78,8 +78,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( battlnts_sound_map, AS_PROGRAM, 8, battlnts_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 777c01.rom */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ym1", ym3812_r, ym3812_w) /* YM3812 (chip 1) */
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ym2", ym3812_r, ym3812_w) /* YM3812 (chip 2) */
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym1", ym3812_device, read, write) /* YM3812 (chip 1) */
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym2", ym3812_device, read, write) /* YM3812 (chip 2) */
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
ADDRESS_MAP_END

View File

@ -98,7 +98,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( crospang_sound_io_map, AS_IO, 8, crospang_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@ -320,11 +320,6 @@ WRITE_LINE_MEMBER(crospang_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(crospang_state,irqhandler) /* IRQ Line */
};
void crospang_state::machine_start()
{
@ -373,7 +368,7 @@ static MACHINE_CONFIG_START( crospang, crospang_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 14318180/4)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(crospang_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified

View File

@ -385,7 +385,7 @@ static ADDRESS_MAP_START( csplayh5_sound_io_map, AS_IO, 8, csplayh5_state )
AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_0_dir_pc_r, tmpz84c011_0_dir_pc_w)
AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_0_dir_pd_r, tmpz84c011_0_dir_pd_w)
AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_0_dir_pe_r, tmpz84c011_0_dir_pe_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ymsnd", ym3812_device, write)
ADDRESS_MAP_END

View File

@ -547,7 +547,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x8000, 0xffff) AM_ROM
@ -556,7 +556,7 @@ ADDRESS_MAP_END
/* Physical memory map (21 bits) */
static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x090000, 0x090001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x090000, 0x090001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */
AM_RANGE(0x0b0000, 0x0b0001) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@ -567,7 +567,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x108000, 0x108001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x108000, 0x108001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x118000, 0x118001) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x138000, 0x138001) AM_READ(soundlatch_byte_r)
@ -1304,16 +1304,6 @@ WRITE_LINE_MEMBER(dec0_state::sound_irq2)
m_audiocpu->set_input_line(1, state); /* IRQ2 */
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(dec0_state,sound_irq)
};
static const ym3812_interface ym3812b_interface =
{
DEVCB_DRIVER_LINE_MEMBER(dec0_state,sound_irq2)
};
/******************************************************************************/
@ -1347,7 +1337,7 @@ static MACHINE_CONFIG_DERIVED( dec0_base_sound, dec0_base )
MCFG_SOUND_ROUTE(3, "mono", 0.35)
MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz / 4)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 2 / 10, OKIM6295_PIN7_HIGH)
@ -1365,7 +1355,7 @@ static MACHINE_CONFIG_DERIVED( dec0_base_sound_alt, dec0_base )
MCFG_SOUND_ROUTE(3, "mono", 0.35)
MCFG_SOUND_ADD("ym2", YM3812, XTAL_12MHz/4) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812b_interface)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq2))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, OKIM6295_PIN7_HIGH) /* verified on pcb */
@ -1733,7 +1723,7 @@ static MACHINE_CONFIG_DERIVED( midresb, midres )
MCFG_CPU_PROGRAM_MAP(dec0_s_map)
MCFG_SOUND_MODIFY("ym2")
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec0_state, sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END

View File

@ -846,7 +846,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dec8_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -1908,11 +1908,6 @@ WRITE_LINE_MEMBER(dec8_state::irqhandler)
m_audiocpu->set_input_line(0, state); /* M6502_IRQ_LINE */
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(dec8_state,irqhandler)
};
static const msm5205_interface msm5205_config =
{
DEVCB_DRIVER_LINE_MEMBER(dec8_state,csilver_adpcm_int), /* interrupt function */
@ -2240,7 +2235,7 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_SOUND_ROUTE(3, "mono", 0.20)
MCFG_SOUND_ADD("ym2", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec8_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MACHINE_CONFIG_END
@ -2387,7 +2382,7 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state )
MCFG_SOUND_ROUTE(3, "mono", 0.20)
MCFG_SOUND_ADD("ym2", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec8_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MACHINE_CONFIG_END
@ -2438,7 +2433,7 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_SOUND_ROUTE(3, "mono", 0.50)
MCFG_SOUND_ADD("ym2", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(dec8_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MACHINE_CONFIG_END

View File

@ -102,7 +102,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, deniam_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_byte_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x07, 0x07) AM_WRITE(deniam16b_oki_rom_bank_w)
ADDRESS_MAP_END
@ -122,7 +122,7 @@ static ADDRESS_MAP_START( deniam16c_map, AS_PROGRAM, 16, deniam_state )
AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2")
AM_RANGE(0xc44006, 0xc44007) AM_READNOP /* read unused? extra input port/dipswitches? */
AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_w, 0xff00)
AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8("ymsnd", ym3812_device, write, 0xff00)
AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@ -227,12 +227,7 @@ WRITE_LINE_MEMBER(deniam_state::irqhandler)
if (m_audiocpu != NULL)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(deniam_state,irqhandler)
};
void deniam_state::machine_start()
@ -293,7 +288,7 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_25MHz/6) /* "SM64" ym3812 clone; 4.166470 measured, = 4.166666Mhz verified */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(deniam_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */
@ -325,7 +320,7 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_25MHz/6) /* "SM64" ym3812 clone; 4.166470 measured, = 4.166666Mhz verified) */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(deniam_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MCFG_OKIM6295_ADD("oki", XTAL_25MHz/24, OKIM6295_PIN7_HIGH) /* 1.041620 measured, = 1.0416666Mhz verified */

View File

@ -353,7 +353,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, discoboy_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("sndbank")
AM_RANGE(0xe000, 0xe000) AM_WRITE(yunsung8_sound_bankswitch_w)
AM_RANGE(0xe400, 0xe400) AM_WRITE(yunsung8_adpcm_w)
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END

View File

@ -253,7 +253,7 @@ READ8_MEMBER(esd16_state::esd16_sound_command_r)
static ADDRESS_MAP_START( multchmp_sound_io_map, AS_IO, 8, esd16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) // YM3812
AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3812_device, write) // YM3812
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE("oki", okim6295_device, read, write) // M6295
AM_RANGE(0x03, 0x03) AM_READ(esd16_sound_command_r) // From Main CPU
AM_RANGE(0x04, 0x04) AM_WRITENOP // ? $00, $30

View File

@ -143,7 +143,7 @@ static ADDRESS_MAP_START( fuuki16_sound_io_map, AS_IO, 8, fuuki16_state )
AM_RANGE(0x20, 0x20) AM_WRITE(fuuki16_oki_banking_w) // Oki Banking
AM_RANGE(0x30, 0x30) AM_WRITENOP // ? In the NMI routine
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE_LEGACY("ym2", ym3812_r, ym3812_w)
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE("ym2", ym3812_device, read, write)
AM_RANGE(0x60, 0x60) AM_DEVREAD("oki", okim6295_device, read) // M6295
AM_RANGE(0x61, 0x61) AM_DEVWRITE("oki", okim6295_device, write) // M6295
ADDRESS_MAP_END
@ -394,11 +394,6 @@ WRITE_LINE_MEMBER(fuuki16_state::soundirq)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface fuuki16_ym3812_intf =
{
DEVCB_DRIVER_LINE_MEMBER(fuuki16_state,soundirq) /* IRQ Line */
};
/*
- Interrupts (pbancho) -
@ -484,7 +479,7 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.15)
MCFG_SOUND_ADD("ym2", YM3812, 4000000)
MCFG_SOUND_CONFIG(fuuki16_ym3812_intf)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(fuuki16_state, soundirq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)

View File

@ -133,7 +133,7 @@ static ADDRESS_MAP_START( bigkarnk_snd_map, AS_PROGRAM, 8, gaelco_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* RAM */
AM_RANGE(0x0800, 0x0801) AM_DEVREADWRITE("oki", okim6295_device, read, write) /* OKI6295 */
// AM_RANGE(0x0900, 0x0900) AM_WRITENOP /* enable sound output? */
AM_RANGE(0x0a00, 0x0a01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) /* YM3812 */
AM_RANGE(0x0a00, 0x0a01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) /* YM3812 */
AM_RANGE(0x0b00, 0x0b00) AM_READ(soundlatch_byte_r) /* Sound latch */
AM_RANGE(0x0c00, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END

View File

@ -81,7 +81,7 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, galspnbl_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xfc00, 0xfc00) AM_NOP /* irq ack ?? */
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@ -210,11 +210,6 @@ WRITE_LINE_MEMBER(galspnbl_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(galspnbl_state,irqhandler)
};
void galspnbl_state::machine_start()
{
@ -248,7 +243,7 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* Use value from Super Pinball Action - NEEDS VERIFICATION!! */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(galspnbl_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Use value from Super Pinball Action - clock frequency & pin 7 not verified */

View File

@ -78,7 +78,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, hcastle_state )
AM_RANGE(0x988a, 0x988e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w)
AM_RANGE(0x988f, 0x988f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w)
AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc000) AM_WRITE(sound_bank_w) /* 7232 bankswitch */
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r)
@ -171,11 +171,6 @@ static const k007232_interface k007232_config =
DEVCB_DRIVER_MEMBER(hcastle_state,volume_callback) /* external port callback */
};
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(hcastle_state,irqhandler)
};
void hcastle_state::machine_start()
{
UINT8 *ROM = memregion("maincpu")->base();
@ -236,7 +231,7 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state )
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ADD("ymsnd", YM3812, 3579545)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(hcastle_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MCFG_K051649_ADD("k051649", 3579545/2)

View File

@ -2318,7 +2318,7 @@ static ADDRESS_MAP_START( drgnwrld, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE(igs011_palette ) AM_SHARE("paletteram")
AM_RANGE( 0x500000, 0x500001 ) AM_READ_PORT( "COIN" )
AM_RANGE( 0x600000, 0x600001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE( 0x700000, 0x700003 ) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_w, 0x00ff )
AM_RANGE( 0x700000, 0x700003 ) AM_DEVWRITE8("ymsnd", ym3812_device, write, 0x00ff)
AM_RANGE( 0x800000, 0x800003 ) AM_WRITE(drgnwrld_igs003_w )
AM_RANGE( 0x800002, 0x800003 ) AM_READ(drgnwrld_igs003_r )

View File

@ -946,7 +946,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound3812_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("pia", pia6821_device, read, write)
@ -958,7 +958,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound3812_external_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x5000, 0x500f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write)
@ -1646,12 +1646,6 @@ static const ay8910_interface ay8910_config =
};
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(itech8_state,generate_sound_irq)
};
/*************************************
*
@ -1741,7 +1735,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym3812 )
/* sound hardware */
MCFG_SOUND_ADD("ymsnd", YM3812, CLOCK_8MHz/2)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(itech8_state, generate_sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified
@ -1757,7 +1751,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym3812_external )
/* sound hardware */
MCFG_SOUND_ADD("ymsnd", YM3812, CLOCK_8MHz/2)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(itech8_state, generate_sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MCFG_OKIM6295_ADD("oki", CLOCK_8MHz/8, OKIM6295_PIN7_HIGH) // was /128, not /132, so unsure so pin 7 not verified

View File

@ -354,7 +354,7 @@ WRITE8_MEMBER(lordgun_state::lordgun_okibank_w)
}
static ADDRESS_MAP_START( lordgun_soundio_map, AS_IO, 8, lordgun_state )
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x2000, 0x2000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch2_byte_r )
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_byte_r )
@ -665,11 +665,6 @@ WRITE_LINE_MEMBER(lordgun_state::soundirq)
m_soundcpu->set_input_line(INPUT_LINE_IRQ0, state);
}
static const ym3812_interface lordgun_ym3812_interface =
{
DEVCB_DRIVER_LINE_MEMBER(lordgun_state,soundirq)
};
static MACHINE_CONFIG_START( lordgun, lordgun_state )
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
MCFG_CPU_PROGRAM_MAP(lordgun_map)
@ -698,7 +693,7 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_3_579545MHz)
MCFG_SOUND_CONFIG(lordgun_ym3812_interface)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(lordgun_state, soundirq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_20MHz / 20, OKIM6295_PIN7_HIGH) // ? 5MHz can't be right!

View File

@ -326,7 +326,7 @@ static ADDRESS_MAP_START( barline_io_map, AS_IO, 8, nbmj8688_state )
// AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r)
AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nb1413m3_sndrombank1_w)
AM_RANGE(0x70, 0x70) AM_WRITE_LEGACY(nb1413m3_nmi_clock_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("psg", ym3812_r,ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0x90, 0x97) AM_WRITE(nbmj8688_blitter_w)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
@ -366,7 +366,7 @@ static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
AM_RANGE(0x70, 0x77) AM_WRITE(nbmj8688_blitter_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("psg", ym3812_r,ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -495,7 +495,7 @@ static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x20, 0x3f) AM_WRITE(nbmj8688_clut_w)
AM_RANGE(0x50, 0x50) AM_WRITE(mjsikaku_romsel_w)
AM_RANGE(0x60, 0x67) AM_WRITE(nbmj8688_blitter_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("psg", ym3812_r, ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("psg", ym3812_device, read, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)

View File

@ -438,7 +438,7 @@ static ADDRESS_MAP_START( gionbana_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -457,7 +457,7 @@ static ADDRESS_MAP_START( mgion_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -498,7 +498,7 @@ static ADDRESS_MAP_START( hanamomo_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x40, 0x40) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -517,7 +517,7 @@ static ADDRESS_MAP_START( msjiken_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -536,7 +536,7 @@ static ADDRESS_MAP_START( scandal_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x10, 0x10) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x20, 0x20) AM_WRITE(nbmj8891_clutsel_w)
AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -576,7 +576,7 @@ static ADDRESS_MAP_START( bananadr_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x30, 0x30) AM_WRITE(nbmj8891_vramsel_w)
AM_RANGE(0x40, 0x4f) AM_WRITE(nbmj8891_clut_w)
AM_RANGE(0x50, 0x50) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -595,7 +595,7 @@ static ADDRESS_MAP_START( lovehous_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r) //AM_WRITENOP
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -614,7 +614,7 @@ static ADDRESS_MAP_START( maiko_io_map, AS_IO, 8, nbmj8891_state )
AM_RANGE(0x50, 0x57) AM_WRITE(nbmj8891_blitter_w)
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)

View File

@ -118,7 +118,7 @@ static ADDRESS_MAP_START( ohpaipee_io_map, AS_IO, 8, nbmj8900_state )
AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8900_romsel_w)
AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8900_scrolly_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)

View File

@ -248,7 +248,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( galkoku_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_READ_LEGACY(nb1413m3_sndrom_r) AM_WRITE(nbmj8991_blitter_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
@ -314,7 +314,7 @@ static ADDRESS_MAP_START( nbmj8991_sound_io_map, AS_IO, 8, nbmj8991_state )
AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac2", dac_device, write_unsigned8)
AM_RANGE(0x04, 0x04) AM_WRITE(nbmj8991_soundbank_w)
AM_RANGE(0x06, 0x06) AM_WRITENOP
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("fmsnd", ym3812_device, write)
ADDRESS_MAP_END

View File

@ -1158,7 +1158,7 @@ static ADDRESS_MAP_START( sailorws_sound_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_1_dir_pc_r,tmpz84c011_1_dir_pc_w)
AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_1_dir_pd_r,tmpz84c011_1_dir_pd_w)
AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_1_dir_pe_r,tmpz84c011_1_dir_pe_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ymsnd", ym3812_device, write)
ADDRESS_MAP_END

View File

@ -561,7 +561,7 @@ static ADDRESS_MAP_START( city_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0x988a, 0x988e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w)
AM_RANGE(0x988f, 0x988f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w)
AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc000) AM_WRITE(city_sound_bank_w) /* 7232 bankswitch */
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r)
@ -1486,11 +1486,6 @@ WRITE_LINE_MEMBER(nemesis_state::sound_irq)
// driver_state->audiocpu->set_input_line(0, HOLD_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(nemesis_state,sound_irq)
};
WRITE8_MEMBER(nemesis_state::volume_callback)
{
k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0);
@ -1828,7 +1823,7 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
MCFG_SOUND_ADD("ymsnd", YM3812, 3579545)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(nemesis_state, sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
@ -1874,7 +1869,7 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
MCFG_SOUND_ADD("ymsnd", YM3812, 3579545)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(nemesis_state, sound_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)

View File

@ -505,7 +505,7 @@ static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8, niyanpai_state )
AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_0_dir_pc_r, tmpz84c011_0_dir_pc_w)
AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_0_dir_pd_r, tmpz84c011_0_dir_pd_w)
AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_0_dir_pe_r, tmpz84c011_0_dir_pe_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ymsnd", ym3812_device, write)
ADDRESS_MAP_END

View File

@ -406,7 +406,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, nmg5_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE(oki_banking_w)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x18, 0x18) AM_READ(soundlatch_byte_r)
AM_RANGE(0x1c, 0x1c) AM_DEVREADWRITE("oki", okim6295_device, read, write)
ADDRESS_MAP_END
@ -980,11 +980,6 @@ WRITE_LINE_MEMBER(nmg5_state::soundirq)
m_soundcpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_intf =
{
DEVCB_DRIVER_LINE_MEMBER(nmg5_state,soundirq) /* IRQ Line */
};
void nmg5_state::machine_start()
{
save_item(NAME(m_gfx_bank));
@ -1036,7 +1031,7 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 4000000) /* 4MHz */
MCFG_SOUND_CONFIG(ym3812_intf)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(nmg5_state, soundirq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", 1000000 , OKIM6295_PIN7_HIGH)

View File

@ -125,7 +125,7 @@ static ADDRESS_MAP_START( oneshot_sound_map, AS_PROGRAM, 8, oneshot_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8000) AM_READWRITE(soundlatch_byte_r,soundlatch_byte_w)
AM_RANGE(0x8001, 0x87ff) AM_RAM
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xe010, 0xe010) AM_DEVREADWRITE("oki", okim6295_device, read, write)
ADDRESS_MAP_END
@ -331,11 +331,6 @@ WRITE_LINE_MEMBER(oneshot_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(oneshot_state,irqhandler)
};
void oneshot_state::machine_start()
{
save_item(NAME(m_gun_x_p1));
@ -384,7 +379,7 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 3500000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(oneshot_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified

View File

@ -195,8 +195,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_io, AS_IO, 8, onetwo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xc0, 0xc0) AM_WRITE(soundlatch_clear_byte_w)
ADDRESS_MAP_END
@ -337,11 +337,6 @@ WRITE_LINE_MEMBER(onetwo_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(onetwo_state,irqhandler) /* IRQ Line */
};
/*************************************
*
* Machine driver
@ -385,7 +380,7 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, MASTER_CLOCK)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(onetwo_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", 1056000*2, OKIM6295_PIN7_LOW) // clock frequency & pin 7 not verified

View File

@ -90,7 +90,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pcktgal_sound_map, AS_PROGRAM, 8, pcktgal_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x1800, 0x1800) AM_WRITE(pcktgal_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
AM_RANGE(0x2000, 0x2000) AM_WRITE(pcktgal_sound_bank_w)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)

View File

@ -105,7 +105,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pokechmp_sound_map, AS_PROGRAM, 8, pokechmp_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x1800, 0x1800) AM_WRITENOP /* MSM5205 chip on Pocket Gal, not connected here? */
AM_RANGE(0x2000, 0x2000) AM_WRITE(pokechmp_sound_bank_w) /* sound rom bank seems to be replaced with OKI bank */
AM_RANGE(0x2800, 0x2800) AM_DEVREADWRITE("oki", okim6295_device, read, write) // extra

View File

@ -60,8 +60,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( prehisle_sound_io_map, AS_IO, 8, prehisle_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w)
AM_RANGE(0x40, 0x40) AM_WRITE(D7759_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(D7759_upd_reset_w)
ADDRESS_MAP_END
@ -196,11 +196,6 @@ WRITE_LINE_MEMBER(prehisle_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(prehisle_state,irqhandler)
};
/******************************************************************************/
static MACHINE_CONFIG_START( prehisle, prehisle_state )
@ -230,7 +225,7 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(prehisle_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)

View File

@ -101,7 +101,7 @@ static ADDRESS_MAP_START( rollerg_sound_map, AS_PROGRAM, 8, rollerg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa02f) AM_DEVREADWRITE("k053260", k053260_device, k053260_r, k053260_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
ADDRESS_MAP_END

View File

@ -202,7 +202,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sauro_sound_map, AS_PROGRAM, 8, sauro_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xa000, 0xa000) AM_WRITE(adpcm_w)
AM_RANGE(0xe000, 0xe000) AM_READ(sauro_sound_command_r)
AM_RANGE(0xe000, 0xe006) AM_WRITENOP /* echo from write to e0000 */
@ -220,7 +220,7 @@ static ADDRESS_MAP_START( trckydoc_map, AS_PROGRAM, 8, sauro_state )
AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSW2")
AM_RANGE(0xf810, 0xf810) AM_READ_PORT("P1")
AM_RANGE(0xf818, 0xf818) AM_READ_PORT("P2")
AM_RANGE(0xf820, 0xf821) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xf820, 0xf821) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xf828, 0xf828) AM_READ(watchdog_reset_r)
AM_RANGE(0xf830, 0xf830) AM_WRITE(tecfri_scroll_bg_w)
AM_RANGE(0xf838, 0xf838) AM_WRITENOP /* only written at startup */

View File

@ -2904,7 +2904,7 @@ static ADDRESS_MAP_START( crazyfgt_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x620000, 0x620003) AM_WRITENOP // protection
AM_RANGE(0x630000, 0x630003) AM_READ(seta_dsw_r)
AM_RANGE(0x640400, 0x640fff) AM_WRITEONLY AM_SHARE("paletteram") // Palette
AM_RANGE(0x650000, 0x650003) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_w, 0x00ff)
AM_RANGE(0x650000, 0x650003) AM_DEVWRITE8("ymsnd", ym3812_device, write, 0x00ff)
AM_RANGE(0x658000, 0x658001) AM_DEVWRITE8("oki", okim6295_device, write, 0x00ff)
AM_RANGE(0x670000, 0x670001) AM_READNOP // watchdog?
AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2
@ -3087,7 +3087,7 @@ static ADDRESS_MAP_START( tndrcade_sub_map, AS_PROGRAM, 8, seta_state )
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2") // P2
AM_RANGE(0x1002, 0x1002) AM_READ_PORT("COINS") // Coins
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
AM_RANGE(0x3000, 0x3001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x3000, 0x3001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("sharedram") // Shared RAM
AM_RANGE(0x6000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM

View File

@ -468,12 +468,6 @@ WRITE_LINE_MEMBER(snk_state::ymirq_callback_2)
}
static const ym3812_interface ym3812_config_1 =
{
DEVCB_DRIVER_LINE_MEMBER(snk_state,ymirq_callback_1)
};
WRITE8_MEMBER(snk_state::snk_soundlatch_w)
{
@ -1446,8 +1440,8 @@ static ADDRESS_MAP_START( YM3812_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ym1", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3812_write_port_w)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ym1", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("ym1", ym3812_device, write_port_w)
AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
@ -1466,8 +1460,8 @@ static ADDRESS_MAP_START( YM3812_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ym1", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3812_write_port_w)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE("ym1", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE("ym1", ym3812_device, write_port_w)
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE("ym2", y8950_device, status_port_r, control_port_w)
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE("ym2", y8950_device, write_port_w)
AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
@ -3837,7 +3831,7 @@ static MACHINE_CONFIG_DERIVED( fitegolf, tnk3 )
/* sound hardware */
MCFG_SOUND_REPLACE("ym1", YM3812, XTAL_4MHz) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config_1)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(snk_state, ymirq_callback_1))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
MACHINE_CONFIG_END
@ -3989,7 +3983,7 @@ static MACHINE_CONFIG_DERIVED( chopper1, bermudat )
/* sound hardware */
MCFG_SOUND_REPLACE("ym1", YM3812, 4000000)
MCFG_SOUND_CONFIG(ym3812_config_1)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(snk_state, ymirq_callback_1))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -174,8 +174,8 @@ WRITE8_MEMBER(snk68_state::D7759_upd_reset_w)
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, snk68_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("ymsnd", ym3812_device, status_port_r, control_port_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("ymsnd", ym3812_device, write_port_w)
AM_RANGE(0x40, 0x40) AM_WRITE(D7759_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(D7759_upd_reset_w)
ADDRESS_MAP_END
@ -577,11 +577,6 @@ WRITE_LINE_MEMBER(snk68_state::irqhandler)
m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(snk68_state,irqhandler)
};
/******************************************************************************/
static MACHINE_CONFIG_START( pow, snk68_state )
@ -611,7 +606,7 @@ static MACHINE_CONFIG_START( pow, snk68_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_8MHz/2) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(snk68_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)

View File

@ -215,7 +215,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, snowbros_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_byte_r, soundlatch_byte_w) /* goes back to the main CPU, checked during boot */
ADDRESS_MAP_END
@ -316,7 +316,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( honeydol_sound_io_map, AS_IO, 8, snowbros_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w) // not connected?
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) // not connected?
AM_RANGE(0x04, 0x04) AM_READWRITE(soundlatch_byte_r, soundlatch_byte_w) /* goes back to the main CPU, checked during boot */
ADDRESS_MAP_END
@ -1492,14 +1492,6 @@ WRITE_LINE_MEMBER(snowbros_state::irqhandler)
m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
/* SnowBros Sound */
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(snowbros_state,irqhandler)
};
MACHINE_RESET_MEMBER(snowbros_state,semiprot)
{
UINT16 *PROTDATA = (UINT16*)memregion("user1")->base();
@ -1554,7 +1546,7 @@ static MACHINE_CONFIG_START( snowbros, snowbros_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(snowbros_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1663,7 +1655,7 @@ static MACHINE_CONFIG_START( honeydol, snowbros_state )
/* sound hardware */
MCFG_SOUND_ADD("ymsnd", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(snowbros_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)

View File

@ -222,7 +222,7 @@ static ADDRESS_MAP_START( spbactn_sound_map, AS_PROGRAM, 8, spbactn_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xfc00, 0xfc00) AM_READNOP AM_WRITENOP /* irq ack ?? */
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_byte_r)
@ -407,11 +407,6 @@ WRITE_LINE_MEMBER(spbactn_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(spbactn_state,irqhandler)
};
static MACHINE_CONFIG_START( spbactn, spbactn_state )
/* basic machine hardware */
@ -439,7 +434,7 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* Was 3.579545MHz, a common clock, but no way to generate via on PCB OSCs */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(spbactn_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Was 1.056MHz, a common clock, but no way to generate via on PCB OSCs. clock frequency & pin 7 not verified */
@ -481,7 +476,7 @@ static MACHINE_CONFIG_START( spbactnp, spbactn_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(spbactn_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH)

View File

@ -269,7 +269,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spdodgeb_sound_map, AS_PROGRAM, 8, spdodgeb_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_byte_r)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x3800, 0x3807) AM_WRITE(spd_adpcm_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -387,11 +387,6 @@ WRITE_LINE_MEMBER(spdodgeb_state::irqhandler)
m_audiocpu->set_input_line(M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(spdodgeb_state,irqhandler)
};
static const msm5205_interface msm5205_config_1 =
{
DEVCB_DRIVER_LINE_MEMBER(spdodgeb_state,spd_adpcm_int_1), /* interrupt function */
@ -442,7 +437,7 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ymsnd", YM3812, 3000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(spdodgeb_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)

View File

@ -93,7 +93,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_io_map, AS_IO, 8, speedbal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x40, 0x40) AM_WRITENOP
AM_RANGE(0x80, 0x80) AM_WRITENOP
AM_RANGE(0x82, 0x82) AM_WRITENOP

View File

@ -121,7 +121,7 @@ static ADDRESS_MAP_START( splash_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
// AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* ??? */
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_byte_r) /* Sound latch */
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w) /* YM3812 */
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) /* YM3812 */
AM_RANGE(0xf800, 0xffff) AM_RAM /* RAM */
ADDRESS_MAP_END

View File

@ -393,7 +393,7 @@ static ADDRESS_MAP_START( spy_sound_map, AS_PROGRAM, 8, spy_state )
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w)
AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END
@ -474,11 +474,6 @@ WRITE_LINE_MEMBER(spy_state::irqhandler)
m_audiocpu->set_input_line(INPUT_LINE_NMI, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(spy_state,irqhandler)
};
static const k052109_interface spy_k052109_intf =
{
@ -552,7 +547,7 @@ static MACHINE_CONFIG_START( spy, spy_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 3579545)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(spy_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("k007232_1", K007232, 3579545)

View File

@ -86,7 +86,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, stadhero_state )
AM_RANGE(0x0000, 0x05ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x8000, 0xffff) AM_ROM
@ -217,11 +217,6 @@ WRITE_LINE_MEMBER(stadhero_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(stadhero_state,irqhandler)
};
/******************************************************************************/
static MACHINE_CONFIG_START( stadhero, stadhero_state )
@ -262,7 +257,7 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state )
MCFG_SOUND_ROUTE(3, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM3812, XTAL_24MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(stadhero_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH)

View File

@ -841,7 +841,7 @@ static ADDRESS_MAP_START( srider_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x0d00c, 0x0d00c ) AM_READ_PORT( "INC" )
AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE( 0x0d018, 0x0d018 ) AM_DEVWRITE("oki", okim6295_device, write)
@ -868,7 +868,7 @@ static ADDRESS_MAP_START( sharkpy_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" )
AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE( 0x09018, 0x09018 ) AM_DEVWRITE("oki", okim6295_device, write)
@ -1047,7 +1047,7 @@ static ADDRESS_MAP_START( tisub_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" )
AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE("oki", okim6295_device, write)
@ -1172,7 +1172,7 @@ static ADDRESS_MAP_START( stisub_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x0d010, 0x0d013 ) AM_WRITE(colordac_w)
AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
// AM_RANGE( 0x0d01b, 0x0d01b ) AM_WRITE(subsino_tiles_offset_w )
@ -1213,7 +1213,7 @@ static ADDRESS_MAP_START( mtrainnv_map, AS_PROGRAM, 8, subsino_state )
// AM_RANGE( 0x0d012, 0x0d012 ) AM_WRITE
AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
// AM_RANGE( 0x0d018, 0x0d018 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)

View File

@ -1232,7 +1232,7 @@ static ADDRESS_MAP_START( saklove_io, AS_IO, 8, subsino2_state )
AM_RANGE(0x0000, 0x0000) AM_WRITE(ss9601_scrollctrl_w )
AM_RANGE(0x0020, 0x0020) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x0040, 0x0041) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE(0x0040, 0x0041) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0x0060, 0x0063) AM_WRITE(hm86171_colorram_w )

View File

@ -1176,10 +1176,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hardhead_sound_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM // RAM
AM_RANGE(0xc800, 0xc800) AM_DEVREAD_LEGACY("ymsnd", ym3812_status_port_r) // ? unsure
AM_RANGE(0xc800, 0xc800) AM_DEVREAD("ymsnd", ym3812_device, status_port_r) // ? unsure
AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch2_byte_w ) //
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r ) // From Main CPU
ADDRESS_MAP_END
@ -1211,7 +1211,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( brickzn_sound_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM // ROM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w )
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xc002, 0xc003) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM // RAM
AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_byte_w ) // To PCM CPU
@ -1905,11 +1905,6 @@ MACHINE_CONFIG_END
/* 1 x 24 MHz crystal */
static const ym3812_interface brickzn_ym3812_interface =
{
DEVCB_DRIVER_LINE_MEMBER(suna8_state,soundirq) /* IRQ Line */
};
MACHINE_RESET_MEMBER(suna8_state,brickzn)
{
m_protection_val = m_prot2 = m_prot2_prev = 0xff;
@ -1950,7 +1945,7 @@ static MACHINE_CONFIG_START( brickzn, suna8_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ymsnd", YM3812, SUNA8_MASTER_CLOCK / 6)
MCFG_SOUND_CONFIG(brickzn_ym3812_interface)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(suna8_state, soundirq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)

View File

@ -193,8 +193,8 @@ WRITE_LINE_MEMBER(tbowl_state::tbowl_adpcm_int_2)
static ADDRESS_MAP_START( 6206A_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd001) AM_DEVWRITE_LEGACY("ym1", ym3812_w)
AM_RANGE(0xd800, 0xd801) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("ym1", ym3812_device, write)
AM_RANGE(0xd800, 0xd801) AM_DEVWRITE("ym2", ym3812_device, write)
AM_RANGE(0xe000, 0xe001) AM_WRITE(tbowl_adpcm_end_w)
AM_RANGE(0xe002, 0xe003) AM_WRITE(tbowl_adpcm_start_w)
AM_RANGE(0xe004, 0xe005) AM_WRITE(tbowl_adpcm_vol_w)
@ -432,11 +432,6 @@ WRITE_LINE_MEMBER(tbowl_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(tbowl_state,irqhandler)
};
static const msm5205_interface msm5205_config_1 =
{
DEVCB_DRIVER_LINE_MEMBER(tbowl_state,tbowl_adpcm_int_1), /* interrupt function */
@ -511,7 +506,7 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM3812, 4000000)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(tbowl_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("ym2", YM3812, 4000000)

View File

@ -229,7 +229,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rygar_sound_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(tecmo_adpcm_start_w)
AM_RANGE(0xd000, 0xd000) AM_WRITE(tecmo_adpcm_end_w)
AM_RANGE(0xe000, 0xe000) AM_WRITE(tecmo_adpcm_vol_w)
@ -241,7 +241,7 @@ static ADDRESS_MAP_START( tecmo_sound_map, AS_PROGRAM, 8, tecmo_state )
/* writes code to this area */
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) AM_WRITE(tecmo_adpcm_start_w)
AM_RANGE(0xc400, 0xc400) AM_WRITE(tecmo_adpcm_end_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE(tecmo_adpcm_vol_w)
@ -606,11 +606,6 @@ WRITE_LINE_MEMBER(tecmo_state::irqhandler)
m_soundcpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(tecmo_state,irqhandler)
};
static const msm5205_interface msm5205_config =
{
DEVCB_DRIVER_LINE_MEMBER(tecmo_state,tecmo_adpcm_int), /* interrupt function */
@ -654,7 +649,7 @@ static MACHINE_CONFIG_START( rygar, tecmo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(tecmo_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb, even if schematics shows a 384khz resonator */
@ -713,7 +708,7 @@ static MACHINE_CONFIG_START( backfirt, tecmo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(tecmo_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* no MSM on this PCB */

View File

@ -579,7 +579,7 @@ static ADDRESS_MAP_START( rallybik_sound_io_map, AS_IO, 8, toaplan1_state )
AM_RANGE(0x30, 0x30) AM_WRITE(rallybik_coin_w) /* Coin counter/lockout */
AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWA")
AM_RANGE(0x50, 0x50) AM_READ_PORT("DSWB")
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START( truxton_sound_io_map, AS_IO, 8, toaplan1_state )
@ -590,7 +590,7 @@ static ADDRESS_MAP_START( truxton_sound_io_map, AS_IO, 8, toaplan1_state )
AM_RANGE(0x30, 0x30) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWA")
AM_RANGE(0x50, 0x50) AM_READ_PORT("DSWB")
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x70, 0x70) AM_READ_PORT("TJUMP")
ADDRESS_MAP_END
@ -603,7 +603,7 @@ static ADDRESS_MAP_START( hellfire_sound_io_map, AS_IO, 8, toaplan1_state )
AM_RANGE(0x40, 0x40) AM_READ_PORT("P1")
AM_RANGE(0x50, 0x50) AM_READ_PORT("P2")
AM_RANGE(0x60, 0x60) AM_READ_PORT("SYSTEM")
AM_RANGE(0x70, 0x71) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START( zerowing_sound_io_map, AS_IO, 8, toaplan1_state )
@ -615,12 +615,12 @@ static ADDRESS_MAP_START( zerowing_sound_io_map, AS_IO, 8, toaplan1_state )
AM_RANGE(0x80, 0x80) AM_READ_PORT("SYSTEM")
AM_RANGE(0x88, 0x88) AM_READ_PORT("TJUMP")
AM_RANGE(0xa0, 0xa0) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
AM_RANGE(0xa8, 0xa9) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xa8, 0xa9) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START( demonwld_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x20, 0x20) AM_READ_PORT("TJUMP")
AM_RANGE(0x40, 0x40) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
AM_RANGE(0x60, 0x60) AM_READ_PORT("SYSTEM")
@ -632,7 +632,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( outzone_sound_io_map, AS_IO, 8, toaplan1_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x04, 0x04) AM_WRITE(toaplan1_coin_w) /* Coin counter/lockout */
AM_RANGE(0x08, 0x08) AM_READ_PORT("DSWA")
AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSWB")
@ -1520,11 +1520,6 @@ WRITE_LINE_MEMBER(toaplan1_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(toaplan1_state,irqhandler)
};
static MACHINE_CONFIG_START( rallybik, toaplan1_state )
@ -1559,7 +1554,7 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1596,7 +1591,7 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1633,7 +1628,7 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1670,7 +1665,7 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1711,7 +1706,7 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1746,7 +1741,7 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1783,7 +1778,7 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1818,7 +1813,7 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan1_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -1367,7 +1367,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pipibibs_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
ADDRESS_MAP_END
@ -2972,12 +2972,6 @@ WRITE_LINE_MEMBER(toaplan2_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(toaplan2_state,irqhandler)
};
WRITE_LINE_MEMBER(toaplan2_state::bbakraid_irqhandler)
{
// Not used ??? Connected to a test pin (TP082)
@ -3021,7 +3015,7 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_27MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan2_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -3325,7 +3319,7 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_27MHz/8) /* verified on pcb */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan2_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -3366,7 +3360,7 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_27MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(toaplan2_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -132,7 +132,7 @@ static ADDRESS_MAP_START( tokib_audio_map, AS_PROGRAM, 8, toki_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xe000) AM_WRITE(toki_adpcm_control_w) /* MSM5205 + ROM bank */
AM_RANGE(0xe400, 0xe400) AM_WRITE(toki_adpcm_data_w)
AM_RANGE(0xec00, 0xec01) AM_MIRROR(0x0008) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0xec00, 0xec01) AM_MIRROR(0x0008) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r)
ADDRESS_MAP_END

View File

@ -311,7 +311,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, twincobr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x10, 0x10) AM_READ_PORT("SYSTEM") /* Twin Cobra - Coin/Start */
AM_RANGE(0x20, 0x20) AM_WRITE(twincobr_coin_w) /* Twin Cobra coin count-lockout */
AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWA")
@ -552,11 +552,6 @@ WRITE_LINE_MEMBER(twincobr_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(twincobr_state,irqhandler)
};
static MACHINE_CONFIG_START( twincobr, twincobr_state )
@ -599,7 +594,7 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_28MHz/8)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(twincobr_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -338,7 +338,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( umipoker_audio_io_map, AS_IO, 8, umipoker_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE_LEGACY("ym", ym3812_r, ym3812_w)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ym", ym3812_device, read, write)
ADDRESS_MAP_END

View File

@ -67,8 +67,8 @@ static ADDRESS_MAP_START( burglarx_map, AS_PROGRAM, 16, unico_state )
AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0
AM_RANGE(0x80010c, 0x800121) AM_WRITEONLY AM_SHARE("scroll") // Scroll
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_write_port_w, 0xff00 ) //
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) //
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00)
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00)
AM_RANGE(0x80018e, 0x80018f) AM_WRITE(burglarx_sound_bank_w) //
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_SHARE("vram") // Layers 1, 2, 0
@ -155,8 +155,8 @@ static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16, unico_state )
AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) //
AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r ) //
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff ) // Sound
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8_LEGACY("ymsnd", ym3812_write_port_w, 0xff00 ) //
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w, 0xff00 ) //
AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00)
AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00)
AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w ) //
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_SHARE("vram") // Layers 1, 2, 0

View File

@ -230,7 +230,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, wardner_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
ADDRESS_MAP_END
@ -370,11 +370,6 @@ WRITE_LINE_MEMBER(wardner_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface ym3812_config =
{
DEVCB_DRIVER_LINE_MEMBER(wardner_state,irqhandler)
};
static GFXDECODE_START( wardner )
GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout, 1536, 32 ) /* colors 1536-1791 */
@ -427,7 +422,7 @@ static MACHINE_CONFIG_START( wardner, wardner_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_14MHz/4)
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(wardner_state, irqhandler))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -174,7 +174,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, yunsun16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w )
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write)
AM_RANGE(0x18, 0x18) AM_READ(soundlatch_byte_r ) // From Main CPU
AM_RANGE(0x1c, 0x1c) AM_DEVREADWRITE("oki", okim6295_device, read, write) // M6295
ADDRESS_MAP_END
@ -575,11 +575,6 @@ WRITE_LINE_MEMBER(yunsun16_state::soundirq)
m_audiocpu->set_input_line(0, state);
}
static const ym3812_interface magicbub_ym3812_intf =
{
DEVCB_DRIVER_LINE_MEMBER(yunsun16_state,soundirq) /* IRQ Line */
};
static MACHINE_CONFIG_START( magicbub, yunsun16_state )
/* basic machine hardware */
@ -608,7 +603,7 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ymsnd", YM3812, 4000000)
MCFG_SOUND_CONFIG(magicbub_ym3812_intf)
MCFG_YM3812_IRQ_HANDLER(WRITELINE(yunsun16_state, soundirq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)

View File

@ -116,7 +116,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, yunsung8_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2") // Banked ROM
AM_RANGE(0xe000, 0xe000) AM_WRITE(yunsung8_sound_bankswitch_w ) // ROM Bank
AM_RANGE(0xe400, 0xe400) AM_WRITE(yunsung8_adpcm_w)
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE("ymsnd", ym3812_device, write)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r) // From Main CPU
ADDRESS_MAP_END

View File

@ -11,34 +11,32 @@
#define ym3812_StdClock 3579545
static const ym3812_interface pc_ym3812_interface =
{
DEVCB_NULL
};
static MACHINE_CONFIG_FRAGMENT( adlib_config )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock)
MCFG_SOUND_CONFIG(pc_ym3812_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 3.00)
MACHINE_CONFIG_END
static READ8_DEVICE_HANDLER( ym3812_16_r )
{
ym3812_device *ym3812 = (ym3812_device *) device;
UINT8 retVal = 0xff;
switch(offset)
{
case 0 : retVal = ym3812_status_port_r( device, space, offset ); break;
case 0 : retVal = ym3812->status_port_r( space, offset ); break;
}
return retVal;
}
static WRITE8_DEVICE_HANDLER( ym3812_16_w )
{
ym3812_device *ym3812 = (ym3812_device *) device;
switch(offset)
{
case 0 : ym3812_control_port_w( device, space, offset, data ); break;
case 1 : ym3812_write_port_w( device, space, offset, data ); break;
case 0 : ym3812->control_port_w( space, offset, data ); break;
case 1 : ym3812->write_port_w( space, offset, data ); break;
}
}

View File

@ -61,11 +61,6 @@ static const int m_cmd_fifo_length[256] =
static const int protection_magic[4] = { 0x96, 0xa5, 0x69, 0x5a };
static const ym3812_interface pc_ym3812_interface =
{
DEVCB_NULL
};
static SLOT_INTERFACE_START(midiin_slot)
SLOT_INTERFACE("midiin", MIDIIN_PORT)
SLOT_INTERFACE_END
@ -87,7 +82,6 @@ static const serial_port_interface midiout_intf =
static MACHINE_CONFIG_FRAGMENT( sblaster1_0_config )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock)
MCFG_SOUND_CONFIG(pc_ym3812_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 3.00)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 3.00)
MCFG_SAA1099_ADD("saa1099.1", 4772720)
@ -110,7 +104,6 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( sblaster1_5_config )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock)
MCFG_SOUND_CONFIG(pc_ym3812_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00)
/* no CM/S support (empty sockets) */
@ -144,20 +137,24 @@ MACHINE_CONFIG_END
static READ8_DEVICE_HANDLER( ym3812_16_r )
{
ym3812_device *ym3812 = (ym3812_device *) device;
UINT8 retVal = 0xff;
switch(offset)
{
case 0 : retVal = ym3812_status_port_r( device, space, offset ); break;
case 0 : retVal = ym3812->status_port_r( space, offset ); break;
}
return retVal;
}
static WRITE8_DEVICE_HANDLER( ym3812_16_w )
{
ym3812_device *ym3812 = (ym3812_device *) device;
switch(offset)
{
case 0 : ym3812_control_port_w( device, space, offset, data ); break;
case 1 : ym3812_write_port_w( device, space, offset, data ); break;
case 0 : ym3812->control_port_w( space, offset, data ); break;
case 1 : ym3812->write_port_w( space, offset, data ); break;
}
}

View File

@ -6,11 +6,6 @@
const device_type ISA8_STEREO_FX = &device_creator<stereo_fx_device>;
static const ym3812_interface pc_ym3812_interface =
{
DEVCB_NULL
};
READ8_MEMBER( stereo_fx_device::dev_dsp_data_r )
{
m_data_in = false;
@ -113,7 +108,6 @@ static MACHINE_CONFIG_FRAGMENT( stereo_fx )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ym3812", YM3812, XTAL_3_579545MHz)
MCFG_SOUND_CONFIG(pc_ym3812_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00)
/* no CM/S support (empty sockets) */
@ -203,14 +197,15 @@ stereo_fx_device::stereo_fx_device(const machine_config &mconfig, const char *ta
void stereo_fx_device::device_start()
{
set_isa_device();
ym3812_device *ym3812 = subdevice<ym3812_device>("ym3812");
m_isa->install_device(0x0200, 0x0207, 0, 0, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
m_isa->install_device(0x0226, 0x0227, 0, 0, read8_delegate(FUNC(stereo_fx_device::invalid_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_reset_w), this));
m_isa->install_device(0x022a, 0x022b, 0, 0, read8_delegate(FUNC(stereo_fx_device::dsp_data_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) );
m_isa->install_device(0x022c, 0x022d, 0, 0, read8_delegate(FUNC(stereo_fx_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_cmd_w), this) );
m_isa->install_device(0x022e, 0x022f, 0, 0, read8_delegate(FUNC(stereo_fx_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) );
m_isa->install_device(subdevice("ym3812"), 0x0388, 0x0389, 0, 0, FUNC(ym3812_r), FUNC(ym3812_w) );
m_isa->install_device(subdevice("ym3812"), 0x0228, 0x0229, 0, 0, FUNC(ym3812_r), FUNC(ym3812_w) );
m_isa->install_device(0x0388, 0x0389, 0, 0, read8_delegate(FUNC(ym3812_device::read), ym3812), write8_delegate(FUNC(ym3812_device::write), ym3812));
m_isa->install_device(0x0228, 0x0229, 0, 0, read8_delegate(FUNC(ym3812_device::read), ym3812), write8_delegate(FUNC(ym3812_device::write), ym3812));
m_timer = timer_alloc();
m_timer->adjust(attotime::from_hz(2000000), 0, attotime::from_hz(2000000));
m_isa->set_dma_channel(1, this, FALSE);