modernised YM2413 [smf]

This commit is contained in:
smf- 2013-05-13 14:08:19 +00:00
parent 417b4892eb
commit 591f8de3da
41 changed files with 153 additions and 231 deletions

View File

@ -9,110 +9,70 @@
#include "2413intf.h"
/* for stream system */
struct ym2413_state
static void ym2413_update_request(void *param, int interval)
{
sound_stream * stream;
void * chip;
};
INLINE ym2413_state *get_safe_token(device_t *device)
{
assert(device != NULL);
assert(device->type() == YM2413);
return (ym2413_state *)downcast<ym2413_device *>(device)->token();
ym2413_device *ym2413 = (ym2413_device *) param;
ym2413->_ym2413_update_request();
}
#ifdef UNUSED_FUNCTION
void YM2413DAC_update(int chip,stream_sample_t **inputs, stream_sample_t **_buffer,int length)
void ym2413_device::_ym2413_update_request()
{
INT16 *buffer = _buffer[0];
static int out = 0;
if ( ym2413[chip].reg[0x0F] & 0x01 )
{
out = ((ym2413[chip].reg[0x10] & 0xF0) << 7);
}
while (length--) *(buffer++) = out;
}
#endif
static STREAM_UPDATE( ym2413_stream_update )
{
ym2413_state *info = (ym2413_state *)param;
ym2413_update_one(info->chip, outputs, samples);
m_stream->update();
}
static void _stream_update(void *param, int interval)
//-------------------------------------------------
// sound_stream_update - handle a stream update
//-------------------------------------------------
void ym2413_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
ym2413_state *info = (ym2413_state *)param;
info->stream->update();
ym2413_update_one(m_chip, outputs, samples);
}
static DEVICE_START( ym2413 )
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void ym2413_device::device_start()
{
ym2413_state *info = get_safe_token(device);
int rate = device->clock()/72;
int rate = clock()/72;
/* emulator create */
info->chip = ym2413_init(device, device->clock(), rate);
assert_always(info->chip != NULL, "Error creating YM2413 chip");
m_chip = ym2413_init(this, clock(), rate);
assert_always(m_chip != NULL, "Error creating YM2413 chip");
/* stream system initialize */
info->stream = device->machine().sound().stream_alloc(*device,0,2,rate,info,ym2413_stream_update);
ym2413_set_update_handler(info->chip, _stream_update, info);
#if 0
int i, tst;
char name[40];
num = intf->num;
tst = YM3812_sh_start (msound);
if (tst)
return 1;
for (i=0;i<num;i++)
{
ym2413_reset (i);
ym2413[i].DAC_stream = device->machine().sound().stream_alloc(*device, 0, 1, device->clock()/72, i, YM2413DAC_update);
if (ym2413[i].DAC_stream == -1)
return 1;
}
return 0;
#endif
m_stream = machine().sound().stream_alloc(*this,0,2,rate);
ym2413_set_update_handler(m_chip, ym2413_update_request, this);
}
static DEVICE_STOP( ym2413 )
//-------------------------------------------------
// device_stop - device-specific stop
//-------------------------------------------------
void ym2413_device::device_stop()
{
ym2413_state *info = get_safe_token(device);
ym2413_shutdown(info->chip);
ym2413_shutdown(m_chip);
}
static DEVICE_RESET( ym2413 )
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void ym2413_device::device_reset()
{
ym2413_state *info = get_safe_token(device);
ym2413_reset_chip(info->chip);
ym2413_reset_chip(m_chip);
}
WRITE8_DEVICE_HANDLER( ym2413_w )
WRITE8_MEMBER( ym2413_device::write )
{
ym2413_state *info = get_safe_token(device);
ym2413_write(info->chip, offset & 1, data);
ym2413_write(m_chip, offset & 1, data);
}
WRITE8_DEVICE_HANDLER( ym2413_register_port_w ) { ym2413_w(device, space, 0, data); }
WRITE8_DEVICE_HANDLER( ym2413_data_port_w ) { ym2413_w(device, space, 1, data); }
WRITE8_MEMBER( ym2413_device::register_port_w ) { write(space, 0, data); }
WRITE8_MEMBER( ym2413_device::data_port_w ) { write(space, 1, data); }
const device_type YM2413 = &device_creator<ym2413_device>;
@ -120,7 +80,6 @@ ym2413_device::ym2413_device(const machine_config &mconfig, const char *tag, dev
: device_t(mconfig, YM2413, "YM2413", tag, owner, clock),
device_sound_interface(mconfig, *this)
{
m_token = global_alloc_clear(ym2413_state);
}
//-------------------------------------------------
@ -132,40 +91,3 @@ ym2413_device::ym2413_device(const machine_config &mconfig, const char *tag, dev
void ym2413_device::device_config_complete()
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void ym2413_device::device_start()
{
DEVICE_START_NAME( ym2413 )(this);
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void ym2413_device::device_reset()
{
DEVICE_RESET_NAME( ym2413 )(this);
}
//-------------------------------------------------
// device_stop - device-specific stop
//-------------------------------------------------
void ym2413_device::device_stop()
{
DEVICE_STOP_NAME( ym2413 )(this);
}
//-------------------------------------------------
// sound_stream_update - handle a stream update
//-------------------------------------------------
void ym2413_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,22 +3,21 @@
#ifndef __2413INTF_H__
#define __2413INTF_H__
#include "devlegcy.h"
DECLARE_WRITE8_DEVICE_HANDLER( ym2413_w );
DECLARE_WRITE8_DEVICE_HANDLER( ym2413_register_port_w );
DECLARE_WRITE8_DEVICE_HANDLER( ym2413_data_port_w );
#include "emu.h"
class ym2413_device : public device_t,
public device_sound_interface
{
public:
ym2413_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
~ym2413_device() { global_free(m_token); }
// access to legacy token
void *token() const { assert(m_token != NULL); return m_token; }
DECLARE_WRITE8_MEMBER( write );
DECLARE_WRITE8_MEMBER( register_port_w );
DECLARE_WRITE8_MEMBER( data_port_w );
void _ym2413_update_request();
protected:
// device-level overrides
virtual void device_config_complete();
@ -28,9 +27,11 @@ protected:
// 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;
void * m_chip;
};
extern const device_type YM2413;

View File

@ -791,7 +791,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, alpha68k_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w)
AM_RANGE(0x08, 0x08) AM_DEVWRITE("dac", dac_device, write_signed8)
AM_RANGE(0x0a, 0x0b) AM_DEVWRITE_LEGACY("ym2", ym2413_w)
AM_RANGE(0x0a, 0x0b) AM_DEVWRITE("ym2", ym2413_device, write)
AM_RANGE(0x0c, 0x0d) AM_DEVWRITE("ym1", ym2203_device, write)
AM_RANGE(0x0e, 0x0e) AM_WRITE(sound_bank_w)
ADDRESS_MAP_END

View File

@ -1463,7 +1463,7 @@ static ADDRESS_MAP_START( sc2_basemap, AS_PROGRAM, 8, bfm_sc2_state )
AM_RANGE(0x2A00, 0x2AFF) AM_WRITE(nec_latch_w)
AM_RANGE(0x2B00, 0x2BFF) AM_WRITE(nec_reset_w)
AM_RANGE(0x2C00, 0x2C00) AM_WRITE(unlock_w) /* custom chip unlock */
AM_RANGE(0x2D00, 0x2D01) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x2D00, 0x2D01) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x2E00, 0x2E00) AM_WRITE(bankswitch_w) /* write bank (rom page select for 0x6000 - 0x7fff ) */
//AM_RANGE(0x2F00, 0x2F00) AM_WRITE(vfd2_data_w) /* vfd2 data (not usually connected!)*/

View File

@ -181,7 +181,7 @@ static ADDRESS_MAP_START( cabaret_portmap, AS_IO, 8, cabaret_state )
AM_RANGE( 0x00a2, 0x00a2 ) AM_READ_PORT("DSW2") /* DSW2 */
AM_RANGE( 0x00b0, 0x00b0 ) AM_READ_PORT("DSW3") /* DSW3 */
AM_RANGE( 0x00e0, 0x00e1 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x00e0, 0x00e1 ) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE( 0x2000, 0x27ff ) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram")
AM_RANGE( 0x2800, 0x2fff ) AM_RAM_WRITE(fg_color_w ) AM_SHARE("fg_color_ram")

View File

@ -120,7 +120,7 @@ static ADDRESS_MAP_START( cbasebal_portmap, AS_IO, 8, cbasebal_state )
AM_RANGE(0x02, 0x02) AM_WRITE_PORT("IO_02")
AM_RANGE(0x03, 0x03) AM_WRITE_PORT("IO_03")
AM_RANGE(0x05, 0x05) AM_DEVWRITE("oki", okim6295_device, write)
AM_RANGE(0x06, 0x07) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x06, 0x07) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x08, 0x09) AM_WRITE(cbasebal_scrollx_w)
AM_RANGE(0x0a, 0x0b) AM_WRITE(cbasebal_scrolly_w)
AM_RANGE(0x10, 0x10) AM_READ_PORT("P1")

View File

@ -129,7 +129,7 @@ static ADDRESS_MAP_START( d9final_io, AS_IO, 8, d9final_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSWA")
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSWB")
AM_RANGE(0x40, 0x40) AM_READ_PORT("DSWC")
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ymsnd",ym2413_w)
AM_RANGE(0x40, 0x41) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x60, 0x60) AM_READ_PORT("DSWD")
AM_RANGE(0x80, 0x80) AM_READ_PORT("IN0")
AM_RANGE(0xa0, 0xa0) AM_READ_PORT("IN1") AM_WRITE(d9final_bank_w)

View File

@ -1916,7 +1916,7 @@ static ADDRESS_MAP_START( quiz365_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0x300286, 0x300287) AM_READ(ddenlovr_gfxrom_r) // Video Chip
AM_RANGE(0x3002c0, 0x3002c1) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)// Sound
AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x300300, 0x300303) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x300340, 0x30035f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0x300380, 0x300383) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0x300384, 0x300385) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -1968,7 +1968,7 @@ static ADDRESS_MAP_START( ddenlovj_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w)
AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
@ -2035,7 +2035,7 @@ static ADDRESS_MAP_START( ddenlovrk_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -2073,7 +2073,7 @@ static ADDRESS_MAP_START( ddenlovr_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -2147,7 +2147,7 @@ static ADDRESS_MAP_START( nettoqc_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0x300070, 0x300071) AM_READ(unk16_r) // ? must be 78 on startup (not necessary in ddlover)
AM_RANGE(0x300080, 0x300083) AM_WRITE(ddenlovr_blitter_w)
AM_RANGE(0x300086, 0x300087) AM_READ(ddenlovr_gfxrom_r) // Video Chip
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x3000c0, 0x3000c3) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x300100, 0x30011f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0x300140, 0x300143) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0x300180, 0x300181) AM_READ_PORT("P1")
@ -2210,7 +2210,7 @@ static ADDRESS_MAP_START( ultrchmp_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -2266,7 +2266,7 @@ static ADDRESS_MAP_START( quizchq_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x22, 0x23) AM_READ(rongrong_input2_r)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
@ -2303,7 +2303,7 @@ static ADDRESS_MAP_START( rongrong_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
@ -2457,7 +2457,7 @@ static ADDRESS_MAP_START( mmpanic_sound_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x02, 0x02) AM_READNOP // read just before port 00
AM_RANGE(0x04, 0x04) AM_NOP // read only once at the start
AM_RANGE(0x06, 0x06) AM_WRITENOP // almost always 1, sometimes 0
AM_RANGE(0x08, 0x09) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x08, 0x09) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("aysnd", ay8910_device, address_w)
ADDRESS_MAP_END
@ -2740,7 +2740,7 @@ static ADDRESS_MAP_START( hanakanz_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x93, 0x93) AM_WRITE(hanakanz_coincounter_w)
AM_RANGE(0x94, 0x94) AM_WRITE(hanakanz_keyb_w)
AM_RANGE(0x96, 0x96) AM_READ(hanakanz_rand_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
ADDRESS_MAP_END
@ -2756,7 +2756,7 @@ static ADDRESS_MAP_START( hkagerou_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
AM_RANGE(0xb3, 0xb3) AM_WRITE(hanakanz_coincounter_w)
@ -2778,7 +2778,7 @@ static ADDRESS_MAP_START( kotbinyo_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("SYSTEM")
// AM_RANGE(0xb1, 0xb2) AM_READ(hanakanz_keyb_r)
AM_RANGE(0xb1, 0xb1) AM_READ_PORT("KEYB0")
@ -2802,7 +2802,7 @@ static ADDRESS_MAP_START( kotbinsp_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x80, 0x80) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x81, 0x81) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x83, 0x84) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
// AM_RANGE(0x91, 0x91) AM_READ(hanakanz_keyb_r)
AM_RANGE(0x91, 0x91) AM_READ_PORT("KEYB0")
@ -2841,7 +2841,7 @@ static ADDRESS_MAP_START( mjreach1_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x94, 0x94) AM_READ_PORT("SYSTEM")
AM_RANGE(0x95, 0x96) AM_READ(hanakanz_keyb_r)
AM_RANGE(0x97, 0x97) AM_WRITE(hanakanz_coincounter_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xe0, 0xef) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
ADDRESS_MAP_END
@ -2969,7 +2969,7 @@ static ADDRESS_MAP_START( mjchuuka_portmap, AS_IO, 8, ddenlovr_state ) // 16
AM_RANGE(0x63, 0x63) AM_MIRROR(0xff00) AM_READ_PORT("DSW4")
AM_RANGE(0x64, 0x64) AM_MIRROR(0xff00) AM_READ_PORT("DSW5") // DSW 1-4 high bits
AM_RANGE(0x80, 0x80) AM_MIRROR(0xff00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_MIRROR(0xff00) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xc0, 0xcf) AM_MIRROR(0xff00) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0xe0, 0xe1) AM_MIRROR(0xff00) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
ADDRESS_MAP_END
@ -3078,7 +3078,7 @@ static ADDRESS_MAP_START( mjmyster_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x22, 0x22) AM_READ(mjmyster_coins_r)
AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x42, 0x43) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x42, 0x43) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3243,7 +3243,7 @@ static ADDRESS_MAP_START( hginga_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w)
AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
AM_RANGE(0x22, 0x23) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x22, 0x23) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3366,7 +3366,7 @@ static ADDRESS_MAP_START( hgokou_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x61, 0x61) AM_WRITE(hgokou_input_w)
AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r)
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x82, 0x83) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x82, 0x83) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x84, 0x84) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x86, 0x86) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x88, 0x88) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3409,7 +3409,7 @@ static ADDRESS_MAP_START( hgokbang_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(mjmyster_rambank_w) // ? ack on RTC int
AM_RANGE(0x1e, 0x1e) AM_WRITE(hginga_rombank_w)
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x22, 0x23) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x22, 0x23) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x24, 0x24) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x26, 0x26) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x28, 0x28) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3500,7 +3500,7 @@ static ADDRESS_MAP_START( hparadis_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x1c, 0x1c) AM_READ(hparadis_dsw_r)
AM_RANGE(0x1e, 0x1e) AM_WRITE(hparadis_select_w)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x60, 0x61) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x60, 0x61) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x80, 0x83) AM_WRITE(ddenlovr_palette_base_w)
AM_RANGE(0x84, 0x87) AM_WRITE(ddenlovr_palette_mask_w)
AM_RANGE(0x88, 0x8b) AM_WRITE(ddenlovr_transparency_pen_w)
@ -3546,7 +3546,7 @@ static ADDRESS_MAP_START( mjmywrld_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x22, 0x22) AM_READ(mjmywrld_coins_r)
AM_RANGE(0x23, 0x23) AM_READ(mjmyster_keyb_r)
AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x42, 0x43) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x42, 0x43) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x44, 0x44) AM_DEVREAD("aysnd", ay8910_device, data_r)
AM_RANGE(0x46, 0x46) AM_DEVWRITE("aysnd", ay8910_device, data_w)
AM_RANGE(0x48, 0x48) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@ -3646,7 +3646,7 @@ static ADDRESS_MAP_START( akamaru_map, AS_PROGRAM, 16, ddenlovr_state )
AM_RANGE(0xe00308, 0xe00309) AM_WRITE(ddenlovr_coincounter_0_w) // Coin Counters
AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w) //
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00500, 0xe0051f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff)
AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff)
AM_RANGE(0xe00604, 0xe00605) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff)
@ -3737,7 +3737,7 @@ static ADDRESS_MAP_START( mjflove_portmap, AS_IO, 8, ddenlovr_state ) // 16 bit
AM_RANGE(0x0100, 0x0100) AM_READ_PORT("DSW1")
AM_RANGE(0x0181, 0x0181) AM_WRITENOP // ? int. enable
AM_RANGE(0x0184, 0x0184) AM_WRITE(mjflove_coincounter_w)
AM_RANGE(0x0200, 0x0201) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x0280, 0x028f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0x0300, 0x0301) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0x0380, 0x0380) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@ -3778,7 +3778,7 @@ static ADDRESS_MAP_START( jongtei_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w)
AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w)
AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
ADDRESS_MAP_END
@ -3841,7 +3841,7 @@ WRITE8_MEMBER(ddenlovr_state::sryudens_rambank_w)
static ADDRESS_MAP_START( sryudens_portmap, AS_IO, 8, ddenlovr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x04, 0x05) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
@ -3928,7 +3928,7 @@ static ADDRESS_MAP_START( janshinp_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x70, 0x70) AM_WRITE(quizchq_oki_bank_w)
AM_RANGE(0x80, 0x80) AM_RAM
AM_RANGE(0x90, 0x90) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x92, 0x93) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x92, 0x93) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x94, 0x95) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
ADDRESS_MAP_END
@ -4000,7 +4000,7 @@ static ADDRESS_MAP_START( seljan2_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
AM_RANGE(0x40, 0x41) AM_WRITE(mjflove_blitter_w)
AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
AM_RANGE(0x50, 0x51) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x50, 0x51) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x54, 0x54) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x58, 0x58) AM_DEVWRITE("aysnd", ay8910_device, address_w)
AM_RANGE(0x5c, 0x5c) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w) // dsw
@ -4154,7 +4154,7 @@ static ADDRESS_MAP_START( htengoku_io_map, AS_IO, 8, ddenlovr_state )
AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE("aysnd", ay8910_device, address_w) // AY8910
AM_RANGE( 0x42, 0x42 ) AM_DEVREAD("aysnd", ay8910_device, data_r) //
AM_RANGE( 0x44, 0x44 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) //
AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x46, 0x47 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x80, 0x8f ) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE( 0xa0, 0xa3 ) AM_WRITE(ddenlovr_palette_base_w) // ddenlovr mixer chip
AM_RANGE( 0xa4, 0xa7 ) AM_WRITE(ddenlovr_palette_mask_w)
@ -4353,7 +4353,7 @@ static ADDRESS_MAP_START( daimyojn_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x42, 0x44) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r) // ?
AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0xa2, 0xa2) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa8, 0xa8) AM_READ_PORT("SYSTEM")
AM_RANGE(0xaa, 0xaa) AM_READ(daimyojn_keyb1_r)

View File

@ -508,8 +508,8 @@ static ADDRESS_MAP_START( dunhuang_io_map, AS_IO, 8, dunhuang_state )
AM_RANGE( 0x001b, 0x001b ) AM_WRITE(dunhuang_block_dest_w )
AM_RANGE( 0x0081, 0x0081 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_register_port_w )
AM_RANGE( 0x0089, 0x0089 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_data_port_w )
AM_RANGE( 0x0081, 0x0081 ) AM_DEVWRITE("ymsnd", ym2413_device, register_port_w)
AM_RANGE( 0x0089, 0x0089 ) AM_DEVWRITE("ymsnd", ym2413_device, data_port_w)
// AM_RANGE( 0x0082, 0x0082 ) AM_WRITE(dunhuang_82_w )

View File

@ -553,7 +553,7 @@ static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW2") // DSW3
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
@ -638,7 +638,7 @@ static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x36, 0x36 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910, DSW1
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
@ -778,7 +778,7 @@ static ADDRESS_MAP_START( yarunara_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x11, 0x17 ) AM_WRITE(dynax_blitter_rev2_w) // Blitter
AM_RANGE( 0x20, 0x20 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x22, 0x22 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x24, 0x25 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x28, 0x28 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x2a, 0x2a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x48, 0x48 ) AM_WRITE(dynax_extra_scrollx_w) // screen scroll X
@ -817,7 +817,7 @@ static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x26, 0x26 ) AM_READ_PORT("DSW1") // DSW3
AM_RANGE( 0x30, 0x30 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x32, 0x32 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x34, 0x35 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen
@ -891,7 +891,7 @@ static ADDRESS_MAP_START( mjfriday_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x63, 0x63 ) AM_READ(hanamai_keyboard_0_r) // P1
AM_RANGE( 0x64, 0x64 ) AM_READ_PORT("DSW0") // DSW
AM_RANGE( 0x67, 0x67 ) AM_READ_PORT("DSW1") // DSW
AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
// AM_RANGE( 0x80, 0x80 ) AM_WRITENOP // IRQ ack?
ADDRESS_MAP_END
@ -900,7 +900,7 @@ static ADDRESS_MAP_START( nanajign_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x10, 0x10 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
@ -1058,7 +1058,7 @@ static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE(adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x02, 0x02 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x04, 0x05 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x08, 0x08 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) // AY8910
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x11, 0x12 ) AM_WRITE(mjelctrn_blitter_ack_w) //?
@ -1342,7 +1342,7 @@ static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x10000, 0x10000 ) AM_DEVREAD("aysnd", ay8910_device, data_r) // AY8910
AM_RANGE( 0x10008, 0x10008 ) AM_DEVWRITE("aysnd", ay8910_device, data_w) //
AM_RANGE( 0x10010, 0x10010 ) AM_DEVWRITE("aysnd", ay8910_device, address_w) //
AM_RANGE( 0x10020, 0x10021 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
AM_RANGE( 0x10020, 0x10021 ) AM_DEVWRITE("ymsnd", ym2413_device, write) //
AM_RANGE( 0x10040, 0x10040 ) AM_WRITE(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0x10044, 0x10044 ) AM_WRITE(tenkai_blit_dest_w) // Destination Layer
AM_RANGE( 0x10048, 0x10048 ) AM_WRITE(tenkai_blit_palette23_w) // Layers Palettes
@ -1485,8 +1485,8 @@ WRITE8_MEMBER(dynax_state::gekisha_8000_w)
case 0x8050: // CRT controller
case 0x8051: return;
case 0x8070: ym2413_register_port_w(m_ymsnd, space, 0, data); return;
case 0x8071: ym2413_data_port_w(m_ymsnd, space, 0, data); return;
case 0x8070: downcast<ym2413_device *>(m_ymsnd)->register_port_w(space, 0, data); return;
case 0x8071: downcast<ym2413_device *>(m_ymsnd)->data_port_w(space, 0, data); return;
case 0x8060: m_keyb = data; return;

View File

@ -302,7 +302,7 @@ static ADDRESS_MAP_START( fromance_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0x26, 0x26) AM_READWRITE(fromance_commanddata_r, fromance_busycheck_sub_w)
AM_RANGE(0x27, 0x27) AM_WRITE(fromance_adpcm_reset_w)
AM_RANGE(0x28, 0x28) AM_WRITE(fromance_adpcm_w)
AM_RANGE(0x2a, 0x2b) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x2a, 0x2b) AM_DEVWRITE("ymsnd", ym2413_device, write)
ADDRESS_MAP_END

View File

@ -341,7 +341,7 @@ static ADDRESS_MAP_START( gluck2_map, AS_PROGRAM, 8, gluck2_state )
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(gluck2_videoram_w) AM_SHARE("videoram") /* 6116 #1 (2K x 8) RAM (only 1st half used) */
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(gluck2_colorram_w) AM_SHARE("colorram") /* 6116 #2 (2K x 8) RAM (only 1st half used) */
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("SW1")
AM_RANGE(0x2d00, 0x2d01) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE(0x2d00, 0x2d01) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x3400, 0x3400) AM_READ_PORT("IN0")
AM_RANGE(0x3500, 0x3500) AM_READ_PORT("IN1")
AM_RANGE(0x3600, 0x3600) AM_READ_PORT("IN2")

View File

@ -489,7 +489,7 @@ static ADDRESS_MAP_START( magerror_map2, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_SHARE("sharedram1") /* shadow ($c00000 - $c03fff : vector) */
AM_RANGE(0x004000, 0x007fff) AM_READONLY AM_WRITENOP AM_SHARE("sharedram3") /* shadow ($fe4000 - $fe7fff : read only) */
AM_RANGE(0x400000, 0x400003) AM_NOP
AM_RANGE(0x800000, 0x800003) AM_READNOP AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x800000, 0x800003) AM_READNOP AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x800004, 0x800005) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE("sharedram1")
AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE("sharedram2")

View File

@ -494,7 +494,7 @@ static ADDRESS_MAP_START( jingbell_portmap, AS_IO, 8, igs009_state )
AM_RANGE( 0x6492, 0x6492 ) AM_WRITE(jingbell_leds_w )
AM_RANGE( 0x64a0, 0x64a0 ) AM_READ_PORT( "BUTTONS2" )
AM_RANGE( 0x64b0, 0x64b1 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x64b0, 0x64b1 ) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE( 0x64c0, 0x64c0 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)

View File

@ -2515,7 +2515,7 @@ static ADDRESS_MAP_START( lhb2, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x200000, 0x200001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff )
AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE( 0x208000, 0x208003 ) AM_WRITE(lhb2_igs003_w )
AM_RANGE( 0x208002, 0x208003 ) AM_READ(lhb2_igs003_r )
AM_RANGE( 0x20c000, 0x20cfff ) AM_RAM AM_SHARE("priority_ram")
@ -2556,7 +2556,7 @@ static ADDRESS_MAP_START( nkishusp, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x200000, 0x200001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff )
AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE( 0x208000, 0x208003 ) AM_WRITE(lhb2_igs003_w )
AM_RANGE( 0x208002, 0x208003 ) AM_READ(lhb2_igs003_r )
AM_RANGE( 0x20c000, 0x20cfff ) AM_RAM AM_SHARE("priority_ram")

View File

@ -1347,7 +1347,7 @@ static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state )
AM_RANGE( 0xa000, 0xa000 ) AM_READ_PORT( "BUTTONS" )
AM_RANGE( 0xb000, 0xb001 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0xb000, 0xb001 ) AM_DEVWRITE("ymsnd", ym2413_device, write)
ADDRESS_MAP_END
@ -1772,7 +1772,7 @@ static ADDRESS_MAP_START( tjsb_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x9000, 0x9000 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE( 0xb000, 0xb001 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0xb000, 0xb001 ) AM_DEVWRITE("ymsnd", ym2413_device, write)
ADDRESS_MAP_END

View File

@ -375,7 +375,7 @@ static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w)
AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r) AM_WRITE(igs_lamps_w ) /* Keyboard */
AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("BUTTONS2") /* Not connected */
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w)
AM_RANGE(0x6800, 0x6fff) AM_RAM_WRITE(bg_tile_w ) AM_SHARE("bg_tile_ram")
AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram")

View File

@ -137,7 +137,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, iqblock_state )
AM_RANGE(0x5080, 0x5083) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
AM_RANGE(0x5090, 0x5090) AM_READ_PORT("SW0")
AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("SW1")
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) // UM3567_data_port_0_w
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE("ymsnd", ym2413_device, write) // UM3567_data_port_0_w
AM_RANGE(0x50c0, 0x50c0) AM_WRITE(iqblock_irqack_w)
AM_RANGE(0x7000, 0x7fff) AM_READ(iqblock_bgvideoram_r)
AM_RANGE(0x8000, 0xffff) AM_READ(extrarom_r)

View File

@ -382,7 +382,7 @@ static ADDRESS_MAP_START( jackie_io_map, AS_IO, 8, jackie_state )
AM_RANGE(0x5090, 0x5090) AM_READ_PORT("BUTTONS1")
AM_RANGE(0x5091, 0x5091) AM_WRITE(jackie_lamps_w )
AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("BUTTONS2")
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w)
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w)
AM_RANGE(0x6000, 0x60ff) AM_RAM_WRITE(bg_scroll_w ) AM_SHARE("bg_scroll")
AM_RANGE(0x6800, 0x69ff) AM_RAM_WRITE(jackie_reel1_ram_w ) AM_SHARE("reel1_ram")

View File

@ -321,7 +321,7 @@ READ16_MEMBER(jpmsys5_state::jpm_upd7759_r)
static ADDRESS_MAP_START( 68000_awp_map, AS_PROGRAM, 16, jpmsys5_state )
JPM_SYS5_COMMON_MAP
AM_RANGE(0x0460a0, 0x0460a3) AM_DEVWRITE8_LEGACY("ym2413", ym2413_w, 0x00ff)
AM_RANGE(0x0460a0, 0x0460a3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0x04c100, 0x04c105) AM_READWRITE(jpm_upd7759_r, jpm_upd7759_w)
ADDRESS_MAP_END
@ -336,7 +336,7 @@ static ADDRESS_MAP_START( 68000_map, AS_PROGRAM, 16, jpmsys5_state )
JPM_SYS5_COMMON_MAP
AM_RANGE(0x01fffe, 0x01ffff) AM_WRITE(rombank_w) // extra on video system (rom board?) (although regular games do write here?)
AM_RANGE(0x020000, 0x03ffff) AM_ROMBANK("bank1") // extra on video system (rom board?)
AM_RANGE(0x0460a0, 0x0460a3) AM_DEVWRITE8_LEGACY("ym2413", ym2413_w, 0x00ff)
AM_RANGE(0x0460a0, 0x0460a3) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
AM_RANGE(0x0460e0, 0x0460e5) AM_WRITE(ramdac_w) // extra on video system (rom board?)
AM_RANGE(0x04c100, 0x04c105) AM_READWRITE(jpm_upd7759_r, jpm_upd7759_w)
AM_RANGE(0x800000, 0xcfffff) AM_READWRITE(sys5_tms34061_r, sys5_tms34061_w) // extra on video system (rom board?)

View File

@ -673,7 +673,7 @@ static ADDRESS_MAP_START( magicard_mem, AS_PROGRAM, 16, magicard_state )
AM_RANGE(0x001ffc40, 0x001ffc41) AM_MIRROR(0x7fe00000) AM_READ(test_r)
AM_RANGE(0x001ffd00, 0x001ffd05) AM_MIRROR(0x7fe00000) AM_WRITE(paletteram_io_w) //RAMDAC
/*not the right sound chip,unknown type,it should be an ADPCM with 8 channels.*/
AM_RANGE(0x001ffd40, 0x001ffd43) AM_MIRROR(0x7fe00000) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x001ffd40, 0x001ffd43) AM_MIRROR(0x7fe00000) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x001ffd80, 0x001ffd81) AM_MIRROR(0x7fe00000) AM_READ(test_r)
AM_RANGE(0x001ffd80, 0x001ffd81) AM_MIRROR(0x7fe00000) AM_WRITENOP //?
AM_RANGE(0x001fff80, 0x001fffbf) AM_MIRROR(0x7fe00000) AM_RAM //DRAM I/O, not accessed by this game, CD buffer?

View File

@ -821,7 +821,7 @@ static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8, maygay1b_state )
AM_RANGE(0x20C0, 0x20C7) AM_WRITE(m1_latch_w)
AM_RANGE(0x2400, 0x2401) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w ) // 2149F??
AM_RANGE(0x2400, 0x2401) AM_DEVWRITE("ymsnd", ym2413_device, write) // 2149F??
AM_RANGE(0x2404, 0x2405) AM_READ(latch_st_lo)
AM_RANGE(0x2406, 0x2407) AM_READ(latch_st_hi)

View File

@ -691,7 +691,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, maygayv1_state )
AM_RANGE(0x080000, 0x083fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("maincpu", 0x80000)
AM_RANGE(0x820000, 0x820003) AM_READWRITE(maygay_8279_r, maygay_8279_w)
AM_RANGE(0x800000, 0x800003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0xff00 )
AM_RANGE(0x800000, 0x800003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00)
AM_RANGE(0x860000, 0x86000d) AM_READWRITE(read_odd, write_odd)
AM_RANGE(0x86000e, 0x86000f) AM_WRITE(vsync_int_ctrl)
AM_RANGE(0x880000, 0x89ffff) AM_READWRITE(i82716_r, i82716_w)

View File

@ -365,7 +365,7 @@ WRITE8_MEMBER(metro_state::metro_portb_w)
{
if (!BIT(data, 2))
{
ym2413_w(m_ymsnd, space, BIT(data, 1), m_porta);
downcast<ym2413_device *>(m_ymsnd.target())->write(space, BIT(data, 1), m_porta);
}
m_portb = data;
return;
@ -1252,7 +1252,7 @@ static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? 5
AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(gakusai_eeprom_r, gakusai_eeprom_w) // EEPROM
AM_RANGE(0xd00000, 0xd00001) AM_WRITE(gakusai_oki_bank_hi_w)
@ -1293,7 +1293,7 @@ static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x900000, 0x900001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound bank
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_hi_w) //
AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored)
ADDRESS_MAP_END
@ -1360,7 +1360,7 @@ static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? 5
AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w) // EEPROM
AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(dokyusp_eeprom_r, dokyusp_eeprom_bit_w) // EEPROM
@ -1403,7 +1403,7 @@ static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x800000, 0x800001) AM_WRITE(gakusai_oki_bank_hi_w) // Samples Bank?
AM_RANGE(0x900000, 0x900001) AM_WRITENOP // ? 4
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_lo_w) // Samples Bank
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) //
AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored)
ADDRESS_MAP_END
@ -1691,7 +1691,7 @@ static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x478888, 0x478889) AM_WRITENOP // ??
AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers
AM_RANGE(0x800000, 0x800001) AM_WRITE(mouja_sound_rombank_w)
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xffff)
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored)
#if 0
@ -1749,7 +1749,7 @@ static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x470000, 0x47dfff) AM_RAM
AM_RANGE(0x500000, 0x500001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
AM_RANGE(0x580000, 0x580003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0xff00)
AM_RANGE(0x580000, 0x580003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00)
AM_RANGE(0x700000, 0x71ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0
AM_RANGE(0x720000, 0x73ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1

View File

@ -296,8 +296,8 @@ static ADDRESS_MAP_START( mitchell_io_map, AS_IO, 8, mitchell_state )
AM_RANGE(0x00, 0x02) AM_READ(input_r) /* The Mahjong games and Block Block need special input treatment */
AM_RANGE(0x01, 0x01) AM_WRITE(input_w)
AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2413_data_port_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("ymsnd", ym2413_register_port_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE("ymsnd", ym2413_device, data_port_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("ymsnd", ym2413_device, register_port_w)
AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r) AM_DEVWRITE("oki", okim6295_device, write)
AM_RANGE(0x06, 0x06) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */
@ -321,8 +321,8 @@ static ADDRESS_MAP_START( spangbl_io_map, AS_IO, 8, mitchell_state )
AM_RANGE(0x00, 0x02) AM_READ(input_r)
AM_RANGE(0x00, 0x00) AM_WRITE(pangbl_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2413_data_port_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("ymsnd", ym2413_register_port_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE("ymsnd", ym2413_device, data_port_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE("ymsnd", ym2413_device, register_port_w)
AM_RANGE(0x05, 0x05) AM_READ_PORT("SYS0")
AM_RANGE(0x06, 0x06) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w) /* Video RAM bank register */

View File

@ -2282,14 +2282,14 @@ READ8_MEMBER(mpu4_state::bwb_characteriser_r)
WRITE8_MEMBER(mpu4_state::mpu4_ym2413_w)
{
device_t *ym = machine().device("ym2413");
if (ym) ym2413_w(ym,space,offset,data);
ym2413_device *ym2413 = machine().device<ym2413_device>("ym2413");
if (ym2413) ym2413->write(space,offset,data);
}
READ8_MEMBER(mpu4_state::mpu4_ym2413_r)
{
// device_t *ym = machine().device("ym2413");
// return ym2413_read(ym,offset);
// ym2413_device *ym2413 = machine().device<ym2413_device>("ym2413");
// if (ym2413) return ym2413->read(space,offset);
return 0xff;
}

View File

@ -492,7 +492,7 @@ static ADDRESS_MAP_START( popobear_mem, AS_PROGRAM, 16, popobear_state )
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0")
AM_RANGE(0x520000, 0x520001) AM_READ_PORT("IN1")
AM_RANGE(0x540000, 0x540001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x550000, 0x550003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff )
AM_RANGE(0x550000, 0x550003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x600000, 0x600001) AM_WRITENOP
AM_RANGE(0x620000, 0x620001) AM_READ8(popo_620000_r,0xff00) AM_WRITENOP

View File

@ -222,7 +222,7 @@ WRITE8_MEMBER(ppmast93_state::ppmast_sound_w)
switch(offset&0xff)
{
case 0:
case 1: ym2413_w(machine().device("ymsnd"),space,offset,data); break;
case 1: machine().device<ym2413_device>("ymsnd")->write(space,offset,data); break;
case 2: m_dac->write_unsigned8(data);break;
default: logerror("%x %x - %x\n",offset,data,space.device().safe_pcbase());
}

View File

@ -134,7 +134,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rampart_state )
AM_RANGE(0x3e3f40, 0x3e3f7f) AM_MIRROR(0x010000) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
AM_RANGE(0x3e3f80, 0x3effff) AM_MIRROR(0x010000) AM_RAM
AM_RANGE(0x460000, 0x460001) AM_MIRROR(0x019ffe) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
AM_RANGE(0x480000, 0x480003) AM_MIRROR(0x019ffc) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0xff00)
AM_RANGE(0x480000, 0x480003) AM_MIRROR(0x019ffc) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00)
AM_RANGE(0x500000, 0x500fff) AM_MIRROR(0x019000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0x5a6000, 0x5a6001) AM_MIRROR(0x019ffe) AM_WRITE(eeprom_enable_w)
AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffe) AM_WRITE(latch_w)

View File

@ -169,7 +169,7 @@ ADDRESS_MAP_END
/*realbrk specific memory map*/
static ADDRESS_MAP_START( realbrk_mem, AS_PROGRAM, 16, realbrk_state )
AM_IMPORT_FROM(base_mem)
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_SHARE("dsw_select") // DSW select
@ -179,7 +179,7 @@ ADDRESS_MAP_END
/*pkgnsh specific memory map*/
static ADDRESS_MAP_START( pkgnsh_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0xff00 ) // YM2413
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00) // YM2413
AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnsh_input_r ) // P1 & P2 (Inputs)
AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_r,backup_ram_w) AM_SHARE("backup_ram") // RAM
AM_IMPORT_FROM(base_mem)
@ -187,7 +187,7 @@ ADDRESS_MAP_END
/*pkgnshdx specific memory map*/
static ADDRESS_MAP_START( pkgnshdx_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) //
AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnshdx_input_r ) // P1 & P2 (Inputs)
AM_RANGE(0xc00004, 0xc00005) AM_WRITEONLY AM_SHARE("dsw_select") // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_dx_r,backup_ram_w) AM_SHARE("backup_ram") // RAM
@ -198,7 +198,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dai2kaku_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x605000, 0x6053ff) AM_RAM AM_SHARE("vram_0ras") // rasterinfo (0)
AM_RANGE(0x605400, 0x6057ff) AM_RAM AM_SHARE("vram_1ras") // rasterinfo (1)
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_SHARE("dsw_select") // DSW select

View File

@ -136,7 +136,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, relief_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x140000, 0x140003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff)
AM_RANGE(0x140000, 0x140003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
AM_RANGE(0x140010, 0x140011) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x140020, 0x140021) AM_WRITE(audio_volume_w)
AM_RANGE(0x140030, 0x140031) AM_WRITE(audio_control_w)

View File

@ -248,7 +248,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pzlestar_io_map, AS_IO, 8, sangho_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x7c, 0x7d) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x7c, 0x7d) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE( 0x91, 0x91) AM_WRITE(pzlestar_bank_w )
AM_RANGE( 0x98, 0x9b) AM_DEVREADWRITE("v9958", v9958_device, read, write )
AM_RANGE( 0xa0, 0xa0) AM_READ_PORT("P1")
@ -261,7 +261,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sexyboom_io_map, AS_IO, 8, sangho_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x7c, 0x7d) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x7c, 0x7d) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE( 0xa0, 0xa0) AM_READ_PORT("P1")
AM_RANGE( 0xa1, 0xa1) AM_READ_PORT("P2")
AM_RANGE( 0xf0, 0xf3) AM_DEVREADWRITE("v9958", v9958_device, read, write )

View File

@ -1170,7 +1170,7 @@ WRITE16_MEMBER( segas16b_state::standard_io_w )
WRITE16_MEMBER( segas16b_state::atomicp_sound_w )
{
ym2413_w(m_ym2413, space, offset, data >> 8);
m_ym2413->write(space, offset, data >> 8);
}

View File

@ -242,7 +242,7 @@ static ADDRESS_MAP_START( spoker_portmap, AS_IO, 8, spoker_state )
AM_RANGE( 0x64a0, 0x64a0 ) AM_READ_PORT( "BUTTONS2" )
AM_RANGE( 0x64b0, 0x64b1 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x64b0, 0x64b1 ) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE( 0x64c0, 0x64c0 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)

View File

@ -904,7 +904,7 @@ static ADDRESS_MAP_START( victor21_map, AS_PROGRAM, 8, subsino_state )
// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE("oki", okim6295_device, write)
AM_RANGE( 0x0900e, 0x0900f ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x0900e, 0x0900f ) AM_DEVWRITE("ymsnd", ym2413_device, write)
AM_RANGE( 0x0900d, 0x0900d ) AM_WRITE(subsino_tiles_offset_w )
@ -998,7 +998,7 @@ static ADDRESS_MAP_START( crsbingo_map, AS_PROGRAM, 8, subsino_state )
AM_RANGE( 0x09010, 0x09010 ) AM_READWRITE(flash_r, flash_w )
// AM_RANGE( 0x09011, 0x09011 ) //"flash" status, bit 0
// AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" )
AM_RANGE( 0x0900c, 0x0900d ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w )
AM_RANGE( 0x0900c, 0x0900d ) AM_DEVWRITE("ymsnd", ym2413_device, write)
// AM_RANGE( 0x09018, 0x09018 ) AM_DEVWRITE("oki", okim6295_device, write)

View File

@ -31,6 +31,7 @@ public:
m_control_cpu(*this, "control"),
m_vdp(*this, "sms_vdp"),
m_eeprom(*this, "eeprom"),
m_ym(*this, "ym2413"),
m_main_scr(*this, "screen"),
m_is_gamegear(0),
m_is_region_japan(0),
@ -47,7 +48,7 @@ public:
optional_device<cpu_device> m_control_cpu;
required_device<sega315_5124_device> m_vdp;
optional_device<eeprom_device> m_eeprom;
device_t *m_ym;
optional_device<ym2413_device> m_ym;
required_device<screen_device> m_main_scr;
device_t *m_left_lcd;
device_t *m_right_lcd;

View File

@ -648,9 +648,9 @@ WRITE8_MEMBER( msx_state::msx_fmpac_w )
if (m_opll_active)
{
if (offset == 1)
ym2413_w (m_ym, space, 1, data);
m_ym->write(space, 1, data);
else
ym2413_w (m_ym, space, 0, data);
m_ym->write(space, 0, data);
}
}

View File

@ -1704,13 +1704,13 @@ MSX_SLOT_WRITE(fmpac)
case 0x7ff4:
if (state->m_cart.fmpac.opll_active)
{
ym2413_w (drvstate->m_ym, space, 0, val);
drvstate->m_ym->write(space, 0, val);
}
break;
case 0x7ff5:
if (state->m_cart.fmpac.opll_active)
{
ym2413_w (drvstate->m_ym, space, 1, val);
drvstate->m_ym->write(space, 1, val);
}
break;
case 0x7ff6:

View File

@ -29,7 +29,6 @@
#include "machine/nes_konami.h"
#include "cpu/m6502/m6502.h"
#include "sound/2413intf.h"
#ifdef NES_PCB_DEBUG
#define VERBOSE 1
@ -85,7 +84,8 @@ nes_konami_vrc6_device::nes_konami_vrc6_device(const machine_config &mconfig, co
}
nes_konami_vrc7_device::nes_konami_vrc7_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: nes_konami_vrc4_device(mconfig, NES_VRC7, "NES Cart Konami VRC-7 PCB", tag, owner, clock, "nes_vrc7", __FILE__)
: nes_konami_vrc4_device(mconfig, NES_VRC7, "NES Cart Konami VRC-7 PCB", tag, owner, clock, "nes_vrc7", __FILE__),
m_ym2413(*this, "ym")
{
}
@ -196,8 +196,6 @@ void nes_konami_vrc6_device::device_start()
void nes_konami_vrc7_device::device_start()
{
m_ym2413 = device().subdevice("ym");
common_start();
irq_timer = timer_alloc(TIMER_IRQ);
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
@ -691,11 +689,11 @@ WRITE8_MEMBER(nes_konami_vrc7_device::write_h)
case 0x1010:
case 0x1018:
ym2413_register_port_w(m_ym2413, space, 0, data);
m_ym2413->register_port_w(space, 0, data);
break;
case 0x1030:
case 0x1038:
ym2413_data_port_w(m_ym2413, space, 0, data);
m_ym2413->data_port_w(space, 0, data);
break;
case 0x2000:

View File

@ -3,6 +3,7 @@
#include "machine/nes_nxrom.h"
#include "audio/vrc6.h"
#include "sound/2413intf.h"
// ======================> nes_konami_vrc1_device
@ -136,7 +137,7 @@ public:
virtual void pcb_reset();
private:
device_t *m_ym2413;
required_device<ym2413_device> m_ym2413;
};

View File

@ -831,7 +831,7 @@ READ8_MEMBER(sms_state::sms_input_port_1_r)
WRITE8_MEMBER(sms_state::sms_ym2413_register_port_0_w)
{
if (m_has_fm)
ym2413_w(m_ym, space, 0, (data & 0x3f));
m_ym->write(space, 0, (data & 0x3f));
}
@ -840,7 +840,7 @@ WRITE8_MEMBER(sms_state::sms_ym2413_data_port_0_w)
if (m_has_fm)
{
logerror("data_port_0_w %x %x\n", offset, data);
ym2413_w(m_ym, space, 1, data);
m_ym->write(space, 1, data);
}
}
@ -1906,7 +1906,6 @@ MACHINE_START_MEMBER(sms_state,sms)
m_lphaser_1_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sms_state::lphaser_1_callback),this));
m_lphaser_2_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sms_state::lphaser_2_callback),this));
m_ym = machine().device("ym2413");
m_left_lcd = machine().device("left_lcd");
m_right_lcd = machine().device("right_lcd");
m_space = &m_main_cpu->space(AS_PROGRAM);