From 4c918f749f85dadaec0f77df94fec54a7b170bc8 Mon Sep 17 00:00:00 2001 From: Fabio Priuli Date: Thu, 13 Jun 2013 11:20:06 +0000 Subject: [PATCH] Modernized Konami 007232 sound device [Osso] also, removed the chip from bishi_state class, since it seems that the driver does not use this device at all... --- src/emu/sound/k007232.c | 396 ++++++++++++++++-------------------- src/emu/sound/k007232.h | 56 +++-- src/mame/drivers/ajax.c | 17 +- src/mame/drivers/aliens.c | 9 +- src/mame/drivers/bottom9.c | 17 +- src/mame/drivers/chqflag.c | 17 +- src/mame/drivers/crimfght.c | 9 +- src/mame/drivers/fastlane.c | 19 +- src/mame/drivers/flkatck.c | 9 +- src/mame/drivers/gbusters.c | 9 +- src/mame/drivers/gradius3.c | 9 +- src/mame/drivers/hcastle.c | 9 +- src/mame/drivers/mainevt.c | 13 +- src/mame/drivers/nemesis.c | 13 +- src/mame/drivers/spy.c | 17 +- src/mame/drivers/thunderx.c | 9 +- src/mame/drivers/tmnt.c | 9 +- src/mame/drivers/twin16.c | 7 +- src/mame/drivers/wecleman.c | 34 ++-- src/mame/includes/bishi.h | 3 - 20 files changed, 316 insertions(+), 365 deletions(-) diff --git a/src/emu/sound/k007232.c b/src/emu/sound/k007232.c index 18f5c1c9963..7a253b8e8d1 100644 --- a/src/emu/sound/k007232.c +++ b/src/emu/sound/k007232.c @@ -26,43 +26,9 @@ added external port callback, and functions to set the volume of the channels #include "emu.h" #include "k007232.h" - -#define KDAC_A_PCM_MAX (2) /* Channels per chip */ - - -struct KDAC_A_PCM -{ - UINT8 vol[KDAC_A_PCM_MAX][2]; /* volume for the left and right channel */ - UINT32 addr[KDAC_A_PCM_MAX]; - UINT32 start[KDAC_A_PCM_MAX]; - UINT32 step[KDAC_A_PCM_MAX]; - UINT32 bank[KDAC_A_PCM_MAX]; - int play[KDAC_A_PCM_MAX]; - - UINT8 wreg[0x10]; /* write data */ - UINT8 * pcmbuf[2]; /* Channel A & B pointers */ - - UINT32 clock; /* chip clock */ - UINT32 pcmlimit; - - sound_stream * stream; - const k007232_interface *intf; - UINT32 fncode[0x200]; - devcb_resolved_write8 portwritehandler; -}; - - #define BASE_SHIFT (12) -INLINE KDAC_A_PCM *get_safe_token(device_t *device) -{ - assert(device != NULL); - assert(device->type() == K007232); - return (KDAC_A_PCM *)downcast(device)->token(); -} - - #if 0 static const int kdac_note[] = { 261.63/8, 277.18/8, @@ -175,8 +141,81 @@ static const float kdaca_fn[][2] = { #endif /*************************************************************/ -static void KDAC_A_make_fncode( KDAC_A_PCM *info ){ - int i; + + +const device_type K007232 = &device_creator; + +k007232_device::k007232_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, K007232, "K007232", tag, owner, clock), + device_sound_interface(mconfig, *this) +{ + +} + +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void k007232_device::device_config_complete() +{ + // inherit a copy of the static data + const k007232_interface *intf = reinterpret_cast(static_config()); + if (intf != NULL) + *static_cast(this) = *intf; + + // or initialize to defaults if none provided + else + { + memset(&m_portwritehandler, 0, sizeof(m_portwritehandler)); + } +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void k007232_device::device_start() +{ + /* Set up the chips */ + m_pcmbuf[0] = *region(); + m_pcmbuf[1] = *region(); + m_pcmlimit = region()->bytes(); + + m_portwritehandler_func.resolve(m_portwritehandler,*this); + + for (int i = 0; i < KDAC_A_PCM_MAX; i++) + { + m_addr[i] = 0; + m_start[i] = 0; + m_step[i] = 0; + m_play[i] = 0; + m_bank[i] = 0; + } + m_vol[0][0] = 255; /* channel A output to output A */ + m_vol[0][1] = 0; + m_vol[1][0] = 0; + m_vol[1][1] = 255; /* channel B output to output B */ + + for (int i = 0; i < 0x10; i++) + m_wreg[i] = 0; + + m_stream = machine().sound().stream_alloc(*this, 0 , 2, clock()/128, this); + + KDAC_A_make_fncode(); + + save_item(NAME(m_vol)); + save_item(NAME(m_addr)); + save_item(NAME(m_start)); + save_item(NAME(m_step)); + save_item(NAME(m_bank)); + save_item(NAME(m_play)); + save_item(NAME(m_wreg)); +} + +void k007232_device::KDAC_A_make_fncode() +{ #if 0 int i, j, k; float fn; @@ -206,10 +245,12 @@ static void KDAC_A_make_fncode( KDAC_A_PCM *info ){ #endif #else - for( i = 0; i < 0x200; i++ ){ + int i; + for( i = 0; i < 0x200; i++ ) + { //fncode[i] = (0x200 * 55) / (0x200 - i); - info->fncode[i] = (32 << BASE_SHIFT) / (0x200 - i); -// info->fncode[i] = ((0x200 * 55.2 / 880) / (0x200 - i)); + m_fncode[i] = (32 << BASE_SHIFT) / (0x200 - i); +// m_fncode[i] = ((0x200 * 55.2 / 880) / (0x200 - i)); // = 512 * 55.2 / 220 / (512 - i) = 128 / (512 - i) // logerror("2 : fncode[%04x] = %.2f\n", i, fncode[i] ); } @@ -218,140 +259,21 @@ static void KDAC_A_make_fncode( KDAC_A_PCM *info ){ } -/************************************************/ -/* Konami PCM update */ -/************************************************/ - -static STREAM_UPDATE( KDAC_A_update ) -{ - KDAC_A_PCM *info = (KDAC_A_PCM *)param; - int i; - - memset(outputs[0],0,samples * sizeof(*outputs[0])); - memset(outputs[1],0,samples * sizeof(*outputs[1])); - - for( i = 0; i < KDAC_A_PCM_MAX; i++ ) - { - if (info->play[i]) - { - int volA,volB,j,out; - unsigned int addr, old_addr; - //int cen; - - /**** PCM setup ****/ - addr = info->start[i] + ((info->addr[i]>>BASE_SHIFT)&0x000fffff); - volA = info->vol[i][0] * 2; - volB = info->vol[i][1] * 2; -#if 0 - cen = (volA + volB) / 2; - volA = (volA + cen) < 0x1fe ? (volA + cen) : 0x1fe; - volB = (volB + cen) < 0x1fe ? (volB + cen) : 0x1fe; -#endif - - for( j = 0; j < samples; j++ ) - { - old_addr = addr; - addr = info->start[i] + ((info->addr[i]>>BASE_SHIFT)&0x000fffff); - while (old_addr <= addr) - { - if( (info->pcmbuf[i][old_addr] & 0x80) || old_addr >= info->pcmlimit ) - { - /* end of sample */ - - if( info->wreg[0x0d]&(1<start[i] = - ((((unsigned int)info->wreg[i*0x06 + 0x04]<<16)&0x00010000) | - (((unsigned int)info->wreg[i*0x06 + 0x03]<< 8)&0x0000ff00) | - (((unsigned int)info->wreg[i*0x06 + 0x02] )&0x000000ff) | - info->bank[i]); - addr = info->start[i]; - info->addr[i] = 0; - old_addr = addr; /* skip loop */ - } - else - { - /* stop sample */ - info->play[i] = 0; - } - break; - } - - old_addr++; - } - - if (info->play[i] == 0) - break; - - info->addr[i] += info->step[i]; - - out = (info->pcmbuf[i][addr] & 0x7f) - 0x40; - - outputs[0][j] += out * volA; - outputs[1][j] += out * volB; - } - } - } -} - - -/************************************************/ -/* Konami PCM start */ -/************************************************/ -static DEVICE_START( k007232 ) -{ - static const k007232_interface defintrf = { DEVCB_NULL }; - int i; - KDAC_A_PCM *info = get_safe_token(device); - - info->intf = (device->static_config() != NULL) ? (const k007232_interface *)device->static_config() : &defintrf; - - /* Set up the chips */ - - info->pcmbuf[0] = *device->region(); - info->pcmbuf[1] = *device->region(); - info->pcmlimit = device->region()->bytes(); - - info->clock = device->clock(); - - info->portwritehandler.resolve(info->intf->portwritehandler,*device); - - for( i = 0; i < KDAC_A_PCM_MAX; i++ ) - { - info->start[i] = 0; - info->step[i] = 0; - info->play[i] = 0; - info->bank[i] = 0; - } - info->vol[0][0] = 255; /* channel A output to output A */ - info->vol[0][1] = 0; - info->vol[1][0] = 0; - info->vol[1][1] = 255; /* channel B output to output B */ - - for( i = 0; i < 0x10; i++ ) info->wreg[i] = 0; - - info->stream = device->machine().sound().stream_alloc(*device,0,2,device->clock()/128,info,KDAC_A_update); - - KDAC_A_make_fncode(info); -} - /************************************************/ /* Konami PCM write register */ /************************************************/ -WRITE8_DEVICE_HANDLER( k007232_w ) +WRITE8_MEMBER( k007232_device::write ) { - KDAC_A_PCM *info = get_safe_token(device); int r = offset; int v = data; - info->stream->update(); + m_stream->update(); - info->wreg[r] = v; /* stock write data */ + m_wreg[r] = v; /* stock write data */ if (r == 0x0c){ /* external port, usually volume control */ - if (!info->portwritehandler.isnull()) info->portwritehandler(0,v); + if (!m_portwritehandler_func.isnull()) m_portwritehandler_func(0,v); return; } else if( r == 0x0d ){ @@ -372,13 +294,13 @@ WRITE8_DEVICE_HANDLER( k007232_w ) case 0x01: { /**** address step ****/ - int idx = (((((unsigned int)info->wreg[reg_port*0x06 + 0x01])<<8)&0x0100) | (((unsigned int)info->wreg[reg_port*0x06 + 0x00])&0x00ff)); + int idx = (((((unsigned int)m_wreg[reg_port*0x06 + 0x01])<<8)&0x0100) | (((unsigned int)m_wreg[reg_port*0x06 + 0x00])&0x00ff)); #if 0 if( !reg_port && r == 1 ) logerror("%04x\n" ,idx ); #endif - info->step[reg_port] = info->fncode[idx]; + m_step[reg_port] = m_fncode[idx]; break; } case 0x02: @@ -387,14 +309,14 @@ WRITE8_DEVICE_HANDLER( k007232_w ) break; case 0x05: /**** start address ****/ - info->start[reg_port] = - ((((unsigned int)info->wreg[reg_port*0x06 + 0x04]<<16)&0x00010000) | - (((unsigned int)info->wreg[reg_port*0x06 + 0x03]<< 8)&0x0000ff00) | - (((unsigned int)info->wreg[reg_port*0x06 + 0x02] )&0x000000ff) | - info->bank[reg_port]); - if (info->start[reg_port] < info->pcmlimit ){ - info->play[reg_port] = 1; - info->addr[reg_port] = 0; + m_start[reg_port] = + ((((unsigned int)m_wreg[reg_port*0x06 + 0x04]<<16)&0x00010000) | + (((unsigned int)m_wreg[reg_port*0x06 + 0x03]<< 8)&0x0000ff00) | + (((unsigned int)m_wreg[reg_port*0x06 + 0x02] )&0x000000ff) | + m_bank[reg_port]); + if (m_start[reg_port] < m_pcmlimit ){ + m_play[reg_port] = 1; + m_addr[reg_port] = 0; } break; } @@ -404,9 +326,8 @@ WRITE8_DEVICE_HANDLER( k007232_w ) /************************************************/ /* Konami PCM read register */ /************************************************/ -READ8_DEVICE_HANDLER( k007232_r ) +READ8_MEMBER( k007232_device::read ) { - KDAC_A_PCM *info = get_safe_token(device); int r = offset; int ch = 0; @@ -414,15 +335,15 @@ READ8_DEVICE_HANDLER( k007232_r ) ch = r/0x0006; r = ch * 0x0006; - info->start[ch] = - ((((unsigned int)info->wreg[r + 0x04]<<16)&0x00010000) | - (((unsigned int)info->wreg[r + 0x03]<< 8)&0x0000ff00) | - (((unsigned int)info->wreg[r + 0x02] )&0x000000ff) | - info->bank[ch]); + m_start[ch] = + ((((unsigned int)m_wreg[r + 0x04]<<16)&0x00010000) | + (((unsigned int)m_wreg[r + 0x03]<< 8)&0x0000ff00) | + (((unsigned int)m_wreg[r + 0x02] )&0x000000ff) | + m_bank[ch]); - if (info->start[ch] < info->pcmlimit ){ - info->play[ch] = 1; - info->addr[ch] = 0; + if (m_start[ch] < m_pcmlimit ){ + m_play[ch] = 1; + m_addr[ch] = 0; } } return 0; @@ -430,49 +351,20 @@ READ8_DEVICE_HANDLER( k007232_r ) /*****************************************************************************/ -void k007232_set_volume(device_t *device,int channel,int volumeA,int volumeB) +void k007232_device::set_volume(int channel,int volumeA,int volumeB) { - KDAC_A_PCM *info = get_safe_token(device); - info->vol[channel][0] = volumeA; - info->vol[channel][1] = volumeB; + m_vol[channel][0] = volumeA; + m_vol[channel][1] = volumeB; } -void k007232_set_bank( device_t *device, int chABank, int chBBank ) +void k007232_device::set_bank(int chABank, int chBBank ) { - KDAC_A_PCM *info = get_safe_token(device); - info->bank[0] = chABank<<17; - info->bank[1] = chBBank<<17; + m_bank[0] = chABank<<17; + m_bank[1] = chBBank<<17; } /*****************************************************************************/ -const device_type K007232 = &device_creator; - -k007232_device::k007232_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, K007232, "K007232", tag, owner, clock), - device_sound_interface(mconfig, *this) -{ - m_token = global_alloc_clear(KDAC_A_PCM); -} - -//------------------------------------------------- -// device_config_complete - perform any -// operations now that the configuration is -// complete -//------------------------------------------------- - -void k007232_device::device_config_complete() -{ -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void k007232_device::device_start() -{ - DEVICE_START_NAME( k007232 )(this); -} //------------------------------------------------- // sound_stream_update - handle a stream update @@ -480,6 +372,72 @@ void k007232_device::device_start() void k007232_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"); + int i; + + memset(outputs[0],0,samples * sizeof(*outputs[0])); + memset(outputs[1],0,samples * sizeof(*outputs[1])); + + for( i = 0; i < KDAC_A_PCM_MAX; i++ ) + { + if (m_play[i]) + { + int volA,volB,j,out; + unsigned int addr, old_addr; + //int cen; + + /**** PCM setup ****/ + addr = m_start[i] + ((m_addr[i]>>BASE_SHIFT)&0x000fffff); + volA = m_vol[i][0] * 2; + volB = m_vol[i][1] * 2; +#if 0 + cen = (volA + volB) / 2; + volA = (volA + cen) < 0x1fe ? (volA + cen) : 0x1fe; + volB = (volB + cen) < 0x1fe ? (volB + cen) : 0x1fe; +#endif + + for( j = 0; j < samples; j++ ) + { + old_addr = addr; + addr = m_start[i] + ((m_addr[i]>>BASE_SHIFT)&0x000fffff); + while (old_addr <= addr) + { + if( (m_pcmbuf[i][old_addr] & 0x80) || old_addr >= m_pcmlimit ) + { + /* end of sample */ + + if( m_wreg[0x0d]&(1<set_bank(bank_A, bank_B); /* banks # for the 007232 (chip 2) */ bank_A = ((data >> 4) & 0x03); bank_B = ((data >> 2) & 0x03); - k007232_set_bank(m_k007232_2, bank_A, bank_B); + m_k007232_2->set_bank(bank_A, bank_B); } WRITE8_MEMBER(ajax_state::volume_callback0) { - k007232_set_volume(m_k007232_1, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_1, 1, 0, (data & 0x0f) * 0x11); + m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11); } WRITE8_MEMBER(ajax_state::k007232_extvol_w) { /* channel A volume (mono) */ - k007232_set_volume(m_k007232_2, 0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2); + m_k007232_2->set_volume(0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2); } WRITE8_MEMBER(ajax_state::volume_callback1) { /* channel B volume/pan */ - k007232_set_volume(m_k007232_2, 1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2); + m_k007232_2->set_volume(1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2); } static const k007232_interface k007232_interface_1 = diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index 0effdd9396e..e39b0e028a4 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -10,7 +10,6 @@ Preliminary driver by: #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */ -#include "sound/k007232.h" #include "sound/2151intf.h" #include "video/konicdev.h" #include "includes/konamipt.h" @@ -77,7 +76,7 @@ WRITE8_MEMBER(aliens_state::aliens_snd_bankswitch_w) int bank_A = BIT(data, 1); int bank_B = BIT(data, 0); - k007232_set_bank(m_k007232, bank_A, bank_B); + m_k007232->set_bank(bank_A, bank_B); } @@ -126,7 +125,7 @@ static ADDRESS_MAP_START( aliens_sound_map, AS_PROGRAM, 8, aliens_state ) AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */ - AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) ADDRESS_MAP_END @@ -187,8 +186,8 @@ INPUT_PORTS_END WRITE8_MEMBER(aliens_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data & 0x0f) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data >> 4) * 0x11); + m_k007232->set_volume(0, (data & 0x0f) * 0x11, 0); + m_k007232->set_volume(1, 0, (data >> 4) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c index 5b2aa025575..356d9d9ca40 100644 --- a/src/mame/drivers/bottom9.c +++ b/src/mame/drivers/bottom9.c @@ -16,7 +16,6 @@ #include "cpu/z80/z80.h" #include "cpu/m6809/m6809.h" #include "video/konicdev.h" -#include "sound/k007232.h" #include "includes/konamipt.h" #include "includes/bottom9.h" @@ -146,11 +145,11 @@ WRITE8_MEMBER(bottom9_state::sound_bank_w) bank_A = ((data >> 0) & 0x03); bank_B = ((data >> 2) & 0x03); - k007232_set_bank(m_k007232_1, bank_A, bank_B); + m_k007232_1->set_bank(bank_A, bank_B); bank_A = ((data >> 4) & 0x03); bank_B = ((data >> 6) & 0x03); - k007232_set_bank(m_k007232_2, bank_A, bank_B); + m_k007232_2->set_bank(bank_A, bank_B); } @@ -178,8 +177,8 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, bottom9_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM 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(0xa000, 0xa00d) AM_DEVREADWRITE("k007232_1", k007232_device, read, write) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232_2", k007232_device, read, write) AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) AM_RANGE(0xf000, 0xf000) AM_WRITE(nmi_enable_w) ADDRESS_MAP_END @@ -263,14 +262,14 @@ INPUT_PORTS_END WRITE8_MEMBER(bottom9_state::volume_callback0) { - k007232_set_volume(m_k007232_1, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_1, 1, 0, (data & 0x0f) * 0x11); + m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11); } WRITE8_MEMBER(bottom9_state::volume_callback1) { - k007232_set_volume(m_k007232_2, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_2, 1, 0, (data & 0x0f) * 0x11); + m_k007232_2->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_2->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_interface_1 = diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c index 309cd004d69..7eeeddabc67 100644 --- a/src/mame/drivers/chqflag.c +++ b/src/mame/drivers/chqflag.c @@ -17,7 +17,6 @@ #include "cpu/m6809/konami.h" #include "video/konicdev.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "includes/chqflag.h" #include "includes/konamipt.h" @@ -169,21 +168,21 @@ WRITE8_MEMBER(chqflag_state::k007232_bankswitch_w) /* banks # for the 007232 (chip 1) */ bank_A = ((data >> 4) & 0x03); bank_B = ((data >> 6) & 0x03); - k007232_set_bank(m_k007232_1, bank_A, bank_B); + m_k007232_1->set_bank(bank_A, bank_B); /* banks # for the 007232 (chip 2) */ bank_A = ((data >> 0) & 0x03); bank_B = ((data >> 2) & 0x03); - k007232_set_bank(m_k007232_2, bank_A, bank_B); + m_k007232_2->set_bank(bank_A, bank_B); } static ADDRESS_MAP_START( chqflag_sound_map, AS_PROGRAM, 8, chqflag_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */ AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ AM_RANGE(0x9000, 0x9000) AM_WRITE(k007232_bankswitch_w) /* 007232 bankswitch */ - AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w) /* 007232 (chip 1) */ + AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE("k007232_1", k007232_device, read, write) /* 007232 (chip 1) */ AM_RANGE(0xa01c, 0xa01c) AM_WRITE(k007232_extvolume_w) /* extra volume, goes to the 007232 w/ A11 */ - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w) /* 007232 (chip 2) */ + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232_2", k007232_device, read, write) /* 007232 (chip 2) */ AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) /* YM2151 */ AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */ AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch2_byte_r) /* engine sound volume */ @@ -257,18 +256,18 @@ INPUT_PORTS_END WRITE8_MEMBER(chqflag_state::volume_callback0) { - k007232_set_volume(m_k007232_1, 0, (data & 0x0f) * 0x11, 0); - k007232_set_volume(m_k007232_1, 1, 0, (data >> 4) * 0x11); + m_k007232_1->set_volume(0, (data & 0x0f) * 0x11, 0); + m_k007232_1->set_volume(1, 0, (data >> 4) * 0x11); } WRITE8_MEMBER(chqflag_state::k007232_extvolume_w) { - k007232_set_volume(m_k007232_2, 1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2); + m_k007232_2->set_volume(1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2); } WRITE8_MEMBER(chqflag_state::volume_callback1) { - k007232_set_volume(m_k007232_2, 0, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2); + m_k007232_2->set_volume(0, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2); } static const k007232_interface k007232_interface_1 = diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index c4dff718db3..8173a822811 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -16,7 +16,6 @@ #include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */ #include "video/konicdev.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "includes/konamipt.h" #include "includes/crimfght.h" @@ -49,7 +48,7 @@ WRITE8_MEMBER(crimfght_state::crimfght_snd_bankswitch_w) int bank_A = BIT(data, 1); int bank_B = BIT(data, 0); - k007232_set_bank(m_k007232, bank_A, bank_B ); + m_k007232->set_bank(bank_A, bank_B ); } READ8_MEMBER(crimfght_state::k052109_051960_r) @@ -102,7 +101,7 @@ static ADDRESS_MAP_START( crimfght_sound_map, AS_PROGRAM, 8, crimfght_state ) AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) /* YM2151 */ AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */ - AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */ + AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) /* 007232 registers */ ADDRESS_MAP_END /*************************************************************************** @@ -222,8 +221,8 @@ INPUT_PORTS_END WRITE8_MEMBER(crimfght_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data & 0x0f) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data >> 4) * 0x11); + m_k007232->set_volume(0, (data & 0x0f) * 0x11, 0); + m_k007232->set_volume(1, 0, (data >> 4) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c index 6643a28ef4c..857aba99a63 100644 --- a/src/mame/drivers/fastlane.c +++ b/src/mame/drivers/fastlane.c @@ -11,7 +11,6 @@ #include "emu.h" #include "cpu/m6809/hd6309.h" -#include "sound/k007232.h" #include "video/konicdev.h" #include "includes/konamipt.h" #include "includes/fastlane.h" @@ -46,7 +45,7 @@ WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w) membank("bank1")->set_entry((data & 0x0c) >> 2); /* bit 4: bank # for the 007232 (chip 2) */ - k007232_set_bank(m_k007232_2, 0 + ((data & 0x10) >> 4), 2 + ((data & 0x10) >> 4)); + m_k007232_2->set_bank(0 + ((data & 0x10) >> 4), 2 + ((data & 0x10) >> 4)); /* other bits seems to be unused */ } @@ -56,22 +55,22 @@ WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w) READ8_MEMBER(fastlane_state::fastlane_k1_k007232_r) { - return k007232_r(m_k007232_1, space, offset ^ 1); + return m_k007232_1->read(space, offset ^ 1); } WRITE8_MEMBER(fastlane_state::fastlane_k1_k007232_w) { - k007232_w(m_k007232_1, space, offset ^ 1, data); + m_k007232_1->write(space, offset ^ 1, data); } READ8_MEMBER(fastlane_state::fastlane_k2_k007232_r) { - return k007232_r(m_k007232_2, space, offset ^ 1); + return m_k007232_2->read(space, offset ^ 1); } WRITE8_MEMBER(fastlane_state::fastlane_k2_k007232_w) { - k007232_w(m_k007232_2, space, offset ^ 1, data); + m_k007232_2->write(space, offset ^ 1, data); } static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state ) AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_SHARE("k007121_regs") /* 007121 registers */ @@ -177,14 +176,14 @@ GFXDECODE_END WRITE8_MEMBER(fastlane_state::volume_callback0) { - k007232_set_volume(m_k007232_1, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_1, 1, 0, (data & 0x0f) * 0x11); + m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11); } WRITE8_MEMBER(fastlane_state::volume_callback1) { - k007232_set_volume(m_k007232_2, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_2, 1, 0, (data & 0x0f) * 0x11); + m_k007232_2->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_2->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_interface_1 = diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c index c3b1edd7d5f..06af0bc25f9 100644 --- a/src/mame/drivers/flkatck.c +++ b/src/mame/drivers/flkatck.c @@ -14,7 +14,6 @@ #include "cpu/z80/z80.h" #include "cpu/m6809/hd6309.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "video/konicdev.h" #include "includes/konamipt.h" #include "includes/flkatck.h" @@ -108,7 +107,7 @@ static ADDRESS_MAP_START( flkatck_sound_map, AS_PROGRAM, 8, flkatck_state ) AM_RANGE(0x9004, 0x9004) AM_READNOP /* ??? */ AM_RANGE(0x9006, 0x9006) AM_WRITENOP /* ??? */ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */ - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */ + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) /* 007232 registers */ AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) /* YM2151 */ ADDRESS_MAP_END @@ -179,8 +178,8 @@ GFXDECODE_END WRITE8_MEMBER(flkatck_state::volume_callback0) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = @@ -202,7 +201,7 @@ void flkatck_state::machine_start() void flkatck_state::machine_reset() { - k007232_set_bank(m_k007232, 0, 1); + m_k007232->set_bank(0, 1); m_irq_enabled = 0; m_multiply_reg[0] = 0; diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c index d39239cabd5..28e9f0f0040 100644 --- a/src/mame/drivers/gbusters.c +++ b/src/mame/drivers/gbusters.c @@ -12,7 +12,6 @@ #include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */ #include "video/konicdev.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "includes/konamipt.h" #include "includes/gbusters.h" @@ -102,7 +101,7 @@ WRITE8_MEMBER(gbusters_state::gbusters_snd_bankswitch_w) { int bank_B = BIT(data, 2); /* ?? */ int bank_A = BIT(data, 0); /* ?? */ - k007232_set_bank(m_k007232, bank_A, bank_B ); + m_k007232->set_bank(bank_A, bank_B ); #if 0 { @@ -164,7 +163,7 @@ static ADDRESS_MAP_START( gbusters_sound_map, AS_PROGRAM, 8, gbusters_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 878h01.rom */ AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */ - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */ + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) /* 007232 registers */ AM_RANGE(0xc001, 0xc001) AM_DEVREAD("ymsnd", ym2151_device, status_r) /* YM 2151 */ AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) /* YM 2151 */ AM_RANGE(0xf000, 0xf000) AM_WRITE(gbusters_snd_bankswitch_w) /* 007232 bankswitch? */ @@ -232,8 +231,8 @@ INPUT_PORTS_END WRITE8_MEMBER(gbusters_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c index 8104edbc376..ee5bfdb8d80 100644 --- a/src/mame/drivers/gradius3.c +++ b/src/mame/drivers/gradius3.c @@ -23,7 +23,6 @@ #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "includes/konamipt.h" #include "includes/gradius3.h" @@ -142,7 +141,7 @@ WRITE8_MEMBER(gradius3_state::sound_bank_w) /* banks # for the 007232 (chip 1) */ bank_A = ((data >> 0) & 0x03); bank_B = ((data >> 2) & 0x03); - k007232_set_bank(m_k007232, bank_A, bank_B); + m_k007232->set_bank(bank_A, bank_B); } @@ -185,7 +184,7 @@ static ADDRESS_MAP_START( gradius3_s_map, AS_PROGRAM, 8, gradius3_state ) AM_RANGE(0x0000, 0xefff) AM_ROM AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */ AM_RANGE(0xf010, 0xf010) AM_READ(soundlatch_byte_r) - AM_RANGE(0xf020, 0xf02d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xf020, 0xf02d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xf030, 0xf031) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END @@ -251,8 +250,8 @@ INPUT_PORTS_END WRITE8_MEMBER(gradius3_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c index f4d47592b6c..245a5b4fda0 100644 --- a/src/mame/drivers/hcastle.c +++ b/src/mame/drivers/hcastle.c @@ -10,7 +10,6 @@ #include "cpu/m6809/konami.h" #include "cpu/z80/z80.h" #include "sound/3812intf.h" -#include "sound/k007232.h" #include "sound/k051649.h" #include "video/konicdev.h" #include "includes/konamipt.h" @@ -67,7 +66,7 @@ WRITE8_MEMBER(hcastle_state::sound_bank_w) { int bank_A=(data&0x3); int bank_B=((data>>2)&0x3); - k007232_set_bank(m_k007232, bank_A, bank_B ); + m_k007232->set_bank(bank_A, bank_B ); } static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, hcastle_state ) @@ -79,7 +78,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, hcastle_state ) 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("ymsnd", ym3812_device, read, write) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc000) AM_WRITE(sound_bank_w) /* 7232 bankswitch */ AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) ADDRESS_MAP_END @@ -162,8 +161,8 @@ WRITE_LINE_MEMBER(hcastle_state::irqhandler) WRITE8_MEMBER(hcastle_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c index 16b6dba9613..cf24d72de79 100644 --- a/src/mame/drivers/mainevt.c +++ b/src/mame/drivers/mainevt.c @@ -26,7 +26,6 @@ Notes: #include "video/konicdev.h" #include "cpu/m6809/m6809.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "sound/upd7759.h" #include "includes/konamipt.h" #include "includes/mainevt.h" @@ -107,7 +106,7 @@ WRITE8_MEMBER(mainevt_state::mainevt_sh_bankswitch_w) /* bits 0-3 select the 007232 banks */ bank_A = (data & 0x3); bank_B = ((data >> 2) & 0x3); - k007232_set_bank(m_k007232, bank_A, bank_B); + m_k007232->set_bank(bank_A, bank_B); /* bits 4-5 select the UPD7759 bank */ upd7759_set_bank_base(m_upd7759, ((data >> 4) & 0x03) * 0x20000); @@ -122,7 +121,7 @@ WRITE8_MEMBER(mainevt_state::dv_sh_bankswitch_w) /* bits 0-3 select the 007232 banks */ bank_A = (data & 0x3); bank_B = ((data >> 2) & 0x3); - k007232_set_bank(m_k007232, bank_A, bank_B); + m_k007232->set_bank(bank_A, bank_B); } READ8_MEMBER(mainevt_state::k052109_051960_r) @@ -205,7 +204,7 @@ static ADDRESS_MAP_START( mainevt_sound_map, AS_PROGRAM, 8, mainevt_state ) AM_RANGE(0x8000, 0x83ff) AM_RAM AM_RANGE(0x9000, 0x9000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w) AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r,k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xd000, 0xd000) AM_READ(mainevt_sh_busy_r) AM_RANGE(0xe000, 0xe000) AM_WRITE(mainevt_sh_irqcontrol_w) AM_RANGE(0xf000, 0xf000) AM_WRITE(mainevt_sh_bankswitch_w) @@ -215,7 +214,7 @@ static ADDRESS_MAP_START( devstors_sound_map, AS_PROGRAM, 8, mainevt_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x83ff) AM_RAM AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r,k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device,read,write) AM_RANGE(0xe000, 0xe000) AM_WRITE(devstor_sh_irqcontrol_w) AM_RANGE(0xf000, 0xf000) AM_WRITE(dv_sh_bankswitch_w) @@ -375,8 +374,8 @@ INPUT_PORTS_END WRITE8_MEMBER(mainevt_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index 24b2c49909f..2294ae4d3db 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -54,7 +54,6 @@ So this is the correct behavior of real hardware, not an emulation bug. #include "sound/3812intf.h" #include "sound/vlm5030.h" #include "sound/k005289.h" -#include "sound/k007232.h" #include "sound/k051649.h" #include "includes/nemesis.h" #include "includes/konamipt.h" @@ -254,7 +253,7 @@ WRITE8_MEMBER(nemesis_state::city_sound_bank_w) { int bank_A = (data & 0x03); int bank_B = ((data >> 2) & 0x03); - k007232_set_bank(m_k007232, bank_A, bank_B); + m_k007232->set_bank(bank_A, bank_B); } @@ -541,7 +540,7 @@ static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8, nemesis_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w) AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */ @@ -552,7 +551,7 @@ static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8, nemesis_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */ ADDRESS_MAP_END @@ -566,7 +565,7 @@ static ADDRESS_MAP_START( city_sound_map, AS_PROGRAM, 8, nemesis_state ) 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("ymsnd", ym3812_device, read, write) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc000) AM_WRITE(city_sound_bank_w) /* 7232 bankswitch */ AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) ADDRESS_MAP_END @@ -1492,8 +1491,8 @@ WRITE_LINE_MEMBER(nemesis_state::sound_irq) WRITE8_MEMBER(nemesis_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c index 9a46cf2542e..56ecfd10b99 100644 --- a/src/mame/drivers/spy.c +++ b/src/mame/drivers/spy.c @@ -22,7 +22,6 @@ #include "cpu/m6809/m6809.h" #include "video/konicdev.h" #include "sound/3812intf.h" -#include "sound/k007232.h" #include "includes/konamipt.h" #include "includes/spy.h" @@ -336,11 +335,11 @@ WRITE8_MEMBER(spy_state::sound_bank_w) bank_A = (data >> 0) & 0x03; bank_B = (data >> 2) & 0x03; - k007232_set_bank(m_k007232_1, bank_A, bank_B); + m_k007232_1->set_bank(bank_A, bank_B); bank_A = (data >> 4) & 0x03; bank_B = (data >> 6) & 0x03; - k007232_set_bank(m_k007232_2, bank_A, bank_B); + m_k007232_2->set_bank(bank_A, bank_B); } @@ -391,8 +390,8 @@ static ADDRESS_MAP_START( spy_sound_map, AS_PROGRAM, 8, spy_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM 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(0xa000, 0xa00d) AM_DEVREADWRITE("k007232_1", k007232_device, read, write) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232_2", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) ADDRESS_MAP_END @@ -449,8 +448,8 @@ INPUT_PORTS_END WRITE8_MEMBER(spy_state::volume_callback0) { - k007232_set_volume(m_k007232_1, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_1, 1, 0, (data & 0x0f) * 0x11); + m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface spy_k007232_interface_1 = @@ -460,8 +459,8 @@ static const k007232_interface spy_k007232_interface_1 = WRITE8_MEMBER(spy_state::volume_callback1) { - k007232_set_volume(m_k007232_2, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232_2, 1, 0, (data & 0x0f) * 0x11); + m_k007232_2->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232_2->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface spy_k007232_interface_2 = diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c index bd78e77b417..cf313e53edf 100644 --- a/src/mame/drivers/thunderx.c +++ b/src/mame/drivers/thunderx.c @@ -17,7 +17,6 @@ #include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */ #include "video/konicdev.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "includes/konamipt.h" #include "includes/thunderx.h" @@ -364,7 +363,7 @@ WRITE8_MEMBER(thunderx_state::scontra_snd_bankswitch_w) int bank_A = (data & 0x03); int bank_B = ((data >> 2) & 0x03); - k007232_set_bank(m_k007232, bank_A, bank_B); + m_k007232->set_bank(bank_A, bank_B); } READ8_MEMBER(thunderx_state::k052109_051960_r) @@ -438,7 +437,7 @@ static ADDRESS_MAP_START( scontra_sound_map, AS_PROGRAM, 8, thunderx_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */ AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */ - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */ + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) /* 007232 registers */ AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) /* YM2151 */ AM_RANGE(0xf000, 0xf000) AM_WRITE(scontra_snd_bankswitch_w) /* 007232 bank select */ ADDRESS_MAP_END @@ -574,8 +573,8 @@ INPUT_PORTS_END WRITE8_MEMBER(thunderx_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 7c4926a4c13..70848033244 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -74,7 +74,6 @@ Updates: #include "sound/samples.h" #include "sound/k053260.h" #include "sound/k054539.h" -#include "sound/k007232.h" #include "sound/upd7759.h" #include "machine/nvram.h" #include "includes/tmnt.h" @@ -1081,7 +1080,7 @@ static ADDRESS_MAP_START( mia_audio_map, AS_PROGRAM, 8, tmnt_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) ADDRESS_MAP_END @@ -1091,7 +1090,7 @@ static ADDRESS_MAP_START( tmnt_audio_map, AS_PROGRAM, 8, tmnt_state ) AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x9000, 0x9000) AM_READWRITE(tmnt_sres_r, tmnt_sres_w) /* title music & UPD7759C reset */ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w) AM_RANGE(0xe000, 0xe000) AM_WRITE(tmnt_upd_start_w) @@ -2015,8 +2014,8 @@ INPUT_PORTS_END WRITE8_MEMBER(tmnt_state::volume_callback) { - k007232_set_volume(m_k007232, 0, (data >> 4) * 0x11, 0); - k007232_set_volume(m_k007232, 1, 0, (data & 0x0f) * 0x11); + m_k007232->set_volume(0, (data >> 4) * 0x11, 0); + m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c index 8d3af3f0b2e..99b86efd4a8 100644 --- a/src/mame/drivers/twin16.c +++ b/src/mame/drivers/twin16.c @@ -47,7 +47,6 @@ Known Issues: #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "sound/upd7759.h" #include "machine/nvram.h" #include "includes/twin16.h" @@ -224,7 +223,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, twin16_state ) AM_RANGE(0x8000, 0x8fff) AM_RAM AM_RANGE(0x9000, 0x9000) AM_WRITE(twin16_upd_reset_w) AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xd000, 0xd000) AM_DEVWRITE_LEGACY("upd", upd7759_port_w) AM_RANGE(0xe000, 0xe000) AM_WRITE(twin16_upd_start_w) @@ -670,8 +669,8 @@ GFXDECODE_END WRITE8_MEMBER(twin16_state::volume_callback) { - k007232_set_volume(m_k007232,0,(data >> 4) * 0x11,0); - k007232_set_volume(m_k007232,1,0,(data & 0x0f) * 0x11); + m_k007232->set_volume(0,(data >> 4) * 0x11,0); + m_k007232->set_volume(1,0,(data & 0x0f) * 0x11); } static const k007232_interface k007232_config = diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c index 2c1936407a6..defa1bb6e12 100644 --- a/src/mame/drivers/wecleman.c +++ b/src/mame/drivers/wecleman.c @@ -263,7 +263,6 @@ TODO: #include "video/konicdev.h" #include "cpu/m6809/m6809.h" #include "sound/2151intf.h" -#include "sound/k007232.h" #include "wecleman.lh" #include "includes/wecleman.h" @@ -617,7 +616,7 @@ WRITE8_MEMBER(wecleman_state::multiply_w) WRITE8_MEMBER(wecleman_state::wecleman_K00723216_bank_w) { - k007232_set_bank(m_k007232, 0, ~data&1 ); //* (wecleman062gre) + m_k007232->set_bank(0, ~data&1 ); //* (wecleman062gre) } static ADDRESS_MAP_START( wecleman_sound_map, AS_PROGRAM, 8, wecleman_state ) @@ -628,7 +627,7 @@ static ADDRESS_MAP_START( wecleman_sound_map, AS_PROGRAM, 8, wecleman_state ) AM_RANGE(0x9000, 0x9001) AM_WRITE(multiply_w) // Protection AM_RANGE(0x9006, 0x9006) AM_WRITENOP // ? AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) // From main CPU - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) // K007232 (Reading offset 5/b triggers the sample) + AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) // K007232 (Reading offset 5/b triggers the sample) AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) AM_RANGE(0xf000, 0xf000) AM_WRITE(wecleman_K00723216_bank_w) // Samples banking ADDRESS_MAP_END @@ -650,13 +649,8 @@ WRITE16_MEMBER(wecleman_state::hotchase_soundlatch_w) WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w) { - k007232_device *sound[3]; - // int reg[8]; - sound[0] = m_k007232_1; - sound[1] = m_k007232_2; - sound[2] = m_k007232_3; // reg[offset] = data; @@ -673,7 +667,9 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w) ++------ chip select ( 0:chip 1, 1:chip2, 2:chip3) data&0x0f left volume (data>>4)&0x0f right volume */ - k007232_set_volume( sound[offset>>1], offset&1, (data&0x0f) * 0x08, (data>>4) * 0x08 ); + m_k007232_1->set_volume( offset&1, (data&0x0f) * 0x08, (data>>4) * 0x08 ); + m_k007232_2->set_volume( offset&1, (data&0x0f) * 0x08, (data>>4) * 0x08 ); + m_k007232_3->set_volume( offset&1, (data&0x0f) * 0x08, (data>>4) * 0x08 ); break; case 0x06: /* Bankswitch for chips 0 & 1 */ @@ -685,8 +681,8 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w) // bit 6: chip 2 - ch0 ? // bit 7: chip 2 - ch1 ? - k007232_set_bank( sound[0], bank0_a, bank0_b ); - k007232_set_bank( sound[1], bank1_a, bank1_b ); + m_k007232_1->set_bank( bank0_a, bank0_b ); + m_k007232_2->set_bank( bank1_a, bank1_b ); } break; @@ -695,7 +691,7 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w) int bank2_a = (data >> 0) & 7; int bank2_b = (data >> 3) & 7; - k007232_set_bank( sound[2], bank2_a, bank2_b ); + m_k007232_3->set_bank( bank2_a, bank2_b ); } break; } @@ -705,32 +701,32 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w) even and odd register are mapped swapped */ READ8_MEMBER(wecleman_state::hotchase_1_k007232_r) { - return k007232_r(m_k007232_1, space, offset ^ 1); + return m_k007232_1->read(space, offset ^ 1); } WRITE8_MEMBER(wecleman_state::hotchase_1_k007232_w) { - k007232_w(m_k007232_1, space, offset ^ 1, data); + m_k007232_1->write(space, offset ^ 1, data); } READ8_MEMBER(wecleman_state::hotchase_2_k007232_r) { - return k007232_r(m_k007232_2, space, offset ^ 1); + return m_k007232_2->read(space, offset ^ 1); } WRITE8_MEMBER(wecleman_state::hotchase_2_k007232_w) { - k007232_w(m_k007232_2, space, offset ^ 1, data); + m_k007232_2->write(space, offset ^ 1, data); } READ8_MEMBER(wecleman_state::hotchase_3_k007232_r) { - return k007232_r(m_k007232_3, space, offset ^ 1); + return m_k007232_3->read(space, offset ^ 1); } WRITE8_MEMBER(wecleman_state::hotchase_3_k007232_w) { - k007232_w(m_k007232_3, space, offset ^ 1, data); + m_k007232_3->write(space, offset ^ 1, data); } static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8, wecleman_state ) @@ -1040,7 +1036,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(wecleman_state::hotchase_scanline) MACHINE_RESET_MEMBER(wecleman_state,wecleman) { - k007232_set_bank( m_k007232, 0, 1 ); + m_k007232->set_bank( 0, 1 ); } static MACHINE_CONFIG_START( wecleman, wecleman_state ) diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h index 8c2ba22d304..5cea9e61305 100644 --- a/src/mame/includes/bishi.h +++ b/src/mame/includes/bishi.h @@ -3,7 +3,6 @@ Bishi Bashi Champ Mini Game Senshuken *************************************************************************/ -#include "sound/k007232.h" #define CPU_CLOCK (XTAL_24MHz / 2) /* 68000 clock */ #define SOUND_CLOCK XTAL_16_9344MHz /* YMZ280 clock */ @@ -15,7 +14,6 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), - m_k007232(*this, "k007232"), m_k056832(*this, "k056832"), m_k054338(*this, "k054338"), m_k055555(*this, "k055555") { } @@ -34,7 +32,6 @@ public: /* devices */ required_device m_maincpu; optional_device m_audiocpu; - optional_device m_k007232; required_device m_k056832; required_device m_k054338; required_device m_k055555;