From 4ae2e0f48715fe4192a7d402955775856dab26f4 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Wed, 6 May 2020 15:51:18 -0400 Subject: [PATCH] Revert "c140.cpp updates [cam900, superctr]" This reverts commit 5852df508676e7976234956434cad2905a7cf8e5. --- src/devices/sound/c140.cpp | 665 ++++++++++++------------------ src/devices/sound/c140.h | 94 ++--- src/mame/drivers/gal3.cpp | 2 +- src/mame/drivers/namcona1.cpp | 15 +- src/mame/drivers/namcos2.cpp | 356 ++++++++-------- src/mame/drivers/namcos21.cpp | 40 +- src/mame/drivers/namcos21_c67.cpp | 88 ++-- src/mame/drivers/namcos21_de.cpp | 32 +- src/mame/drivers/vgmplay.cpp | 107 +---- src/mame/includes/namcona1.h | 6 +- src/mame/includes/namcos2.h | 4 - src/mame/machine/namcos2.cpp | 31 -- 12 files changed, 583 insertions(+), 857 deletions(-) diff --git a/src/devices/sound/c140.cpp b/src/devices/sound/c140.cpp index 8f55162bb88..ca3bdc90977 100644 --- a/src/devices/sound/c140.cpp +++ b/src/devices/sound/c140.cpp @@ -1,21 +1,16 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont /* -c140.cpp +C140.c Simulator based on AMUSE sources. The C140 sound chip is used by Namco System 2 and System 21 The 219 ASIC (which incorporates a modified C140) is used by Namco NA-1 and NA-2 This chip controls 24 channels (C140) or 16 (219) of PCM. 16 bytes are associated with each channel. -Channels can be 8 bit compressed PCM, or 12 bit signed PCM. +Channels can be 8 bit signed PCM, or 12 bit signed PCM. -TODO: -- What does the INT0 pin do? Normally Namco tied it to VOL0 (with VOL1 = VCC). -- Acknowledge A9 bit (9th address bit) of host interface -- Verify data bus bits of C219 -- Verify C219 LFSR algorithm (same as c352.cpp?) -- Verify unknown mode bits (0x40 for C140, 0x02 for C219) +TODO: What does the INT0 pin do? Normally Namco tied it to VOL0 (with VOL1 = VCC). -------------- @@ -42,44 +37,43 @@ TODO: 2000.06.26 CAB fixed compressed pcm playback 2002.07.20 R. Belmont added support for multiple banking types 2006.01.08 R. Belmont added support for NA-1/2 "219" derivative - 2020.05.06 cam900 Implement some features from QuattroPlay sources, by superctr */ #include "emu.h" #include "c140.h" -#include struct voice_registers { - u8 volume_right; - u8 volume_left; - u8 frequency_msb; - u8 frequency_lsb; - u8 bank; - u8 mode; - u8 start_msb; - u8 start_lsb; - u8 end_msb; - u8 end_lsb; - u8 loop_msb; - u8 loop_lsb; - u8 reserved[4]; + uint8_t volume_right; + uint8_t volume_left; + uint8_t frequency_msb; + uint8_t frequency_lsb; + uint8_t bank; + uint8_t mode; + uint8_t start_msb; + uint8_t start_lsb; + uint8_t end_msb; + uint8_t end_lsb; + uint8_t loop_msb; + uint8_t loop_lsb; + uint8_t reserved[4]; }; // device type definition DEFINE_DEVICE_TYPE(C140, c140_device, "c140", "Namco C140") -DEFINE_DEVICE_TYPE(C219, c219_device, "c219", "Namco C219") //************************************************************************** // LIVE DEVICE //************************************************************************** -static inline int limit(s32 in) +static inline int limit(int32_t in) { - return std::max(-0x7fff, std::min(0x8000, in)); + if(in>0x7fff) return 0x7fff; + else if(in<-0x8000) return -0x8000; + return in; } @@ -88,29 +82,19 @@ static inline int limit(s32 in) //------------------------------------------------- c140_device::c140_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c140_device(mconfig, C140, tag, owner, clock) -{ -} - -c140_device::c140_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, tag, owner, clock) + : device_t(mconfig, C140, tag, owner, clock) , device_sound_interface(mconfig, *this) - , device_rom_interface(mconfig, *this, 25, ENDIANNESS_BIG, 16) // Verified from schematics (24 bit address, 12(16? for C219) bit data) + , device_rom_interface(mconfig, *this, 21) , m_int1_callback(*this) , m_sample_rate(0) , m_stream(nullptr) + , m_banking_type(C140_TYPE::SYSTEM2) , m_mixer_buffer_left(nullptr) , m_mixer_buffer_right(nullptr) , m_baserate(0) { - std::fill(std::begin(m_REG), std::end(m_REG), 0); - std::fill(std::begin(m_pcmtbl), std::end(m_pcmtbl), 0); -} - -c219_device::c219_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : c140_device(mconfig, C219, tag, owner, clock) -{ - // TODO: unknown address bus bits + memset(m_REG, 0, sizeof(uint8_t)*0x200); + memset(m_pcmtbl, 0, sizeof(int16_t)*8); } @@ -127,77 +111,47 @@ void c140_device::device_start() m_stream = stream_alloc(0, 2, m_sample_rate); - // make decompress pcm table (Verified from Wii Virtual Console Arcade Starblade) - for (int i = 0; i < 256; i++) + /* make decompress pcm table */ //2000.06.26 CAB + int32_t segbase = 0; + for(int i = 0; i < 8; i++) { - int j = (s8)i; - s8 s1 = j & 7; - s8 s2 = abs(j >> 3) & 31; - - m_pcmtbl[i] = 0x80 << s1 & 0xff00; - m_pcmtbl[i] += s2 << (s1 ? s1 + 3 : 4); - - if (j < 0) - m_pcmtbl[i] = -m_pcmtbl[i]; + m_pcmtbl[i]=segbase; //segment base value + segbase += 16<(m_sample_rate); - m_mixer_buffer_right = std::make_unique(m_sample_rate); + m_mixer_buffer_left = std::make_unique(m_sample_rate); + m_mixer_buffer_right = std::make_unique(m_sample_rate); save_item(NAME(m_REG)); - save_item(STRUCT_MEMBER(m_voi, ptoffset)); - save_item(STRUCT_MEMBER(m_voi, pos)); - save_item(STRUCT_MEMBER(m_voi, key)); - save_item(STRUCT_MEMBER(m_voi, lastdt)); - save_item(STRUCT_MEMBER(m_voi, prevdt)); - save_item(STRUCT_MEMBER(m_voi, dltdt)); - save_item(STRUCT_MEMBER(m_voi, rvol)); - save_item(STRUCT_MEMBER(m_voi, lvol)); - save_item(STRUCT_MEMBER(m_voi, frequency)); - save_item(STRUCT_MEMBER(m_voi, bank)); - save_item(STRUCT_MEMBER(m_voi, mode)); - save_item(STRUCT_MEMBER(m_voi, sample_start)); - save_item(STRUCT_MEMBER(m_voi, sample_end)); - save_item(STRUCT_MEMBER(m_voi, sample_loop)); -} - -void c219_device::device_start() -{ - c140_device::device_start(); - // generate mulaw table (Verified from Wii Virtual Console Arcade Knuckle Heads) - // same as c352.cpp - int j = 0; - for (int i = 0; i < 128; i++) + for (int i = 0; i < MAX_VOICE; i++) { - m_pcmtbl[i] = j << 5; - if (i < 16) - j += 1; - else if (i < 24) - j += 2; - else if (i < 48) - j += 4; - else if (i < 100) - j += 8; - else - j += 16; + save_item(NAME(m_voi[i].ptoffset), i); + save_item(NAME(m_voi[i].pos), i); + save_item(NAME(m_voi[i].key), i); + save_item(NAME(m_voi[i].lastdt), i); + save_item(NAME(m_voi[i].prevdt), i); + save_item(NAME(m_voi[i].dltdt), i); + save_item(NAME(m_voi[i].rvol), i); + save_item(NAME(m_voi[i].lvol), i); + save_item(NAME(m_voi[i].frequency), i); + save_item(NAME(m_voi[i].bank), i); + save_item(NAME(m_voi[i].mode), i); + save_item(NAME(m_voi[i].sample_start), i); + save_item(NAME(m_voi[i].sample_end), i); + save_item(NAME(m_voi[i].sample_loop), i); } - for (int i = 0; i < 128; i++) - m_pcmtbl[i + 128] = (~m_pcmtbl[i]) & 0xffe0; - - m_lfsr = 0x1234; - - save_item(NAME(m_lfsr)); } + void c140_device::device_clock_changed() { m_sample_rate = m_baserate = clock(); @@ -205,8 +159,8 @@ void c140_device::device_clock_changed() m_stream->set_sample_rate(m_sample_rate); /* allocate a pair of buffers to mix into - 1 second's worth should be more than enough */ - m_mixer_buffer_left = std::make_unique(m_sample_rate); - m_mixer_buffer_right = std::make_unique(m_sample_rate);; + m_mixer_buffer_left = std::make_unique(m_sample_rate); + m_mixer_buffer_right = std::make_unique(m_sample_rate);; } @@ -222,237 +176,181 @@ void c140_device::rom_bank_updated() void c140_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { - s32 dt; + int i,j; - float pbase = (float)m_baserate * 2.0f / (float)m_sample_rate; + int32_t rvol,lvol; + int32_t dt; + int32_t sdt; + int32_t st,ed,sz; - s16 *lmix, *rmix; + long sampleData; + int32_t frequency,delta,offset,pos; + int32_t cnt, voicecnt; + int32_t lastdt,prevdt,dltdt; + float pbase=(float)m_baserate*2.0f / (float)m_sample_rate; - if (samples > m_sample_rate) samples = m_sample_rate; + int16_t *lmix, *rmix; + + if(samples>m_sample_rate) samples=m_sample_rate; /* zap the contents of the mixer buffer */ - std::fill_n(&m_mixer_buffer_left[0], samples, 0); - std::fill_n(&m_mixer_buffer_right[0], samples, 0); + memset(m_mixer_buffer_left.get(), 0, samples * sizeof(int16_t)); + memset(m_mixer_buffer_right.get(), 0, samples * sizeof(int16_t)); + + /* get the number of voices to update */ + voicecnt = (m_banking_type == C140_TYPE::ASIC219) ? 16 : 24; //--- audio update - for (int i = 0; i < 24; i++) + for( i=0;ikey) + if( v->key ) { - const u16 frequency = (vreg->frequency_msb << 8) | vreg->frequency_lsb; + frequency= vreg->frequency_msb*256 + vreg->frequency_lsb; /* Abort voice if no frequency value set */ - if (frequency == 0) continue; + if(frequency==0) continue; /* Delta = frequency * ((8MHz/374)*2 / sample rate) */ - const int delta = (int)((float)frequency * pbase); + delta=(long)((float)frequency * pbase); /* Calculate left/right channel volumes */ - const int lvol = (vreg->volume_left * 32) / MAX_VOICE; //32ch -> 24ch - const int rvol = (vreg->volume_right * 32) / MAX_VOICE; + lvol=(vreg->volume_left*32)/MAX_VOICE; //32ch -> 24ch + rvol=(vreg->volume_right*32)/MAX_VOICE; /* Set mixer outputs base pointers */ lmix = m_mixer_buffer_left.get(); rmix = m_mixer_buffer_right.get(); /* Retrieve sample start/end and calculate size */ - const int st = v->sample_start; - const int ed = v->sample_end; - const int sz = ed - st; + st=v->sample_start; + ed=v->sample_end; + sz=ed-st; /* Retrieve base pointer to the sample data */ - const int sampleData = find_sample(st, v->bank, i); + sampleData = find_sample(st, v->bank, i); /* Fetch back previous data pointers */ - int offset = v->ptoffset; - int pos = v->pos; - s32 lastdt = v->lastdt; - s32 prevdt = v->prevdt; - s32 dltdt = v->dltdt; + offset=v->ptoffset; + pos=v->pos; + lastdt=v->lastdt; + prevdt=v->prevdt; + dltdt=v->dltdt; - /* linear or compressed 12bit signed PCM */ - for (int j = 0; j < samples; j++) + /* Switch on data type - compressed PCM is only for C140 */ + if ((v->mode&8) && (m_banking_type != C140_TYPE::ASIC219)) { - offset += delta; - const int cnt = (offset >> 16) & 0x7fff; - offset &= 0xffff; - pos += cnt; - /* Check for the end of the sample */ - if (pos >= sz) + //compressed PCM (maybe correct...) + /* Loop for enough to fill sample buffer as requested */ + for(j=0;j>16)&0x7fff; + offset &= 0xffff; + pos+=cnt; + //for(;cnt>0;cnt--) { - pos = (v->sample_loop - st); - } - else - { - v->key = 0; - break; + /* Check for the end of the sample */ + if(pos >= sz) + { + /* Check if its a looping sample, either stop or loop */ + if(v->mode&0x10) + { + pos = (v->sample_loop - st); + } + else + { + v->key=0; + break; + } + } + + /* Read the chosen sample byte */ + dt = (int8_t) read_byte(sampleData + pos); + + /* decompress to 13bit range */ //2000.06.26 CAB + sdt=dt>>3; //signed + if(sdt<0) sdt = (sdt<<(dt&7)) - m_pcmtbl[dt&7]; + else sdt = (sdt<<(dt&7)) + m_pcmtbl[dt&7]; + + prevdt=lastdt; + lastdt=sdt; + dltdt=(lastdt - prevdt); } + + /* Caclulate the sample value */ + dt=((dltdt*offset)>>16)+prevdt; + + /* Write the data to the sample buffers */ + *lmix++ +=(dt*lvol)>>(5+5); + *rmix++ +=(dt*rvol)>>(5+5); } - - if (cnt) - { - prevdt = lastdt; - lastdt = ((ch_mulaw(v)) ? m_pcmtbl[read_byte((sampleData + pos) << 1)] : s16(read_word((sampleData + pos) << 1) & 0xfff0)) >> 4; // 12bit - dltdt = (lastdt - prevdt); - } - - /* Caclulate the sample value */ - dt = ((dltdt * offset) >> 16) + prevdt; - - /* Write the data to the sample buffers */ - *lmix++ += (dt * lvol) >> (5 + 4); - *rmix++ += (dt * rvol) >> (5 + 4); } - - /* Save positional data for next callback */ - v->ptoffset = offset; - v->pos = pos; - v->lastdt = lastdt; - v->prevdt = prevdt; - v->dltdt = dltdt; - } - } - - /* render to MAME's stream buffer */ - lmix = m_mixer_buffer_left.get(); - rmix = m_mixer_buffer_right.get(); - { - stream_sample_t *dest1 = outputs[0]; - stream_sample_t *dest2 = outputs[1]; - for (int i = 0; i < samples; i++) - { - s32 val; - - val = 8 * (*lmix++); - *dest1++ = limit(val); - val = 8 * (*rmix++); - *dest2++ = limit(val); - } - } -} - -void c219_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ - s32 dt; - - float pbase = (float)m_baserate * 2.0f / (float)m_sample_rate; - - s16 *lmix, *rmix; - - if (samples > m_sample_rate) samples = m_sample_rate; - - /* zap the contents of the mixer buffer */ - std::fill_n(&m_mixer_buffer_left[0], samples, 0); - std::fill_n(&m_mixer_buffer_right[0], samples, 0); - - //--- audio update - for (int i = 0; i < 16; i++) - { - C140_VOICE *v = &m_voi[i]; - const struct voice_registers *vreg = (struct voice_registers *)&m_REG[i * 16]; - - if (v->key) - { - const u16 frequency = (vreg->frequency_msb << 8) | vreg->frequency_lsb; - - /* Abort voice if no frequency value set */ - if (frequency == 0) continue; - - /* Delta = frequency * ((8MHz/374)*2 / sample rate) */ - const int delta = (int)((float)frequency * pbase); - - /* Calculate left/right channel volumes */ - const int lvol = (vreg->volume_left * 32) / MAX_VOICE; //32ch -> 24ch - const int rvol = (vreg->volume_right * 32) / MAX_VOICE; - - /* Set mixer outputs base pointers */ - lmix = m_mixer_buffer_left.get(); - rmix = m_mixer_buffer_right.get(); - - /* Retrieve sample start/end and calculate size */ - const int st = v->sample_start; - const int ed = v->sample_end; - const int sz = ed - st; - - /* Retrieve base pointer to the sample data */ - const int sampleData = find_sample(st, v->bank, i); - - /* Fetch back previous data pointers */ - int offset = v->ptoffset; - int pos = v->pos; - s32 lastdt = v->lastdt; - s32 prevdt = v->prevdt; - s32 dltdt = v->dltdt; - - /* linear or compressed 8bit signed PCM */ - for (int j = 0; j < samples; j++) + else { - offset += delta; - const int cnt = (offset >> 16) & 0x7fff; - offset &= 0xffff; - pos += cnt; - /* Check for the end of the sample */ - if (pos >= sz) + /* linear 8bit signed PCM */ + for(j=0;j>16)&0x7fff; + offset &= 0xffff; + pos += cnt; + /* Check for the end of the sample */ + if(pos >= sz) { - pos = (v->sample_loop - st); - } - else - { - v->key = 0; - break; - } - } - - const int shift = ch_noise(v) ? 8 : 3; - if (cnt) - { - prevdt = lastdt; - - if (ch_noise(v)) // noise - { - m_lfsr = (m_lfsr >> 1) ^ ((-(m_lfsr & 1)) & 0xfff6); - lastdt = s16(m_lfsr); - } - else - { - lastdt = s8(read_byte(sampleData + pos)); - // 11 bit mulaw - if (ch_mulaw(v)) - lastdt = m_pcmtbl[lastdt & 0xff] >> 5; + /* Check if its a looping sample, either stop or loop */ + if( v->mode&0x10 ) + { + pos = (v->sample_loop - st); + } else - lastdt <<= 3; // scale as 11bit + { + v->key=0; + break; + } } - // Sign flip - if (ch_inv_sign(v)) - lastdt = -lastdt; + if( cnt ) + { + prevdt=lastdt; - dltdt = (lastdt - prevdt); + if (m_banking_type == C140_TYPE::ASIC219) + { + lastdt = (int8_t) read_byte(sampleData + BYTE_XOR_BE(pos)); + + // Sign + magnitude format + if ((v->mode & 0x01) && (lastdt & 0x80)) + lastdt = -(lastdt & 0x7f); + + // Sign flip + if (v->mode & 0x40) + lastdt = -lastdt; + } + else + { + lastdt = (int8_t) read_byte(sampleData + pos); + } + + dltdt = (lastdt - prevdt); + } + + /* Caclulate the sample value */ + dt=((dltdt*offset)>>16)+prevdt; + + /* Write the data to the sample buffers */ + *lmix++ +=(dt*lvol)>>5; + *rmix++ +=(dt*rvol)>>5; } - - /* Caclulate the sample value */ - dt = ((dltdt * offset) >> 16) + prevdt; - - /* Write the data to the sample buffers */ - *lmix++ += ((ch_inv_lout(v)) ? -(dt * lvol) : (dt * lvol)) >> (5 + shift); - *rmix++ += (dt * rvol) >> (5 + shift); } /* Save positional data for next callback */ - v->ptoffset = offset; - v->pos = pos; - v->lastdt = lastdt; - v->prevdt = prevdt; - v->dltdt = dltdt; + v->ptoffset=offset; + v->pos=pos; + v->lastdt=lastdt; + v->prevdt=prevdt; + v->dltdt=dltdt; } } @@ -462,9 +360,9 @@ void c219_device::sound_stream_update(sound_stream &stream, stream_sample_t **in { stream_sample_t *dest1 = outputs[0]; stream_sample_t *dest2 = outputs[1]; - for (int i = 0; i < samples; i++) + for (i = 0; i < samples; i++) { - s32 val; + int32_t val; val = 8 * (*lmix++); *dest1++ = limit(val); @@ -477,7 +375,7 @@ void c219_device::sound_stream_update(sound_stream &stream, stream_sample_t **in u8 c140_device::c140_r(offs_t offset) { - offset &= 0x1ff; + offset&=0x1ff; return m_REG[offset]; } @@ -486,38 +384,58 @@ void c140_device::c140_w(offs_t offset, u8 data) { m_stream->update(); - offset &= 0x1ff; + offset&=0x1ff; - m_REG[offset] = data; - if (offset < 0x180) + // mirror the bank registers on the 219, fixes bkrtmaq (and probably xday2 based on notes in the HLE) + if ((offset >= 0x1f8) && BIT(offset, 0) && (m_banking_type == C140_TYPE::ASIC219)) { - const u8 ch = offset >> 4; - C140_VOICE *v = &m_voi[ch]; + offset -= 8; + } - if ((offset & 0xf) == 0x5) + m_REG[offset]=data; + if( offset<0x180 ) + { + C140_VOICE *v = &m_voi[offset>>4]; + + if( (offset&0xf)==0x5 ) { - if (data & 0x80) + if( data&0x80 ) { - const struct voice_registers *vreg = (struct voice_registers *) &m_REG[offset & 0x1f0]; - v->key = 1; - v->ptoffset = 0; - v->pos = 0; - v->lastdt = 0; - v->prevdt = 0; - v->dltdt = 0; + const struct voice_registers *vreg = (struct voice_registers *) &m_REG[offset&0x1f0]; + v->key=1; + v->ptoffset=0; + v->pos=0; + v->lastdt=0; + v->prevdt=0; + v->dltdt=0; v->bank = vreg->bank; v->mode = data; - const u32 loop = (vreg->loop_msb << 8) + vreg->loop_lsb; - const u32 start = (vreg->start_msb << 8) + vreg->start_lsb; - const u32 end = (vreg->end_msb << 8) + vreg->end_lsb; - v->sample_loop = loop; - v->sample_start = start; - v->sample_end = end; + // on the 219 asic, addresses are in words + if (m_banking_type == C140_TYPE::ASIC219) + { + v->sample_loop = (vreg->loop_msb*256 + vreg->loop_lsb)*2; + v->sample_start = (vreg->start_msb*256 + vreg->start_lsb)*2; + v->sample_end = (vreg->end_msb*256 + vreg->end_lsb)*2; + + #if 0 + logerror("219: play v %d mode %02x start %x loop %x end %x\n", + offset>>4, v->mode, + find_sample(v->sample_start, v->bank, offset>>4), + find_sample(v->sample_loop, v->bank, offset>>4), + find_sample(v->sample_end, v->bank, offset>>4)); + #endif + } + else + { + v->sample_loop = vreg->loop_msb*256 + vreg->loop_lsb; + v->sample_start = vreg->start_msb*256 + vreg->start_lsb; + v->sample_end = vreg->end_msb*256 + vreg->end_lsb; + } } else { - v->key = 0; + v->key=0; } } } @@ -548,108 +466,61 @@ void c140_device::c140_w(offs_t offset, u8 data) } -u8 c219_device::c219_r(offs_t offset) -{ - offset &= 0x1ff; - return m_REG[offset]; -} - - -void c219_device::c219_w(offs_t offset, u8 data) -{ - m_stream->update(); - - offset &= 0x1ff; - - // mirror the bank registers on the 219, fixes bkrtmaq (and probably xday2 based on notes in the HLE) - if ((offset >= 0x1f8) && BIT(offset, 0)) - { - offset -= 8; - } - - m_REG[offset] = data; - if (offset < 0x100) // only 16 voices - { - const u8 ch = offset >> 4; - C140_VOICE *v = &m_voi[ch]; - - if ((offset & 0xf) == 0x5) - { - if (data & 0x80) - { - const struct voice_registers *vreg = (struct voice_registers *) &m_REG[offset & 0x1f0]; - v->key = 1; - v->ptoffset = 0; - v->pos = 0; - v->lastdt = 0; - v->prevdt = 0; - v->dltdt = 0; - v->bank = vreg->bank; - v->mode = data; - - const u32 loop = (vreg->loop_msb << 8) + vreg->loop_lsb; - const u32 start = (vreg->start_msb << 8) + vreg->start_lsb; - const u32 end = (vreg->end_msb << 8) + vreg->end_lsb; - // on the 219 asic, addresses are in words - v->sample_loop = loop << 1; - v->sample_start = start << 1; - v->sample_end = end << 1; - - #if 0 - logerror("219: play v %d mode %02x start %x loop %x end %x\n", - ch, v->mode, - find_sample(v->sample_start, v->bank, ch), - find_sample(v->sample_loop, v->bank, ch), - find_sample(v->sample_end, v->bank, ch)); - #endif - } - else - { - v->key = 0; - } - } - } - // TODO: No interrupt/timers? -} - TIMER_CALLBACK_MEMBER(c140_device::int1_on) { m_int1_callback(ASSERT_LINE); } -void c140_device::init_voice(C140_VOICE *v) +void c140_device::init_voice( C140_VOICE *v ) { - v->key = 0; - v->ptoffset = 0; - v->rvol = 0; - v->lvol = 0; - v->frequency = 0; - v->bank = 0; - v->mode = 0; - v->sample_start = 0; - v->sample_end = 0; - v->sample_loop = 0; + v->key=0; + v->ptoffset=0; + v->rvol=0; + v->lvol=0; + v->frequency=0; + v->bank=0; + v->mode=0; + v->sample_start=0; + v->sample_end=0; + v->sample_loop=0; } /* find_sample: compute the actual address of a sample given it's - address and banking registers, as well as the chip type. + address and banking registers, as well as the board type. + + I suspect in "real life" this works like the Sega MultiPCM where the banking + is done by a small PAL or GAL external to the sound chip, which can be switched + per-game or at least per-PCB revision as addressing range needs grow. */ -int c140_device::find_sample(int adrs, int bank, int voice) +long c140_device::find_sample(long adrs, long bank, int voice) { - adrs = (bank << 16) + adrs; + long newadr = 0; - return adrs; -} - -int c219_device::find_sample(int adrs, int bank, int voice) -{ - static const s16 asic219banks[4] = { 0x1f7, 0x1f1, 0x1f3, 0x1f5 }; - - adrs = (bank << 16) + adrs; - - // ASIC219's banking is fairly simple - return ((m_REG[asic219banks[voice / 4]] & 0x3) * 0x20000) + adrs; + static const int16_t asic219banks[4] = { 0x1f7, 0x1f1, 0x1f3, 0x1f5 }; + + adrs=(bank<<16)+adrs; + + switch (m_banking_type) + { + case C140_TYPE::SYSTEM2: + // System 2 banking + newadr = ((adrs&0x200000)>>2)|(adrs&0x7ffff); + break; + + case C140_TYPE::SYSTEM21: + // System 21 banking. + // similar to System 2's. + newadr = ((adrs&0x300000)>>1)+(adrs&0x7ffff); + break; + + case C140_TYPE::ASIC219: + // ASIC219's banking is fairly simple + newadr = ((m_REG[asic219banks[voice/4]]&0x3) * 0x20000) + adrs; + break; + } + + return (newadr); } diff --git a/src/devices/sound/c140.h b/src/devices/sound/c140.h index 1d3279730ee..4644e8cc62c 100644 --- a/src/devices/sound/c140.h +++ b/src/devices/sound/c140.h @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:R. Belmont -/* c140.h */ +/* C140.h */ #ifndef MAME_SOUND_C140_H #define MAME_SOUND_C140_H @@ -20,21 +20,23 @@ class c140_device : public device_t, public device_rom_interface { public: + enum class C140_TYPE + { + SYSTEM2, + SYSTEM21, + ASIC219 + }; + c140_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration + void set_bank_type(C140_TYPE bank) { m_banking_type = bank; } auto int1_callback() { return m_int1_callback.bind(); } u8 c140_r(offs_t offset); void c140_w(offs_t offset, u8 data); - // little endian: Swap even and odd word - u8 c140_le_r(offs_t offset) { return c140_r(offset ^ 1); } - void c140_le_w(offs_t offset, u8 data) { c140_w(offset ^ 1, data);} - protected: - c140_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides virtual void device_start() override; virtual void device_clock_changed() override; @@ -44,38 +46,34 @@ protected: // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - virtual int find_sample(int adrs, int bank, int voice); - +private: static constexpr unsigned MAX_VOICE = 24; struct C140_VOICE { C140_VOICE() { } - s32 ptoffset = 0; - s32 pos = 0; - s32 key = 0; + int32_t ptoffset = 0; + int32_t pos = 0; + int32_t key = 0; //--work - s32 lastdt = 0; - s32 prevdt = 0; - s32 dltdt = 0; + int32_t lastdt = 0; + int32_t prevdt = 0; + int32_t dltdt = 0; //--reg - s32 rvol = 0; - s32 lvol = 0; - s32 frequency = 0; - s32 bank = 0; - s32 mode = 0; + int32_t rvol = 0; + int32_t lvol = 0; + int32_t frequency = 0; + int32_t bank = 0; + int32_t mode = 0; - s32 sample_start = 0; - s32 sample_end = 0; - s32 sample_loop = 0; + int32_t sample_start = 0; + int32_t sample_end = 0; + int32_t sample_loop = 0; }; - void init_voice(C140_VOICE *v); - const inline bool ch_looped(C140_VOICE *v) { return BIT(v->mode, 4); } // shared as c140 and c219 - - virtual const inline bool ch_mulaw(C140_VOICE *v) { return BIT(v->mode, 3); } - // bit 6 used, unknown + void init_voice( C140_VOICE *v ); + long find_sample(long adrs, long bank, int voice); TIMER_CALLBACK_MEMBER(int1_on); @@ -83,51 +81,21 @@ protected: int m_sample_rate; sound_stream *m_stream; + C140_TYPE m_banking_type; /* internal buffers */ - std::unique_ptr m_mixer_buffer_left; - std::unique_ptr m_mixer_buffer_right; + std::unique_ptr m_mixer_buffer_left; + std::unique_ptr m_mixer_buffer_right; int m_baserate; - u8 m_REG[0x200]; + uint8_t m_REG[0x200]; - s16 m_pcmtbl[256]; //2000.06.26 CAB + int16_t m_pcmtbl[8]; //2000.06.26 CAB C140_VOICE m_voi[MAX_VOICE]; emu_timer *m_int1_timer; }; -class c219_device : public c140_device -{ -public: - c219_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - u8 c219_r(offs_t offset); - void c219_w(offs_t offset, u8 data); - - // little endian: Swap even and odd word - u8 c219_le_r(offs_t offset) { return c219_r(offset ^ 1); } - void c219_le_w(offs_t offset, u8 data) { c219_w(offset ^ 1, data);} - -protected: - // device-level overrides - virtual void device_start() override; - - // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; - - virtual int find_sample(int adrs, int bank, int voice) override; - - virtual const inline bool ch_mulaw(C140_VOICE *v) override { return BIT(v->mode, 0); } -private: - // bit 1 used, unknown - const inline bool ch_noise(C140_VOICE *v) { return BIT(v->mode, 2); } - const inline bool ch_inv_lout(C140_VOICE *v) { return BIT(v->mode, 3); } - const inline bool ch_inv_sign(C140_VOICE *v) { return BIT(v->mode, 6); } - u16 m_lfsr; -}; - DECLARE_DEVICE_TYPE(C140, c140_device) -DECLARE_DEVICE_TYPE(C219, c219_device) #endif // MAME_SOUND_C140_H diff --git a/src/mame/drivers/gal3.cpp b/src/mame/drivers/gal3.cpp index 1a666d8b586..c9e7123c673 100644 --- a/src/mame/drivers/gal3.cpp +++ b/src/mame/drivers/gal3.cpp @@ -888,7 +888,7 @@ ROM_START( gal3 ) ROM_LOAD( "glc1-snd-voi8.10g", 0x000000, 0x80000, CRC(bba0c15b) SHA1(b0abc22fd1ae8a9970ad45d9ebdb38e6b06033a7) ) ROM_LOAD( "glc1-snd-voi9.11g", 0x080000, 0x80000, CRC(dd1b1ee4) SHA1(b69af15acaa9c3d79d7758adc8722ff5c1129b76) ) ROM_LOAD( "glc1-snd-voi10.13g",0x100000, 0x80000, CRC(1c1dedf4) SHA1(b6b9dac68103ff2206d731d409a557a71afd98f7) ) - ROM_LOAD( "glc1-snd-voi11.14g",0x180000, 0x80000, CRC(559e2a8a) SHA1(9a2f28305c6073a0b9b80a5d9617cc25a921e9d0) ) + ROM_LOAD( "glc1-snd-voi11.14g",0x180000, 0x80000, CRC(559e2a8a) SHA1(9a2f28305c6073a0b9b80a5d9617cc25a921e9d0)) /********* Laserdiscs *********/ /* used 2 apparently, no idea what they connect to */ diff --git a/src/mame/drivers/namcona1.cpp b/src/mame/drivers/namcona1.cpp index a6583d4e7a0..ff49f38dd44 100644 --- a/src/mame/drivers/namcona1.cpp +++ b/src/mame/drivers/namcona1.cpp @@ -592,7 +592,7 @@ void namcona1_state::namcona1_main_map(address_map &map) map(0xfff000, 0xffffff).ram().share("spriteram"); /* spriteram */ } -void namcona1_state::namcona1_c219_map(address_map &map) +void namcona1_state::namcona1_c140_map(address_map &map) { map(0x000000, 0x07ffff).ram().share("workram"); } @@ -649,7 +649,9 @@ void namcona1_state::na1mcu_shared_w(offs_t offset, u16 data, u16 mem_mask) void namcona1_state::namcona1_mcu_map(address_map &map) { map(0x000800, 0x000fff).rw(FUNC(namcona1_state::mcu_mailbox_r), FUNC(namcona1_state::mcu_mailbox_w_mcu)); // "Mailslot" communications ports - map(0x001000, 0x0011ff).mirror(0x000e00).rw(m_c219, FUNC(c219_device::c219_le_r), FUNC(c219_device::c219_le_w)); // C140-alike sound chip + map(0x001000, 0x001fff).lrw8( + NAME([this](offs_t offset) { return m_c140->c140_r(offset ^ 1)/* need ^ 1 because endian issue */; }), + NAME([this](offs_t offset, u8 data) { m_c140->c140_w(offset ^ 1, data); })); // C140-alike sound chip map(0x002000, 0x002fff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // mirror of first page of shared work RAM map(0x003000, 0x00afff).ram(); // there is a 32k RAM chip according to CGFM map(0x200000, 0x27ffff).rw(FUNC(namcona1_state::na1mcu_shared_r), FUNC(namcona1_state::na1mcu_shared_w)); // shared work RAM @@ -1008,10 +1010,11 @@ void namcona1_state::namcona_base(machine_config &config) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - C219(config, m_c219, 44100); - m_c219->set_addrmap(0, &namcona1_state::namcona1_c219_map); - m_c219->add_route(0, "rspeaker", 1.00); - m_c219->add_route(1, "lspeaker", 1.00); + C140(config, m_c140, 44100); + m_c140->set_bank_type(c140_device::C140_TYPE::ASIC219); + m_c140->set_addrmap(0, &namcona1_state::namcona1_c140_map); + m_c140->add_route(0, "rspeaker", 1.00); + m_c140->add_route(1, "lspeaker", 1.00); } void namcona1_state::namcona1(machine_config &config) diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp index 59cbfc3ecbd..c5a5cab08e8 100644 --- a/src/mame/drivers/namcos2.cpp +++ b/src/mame/drivers/namcos2.cpp @@ -864,9 +864,9 @@ void namcos2_state::sound_default_am(address_map &map) { map(0x0000, 0x3fff).bankr("audiobank"); /* banked */ map(0x4000, 0x4001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x5000, 0x51ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); - map(0x6000, 0x61ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); // mirrored - map(0x7000, 0x77ff).mirror(0x0800).rw(FUNC(namcos2_state::dpram_byte_r), FUNC(namcos2_state::dpram_byte_w)).share("dpram"); + map(0x5000, 0x6fff).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); + map(0x7000, 0x77ff).rw(FUNC(namcos2_state::dpram_byte_r), FUNC(namcos2_state::dpram_byte_w)).share("dpram"); + map(0x7800, 0x7fff).rw(FUNC(namcos2_state::dpram_byte_r), FUNC(namcos2_state::dpram_byte_w)); /* mirror */ map(0x8000, 0x9fff).ram(); map(0xa000, 0xbfff).nopw(); /* Amplifier enable on 1st write */ map(0xc000, 0xc001).w(FUNC(namcos2_state::sound_bankselect_w)); @@ -875,12 +875,6 @@ void namcos2_state::sound_default_am(address_map &map) map(0xd000, 0xffff).rom().region("audiocpu", 0x01000); } -void namcos2_state::c140_default_am(address_map &map) -{ - map.global_mask(0x7fffff); // bit 23-24 not connected - map(0x000000, 0x7fffff).r(FUNC(namcos2_state::c140_rom_r)); -} - /*************************************************************/ /* */ /* NAMCO SYSTEM 2 PORT MACROS */ @@ -1724,7 +1718,7 @@ void namcos2_state::configure_common_standard(machine_config &config) SPEAKER(config, "rspeaker").front_right(); C140(config, m_c140, C140_SOUND_CLOCK); /* 21.333kHz */ - m_c140->set_addrmap(0, &namcos2_state::c140_default_am); + m_c140->set_bank_type(c140_device::C140_TYPE::SYSTEM2); m_c140->int1_callback().set_inputline(m_audiocpu, M6809_FIRQ_LINE); } @@ -2197,8 +2191,8 @@ ROM_START( assault ) NAMCOS2_DATA_LOAD_E_128K( "at1dat0.13s", 0x000000, CRC(844890f4) SHA1(1be30760acd81fae836301d81d6adbb3e5941373) ) NAMCOS2_DATA_LOAD_O_128K( "at1dat1.13p", 0x000000, CRC(21715313) SHA1(97c6edae6a5f1df434f1dcf7be307b5e006e72a6) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "atvoi1.bin", 0x000000, 0x080000, CRC(d36a649e) SHA1(30173f32c6ec9dda6b8946baa14266e828b0324e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "atvoi1.bin", 0x000000, 0x080000, CRC(d36a649e) SHA1(30173f32c6ec9dda6b8946baa14266e828b0324e) ) ROM_END /* ASSAULT (JAPAN) */ @@ -2248,8 +2242,8 @@ ROM_START( assaultj ) NAMCOS2_DATA_LOAD_E_128K( "at1dat0.13s", 0x000000, CRC(844890f4) SHA1(1be30760acd81fae836301d81d6adbb3e5941373) ) NAMCOS2_DATA_LOAD_O_128K( "at1dat1.13p", 0x000000, CRC(21715313) SHA1(97c6edae6a5f1df434f1dcf7be307b5e006e72a6) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "atvoi1.bin", 0x000000, 0x080000, CRC(d36a649e) SHA1(30173f32c6ec9dda6b8946baa14266e828b0324e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "atvoi1.bin", 0x000000, 0x080000, CRC(d36a649e) SHA1(30173f32c6ec9dda6b8946baa14266e828b0324e) ) ROM_END /* ASSAULT PLUS (NAMCO) */ @@ -2299,8 +2293,8 @@ ROM_START( assaultp ) NAMCOS2_DATA_LOAD_E_128K( "at1dat0.13s", 0x000000, CRC(844890f4) SHA1(1be30760acd81fae836301d81d6adbb3e5941373) ) NAMCOS2_DATA_LOAD_O_128K( "at1dat1.13p", 0x000000, CRC(21715313) SHA1(97c6edae6a5f1df434f1dcf7be307b5e006e72a6) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "atvoi1.bin", 0x000000, 0x080000, CRC(d36a649e) SHA1(30173f32c6ec9dda6b8946baa14266e828b0324e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "atvoi1.bin", 0x000000, 0x080000, CRC(d36a649e) SHA1(30173f32c6ec9dda6b8946baa14266e828b0324e) ) ROM_END /* BURNING FORCE */ @@ -2349,8 +2343,8 @@ ROM_START( burnforc ) NAMCOS2_DATA_LOAD_E_128K( "bu1_dat0.13s", 0x000000, CRC(e0a9d92f) SHA1(15042e6d7b31bec08ccdf36e89fdb4b6fb62fa4b) ) NAMCOS2_DATA_LOAD_O_128K( "bu1_dat1.13p", 0x000000, CRC(5fe54b73) SHA1(a5d4895f0a4523be20de40ccaa74f8fad0d5df7d) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "bu_voi-1.bin", 0x000000, 0x080000, CRC(99d8a239) SHA1(1ebc586048e757ac0ac68dc9cc171f4849e67cef) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "bu_voi-1.bin", 0x000000, 0x080000, CRC(99d8a239) SHA1(1ebc586048e757ac0ac68dc9cc171f4849e67cef) ) ROM_END ROM_START( burnforco ) @@ -2398,8 +2392,8 @@ ROM_START( burnforco ) NAMCOS2_DATA_LOAD_E_128K( "bu1_dat0.13s", 0x000000, CRC(e0a9d92f) SHA1(15042e6d7b31bec08ccdf36e89fdb4b6fb62fa4b) ) NAMCOS2_DATA_LOAD_O_128K( "bu1_dat1.13p", 0x000000, CRC(5fe54b73) SHA1(a5d4895f0a4523be20de40ccaa74f8fad0d5df7d) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "bu_voi-1.bin", 0x000000, 0x080000, CRC(99d8a239) SHA1(1ebc586048e757ac0ac68dc9cc171f4849e67cef) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "bu_voi-1.bin", 0x000000, 0x080000, CRC(99d8a239) SHA1(1ebc586048e757ac0ac68dc9cc171f4849e67cef) ) ROM_END /* COSMO GANG THE VIDEO (USA) */ @@ -2440,9 +2434,9 @@ ROM_START( cosmogng ) NAMCOS2_DATA_LOAD_E_128K( "co1dat0.13s", 0x000000, CRC(b53da2ae) SHA1(a7fe63668d50928d5d2e2249a5f377c7e8dfc6a5) ) NAMCOS2_DATA_LOAD_O_128K( "co1dat1.13p", 0x000000, CRC(d21ad10b) SHA1(dcf2d4cc048ea57507952a9a35390af7de5cfe34) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "co2voi1.bin", 0x000000, 0x080000, CRC(5a301349) SHA1(e333ea5955a66ac8d7c94cd50047efaf6fa95b15) ) - ROM_LOAD16_BYTE( "co2voi2.bin", 0x100000, 0x080000, CRC(a27cb45a) SHA1(08ccaaf43369e8358e31b213877829bdfd61479e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "co2voi1.bin", 0x000000, 0x080000, CRC(5a301349) SHA1(e333ea5955a66ac8d7c94cd50047efaf6fa95b15) ) + ROM_LOAD( "co2voi2.bin", 0x080000, 0x080000, CRC(a27cb45a) SHA1(08ccaaf43369e8358e31b213877829bdfd61479e) ) ROM_END /* COSMO GANG THE VIDEO (JAPAN) */ @@ -2483,9 +2477,9 @@ ROM_START( cosmogngj ) NAMCOS2_DATA_LOAD_E_128K( "co1dat0.13s", 0x000000, CRC(b53da2ae) SHA1(a7fe63668d50928d5d2e2249a5f377c7e8dfc6a5) ) NAMCOS2_DATA_LOAD_O_128K( "co1dat1.13p", 0x000000, CRC(d21ad10b) SHA1(dcf2d4cc048ea57507952a9a35390af7de5cfe34) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "co1voi1.bin", 0x000000, 0x080000, CRC(b5ba8f15) SHA1(9e54b9ba1cd44353782adf337376dff9eec4e937) ) - ROM_LOAD16_BYTE( "co1voi2.bin", 0x100000, 0x080000, CRC(b566b105) SHA1(b5530b0f3dea0135f28419044aee923d855f382c) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "co1voi1.bin", 0x000000, 0x080000, CRC(b5ba8f15) SHA1(9e54b9ba1cd44353782adf337376dff9eec4e937) ) + ROM_LOAD( "co1voi2.bin", 0x080000, 0x080000, CRC(b566b105) SHA1(b5530b0f3dea0135f28419044aee923d855f382c) ) ROM_END /* DIRT FOX (JAPAN) */ @@ -2533,8 +2527,8 @@ ROM_START( dirtfoxj ) NAMCOS2_DATA_LOAD_E_256K( "df1_dat0.13s", 0x000000, CRC(f5851c85) SHA1(e99c05891622cdaab394630b7b2678968e6761d7) ) NAMCOS2_DATA_LOAD_O_256K( "df1_dat1.13p", 0x000000, CRC(1a31e46b) SHA1(4be7115893b27d6a3dc38c97dcb41eafebb423cd) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "df1_voi1.bin", 0x000000, 0x080000, CRC(15053904) SHA1(b8ca7e5e53249dbee8284ce1e5c0e6438e64b2cf) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "df1_voi1.bin", 0x000000, 0x080000, CRC(15053904) SHA1(b8ca7e5e53249dbee8284ce1e5c0e6438e64b2cf) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "nvram", 0x000000, 0x2000, CRC(4b9f7b06) SHA1(384496d2d80a48d31084dc316ebae3a5c1aa1ab9) ) @@ -2577,9 +2571,9 @@ ROM_START( dsaber ) NAMCOS2_DATA_LOAD_E_128K( "do1 dat0.13s", 0x000000, CRC(3e53331f) SHA1(3dd4c133f587361f30ab1b890f5b05749d5838e3) ) NAMCOS2_DATA_LOAD_O_128K( "do1 dat1.13p", 0x000000, CRC(d5427f11) SHA1(af8d8153dc60044616a6b0571831c53c09fefda1) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "do voi-1a.voice1", 0x000000, 0x080000, CRC(dadf6a57) SHA1(caba21fc6b62d140f6d8231411ce82ae0ad2837a) ) - ROM_LOAD16_BYTE( "do voi-2a.voice2", 0x100000, 0x080000, CRC(81078e01) SHA1(adc70506b21b9a12eadd2f3fd1e920c2eb27c36e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "do voi-1a.voice1", 0x000000, 0x080000, CRC(dadf6a57) SHA1(caba21fc6b62d140f6d8231411ce82ae0ad2837a) ) + ROM_LOAD( "do voi-2a.voice2", 0x080000, 0x080000, CRC(81078e01) SHA1(adc70506b21b9a12eadd2f3fd1e920c2eb27c36e) ) ROM_REGION( 0x0500, "plds", 0 ) ROM_LOAD( "pal16l8a.4g", 0x0000, 0x0104, CRC(660e1655) SHA1(ffb43238c5ffa3fa831975bc3cde72334c4c2540) ) @@ -2625,9 +2619,9 @@ ROM_START( dsabera ) NAMCOS2_DATA_LOAD_E_128K( "do1 dat0.13s", 0x000000, CRC(3e53331f) SHA1(3dd4c133f587361f30ab1b890f5b05749d5838e3) ) NAMCOS2_DATA_LOAD_O_128K( "do1 dat1.13p", 0x000000, CRC(d5427f11) SHA1(af8d8153dc60044616a6b0571831c53c09fefda1) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "do voi-1a.voice1", 0x000000, 0x080000, CRC(dadf6a57) SHA1(caba21fc6b62d140f6d8231411ce82ae0ad2837a) ) - ROM_LOAD16_BYTE( "do voi-2a.voice2", 0x100000, 0x080000, CRC(81078e01) SHA1(adc70506b21b9a12eadd2f3fd1e920c2eb27c36e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "do voi-1a.voice1", 0x000000, 0x080000, CRC(dadf6a57) SHA1(caba21fc6b62d140f6d8231411ce82ae0ad2837a) ) + ROM_LOAD( "do voi-2a.voice2", 0x080000, 0x080000, CRC(81078e01) SHA1(adc70506b21b9a12eadd2f3fd1e920c2eb27c36e) ) ROM_REGION( 0x0500, "plds", 0 ) ROM_LOAD( "pal16l8a.4g", 0x0000, 0x0104, CRC(660e1655) SHA1(ffb43238c5ffa3fa831975bc3cde72334c4c2540) ) @@ -2672,9 +2666,9 @@ ROM_START( dsaberj ) NAMCOS2_DATA_LOAD_E_128K( "do1 dat0.13s", 0x000000, CRC(3e53331f) SHA1(3dd4c133f587361f30ab1b890f5b05749d5838e3) ) NAMCOS2_DATA_LOAD_O_128K( "do1 dat1.13p", 0x000000, CRC(d5427f11) SHA1(af8d8153dc60044616a6b0571831c53c09fefda1) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "do voi-1a.voice1", 0x000000, 0x080000, CRC(dadf6a57) SHA1(caba21fc6b62d140f6d8231411ce82ae0ad2837a) ) - ROM_LOAD16_BYTE( "do voi-2a.voice2", 0x100000, 0x080000, CRC(81078e01) SHA1(adc70506b21b9a12eadd2f3fd1e920c2eb27c36e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "do voi-1a.voice1", 0x000000, 0x080000, CRC(dadf6a57) SHA1(caba21fc6b62d140f6d8231411ce82ae0ad2837a) ) + ROM_LOAD( "do voi-2a.voice2", 0x080000, 0x080000, CRC(81078e01) SHA1(adc70506b21b9a12eadd2f3fd1e920c2eb27c36e) ) ROM_REGION( 0x0500, "plds", 0 ) ROM_LOAD( "pal16l8a.4g", 0x0000, 0x0104, CRC(660e1655) SHA1(ffb43238c5ffa3fa831975bc3cde72334c4c2540) ) @@ -2723,9 +2717,15 @@ ROM_START( finallap ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - NAMCOS2_DATA_LOAD_E_128K( "fl1-v1", 0x000000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) - NAMCOS2_DATA_LOAD_E_128K( "fl1-v2", 0x100000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fl1-v1", 0x000000, 0x020000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) + ROM_RELOAD( 0x020000, 0x020000 ) + ROM_RELOAD( 0x040000, 0x020000 ) + ROM_RELOAD( 0x060000, 0x020000 ) + ROM_LOAD( "fl1-v2", 0x080000, 0x020000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_RELOAD( 0x0a0000, 0x020000 ) + ROM_RELOAD( 0x0c0000, 0x020000 ) + ROM_RELOAD( 0x0e0000, 0x020000 ) ROM_END /* FINAL LAP (revision D) */ @@ -2769,9 +2769,15 @@ ROM_START( finallapd ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - NAMCOS2_DATA_LOAD_E_128K( "fl1-v1", 0x000000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) - NAMCOS2_DATA_LOAD_E_128K( "fl1-v2", 0x100000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fl1-v1", 0x000000, 0x020000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) + ROM_RELOAD( 0x020000, 0x020000 ) + ROM_RELOAD( 0x040000, 0x020000 ) + ROM_RELOAD( 0x060000, 0x020000 ) + ROM_LOAD( "fl1-v2", 0x080000, 0x020000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_RELOAD( 0x0a0000, 0x020000 ) + ROM_RELOAD( 0x0c0000, 0x020000 ) + ROM_RELOAD( 0x0e0000, 0x020000 ) ROM_END /* FINAL LAP (revision C) */ @@ -2815,9 +2821,15 @@ ROM_START( finallapc ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - NAMCOS2_DATA_LOAD_E_128K( "fl1-v1", 0x000000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) - NAMCOS2_DATA_LOAD_E_128K( "fl1-v2", 0x100000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fl1-v1", 0x000000, 0x020000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) + ROM_RELOAD( 0x020000, 0x020000 ) + ROM_RELOAD( 0x040000, 0x020000 ) + ROM_RELOAD( 0x060000, 0x020000 ) + ROM_LOAD( "fl1-v2", 0x080000, 0x020000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_RELOAD( 0x0a0000, 0x020000 ) + ROM_RELOAD( 0x0c0000, 0x020000 ) + ROM_RELOAD( 0x0e0000, 0x020000 ) ROM_END /* FINAL LAP (Rev C - Japan) */ @@ -2861,9 +2873,15 @@ ROM_START( finallapjc ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - NAMCOS2_DATA_LOAD_E_128K( "fl1-v1", 0x000000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) - NAMCOS2_DATA_LOAD_E_128K( "fl1-v2", 0x100000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fl1-v1", 0x000000, 0x020000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) + ROM_RELOAD( 0x020000, 0x020000 ) + ROM_RELOAD( 0x040000, 0x020000 ) + ROM_RELOAD( 0x060000, 0x020000 ) + ROM_LOAD( "fl1-v2", 0x080000, 0x020000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_RELOAD( 0x0a0000, 0x020000 ) + ROM_RELOAD( 0x0c0000, 0x020000 ) + ROM_RELOAD( 0x0e0000, 0x020000 ) ROM_END /* FINAL LAP (REV B - JAPAN) */ @@ -2907,9 +2925,15 @@ ROM_START( finallapjb ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - NAMCOS2_DATA_LOAD_E_128K( "fl1-v1", 0x000000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) - NAMCOS2_DATA_LOAD_E_128K( "fl1-v2", 0x100000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fl1-v1", 0x000000, 0x020000, CRC(86b21996) SHA1(833ffde729199c81e472fb88ed5b7f4ce08a83d6) ) + ROM_RELOAD( 0x020000, 0x020000 ) + ROM_RELOAD( 0x040000, 0x020000 ) + ROM_RELOAD( 0x060000, 0x020000 ) + ROM_LOAD( "fl1-v2", 0x080000, 0x020000, CRC(6a164647) SHA1(3162457beccccdb416994ebd32fb83b13eb719e0) ) + ROM_RELOAD( 0x0a0000, 0x020000 ) + ROM_RELOAD( 0x0c0000, 0x020000 ) + ROM_RELOAD( 0x0e0000, 0x020000 ) ROM_END ROM_START( finalap2 ) @@ -2957,9 +2981,9 @@ ROM_START( finalap2 ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "flsvoi1", 0x000000, 0x080000, CRC(590be52f) SHA1(9ef2728dd533979b6019b422fc4961a6085428b4) ) - ROM_LOAD16_BYTE( "flsvoi2", 0x100000, 0x080000, CRC(204b3c27) SHA1(80cd13bfe2a4b3039b4a120b905674e46b8b3b9c) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "flsvoi1", 0x000000, 0x080000, CRC(590be52f) SHA1(9ef2728dd533979b6019b422fc4961a6085428b4) ) + ROM_LOAD( "flsvoi2", 0x080000, 0x080000, CRC(204b3c27) SHA1(80cd13bfe2a4b3039b4a120b905674e46b8b3b9c) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "finalap2.nv", 0x000000, 0x2000, CRC(c7ae5d0a) SHA1(9527e44accec0ec9d1990138d1b0bfc71957cc8a) ) @@ -3012,9 +3036,9 @@ ROM_START( finalap2j ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "flsvoi1", 0x000000, 0x080000, CRC(590be52f) SHA1(9ef2728dd533979b6019b422fc4961a6085428b4) ) - ROM_LOAD16_BYTE( "flsvoi2", 0x100000, 0x080000, CRC(204b3c27) SHA1(80cd13bfe2a4b3039b4a120b905674e46b8b3b9c) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "flsvoi1", 0x000000, 0x080000, CRC(590be52f) SHA1(9ef2728dd533979b6019b422fc4961a6085428b4) ) + ROM_LOAD( "flsvoi2", 0x080000, 0x080000, CRC(204b3c27) SHA1(80cd13bfe2a4b3039b4a120b905674e46b8b3b9c) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "finalap2.nv", 0x000000, 0x2000, CRC(c7ae5d0a) SHA1(9527e44accec0ec9d1990138d1b0bfc71957cc8a) ) @@ -3066,9 +3090,9 @@ ROM_START( finalap3 ) // this set displays MOTION (Ver. 3) in the test mode menu ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1_3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) - ROM_LOAD16_BYTE( "flt_voi-2.3l", 0x100000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) + ROM_LOAD( "flt_voi-2.3l", 0x080000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) ROM_REGION( 8*1024, "user2", 0 ) /* zoom */ ROM_LOAD( "04544191.6r", 0, 8*1024, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3124,9 +3148,9 @@ ROM_START( finalap3a ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1_3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) - ROM_LOAD16_BYTE( "flt_voi-2.3l", 0x100000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) + ROM_LOAD( "flt_voi-2.3l", 0x080000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) ROM_REGION( 8*1024, "user2", 0 ) /* zoom */ ROM_LOAD( "04544191.6r", 0, 8*1024, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3185,9 +3209,9 @@ ROM_START( finalap3j ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1_3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) - ROM_LOAD16_BYTE( "flt_voi-2.3l", 0x100000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) + ROM_LOAD( "flt_voi-2.3l", 0x080000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) ROM_REGION( 8*1024, "user2", 0 ) /* zoom */ ROM_LOAD( "04544191.6r", 0, 8*1024, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3242,9 +3266,9 @@ ROM_START( finalap3jc ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* PROM for road colors */ ROM_LOAD( "fl1_3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) - ROM_LOAD16_BYTE( "flt_voi-2.3l", 0x100000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "flt_voi-1.3m", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) + ROM_LOAD( "flt_voi-2.3l", 0x080000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) ROM_REGION( 8*1024, "user2", 0 ) /* zoom */ ROM_LOAD( "04544191.6r", 0, 8*1024, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3298,9 +3322,9 @@ ROM_START( finalap3bl ) // bootleg set ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "fl1-3.5b", 0, 0x100, CRC(d179d99a) SHA1(4e64f284c74d2b77f893bd28aaa6489084056aa2) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "fltvoi1", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) - ROM_LOAD16_BYTE( "fltvoi2", 0x100000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fltvoi1", 0x000000, 0x080000, CRC(4fc7c0ba) SHA1(bbfd1764fd79087bba5e6199e8916c28bed4d3f4) ) + ROM_LOAD( "fltvoi2", 0x080000, 0x080000, CRC(409c62df) SHA1(0c2f088168f1f92f2f767ea47522c0e8f4a10265) ) ROM_REGION( 8*1024, "user2", 0 ) /* zoom */ ROM_LOAD( "04544191.6r", 0, 8*1024, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3356,8 +3380,8 @@ ROM_START( finehour ) NAMCOS2_DATA_LOAD_E_128K( "fh1_dt2.13r", 0x100000, CRC(12453ba4) SHA1(26ad0da6e56ece6f1ba0b0cf23d2fdae2ce24100) ) NAMCOS2_DATA_LOAD_O_128K( "fh1_dt3.13n", 0x100000, CRC(50bab9da) SHA1(9c18e5fb810123f9d17042212e0878172e220d2a) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "fh1_vo1.bin", 0x000000, 0x080000, CRC(07560fc7) SHA1(76f3855f5a4567dc65d513e37072072c2a011e7e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fh1_vo1.bin", 0x000000, 0x080000, CRC(07560fc7) SHA1(76f3855f5a4567dc65d513e37072072c2a011e7e) ) ROM_END /* @@ -3576,8 +3600,8 @@ ROM_START( fourtrax ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "fx1_1.5b", 0, 0x100, CRC(85ffd753) SHA1(7dbc8c295204877f41289141a146aa4f5f9f9c96) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "fx_voi-1.3m", 0x000000, 0x080000, CRC(6173364f) SHA1(cc426f49b7e87b11f1f51e8e10db7cad87ffb44d) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fx_voi-1.3m", 0x000000, 0x080000, CRC(6173364f) SHA1(cc426f49b7e87b11f1f51e8e10db7cad87ffb44d) ) ROM_END ROM_START( fourtraxj ) @@ -3635,8 +3659,8 @@ ROM_START( fourtraxj ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "fx1_1.5b", 0, 0x100, CRC(85ffd753) SHA1(7dbc8c295204877f41289141a146aa4f5f9f9c96) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "fx_voi-1.3m", 0x000000, 0x080000, CRC(6173364f) SHA1(cc426f49b7e87b11f1f51e8e10db7cad87ffb44d) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fx_voi-1.3m", 0x000000, 0x080000, CRC(6173364f) SHA1(cc426f49b7e87b11f1f51e8e10db7cad87ffb44d) ) ROM_END /* This is a strange set, it's based on the fx2 set, but with one of the 68k pair modified (21 bytes changed) and a unique GFX ROM @@ -3705,8 +3729,8 @@ ROM_START( fourtraxa ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "fx1_1.5b", 0, 0x100, CRC(85ffd753) SHA1(7dbc8c295204877f41289141a146aa4f5f9f9c96) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "fx_voi-1.3m", 0x000000, 0x080000, CRC(6173364f) SHA1(cc426f49b7e87b11f1f51e8e10db7cad87ffb44d) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "fx_voi-1.3m", 0x000000, 0x080000, CRC(6173364f) SHA1(cc426f49b7e87b11f1f51e8e10db7cad87ffb44d) ) ROM_END /* MARVEL LAND (USA) */ @@ -3753,8 +3777,8 @@ ROM_START( marvland ) NAMCOS2_DATA_LOAD_E_128K( "mv2_dat2.13r", 0x100000, CRC(f5c6408c) SHA1(568fb08d0763dc91674d708fa2d15ca952956145) ) NAMCOS2_DATA_LOAD_O_128K( "mv2_dat3.13n", 0x100000, CRC(6df76955) SHA1(fcfb520399acdd3776f66944121d6980552d3100) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "mv1-voi1.bin", 0x000000, 0x080000, BAD_DUMP CRC(de5cac09) SHA1(2d73e54c4f159e52db2c403a59d6c137cce6f53e) ) // either undumped, or PCB was wrongly populated with JP samples ROM? + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "mv1-voi1.bin", 0x000000, 0x080000, BAD_DUMP CRC(de5cac09) SHA1(2d73e54c4f159e52db2c403a59d6c137cce6f53e) ) // either undumped, or PCB was wrongly populated with JP samples ROM? ROM_END /* MARVEL LAND (JAPAN) */ @@ -3799,8 +3823,8 @@ ROM_START( marvlandj ) NAMCOS2_DATA_LOAD_E_128K( "mv1-dat0.13s", 0x000000, CRC(e15f412e) SHA1(d3ff006d4577540a690c912e94897a1b638ac265) ) NAMCOS2_DATA_LOAD_O_128K( "mv1-dat1.13p", 0x000000, CRC(73e1545a) SHA1(a04034e56fef69fb2a2eb88f2f392c376e52d00d) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "mv1-voi1.bin", 0x000000, 0x080000, CRC(de5cac09) SHA1(2d73e54c4f159e52db2c403a59d6c137cce6f53e) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "mv1-voi1.bin", 0x000000, 0x080000, CRC(de5cac09) SHA1(2d73e54c4f159e52db2c403a59d6c137cce6f53e) ) ROM_END /* METAL HAWK */ @@ -3855,9 +3879,9 @@ ROM_START( metlhawk ) NAMCOS2_DATA_LOAD_E_128K( "mh1d0.13s", 0x000000, CRC(8b178ac7) SHA1(210d31baf0aaba1af5efc15ec05714123f669030) ) NAMCOS2_DATA_LOAD_O_128K( "mh1d1.13p", 0x000000, CRC(10684fd6) SHA1(1e39d32dcf7ab9a146aa01f47e2737142874eede) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "mhvoi-1.bin", 0x000000, 0x080000, CRC(2723d137) SHA1(f67334f8e456ae9e6aee39f0cf5e73449838f37f) ) - ROM_LOAD16_BYTE( "mhvoi-2.bin", 0x100000, 0x080000, CRC(dbc92d91) SHA1(a8c50f607d5283c8bd9688d2149b811e7ddb77dd) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "mhvoi-1.bin", 0x000000, 0x080000, CRC(2723d137) SHA1(f67334f8e456ae9e6aee39f0cf5e73449838f37f) ) + ROM_LOAD( "mhvoi-2.bin", 0x080000, 0x080000, CRC(dbc92d91) SHA1(a8c50f607d5283c8bd9688d2149b811e7ddb77dd) ) ROM_REGION( 0x2000, "user2", 0 ) /* sprite zoom lookup table */ ROM_LOAD( "mh5762.7p", 0x00000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3923,9 +3947,9 @@ ROM_START( metlhawkj ) NAMCOS2_DATA_LOAD_E_128K( "mh1d0.13s", 0x000000, CRC(8b178ac7) SHA1(210d31baf0aaba1af5efc15ec05714123f669030) ) NAMCOS2_DATA_LOAD_O_128K( "mh1d1.13p", 0x000000, CRC(10684fd6) SHA1(1e39d32dcf7ab9a146aa01f47e2737142874eede) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "mhvoi-1.bin", 0x000000, 0x080000, CRC(2723d137) SHA1(f67334f8e456ae9e6aee39f0cf5e73449838f37f) ) - ROM_LOAD16_BYTE( "mhvoi-2.bin", 0x100000, 0x080000, CRC(dbc92d91) SHA1(a8c50f607d5283c8bd9688d2149b811e7ddb77dd) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "mhvoi-1.bin", 0x000000, 0x080000, CRC(2723d137) SHA1(f67334f8e456ae9e6aee39f0cf5e73449838f37f) ) + ROM_LOAD( "mhvoi-2.bin", 0x080000, 0x080000, CRC(dbc92d91) SHA1(a8c50f607d5283c8bd9688d2149b811e7ddb77dd) ) ROM_REGION( 0x2000, "user2", 0 ) /* sprite zoom lookup table */ ROM_LOAD( "mh5762.7p", 0x00000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -3986,9 +4010,9 @@ ROM_START( mirninja ) NAMCOS2_DATA_LOAD_E_128K( "mn1_dat0.13s", 0x000000, CRC(104bcca8) SHA1(e8368d0dc51bf0653143bf2261d7ed5b54d92941) ) NAMCOS2_DATA_LOAD_O_128K( "mn1_dat1.13p", 0x000000, CRC(d2a918fb) SHA1(032b7a7bcc60c41325e7b35df9a932e68cdd0788) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "mn_voi1.bin", 0x000000, 0x080000, CRC(2ca3573c) SHA1(b2af101730de4ccc68acc1ed143c21a8c81f64db) ) - ROM_LOAD16_BYTE( "mn_voi2.bin", 0x100000, 0x080000, CRC(466c3b47) SHA1(9c282ffda8b0620ae60789c81c6e36c086a9a335) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "mn_voi1.bin", 0x000000, 0x080000, CRC(2ca3573c) SHA1(b2af101730de4ccc68acc1ed143c21a8c81f64db) ) + ROM_LOAD( "mn_voi2.bin", 0x080000, 0x080000, CRC(466c3b47) SHA1(9c282ffda8b0620ae60789c81c6e36c086a9a335) ) ROM_END /* ORDYNE */ @@ -4039,9 +4063,9 @@ ROM_START( ordyne ) NAMCOS2_DATA_LOAD_E_128K( "or1_d0.13s", 0x000000, CRC(de214f7a) SHA1(59883c7886b403306c30e51d7f49225483792650) ) NAMCOS2_DATA_LOAD_O_128K( "or1_d1.13p", 0x000000, CRC(25e3e6c8) SHA1(ad093f15edaea71f6c7226c6e4f3c2130d418013) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "or_voi1.voice1", 0x000000, 0x080000, CRC(369e0bca) SHA1(2a921bb373dd043bd7b2a30e5e46ec3b8b3b5c8d) ) - ROM_LOAD16_BYTE( "or_voi2.voice2", 0x100000, 0x080000, CRC(9f4cd7b5) SHA1(10941dd5ab3846c0cb2543655944eaec742f8f21) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "or_voi1.voice1", 0x000000, 0x080000, CRC(369e0bca) SHA1(2a921bb373dd043bd7b2a30e5e46ec3b8b3b5c8d) ) + ROM_LOAD( "or_voi2.voice2", 0x080000, 0x080000, CRC(9f4cd7b5) SHA1(10941dd5ab3846c0cb2543655944eaec742f8f21) ) ROM_REGION( 0x2000, "user2", 0 ) /* sprite zoom lookup table */ ROM_LOAD( "lh5762.6n", 0x00000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -4095,9 +4119,9 @@ ROM_START( ordyneje ) NAMCOS2_DATA_LOAD_E_128K( "or1_d0.13s", 0x000000, CRC(de214f7a) SHA1(59883c7886b403306c30e51d7f49225483792650) ) NAMCOS2_DATA_LOAD_O_128K( "or1_d1.13p", 0x000000, CRC(25e3e6c8) SHA1(ad093f15edaea71f6c7226c6e4f3c2130d418013) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "or_voi1.voice1", 0x000000, 0x080000, CRC(369e0bca) SHA1(2a921bb373dd043bd7b2a30e5e46ec3b8b3b5c8d) ) - ROM_LOAD16_BYTE( "or_voi2.voice2", 0x100000, 0x080000, CRC(9f4cd7b5) SHA1(10941dd5ab3846c0cb2543655944eaec742f8f21) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "or_voi1.voice1", 0x000000, 0x080000, CRC(369e0bca) SHA1(2a921bb373dd043bd7b2a30e5e46ec3b8b3b5c8d) ) + ROM_LOAD( "or_voi2.voice2", 0x080000, 0x080000, CRC(9f4cd7b5) SHA1(10941dd5ab3846c0cb2543655944eaec742f8f21) ) ROM_REGION( 0x2000, "user2", 0 ) /* sprite zoom lookup table */ ROM_LOAD( "lh5762.6n", 0x00000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -4151,9 +4175,9 @@ ROM_START( ordynej ) NAMCOS2_DATA_LOAD_E_128K( "or1_d0.13s", 0x000000, CRC(de214f7a) SHA1(59883c7886b403306c30e51d7f49225483792650) ) NAMCOS2_DATA_LOAD_O_128K( "or1_d1.13p", 0x000000, CRC(25e3e6c8) SHA1(ad093f15edaea71f6c7226c6e4f3c2130d418013) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "or_voi1.voice1", 0x000000, 0x080000, CRC(369e0bca) SHA1(2a921bb373dd043bd7b2a30e5e46ec3b8b3b5c8d) ) - ROM_LOAD16_BYTE( "or_voi2.voice2", 0x100000, 0x080000, CRC(9f4cd7b5) SHA1(10941dd5ab3846c0cb2543655944eaec742f8f21) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "or_voi1.voice1", 0x000000, 0x080000, CRC(369e0bca) SHA1(2a921bb373dd043bd7b2a30e5e46ec3b8b3b5c8d) ) + ROM_LOAD( "or_voi2.voice2", 0x080000, 0x080000, CRC(9f4cd7b5) SHA1(10941dd5ab3846c0cb2543655944eaec742f8f21) ) ROM_REGION( 0x2000, "user2", 0 ) /* sprite zoom lookup table */ ROM_LOAD( "lh5762.6n", 0x00000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) @@ -4210,8 +4234,8 @@ ROM_START( phelios ) NAMCOS2_DATA_LOAD_E_128K( "ps2_dat0.13s", 0x000000, CRC(ee4194b0) SHA1(a0c2a807db70164ed761e5ad04301e5ae1173e7a) ) NAMCOS2_DATA_LOAD_O_128K( "ps2_dat1.13p", 0x000000, CRC(5b22d714) SHA1(f6cb1fe661f7691269840245f06875845fd6eb33) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ps_voi-1.voice1", 0x000000, 0x080000, CRC(f67376ed) SHA1(b54257aad34c6ad03d5b040e6a5dda94a48b6780) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ps_voi-1.voice1", 0x000000, 0x080000, CRC(f67376ed) SHA1(b54257aad34c6ad03d5b040e6a5dda94a48b6780) ) ROM_END /* PHELIOS (Japan) */ @@ -4265,8 +4289,8 @@ ROM_START( pheliosj ) NAMCOS2_DATA_LOAD_E_128K( "ps1_dat0.13s", 0x000000, CRC(ee4194b0) SHA1(a0c2a807db70164ed761e5ad04301e5ae1173e7a) ) /* Same DATA as World set, but labeled PS1 */ NAMCOS2_DATA_LOAD_O_128K( "ps1_dat1.13p", 0x000000, CRC(5b22d714) SHA1(f6cb1fe661f7691269840245f06875845fd6eb33) ) /* Same DATA as World set, but labeled PS1 */ - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ps_voi-1.voice1", 0x000000, 0x080000, CRC(f67376ed) SHA1(b54257aad34c6ad03d5b040e6a5dda94a48b6780) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ps_voi-1.voice1", 0x000000, 0x080000, CRC(f67376ed) SHA1(b54257aad34c6ad03d5b040e6a5dda94a48b6780) ) ROM_END /* ROLLING THUNDER 2 */ @@ -4307,9 +4331,9 @@ ROM_START( rthun2 ) NAMCOS2_DATA_LOAD_O_128K( "rst1_data1.13p", 0x000000, CRC(58a8daac) SHA1(c13ae8fc25b748a006c6db5b4b7ae593738544e8) ) NAMCOS2_DATA_LOAD_E_128K( "rst1_data2.13r", 0x100000, CRC(8e850a2a) SHA1(e5230e80a23ca6d09c2c53f443ecf70cc74075d7) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "rst1_voi1.bin", 0x000000, 0x080000, CRC(e42027cd) SHA1(fa3a81118c7f112289c27023236dec2e9cbc78b5) ) - ROM_LOAD16_BYTE( "rst1_voi2.bin", 0x100000, 0x080000, CRC(0c4c2b66) SHA1(7723cbef755439a66d026015596fe1547ccd65b1) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "rst1_voi1.bin", 0x000000, 0x080000, CRC(e42027cd) SHA1(fa3a81118c7f112289c27023236dec2e9cbc78b5) ) + ROM_LOAD( "rst1_voi2.bin", 0x080000, 0x080000, CRC(0c4c2b66) SHA1(7723cbef755439a66d026015596fe1547ccd65b1) ) ROM_END /* ROLLING THUNDER 2 (Japan) */ @@ -4350,9 +4374,9 @@ ROM_START( rthun2j ) NAMCOS2_DATA_LOAD_O_128K( "rst1_data1.13p", 0x000000, CRC(58a8daac) SHA1(c13ae8fc25b748a006c6db5b4b7ae593738544e8) ) NAMCOS2_DATA_LOAD_E_128K( "rst1_data2.13r", 0x100000, CRC(8e850a2a) SHA1(e5230e80a23ca6d09c2c53f443ecf70cc74075d7) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "rst1_voi1.bin", 0x000000, 0x080000, CRC(e42027cd) SHA1(fa3a81118c7f112289c27023236dec2e9cbc78b5) ) - ROM_LOAD16_BYTE( "rst1_voi2.bin", 0x100000, 0x080000, CRC(0c4c2b66) SHA1(7723cbef755439a66d026015596fe1547ccd65b1) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "rst1_voi1.bin", 0x000000, 0x080000, CRC(e42027cd) SHA1(fa3a81118c7f112289c27023236dec2e9cbc78b5) ) + ROM_LOAD( "rst1_voi2.bin", 0x080000, 0x080000, CRC(0c4c2b66) SHA1(7723cbef755439a66d026015596fe1547ccd65b1) ) /* stuff below isn't used but loaded because it was on the board .. */ ROM_REGION( 0x0950, "plds", 0 ) @@ -4403,9 +4427,9 @@ ROM_START( sgunner ) NAMCOS2_DATA_LOAD_E_128K( "sn1_dat0.13s", 0x000000, CRC(72bfeca8) SHA1(88a2f8959d803611b2f2e219cb8ff085a37d01fe) ) NAMCOS2_DATA_LOAD_O_128K( "sn1_dat1.13p", 0x000000, CRC(99b3e653) SHA1(d7e29ad4e059f5d5e03386d903428c879d591459) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "sn_voi1.3m", 0x000000, 0x080000, CRC(464e616d) SHA1(7279a2af64bdf76972bcf326611e6bff57a9cd39) ) - ROM_LOAD16_BYTE( "sn_voi2.3l", 0x100000, 0x080000, CRC(8c3251b5) SHA1(fa364c8462f490c636605262c5492a6a9b00e5b1) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "sn_voi1.3m", 0x000000, 0x080000, CRC(464e616d) SHA1(7279a2af64bdf76972bcf326611e6bff57a9cd39) ) + ROM_LOAD( "sn_voi2.3l", 0x080000, 0x080000, CRC(8c3251b5) SHA1(fa364c8462f490c636605262c5492a6a9b00e5b1) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "sgunner.nv", 0x000000, 0x2000, CRC(106026f8) SHA1(e4be6701d4eef6c18406593c6dee10644f29a15b) ) @@ -4451,9 +4475,9 @@ ROM_START( sgunnerj ) NAMCOS2_DATA_LOAD_E_128K( "sn1_dat0.13s", 0x000000, CRC(72bfeca8) SHA1(88a2f8959d803611b2f2e219cb8ff085a37d01fe) ) NAMCOS2_DATA_LOAD_O_128K( "sn1_dat1.13p", 0x000000, CRC(99b3e653) SHA1(d7e29ad4e059f5d5e03386d903428c879d591459) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "sn_voi1.3m", 0x000000, 0x080000, CRC(464e616d) SHA1(7279a2af64bdf76972bcf326611e6bff57a9cd39) ) - ROM_LOAD16_BYTE( "sn_voi2.3l", 0x100000, 0x080000, CRC(8c3251b5) SHA1(fa364c8462f490c636605262c5492a6a9b00e5b1) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "sn_voi1.3m", 0x000000, 0x080000, CRC(464e616d) SHA1(7279a2af64bdf76972bcf326611e6bff57a9cd39) ) + ROM_LOAD( "sn_voi2.3l", 0x080000, 0x080000, CRC(8c3251b5) SHA1(fa364c8462f490c636605262c5492a6a9b00e5b1) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "sgunner.nv", 0x000000, 0x2000, CRC(106026f8) SHA1(e4be6701d4eef6c18406593c6dee10644f29a15b) ) @@ -4503,9 +4527,9 @@ ROM_START( sgunner2 ) NAMCOS2_DATA_LOAD_E_128K( "sns_dat2.13r", 0x100000, CRC(ca2ae645) SHA1(8addc8ed8244d0ff4c03909e865e3f15934963f1) ) NAMCOS2_DATA_LOAD_O_128K( "sns_dat3.13n", 0x100000, CRC(203bb018) SHA1(36e20ab81ed69a941e13518ff2ae52acd6b22a78) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "sns_voi1.bin", 0x000000, 0x080000, CRC(219c97f7) SHA1(d4b1d81e3d0e2585bc2fa305c0d80beef15b2a9f) ) - ROM_LOAD16_BYTE( "sns_voi2.bin", 0x100000, 0x080000, CRC(562ec86b) SHA1(c9874c7e1f38c5b38d21f45a82028651cf9089a5) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "sns_voi1.bin", 0x000000, 0x080000, CRC(219c97f7) SHA1(d4b1d81e3d0e2585bc2fa305c0d80beef15b2a9f) ) + ROM_LOAD( "sns_voi2.bin", 0x080000, 0x080000, CRC(562ec86b) SHA1(c9874c7e1f38c5b38d21f45a82028651cf9089a5) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "sgunner2.nv", 0x000000, 0x2000, CRC(57a521c6) SHA1(d60b4f6f099b7f9fb1e575c5f9a74397986c6dac) ) @@ -4555,9 +4579,9 @@ ROM_START( sgunner2j ) NAMCOS2_DATA_LOAD_E_128K( "sns_dat2.13r", 0x100000, CRC(ca2ae645) SHA1(8addc8ed8244d0ff4c03909e865e3f15934963f1) ) NAMCOS2_DATA_LOAD_O_128K( "sns_dat3.13n", 0x100000, CRC(203bb018) SHA1(36e20ab81ed69a941e13518ff2ae52acd6b22a78) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "sns_voi1.bin", 0x000000, 0x080000, CRC(219c97f7) SHA1(d4b1d81e3d0e2585bc2fa305c0d80beef15b2a9f) ) - ROM_LOAD16_BYTE( "sns_voi2.bin", 0x100000, 0x080000, CRC(562ec86b) SHA1(c9874c7e1f38c5b38d21f45a82028651cf9089a5) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "sns_voi1.bin", 0x000000, 0x080000, CRC(219c97f7) SHA1(d4b1d81e3d0e2585bc2fa305c0d80beef15b2a9f) ) + ROM_LOAD( "sns_voi2.bin", 0x080000, 0x080000, CRC(562ec86b) SHA1(c9874c7e1f38c5b38d21f45a82028651cf9089a5) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "sgunner2j.nv", 0x000000, 0x2000, CRC(014bccf9) SHA1(b6437fadf3e71df7a71fde9ec7ffc95fe6c057b3) ) @@ -4600,8 +4624,8 @@ ROM_START( sws ) NAMCOS2_DATA_LOAD_E_256K( "ss1_dat0.13s", 0x000000, CRC(6a360f91) SHA1(22597c6bf7c597cf554a27182b4748de43a87b0a) ) NAMCOS2_DATA_LOAD_O_256K( "ss1_dat1.13p", 0x000000, CRC(ab1e487d) SHA1(b40ea6c28dd9adae4939f69fcbf53414ae4703c6) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) ROM_END /* SUPER WORLD STADIUM 92 */ @@ -4643,8 +4667,8 @@ ROM_START( sws92 ) NAMCOS2_DATA_LOAD_E_256K( "sss1dat0.13s", 0x000000, CRC(db3e6aec) SHA1(928960e3dc9c8225e695d12e9b18fbb7f151c151) ) NAMCOS2_DATA_LOAD_O_256K( "sss1dat1.13p", 0x000000, CRC(463b5ba8) SHA1(029dce2e7ee50181392b6ef409bbd192105fb065) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) ROM_END /* SUPER WORLD STADIUM 92 */ @@ -4688,8 +4712,8 @@ ROM_START( sws92g ) NAMCOS2_DATA_LOAD_E_256K( "ssg1dat2.13r", 0x080000, CRC(754128aa) SHA1(459ffb08bcd905644d6019e5b25870dcb1e2b418) ) NAMCOS2_DATA_LOAD_O_256K( "ssg1dat3.13n", 0x080000, CRC(cb3fed01) SHA1(68887d46fd07cd8fb67d58f37e74a6aefdae4328) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) ROM_END /* SUPER WORLD STADIUM 93 */ @@ -4731,8 +4755,8 @@ ROM_START( sws93 ) NAMCOS2_DATA_LOAD_E_512K( "sst1dat0.13s", 0x000000, CRC(b99c9656) SHA1(ac9e6bf46204dad70caf0d75614a20af0269a07f) ) NAMCOS2_DATA_LOAD_O_512K( "sst1dat1.13p", 0x000000, CRC(60cf6281) SHA1(c02a5bf8f4f94cbe8b0448c9457af53cd1c043d0) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ss_voi1.bin", 0x000000, 0x080000, CRC(503e51b7) SHA1(2e159fcc9bb0bef9a3476ae233bc8d61fabbb4bd) ) ROM_END /* SUZUKA 8 HOURS (World?) */ @@ -4777,9 +4801,9 @@ ROM_START( suzuka8h ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "ehs1_landdt.10w", 0, 0x100, CRC(cde7e8a6) SHA1(860273daf2e649418746adf50a67ae33f9f3740c) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "eh1-voi1.bin", 0x000000, 0x080000, CRC(71e534d3) SHA1(2981de315e660b878673b5d3816886e96f0556d6) ) - ROM_LOAD16_BYTE( "eh1-voi2.bin", 0x100000, 0x080000, CRC(3e20df8e) SHA1(7f1d57a5a73c45c69f0afd137a630bf07c4e7a9c) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "eh1-voi1.bin", 0x000000, 0x080000, CRC(71e534d3) SHA1(2981de315e660b878673b5d3816886e96f0556d6) ) + ROM_LOAD( "eh1-voi2.bin", 0x080000, 0x080000, CRC(3e20df8e) SHA1(7f1d57a5a73c45c69f0afd137a630bf07c4e7a9c) ) ROM_END /* suzuka8h */ /* SUZUKA 8 HOURS (Japan) */ @@ -4824,9 +4848,9 @@ ROM_START( suzuka8hj ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "ehs1_landdt.10w", 0, 0x100, CRC(cde7e8a6) SHA1(860273daf2e649418746adf50a67ae33f9f3740c) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "eh1-voi1.bin", 0x000000, 0x080000, CRC(71e534d3) SHA1(2981de315e660b878673b5d3816886e96f0556d6) ) - ROM_LOAD16_BYTE( "eh1-voi2.bin", 0x100000, 0x080000, CRC(3e20df8e) SHA1(7f1d57a5a73c45c69f0afd137a630bf07c4e7a9c) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "eh1-voi1.bin", 0x000000, 0x080000, CRC(71e534d3) SHA1(2981de315e660b878673b5d3816886e96f0556d6) ) + ROM_LOAD( "eh1-voi2.bin", 0x080000, 0x080000, CRC(3e20df8e) SHA1(7f1d57a5a73c45c69f0afd137a630bf07c4e7a9c) ) ROM_END /* suzuk8hj */ /* SUZUKA 8 HOURS 2 */ @@ -4877,9 +4901,9 @@ ROM_START( suzuk8h2 ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "ehs1-landdt.10w", 0, 0x100, CRC(cde7e8a6) SHA1(860273daf2e649418746adf50a67ae33f9f3740c) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ehs1-voi1.3m", 0x000000, 0x080000, CRC(bf94eb42) SHA1(61bb36550a58ffb8ad0ab8f5b51eddd7824ae8bc) ) - ROM_LOAD16_BYTE( "ehs1-voi2.3l", 0x100000, 0x080000, CRC(0e427604) SHA1(ebb15f53713c24731f6ebdc37ece88587cce5616) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ehs1-voi1.3m", 0x000000, 0x080000, CRC(bf94eb42) SHA1(61bb36550a58ffb8ad0ab8f5b51eddd7824ae8bc) ) + ROM_LOAD( "ehs1-voi2.3l", 0x080000, 0x080000, CRC(0e427604) SHA1(ebb15f53713c24731f6ebdc37ece88587cce5616) ) ROM_END /* suzuk8h2 */ /* SUZUKA 8 HOURS 2 Japan */ @@ -4930,9 +4954,9 @@ ROM_START( suzuk8h2j ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "ehs1-landdt.10w", 0, 0x100, CRC(cde7e8a6) SHA1(860273daf2e649418746adf50a67ae33f9f3740c) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ehs1-voi1.3m", 0x000000, 0x080000, CRC(bf94eb42) SHA1(61bb36550a58ffb8ad0ab8f5b51eddd7824ae8bc) ) - ROM_LOAD16_BYTE( "ehs1-voi2.3l", 0x100000, 0x080000, CRC(0e427604) SHA1(ebb15f53713c24731f6ebdc37ece88587cce5616) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ehs1-voi1.3m", 0x000000, 0x080000, CRC(bf94eb42) SHA1(61bb36550a58ffb8ad0ab8f5b51eddd7824ae8bc) ) + ROM_LOAD( "ehs1-voi2.3l", 0x080000, 0x080000, CRC(0e427604) SHA1(ebb15f53713c24731f6ebdc37ece88587cce5616) ) ROM_END /* suzuk8h2j */ /* LEGEND OF THE VALKYRIE */ @@ -4982,9 +5006,13 @@ ROM_START( valkyrie ) NAMCOS2_DATA_LOAD_E_128K( "wd1dat0.13s", 0x000000, CRC(ea209f48) SHA1(5e73a745dc2faaa4ce6c633d4072d41e9e494276) ) NAMCOS2_DATA_LOAD_O_128K( "wd1dat1.13p", 0x000000, CRC(04b48ada) SHA1(aa046f8856bdd5b56d481c2c12ad2808c6517a5f) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - NAMCOS2_DATA_LOAD_E_256K( "wd1voi1.bin", 0x000000, CRC(f1ace193) SHA1(dd13bdf4b99c6bf4e356d623ff2e3da72db331dd) ) - NAMCOS2_DATA_LOAD_E_128K( "wd1voi2.bin", 0x100000, CRC(e95c5cf3) SHA1(4bfc7303bde23bcf6739c7877dd87671c33135bc) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "wd1voi1.bin", 0x000000, 0x040000, CRC(f1ace193) SHA1(dd13bdf4b99c6bf4e356d623ff2e3da72db331dd) ) + ROM_RELOAD( 0x040000, 0x040000 ) + ROM_LOAD( "wd1voi2.bin", 0x080000, 0x020000, CRC(e95c5cf3) SHA1(4bfc7303bde23bcf6739c7877dd87671c33135bc) ) + ROM_RELOAD( 0x0a0000, 0x020000 ) + ROM_RELOAD( 0x0c0000, 0x020000 ) + ROM_RELOAD( 0x0e0000, 0x020000 ) ROM_END /* KYUUKAI DOUCHUUKI */ @@ -5030,8 +5058,8 @@ ROM_START( kyukaidk ) NAMCOS2_DATA_LOAD_E_128K( "ky1_d2.13r", 0x100000, CRC(eb6d19c8) SHA1(c9fdb33fe191d3c4d284db7cbb05d852551a998d) ) NAMCOS2_DATA_LOAD_O_128K( "ky1_d3.13n", 0x100000, CRC(95674701) SHA1(9a8832837b9a3f8b75437717ea84d86261bfce59) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ky1_v1.bin", 0x000000, 0x080000, CRC(5ff81aec) SHA1(0535eda474de0a4aa3b48649b04afe2b7a8619c9) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ky1_v1.bin", 0x000000, 0x080000, CRC(5ff81aec) SHA1(0535eda474de0a4aa3b48649b04afe2b7a8619c9) ) ROM_END /* KYUUKAI DOUCHUUKI (OLD) */ @@ -5077,8 +5105,8 @@ ROM_START( kyukaidko ) NAMCOS2_DATA_LOAD_E_128K( "ky1_d2.13r", 0x100000, CRC(eb6d19c8) SHA1(c9fdb33fe191d3c4d284db7cbb05d852551a998d) ) NAMCOS2_DATA_LOAD_O_128K( "ky1_d3.13n", 0x100000, CRC(95674701) SHA1(9a8832837b9a3f8b75437717ea84d86261bfce59) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "ky1_v1.bin", 0x000000, 0x080000, CRC(5ff81aec) SHA1(0535eda474de0a4aa3b48649b04afe2b7a8619c9) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "ky1_v1.bin", 0x000000, 0x080000, CRC(5ff81aec) SHA1(0535eda474de0a4aa3b48649b04afe2b7a8619c9) ) ROM_END /* GOLLY GHOST */ @@ -5120,8 +5148,8 @@ ROM_START( gollygho ) ROM_REGION16_BE( 0x2000, "user2", 0 ) /* sprite zoom */ ROM_LOAD( "04544191.6n", 0x000000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "gl1voi1.3m", 0x000000, 0x080000, CRC(0eca0efb) SHA1(4e8e1b3118ee0b76c34dd6631047080ba1fcf576) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "gl1voi1.3m", 0x000000, 0x080000, CRC(0eca0efb) SHA1(4e8e1b3118ee0b76c34dd6631047080ba1fcf576) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "gollygho.nv", 0x000000, 0x2000, CRC(b7e67b9d) SHA1(bb6e2d2cac1a2f3c26fa1327db0eb53b521005a3) ) @@ -5166,8 +5194,8 @@ ROM_START( bubbletr ) /* All labels were hand written and included the rom size, ROM_REGION16_BE( 0x2000, "user2", 0 ) /* sprite zoom */ ROM_LOAD( "04544191.6n", 0x000000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "bt1-voi1.3m", 0x000000, 0x080000, CRC(08b3a089) SHA1(5023c2c0d0a94f0a2f98605d9b93d2d6ce626aa8) ) /* dated 6/8 */ + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "bt1-voi1.3m", 0x000000, 0x080000, CRC(08b3a089) SHA1(5023c2c0d0a94f0a2f98605d9b93d2d6ce626aa8) ) /* dated 6/8 */ ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "bubbletr.nv", 0x000000, 0x2000, CRC(75ace624) SHA1(1acd2af0c825e50c542db975e1fbda8cbb009f1d) ) @@ -5212,8 +5240,8 @@ ROM_START( bubbletrj ) ROM_REGION16_BE( 0x2000, "user2", 0 ) /* sprite zoom */ ROM_LOAD( "04544191.6n", 0x000000, 0x002000, CRC(90db1bf6) SHA1(dbb9e50a8efc3b4012fcf587cc87da9ef42a1b80) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "bt1-voi1.3m", 0x000000, 0x080000, CRC(08b3a089) SHA1(5023c2c0d0a94f0a2f98605d9b93d2d6ce626aa8) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "bt1-voi1.3m", 0x000000, 0x080000, CRC(08b3a089) SHA1(5023c2c0d0a94f0a2f98605d9b93d2d6ce626aa8) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "bubbletr.nv", 0x000000, 0x2000, CRC(75ace624) SHA1(1acd2af0c825e50c542db975e1fbda8cbb009f1d) ) @@ -5378,9 +5406,9 @@ ROM_START( luckywld ) ROM_LOAD16_BYTE( "lw1dat2.13r", 0x100000, 0x80000, CRC(eeba7c62) SHA1(6468518d3a5499b3f9a066488d83252cfc804d69) ) ROM_LOAD16_BYTE( "lw1dat3.13n", 0x100001, 0x80000, CRC(ec3b36ea) SHA1(734549ada73a687377134051fa906b489ffd0dc4) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "lw1voi1.3m", 0x000000, 0x080000, CRC(b3e57993) SHA1(ff7071fc2e2c00f0cf819860c2a9be353474920a) ) - ROM_LOAD16_BYTE( "lw1voi2.3l", 0x100000, 0x080000, CRC(cd8b86a2) SHA1(54bbc91e995ea0c33874ce6fe5c3f014e173da07) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "lw1voi1.3m", 0x000000, 0x080000, CRC(b3e57993) SHA1(ff7071fc2e2c00f0cf819860c2a9be353474920a) ) + ROM_LOAD( "lw1voi2.3l", 0x080000, 0x080000, CRC(cd8b86a2) SHA1(54bbc91e995ea0c33874ce6fe5c3f014e173da07) ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "lw1ld8.10w", 0, 0x100, CRC(29058c73) SHA1(4916d6bdb7f78e6803698cab32d1586ea457dfc8) ) @@ -5440,9 +5468,9 @@ ROM_START( luckywldj ) ROM_LOAD16_BYTE( "lw1dat2.13r", 0x100000, 0x80000, CRC(eeba7c62) SHA1(6468518d3a5499b3f9a066488d83252cfc804d69) ) ROM_LOAD16_BYTE( "lw1dat3.13n", 0x100001, 0x80000, CRC(ec3b36ea) SHA1(734549ada73a687377134051fa906b489ffd0dc4) ) - ROM_REGION16_BE( 0x200000, "c140", ROMREGION_ERASE00 ) /* Sound voices */ - ROM_LOAD16_BYTE( "lw1voi1.3m", 0x000000, 0x080000, CRC(b3e57993) SHA1(ff7071fc2e2c00f0cf819860c2a9be353474920a) ) - ROM_LOAD16_BYTE( "lw1voi2.3l", 0x100000, 0x080000, CRC(cd8b86a2) SHA1(54bbc91e995ea0c33874ce6fe5c3f014e173da07) ) + ROM_REGION( 0x100000, "c140", 0 ) /* Sound voices */ + ROM_LOAD( "lw1voi1.3m", 0x000000, 0x080000, CRC(b3e57993) SHA1(ff7071fc2e2c00f0cf819860c2a9be353474920a) ) + ROM_LOAD( "lw1voi2.3l", 0x080000, 0x080000, CRC(cd8b86a2) SHA1(54bbc91e995ea0c33874ce6fe5c3f014e173da07) ) ROM_REGION( 0x100, "c45_road:clut", 0 ) /* prom for road colors */ ROM_LOAD( "lw1ld8.10w", 0, 0x100, CRC(29058c73) SHA1(4916d6bdb7f78e6803698cab32d1586ea457dfc8) ) diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp index 1c979048921..32c8bee1c4b 100644 --- a/src/mame/drivers/namcos21.cpp +++ b/src/mame/drivers/namcos21.cpp @@ -309,7 +309,6 @@ public: m_palette(*this, "palette"), m_screen(*this, "screen"), m_audiobank(*this, "audiobank"), - m_c140_region(*this, "c140"), m_dpram(*this, "dpram"), m_gpu_intc(*this, "gpu_intc"), m_namcos21_3d(*this, "namcos21_3d"), @@ -333,7 +332,6 @@ private: required_device m_palette; required_device m_screen; required_memory_bank m_audiobank; - required_region_ptr m_c140_region; required_shared_ptr m_dpram; required_device m_gpu_intc; required_device m_namcos21_3d; @@ -388,7 +386,6 @@ private: void winrun_gpu_map(address_map &map); void sound_map(address_map &map); - void c140_map(address_map &map); }; READ16_MEMBER(namcos21_state::winrun_gpu_color_r) @@ -589,9 +586,9 @@ void namcos21_state::sound_map(address_map &map) map(0x0000, 0x3fff).bankr("audiobank"); /* banked */ map(0x3000, 0x3003).nopw(); /* ? */ map(0x4000, 0x4001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x5000, 0x51ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); - map(0x6000, 0x61ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); // mirrored - map(0x7000, 0x77ff).mirror(0x0800).rw(FUNC(namcos21_state::dpram_byte_r), FUNC(namcos21_state::dpram_byte_w)).share("dpram"); + map(0x5000, 0x6fff).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); + map(0x7000, 0x77ff).rw(FUNC(namcos21_state::dpram_byte_r), FUNC(namcos21_state::dpram_byte_w)).share("dpram"); + map(0x7800, 0x7fff).rw(FUNC(namcos21_state::dpram_byte_r), FUNC(namcos21_state::dpram_byte_w)); /* mirror */ map(0x8000, 0x9fff).ram(); map(0xa000, 0xbfff).nopw(); /* amplifier enable on 1st write */ map(0xc000, 0xffff).nopw(); /* avoid debug log noise; games write frequently to 0xe000 */ @@ -600,13 +597,6 @@ void namcos21_state::sound_map(address_map &map) map(0xd000, 0xffff).rom().region("audiocpu", 0x01000); } -void namcos21_state::c140_map(address_map &map) -{ - map.global_mask(0x7fffff); - // TODO: LSB not used? verify from schematics/real hardware - map(0x000000, 0x7fffff).lr16([this](offs_t offset) { return m_c140_region[((offset & 0x300000) >> 1) | (offset & 0x7ffff)]; }, "c140_rom_r"); -} - /*************************************************************/ /* I/O HD63705 MCU Memory declarations */ @@ -908,7 +898,7 @@ void namcos21_state::winrun(machine_config &config) SPEAKER(config, "rspeaker").front_right(); C140(config, m_c140, 8000000/374); - m_c140->set_addrmap(0, &namcos21_state::c140_map); + m_c140->set_bank_type(c140_device::C140_TYPE::SYSTEM21); m_c140->int1_callback().set_inputline(m_audiocpu, M6809_FIRQ_LINE); m_c140->add_route(0, "lspeaker", 0.50); m_c140->add_route(1, "rspeaker", 0.50); @@ -952,11 +942,11 @@ ROM_START( winrun ) ROM_LOAD16_BYTE( "wr1-pt0u.8j", 0x00000, 0x20000, CRC(7ec4cf6b) SHA1(92ec92567b9f7321efb4a3724cbcdba216eb22f9) ) ROM_LOAD16_BYTE( "wr1-pt0l.8d", 0x00001, 0x20000, CRC(58c14b73) SHA1(e34a26866cd870743e166669f7fa5915a82104e9) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("wr-voi-0.11b", 0x080000, 0x40000, CRC(8040b645) SHA1(7ccafb3073fa79910e26cf9b8b6e8e9ae22e55fc) ) - ROM_LOAD16_BYTE("wr-voi-1.11c", 0x180000, 0x40000, CRC(d347e904) SHA1(620cd07e6230322c306283e45a43fa1e217028d4) ) - ROM_LOAD16_BYTE("wr-voi-2.11d", 0x280000, 0x40000, CRC(b34747af) SHA1(7e0b55631bffa0583bf4f7f5368db9f09e411ba1) ) - ROM_LOAD16_BYTE("wr-voi-3.11e", 0x380000, 0x40000, CRC(43085303) SHA1(9f743055c20df3548879118194244e37a0b91f7e) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("wr-voi-0.11b", 0x040000, 0x40000, CRC(8040b645) SHA1(7ccafb3073fa79910e26cf9b8b6e8e9ae22e55fc) ) + ROM_LOAD("wr-voi-1.11c", 0x0c0000, 0x40000, CRC(d347e904) SHA1(620cd07e6230322c306283e45a43fa1e217028d4) ) + ROM_LOAD("wr-voi-2.11d", 0x140000, 0x40000, CRC(b34747af) SHA1(7e0b55631bffa0583bf4f7f5368db9f09e411ba1) ) + ROM_LOAD("wr-voi-3.11e", 0x1c0000, 0x40000, CRC(43085303) SHA1(9f743055c20df3548879118194244e37a0b91f7e) ) ROM_REGION( 0x1000, "pals", 0 ) /* Main PCB (2252960101) */ @@ -1020,9 +1010,9 @@ ROM_START( winrungp ) ROM_LOAD16_BYTE( "sg1-pt1-u.8l", 0x40000, 0x20000, CRC(b63d3006) SHA1(78e78619766b0fd91b1e830cfb066495d6773981) ) ROM_LOAD16_BYTE( "sg1-pt1-l.8e", 0x40001, 0x20000, CRC(6385e325) SHA1(d50bceb2e9c0d0a38d7b0f918f99c482649e260d) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("sg-voi-1.11c", 0x100000, 0x80000,CRC(7dcccb31) SHA1(4441b37691434b13eae5dee2d04dc12a56b04d2a) ) - ROM_LOAD16_BYTE("sg-voi-3.11e", 0x300000, 0x80000,CRC(a198141c) SHA1(b4ca352e6aedd9d7a7e5e39e840f1d3a7145900e) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("sg-voi-1.11c", 0x080000, 0x80000,CRC(7dcccb31) SHA1(4441b37691434b13eae5dee2d04dc12a56b04d2a) ) + ROM_LOAD("sg-voi-3.11e", 0x180000, 0x80000,CRC(a198141c) SHA1(b4ca352e6aedd9d7a7e5e39e840f1d3a7145900e) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "nvram", 0x0000, 0x2000, CRC(93cca84c) SHA1(e39510d9f066266a77780662a6d991c3dd0348d1) ) @@ -1067,9 +1057,9 @@ ROM_START( winrun91 ) ROM_LOAD16_BYTE( "r911-pt1u.8l", 0x40000, 0x20000, CRC(7e5dab74) SHA1(5bde219d5b4305d38d17b494b2e759f05d05329f) ) ROM_LOAD16_BYTE( "r911-pt1l.8e", 0x40001, 0x20000, CRC(38a54ec5) SHA1(5c6017c98cae674868153ff2d64532027cf0ab83) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("r911-avo1.11c", 0x100000, 0x80000,CRC(9fb33af3) SHA1(666630a8e5766ca4c3275961963c3e713dfdda2d) ) - ROM_LOAD16_BYTE("r911-avo3.11e", 0x300000, 0x80000,CRC(76e22f92) SHA1(0e1b8d35a5b9c20cc3192d935f0c9da1e69679d2) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("r911-avo1.11c", 0x080000, 0x80000,CRC(9fb33af3) SHA1(666630a8e5766ca4c3275961963c3e713dfdda2d) ) + ROM_LOAD("r911-avo3.11e", 0x180000, 0x80000,CRC(76e22f92) SHA1(0e1b8d35a5b9c20cc3192d935f0c9da1e69679d2) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "nvram", 0x0000, 0x2000, CRC(75bcbc22) SHA1(1e7e785735d27aa8cd8393b16b589a46ecd7956a) ) diff --git a/src/mame/drivers/namcos21_c67.cpp b/src/mame/drivers/namcos21_c67.cpp index 6fbde2a8e6d..81d688d9b19 100644 --- a/src/mame/drivers/namcos21_c67.cpp +++ b/src/mame/drivers/namcos21_c67.cpp @@ -290,7 +290,6 @@ public: m_palette(*this, "palette"), m_screen(*this, "screen"), m_audiobank(*this, "audiobank"), - m_c140_region(*this, "c140"), m_dpram(*this, "dpram"), m_namcos21_3d(*this, "namcos21_3d"), m_namcos21_dsp_c67(*this, "namcos21dsp_c67") @@ -318,7 +317,6 @@ private: required_device m_palette; required_device m_screen; required_memory_bank m_audiobank; - required_region_ptr m_c140_region; required_shared_ptr m_dpram; required_device m_namcos21_3d; required_device m_namcos21_dsp_c67; @@ -360,7 +358,6 @@ private: void slave_map(address_map &map); void sound_map(address_map &map); - void c140_map(address_map &map); }; @@ -485,9 +482,9 @@ void namcos21_c67_state::sound_map(address_map &map) map(0x0000, 0x3fff).bankr("audiobank"); /* banked */ map(0x3000, 0x3003).nopw(); /* ? */ map(0x4000, 0x4001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x5000, 0x51ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); - map(0x6000, 0x61ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); // mirrored - map(0x7000, 0x77ff).mirror(0x0800).rw(FUNC(namcos21_c67_state::dpram_byte_r), FUNC(namcos21_c67_state::dpram_byte_w)).share("dpram"); + map(0x5000, 0x6fff).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); + map(0x7000, 0x77ff).rw(FUNC(namcos21_c67_state::dpram_byte_r), FUNC(namcos21_c67_state::dpram_byte_w)).share("dpram"); + map(0x7800, 0x7fff).rw(FUNC(namcos21_c67_state::dpram_byte_r), FUNC(namcos21_c67_state::dpram_byte_w)); /* mirror */ map(0x8000, 0x9fff).ram(); map(0xa000, 0xbfff).nopw(); /* amplifier enable on 1st write */ map(0xc000, 0xffff).nopw(); /* avoid debug log noise; games write frequently to 0xe000 */ @@ -496,13 +493,6 @@ void namcos21_c67_state::sound_map(address_map &map) map(0xd000, 0xffff).rom().region("audiocpu", 0x01000); } -void namcos21_c67_state::c140_map(address_map &map) -{ - map.global_mask(0x7fffff); - // TODO: LSB not used? verify from schematics/real hardware - map(0x000000, 0x7fffff).lr16([this](offs_t offset) { return m_c140_region[((offset & 0x300000) >> 1) | (offset & 0x7ffff)]; }, "c140_rom_r"); -} - /*************************************************************/ /* I/O HD63705 MCU Memory declarations */ /*************************************************************/ @@ -839,7 +829,7 @@ void namcos21_c67_state::namcos21(machine_config &config) SPEAKER(config, "rspeaker").front_right(); C140(config, m_c140, 8000000/374); - m_c140->set_addrmap(0, &namcos21_c67_state::c140_map); + m_c140->set_bank_type(c140_device::C140_TYPE::SYSTEM21); m_c140->int1_callback().set_inputline(m_audiocpu, M6809_FIRQ_LINE); m_c140->add_route(0, "lspeaker", 0.50); m_c140->add_route(1, "rspeaker", 0.50); @@ -913,11 +903,11 @@ ROM_START( starblad ) ROM_LOAD32_BYTE( "st1-pt1-u.bin", 0x200002, 0x80000, CRC(ecf21047) SHA1(ddb13f5a2e7d192f0662fa420b49f89e1e991e66) ) ROM_LOAD32_BYTE( "st1-pt1-l.bin", 0x200003, 0x80000, CRC(01cb0407) SHA1(4b58860bbc353de8b4b8e83d12b919d9386846e8) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("st1-voi0.bin", 0x000000, 0x80000,CRC(5b3d43a9) SHA1(cdc04f19dc91dca9fa88ba0c2fca72aa195a3694) ) - ROM_LOAD16_BYTE("st1-voi1.bin", 0x100000, 0x80000,CRC(413e6181) SHA1(e827ec11f5755606affd2635718512aeac9354da) ) - ROM_LOAD16_BYTE("st1-voi2.bin", 0x200000, 0x80000,CRC(067d0720) SHA1(a853b2d43027a46c5e707fc677afdaae00f450c7) ) - ROM_LOAD16_BYTE("st1-voi3.bin", 0x300000, 0x80000,CRC(8b5aa45f) SHA1(e1214e639200758ad2045bde0368a2d500c1b84a) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("st1-voi0.bin", 0x000000, 0x80000,CRC(5b3d43a9) SHA1(cdc04f19dc91dca9fa88ba0c2fca72aa195a3694) ) + ROM_LOAD("st1-voi1.bin", 0x080000, 0x80000,CRC(413e6181) SHA1(e827ec11f5755606affd2635718512aeac9354da) ) + ROM_LOAD("st1-voi2.bin", 0x100000, 0x80000,CRC(067d0720) SHA1(a853b2d43027a46c5e707fc677afdaae00f450c7) ) + ROM_LOAD("st1-voi3.bin", 0x180000, 0x80000,CRC(8b5aa45f) SHA1(e1214e639200758ad2045bde0368a2d500c1b84a) ) ROM_REGION( 0x2000, "nvram", ROMREGION_ERASE00) // starblad needs default NVRAM to be all 0 @@ -958,11 +948,11 @@ ROM_START( starbladj ) ROM_LOAD32_BYTE( "st1-pt1-u.bin", 0x200002, 0x80000, CRC(ecf21047) SHA1(ddb13f5a2e7d192f0662fa420b49f89e1e991e66) ) ROM_LOAD32_BYTE( "st1-pt1-l.bin", 0x200003, 0x80000, CRC(01cb0407) SHA1(4b58860bbc353de8b4b8e83d12b919d9386846e8) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("st1-voi0.bin", 0x000000, 0x80000,CRC(5b3d43a9) SHA1(cdc04f19dc91dca9fa88ba0c2fca72aa195a3694) ) - ROM_LOAD16_BYTE("st1-voi1.bin", 0x100000, 0x80000,CRC(413e6181) SHA1(e827ec11f5755606affd2635718512aeac9354da) ) - ROM_LOAD16_BYTE("st1-voi2.bin", 0x200000, 0x80000,CRC(067d0720) SHA1(a853b2d43027a46c5e707fc677afdaae00f450c7) ) - ROM_LOAD16_BYTE("st1-voi3.bin", 0x300000, 0x80000,CRC(8b5aa45f) SHA1(e1214e639200758ad2045bde0368a2d500c1b84a) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("st1-voi0.bin", 0x000000, 0x80000,CRC(5b3d43a9) SHA1(cdc04f19dc91dca9fa88ba0c2fca72aa195a3694) ) + ROM_LOAD("st1-voi1.bin", 0x080000, 0x80000,CRC(413e6181) SHA1(e827ec11f5755606affd2635718512aeac9354da) ) + ROM_LOAD("st1-voi2.bin", 0x100000, 0x80000,CRC(067d0720) SHA1(a853b2d43027a46c5e707fc677afdaae00f450c7) ) + ROM_LOAD("st1-voi3.bin", 0x180000, 0x80000,CRC(8b5aa45f) SHA1(e1214e639200758ad2045bde0368a2d500c1b84a) ) ROM_REGION( 0x2000, "nvram", ROMREGION_ERASE00) // starblad needs default NVRAM to be all 0 @@ -1004,11 +994,11 @@ ROM_START( solvalou ) ROM_LOAD32_BYTE( "sv1-pt0-u.bin", 0x000002, 0x80000, CRC(4aacfc42) SHA1(f0e179e057183b41744ca429764f44306f0ce9bf) ) ROM_LOAD32_BYTE( "sv1-pt0-l.bin", 0x000003, 0x80000, CRC(6a4dddff) SHA1(9ed182d21d328c6a684ee6658a9dfcf3f3dd8646) ) /* least significant */ - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("sv1-voi0.bin", 0x000000, 0x80000,CRC(7f61bbcf) SHA1(b3b7e66e24d9cb16ebd139237c1e51f5d60c1585) ) - ROM_LOAD16_BYTE("sv1-voi1.bin", 0x100000, 0x80000,CRC(c732e66c) SHA1(14e75dd9bea4055f85eb2bcbf69cf6695a3f7ec4) ) - ROM_LOAD16_BYTE("sv1-voi2.bin", 0x200000, 0x80000,CRC(51076298) SHA1(ec52c9ae3029118f3ea3732948d6de28f5fba561) ) - ROM_LOAD16_BYTE("sv1-voi3.bin", 0x300000, 0x80000,CRC(33085ff3) SHA1(0a30b91618c250a5e7bd896a8ceeb3d16da178a9) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("sv1-voi0.bin", 0x000000, 0x80000,CRC(7f61bbcf) SHA1(b3b7e66e24d9cb16ebd139237c1e51f5d60c1585) ) + ROM_LOAD("sv1-voi1.bin", 0x080000, 0x80000,CRC(c732e66c) SHA1(14e75dd9bea4055f85eb2bcbf69cf6695a3f7ec4) ) + ROM_LOAD("sv1-voi2.bin", 0x100000, 0x80000,CRC(51076298) SHA1(ec52c9ae3029118f3ea3732948d6de28f5fba561) ) + ROM_LOAD("sv1-voi3.bin", 0x180000, 0x80000,CRC(33085ff3) SHA1(0a30b91618c250a5e7bd896a8ceeb3d16da178a9) ) ROM_END @@ -1050,11 +1040,11 @@ ROM_START( aircomb ) ROM_LOAD32_BYTE( "ac1-poi-lu.2k", 0x000002, 0x80000, CRC(d99084b9) SHA1(c604d60a2162af7610e5ff7c1aa4195f7df82efe) ) ROM_LOAD32_BYTE( "ac1-poi-ll.2n", 0x000003, 0x80000, CRC(abb32307) SHA1(8e936ba99479215dd33a951d81ec2b04020dfd62) ) /* least significant */ - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("ac1-voi0.12b", 0x000000, 0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) ) - ROM_LOAD16_BYTE("ac1-voi1.12c", 0x100000, 0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) ) - ROM_LOAD16_BYTE("ac1-voi2.12d", 0x200000, 0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) ) - ROM_LOAD16_BYTE("ac1-voi3.12e", 0x300000, 0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("ac1-voi0.12b", 0x000000, 0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) ) + ROM_LOAD("ac1-voi1.12c", 0x080000, 0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) ) + ROM_LOAD("ac1-voi2.12d", 0x100000, 0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) ) + ROM_LOAD("ac1-voi3.12e", 0x180000, 0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) ) ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "gal16v8a-3pdsp5.17d", 0x0000, 0x0117, CRC(799c1f26) SHA1(d28ed1b9fa78180c5a0b01a7198a2870137c7349) ) @@ -1103,11 +1093,11 @@ ROM_START( aircombj ) ROM_LOAD32_BYTE( "ac1-poi-lu.2k", 0x000002, 0x80000, CRC(d99084b9) SHA1(c604d60a2162af7610e5ff7c1aa4195f7df82efe) ) ROM_LOAD32_BYTE( "ac1-poi-ll.2n", 0x000003, 0x80000, CRC(abb32307) SHA1(8e936ba99479215dd33a951d81ec2b04020dfd62) ) /* least significant */ - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("ac1-voi0.12b", 0x000000, 0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) ) - ROM_LOAD16_BYTE("ac1-voi1.12c", 0x100000, 0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) ) - ROM_LOAD16_BYTE("ac1-voi2.12d", 0x200000, 0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) ) - ROM_LOAD16_BYTE("ac1-voi3.12e", 0x300000, 0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("ac1-voi0.12b", 0x000000, 0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) ) + ROM_LOAD("ac1-voi1.12c", 0x080000, 0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) ) + ROM_LOAD("ac1-voi2.12d", 0x100000, 0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) ) + ROM_LOAD("ac1-voi3.12e", 0x180000, 0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) ) ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "gal16v8a-3pdsp5.17d", 0x0000, 0x0117, CRC(799c1f26) SHA1(d28ed1b9fa78180c5a0b01a7198a2870137c7349) ) @@ -1159,11 +1149,11 @@ ROM_START( cybsled ) ROM_LOAD32_BYTE( "cy1-poi-lu2.2l", 0x200002, 0x80000, CRC(61d816d4) SHA1(7991957b910d32530151abc7f469fcf1de62d8f3) ) ROM_LOAD32_BYTE( "cy1-poi-ll2.2p", 0x200003, 0x80000, CRC(faf09158) SHA1(b56ebed6012362b1d599c396a43e90a1e4d9dc38) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("cy1-voi0.12b", 0x000000, 0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) ) - ROM_LOAD16_BYTE("cy1-voi1.12c", 0x100000, 0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) ) - ROM_LOAD16_BYTE("cy1-voi2.12d", 0x200000, 0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) ) - ROM_LOAD16_BYTE("cy1-voi3.12e", 0x300000, 0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("cy1-voi0.12b", 0x000000, 0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) ) + ROM_LOAD("cy1-voi1.12c", 0x080000, 0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) ) + ROM_LOAD("cy1-voi2.12d", 0x100000, 0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) ) + ROM_LOAD("cy1-voi3.12e", 0x180000, 0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "cybsled.nv", 0x0000, 0x2000, CRC(aa18bf9e) SHA1(3712d4d20e5f5f1c920e3f1f6a00101e874662d0) ) @@ -1210,11 +1200,11 @@ ROM_START( cybsleda ) ROM_LOAD32_BYTE( "cy1-poi-lu2.2l", 0x200002, 0x80000, CRC(61d816d4) SHA1(7991957b910d32530151abc7f469fcf1de62d8f3) ) ROM_LOAD32_BYTE( "cy1-poi-ll2.2p", 0x200003, 0x80000, CRC(faf09158) SHA1(b56ebed6012362b1d599c396a43e90a1e4d9dc38) ) - ROM_REGION16_BE( 0x400000, "c140", ROMREGION_ERASE00 ) /* sound samples */ - ROM_LOAD16_BYTE("cy1-voi0.12b", 0x000000, 0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) ) - ROM_LOAD16_BYTE("cy1-voi1.12c", 0x100000, 0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) ) - ROM_LOAD16_BYTE("cy1-voi2.12d", 0x200000, 0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) ) - ROM_LOAD16_BYTE("cy1-voi3.12e", 0x300000, 0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) ) + ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */ + ROM_LOAD("cy1-voi0.12b", 0x000000, 0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) ) + ROM_LOAD("cy1-voi1.12c", 0x080000, 0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) ) + ROM_LOAD("cy1-voi2.12d", 0x100000, 0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) ) + ROM_LOAD("cy1-voi3.12e", 0x180000, 0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) ) ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */ ROM_LOAD( "cybsleda.nv", 0x0000, 0x2000, CRC(a73bb03e) SHA1(e074bfeae14178c867070e06f6690ed13115f5fa) ) diff --git a/src/mame/drivers/namcos21_de.cpp b/src/mame/drivers/namcos21_de.cpp index ec45c4a4579..dd3a688578d 100644 --- a/src/mame/drivers/namcos21_de.cpp +++ b/src/mame/drivers/namcos21_de.cpp @@ -84,7 +84,6 @@ private: required_device m_palette; required_device m_screen; required_memory_bank m_audiobank; - required_region_ptr m_c140_region; required_shared_ptr m_dpram; required_device m_namcos21_3d; required_device m_namcos21_dsp; @@ -121,7 +120,6 @@ private: void driveyes_slave_map(address_map &map); void sound_map(address_map &map); - void c140_map(address_map &map); }; @@ -142,7 +140,6 @@ namco_de_pcbstack_device::namco_de_pcbstack_device(const machine_config &mconfig m_palette(*this, "palette"), m_screen(*this, "screen"), m_audiobank(*this, "audiobank"), - m_c140_region(*this, "c140"), m_dpram(*this, "dpram"), m_namcos21_3d(*this, "namcos21_3d"), m_namcos21_dsp(*this, "namcos21dsp") @@ -205,7 +202,7 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config) SPEAKER(config, "rspeaker").front_right(); C140(config, m_c140, 8000000/374); - m_c140->set_addrmap(0, &namco_de_pcbstack_device::c140_map); + m_c140->set_bank_type(c140_device::C140_TYPE::SYSTEM21); m_c140->int1_callback().set_inputline(m_audiocpu, M6809_FIRQ_LINE); m_c140->add_route(0, "lspeaker", 0.50); m_c140->add_route(1, "rspeaker", 0.50); @@ -294,9 +291,9 @@ void namco_de_pcbstack_device::sound_map(address_map &map) map(0x0000, 0x3fff).bankr("audiobank"); /* banked */ map(0x3000, 0x3003).nopw(); /* ? */ map(0x4000, 0x4001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)); - map(0x5000, 0x51ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); - map(0x6000, 0x61ff).mirror(0x0e00).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); // mirrored - map(0x7000, 0x77ff).mirror(0x0800).rw(FUNC(namco_de_pcbstack_device::dpram_byte_r), FUNC(namco_de_pcbstack_device::dpram_byte_w)).share("dpram"); + map(0x5000, 0x6fff).rw(m_c140, FUNC(c140_device::c140_r), FUNC(c140_device::c140_w)); + map(0x7000, 0x77ff).rw(FUNC(namco_de_pcbstack_device::dpram_byte_r), FUNC(namco_de_pcbstack_device::dpram_byte_w)).share("dpram"); + map(0x7800, 0x7fff).rw(FUNC(namco_de_pcbstack_device::dpram_byte_r), FUNC(namco_de_pcbstack_device::dpram_byte_w)); /* mirror */ map(0x8000, 0x9fff).ram(); map(0xa000, 0xbfff).nopw(); /* amplifier enable on 1st write */ map(0xc000, 0xffff).nopw(); /* avoid debug log noise; games write frequently to 0xe000 */ @@ -305,13 +302,6 @@ void namco_de_pcbstack_device::sound_map(address_map &map) map(0xd000, 0xffff).rom().region("audiocpu", 0x01000); } -void namco_de_pcbstack_device::c140_map(address_map &map) -{ - map.global_mask(0x7fffff); - // TODO: LSB not used? verify from schematics/real hardware - map(0x000000, 0x7fffff).lr16([this](offs_t offset) { return m_c140_region[((offset & 0x300000) >> 1) | (offset & 0x7ffff)]; }, "c140_rom_r"); -} - /*************************************************************/ /* I/O HD63705 MCU Memory declarations */ /*************************************************************/ @@ -706,11 +696,11 @@ ROM_START( driveyes ) ROM_REGION( 0x20000, "pcb_1:audiocpu", 0 ) /* Sound */ ROM_LOAD( "de1-snd0.8j", 0x000000, 0x020000, CRC(5474f203) SHA1(e0ae2f6978deb0c934d9311a334a6e36bb402aee) ) /* correct for center view */ - ROM_REGION16_BE( 0x400000, "pcb_1:c140", ROMREGION_ERASE00 ) /* sound samples - populated for center view only */ - ROM_LOAD16_BYTE("de1-voi0.12b", 0x080000, 0x40000, CRC(fc44adbd) SHA1(4268bb1f025e47a94212351d1c1cfd0e5029221f) ) - ROM_LOAD16_BYTE("de1-voi1.12c", 0x180000, 0x40000, CRC(a71dc55a) SHA1(5e746184db9144ab4e3a97b20195b92b0f56c8cc) ) - ROM_LOAD16_BYTE("de1-voi2.12d", 0x280000, 0x40000, CRC(4d32879a) SHA1(eae65f4b98cee9efe4e5dad7298c3717cfb1e6bf) ) - ROM_LOAD16_BYTE("de1-voi3.12e", 0x380000, 0x40000, CRC(e4832d18) SHA1(0460c79d3942aab89a765b0bd8bbddaf19a6d682) ) + ROM_REGION( 0x200000, "pcb_1:c140", 0 ) /* sound samples - populated for center view only */ + ROM_LOAD("de1-voi0.12b", 0x040000, 0x40000, CRC(fc44adbd) SHA1(4268bb1f025e47a94212351d1c1cfd0e5029221f) ) + ROM_LOAD("de1-voi1.12c", 0x0c0000, 0x40000, CRC(a71dc55a) SHA1(5e746184db9144ab4e3a97b20195b92b0f56c8cc) ) + ROM_LOAD("de1-voi2.12d", 0x140000, 0x40000, CRC(4d32879a) SHA1(eae65f4b98cee9efe4e5dad7298c3717cfb1e6bf) ) + ROM_LOAD("de1-voi3.12e", 0x1c0000, 0x40000, CRC(e4832d18) SHA1(0460c79d3942aab89a765b0bd8bbddaf19a6d682) ) ROM_REGION( 0x8000, "pcb_1:c68mcu:external", ROMREGION_ERASE00 ) /* C68 (M37450) I/O MCU program */ /* external ROM not populated, unclear how it would map */ @@ -752,7 +742,7 @@ ROM_START( driveyes ) ROM_REGION( 0x20000, "pcb_0:audiocpu", 0 ) /* Sound */ ROM_LOAD( "de1-snd0r.8j", 0x000000, 0x020000, CRC(7bbeda42) SHA1(fe840cc9069758928492bbeec79acded18daafd9) ) // correct for left & right views - ROM_REGION16_BE( 0x400000, "pcb_0:c140", ROMREGION_ERASE00 ) /* sound samples */ + ROM_REGION( 0x200000, "pcb_0:c140", ROMREGION_ERASE00 ) /* sound samples */ /* unpopulated for left / right views */ ROM_REGION( 0x8000, "pcb_0:c68mcu:external", ROMREGION_ERASE00 ) /* C68 (M37450) I/O MCU program */ @@ -795,7 +785,7 @@ ROM_START( driveyes ) ROM_REGION( 0x20000, "pcb_2:audiocpu", 0 ) /* Sound */ ROM_LOAD( "de1-snd0r.8j", 0x000000, 0x020000, CRC(7bbeda42) SHA1(fe840cc9069758928492bbeec79acded18daafd9) ) // correct for left & right views - ROM_REGION16_BE( 0x400000, "pcb_2:c140", ROMREGION_ERASE00 ) /* sound samples */ + ROM_REGION( 0x200000, "pcb_2:c140", ROMREGION_ERASE00 ) /* sound samples */ /* unpopulated for left / right views */ ROM_REGION( 0x8000, "pcb_2:c68mcu:external", ROMREGION_ERASE00 ) /* C68 (M37450) I/O MCU program */ diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp index c45c5c39c2d..d6b80d4b0e4 100644 --- a/src/mame/drivers/vgmplay.cpp +++ b/src/mame/drivers/vgmplay.cpp @@ -126,14 +126,6 @@ enum vgm_chip CT_COUNT, }; -enum C140_TYPE -{ - C140_LINEAR = 0, - C140_SYSTEM2, - C140_SYSTEM21, - C140_ASIC219 -}; - class vgmplay_device : public cpu_device { public: @@ -258,8 +250,7 @@ public: template DECLARE_READ8_MEMBER(upd7759_rom_r); template DECLARE_READ8_MEMBER(okim6295_rom_r); template DECLARE_READ8_MEMBER(k054539_rom_r); - template DECLARE_READ16_MEMBER(c140_rom_r); - template DECLARE_READ16_MEMBER(c219_rom_r); + template DECLARE_READ8_MEMBER(c140_rom_r); template DECLARE_READ8_MEMBER(k053260_rom_r); template DECLARE_READ8_MEMBER(qsound_rom_r); template DECLARE_READ8_MEMBER(es5505_rom_r); @@ -276,9 +267,6 @@ public: template DECLARE_WRITE8_MEMBER(okim6295_bank_w); template DECLARE_WRITE8_MEMBER(okim6295_nmk112_bank_w); - void set_c140_bank_type(int index, C140_TYPE type); - C140_TYPE c140_bank(int index) { return m_c140_bank[index]; } - void stop(); void pause(); bool paused() const { return m_paused; } @@ -391,8 +379,6 @@ private: uint32_t m_okim6295_bank[2]; uint32_t m_okim6295_nmk112_bank[2][4]; - C140_TYPE m_c140_bank[2]; - int m_sega32x_channel_hack; int m_nes_apu_channel_hack[2]; uint8_t m_c6280_channel[2]; @@ -433,7 +419,6 @@ public: template DECLARE_WRITE8_MEMBER(okim6295_clock_w); template DECLARE_WRITE8_MEMBER(okim6295_pin7_w); template DECLARE_WRITE8_MEMBER(scc_w); - template DECLARE_WRITE8_MEMBER(c140_c219_w); void vgmplay(machine_config &config); void file_map(address_map &map); @@ -455,7 +440,6 @@ public: template void okim6295_map(address_map &map); template void k054539_map(address_map &map); template void c140_map(address_map &map); - template void c219_map(address_map &map); template void k053260_map(address_map &map); template void qsound_map(address_map &map); template void scsp_map(address_map &map); @@ -504,7 +488,6 @@ private: required_device_array m_k054539; required_device_array m_huc6280; required_device_array m_c140; - required_device_array m_c219; required_device_array m_k053260; required_device_array m_pokey; required_device m_qsound; @@ -2532,31 +2515,9 @@ READ8_MEMBER(vgmplay_device::k054539_rom_r) } template -READ16_MEMBER(vgmplay_device::c140_rom_r) +READ8_MEMBER(vgmplay_device::c140_rom_r) { - switch (m_c140_bank[Index]) - { - case C140_SYSTEM2: - offset = ((offset & 0x200000) >> 2) | (offset & 0x7ffff); - return rom_r(Index, 0x8d, offset) << 8; // high 8 bit only - case C140_SYSTEM21: - offset = ((offset & 0x300000) >> 1) | (offset & 0x7ffff); - return rom_r(Index, 0x8d, offset) << 8; // high 8 bit only - case C140_ASIC219: - return 0; // c140 not used in this mode - default: - return (rom_r(Index, 0x8d, offset * 2 + 1) << 8) | rom_r(Index, 0x8d, offset * 2); // 8 bit sample - } - return 0; -} - -template -READ16_MEMBER(vgmplay_device::c219_rom_r) -{ - if (m_c140_bank[Index] == C140_ASIC219) - return (rom_r(Index, 0x8d, offset * 2 + 1) << 8) | rom_r(Index, 0x8d, offset * 2); // 8 bit sample - - return 0; + return rom_r(Index, 0x8d, offset); } template @@ -2630,7 +2591,6 @@ vgmplay_state::vgmplay_state(const machine_config &mconfig, device_type type, co , m_k054539(*this, "k054539.%d", 0) , m_huc6280(*this, "huc6280.%d", 0) , m_c140(*this, "c140.%d", 0) - , m_c219(*this, "c219.%d", 0) , m_k053260(*this, "k053260.%d", 0) , m_pokey(*this, "pokey.%d", 0) , m_qsound(*this, "qsound") @@ -2682,25 +2642,20 @@ static const uint8_t vgm_ay8910_flags(uint8_t vgm_flags) return flags; } -static const C140_TYPE c140_bank_type(uint8_t vgm_type) +static const c140_device::C140_TYPE c140_bank_type(uint8_t vgm_type) { switch (vgm_type) { case 0: default: - return C140_SYSTEM2; + return c140_device::C140_TYPE::SYSTEM2; case 1: - return C140_SYSTEM21; + return c140_device::C140_TYPE::SYSTEM21; case 2: - return C140_ASIC219; + return c140_device::C140_TYPE::ASIC219; } } -void vgmplay_device::set_c140_bank_type(int index, C140_TYPE type) -{ - m_c140_bank[index] = type; -} - QUICKLOAD_LOAD_MEMBER(vgmplay_state::load_file) { m_vgmplay->stop(); @@ -2919,9 +2874,8 @@ QUICKLOAD_LOAD_MEMBER(vgmplay_state::load_file) m_k054539[0]->init_flags(version >= 0x161 && header_size >= 0x96 ? r8(0x95) : 0); m_k054539[1]->init_flags(version >= 0x161 && header_size >= 0x96 ? r8(0x95) : 0); - C140_TYPE c140_type = c140_bank_type(version >= 0x161 && header_size >= 0x96 ? r8(0x96) : 0); - m_vgmplay->set_c140_bank_type(0, c140_type); - m_vgmplay->set_c140_bank_type(1, c140_type); + m_c140[0]->set_bank_type(c140_bank_type(version >= 0x161 && header_size >= 0x96 ? r8(0x96) : 0)); + m_c140[1]->set_bank_type(c140_bank_type(version >= 0x161 && header_size >= 0x96 ? r8(0x96) : 0)); m_okim6295_pin7[0] = setup_device(*m_okim6295[0], 0, CT_OKIM6295, 0x98, 0x161); m_okim6295_pin7[1] = setup_device(*m_okim6295[1], 1, CT_OKIM6295, 0x98, 0x161); @@ -2947,16 +2901,8 @@ QUICKLOAD_LOAD_MEMBER(vgmplay_state::load_file) setup_device(*m_huc6280[0], 0, CT_C6280, 0xa4, 0x161); setup_device(*m_huc6280[1], 1, CT_C6280, 0xa4, 0x161); - if (c140_type == C140_ASIC219) - { - setup_device(*m_c219[0], 0, CT_C140, 0xa8, 0x161); - setup_device(*m_c219[1], 1, CT_C140, 0xa8, 0x161); - } - else - { - setup_device(*m_c140[0], 0, CT_C140, 0xa8, 0x161); - setup_device(*m_c140[1], 1, CT_C140, 0xa8, 0x161); - } + setup_device(*m_c140[0], 0, CT_C140, 0xa8, 0x161); + setup_device(*m_c140[1], 1, CT_C140, 0xa8, 0x161); setup_device(*m_k053260[0], 0, CT_K053260, 0xac, 0x161); setup_device(*m_k053260[1], 1, CT_K053260, 0xac, 0x161); setup_device(*m_pokey[0], 0, CT_POKEY, 0xb0, 0x161); @@ -3201,15 +3147,6 @@ WRITE8_MEMBER(vgmplay_state::scc_w) } } -template -WRITE8_MEMBER(vgmplay_state::c140_c219_w) -{ - if (m_vgmplay->c140_bank(Index) == C140_ASIC219) - m_c219[Index]->c219_w(offset, data); - else - m_c140[Index]->c140_w(offset, data); -} - INPUT_CHANGED_MEMBER(vgmplay_state::key_pressed) { if (!newval && param != VGMPLAY_HOLD) @@ -3369,8 +3306,8 @@ void vgmplay_state::soundchips_map(address_map &map) map(vgmplay_device::A_K054539_1, vgmplay_device::A_K054539_1 + 0x22f).w(m_k054539[1], FUNC(k054539_device::write)); map(vgmplay_device::A_C6280_0, vgmplay_device::A_C6280_0 + 0xf).w("huc6280.0:psg", FUNC(c6280_device::c6280_w)); map(vgmplay_device::A_C6280_1, vgmplay_device::A_C6280_1 + 0xf).w("huc6280.1:psg", FUNC(c6280_device::c6280_w)); - map(vgmplay_device::A_C140_0, vgmplay_device::A_C140_0 + 0x1ff).w(FUNC(vgmplay_state::c140_c219_w<0>)); - map(vgmplay_device::A_C140_1, vgmplay_device::A_C140_1 + 0x1ff).w(FUNC(vgmplay_state::c140_c219_w<1>)); + map(vgmplay_device::A_C140_0, vgmplay_device::A_C140_0 + 0x1ff).w(m_c140[0], FUNC(c140_device::c140_w)); + map(vgmplay_device::A_C140_1, vgmplay_device::A_C140_1 + 0x1ff).w(m_c140[1], FUNC(c140_device::c140_w)); map(vgmplay_device::A_K053260_0, vgmplay_device::A_K053260_0 + 0x2f).w(m_k053260[0], FUNC(k053260_device::write)); map(vgmplay_device::A_K053260_1, vgmplay_device::A_K053260_1 + 0x2f).w(m_k053260[1], FUNC(k053260_device::write)); map(vgmplay_device::A_POKEY_0, vgmplay_device::A_POKEY_0 + 0xf).w(m_pokey[0], FUNC(pokey_device::write)); @@ -3493,13 +3430,7 @@ void vgmplay_state::k054539_map(address_map &map) template void vgmplay_state::c140_map(address_map &map) { - map(0, 0x1ffffff).r("vgmplay", FUNC(vgmplay_device::c140_rom_r)); -} - -template -void vgmplay_state::c219_map(address_map &map) -{ - map(0, 0x07ffff).r("vgmplay", FUNC(vgmplay_device::c219_rom_r)); + map(0, 0x1fffff).r("vgmplay", FUNC(vgmplay_device::c140_rom_r)); } template @@ -3873,16 +3804,6 @@ void vgmplay_state::vgmplay(machine_config &config) m_c140[1]->add_route(0, m_mixer, 0.50, AUTO_ALLOC_INPUT, 0); m_c140[1]->add_route(1, m_mixer, 0.50, AUTO_ALLOC_INPUT, 1); - C219(config, m_c219[0], 0); - m_c219[0]->set_addrmap(0, &vgmplay_state::c219_map<0>); - m_c219[0]->add_route(0, m_mixer, 0.50, AUTO_ALLOC_INPUT, 0); - m_c219[0]->add_route(1, m_mixer, 0.50, AUTO_ALLOC_INPUT, 1); - - C219(config, m_c219[1], 0); - m_c219[1]->set_addrmap(0, &vgmplay_state::c219_map<1>); - m_c219[1]->add_route(0, m_mixer, 0.50, AUTO_ALLOC_INPUT, 0); - m_c219[1]->add_route(1, m_mixer, 0.50, AUTO_ALLOC_INPUT, 1); - K053260(config, m_k053260[0], 0); m_k053260[0]->set_addrmap(0, &vgmplay_state::k053260_map<0>); m_k053260[0]->add_route(0, m_mixer, 1, AUTO_ALLOC_INPUT, 0); diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h index 3e3907e62cd..c41bf3349b8 100644 --- a/src/mame/includes/namcona1.h +++ b/src/mame/includes/namcona1.h @@ -30,7 +30,7 @@ public: m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), m_palette(*this, "palette"), - m_c219(*this, "c219"), + m_c140(*this, "c140"), m_muxed_inputs(*this, { { "P4", "DSW", "P1", "P2" } }), m_io_p3(*this, "P3"), m_workram(*this, "workram"), @@ -93,7 +93,7 @@ protected: void scanline_interrupt(int scanline); void namcona1_main_map(address_map &map); - void namcona1_c219_map(address_map &map); + void namcona1_c140_map(address_map &map); virtual void machine_start() override; virtual void machine_reset() override; @@ -127,7 +127,7 @@ protected: required_device m_gfxdecode; required_device m_screen; required_device m_palette; - required_device m_c219; + required_device m_c140; required_ioport_array<4> m_muxed_inputs; required_ioport m_io_p3; diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h index df80e3bab52..4138570b452 100644 --- a/src/mame/includes/namcos2.h +++ b/src/mame/includes/namcos2.h @@ -55,7 +55,6 @@ public: m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), m_audiobank(*this, "audiobank"), - m_c140_region(*this, "c140"), m_dpram(*this, "dpram"), m_spriteram(*this, "spriteram"), m_c45_road(*this, "c45_road"), @@ -183,7 +182,6 @@ enum optional_device m_gfxdecode; required_device m_screen; required_memory_bank m_audiobank; - required_region_ptr m_c140_region; std::unique_ptr m_eeprom; @@ -195,7 +193,6 @@ enum DECLARE_WRITE8_MEMBER(eeprom_w); DECLARE_READ8_MEMBER(eeprom_r); - DECLARE_READ16_MEMBER(c140_rom_r); DECLARE_WRITE8_MEMBER(sound_bankselect_w); DECLARE_WRITE8_MEMBER(sound_reset_w); @@ -251,7 +248,6 @@ enum void RozCB_luckywld(uint16_t code, int *tile, int *mask, int which); void RozCB_metlhawk(uint16_t code, int *tile, int *mask, int which); - void c140_default_am(address_map &map); void common_default_am(address_map &map); void common_finallap_am(address_map &map); void common_suzuka8h_am(address_map &map); diff --git a/src/mame/machine/namcos2.cpp b/src/mame/machine/namcos2.cpp index f0d3dba8133..4014dd4bd16 100644 --- a/src/mame/machine/namcos2.cpp +++ b/src/mame/machine/namcos2.cpp @@ -397,34 +397,3 @@ WRITE8_MEMBER( namcos2_state::sound_bankselect_w ) { m_audiobank->set_entry(data>>4); } - -READ16_MEMBER( namcos2_state::c140_rom_r ) -{ - /* - Verified from schematics: - MD0-MD3 : Connected in 3N "voice0" D0-D3 or D4-D7, Nibble changeable with 74LS157 - MD4-MD11 : Connected in 3M "voice1" or 3L "voice2" D0-D7 - MA0-MA18 : Connected in Address bus of ROMs - MA19 : Connected in 74LS157 Select Pin - MA20 : Connected in 74LS157 Strobe(Enable) Pin - MA21 : ROM select in MD4-MD11 area - */ - if (m_c140_region != nullptr) - { - bool romsel = BIT(offset, 21); - bool lsb_en = BIT(~offset, 20); - bool lsb_swap = BIT(~offset, 19); - offset &= 0x7ffff; - u16 ret = m_c140_region[(romsel << 19) | offset] & 0xff00; // voice1 or voice2 - if (lsb_en) - { - u8 lsb = m_c140_region[offset] & 0xff; // voice0 - if (lsb_swap) - lsb <<= 4; // D0-D3 - - ret |= (lsb & 0xf0); - } - return ret; - } - return 0; -}