diff options
| author | 2011-06-26 03:59:00 +0000 | |
|---|---|---|
| committer | 2011-06-26 03:59:00 +0000 | |
| commit | da75d4282e05e73e6f126f1583f13d7becfd9787 (patch) | |
| tree | 9b99bd209426d42c6bb4ad2f3b240d4655b1d960 /src | |
| parent | 6a34d0157944bbcb5b53d0828796f5c90ab9f59c (diff) | |
Convert Namco C352 to modern C++ device [R. Belmont]
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/sound/c352.c | 412 | ||||
| -rw-r--r-- | src/emu/sound/c352.h | 106 | ||||
| -rw-r--r-- | src/mame/drivers/namcofl.c | 12 | ||||
| -rw-r--r-- | src/mame/drivers/namconb1.c | 34 | ||||
| -rw-r--r-- | src/mame/drivers/namcond1.c | 14 | ||||
| -rw-r--r-- | src/mame/drivers/namcos11.c | 10 | ||||
| -rw-r--r-- | src/mame/drivers/namcos12.c | 52 | ||||
| -rw-r--r-- | src/mame/drivers/namcos22.c | 52 | ||||
| -rw-r--r-- | src/mame/drivers/namcos23.c | 14 |
9 files changed, 364 insertions, 342 deletions
diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c index 4bb73edcb73..79cca5a2b68 100644 --- a/src/emu/sound/c352.c +++ b/src/emu/sound/c352.c @@ -1,6 +1,6 @@ /* c352.c - Namco C352 custom PCM chip emulation - v1.1 + v1.2 By R. Belmont Additional code by cync and the hoot development team @@ -19,97 +19,62 @@ #define VERBOSE (0) #define LOG(x) do { if (VERBOSE) logerror x; } while (0) -// flags - -enum { - C352_FLG_BUSY = 0x8000, // channel is busy - C352_FLG_KEYON = 0x4000, // Keyon - C352_FLG_KEYOFF = 0x2000, // Keyoff - C352_FLG_LOOPTRG = 0x1000, // Loop Trigger - C352_FLG_LOOPHIST = 0x0800, // Loop History - C352_FLG_FM = 0x0400, // Frequency Modulation - C352_FLG_PHASERL = 0x0200, // Rear Left invert phase 180 degrees - C352_FLG_PHASEFL = 0x0100, // Front Left invert phase 180 degrees - C352_FLG_PHASEFR = 0x0080, // invert phase 180 degrees (e.g. flip sign of sample) - C352_FLG_LDIR = 0x0040, // loop direction - C352_FLG_LINK = 0x0020, // "long-format" sample (can't loop, not sure what else it means) - C352_FLG_NOISE = 0x0010, // play noise instead of sample - C352_FLG_MULAW = 0x0008, // sample is mulaw instead of linear 8-bit PCM - C352_FLG_FILTER = 0x0004, // don't apply filter - C352_FLG_REVLOOP = 0x0003, // loop backwards - C352_FLG_LOOP = 0x0002, // loop forward - C352_FLG_REVERSE = 0x0001, // play sample backwards -}; - -typedef struct -{ - UINT8 vol_l; - UINT8 vol_r; - UINT8 vol_l2; - UINT8 vol_r2; - UINT8 bank; - INT16 noise; - INT16 noisebuf; - UINT16 noisecnt; - UINT16 pitch; - UINT16 start_addr; - UINT16 end_addr; - UINT16 repeat_addr; - UINT32 flag; - - UINT16 start; - UINT16 repeat; - UINT32 current_addr; - UINT32 pos; -} c352_ch_t; - -typedef struct _c352_state c352_state; -struct _c352_state +// device type definition +const device_type C352 = &device_creator<c352_device>; + +// default address map +static ADDRESS_MAP_START( c352, AS_0, 8 ) + AM_RANGE(0x000000, 0xffffff) AM_ROM +ADDRESS_MAP_END + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// c352_device - constructor +//------------------------------------------------- + +c352_device::c352_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, C352, "C352", tag, owner, clock), + device_sound_interface(mconfig, *this), + device_memory_interface(mconfig, *this), + m_space_config("samples", ENDIANNESS_LITTLE, 8, 24, 0, NULL, *ADDRESS_MAP_NAME(c352)) { - sound_stream *stream; - c352_ch_t c352_ch[32]; - unsigned char *c352_rom_samples; - UINT32 c352_rom_length; - int sample_rate_base; - - long channel_l[2048*2]; - long channel_r[2048*2]; - long channel_l2[2048*2]; - long channel_r2[2048*2]; - - short mulaw_table[256]; - unsigned int mseq_reg; -}; - -INLINE c352_state *get_safe_token(device_t *device) +} + +//------------------------------------------------- +// memory_space_config - return a description of +// any address spaces owned by this device +//------------------------------------------------- + +const address_space_config *c352_device::memory_space_config(address_spacenum spacenum) const { - assert(device != NULL); - assert(device->type() == C352); - return (c352_state *)downcast<legacy_device_base *>(device)->token(); + return (spacenum == 0) ? &m_space_config : NULL; } // noise generator -static int get_mseq_bit(c352_state *info) +int c352_device::get_mseq_bit() { unsigned int mask = (1 << (7 - 1)); - unsigned int reg = info->mseq_reg; + unsigned int reg = m_mseq_reg; unsigned int bit = reg & (1 << (17 - 1)); if (bit) { - reg = ((reg ^ mask) << 1) | 1; + reg = ((reg ^ mask) << 1) | 1; } else { reg = reg << 1; } - info->mseq_reg = reg; + m_mseq_reg = reg; return (reg & 1); } -static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample_count) +void c352_device::mix_one_channel(unsigned long ch, long sample_count) { int i; @@ -118,20 +83,19 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample UINT16 noisecnt; INT32 frequency, delta, offset, cnt, flag; UINT32 bank; - UINT32 pos, len; + UINT32 pos; - frequency = info->c352_ch[ch].pitch; + frequency = m_c352_ch[ch].pitch; delta=frequency; - pos = info->c352_ch[ch].current_addr; // sample pointer - offset = info->c352_ch[ch].pos; // 16.16 fixed-point offset into the sample - flag = info->c352_ch[ch].flag; - bank = info->c352_ch[ch].bank << 16; + pos = m_c352_ch[ch].current_addr; // sample pointer + offset = m_c352_ch[ch].pos; // 16.16 fixed-point offset into the sample + flag = m_c352_ch[ch].flag; + bank = m_c352_ch[ch].bank << 16; - noisecnt = info->c352_ch[ch].noisecnt; - noisebuf = info->c352_ch[ch].noisebuf; + noisecnt = m_c352_ch[ch].noisecnt; + noisebuf = m_c352_ch[ch].noisebuf; - len = info->c352_rom_length; for(i = 0 ; (i < sample_count) && (flag & C352_FLG_BUSY) ; i++) { offset += delta; @@ -141,20 +105,20 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample offset &= 0xffff; } - if (pos > len) + if (pos > 0x1000000) { - info->c352_ch[ch].flag &= ~C352_FLG_BUSY; + m_c352_ch[ch].flag &= ~C352_FLG_BUSY; return; } - sample = (char)info->c352_rom_samples[pos]; - nextsample = (char)info->c352_rom_samples[pos+cnt]; + sample = (char)m_direct->read_raw_byte(pos); + nextsample = (char)m_direct->read_raw_byte(pos+cnt); // sample is muLaw, not 8-bit linear (Fighting Layer uses this extensively) if (flag & C352_FLG_MULAW) { - sample = info->mulaw_table[(unsigned char)sample]; - nextsample = info->mulaw_table[(unsigned char)nextsample]; + sample = m_mulaw_table[(unsigned char)sample]; + nextsample = m_mulaw_table[(unsigned char)nextsample]; } else { @@ -166,7 +130,7 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample if (flag & C352_FLG_NOISE) { int noise_level = 0x8000; - sample = info->c352_ch[ch].noise = (info->c352_ch[ch].noise << 1) | get_mseq_bit(info); + sample = m_c352_ch[ch].noise = (m_c352_ch[ch].noise << 1) | get_mseq_bit(); sample = (sample & (noise_level - 1)) - (noise_level >> 1); if (sample > 0x7f) { @@ -176,7 +140,7 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample { sample = 0xff; } - sample = info->mulaw_table[(unsigned char)sample]; + sample = m_mulaw_table[(unsigned char)sample]; if ( (pos+cnt) == pos ) { @@ -192,7 +156,7 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample } else { - sample = info->mulaw_table[0x7f]; // Nearest sound(s) is here. + sample = m_mulaw_table[0x7f]; // Nearest sound(s) is here. } noisebuf = 0; noisecnt = ( flag & C352_FLG_FILTER ) ? 0 : 1; @@ -207,31 +171,31 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample if ( flag & C352_FLG_PHASEFL ) { - info->channel_l[i] += ((-sample * info->c352_ch[ch].vol_l)>>8); + m_channel_l[i] += ((-sample * m_c352_ch[ch].vol_l)>>8); } else { - info->channel_l[i] += ((sample * info->c352_ch[ch].vol_l)>>8); + m_channel_l[i] += ((sample * m_c352_ch[ch].vol_l)>>8); } if ( flag & C352_FLG_PHASEFR ) { - info->channel_r[i] += ((-sample * info->c352_ch[ch].vol_r)>>8); + m_channel_r[i] += ((-sample * m_c352_ch[ch].vol_r)>>8); } else { - info->channel_r[i] += ((sample * info->c352_ch[ch].vol_r)>>8); + m_channel_r[i] += ((sample * m_c352_ch[ch].vol_r)>>8); } if ( flag & C352_FLG_PHASERL ) { - info->channel_l2[i] += ((-sample * info->c352_ch[ch].vol_l2)>>8); + m_channel_l2[i] += ((-sample * m_c352_ch[ch].vol_l2)>>8); } else { - info->channel_l2[i] += ((sample * info->c352_ch[ch].vol_l2)>>8); + m_channel_l2[i] += ((sample * m_c352_ch[ch].vol_l2)>>8); } - info->channel_r2[i] += ((sample * info->c352_ch[ch].vol_r2)>>8); + m_channel_r2[i] += ((sample * m_c352_ch[ch].vol_r2)>>8); if ( (flag & C352_FLG_REVERSE) && (flag & C352_FLG_LOOP) ) { @@ -239,26 +203,26 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample { pos += cnt; if ( - (((pos&0xFFFF) > info->c352_ch[ch].end_addr) && ((pos&0xFFFF) < info->c352_ch[ch].start) && (info->c352_ch[ch].start > info->c352_ch[ch].end_addr) ) || - (((pos&0xFFFF) > info->c352_ch[ch].end_addr) && ((pos&0xFFFF) > info->c352_ch[ch].start) && (info->c352_ch[ch].start < info->c352_ch[ch].end_addr) ) || - ((pos > (bank|0xFFFF)) && (info->c352_ch[ch].end_addr == 0xFFFF)) + (((pos&0xFFFF) > m_c352_ch[ch].end_addr) && ((pos&0xFFFF) < m_c352_ch[ch].start) && (m_c352_ch[ch].start > m_c352_ch[ch].end_addr) ) || + (((pos&0xFFFF) > m_c352_ch[ch].end_addr) && ((pos&0xFFFF) > m_c352_ch[ch].start) && (m_c352_ch[ch].start < m_c352_ch[ch].end_addr) ) || + ((pos > (bank|0xFFFF)) && (m_c352_ch[ch].end_addr == 0xFFFF)) ) { - info->c352_ch[ch].flag |= C352_FLG_LDIR; - info->c352_ch[ch].flag |= C352_FLG_LOOPHIST; + m_c352_ch[ch].flag |= C352_FLG_LDIR; + m_c352_ch[ch].flag |= C352_FLG_LOOPHIST; } } else { pos -= cnt; if ( - (((pos&0xFFFF) < info->c352_ch[ch].repeat) && ((pos&0xFFFF) < info->c352_ch[ch].end_addr) && (info->c352_ch[ch].end_addr > info->c352_ch[ch].start) ) || - (((pos&0xFFFF) < info->c352_ch[ch].repeat) && ((pos&0xFFFF) > info->c352_ch[ch].end_addr) && (info->c352_ch[ch].end_addr < info->c352_ch[ch].start) ) || - ((pos < bank) && (info->c352_ch[ch].repeat == 0x0000)) + (((pos&0xFFFF) < m_c352_ch[ch].repeat) && ((pos&0xFFFF) < m_c352_ch[ch].end_addr) && (m_c352_ch[ch].end_addr > m_c352_ch[ch].start) ) || + (((pos&0xFFFF) < m_c352_ch[ch].repeat) && ((pos&0xFFFF) > m_c352_ch[ch].end_addr) && (m_c352_ch[ch].end_addr < m_c352_ch[ch].start) ) || + ((pos < bank) && (m_c352_ch[ch].repeat == 0x0000)) ) { - info->c352_ch[ch].flag &= ~C352_FLG_LDIR; - info->c352_ch[ch].flag |= C352_FLG_LOOPHIST; + m_c352_ch[ch].flag &= ~C352_FLG_LDIR; + m_c352_ch[ch].flag |= C352_FLG_LOOPHIST; } } } @@ -266,74 +230,73 @@ static void c352_mix_one_channel(c352_state *info, unsigned long ch, long sample { pos -= cnt; if ( - (((pos&0xFFFF) < info->c352_ch[ch].end_addr) && ((pos&0xFFFF) < info->c352_ch[ch].start) && (info->c352_ch[ch].start > info->c352_ch[ch].end_addr) ) || - (((pos&0xFFFF) < info->c352_ch[ch].end_addr) && ((pos&0xFFFF) > info->c352_ch[ch].start) && (info->c352_ch[ch].start < info->c352_ch[ch].end_addr) ) || - ((pos < bank) && (info->c352_ch[ch].end_addr == 0x0000)) + (((pos&0xFFFF) < m_c352_ch[ch].end_addr) && ((pos&0xFFFF) < m_c352_ch[ch].start) && (m_c352_ch[ch].start > m_c352_ch[ch].end_addr) ) || + (((pos&0xFFFF) < m_c352_ch[ch].end_addr) && ((pos&0xFFFF) > m_c352_ch[ch].start) && (m_c352_ch[ch].start < m_c352_ch[ch].end_addr) ) || + ((pos < bank) && (m_c352_ch[ch].end_addr == 0x0000)) ) { if ( (flag & C352_FLG_LINK) && (flag & C352_FLG_LOOP) ) { - info->c352_ch[ch].bank = info->c352_ch[ch].start_addr & 0xFF; - info->c352_ch[ch].start_addr = info->c352_ch[ch].repeat_addr; - info->c352_ch[ch].start = info->c352_ch[ch].start_addr; - info->c352_ch[ch].repeat = info->c352_ch[ch].repeat_addr; - pos = (info->c352_ch[ch].bank<<16) + info->c352_ch[ch].start_addr; - info->c352_ch[ch].flag |= C352_FLG_LOOPHIST; + m_c352_ch[ch].bank = m_c352_ch[ch].start_addr & 0xFF; + m_c352_ch[ch].start_addr = m_c352_ch[ch].repeat_addr; + m_c352_ch[ch].start = m_c352_ch[ch].start_addr; + m_c352_ch[ch].repeat = m_c352_ch[ch].repeat_addr; + pos = (m_c352_ch[ch].bank<<16) + m_c352_ch[ch].start_addr; + m_c352_ch[ch].flag |= C352_FLG_LOOPHIST; } else if (flag & C352_FLG_LOOP) { - pos = (pos & 0xFF0000) + info->c352_ch[ch].repeat; - info->c352_ch[ch].flag |= C352_FLG_LOOPHIST; + pos = (pos & 0xFF0000) + m_c352_ch[ch].repeat; + m_c352_ch[ch].flag |= C352_FLG_LOOPHIST; } else { - info->c352_ch[ch].flag |= C352_FLG_KEYOFF; - info->c352_ch[ch].flag &= ~C352_FLG_BUSY; + m_c352_ch[ch].flag |= C352_FLG_KEYOFF; + m_c352_ch[ch].flag &= ~C352_FLG_BUSY; return; } } } else { pos += cnt; if ( - (((pos&0xFFFF) > info->c352_ch[ch].end_addr) && ((pos&0xFFFF) < info->c352_ch[ch].start) && (info->c352_ch[ch].start > info->c352_ch[ch].end_addr) ) || - (((pos&0xFFFF) > info->c352_ch[ch].end_addr) && ((pos&0xFFFF) > info->c352_ch[ch].start) && (info->c352_ch[ch].start < info->c352_ch[ch].end_addr) ) || - ((pos > (bank|0xFFFF)) && (info->c352_ch[ch].end_addr == 0xFFFF)) + (((pos&0xFFFF) > m_c352_ch[ch].end_addr) && ((pos&0xFFFF) < m_c352_ch[ch].start) && (m_c352_ch[ch].start > m_c352_ch[ch].end_addr) ) || + (((pos&0xFFFF) > m_c352_ch[ch].end_addr) && ((pos&0xFFFF) > m_c352_ch[ch].start) && (m_c352_ch[ch].start < m_c352_ch[ch].end_addr) ) || + ((pos > (bank|0xFFFF)) && (m_c352_ch[ch].end_addr == 0xFFFF)) ) { if ( (flag & C352_FLG_LINK) && (flag & C352_FLG_LOOP) ) { - info->c352_ch[ch].bank = info->c352_ch[ch].start_addr & 0xFF; - info->c352_ch[ch].start_addr = info->c352_ch[ch].repeat_addr; - info->c352_ch[ch].start = info->c352_ch[ch].start_addr; - info->c352_ch[ch].repeat = info->c352_ch[ch].repeat_addr; - pos = (info->c352_ch[ch].bank<<16) + info->c352_ch[ch].start_addr; - info->c352_ch[ch].flag |= C352_FLG_LOOPHIST; + m_c352_ch[ch].bank = m_c352_ch[ch].start_addr & 0xFF; + m_c352_ch[ch].start_addr = m_c352_ch[ch].repeat_addr; + m_c352_ch[ch].start = m_c352_ch[ch].start_addr; + m_c352_ch[ch].repeat = m_c352_ch[ch].repeat_addr; + pos = (m_c352_ch[ch].bank<<16) + m_c352_ch[ch].start_addr; + m_c352_ch[ch].flag |= C352_FLG_LOOPHIST; } else if (flag & C352_FLG_LOOP) { - pos = (pos & 0xFF0000) + info->c352_ch[ch].repeat; - info->c352_ch[ch].flag |= C352_FLG_LOOPHIST; + pos = (pos & 0xFF0000) + m_c352_ch[ch].repeat; + m_c352_ch[ch].flag |= C352_FLG_LOOPHIST; } else { - info->c352_ch[ch].flag |= C352_FLG_KEYOFF; - info->c352_ch[ch].flag &= ~C352_FLG_BUSY; + m_c352_ch[ch].flag |= C352_FLG_KEYOFF; + m_c352_ch[ch].flag &= ~C352_FLG_BUSY; return; } } } } - info->c352_ch[ch].noisecnt = noisecnt; - info->c352_ch[ch].noisebuf = noisebuf; - info->c352_ch[ch].pos = offset; - info->c352_ch[ch].current_addr = pos; + m_c352_ch[ch].noisecnt = noisecnt; + m_c352_ch[ch].noisebuf = noisebuf; + m_c352_ch[ch].pos = offset; + m_c352_ch[ch].current_addr = pos; } -static STREAM_UPDATE( c352_update ) +void c352_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { - c352_state *info = (c352_state *)param; int i, j; stream_sample_t *bufferl = outputs[0]; stream_sample_t *bufferr = outputs[1]; @@ -342,29 +305,29 @@ static STREAM_UPDATE( c352_update ) for(i = 0 ; i < samples ; i++) { - info->channel_l[i] = info->channel_r[i] = info->channel_l2[i] = info->channel_r2[i] = 0; + m_channel_l[i] = m_channel_r[i] = m_channel_l2[i] = m_channel_r2[i] = 0; } for (j = 0 ; j < 32 ; j++) { - c352_mix_one_channel(info, j, samples); + mix_one_channel(j, samples); } for(i = 0 ; i < samples ; i++) { - *bufferl++ = (short) (info->channel_l[i] >>3); - *bufferr++ = (short) (info->channel_r[i] >>3); - *bufferl2++ = (short) (info->channel_l2[i] >>3); - *bufferr2++ = (short) (info->channel_r2[i] >>3); + *bufferl++ = (short) (m_channel_l[i] >>3); + *bufferr++ = (short) (m_channel_r[i] >>3); + *bufferl2++ = (short) (m_channel_l2[i] >>3); + *bufferr2++ = (short) (m_channel_r2[i] >>3); } } -static unsigned short c352_read_reg16(c352_state *info, unsigned long address) +unsigned short c352_device::read_reg16(unsigned long address) { unsigned long chan; unsigned short val; - info->stream->update(); + m_stream->update(); chan = (address >> 4) & 0xfff; if (chan > 31) @@ -375,7 +338,7 @@ static unsigned short c352_read_reg16(c352_state *info, unsigned long address) { if ((address & 0xf) == 6) { - val = info->c352_ch[chan].flag; + val = m_c352_ch[chan].flag; } else { @@ -385,12 +348,12 @@ static unsigned short c352_read_reg16(c352_state *info, unsigned long address) return val; } -static void c352_write_reg16(c352_state *info, unsigned long address, unsigned short val) +void c352_device::write_reg16(unsigned long address, unsigned short val) { unsigned long chan; int i; - info->stream->update(); + m_stream->update(); chan = (address >> 4) & 0xfff; @@ -401,20 +364,20 @@ static void c352_write_reg16(c352_state *info, unsigned long address, unsigned s case 0x404: // execute key-ons/offs for ( i = 0 ; i <= 31 ; i++ ) { - if ( info->c352_ch[i].flag & C352_FLG_KEYON ) + if ( m_c352_ch[i].flag & C352_FLG_KEYON ) { - info->c352_ch[i].current_addr = (info->c352_ch[i].bank << 16) + info->c352_ch[i].start_addr; - info->c352_ch[i].start = info->c352_ch[i].start_addr; - info->c352_ch[i].repeat = info->c352_ch[i].repeat_addr; - info->c352_ch[i].noisebuf = 0; - info->c352_ch[i].noisecnt = 0; - info->c352_ch[i].flag &= ~(C352_FLG_KEYON | C352_FLG_LOOPHIST); - info->c352_ch[i].flag |= C352_FLG_BUSY; + m_c352_ch[i].current_addr = (m_c352_ch[i].bank << 16) + m_c352_ch[i].start_addr; + m_c352_ch[i].start = m_c352_ch[i].start_addr; + m_c352_ch[i].repeat = m_c352_ch[i].repeat_addr; + m_c352_ch[i].noisebuf = 0; + m_c352_ch[i].noisecnt = 0; + m_c352_ch[i].flag &= ~(C352_FLG_KEYON | C352_FLG_LOOPHIST); + m_c352_ch[i].flag |= C352_FLG_BUSY; } - else if ( info->c352_ch[i].flag & C352_FLG_KEYOFF ) + else if ( m_c352_ch[i].flag & C352_FLG_KEYOFF ) { - info->c352_ch[i].flag &= ~C352_FLG_BUSY; - info->c352_ch[i].flag &= ~(C352_FLG_KEYOFF); + m_c352_ch[i].flag &= ~C352_FLG_BUSY; + m_c352_ch[i].flag &= ~(C352_FLG_KEYOFF); } } break; @@ -434,51 +397,51 @@ static void c352_write_reg16(c352_state *info, unsigned long address, unsigned s case 0x0: // volumes (output 1) LOG(("CH %02ld LVOL %02x RVOL %02x\n", chan, val & 0xff, val >> 8)); - info->c352_ch[chan].vol_l = val & 0xff; - info->c352_ch[chan].vol_r = val >> 8; + m_c352_ch[chan].vol_l = val & 0xff; + m_c352_ch[chan].vol_r = val >> 8; break; case 0x2: // volumes (output 2) LOG(("CH %02ld RLVOL %02x RRVOL %02x\n", chan, val & 0xff, val >> 8)); - info->c352_ch[chan].vol_l2 = val & 0xff; - info->c352_ch[chan].vol_r2 = val >> 8; + m_c352_ch[chan].vol_l2 = val & 0xff; + m_c352_ch[chan].vol_r2 = val >> 8; break; case 0x4: // pitch LOG(("CH %02ld PITCH %04x\n", chan, val)); - info->c352_ch[chan].pitch = val; + m_c352_ch[chan].pitch = val; break; case 0x6: // flags LOG(("CH %02ld FLAG %02x\n", chan, val)); - info->c352_ch[chan].flag = val; + m_c352_ch[chan].flag = val; break; case 0x8: // bank (bits 16-31 of address); - info->c352_ch[chan].bank = val & 0xff; - LOG(("CH %02ld BANK %02x", chan, info->c352_ch[chan].bank)); + m_c352_ch[chan].bank = val & 0xff; + LOG(("CH %02ld BANK %02x", chan, m_c352_ch[chan].bank)); break; case 0xa: // start address LOG(("CH %02ld SADDR %04x\n", chan, val)); - info->c352_ch[chan].start_addr = val; + m_c352_ch[chan].start_addr = val; break; case 0xc: // end address LOG(("CH %02ld EADDR %04x\n", chan, val)); - info->c352_ch[chan].end_addr = val; + m_c352_ch[chan].end_addr = val; break; case 0xe: // loop address LOG(("CH %02ld LADDR %04x\n", chan, val)); - info->c352_ch[chan].repeat_addr = val; + m_c352_ch[chan].repeat_addr = val; break; default: @@ -487,15 +450,19 @@ static void c352_write_reg16(c352_state *info, unsigned long address, unsigned s } } -static void c352_init(c352_state *info, device_t *device) +void c352_device::device_start() { int i; double x_max = 32752.0; double y_max = 127.0; double u = 10.0; - // clear all channels states - memset(info->c352_ch, 0, sizeof(c352_ch_t)*32); + // find our direct access + m_direct = &space()->direct(); + + m_sample_rate_base = clock() / 192; + + m_stream = machine().sound().stream_alloc(*this, 0, 4, m_sample_rate_base, this); // generate mulaw table for mulaw format samples for (i = 0; i < 256; i++) @@ -507,97 +474,54 @@ static void c352_init(c352_state *info, device_t *device) { x = -x; } - info->mulaw_table[i] = (short)x; + m_mulaw_table[i] = (short)x; } - // init noise generator - info->mseq_reg = 0x12345678; - // register save state info for (i = 0; i < 32; i++) { - device->save_item(NAME(info->c352_ch[i].vol_l), i); - device->save_item(NAME(info->c352_ch[i].vol_r), i); - device->save_item(NAME(info->c352_ch[i].vol_l2), i); - device->save_item(NAME(info->c352_ch[i].vol_r2), i); - device->save_item(NAME(info->c352_ch[i].bank), i); - device->save_item(NAME(info->c352_ch[i].noise), i); - device->save_item(NAME(info->c352_ch[i].noisebuf), i); - device->save_item(NAME(info->c352_ch[i].noisecnt), i); - device->save_item(NAME(info->c352_ch[i].pitch), i); - device->save_item(NAME(info->c352_ch[i].start_addr), i); - device->save_item(NAME(info->c352_ch[i].end_addr), i); - device->save_item(NAME(info->c352_ch[i].repeat_addr), i); - device->save_item(NAME(info->c352_ch[i].flag), i); - device->save_item(NAME(info->c352_ch[i].start), i); - device->save_item(NAME(info->c352_ch[i].repeat), i); - device->save_item(NAME(info->c352_ch[i].current_addr), i); - device->save_item(NAME(info->c352_ch[i].pos), i); + save_item(NAME(m_c352_ch[i].vol_l), i); + save_item(NAME(m_c352_ch[i].vol_r), i); + save_item(NAME(m_c352_ch[i].vol_l2), i); + save_item(NAME(m_c352_ch[i].vol_r2), i); + save_item(NAME(m_c352_ch[i].bank), i); + save_item(NAME(m_c352_ch[i].noise), i); + save_item(NAME(m_c352_ch[i].noisebuf), i); + save_item(NAME(m_c352_ch[i].noisecnt), i); + save_item(NAME(m_c352_ch[i].pitch), i); + save_item(NAME(m_c352_ch[i].start_addr), i); + save_item(NAME(m_c352_ch[i].end_addr), i); + save_item(NAME(m_c352_ch[i].repeat_addr), i); + save_item(NAME(m_c352_ch[i].flag), i); + save_item(NAME(m_c352_ch[i].start), i); + save_item(NAME(m_c352_ch[i].repeat), i); + save_item(NAME(m_c352_ch[i].current_addr), i); + save_item(NAME(m_c352_ch[i].pos), i); } } -static DEVICE_START( c352 ) +void c352_device::device_reset() { - c352_state *info = get_safe_token(device); - - info->c352_rom_samples = *device->region(); - info->c352_rom_length = device->region()->bytes(); - - info->sample_rate_base = device->clock() / 192; - - info->stream = device->machine().sound().stream_alloc(*device, 0, 4, info->sample_rate_base, info, c352_update); + // clear all channels states + memset(m_c352_ch, 0, sizeof(c352_ch_t)*32); - c352_init(info, device); + // init noise generator + m_mseq_reg = 0x12345678; } - -READ16_DEVICE_HANDLER( c352_r ) +READ16_MEMBER( c352_device::read ) { - return(c352_read_reg16(get_safe_token(device), offset*2)); + return(read_reg16(offset*2)); } -WRITE16_DEVICE_HANDLER( c352_w ) +WRITE16_MEMBER( c352_device::write ) { if (mem_mask == 0xffff) { - c352_write_reg16(get_safe_token(device), offset*2, data); + write_reg16(offset*2, data); } else { logerror("C352: byte-wide write unsupported at this time!\n"); } } - - - - - - - -/************************************************************************** - * Generic get_info - **************************************************************************/ - -DEVICE_GET_INFO( c352 ) -{ - switch (state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(c352_state); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( c352 ); break; - case DEVINFO_FCT_STOP: /* nothing */ break; - case DEVINFO_FCT_RESET: /* nothing */ break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME: strcpy(info->s, "C352"); break; - case DEVINFO_STR_FAMILY: strcpy(info->s, "Namco PCM"); break; - case DEVINFO_STR_VERSION: strcpy(info->s, "1.1"); break; - case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; - case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break; - } -} - - -DEFINE_LEGACY_SOUND_DEVICE(C352, c352); diff --git a/src/emu/sound/c352.h b/src/emu/sound/c352.h index 17987ff5f78..7a018bd845b 100644 --- a/src/emu/sound/c352.h +++ b/src/emu/sound/c352.h @@ -3,12 +3,110 @@ #ifndef __C352_H__ #define __C352_H__ -#include "devlegcy.h" +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** -READ16_DEVICE_HANDLER( c352_r ); -WRITE16_DEVICE_HANDLER( c352_w ); +#define MCFG_C352_ADD(_tag, _clock) \ + MCFG_DEVICE_ADD(_tag, C352, _clock) -DECLARE_LEGACY_SOUND_DEVICE(C352, c352); +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> asc_device + +class c352_device : public device_t, + public device_sound_interface, + public device_memory_interface +{ +public: + // construction/destruction + c352_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + DECLARE_READ16_MEMBER(read); + DECLARE_WRITE16_MEMBER(write); + + sound_stream *m_stream; + +protected: + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + // device_sound_interface overrides + virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); + + // device_memory_interface overrides + virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const; + + const address_space_config m_space_config; + +private: + enum { + C352_FLG_BUSY = 0x8000, // channel is busy + C352_FLG_KEYON = 0x4000, // Keyon + C352_FLG_KEYOFF = 0x2000, // Keyoff + C352_FLG_LOOPTRG = 0x1000, // Loop Trigger + C352_FLG_LOOPHIST = 0x0800, // Loop History + C352_FLG_FM = 0x0400, // Frequency Modulation + C352_FLG_PHASERL = 0x0200, // Rear Left invert phase 180 degrees + C352_FLG_PHASEFL = 0x0100, // Front Left invert phase 180 degrees + C352_FLG_PHASEFR = 0x0080, // invert phase 180 degrees (e.g. flip sign of sample) + C352_FLG_LDIR = 0x0040, // loop direction + C352_FLG_LINK = 0x0020, // "long-format" sample (can't loop, not sure what else it means) + C352_FLG_NOISE = 0x0010, // play noise instead of sample + C352_FLG_MULAW = 0x0008, // sample is mulaw instead of linear 8-bit PCM + C352_FLG_FILTER = 0x0004, // don't apply filter + C352_FLG_REVLOOP = 0x0003, // loop backwards + C352_FLG_LOOP = 0x0002, // loop forward + C352_FLG_REVERSE = 0x0001, // play sample backwards + }; + + typedef struct + { + UINT8 vol_l; + UINT8 vol_r; + UINT8 vol_l2; + UINT8 vol_r2; + UINT8 bank; + INT16 noise; + INT16 noisebuf; + UINT16 noisecnt; + UINT16 pitch; + UINT16 start_addr; + UINT16 end_addr; + UINT16 repeat_addr; + UINT32 flag; + + UINT16 start; + UINT16 repeat; + UINT32 current_addr; + UINT32 pos; + } c352_ch_t; + + c352_ch_t m_c352_ch[32]; + int m_sample_rate_base; + + long m_channel_l[2048*2]; + long m_channel_r[2048*2]; + long m_channel_l2[2048*2]; + long m_channel_r2[2048*2]; + + short m_mulaw_table[256]; + unsigned int m_mseq_reg; + direct_read_data *m_direct; + + // private functions + int get_mseq_bit(void); + void mix_one_channel(unsigned long ch, long sample_count); + unsigned short read_reg16(unsigned long address); + void write_reg16(unsigned long address, unsigned short val); +}; + + +// device type definition +extern const device_type C352; #endif /* __C352_H__ */ diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index adeb30e84d3..5bcc7c4a01d 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -331,7 +331,7 @@ static READ8_HANDLER(dac1_r) { return 0xff; } static READ8_HANDLER(dac0_r) { return 0xff; } static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16 ) - AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE("c352", c352_r, c352_w) + AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x004000, 0x00bfff) AM_RAM_WRITE(mcu_shared_w) AM_BASE_MEMBER(namcofl_state, m_shareram) AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("c75", 0) AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("c75data", 0) @@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state ) MCFG_VIDEO_START(namcofl) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 48384000/3) + MCFG_C352_ADD("c352", 48384000/3) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -663,7 +663,7 @@ ROM_START( speedrcr ) ROM_REGION( 0x100000, NAMCOFL_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) ROM_LOAD("se1_ssh.18u", 0x000000, 0x100000, CRC(7a8e0bda) SHA1(f6a508d90274d0205fec0c46f5f783a2715c0c6e) ) - ROM_REGION( 0x400000, "c352", 0 ) // Samples + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD("se1_voi.23s", 0x000000, 0x400000, CRC(b95e2ffb) SHA1(7669232d772caa9afa4c7593d018e8b6e534114a) ) ROM_REGION( 0x000005, "pals", 0) /* PAL's */ @@ -715,7 +715,7 @@ ROM_START( finalapr ) ROM_REGION( 0x80000, NAMCOFL_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) ROM_LOAD("flr1ssh.18u", 0x000000, 0x080000, CRC(f70cb2bf) SHA1(dbddda822287783a43415172b81d0382a8ac43d8) ) - ROM_REGION( 0x200000, "c352", 0 ) // Samples + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD("flr1voi.23s", 0x000000, 0x200000, CRC(ff6077cd) SHA1(73c289125ddeae3e43153e4c570549ca04501262) ) ROM_REGION( 0x2000, "nvram", 0 ) // default settings, including calibration @@ -757,7 +757,7 @@ ROM_START( finalapro ) ROM_REGION( 0x80000, NAMCOFL_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) ROM_LOAD("flr1ssh.18u", 0x000000, 0x080000, CRC(f70cb2bf) SHA1(dbddda822287783a43415172b81d0382a8ac43d8) ) - ROM_REGION( 0x200000, "c352", 0 ) // Samples + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD("flr1voi.23s", 0x000000, 0x200000, CRC(ff6077cd) SHA1(73c289125ddeae3e43153e4c570549ca04501262) ) ROM_REGION( 0x2000, "nvram", 0 ) // default settings, including calibration @@ -800,7 +800,7 @@ ROM_START( finalaprj ) ROM_REGION( 0x80000, NAMCOFL_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) ROM_LOAD("flr1ssh.18u", 0x000000, 0x080000, CRC(f70cb2bf) SHA1(dbddda822287783a43415172b81d0382a8ac43d8) ) - ROM_REGION( 0x200000, "c352", 0 ) // Samples + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD("flr1voi.23s", 0x000000, 0x200000, CRC(ff6077cd) SHA1(73c289125ddeae3e43153e4c570549ca04501262) ) ROM_REGION( 0x2000, "nvram", 0 ) // default settings, including calibration diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index 4772a4e9a3b..0a17776513c 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -918,7 +918,7 @@ static WRITE16_HANDLER( nbmcu_shared_w ) } static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16 ) - AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE("c352", c352_r, c352_w) + AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x004000, 0x00bfff) AM_RAM_WRITE(nbmcu_shared_w) AM_BASE_MEMBER(namconb1_state, m_namconb_shareram) AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("c75", 0) AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("c75data", 0) @@ -1045,7 +1045,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) MCFG_VIDEO_START(namconb1) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, MASTER_CLOCK_HZ/3) + MCFG_C352_ADD("c352", MASTER_CLOCK_HZ/3) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -1078,7 +1078,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state ) MCFG_VIDEO_START(namconb2) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, MASTER_CLOCK_HZ/3) + MCFG_C352_ADD("c352", MASTER_CLOCK_HZ/3) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -1099,7 +1099,7 @@ ROM_START( ptblank ) /* World set using 4Mb sound data rom (verified) */ // ROM_LOAD( "gn1_spr0.5b", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) /* 1Megabit, same data as the 4Mb rom at 0x00000-0x1ffff */ ROM_LOAD( "gn1-spr0.5b", 0, 0x80000, CRC(71773811) SHA1(e482784d9b9ebf8c2e4a2a3f6f6c4dc8304d2251) ) /* 4Megabit, same data at 0x00000-0x1ffff, 0x20000-0x7ffff is 0xff filled */ - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "gn1-voi0.5j", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1130,7 +1130,7 @@ ROM_START( gunbuletw ) /* World set using 4Mb sound data rom (verified) */ // ROM_LOAD( "gn1_spr0.5b", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) /* 1Megabit, same data as the 4Mb rom at 0x00000-0x1ffff */ ROM_LOAD( "gn1-spr0.5b", 0, 0x80000, CRC(71773811) SHA1(e482784d9b9ebf8c2e4a2a3f6f6c4dc8304d2251) ) /* 4Megabit, same data at 0x00000-0x1ffff, 0x20000-0x7ffff is 0xff filled */ - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "gn1-voi0.5j", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1161,7 +1161,7 @@ ROM_START( gunbuletj ) /* Japanese set using 1Mb sound data rom (verified) */ ROM_LOAD( "gn1_spr0.5b", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) /* 1Megabit, same data as the 4Mb rom at 0x00000-0x1ffff */ // ROM_LOAD( "gn1-spr0.5b", 0, 0x80000, CRC(71773811) SHA1(e482784d9b9ebf8c2e4a2a3f6f6c4dc8304d2251) ) /* 4Megabit, same data at 0x00000-0x1ffff, 0x20000-0x7ffff is 0xff filled */ - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "gn1-voi0.5j", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1191,7 +1191,7 @@ ROM_START( nebulray ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "nr1-spr0", 0, 0x20000, CRC(1cc2b44b) SHA1(161f4ed39fabe89d7ee1d539f8b9f08cd0ff3111) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "nr1-voi0", 0, 0x200000, CRC(332d5e26) SHA1(9daddac3fbe0709e25ed8e0b456bac15bfae20d7) ) ROM_REGION( 0x1000000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1228,7 +1228,7 @@ ROM_START( nebulrayj ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "nr1-spr0", 0, 0x20000, CRC(1cc2b44b) SHA1(161f4ed39fabe89d7ee1d539f8b9f08cd0ff3111) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "nr1-voi0", 0, 0x200000, CRC(332d5e26) SHA1(9daddac3fbe0709e25ed8e0b456bac15bfae20d7) ) ROM_REGION( 0x1000000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1265,7 +1265,7 @@ ROM_START( gslgr94u ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "gse2spr0.bin", 0, 0x20000, CRC(17e87cfc) SHA1(9cbeadb6dfcb736e8c80eab344f70fc2f58469d6) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "gse-voi0.bin", 0, 0x200000, CRC(d3480574) SHA1(0c468ed060769b36b7e41cf4919cb6d8691d64f6) ) ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1293,7 +1293,7 @@ ROM_START( gslgr94j ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "gs41spr0.5b", 0, 0x80000, CRC(3e2b6d55) SHA1(f6a1ecaee3a9a7a535850084e469aa7f873f301e) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "gs4voi0.5j", 0, 0x200000, CRC(c3053a90) SHA1(e76799b33b2457421255b03786bc24266d59c7dd) ) ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1448,7 +1448,7 @@ ROM_START( gslugrsj ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "gs1spr0.5b", 0, 0x80000, CRC(561ea20f) SHA1(adac6b77effc3a82079a9b228bafca0fcef72ba5) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "gs1voi-0.5j", 0, 0x200000, CRC(6f8262aa) SHA1(beea98d9f8b927a572eb0bfcf678e9d6e40fc68d) ) ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1476,7 +1476,7 @@ ROM_START( sws95 ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "ss51spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ss51voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) @@ -1505,7 +1505,7 @@ ROM_START( sws96 ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "ss61spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ss61voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1533,7 +1533,7 @@ ROM_START( sws97 ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "ss71spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ss71voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1561,7 +1561,7 @@ ROM_START( vshoot ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "vsj1spr0.5b", 0, 0x80000, CRC(b0c71aa6) SHA1(a94fae02b46a645ff728d2f98827c85ff155892b) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "vsjvoi-0.5j", 0, 0x200000, CRC(0528c9ed) SHA1(52b67978fdeb97b77065575774a7ddeb49fe1d81) ) ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) @@ -1749,7 +1749,7 @@ ROM_START( outfxies ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "ou1spr0.5b", 0, 0x80000, CRC(60cee566) SHA1(2f3b96793816d90011586e0f9f71c58b636b6d4c) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ou1voi0.6n", 0, 0x200000, CRC(2d8fb271) SHA1(bde9d45979728f5a2cd8ec89f5f81bf16b694cc2) ) ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) @@ -1794,7 +1794,7 @@ ROM_START( outfxiesj ) ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data */ ROM_LOAD( "ou1spr0.5b", 0, 0x80000, CRC(60cee566) SHA1(2f3b96793816d90011586e0f9f71c58b636b6d4c) ) - ROM_REGION( 0x200000, "c352", 0 ) + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ou1voi0.6n", 0, 0x200000, CRC(2d8fb271) SHA1(bde9d45979728f5a2cd8ec89f5f81bf16b694cc2) ) ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c index 87aead83920..2ca99161ea4 100644 --- a/src/mame/drivers/namcond1.c +++ b/src/mame/drivers/namcond1.c @@ -253,7 +253,7 @@ static WRITE8_HANDLER( mcu_pa_write ) static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x200000, 0x20ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w ) - AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE( "c352", c352_r, c352_w ) + AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW") AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1_P2") AM_RANGE(0xc00010, 0xc00011) AM_NOP @@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 16384000) + MCFG_C352_ADD("c352", 16384000) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -345,7 +345,7 @@ ROM_START( ncv1 ) ROM_REGION( 0x200000,"gfx1", 0 ) /* 2MB character generator */ ROM_LOAD( "nc1cg0.10c", 0x000000, 0x200000, CRC(355e7f29) SHA1(47d92c4e28c3610a620d3c9b3be558199477f6d8) ) - ROM_REGION( 0x200000,"c352", 0 ) /* 2MB sound data */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "nc1voice.7b", 0x000000, 0x200000, CRC(91c85bd6) SHA1(c2af8b1518b2b601f2b14c3f327e7e3eae9e29fc) ) ROM_END @@ -360,7 +360,7 @@ ROM_START( ncv1j ) ROM_REGION( 0x200000,"gfx1", 0 ) /* 2MB character generator */ ROM_LOAD( "nc1cg0.10c", 0x000000, 0x200000, CRC(355e7f29) SHA1(47d92c4e28c3610a620d3c9b3be558199477f6d8) ) - ROM_REGION( 0x200000,"c352", 0 ) /* 2MB sound data */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "nc1voice.7b", 0x000000, 0x200000, CRC(91c85bd6) SHA1(c2af8b1518b2b601f2b14c3f327e7e3eae9e29fc) ) ROM_END @@ -375,7 +375,7 @@ ROM_START( ncv1j2 ) ROM_REGION( 0x200000,"gfx1", 0 ) /* 2MB character generator */ ROM_LOAD( "nc1cg0.10c", 0x000000, 0x200000, CRC(355e7f29) SHA1(47d92c4e28c3610a620d3c9b3be558199477f6d8) ) - ROM_REGION( 0x200000,"c352", 0 ) /* 2MB sound data */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "nc1voice.7b", 0x000000, 0x200000, CRC(91c85bd6) SHA1(c2af8b1518b2b601f2b14c3f327e7e3eae9e29fc) ) ROM_END @@ -391,7 +391,7 @@ ROM_START( ncv2 ) ROM_LOAD( "ncs1cg0.10e", 0x000000, 0x200000, CRC(fdd24dbe) SHA1(4dceaae3d853075f58a7408be879afc91d80292e) ) ROM_LOAD( "ncs1cg1.10e", 0x200000, 0x200000, CRC(007b19de) SHA1(d3c093543511ec1dd2f8be6db45f33820123cabc) ) - ROM_REGION( 0x200000,"c352", 0 ) /* 2MB sound data */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ncs1voic.7c", 0x000000, 0x200000, CRC(ed05fd88) SHA1(ad88632c89a9946708fc6b4c9247e1bae9b2944b) ) ROM_END @@ -407,7 +407,7 @@ ROM_START( ncv2j ) ROM_LOAD( "ncs1cg0.10e", 0x000000, 0x200000, CRC(fdd24dbe) SHA1(4dceaae3d853075f58a7408be879afc91d80292e) ) ROM_LOAD( "ncs1cg1.10e", 0x200000, 0x200000, CRC(007b19de) SHA1(d3c093543511ec1dd2f8be6db45f33820123cabc) ) - ROM_REGION( 0x200000,"c352", 0 ) /* 2MB sound data */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ncs1voic.7c", 0x000000, 0x200000, CRC(ed05fd88) SHA1(ad88632c89a9946708fc6b4c9247e1bae9b2944b) ) ROM_END diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c index 0d999de00d6..0f8fcd48a21 100644 --- a/src/mame/drivers/namcos11.c +++ b/src/mame/drivers/namcos11.c @@ -775,7 +775,7 @@ static READ16_HANDLER( c76_inputs_r ) } ADDRESS_MAP_START( c76_map, AS_PROGRAM, 16 ) - AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE("c352", c352_r, c352_w ) + AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x001000, 0x001007) AM_READ( c76_inputs_r ) AM_RANGE(0x004000, 0x00bfff) AM_READWRITE( c76_shared_r, c76_shared_w ) AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("c76", 0x40000) @@ -1009,7 +1009,7 @@ static MACHINE_CONFIG_START( coh100, namcos11_state ) MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8538Q, 0 ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 16384000) + MCFG_C352_ADD("c352", 16384000) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -1657,7 +1657,7 @@ ROM_START( tekkenac ) ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) ) ROM_LOAD( "c76.bin", 0x040000, 0x004000, CRC(399faac7) SHA1(ceb184ef0486caf715dd997101999785f67a40b8) ) - ROM_REGION( 0x0200000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) ) ROM_END @@ -1680,7 +1680,7 @@ ROM_START( tekkenab ) ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) ) ROM_LOAD( "c76.bin", 0x040000, 0x004000, CRC(399faac7) SHA1(ceb184ef0486caf715dd997101999785f67a40b8) ) - ROM_REGION( 0x0200000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) ) ROM_END @@ -1703,7 +1703,7 @@ ROM_START( tekkenjb ) ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) ) ROM_LOAD( "c76.bin", 0x040000, 0x004000, CRC(399faac7) SHA1(ceb184ef0486caf715dd997101999785f67a40b8) ) - ROM_REGION( 0x0200000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) ) ROM_END diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c index 8d60ba378c6..c124b1abfb1 100644 --- a/src/mame/drivers/namcos12.c +++ b/src/mame/drivers/namcos12.c @@ -1414,7 +1414,7 @@ static MACHINE_RESET( namcos12 ) static ADDRESS_MAP_START( s12h8rwmap, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x08ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w ) - AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE( "c352", c352_r, c352_w ) + AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") AM_RANGE(0x300002, 0x300003) AM_READ_PORT("IN1") AM_RANGE(0x300010, 0x300011) AM_NOP // golgo13 writes here a lot, possibly also a wait state generator? @@ -1679,7 +1679,7 @@ static MACHINE_CONFIG_START( coh700, namcos12_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 16737350) + MCFG_C352_ADD("c352", 16737350) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -1810,7 +1810,7 @@ ROM_START( aquarush ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "aq1vera.11s", 0x000000, 0x080000, CRC(78277e02) SHA1(577ebb6d7ab5e304fb1dc1e7fd5649762e0d1786) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "aq1wave0.2", 0x000000, 0x800000, CRC(0cf7278d) SHA1(aee31e4d9b3522f42325071768803c542aa6de09) ) ROM_END @@ -1832,7 +1832,7 @@ ROM_START( ehrgeiz ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "eg1vera.11s", 0x0000000, 0x080000, CRC(9e44645e) SHA1(374eb4a4c09d6b5b7af5ff0efec16b4d2aacbe2b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "eg1wave0.2", 0x0000000, 0x800000, CRC(961fe69f) SHA1(0189a061959a8d94b9d2db627911264faf9f28fd) ) ROM_END @@ -1854,7 +1854,7 @@ ROM_START( ehrgeizaa ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "eg1vera.11s", 0x0000000, 0x080000, CRC(9e44645e) SHA1(374eb4a4c09d6b5b7af5ff0efec16b4d2aacbe2b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "eg1wave0.2", 0x0000000, 0x800000, CRC(961fe69f) SHA1(0189a061959a8d94b9d2db627911264faf9f28fd) ) ROM_END @@ -1876,7 +1876,7 @@ ROM_START( ehrgeizja ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "eg1vera.11s", 0x0000000, 0x080000, CRC(9e44645e) SHA1(374eb4a4c09d6b5b7af5ff0efec16b4d2aacbe2b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "eg1wave0.2", 0x0000000, 0x800000, CRC(961fe69f) SHA1(0189a061959a8d94b9d2db627911264faf9f28fd) ) ROM_END @@ -1968,7 +1968,7 @@ ROM_START( ghlpanic ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "ob2vera.11s", 0x0000000, 0x080000, CRC(f8c459f2) SHA1(681520c891f5c8a0f321652d8834910310c88d1a) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "ob1wave.ic2", 0x000000, 0x800000, CRC(e7bc7202) SHA1(f0f598304866ebe62642eaac6b7d8709baa14fe1) ) ROM_END @@ -1988,7 +1988,7 @@ ROM_START( kaiunqz ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "kw1vera.11s", 0x000000, 0x080000, CRC(d863fafa) SHA1(3c2bb38c24165e3a1a4d1d257fcfc019b63d5199) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "kw1wave0.2", 0x000000, 0x800000, CRC(060e52ae) SHA1(7ea95cae9d3c648163b225d0c7d365644be90241) ) ROM_END @@ -2006,7 +2006,7 @@ ROM_START( lbgrande ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "lg1vera.11s", 0x0000000, 0x080000, CRC(de717a09) SHA1(78f26ff630c50632916fa17fa870dcde7f13781d) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "lg1wave0.5", 0x0000000, 0x400000, CRC(4647fada) SHA1(99f5e9ded0c83f1a0d3670f6380bc15c1380671e) ) ROM_END @@ -2024,7 +2024,7 @@ ROM_START( lbgrandeja ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "lg1vera.11s", 0x0000000, 0x080000, CRC(de717a09) SHA1(78f26ff630c50632916fa17fa870dcde7f13781d) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "lg1wave0.5", 0x0000000, 0x400000, CRC(4647fada) SHA1(99f5e9ded0c83f1a0d3670f6380bc15c1380671e) ) ROM_END @@ -2044,7 +2044,7 @@ ROM_START( mdhorse ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "mdh1vera.11s", 0x0000000, 0x080000, CRC(20d7ba29) SHA1(95a056d1f1ac70dda8ced832b506076485348a33) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "mdh1wave0", 0x0000000, 0x800000, CRC(7b031123) SHA1(7cbc1f71d259405f9f1ef26026d51abcb255b057) ) ROM_END @@ -2060,7 +2060,7 @@ ROM_START( mrdrillr ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "dri1vera.11s", 0x0000000, 0x080000, CRC(33ea9c0e) SHA1(5018d7a1a45ec3133cd928435db8804f66321924) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "dri1wave0.5", 0x0000000, 0x800000, CRC(32928df1) SHA1(79af92a2d24a0e3d5bfe1785776b0f86a93882ce) ) ROM_END @@ -2170,7 +2170,7 @@ ROM_START( soulclbr ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2189,7 +2189,7 @@ ROM_START( soulclbrwb ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2208,7 +2208,7 @@ ROM_START( soulclbruc ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2227,7 +2227,7 @@ ROM_START( soulclbrjc ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2246,7 +2246,7 @@ ROM_START( soulclbrub ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2265,7 +2265,7 @@ ROM_START( soulclbrjb ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2284,7 +2284,7 @@ ROM_START( soulclbrja ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END @@ -2389,7 +2389,7 @@ ROM_START( tekken3 ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END @@ -2412,7 +2412,7 @@ ROM_START( tekken3ae ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END @@ -2435,7 +2435,7 @@ ROM_START( tekken3ud ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END @@ -2458,7 +2458,7 @@ ROM_START( tekken3ab ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END @@ -2481,7 +2481,7 @@ ROM_START( tekken3ua ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1vera.11s", 0x0000000, 0x080000, CRC(a74dfe7f) SHA1(854096a6f12ee9073fb1f38e41c8e6e0725a7521) ) /* Specific to Ver A. */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END @@ -2504,7 +2504,7 @@ ROM_START( tekken3aa ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1vera.11s", 0x0000000, 0x080000, CRC(a74dfe7f) SHA1(854096a6f12ee9073fb1f38e41c8e6e0725a7521) ) /* Specific to Ver A. */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END @@ -2527,7 +2527,7 @@ ROM_START( tekken3ja ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "tet1vera.11s", 0x0000000, 0x080000, CRC(a74dfe7f) SHA1(854096a6f12ee9073fb1f38e41c8e6e0725a7521) ) /* Specific to Ver A. */ - ROM_REGION( 0x0800000, "c352", 0 ) /* samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index 21f8c916a2d..c9c7d28ca16 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -2516,7 +2516,7 @@ static WRITE16_HANDLER( s22mcu_shared_w ) // Super System 22 M37710 static ADDRESS_MAP_START( mcu_program, AS_PROGRAM, 16 ) - AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE( "c352", c352_r, c352_w ) + AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x004000, 0x00bfff) AM_READWRITE( s22mcu_shared_r, s22mcu_shared_w ) AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("user4", 0xc000) AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("user4", 0) @@ -2528,7 +2528,7 @@ ADDRESS_MAP_END // System 22 37702 static ADDRESS_MAP_START( mcu_s22_program, AS_PROGRAM, 16 ) - AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE( "c352", c352_r, c352_w ) + AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x004000, 0x00bfff) AM_READWRITE( s22mcu_shared_r, s22mcu_shared_w ) AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("mcu", 0) AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("user4", 0) @@ -2915,7 +2915,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, SS22_MASTER_CLOCK/3) + MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/3) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3324,7 +3324,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, SS22_MASTER_CLOCK/3) + MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/3) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3385,7 +3385,7 @@ ROM_START( airco22b ) ROM_LOAD( "acs1ptu2.15f", 0x80000*0xa, 0x80000,CRC(fdd2d778) SHA1(0269f971d778e908a1efb5a63b08fb3365d98c2a) ) ROM_LOAD( "acs1ptu3.14f", 0x80000*0xb, 0x80000,CRC(38b425d4) SHA1(8ff6dd6775d42afdff4c9fb2232e4d72b38e515a) ) - ROM_REGION( 0xc00000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "acs1wav0.1", 0x400000, 0x400000, CRC(52fb9762) SHA1(125c163e62d701c2e17ba0b572ed27c944ca0412) ) ROM_LOAD( "acs1wav1.2", 0x800000, 0x400000, CRC(b568dca2) SHA1(503deb277691d801acac1380ded2868a5d5ac501) ) ROM_END @@ -3442,7 +3442,7 @@ ROM_START( alpinerc ) ROM_LOAD( "ar1ptru2.15f", 0x80000*0xa, 0x80000,CRC(1321ec59) SHA1(dbd3687a4c6b1aa0b18e336f99dabb9010d36639) ) ROM_LOAD( "ar1ptru3.14f", 0x80000*0xb, 0x80000,CRC(139d7dc1) SHA1(6d25e6ad552a91a0c5fc03db7e1a801ccf9c9556) ) - ROM_REGION( 0x200000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ar1wavea.2l", 0, 0x200000, CRC(dbf64562) SHA1(454fd7d5b860f0e5557d8900393be95d6c992ad1) ) ROM_END @@ -3498,7 +3498,7 @@ ROM_START( alpinerd ) ROM_LOAD( "ar1ptru2.15f", 0x80000*0xa, 0x80000,CRC(1321ec59) SHA1(dbd3687a4c6b1aa0b18e336f99dabb9010d36639) ) ROM_LOAD( "ar1ptru3.14f", 0x80000*0xb, 0x80000,CRC(139d7dc1) SHA1(6d25e6ad552a91a0c5fc03db7e1a801ccf9c9556) ) - ROM_REGION( 0x200000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ar1wavea.2l", 0, 0x200000, CRC(dbf64562) SHA1(454fd7d5b860f0e5557d8900393be95d6c992ad1) ) ROM_END @@ -3698,7 +3698,7 @@ ROM_START( cybrcomm ) ROM_LOAD( "cyc1ptu1.4d", 0x80000*0x7, 0x80000,CRC(3bdaeeeb) SHA1(826f97e2165af8569cfec03874b16030a9486559) ) ROM_LOAD( "cyc1ptu2.3d", 0x80000*0x8, 0x80000,CRC(a0e73674) SHA1(1e22142a564e664031c12b250664fc82e3b3d43b) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "cy1wav0.10r", 0x000000, 0x100000, CRC(c6f366a2) SHA1(795dbee09df159d3501c748fb3de16cca81742d6) ) ROM_LOAD( "cy1wav1.10p", 0x200000, 0x100000, CRC(f30b5e37) SHA1(9f5a94d82741ef9688c6e415ebb9009c906737c9) ) ROM_LOAD( "cy1wav2.10n", 0x100000, 0x100000, CRC(b98c1ca6) SHA1(4b66aa05f82be5ef3315acc30031872698ff4391) ) @@ -3762,7 +3762,7 @@ ROM_START( cybrcycc ) ROM_LOAD( "cb1ptru2.15f", 0x80000*0xa, 0x80000,CRC(68ffcd50) SHA1(5ca5f71b6b079fde14d76c869d211a815bffae68) ) ROM_LOAD( "cb1ptru3.14f", 0x80000*0xb, 0x80000,CRC(d89c1c2b) SHA1(9c25df696b2d120ce33d7774381460297740007a) ) - ROM_REGION( 0xa00000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "cb1wavea.2l", 0x000000, 0x400000, CRC(b79a624d) SHA1(c0ee358a183ba6d0835731dbdd191b64718fde6e) ) ROM_LOAD( "cb1waveb.1l", 0x800000, 0x200000, CRC(33bf08f6) SHA1(bf9d68b26a8158ea1abfe8428b7454cac25242c5) ) ROM_END @@ -3827,7 +3827,7 @@ ROM_START( propcycl ) ROM_LOAD( "pr1ptru1.16f", 0x80000*7, 0x80000,CRC(e9a3f72b) SHA1(f967e1adf8eee4fffdf4288d36a93c5bb4f9a126) ) ROM_LOAD( "pr1ptru2.15f", 0x80000*8, 0x80000,CRC(c346a842) SHA1(299bc0a30d0e74d8adfa3dc605aebf6439f5bc18) ) - ROM_REGION( 0xc00000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "pr1wavea.2l", 0x000000, 0x400000, CRC(320f3913) SHA1(3887b7334ca7762794c14198dd24bab47fcd9505) ) ROM_LOAD( "pr1waveb.1l", 0x800000, 0x400000, CRC(d91acb26) SHA1(c2161e2d70e08aed15cbc875ffee685190611daf) ) ROM_END @@ -3869,7 +3869,7 @@ ROM_START( acedrvrw ) ROM_LOAD( "ad1potu0.5d", 0x80000*4, 0x80000,CRC(e0f44949) SHA1(ffdb64d600883974b05edaa9ed3071af355ee17f) ) ROM_LOAD( "ad1potu1.4d", 0x80000*5, 0x80000,CRC(f2cd2cbb) SHA1(19fe6e3454a1e4353c7fe0a0d7a71742fea946de) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ad1wave0.10r", 0x100000*0, 0x100000,CRC(c7879a72) SHA1(ae04d664858b0944583590ed0003a9420032d5ca) ) ROM_LOAD( "ad1wave1.10p", 0x100000*2, 0x100000,CRC(69c1d41e) SHA1(b5cdfe7b75075c585dfd842347f8e4e692bb2781) ) ROM_LOAD( "ad1wave2.10n", 0x100000*1, 0x100000,CRC(365a6831) SHA1(ddaa44a4436d6de120b64a5d130b1ee18f872e19) ) @@ -3928,7 +3928,7 @@ ROM_START( victlapw ) ROM_LOAD( "adv1pot.u1", 0x80000*7, 0x80000,CRC(c8788f74) SHA1(606e10b05146e3db824aa608745de80584420d12) ) ROM_LOAD( "adv1pot.u2", 0x80000*8, 0x80000,CRC(e67f29c5) SHA1(16222afb4f1f494711dd00ebb347c824db333bae) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "adv1wav0.10r", 0x000000, 0x100000, CRC(f07b2d9d) SHA1(fd46c23b336d5e9a748f7f8d825c19737125d2fb) ) ROM_LOAD( "adv1wav1.10p", 0x200000, 0x100000, CRC(737f3c7a) SHA1(4737994f146c0076e7270785f41f3a85c53c7c5f) ) ROM_LOAD( "adv1wav2.10n", 0x100000, 0x100000, CRC(c1a5ca5e) SHA1(27e6f9256d5fe5966e91d6be1e6e80900a764af1) ) @@ -3990,7 +3990,7 @@ ROM_START( raveracw ) ROM_LOAD( "rv1potu2.3d", 0x80000*0xa, 0x80000,CRC(c18fcb74) SHA1(a4009ae2b014dc89aed4741fd97f84350117c2f4) ) ROM_LOAD( "rv1potu3.2d", 0x80000*0xb, 0x80000,CRC(79735aaa) SHA1(1cf14274669b916a7641f7a16785da1b72347485) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rv1wav0.10r", 0x000000, 0x100000, CRC(5aef8143) SHA1(a75d31298e3ff9b290f238976a11e8b85cfb72d3) ) ROM_LOAD( "rv1wav1.10p", 0x200000, 0x100000, CRC(9ed9e6b3) SHA1(dd1da2b08d1b6aa0912daacc77744c9799aabb78) ) ROM_LOAD( "rv1wav2.10n", 0x100000, 0x100000, CRC(5af9dc83) SHA1(9aeb7f8217b806a6f3ed93056513af9fbcb6b372) ) @@ -4052,7 +4052,7 @@ ROM_START( raveracj ) ROM_LOAD( "rv1potu2.3d", 0x80000*0xa, 0x80000,CRC(c18fcb74) SHA1(a4009ae2b014dc89aed4741fd97f84350117c2f4) ) ROM_LOAD( "rv1potu3.2d", 0x80000*0xb, 0x80000,CRC(79735aaa) SHA1(1cf14274669b916a7641f7a16785da1b72347485) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rv1wav0.10r", 0x000000, 0x100000, CRC(5aef8143) SHA1(a75d31298e3ff9b290f238976a11e8b85cfb72d3) ) ROM_LOAD( "rv1wav1.10p", 0x200000, 0x100000, CRC(9ed9e6b3) SHA1(dd1da2b08d1b6aa0912daacc77744c9799aabb78) ) ROM_LOAD( "rv1wav2.10n", 0x100000, 0x100000, CRC(5af9dc83) SHA1(9aeb7f8217b806a6f3ed93056513af9fbcb6b372) ) @@ -4114,7 +4114,7 @@ ROM_START( raveracja ) ROM_LOAD( "rv1potu2.3d", 0x80000*0xa, 0x80000,CRC(c18fcb74) SHA1(a4009ae2b014dc89aed4741fd97f84350117c2f4) ) ROM_LOAD( "rv1potu3.2d", 0x80000*0xb, 0x80000,CRC(79735aaa) SHA1(1cf14274669b916a7641f7a16785da1b72347485) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rv1wav0.10r", 0x000000, 0x100000, CRC(5aef8143) SHA1(a75d31298e3ff9b290f238976a11e8b85cfb72d3) ) ROM_LOAD( "rv1wav1.10p", 0x200000, 0x100000, CRC(9ed9e6b3) SHA1(dd1da2b08d1b6aa0912daacc77744c9799aabb78) ) ROM_LOAD( "rv1wav2.10n", 0x100000, 0x100000, CRC(5af9dc83) SHA1(9aeb7f8217b806a6f3ed93056513af9fbcb6b372) ) @@ -4166,7 +4166,7 @@ ROM_START( ridgera2 ) ROM_LOAD( "rrs1pou0.5d", 0x80000*4, 0x80000,CRC(74d6ec84) SHA1(63f5beee51443c98100330ec04291f71e10716c4) ) ROM_LOAD( "rrs1pou1.4d", 0x80000*5, 0x80000,CRC(f527caaa) SHA1(f92bdd15323239d593ddac92a11d23a27e6635ed) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rrs1wav0.10r", 0x100000*0, 0x100000,CRC(99d11a2d) SHA1(1f3db98a99be0f07c03b0a7817561459a58f310e) ) ROM_LOAD( "rrs1wav1.10p", 0x100000*2, 0x100000,CRC(ad28444a) SHA1(c31bbf3cae5015e5494fe4988b9b01d822224c69) ) ROM_LOAD( "rrs1wav2.10n", 0x100000*1, 0x100000,CRC(6f0d4619) SHA1(cd3d57f2ea21497f388ffa29ec7d2665647a01c0) ) @@ -4217,7 +4217,7 @@ ROM_START( ridgera2j ) ROM_LOAD( "rrs1pou0.5d", 0x80000*4, 0x80000,CRC(74d6ec84) SHA1(63f5beee51443c98100330ec04291f71e10716c4) ) ROM_LOAD( "rrs1pou1.4d", 0x80000*5, 0x80000,CRC(f527caaa) SHA1(f92bdd15323239d593ddac92a11d23a27e6635ed) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rrs1wav0.10r", 0x100000*0, 0x100000,CRC(99d11a2d) SHA1(1f3db98a99be0f07c03b0a7817561459a58f310e) ) ROM_LOAD( "rrs1wav1.10p", 0x100000*2, 0x100000,CRC(ad28444a) SHA1(c31bbf3cae5015e5494fe4988b9b01d822224c69) ) ROM_LOAD( "rrs1wav2.10n", 0x100000*1, 0x100000,CRC(6f0d4619) SHA1(cd3d57f2ea21497f388ffa29ec7d2665647a01c0) ) @@ -4269,7 +4269,7 @@ ROM_START( ridgera2ja ) ROM_LOAD( "rrs1pou0.5d", 0x80000*4, 0x80000,CRC(74d6ec84) SHA1(63f5beee51443c98100330ec04291f71e10716c4) ) ROM_LOAD( "rrs1pou1.4d", 0x80000*5, 0x80000,CRC(f527caaa) SHA1(f92bdd15323239d593ddac92a11d23a27e6635ed) ) - ROM_REGION( 0x400000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rrs1wav0.10r", 0x100000*0, 0x100000,CRC(99d11a2d) SHA1(1f3db98a99be0f07c03b0a7817561459a58f310e) ) ROM_LOAD( "rrs1wav1.10p", 0x100000*2, 0x100000,CRC(ad28444a) SHA1(c31bbf3cae5015e5494fe4988b9b01d822224c69) ) ROM_LOAD( "rrs1wav2.10n", 0x100000*1, 0x100000,CRC(6f0d4619) SHA1(cd3d57f2ea21497f388ffa29ec7d2665647a01c0) ) @@ -4320,7 +4320,7 @@ ROM_START( ridgerac ) ROM_LOAD( "rr1potu0.5d", 0x80000*4, 0x80000,CRC(5e367f72) SHA1(5887f011379dce865fef238b402678a3d2033de9) ) ROM_LOAD( "rr1potu1.4d", 0x80000*5, 0x80000,CRC(31d92475) SHA1(51d3c0baa223e1bc16ea2950f2e085597528f870) ) - ROM_REGION( 0x800000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rr1wav0.10r", 0x100000*0, 0x100000,CRC(a8e85bde) SHA1(b56677e9f6c98f7b600043f5dcfef3a482ca7455) ) ROM_LOAD( "rr1wav1.10p", 0x100000*2, 0x100000,CRC(35f47c8e) SHA1(7c3f9e942f532af8008fbead2a96fee6084bcde6) ) ROM_LOAD( "rr1wav2.10n", 0x100000*1, 0x100000,CRC(3244cb59) SHA1(b3283b30cfafbfdcbc6d482ecc4ed6a47a527ca4) ) @@ -4373,7 +4373,7 @@ ROM_START( ridgeracb ) ROM_LOAD( "rr1potu0.5d", 0x80000*4, 0x80000,CRC(5e367f72) SHA1(5887f011379dce865fef238b402678a3d2033de9) ) ROM_LOAD( "rr1potu1.4d", 0x80000*5, 0x80000,CRC(31d92475) SHA1(51d3c0baa223e1bc16ea2950f2e085597528f870) ) - ROM_REGION( 0x800000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rr1wav0.10r", 0x100000*0, 0x100000,CRC(a8e85bde) SHA1(b56677e9f6c98f7b600043f5dcfef3a482ca7455) ) ROM_LOAD( "rr1wav1.10p", 0x100000*2, 0x100000,CRC(35f47c8e) SHA1(7c3f9e942f532af8008fbead2a96fee6084bcde6) ) ROM_LOAD( "rr1wav2.10n", 0x100000*1, 0x100000,CRC(3244cb59) SHA1(b3283b30cfafbfdcbc6d482ecc4ed6a47a527ca4) ) @@ -4424,7 +4424,7 @@ ROM_START( ridgeracj ) ROM_LOAD( "rr1potu0.5d", 0x80000*4, 0x80000,CRC(5e367f72) SHA1(5887f011379dce865fef238b402678a3d2033de9) ) ROM_LOAD( "rr1potu1.4d", 0x80000*5, 0x80000,CRC(31d92475) SHA1(51d3c0baa223e1bc16ea2950f2e085597528f870) ) - ROM_REGION( 0x800000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rr1wav0.10r", 0x100000*0, 0x100000,CRC(a8e85bde) SHA1(b56677e9f6c98f7b600043f5dcfef3a482ca7455) ) ROM_LOAD( "rr1wav1.10p", 0x100000*2, 0x100000,CRC(35f47c8e) SHA1(7c3f9e942f532af8008fbead2a96fee6084bcde6) ) ROM_LOAD( "rr1wav2.10n", 0x100000*1, 0x100000,CRC(3244cb59) SHA1(b3283b30cfafbfdcbc6d482ecc4ed6a47a527ca4) ) @@ -4475,7 +4475,7 @@ ROM_START( ridgerac3 ) ROM_LOAD( "rr1potu0.5d", 0x80000*4, 0x80000,CRC(5e367f72) SHA1(5887f011379dce865fef238b402678a3d2033de9) ) ROM_LOAD( "rr1potu1.4d", 0x80000*5, 0x80000,CRC(31d92475) SHA1(51d3c0baa223e1bc16ea2950f2e085597528f870) ) - ROM_REGION( 0x800000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rr1wav0.10r", 0x100000*0, 0x100000,CRC(a8e85bde) SHA1(b56677e9f6c98f7b600043f5dcfef3a482ca7455) ) ROM_LOAD( "rr1wav1.10p", 0x100000*2, 0x100000,CRC(35f47c8e) SHA1(7c3f9e942f532af8008fbead2a96fee6084bcde6) ) ROM_LOAD( "rr1wav2.10n", 0x100000*1, 0x100000,CRC(3244cb59) SHA1(b3283b30cfafbfdcbc6d482ecc4ed6a47a527ca4) ) @@ -4518,7 +4518,7 @@ ROM_START( rrf ) ROM_LOAD( "rrf2potu0.u0", 0x80000*4, 0x80000, CRC(86b3fe98) SHA1(f242d33f7488e233ccdc0b5d309c64510d7a622d) ) ROM_LOAD( "rrf2potu1.u1", 0x80000*5, 0x80000, CRC(e0c6ce3d) SHA1(cc559a2237ccb753cb1397fecba64733455a8c43) ) - ROM_REGION( 0x800000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "rrf1wave0.10r", 0x100000*0, 0x100000,CRC(a8e85bde) SHA1(b56677e9f6c98f7b600043f5dcfef3a482ca7455) ) ROM_LOAD( "rrf1wave1.10p", 0x100000*2, 0x100000,CRC(35f47c8e) SHA1(7c3f9e942f532af8008fbead2a96fee6084bcde6) ) ROM_LOAD( "rrf1wave2.10n", 0x100000*1, 0x100000,CRC(4ceeae12) SHA1(ae3a6583f8912bc784c7bc63d32448228cf217ba) ) // differs from normal sets @@ -4593,7 +4593,7 @@ ROM_START( timecris ) ROM_LOAD( "ts1ptru1.16f", 0x80000*7, 0x80000,CRC(993cde84) SHA1(c9cdcca1d60bcc41ad881c02dda9895563963ead) ) ROM_LOAD( "ts1ptru2.15f", 0x80000*8, 0x80000,CRC(7cb25c73) SHA1(616eab3ac238864a584394f7ec8736ece227974a) ) - ROM_REGION( 0xa00000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ts1wavea.2l", 0x000000, 0x400000, CRC(d1123301) SHA1(4bf1fd746fef4e6befa63c61a761971d729e1573) ) ROM_LOAD( "ts1waveb.1l", 0x800000, 0x200000, CRC(bf4d7272) SHA1(c7c7b3620e7b3176644b6784ee36e679c9e31cc1) ) ROM_END @@ -4646,7 +4646,7 @@ ROM_START( timecrisa ) ROM_LOAD( "ts1ptru1.16f", 0x80000*7, 0x80000,CRC(993cde84) SHA1(c9cdcca1d60bcc41ad881c02dda9895563963ead) ) ROM_LOAD( "ts1ptru2.15f", 0x80000*8, 0x80000,CRC(7cb25c73) SHA1(616eab3ac238864a584394f7ec8736ece227974a) ) - ROM_REGION( 0xa00000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "ts1wavea.2l", 0x000000, 0x400000, CRC(d1123301) SHA1(4bf1fd746fef4e6befa63c61a761971d729e1573) ) ROM_LOAD( "ts1waveb.1l", 0x800000, 0x200000, CRC(bf4d7272) SHA1(c7c7b3620e7b3176644b6784ee36e679c9e31cc1) ) ROM_END @@ -4703,7 +4703,7 @@ ROM_START( tokyowar ) ROM_LOAD( "tw1ptru2.15f", 0x500000, 0x080000, CRC(ceacb1c9) SHA1(b86cf576e16bbe26ad0d6d6df8bf28d0071c25e2) ) ROM_LOAD( "tw1ptru3.14f", 0x580000, 0x080000, CRC(939044c2) SHA1(f4c1c0a1c2f07ca7f784d59ef4162a2a6a8bbc43) ) - ROM_REGION( 0xa00000, "c352", 0 ) /* sound samples */ + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "tw1wavea.2l", 0x000000, 0x400000, CRC(ebce6366) SHA1(44ebe90ff3c7af5bebbf1baba3b7a2b1863daebb) ) ROM_END diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index e0ef212334d..250e86113f1 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -2307,7 +2307,7 @@ static WRITE16_HANDLER( sub_interrupt_main_w ) static ADDRESS_MAP_START( s23h8rwmap, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x080000, 0x08ffff) AM_READWRITE( sharedram_sub_r, sharedram_sub_w ) - AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE( "c352", c352_r, c352_w ) + AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE_MODERN("c352", c352_device, read, write) AM_RANGE(0x300000, 0x300003) AM_NOP // seems to be more inputs, maybe false leftover code from System 12? AM_RANGE(0x300010, 0x300011) AM_NOP AM_RANGE(0x300020, 0x300021) AM_WRITE( sub_interrupt_main_w ) @@ -2878,7 +2878,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 14745600) + MCFG_C352_ADD("c352", 14745600) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -2924,7 +2924,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 14745600) + MCFG_C352_ADD("c352", 14745600) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -2966,7 +2966,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_SOUND_ADD("c352", C352, 14745600) + MCFG_C352_ADD("c352", 14745600) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3320,8 +3320,8 @@ ROM_END ROM_START( timecrs2b ) ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */ - ROM_LOAD16_BYTE( "tss2verb.ic2", 0x000000, 0x200000, CRC(9f56a4df) SHA1(5ecb3cd93726ab6be02762853fd6a45266d6c0bc) ) - ROM_LOAD16_BYTE( "tss2verb.ic1", 0x000001, 0x200000, CRC(aa147f71) SHA1(e00267d1a8286942c83dc35289ad65bd3cb6d8db) ) + ROM_LOAD16_BYTE( "tss2verb.ic2", 0x000000, 0x200000, BAD_DUMP CRC(9f56a4df) SHA1(5ecb3cd93726ab6be02762853fd6a45266d6c0bc) ) + ROM_LOAD16_BYTE( "tss2verb.ic1", 0x000001, 0x200000, BAD_DUMP CRC(aa147f71) SHA1(e00267d1a8286942c83dc35289ad65bd3cb6d8db) ) ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ ROM_LOAD16_WORD_SWAP( "tss3verb.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) @@ -3667,7 +3667,7 @@ ROM_START( gunwars ) ROM_LOAD32_WORD_SWAP( "gm1pt1h.5a", 0x800000, 0x400000, CRC(5f6cebab) SHA1(95bd30d30ea25509b66a107fb255d0af1e6a357e) ) ROM_LOAD32_WORD_SWAP( "gm1pt1l.5c", 0x800002, 0x400000, CRC(f44c149f) SHA1(9f995de02ea6ac35ccbabbba5bb473a10e1ec667) ) - ROM_REGION( 0x800000, "c352", 0 ) /* C352 PCM samples */ + ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */ ROM_LOAD( "gm1wave.2c", 0x000000, 0x800000, CRC(7d5c79a4) SHA1(b800a46bcca10cb0d0d9e0acfa68af63ae64dcaf) ) ROM_REGION( 0x800000, "dups", 0 ) /* duplicate roms */ |
