diff options
author | 2020-08-28 04:28:01 +0900 | |
---|---|---|
committer | 2020-08-27 15:28:01 -0400 | |
commit | 314c80ea0ea9060777fee430005ebcf850a04a07 (patch) | |
tree | 5e1ce9369c75f78e5cbe1fb1966fffaa379693a4 | |
parent | 471781f99ae8242319beb474649dd4afefa5e3f7 (diff) |
es5506.cpp: Updates [cam900]
* Correct Taito ES5505 Bankswitching behavior
* Sample bank per ES5505 voice is actually taito_en.cpp specific
* Move external bank behavior into taito_en.cpp, Add getter for voice index
* Add precalculated ES5505 bank table for reduce performance issue, Add getter for CPU
-rw-r--r-- | src/devices/sound/es5506.cpp | 585 | ||||
-rw-r--r-- | src/devices/sound/es5506.h | 98 | ||||
-rw-r--r-- | src/mame/audio/taito_en.cpp | 49 | ||||
-rw-r--r-- | src/mame/audio/taito_en.h | 14 | ||||
-rw-r--r-- | src/mame/drivers/galastrm.cpp | 10 | ||||
-rw-r--r-- | src/mame/drivers/groundfx.cpp | 10 | ||||
-rw-r--r-- | src/mame/drivers/gunbustr.cpp | 14 | ||||
-rw-r--r-- | src/mame/drivers/macrossp.cpp | 36 | ||||
-rw-r--r-- | src/mame/drivers/ssv.cpp | 85 | ||||
-rw-r--r-- | src/mame/drivers/superchs.cpp | 18 | ||||
-rw-r--r-- | src/mame/drivers/taito_f3.cpp | 205 | ||||
-rw-r--r-- | src/mame/drivers/taitojc.cpp | 41 | ||||
-rw-r--r-- | src/mame/drivers/undrfire.cpp | 27 | ||||
-rw-r--r-- | src/mame/includes/macrossp.h | 3 | ||||
-rw-r--r-- | src/mame/includes/ssv.h | 5 | ||||
-rw-r--r-- | src/mame/includes/taito_f3.h | 2 |
16 files changed, 625 insertions, 577 deletions
diff --git a/src/devices/sound/es5506.cpp b/src/devices/sound/es5506.cpp index 2e2ba4c8122..481830271b5 100644 --- a/src/devices/sound/es5506.cpp +++ b/src/devices/sound/es5506.cpp @@ -84,6 +84,7 @@ Ensoniq OTIS - ES5505 Ensoniq OTTO - #include "emu.h" #include "es5506.h" +#include <algorithm> #if ES5506_MAKE_WAVS #include "sound/wavwrite.h" @@ -149,38 +150,44 @@ enum : u16 { es550x_device::es550x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, type, tag, owner, clock) , device_sound_interface(mconfig, *this) + , device_memory_interface(mconfig, *this) , m_stream(nullptr) , m_sample_rate(0) , m_master_clock(0) + , m_address_acc_shift(0) + , m_address_acc_mask(0) + , m_volume_shift(0) + , m_volume_acc_shift(0) , m_current_page(0) , m_active_voices(0) , m_mode(0) - , m_irqv(0) + , m_irqv(0x80) + , m_voice_index(0) , m_scratch(nullptr) , m_ulaw_lookup(nullptr) , m_volume_lookup(nullptr) #if ES5506_MAKE_WAVS , m_wavraw(nullptr) #endif - , m_region0(nullptr) - , m_region1(nullptr) - , m_region2(nullptr) - , m_region3(nullptr) + , m_region0(*this, finder_base::DUMMY_TAG) + , m_region1(*this, finder_base::DUMMY_TAG) + , m_region2(*this, finder_base::DUMMY_TAG) + , m_region3(*this, finder_base::DUMMY_TAG) , m_channels(0) , m_irq_cb(*this) , m_read_port_cb(*this) , m_sample_rate_changed_cb(*this) { - for (auto & elem : m_region_base) - { - elem = nullptr; - } } DEFINE_DEVICE_TYPE(ES5506, es5506_device, "es5506", "Ensoniq ES5506") es5506_device::es5506_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : es550x_device(mconfig, ES5506, tag, owner, clock) + , m_bank0_config("bank0", ENDIANNESS_BIG, 16, 21, -1) // 21 bit address bus, word addressing only + , m_bank1_config("bank1", ENDIANNESS_BIG, 16, 21, -1) + , m_bank2_config("bank2", ENDIANNESS_BIG, 16, 21, -1) + , m_bank3_config("bank3", ENDIANNESS_BIG, 16, 21, -1) , m_write_latch(0) , m_read_latch(0) , m_wst(0) @@ -194,102 +201,79 @@ es5506_device::es5506_device(const machine_config &mconfig, const char *tag, dev //------------------------------------------------- void es550x_device::device_start() { - /* initialize the rest of the structure */ + // initialize the rest of the structure m_master_clock = clock(); m_irq_cb.resolve(); m_read_port_cb.resolve(); m_sample_rate_changed_cb.resolve(); m_irqv = 0x80; - /* allocate memory */ + // allocate memory m_scratch = make_unique_clear<s32[]>(2 * MAX_SAMPLE_CHUNK); - /* register save */ + // register save save_item(NAME(m_sample_rate)); save_item(NAME(m_current_page)); save_item(NAME(m_active_voices)); save_item(NAME(m_mode)); save_item(NAME(m_irqv)); + save_item(NAME(m_voice_index)); save_pointer(NAME(m_scratch), 2 * MAX_SAMPLE_CHUNK); - for (int j = 0; j < 32; j++) - { - save_item(NAME(m_voice[j].control), j); - save_item(NAME(m_voice[j].freqcount), j); - save_item(NAME(m_voice[j].start), j); - save_item(NAME(m_voice[j].end), j); - save_item(NAME(m_voice[j].accum), j); - save_item(NAME(m_voice[j].lvol), j); - save_item(NAME(m_voice[j].rvol), j); - save_item(NAME(m_voice[j].k2), j); - save_item(NAME(m_voice[j].k1), j); - save_item(NAME(m_voice[j].o4n1), j); - save_item(NAME(m_voice[j].o3n1), j); - save_item(NAME(m_voice[j].o3n2), j); - save_item(NAME(m_voice[j].o2n1), j); - save_item(NAME(m_voice[j].o2n2), j); - save_item(NAME(m_voice[j].o1n1), j); - save_item(NAME(m_voice[j].exbank), j); - } - + save_item(STRUCT_MEMBER(m_voice, control)); + save_item(STRUCT_MEMBER(m_voice, freqcount)); + save_item(STRUCT_MEMBER(m_voice, start)); + save_item(STRUCT_MEMBER(m_voice, end)); + save_item(STRUCT_MEMBER(m_voice, accum)); + save_item(STRUCT_MEMBER(m_voice, lvol)); + save_item(STRUCT_MEMBER(m_voice, rvol)); + save_item(STRUCT_MEMBER(m_voice, k2)); + save_item(STRUCT_MEMBER(m_voice, k1)); + save_item(STRUCT_MEMBER(m_voice, o4n1)); + save_item(STRUCT_MEMBER(m_voice, o3n1)); + save_item(STRUCT_MEMBER(m_voice, o3n2)); + save_item(STRUCT_MEMBER(m_voice, o2n1)); + save_item(STRUCT_MEMBER(m_voice, o2n2)); + save_item(STRUCT_MEMBER(m_voice, o1n1)); } void es5506_device::device_start() { es550x_device::device_start(); - int channels = 1; /* 1 channel by default, for backward compatibility */ + int channels = 1; // 1 channel by default, for backward compatibility - /* only override the number of channels if the value is in the valid range 1 .. 6 */ + // only override the number of channels if the value is in the valid range 1 .. 6 if (1 <= m_channels && m_channels <= 6) channels = m_channels; - /* create the stream */ + // create the stream m_stream = machine().sound().stream_alloc(*this, 0, 2 * channels, clock() / (16*32)); - /* initialize the regions */ - m_region_base[0] = m_region_base[1] = m_region_base[2] = m_region_base[3] = nullptr; - if (m_region0) - { - memory_region *region0 = machine().root_device().memregion(m_region0); - if (region0 != nullptr) - { - m_region_base[0] = (u16 *)region0->base(); - } - } - if (m_region1) - { - memory_region *region1 = machine().root_device().memregion(m_region1); - if (region1 != nullptr) - { - m_region_base[1] = (u16 *)region1->base(); - } - } - if (m_region2) - { - memory_region *region2 = machine().root_device().memregion(m_region2); - if (region2 != nullptr) - { - m_region_base[2] = (u16 *)region2->base(); - } - } - if (m_region3) - { - memory_region *region3 = machine().root_device().memregion(m_region3); - if (region3 != nullptr) - { - m_region_base[3] = (u16 *)region3->base(); - } - } + // initialize the regions + if (m_region0 && !has_configured_map(0)) + space(0).install_rom(0, std::min<offs_t>((1 << ADDRESS_INTEGER_BIT_ES5506) - 1, (m_region0->bytes() / 2) - 1), m_region0->base()); + + if (m_region1 && !has_configured_map(1)) + space(1).install_rom(0, std::min<offs_t>((1 << ADDRESS_INTEGER_BIT_ES5506) - 1, (m_region1->bytes() / 2) - 1), m_region1->base()); + + if (m_region2 && !has_configured_map(2)) + space(2).install_rom(0, std::min<offs_t>((1 << ADDRESS_INTEGER_BIT_ES5506) - 1, (m_region2->bytes() / 2) - 1), m_region2->base()); - /* compute the tables */ + if (m_region3 && !has_configured_map(3)) + space(3).install_rom(0, std::min<offs_t>((1 << ADDRESS_INTEGER_BIT_ES5506) - 1, (m_region3->bytes() / 2) - 1), m_region3->base()); + + for (int s = 0; s < 4; s++) + space(s).cache(m_cache[s]); + + // compute the tables compute_tables(VOLUME_BIT_ES5506, 4, 8); // 4 bit exponent, 8 bit mantissa - /* initialize the rest of the structure */ + // initialize the rest of the structure m_channels = channels; - /* KT-76 assumes all voices are active on an ES5506 without setting them! */ + // KT-76 assumes all voices are active on an ES5506 without setting them! m_active_voices = 31; m_sample_rate = m_master_clock / (16 * (m_active_voices + 1)); m_stream->set_sample_rate(m_sample_rate); @@ -297,7 +281,7 @@ void es5506_device::device_start() // 21 bit integer and 11 bit fraction get_accum_mask(ADDRESS_INTEGER_BIT_ES5506, ADDRESS_FRAC_BIT_ES5506); - /* register save */ + // register save save_item(NAME(m_write_latch)); save_item(NAME(m_read_latch)); @@ -305,17 +289,14 @@ void es5506_device::device_start() save_item(NAME(m_wend)); save_item(NAME(m_lrend)); - for (int j = 0; j < 32; j++) - { - save_item(NAME(m_voice[j].ecount), j); - save_item(NAME(m_voice[j].lvramp), j); - save_item(NAME(m_voice[j].rvramp), j); - save_item(NAME(m_voice[j].k2ramp), j); - save_item(NAME(m_voice[j].k1ramp), j); - save_item(NAME(m_voice[j].filtcount), j); - } + save_item(STRUCT_MEMBER(m_voice, ecount)); + save_item(STRUCT_MEMBER(m_voice, lvramp)); + save_item(STRUCT_MEMBER(m_voice, rvramp)); + save_item(STRUCT_MEMBER(m_voice, k2ramp)); + save_item(STRUCT_MEMBER(m_voice, k1ramp)); + save_item(STRUCT_MEMBER(m_voice, filtcount)); - /* success */ + // success } //------------------------------------------------- @@ -359,10 +340,27 @@ void es550x_device::device_stop() #endif } +//------------------------------------------------- +// memory_space_config - return a description of +// any address spaces owned by this device +//------------------------------------------------- + +device_memory_interface::space_config_vector es5506_device::memory_space_config() const +{ + return space_config_vector{ + std::make_pair(0, &m_bank0_config), + std::make_pair(1, &m_bank1_config), + std::make_pair(2, &m_bank2_config), + std::make_pair(3, &m_bank3_config) + }; +} + DEFINE_DEVICE_TYPE(ES5505, es5505_device, "es5505", "Ensoniq ES5505") es5505_device::es5505_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : es550x_device(mconfig, ES5505, tag, owner, clock) + , m_bank0_config("bank0", ENDIANNESS_BIG, 16, 20, -1) // 20 bit address bus, word addressing only + , m_bank1_config("bank1", ENDIANNESS_BIG, 16, 20, -1) { } @@ -373,39 +371,49 @@ es5505_device::es5505_device(const machine_config &mconfig, const char *tag, dev void es5505_device::device_start() { es550x_device::device_start(); - int channels = 1; /* 1 channel by default, for backward compatibility */ + int channels = 1; // 1 channel by default, for backward compatibility - /* only override the number of channels if the value is in the valid range 1 .. 4 */ + // only override the number of channels if the value is in the valid range 1 .. 4 if (1 <= m_channels && m_channels <= 4) channels = m_channels; - /* create the stream */ + // create the stream m_stream = machine().sound().stream_alloc(*this, 0, 2 * channels, clock() / (16*32)); - /* initialize the regions */ - if (m_region0) - { - memory_region* region = machine().root_device().memregion(m_region0); - m_region_base[0] = region ? reinterpret_cast<u16 *>(region->base()) : nullptr; - } - if (m_region1) - { - memory_region* region = machine().root_device().memregion(m_region1); - m_region_base[1] = region ? reinterpret_cast<u16 *>(region->base()) : nullptr; - } + // initialize the regions + if (m_region0 && !has_configured_map(0)) + space(0).install_rom(0, std::min<offs_t>((1 << ADDRESS_INTEGER_BIT_ES5505) - 1, (m_region0->bytes() / 2) - 1), m_region0->base()); + + if (m_region1 && !has_configured_map(1)) + space(1).install_rom(0, std::min<offs_t>((1 << ADDRESS_INTEGER_BIT_ES5505) - 1, (m_region1->bytes() / 2) - 1), m_region1->base()); + + for (int s = 0; s < 2; s++) + space(s).cache(m_cache[s]); - /* compute the tables */ + // compute the tables compute_tables(VOLUME_BIT_ES5505, 4, 4); // 4 bit exponent, 4 bit mantissa - /* initialize the rest of the structure */ + // initialize the rest of the structure m_channels = channels; // 20 bit integer and 9 bit fraction get_accum_mask(ADDRESS_INTEGER_BIT_ES5505, ADDRESS_FRAC_BIT_ES5505); - /* success */ + // success } +//------------------------------------------------- +// memory_space_config - return a description of +// any address spaces owned by this device +//------------------------------------------------- + +device_memory_interface::space_config_vector es5505_device::memory_space_config() const +{ + return space_config_vector{ + std::make_pair(0, &m_bank0_config), + std::make_pair(1, &m_bank1_config) + }; +} /********************************************************************************************** @@ -416,9 +424,9 @@ void es5505_device::device_start() void es550x_device::update_irq_state() { - /* ES5505/6 irq line has been set high - inform the host */ + // ES5505/6 irq line has been set high - inform the host if (!m_irq_cb.isnull()) - m_irq_cb(1); /* IRQB set high */ + m_irq_cb(1); // IRQB set high } void es550x_device::update_internal_irq_state() @@ -435,7 +443,7 @@ void es550x_device::update_internal_irq_state() m_irqv = 0x80; if (!m_irq_cb.isnull()) - m_irq_cb(0); /* IRQB set low */ + m_irq_cb(0); // IRQB set low } /********************************************************************************************** @@ -446,10 +454,10 @@ void es550x_device::update_internal_irq_state() void es550x_device::compute_tables(u32 total_volume_bit, u32 exponent_bit, u32 mantissa_bit) { - /* allocate ulaw lookup table */ + // allocate ulaw lookup table m_ulaw_lookup = make_unique_clear<s16[]>(1 << ULAW_MAXBITS); - /* generate ulaw lookup table */ + // generate ulaw lookup table for (int i = 0; i < (1 << ULAW_MAXBITS); i++) { const u16 rawval = (i << (16 - ULAW_MAXBITS)) | (1 << (15 - ULAW_MAXBITS)); @@ -468,10 +476,10 @@ void es550x_device::compute_tables(u32 total_volume_bit, u32 exponent_bit, u32 m const u32 volume_bit = (exponent_bit + mantissa_bit); m_volume_shift = total_volume_bit - volume_bit; const u32 volume_len = 1 << volume_bit; - /* allocate volume lookup table */ + // allocate volume lookup table m_volume_lookup = make_unique_clear<u32[]>(volume_len); - /* generate volume lookup table */ + // generate volume lookup table const u32 exponent_shift = 1 << exponent_bit; const u32 exponent_mask = exponent_shift - 1; @@ -488,14 +496,13 @@ void es550x_device::compute_tables(u32 total_volume_bit, u32 exponent_bit, u32 m } m_volume_acc_shift = (16 + exponent_mask) - VOLUME_ACC_BIT; - /* init the voices */ + // init the voices for (int j = 0; j < 32; j++) { m_voice[j].index = j; m_voice[j].control = CONTROL_STOPMASK; m_voice[j].lvol = (1 << (total_volume_bit - 1)); m_voice[j].rvol = (1 << (total_volume_bit - 1)); - m_voice[j].exbank = 0; } } @@ -561,53 +568,53 @@ static inline void update_2_pole(s32 &prev, s32 &pole, s32 sample) inline void es550x_device::apply_filters(es550x_voice *voice, s32 &sample) { - /* pole 1 is always low-pass using K1 */ + // pole 1 is always low-pass using K1 sample = apply_lowpass(sample, voice->k1, voice->o1n1); update_pole(voice->o1n1, sample); - /* pole 2 is always low-pass using K1 */ + // pole 2 is always low-pass using K1 sample = apply_lowpass(sample, voice->k1, voice->o2n1); update_2_pole(voice->o2n2, voice->o2n1, sample); - /* remaining poles depend on the current filter setting */ + // remaining poles depend on the current filter setting switch (get_lp(voice->control)) { case 0: - /* pole 3 is high-pass using K2 */ + // pole 3 is high-pass using K2 sample = apply_highpass(sample, voice->k2, voice->o3n1, voice->o2n2); update_2_pole(voice->o3n2, voice->o3n1, sample); - /* pole 4 is high-pass using K2 */ + // pole 4 is high-pass using K2 sample = apply_highpass(sample, voice->k2, voice->o4n1, voice->o3n2); update_pole(voice->o4n1, sample); break; case LP3: - /* pole 3 is low-pass using K1 */ + // pole 3 is low-pass using K1 sample = apply_lowpass(sample, voice->k1, voice->o3n1); update_2_pole(voice->o3n2, voice->o3n1, sample); - /* pole 4 is high-pass using K2 */ + // pole 4 is high-pass using K2 sample = apply_highpass(sample, voice->k2, voice->o4n1, voice->o3n2); update_pole(voice->o4n1, sample); break; case LP4: - /* pole 3 is low-pass using K2 */ + // pole 3 is low-pass using K2 sample = apply_lowpass(sample, voice->k2, voice->o3n1); update_2_pole(voice->o3n2, voice->o3n1, sample); - /* pole 4 is low-pass using K2 */ + // pole 4 is low-pass using K2 sample = apply_lowpass(sample, voice->k2, voice->o4n1); update_pole(voice->o4n1, sample); break; case LP3 | LP4: - /* pole 3 is low-pass using K1 */ + // pole 3 is low-pass using K1 sample = apply_lowpass(sample, voice->k1, voice->o3n1); update_2_pole(voice->o3n2, voice->o3n1, sample); - /* pole 4 is low-pass using K2 */ + // pole 4 is low-pass using K2 sample = apply_lowpass(sample, voice->k2, voice->o4n1); update_pole(voice->o4n1, sample); break; @@ -624,10 +631,10 @@ inline void es550x_device::apply_filters(es550x_voice *voice, s32 &sample) inline void es5506_device::update_envelopes(es550x_voice *voice) { const u32 volume_max = (1 << VOLUME_BIT_ES5506) - 1; - /* decrement the envelope counter */ + // decrement the envelope counter voice->ecount--; - /* ramp left volume */ + // ramp left volume if (voice->lvramp) { voice->lvol += (int8_t)voice->lvramp; @@ -635,7 +642,7 @@ inline void es5506_device::update_envelopes(es550x_voice *voice) else if (voice->lvol > volume_max) voice->lvol = volume_max; } - /* ramp right volume */ + // ramp right volume if (voice->rvramp) { voice->rvol += (int8_t)voice->rvramp; @@ -643,7 +650,7 @@ inline void es5506_device::update_envelopes(es550x_voice *voice) else if (voice->rvol > volume_max) voice->rvol = volume_max; } - /* ramp k1 filter constant */ + // ramp k1 filter constant if (voice->k1ramp && ((s32)voice->k1ramp >= 0 || !(voice->filtcount & 7))) { voice->k1 += (int8_t)voice->k1ramp; @@ -651,7 +658,7 @@ inline void es5506_device::update_envelopes(es550x_voice *voice) else if (voice->k1 > 0xffff) voice->k1 = 0xffff; } - /* ramp k2 filter constant */ + // ramp k2 filter constant if (voice->k2ramp && ((s32)voice->k2ramp >= 0 || !(voice->filtcount & 7))) { voice->k2 += (int8_t)voice->k2ramp; @@ -659,14 +666,14 @@ inline void es5506_device::update_envelopes(es550x_voice *voice) else if (voice->k2 > 0xffff) voice->k2 = 0xffff; } - /* update the filter constant counter */ + // update the filter constant counter voice->filtcount++; } inline void es5505_device::update_envelopes(es550x_voice *voice) { - /* no envelopes in ES5505 */ + // no envelopes in ES5505 voice->ecount = 0; } @@ -680,33 +687,33 @@ inline void es5505_device::update_envelopes(es550x_voice *voice) inline void es5506_device::check_for_end_forward(es550x_voice *voice, u64 &accum) { - /* are we past the end? */ + // are we past the end? if (accum > voice->end && !(voice->control & CONTROL_LEI)) { - /* generate interrupt if required */ + // generate interrupt if required if (voice->control & CONTROL_IRQE) voice->control |= CONTROL_IRQ; - /* handle the different types of looping */ + // handle the different types of looping switch (voice->control & CONTROL_LOOPMASK) { - /* non-looping */ + // non-looping case 0: voice->control |= CONTROL_STOP0; break; - /* uni-directional looping */ + // uni-directional looping case CONTROL_LPE: accum = (voice->start + (accum - voice->end)) & m_address_acc_mask; break; - /* trans-wave looping */ + // trans-wave looping case CONTROL_BLE: accum = (voice->start + (accum - voice->end)) & m_address_acc_mask; voice->control = (voice->control & ~CONTROL_LOOPMASK) | CONTROL_LEI; break; - /* bi-directional looping */ + // bi-directional looping case CONTROL_LPE | CONTROL_BLE: accum = (voice->end - (accum - voice->end)) & m_address_acc_mask; voice->control ^= CONTROL_DIR; @@ -717,33 +724,33 @@ inline void es5506_device::check_for_end_forward(es550x_voice *voice, u64 &accum inline void es5506_device::check_for_end_reverse(es550x_voice *voice, u64 &accum) { - /* are we past the end? */ + // are we past the end? if (accum < voice->start && !(voice->control & CONTROL_LEI)) { - /* generate interrupt if required */ + // generate interrupt if required if (voice->control & CONTROL_IRQE) voice->control |= CONTROL_IRQ; - /* handle the different types of looping */ + // handle the different types of looping switch (voice->control & CONTROL_LOOPMASK) { - /* non-looping */ + // non-looping case 0: voice->control |= CONTROL_STOP0; break; - /* uni-directional looping */ + // uni-directional looping case CONTROL_LPE: accum = (voice->end - (voice->start - accum)) & m_address_acc_mask; break; - /* trans-wave looping */ + // trans-wave looping case CONTROL_BLE: accum = (voice->end - (voice->start - accum)) & m_address_acc_mask; voice->control = (voice->control & ~CONTROL_LOOPMASK) | CONTROL_LEI; break; - /* bi-directional looping */ + // bi-directional looping case CONTROL_LPE | CONTROL_BLE: accum = (voice->start + (voice->start - accum)) & m_address_acc_mask; voice->control ^= CONTROL_DIR; @@ -755,28 +762,28 @@ inline void es5506_device::check_for_end_reverse(es550x_voice *voice, u64 &accum // ES5505 : BLE is ignored when LPE = 0 inline void es5505_device::check_for_end_forward(es550x_voice *voice, u64 &accum) { - /* are we past the end? */ + // are we past the end? if (accum > voice->end) { - /* generate interrupt if required */ + // generate interrupt if required if (voice->control & CONTROL_IRQE) voice->control |= CONTROL_IRQ; - /* handle the different types of looping */ + // handle the different types of looping switch (voice->control & CONTROL_LOOPMASK) { - /* non-looping */ + // non-looping case 0: case CONTROL_BLE: voice->control |= CONTROL_STOP0; break; - /* uni-directional looping */ + // uni-directional looping case CONTROL_LPE: accum = (voice->start + (accum - voice->end)) & m_address_acc_mask; break; - /* bi-directional looping */ + // bi-directional looping case CONTROL_LPE | CONTROL_BLE: accum = (voice->end - (accum - voice->end)) & m_address_acc_mask; voice->control ^= CONTROL_DIR; @@ -787,28 +794,28 @@ inline void es5505_device::check_for_end_forward(es550x_voice *voice, u64 &accum inline void es5505_device::check_for_end_reverse(es550x_voice *voice, u64 &accum) { - /* are we past the end? */ + // are we past the end? */ if (accum < voice->start) { - /* generate interrupt if required */ + // generate interrupt if required if (voice->control & CONTROL_IRQE) voice->control |= CONTROL_IRQ; - /* handle the different types of looping */ + // handle the different types of looping switch (voice->control & CONTROL_LOOPMASK) { - /* non-looping */ + // non-looping case 0: case CONTROL_BLE: voice->control |= CONTROL_STOP0; break; - /* uni-directional looping */ + // uni-directional looping case CONTROL_LPE: accum = (voice->end - (voice->start - accum)) & m_address_acc_mask; break; - /* bi-directional looping */ + // bi-directional looping case CONTROL_LPE | CONTROL_BLE: accum = (voice->start + (voice->start - accum)) & m_address_acc_mask; voice->control ^= CONTROL_DIR; @@ -818,140 +825,83 @@ inline void es5505_device::check_for_end_reverse(es550x_voice *voice, u64 &accum } - -/********************************************************************************************** - - generate_dummy -- generate nothing, just apply envelopes - -***********************************************************************************************/ - -void es550x_device::generate_dummy(es550x_voice *voice, u16 *base, s32 *lbuffer, s32 *rbuffer, int samples) -{ - const u32 freqcount = voice->freqcount; - u64 accum = voice->accum & m_address_acc_mask; - - /* outer loop, in case we switch directions */ - if (!(voice->control & CONTROL_STOPMASK)) - { - /* two cases: first case is forward direction */ - if (!(voice->control & CONTROL_DIR)) - { - /* fetch two samples */ - accum = (accum + freqcount) & m_address_acc_mask; - - /* update filters/volumes */ - if (voice->ecount != 0) - update_envelopes(voice); - - /* check for loop end */ - check_for_end_forward(voice, accum); - } - - /* two cases: second case is backward direction */ - else - { - /* fetch two samples */ - accum = (accum - freqcount) & m_address_acc_mask; - - /* update filters/volumes */ - if (voice->ecount != 0) - update_envelopes(voice); - - /* check for loop end */ - check_for_end_reverse(voice, accum); - } - } - else - { - /* if we stopped, process any additional envelope */ - if (voice->ecount != 0) - update_envelopes(voice); - } - - voice->accum = accum; -} - - /********************************************************************************************** generate_ulaw -- general u-law decoding routine ***********************************************************************************************/ -void es550x_device::generate_ulaw(es550x_voice *voice, u16 *base, s32 *lbuffer, s32 *rbuffer, int samples) +void es550x_device::generate_ulaw(es550x_voice *voice, s32 *lbuffer, s32 *rbuffer, int samples) { const u32 freqcount = voice->freqcount; u64 accum = voice->accum & m_address_acc_mask; - /* pre-add the bank offset */ - base += voice->exbank; - - /* outer loop, in case we switch directions */ + // outer loop, in case we switch directions if (!(voice->control & CONTROL_STOPMASK)) { - /* two cases: first case is forward direction */ + // two cases: first case is forward direction if (!(voice->control & CONTROL_DIR)) { - /* fetch two samples */ - s32 val1 = base[get_integer_addr(accum)]; - s32 val2 = base[get_integer_addr(accum, 1)]; + // fetch two samples + s32 val1 = read_sample(voice, get_integer_addr(accum)); + s32 val2 = read_sample(voice, get_integer_addr(accum, 1)); - /* decompress u-law */ + // decompress u-law val1 = m_ulaw_lookup[val1 >> (16 - ULAW_MAXBITS)]; val2 = m_ulaw_lookup[val2 >> (16 - ULAW_MAXBITS)]; - /* interpolate */ + // interpolate val1 = interpolate(val1, val2, accum); accum = (accum + freqcount) & m_address_acc_mask; - /* apply filters */ + // apply filters apply_filters(voice, val1); - /* update filters/volumes */ + // update filters/volumes if (voice->ecount != 0) update_envelopes(voice); - /* apply volumes and add */ + // apply volumes and add *lbuffer += get_sample(val1, voice->lvol); *rbuffer += get_sample(val1, voice->rvol); - /* check for loop end */ + // check for loop end check_for_end_forward(voice, accum); } - /* two cases: second case is backward direction */ + // two cases: second case is backward direction */ else { - /* fetch two samples */ - s32 val1 = base[get_integer_addr(accum)]; - s32 val2 = base[get_integer_addr(accum, 1)]; + // fetch two samples + s32 val1 = read_sample(voice, get_integer_addr(accum)); + s32 val2 = read_sample(voice, get_integer_addr(accum, 1)); - /* decompress u-law */ + // decompress u-law val1 = m_ulaw_lookup[val1 >> (16 - ULAW_MAXBITS)]; val2 = m_ulaw_lookup[val2 >> (16 - ULAW_MAXBITS)]; - /* interpolate */ + // interpolate val1 = interpolate(val1, val2, accum); accum = (accum - freqcount) & m_address_acc_mask; - /* apply filters */ + // apply filters apply_filters(voice, val1); - /* update filters/volumes */ + // update filters/volumes if (voice->ecount != 0) update_envelopes(voice); - /* apply volumes and add */ + // apply volumes and add *lbuffer += get_sample(val1, voice->lvol); *rbuffer += get_sample(val1, voice->rvol); - /* check for loop end */ + // check for loop end check_for_end_reverse(voice, accum); } } else { - /* if we stopped, process any additional envelope */ + // if we stopped, process any additional envelope if (voice->ecount != 0) update_envelopes(voice); } @@ -967,72 +917,69 @@ void es550x_device::generate_ulaw(es550x_voice *voice, u16 *base, s32 *lbuffer, ***********************************************************************************************/ -void es550x_device::generate_pcm(es550x_voice *voice, u16 *base, s32 *lbuffer, s32 *rbuffer, int samples) +void es550x_device::generate_pcm(es550x_voice *voice, s32 *lbuffer, s32 *rbuffer, int samples) { const u32 freqcount = voice->freqcount; u64 accum = voice->accum & m_address_acc_mask; - /* pre-add the bank offset */ - base += voice->exbank; - - /* outer loop, in case we switch directions */ + // outer loop, in case we switch directions if (!(voice->control & CONTROL_STOPMASK)) { - /* two cases: first case is forward direction */ + // two cases: first case is forward direction if (!(voice->control & CONTROL_DIR)) { - /* fetch two samples */ - s32 val1 = (s16)base[get_integer_addr(accum)]; - s32 val2 = (s16)base[get_integer_addr(accum, 1)]; + // fetch two samples + s32 val1 = (s16)read_sample(voice, get_integer_addr(accum)); + s32 val2 = (s16)read_sample(voice, get_integer_addr(accum, 1)); - /* interpolate */ + // interpolate val1 = interpolate(val1, val2, accum); accum = (accum + freqcount) & m_address_acc_mask; - /* apply filters */ + // apply filters apply_filters(voice, val1); - /* update filters/volumes */ + // update filters/volumes if (voice->ecount != 0) update_envelopes(voice); - /* apply volumes and add */ + // apply volumes and add *lbuffer += get_sample(val1, voice->lvol); *rbuffer += get_sample(val1, voice->rvol); - /* check for loop end */ + // check for loop end check_for_end_forward(voice, accum); } - /* two cases: second case is backward direction */ + // two cases: second case is backward direction else { - /* fetch two samples */ - s32 val1 = (s16)base[get_integer_addr(accum)]; - s32 val2 = (s16)base[get_integer_addr(accum, 1)]; + // fetch two samples + s32 val1 = (s16)read_sample(voice, get_integer_addr(accum)); + s32 val2 = (s16)read_sample(voice, get_integer_addr(accum, 1)); - /* interpolate */ + // interpolate val1 = interpolate(val1, val2, accum); accum = (accum - freqcount) & m_address_acc_mask; - /* apply filters */ + // apply filters apply_filters(voice, val1); - /* update filters/volumes */ + // update filters/volumes if (voice->ecount != 0) update_envelopes(voice); - /* apply volumes and add */ + // apply volumes and add *lbuffer += get_sample(val1, voice->lvol); *rbuffer += get_sample(val1, voice->rvol); - /* check for loop end */ + // check for loop end check_for_end_reverse(voice, accum); } } else { - /* if we stopped, process any additional envelope */ + // if we stopped, process any additional envelope if (voice->ecount != 0) update_envelopes(voice); } @@ -1048,21 +995,21 @@ void es550x_device::generate_pcm(es550x_voice *voice, u16 *base, s32 *lbuffer, s inline void es550x_device::generate_irq(es550x_voice *voice, int v) { - /* does this voice have it's IRQ bit raised? */ + // does this voice have it's IRQ bit raised? if (voice->control & CONTROL_IRQ) { LOG("es5506: IRQ raised on voice %d!!\n",v); - /* only update voice vector if existing IRQ is acked by host */ + // only update voice vector if existing IRQ is acked by host if (m_irqv & 0x80) { - /* latch voice number into vector, and set high bit low */ + // latch voice number into vector, and set high bit low m_irqv = v & 0x1f; - /* take down IRQ bit on voice */ + // take down IRQ bit on voice voice->control &= ~CONTROL_IRQ; - /* inform host of irq */ + // inform host of irq update_irq_state(); } } @@ -1077,26 +1024,25 @@ inline void es550x_device::generate_irq(es550x_voice *voice, int v) void es5506_device::generate_samples(s32 **outputs, int offset, int samples) { - /* skip if nothing to do */ + // skip if nothing to do if (!samples) return; - /* clear out the accumulators */ + // clear out the accumulators for (int i = 0; i < m_channels << 1; i++) { memset(outputs[i] + offset, 0, sizeof(s32) * samples); } - /* loop while we still have samples to generate */ + // loop while we still have samples to generate while (samples) { - /* loop over voices */ + // loop over voices for (int v = 0; v <= m_active_voices; v++) { es550x_voice *voice = &m_voice[v]; - u16 *base = m_region_base[get_bank(voice->control)]; - /* special case: if end == start, stop the voice */ + // special case: if end == start, stop the voice if (voice->start == voice->end) voice->control |= CONTROL_STOP0; @@ -1107,18 +1053,13 @@ void es5506_device::generate_samples(s32 **outputs, int offset, int samples) s32 *left = outputs[l] + offset; s32 *right = outputs[r] + offset; - /* generate from the appropriate source */ - if (!base) - { - LOG("es5506: nullptr region base %d\n",get_bank(voice->control)); - generate_dummy(voice, base, left, right, samples); - } - else if (voice->control & CONTROL_CMPD) - generate_ulaw(voice, base, left, right, samples); + // generate from the appropriate source + if (voice->control & CONTROL_CMPD) + generate_ulaw(voice, left, right, samples); else - generate_pcm(voice, base, left, right, samples); + generate_pcm(voice, left, right, samples); - /* does this voice have it's IRQ bit raised? */ + // does this voice have it's IRQ bit raised? generate_irq(voice, v); } offset++; @@ -1128,31 +1069,30 @@ void es5506_device::generate_samples(s32 **outputs, int offset, int samples) void es5505_device::generate_samples(s32 **outputs, int offset, int samples) { - /* skip if nothing to do */ + // skip if nothing to do if (!samples) return; - /* clear out the accumulators */ + // clear out the accumulators for (int i = 0; i < m_channels << 1; i++) { memset(outputs[i] + offset, 0, sizeof(s32) * samples); } - /* loop while we still have samples to generate */ + // loop while we still have samples to generate while (samples) { - /* loop over voices */ + // loop over voices for (int v = 0; v <= m_active_voices; v++) { es550x_voice *voice = &m_voice[v]; - u16 *base = m_region_base[get_bank(voice->control)]; // This special case does not appear to match the behaviour observed in the es5505 in // actual Ensoniq synthesizers: those, it turns out, do set loop start and end to the // same value, and expect the voice to keep running. Examples can be found among the // transwaves on the VFX / SD-1 series of synthesizers. #if 0 - /* special case: if end == start, stop the voice */ + // special case: if end == start, stop the voice if (voice->start == voice->end) voice->control |= CONTROL_STOP0; #endif @@ -1164,17 +1104,11 @@ void es5505_device::generate_samples(s32 **outputs, int offset, int samples) s32 *left = outputs[l] + offset; s32 *right = outputs[r] + offset; - /* generate from the appropriate source */ - if (!base) - { - LOG("es5506: nullptr region base %d\n",get_bank(voice->control)); - generate_dummy(voice, base, left, right, samples); - } + // generate from the appropriate source // no compressed sample support - else - generate_pcm(voice, base, left, right, samples); + generate_pcm(voice, left, right, samples); - /* does this voice have it's IRQ bit raised? */ + // does this voice have it's IRQ bit raised? generate_irq(voice, v); } offset++; @@ -1427,17 +1361,17 @@ void es5506_device::write(offs_t offset, u8 data) es550x_voice *voice = &m_voice[m_current_page & 0x1f]; int shift = 8 * (offset & 3); - /* accumulate the data */ + // accumulate the data m_write_latch = (m_write_latch & ~(0xff000000 >> shift)) | (data << (24 - shift)); - /* wait for a write to complete */ + // wait for a write to complete if (shift != 24) return; - /* force an update */ + // force an update m_stream->update(); - /* switch off the page and register */ + // switch off the page and register if (m_current_page < 0x20) reg_write_low(voice, offset / 4, m_write_latch); else if (m_current_page < 0x40) @@ -1445,7 +1379,7 @@ void es5506_device::write(offs_t offset, u8 data) else reg_write_test(voice, offset / 4, m_write_latch); - /* clear the write latch when done */ + // clear the write latch when done m_write_latch = 0; } @@ -1636,16 +1570,16 @@ u8 es5506_device::read(offs_t offset) es550x_voice *voice = &m_voice[m_current_page & 0x1f]; int shift = 8 * (offset & 3); - /* only read on offset 0 */ + // only read on offset 0 if (shift != 0) return m_read_latch >> (24 - shift); LOG("read from %02x/%02x -> ", m_current_page, offset / 4 * 8); - /* force an update */ + // force an update m_stream->update(); - /* switch off the page and register */ + // switch off the page and register if (m_current_page < 0x20) m_read_latch = reg_read_low(voice, offset / 4); else if (m_current_page < 0x40) @@ -1655,18 +1589,11 @@ u8 es5506_device::read(offs_t offset) LOG("%08x\n", m_read_latch); - /* return the high byte */ + // return the high byte return m_read_latch >> 24; } - -void es5506_device::voice_bank_w(int voice, int bank) -{ - m_voice[voice].exbank=bank; -} - - /********************************************************************************************** reg_write -- handle a write to the selected ES5505 register @@ -1960,10 +1887,10 @@ void es5505_device::write(offs_t offset, u16 data, u16 mem_mask) // logerror("%s:ES5505 write %02x/%02x = %04x & %04x\n", machine().describe_context(), m_current_page, offset, data, mem_mask); - /* force an update */ + // force an update m_stream->update(); - /* switch off the page and register */ + // switch off the page and register if (m_current_page < 0x20) reg_write_low(voice, offset, data, mem_mask); else if (m_current_page < 0x40) @@ -2092,10 +2019,10 @@ inline u16 es5505_device::reg_read_high(es550x_voice *voice, offs_t offset) /* want to waste time filtering stopped channels, we just look for a read from */ /* this register on a stopped voice, and return the raw sample data at the */ /* accumulator */ - if ((voice->control & CONTROL_STOPMASK) && m_region_base[get_bank(voice->control)]) + if ((voice->control & CONTROL_STOPMASK)) { - voice->o1n1 = m_region_base[get_bank(voice->control)][voice->exbank + get_integer_addr(voice->accum)]; - // logerror("%02x %08x ==> %08x\n",voice->o1n1,get_bank(voice->control),voice->exbank + get_integer_addr(voice->accum)); + voice->o1n1 = read_sample(voice, get_integer_addr(voice->accum)); + // logerror("%02x %08x ==> %08x\n",voice->o1n1,get_bank(voice->control),get_integer_addr(voice->accum)); } result = voice->o1n1 & 0xffff; break; @@ -2177,10 +2104,10 @@ u16 es5505_device::read(offs_t offset) LOG("read from %02x/%02x -> ", m_current_page, offset); - /* force an update */ + // force an update m_stream->update(); - /* switch off the page and register */ + // switch off the page and register if (m_current_page < 0x20) result = reg_read_low(voice, offset); else if (m_current_page < 0x40) @@ -2190,21 +2117,11 @@ u16 es5505_device::read(offs_t offset) LOG("%04x (accum=%08x)\n", result, voice->accum); - /* return the high byte */ + // return the high byte return result; } - -void es5505_device::voice_bank_w(int voice, int bank) -{ -#if RAINE_CHECK - m_voice[voice].control = CONTROL_STOPMASK; -#endif - m_voice[voice].exbank=bank; -} - - //------------------------------------------------- // sound_stream_update - handle a stream update //------------------------------------------------- @@ -2212,7 +2129,7 @@ void es5505_device::voice_bank_w(int voice, int bank) void es550x_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) { #if ES5506_MAKE_WAVS - /* start the logging once we have a sample rate */ + // start the logging once we have a sample rate if (m_sample_rate) { if (!m_wavraw) @@ -2220,7 +2137,7 @@ void es550x_device::sound_stream_update(sound_stream &stream, stream_sample_t ** } #endif - /* loop until all samples are output */ + // loop until all samples are output int offset = 0; while (samples) { @@ -2229,19 +2146,19 @@ void es550x_device::sound_stream_update(sound_stream &stream, stream_sample_t ** generate_samples(outputs, offset, length); #if ES5506_MAKE_WAVS - /* log the raw data */ + // log the raw data if (m_wavraw) { - /* determine left/right source data */ + // determine left/right source data s32 *lsrc = m_scratch, *rsrc = m_scratch + length; int channel; memset(lsrc, 0, sizeof(s32) * length * 2); - /* loop over the output channels */ + // loop over the output channels for (channel = 0; channel < m_channels; channel++) { s32 *l = outputs[(channel << 1)] + offset; s32 *r = outputs[(channel << 1) + 1] + offset; - /* add the current channel's samples to the WAV data */ + // add the current channel's samples to the WAV data for (samp = 0; samp < length; samp++) { lsrc[samp] += l[samp]; @@ -2252,7 +2169,7 @@ void es550x_device::sound_stream_update(sound_stream &stream, stream_sample_t ** } #endif - /* account for these samples */ + // account for these samples offset += length; samples -= length; } diff --git a/src/devices/sound/es5506.h b/src/devices/sound/es5506.h index fe4beb71a6b..30e79d5f0ae 100644 --- a/src/devices/sound/es5506.h +++ b/src/devices/sound/es5506.h @@ -14,15 +14,17 @@ #define ES5506_MAKE_WAVS 0 -class es550x_device : public device_t, public device_sound_interface +class es550x_device : public device_t, public device_sound_interface, public device_memory_interface { public: - void set_region0(const char *region0) { m_region0 = region0; } - void set_region1(const char *region1) { m_region1 = region1; } - void set_region2(const char *region2) { m_region2 = region2; } - void set_region3(const char *region3) { m_region3 = region3; } + template <typename T> void set_region0(T &&tag) { m_region0.set_tag(std::forward<T>(tag)); } + template <typename T> void set_region1(T &&tag) { m_region1.set_tag(std::forward<T>(tag)); } + template <typename T> void set_region2(T &&tag) { m_region2.set_tag(std::forward<T>(tag)); } + template <typename T> void set_region3(T &&tag) { m_region3.set_tag(std::forward<T>(tag)); } void set_channels(int channels) { m_channels = channels; } + u32 get_voice_index() { return m_voice_index; } + auto irq_cb() { return m_irq_cb.bind(); } auto read_port_cb() { return m_read_port_cb.bind(); } auto sample_rate_changed() { return m_sample_rate_changed_cb.bind(); } @@ -109,29 +111,31 @@ protected: virtual void update_envelopes(es550x_voice *voice) = 0; virtual void check_for_end_forward(es550x_voice *voice, u64 &accum) = 0; virtual void check_for_end_reverse(es550x_voice *voice, u64 &accum) = 0; - void generate_dummy(es550x_voice *voice, u16 *base, s32 *lbuffer, s32 *rbuffer, int samples); - void generate_ulaw(es550x_voice *voice, u16 *base, s32 *lbuffer, s32 *rbuffer, int samples); - void generate_pcm(es550x_voice *voice, u16 *base, s32 *lbuffer, s32 *rbuffer, int samples); + void generate_ulaw(es550x_voice *voice, s32 *lbuffer, s32 *rbuffer, int samples); + void generate_pcm(es550x_voice *voice, s32 *lbuffer, s32 *rbuffer, int samples); inline void generate_irq(es550x_voice *voice, int v); virtual void generate_samples(s32 **outputs, int offset, int samples) {}; + inline void update_index(es550x_voice *voice) { m_voice_index = voice->index; } + virtual inline u16 read_sample(es550x_voice *voice, offs_t addr) { return 0; } + // internal state - sound_stream *m_stream; /* which stream are we using */ - int m_sample_rate; /* current sample rate */ - u16 * m_region_base[4]; /* pointer to the base of the region */ - u32 m_master_clock; /* master clock frequency */ - s8 m_address_acc_shift; - u64 m_address_acc_mask; + sound_stream *m_stream; // which stream are we using + int m_sample_rate; // current sample rate + u32 m_master_clock; // master clock frequency + s8 m_address_acc_shift; // right shift accumulator for generate integer address + u64 m_address_acc_mask; // accumulator mask - s8 m_volume_shift; - s64 m_volume_acc_shift; + s8 m_volume_shift; // right shift volume for generate integer volume + s64 m_volume_acc_shift; // right shift output for output normalizing - u8 m_current_page; /* current register page */ - u8 m_active_voices; /* number of active voices */ - u16 m_mode; /* MODE register */ - u8 m_irqv; /* IRQV register */ + u8 m_current_page; // current register page + u8 m_active_voices; // number of active voices + u16 m_mode; // MODE register + u8 m_irqv; // IRQV register + u32 m_voice_index; // current voice index value - es550x_voice m_voice[32]; /* the 32 voices */ + es550x_voice m_voice[32]; // the 32 voices std::unique_ptr<s32[]> m_scratch; @@ -139,17 +143,17 @@ protected: std::unique_ptr<u32[]> m_volume_lookup; #if ES5506_MAKE_WAVS - void * m_wavraw; /* raw waveform */ + void * m_wavraw; // raw waveform #endif - const char * m_region0; /* memory region where the sample ROM lives */ - const char * m_region1; /* memory region where the sample ROM lives */ - const char * m_region2; /* memory region where the sample ROM lives */ - const char * m_region3; /* memory region where the sample ROM lives */ - int m_channels; /* number of output channels: 1 .. 6 */ - devcb_write_line m_irq_cb; /* irq callback */ - devcb_read16 m_read_port_cb; /* input port read */ - devcb_write32 m_sample_rate_changed_cb; /* callback for when sample rate is changed */ + optional_memory_region m_region0; // memory region where the sample ROM lives + optional_memory_region m_region1; // memory region where the sample ROM lives + optional_memory_region m_region2; // memory region where the sample ROM lives + optional_memory_region m_region3; // memory region where the sample ROM lives + int m_channels; // number of output channels: 1 .. 6 + devcb_write_line m_irq_cb; // irq callback + devcb_read16 m_read_port_cb; // input port read + devcb_write32 m_sample_rate_changed_cb; // callback for when sample rate is changed }; @@ -161,13 +165,20 @@ public: u8 read(offs_t offset); void write(offs_t offset, u8 data); - void voice_bank_w(int voice, int bank); protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; + // device_memory_interface configuration + virtual space_config_vector memory_space_config() const override; + + address_space_config m_bank0_config; + address_space_config m_bank1_config; + address_space_config m_bank2_config; + address_space_config m_bank3_config; + const s8 VOLUME_BIT_ES5506 = 16; const s8 ADDRESS_INTEGER_BIT_ES5506 = 21; const s8 ADDRESS_FRAC_BIT_ES5506 = 11; @@ -181,6 +192,8 @@ protected: virtual void check_for_end_reverse(es550x_voice *voice, u64 &accum) override; virtual void generate_samples(s32 **outputs, int offset, int samples) override; + virtual inline u16 read_sample(es550x_voice *voice, offs_t addr) override { update_index(voice); return m_cache[get_bank(voice->control)].read_word(addr); } + private: inline void reg_write_low(es550x_voice *voice, offs_t offset, u32 data); inline void reg_write_high(es550x_voice *voice, offs_t offset, u32 data); @@ -189,12 +202,14 @@ private: inline u32 reg_read_high(es550x_voice *voice, offs_t offset); inline u32 reg_read_test(es550x_voice *voice, offs_t offset); + memory_access<21, 1, -1, ENDIANNESS_BIG>::cache m_cache[4]; + // ES5506 specific registers - u32 m_write_latch; /* currently accumulated data for write */ - u32 m_read_latch; /* currently accumulated data for read */ - u8 m_wst; /* W_ST register */ - u8 m_wend; /* W_END register */ - u8 m_lrend; /* LR_END register */ + u32 m_write_latch; // currently accumulated data for write + u32 m_read_latch; // currently accumulated data for read + u8 m_wst; // W_ST register + u8 m_wend; // W_END register + u8 m_lrend; // LR_END register }; DECLARE_DEVICE_TYPE(ES5506, es5506_device) @@ -207,12 +222,17 @@ public: u16 read(offs_t offset); void write(offs_t offset, u16 data, u16 mem_mask = ~0); - void voice_bank_w(int voice, int bank); protected: // device-level overrides virtual void device_start() override; + // device_memory_interface configuration + virtual space_config_vector memory_space_config() const override; + + address_space_config m_bank0_config; + address_space_config m_bank1_config; + const s8 VOLUME_BIT_ES5505 = 8; const s8 ADDRESS_INTEGER_BIT_ES5505 = 20; const s8 ADDRESS_FRAC_BIT_ES5505 = 9; @@ -226,6 +246,8 @@ protected: virtual void check_for_end_reverse(es550x_voice *voice, u64 &accum) override; virtual void generate_samples(s32 **outputs, int offset, int samples) override; + virtual inline u16 read_sample(es550x_voice *voice, offs_t addr) override { update_index(voice); return m_cache[get_bank(voice->control)].read_word(addr); } + private: // internal state inline void reg_write_low(es550x_voice *voice, offs_t offset, u16 data, u16 mem_mask); @@ -234,6 +256,8 @@ private: inline u16 reg_read_low(es550x_voice *voice, offs_t offset); inline u16 reg_read_high(es550x_voice *voice, offs_t offset); inline u16 reg_read_test(es550x_voice *voice, offs_t offset); + + memory_access<20, 1, -1, ENDIANNESS_BIG>::cache m_cache[2]; }; DECLARE_DEVICE_TYPE(ES5505, es5505_device) diff --git a/src/mame/audio/taito_en.cpp b/src/mame/audio/taito_en.cpp index 893daf22bae..daccefe8ae2 100644 --- a/src/mame/audio/taito_en.cpp +++ b/src/mame/audio/taito_en.cpp @@ -16,7 +16,6 @@ #include "emu.h" #include "taito_en.h" -#include "speaker.h" #include <algorithm> @@ -24,6 +23,7 @@ DEFINE_DEVICE_TYPE(TAITO_EN, taito_en_device, "taito_en", "Taito Ensoniq Sound S taito_en_device::taito_en_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, TAITO_EN, tag, owner, clock) + , device_mixer_interface(mconfig, *this, 2) , m_audiocpu(*this, "audiocpu") , m_ensoniq(*this, "ensoniq") , m_esp(*this, "esp") @@ -31,6 +31,8 @@ taito_en_device::taito_en_device(const machine_config &mconfig, const char *tag, , m_duart68681(*this, "duart68681") , m_mb87078(*this, "mb87078") , m_osram(*this, "osram") + , m_otisbank(*this, "otisbank") + , m_otisrom(*this, "ensoniq") , m_osrom(*this, "audiocpu") , m_cpubank(*this, "cpubank%u", 1) { @@ -48,7 +50,14 @@ void taito_en_device::device_start() for (int i = 0; i < 3; i++) m_cpubank[i]->configure_entries(0, max, &ROM[0x100000], 0x20000); - m_bankmask = (memregion(":ensoniq.0")->bytes()/0x200000)-1; + m_bankmask = ((m_otisrom.bytes()) / 0x200000) - 1; + + // initialize precalculated ES5505 bank table + const size_t otisbank_size = m_otisbank.bytes() / 2; + m_calculated_otisbank = make_unique_clear<offs_t[]>(otisbank_size); + + save_item(NAME(m_old_clock)); + save_pointer(NAME(m_calculated_otisbank), otisbank_size); } @@ -77,8 +86,8 @@ void taito_en_device::device_reset() void taito_en_device::en_es5505_bank_w(offs_t offset, uint16_t data) { /* mask out unused bits */ - data &= m_bankmask; - m_ensoniq->voice_bank_w(offset,data<<20); + m_otisbank[offset] = data; + m_calculated_otisbank[offset] = (m_otisbank[offset] & m_bankmask) << 20; } void taito_en_device::en_volume_w(offs_t offset, uint8_t data) @@ -100,7 +109,7 @@ void taito_en_device::en_sound_map(address_map &map) map(0x200000, 0x20001f).rw("ensoniq", FUNC(es5505_device::read), FUNC(es5505_device::write)); map(0x260000, 0x2601ff).rw("esp", FUNC(es5510_device::host_r), FUNC(es5510_device::host_w)).umask16(0x00ff); map(0x280000, 0x28001f).rw("duart68681", FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); - map(0x300000, 0x30003f).w(FUNC(taito_en_device::en_es5505_bank_w)); + map(0x300000, 0x30003f).w(FUNC(taito_en_device::en_es5505_bank_w)).share("otisbank"); map(0x340000, 0x340003).w(FUNC(taito_en_device::en_volume_w)).umask16(0xff00); map(0xc00000, 0xc1ffff).bankr("cpubank1"); map(0xc20000, 0xc3ffff).bankr("cpubank2"); @@ -116,6 +125,19 @@ void taito_en_device::fc7_map(address_map &map) /************************************* * + * ES5505 memory map + * + *************************************/ + +void taito_en_device::en_otis_map(address_map &map) +{ + map(0x000000, 0x0fffff).lr16( + [this](offs_t offset) -> u16 { return m_otisrom[(m_calculated_otisbank[m_ensoniq->get_voice_index()] + offset) & m_otisrom.mask()]; }, "banked_otisrom"); +} + + +/************************************* + * * MB87078 callback * *************************************/ @@ -142,7 +164,11 @@ void taito_en_device::mb87078_gain_changed(offs_t offset, uint8_t data) void taito_en_device::es5505_clock_changed(u32 data) { - m_pump->set_unscaled_clock(data); + if (m_old_clock != data) + { + m_pump->set_unscaled_clock(data); + m_old_clock = data; + } } @@ -209,18 +235,15 @@ void taito_en_device::device_add_mconfig(machine_config &config) MB8421(config, "dpram", 0); // host accesses this from the other side /* sound hardware */ - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); - ESQ_5505_5510_PUMP(config, m_pump, XTAL(30'476'180) / (2 * 16 * 32)); m_pump->set_esp(m_esp); - m_pump->add_route(0, "lspeaker", 1.0); - m_pump->add_route(1, "rspeaker", 1.0); + m_pump->add_route(0, *this, 1.0, AUTO_ALLOC_INPUT, 0); + m_pump->add_route(1, *this, 1.0, AUTO_ALLOC_INPUT, 1); ES5505(config, m_ensoniq, XTAL(30'476'180) / 2); m_ensoniq->sample_rate_changed().set(FUNC(taito_en_device::es5505_clock_changed)); - m_ensoniq->set_region0("ensoniq.0"); - m_ensoniq->set_region1("ensoniq.0"); + m_ensoniq->set_addrmap(0, &taito_en_device::en_otis_map); + m_ensoniq->set_addrmap(1, &taito_en_device::en_otis_map); m_ensoniq->set_channels(4); m_ensoniq->add_route(0, "pump", 1.0, 0); m_ensoniq->add_route(1, "pump", 1.0, 1); diff --git a/src/mame/audio/taito_en.h b/src/mame/audio/taito_en.h index d995228aec5..6d7aad2da3f 100644 --- a/src/mame/audio/taito_en.h +++ b/src/mame/audio/taito_en.h @@ -18,7 +18,7 @@ #include "machine/mb87078.h" #include "machine/mb8421.h" -class taito_en_device : public device_t +class taito_en_device : public device_t, public device_mixer_interface { public: @@ -26,6 +26,8 @@ public: taito_en_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + m68000_device &audiocpu() { return *m_audiocpu; } + void set_bank(int bank, int entry) { m_cpubank[bank]->set_entry(entry); } protected: @@ -36,10 +38,11 @@ protected: private: void en_sound_map(address_map &map); + void en_otis_map(address_map &map); void fc7_map(address_map &map); // inherited devices/pointers - required_device<cpu_device> m_audiocpu; + required_device<m68000_device> m_audiocpu; required_device<es5505_device> m_ensoniq; required_device<es5510_device> m_esp; required_device<esq_5505_5510_pump_device> m_pump; @@ -47,11 +50,16 @@ private: required_device<mb87078_device> m_mb87078; required_shared_ptr<uint16_t> m_osram; + required_shared_ptr<uint16_t> m_otisbank; + required_region_ptr<uint16_t> m_otisrom; required_memory_region m_osrom; required_memory_bank_array<3> m_cpubank; - uint32_t m_bankmask; + uint32_t m_bankmask = 0; + uint32_t m_old_clock = ~0; + + std::unique_ptr<offs_t[]> m_calculated_otisbank; IRQ_CALLBACK_MEMBER(duart_iack); void duart_output(uint8_t data); diff --git a/src/mame/drivers/galastrm.cpp b/src/mame/drivers/galastrm.cpp index ac619aee3f3..497be6af169 100644 --- a/src/mame/drivers/galastrm.cpp +++ b/src/mame/drivers/galastrm.cpp @@ -49,6 +49,7 @@ TODO: #include "machine/taitoio.h" #include "sound/es5506.h" #include "audio/taito_en.h" +#include "speaker.h" #include "includes/galastrm.h" @@ -220,7 +221,12 @@ void galastrm_state::galastrm(machine_config &config) TC0110PCR(config, m_tc0110pcr, 0); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } /***************************************************************************/ @@ -251,7 +257,7 @@ ROM_START( galastrm ) ROM_REGION16_LE( 0x80000, "sprmaprom", 0 ) ROM_LOAD16_WORD( "c99-11.ic90", 0x00000, 0x80000, CRC(26a6926c) SHA1(918860e2829131e9ecfe983b2ae3e49e1c9ecd72) ) /* STY, spritemap */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "c99-08.ic3", 0x000000, 0x100000, CRC(fedb4187) SHA1(83563e4af795a0dfeb261a62c31b6fed72f45a4d) ) /* Ensoniq samples */ ROM_LOAD16_BYTE( "c99-09.ic4", 0x200000, 0x100000, CRC(ba70b86b) SHA1(ffbb9547d6b6e47a3ef23206b5f40c57f3ea7619) ) ROM_LOAD16_BYTE( "c99-10.ic5", 0x400000, 0x100000, CRC(da016f1e) SHA1(581ef158c6f6576618dd75429b1d3aa92cd3581d) ) diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp index b5c0b17251b..acc53bd5ef6 100644 --- a/src/mame/drivers/groundfx.cpp +++ b/src/mame/drivers/groundfx.cpp @@ -74,6 +74,7 @@ #include "machine/eepromser.h" #include "sound/es5506.h" #include "screen.h" +#include "speaker.h" /********************************************************** @@ -257,7 +258,12 @@ void groundfx_state::groundfx(machine_config &config) m_tc0480scp->set_offsets_tx(-1, 0); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } /*************************************************************************** @@ -296,7 +302,7 @@ ROM_START( groundfx ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d51-13.7", 0x00000, 0x80000, CRC(36921b8b) SHA1(2130120f78a3b984618a53054fc937cf727177b9) ) /* STY, spritemap */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d51-01.73", 0x000000, 0x200000, CRC(92f09155) SHA1(8015e1997818bb480174394eb43840bf26679bcf) ) /* Ensoniq samples */ ROM_LOAD16_BYTE( "d51-02.74", 0xc00000, 0x200000, CRC(20a9428f) SHA1(c9033d02a49c72f704808f5f899101617d5814e5) ) diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp index 634690e888b..f6911548736 100644 --- a/src/mame/drivers/gunbustr.cpp +++ b/src/mame/drivers/gunbustr.cpp @@ -54,6 +54,7 @@ #include "sound/es5506.h" #include "screen.h" +#include "speaker.h" /*********************************************************************/ @@ -255,7 +256,12 @@ void gunbustr_state::gunbustr(machine_config &config) m_tc0480scp->set_offsets_flip(-1, 0); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } /***************************************************************************/ @@ -284,7 +290,7 @@ ROM_START( gunbustr ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d27-03.bin", 0x00000, 0x80000, CRC(23bf2000) SHA1(49b29e771a47fcd7e6cd4e2704b217f9727f8299) ) /* STY, used to create big sprites on the fly */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d27-08.bin", 0x000000, 0x100000, CRC(7c147e30) SHA1(b605045154967050ec06391798da4afe3686a6e1) ) // C8, C9 ROM_RELOAD(0x400000,0x100000) ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB @@ -318,7 +324,7 @@ ROM_START( gunbustru ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d27-03.bin", 0x00000, 0x80000, CRC(23bf2000) SHA1(49b29e771a47fcd7e6cd4e2704b217f9727f8299) ) /* STY, used to create big sprites on the fly */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d27-08.bin", 0x000000, 0x100000, CRC(7c147e30) SHA1(b605045154967050ec06391798da4afe3686a6e1) ) // C8, C9 ROM_RELOAD(0x400000,0x100000) ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB @@ -352,7 +358,7 @@ ROM_START( gunbustrj ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d27-03.bin", 0x00000, 0x80000, CRC(23bf2000) SHA1(49b29e771a47fcd7e6cd4e2704b217f9727f8299) ) /* STY, used to create big sprites on the fly */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d27-08.bin", 0x000000, 0x100000, CRC(7c147e30) SHA1(b605045154967050ec06391798da4afe3686a6e1) ) // C8, C9 ROM_RELOAD(0x400000,0x100000) ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB diff --git a/src/mame/drivers/macrossp.cpp b/src/mame/drivers/macrossp.cpp index 77046f3fc83..1202cbfcb02 100644 --- a/src/mame/drivers/macrossp.cpp +++ b/src/mame/drivers/macrossp.cpp @@ -290,6 +290,8 @@ Notes: #include "sound/es5506.h" #include "speaker.h" +#include <algorithm> + /*** VARIOUS READ / WRITE HANDLERS *******************************************/ @@ -300,7 +302,8 @@ uint32_t macrossp_state::macrossp_soundstatus_r() /* bit 1 is sound status */ /* bit 0 unknown - it is expected to toggle, vblank? */ - m_snd_toggle ^= 1; + if (!machine().side_effects_disabled()) + m_snd_toggle ^= 1; return (m_sndpending << 1) | m_snd_toggle; } @@ -321,7 +324,8 @@ void macrossp_state::macrossp_soundcmd_w(offs_t offset, uint32_t data, uint32_t uint16_t macrossp_state::macrossp_soundcmd_r() { // logerror("%06x read soundcmd\n",m_audiocpu->pc()); - m_sndpending = 0; + if (!machine().side_effects_disabled()) + m_sndpending = 0; return m_soundlatch->read(); } @@ -382,6 +386,16 @@ void macrossp_state::macrossp_sound_map(address_map &map) map(0x600000, 0x600001).r(FUNC(macrossp_state::macrossp_soundcmd_r)); } +void macrossp_state::macrossp_es5506_bank1_map(address_map &map) +{ + map(0x000000, 0x1fffff).rom().region("ensoniq.0", 0x400000); +} + +void macrossp_state::macrossp_es5506_bank3_map(address_map &map) +{ + map(0x000000, 0x1fffff).rom().region("ensoniq.2", 0x400000); +} + /*** INPUT PORTS *************************************************************/ static INPUT_PORTS_START( macrossp ) @@ -571,9 +585,7 @@ void macrossp_state::macrossp(machine_config &config) es5506_device &ensoniq(ES5506(config, "ensoniq", 32_MHz_XTAL/2)); /* 16 MHz */ ensoniq.set_region0("ensoniq.0"); - ensoniq.set_region1("ensoniq.1"); - ensoniq.set_region2("ensoniq.2"); - ensoniq.set_region3("ensoniq.3"); + ensoniq.set_addrmap(1, ¯ossp_state::macrossp_es5506_bank1_map); ensoniq.set_channels(1); ensoniq.irq_cb().set(FUNC(macrossp_state::irqhandler)); ensoniq.add_route(0, "lspeaker", 0.1); @@ -584,8 +596,11 @@ void macrossp_state::quizmoon(machine_config &config) { macrossp(config); m_screen->set_visarea(0, 24*16-1, 0*8, 14*16-1); -} + es5506_device *ensoniq = subdevice<es5506_device>("ensoniq"); + ensoniq->set_region2("ensoniq.2"); + ensoniq->set_addrmap(3, ¯ossp_state::macrossp_es5506_bank3_map); +} /*** ROM LOADING *************************************************************/ @@ -628,9 +643,6 @@ ROM_START( macrossp ) ROM_REGION16_BE( 0x800000, "ensoniq.0", ROMREGION_ERASEFF ) ROM_LOAD16_BYTE( "bp964a.u24", 0x000000, 0x400000, CRC(93f90336) SHA1(75daa2f8cedc732cf5ef98254f61748c94b94aea) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) - ROM_COPY( "ensoniq.0", 0x400000, 0x000000, 0x400000 ) - ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "u8.u8", 0x0000, 0x0117, CRC(99bd3cc1) SHA1(b0d3ac93cb5d2857cf9c184c7a2b4afa0211d588) ) /* unprotected GAL16V8B */ ROM_LOAD( "u9.u9", 0x0200, 0x0117, CRC(480f4860) SHA1(7ff3723122cbdda5c0dcea5167508e9a7437f551) ) /* unprotected GAL16V8B */ @@ -677,15 +689,9 @@ ROM_START( quizmoon ) ROM_LOAD16_BYTE( "u26.bin", 0x0000000, 0x0400000, CRC(6c8f30d4) SHA1(7e215589e4a52cbce7f2bb31b333f874a9f83d00) ) ROM_LOAD16_BYTE( "u24.bin", 0x0000001, 0x0400000, CRC(5b12d0b1) SHA1(c5ddff2053148a1da0710a10f48689bf5c736ae4) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) - ROM_COPY( "ensoniq.0", 0x400000, 0x000000, 0x400000 ) - ROM_REGION16_BE( 0x800000, "ensoniq.2", 0 ) ROM_LOAD16_BYTE( "u27.bin", 0x0000000, 0x0400000, CRC(bd75d165) SHA1(2da770d15c812cbfdb4e3048d320071edffccfa1) ) ROM_LOAD16_BYTE( "u25.bin", 0x0000001, 0x0400000, CRC(3b9689bc) SHA1(0857c3d3e9810f9468f7c17f8b795825c55a9f08) ) - - ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) - ROM_COPY( "ensoniq.2", 0x400000, 0x000000, 0x400000 ) ROM_END diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp index d08accd0299..9df235de85a 100644 --- a/src/mame/drivers/ssv.cpp +++ b/src/mame/drivers/ssv.cpp @@ -679,9 +679,8 @@ void ssv_state::srmp7_sound_bank_w(offs_t offset, uint16_t data, uint16_t mem_ma { if (ACCESSING_BITS_0_7) { - int bank = 0x400000/2 * (data & 1); // uint16_t address - for (int voice = 0; voice < 32; voice++) - m_ensoniq->voice_bank_w(voice, bank); + m_srmp7_esbank[0]->set_entry(data & 1); + m_srmp7_esbank[1]->set_entry(data & 1); } // popmessage("%04X",data); } @@ -712,6 +711,16 @@ void ssv_state::srmp7_map(address_map &map) map(0x680000, 0x680001).writeonly().share("input_sel"); // Inputs } +void ssv_state::srmp7_es5506_bank2_map(address_map &map) +{ + map(0x000000, 0x1fffff).bankr(m_srmp7_esbank[0]); +} + +void ssv_state::srmp7_es5506_bank3_map(address_map &map) +{ + map(0x000000, 0x1fffff).bankr(m_srmp7_esbank[1]); +} + /*************************************************************************** Survival Arts @@ -2565,6 +2574,15 @@ void ssv_state::init_ssv_irq1() m_interrupt_ultrax = 1; } +void ssv_state::init_srmp7() +{ + init_ssv(); + m_srmp7_esbank[0]->configure_entries(0, 2, memregion("ensoniq.2")->base(), 0x400000); + m_srmp7_esbank[1]->configure_entries(0, 2, memregion("ensoniq.3")->base(), 0x400000); + m_srmp7_esbank[0]->set_entry(0); + m_srmp7_esbank[1]->set_entry(0); +} + #define SSV_MASTER_CLOCK XTAL(48'000'000)/3 @@ -2777,6 +2795,9 @@ void ssv_state::srmp7(machine_config &config) /* video hardware */ m_screen->set_visarea(0, (0xd4-0x2c)*2-1, 0, (0xfd - 0x0e)-1); + + m_ensoniq->set_addrmap(2, &ssv_state::srmp7_es5506_bank2_map); + m_ensoniq->set_addrmap(3, &ssv_state::srmp7_es5506_bank3_map); } void ssv_state::stmblade(machine_config &config) @@ -3129,10 +3150,10 @@ ROM_START( drifto94 ) ROM_LOAD( "vg003-12.d2", 0x1c00000, 0x200000, CRC(ac0fd855) SHA1(992ae0d02bcefaa2fad7462b211a49fbd1338b62) ) ROM_LOAD( "vg003-16.d3", 0x1e00000, 0x200000, CRC(1a5fd312) SHA1(1e67ffa51408de107be75c9c63df6fd1bb6ce6b1) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "vg003-17.u22", 0x000000, 0x200000, CRC(6f9294ce) SHA1(b097defd95eb1d8f00e107d7669f9d33148e75c1) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "vg003-18.u15", 0x000000, 0x200000, CRC(511b3e93) SHA1(09eda175c8f1b21c18645519cc6e89c6ca1fc5de) ) ROM_REGION( 0x11000, "st010", 0) @@ -3393,10 +3414,10 @@ ROM_START( janjans1 ) ROM_LOAD( "jj1-d1.bin", 0x2200000, 0x400000, CRC(f24c0d36) SHA1(212969b456bfd7cc00081f65c03c1e167186891a) ) ROM_LOAD( "jj1-d2.bin", 0x2600000, 0x200000, CRC(481b3be8) SHA1(cd1bcaca8c236cebba72d315e759b2e9d243aca8) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "jj1-snd0.bin", 0x000000, 0x200000, CRC(4f7d620a) SHA1(edded130ce7bb0f37e1f59b2771ae6a10a061f9e) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "jj1-snd1.bin", 0x000000, 0x200000, CRC(9b3a7ae5) SHA1(193743fcce779c4a8a73a44c54b5391d08116331) ) ROM_END @@ -3436,10 +3457,10 @@ ROM_START( janjans2 ) ROM_LOAD( "jan2-d0.u34", 0x1800000, 0x400000, CRC(479fdb54) SHA1(667d89518877a3b501a87c9c765b85b9a0b23517) ) ROM_LOAD( "jan2-d1.u35", 0x1c00000, 0x400000, CRC(c0148895) SHA1(f89482a6ef475ca44d570332d05201b34887afbb) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "jan2-snd0.u29", 0x000000, 0x200000, CRC(22cc054e) SHA1(4926dd9f8f85880d6c1d14f93d68f330898b473a) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "jan2-snd1.u33", 0x000000, 0x200000, CRC(cbcac4a6) SHA1(f0c57fa6784e910bdb94f046d09e58e26921773b) ) ROM_END @@ -3630,10 +3651,10 @@ ROM_START( koikois2 ) ROM_LOAD( "kk2-d0.bin", 0x1800000, 0x400000, CRC(0e3005a4) SHA1(fa8da58308d58bb6b2e8beb8ee8f7ea08b18f4d9) ) ROM_LOAD( "kk2-d1.bin", 0x1c00000, 0x200000, CRC(17a02252) SHA1(c7aa61e27f197b3c497a65a9369e3a6a20c9f82a) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "kk2_snd0.bin", 0x000000, 0x200000, CRC(b27eaa94) SHA1(05baaef683a1fcd9eb8a7cfd5b280c05108e832f) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "kk2_snd1.bin", 0x000000, 0x200000, CRC(e5a963e1) SHA1(464ffd53ac2e6db62225b18d12bfea93160771ec) ) ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */ @@ -3760,7 +3781,7 @@ ROM_START( ryorioh ) ROM_LOAD( "ryorioh.d0", 0x1800000, 0x400000, CRC(ffa14ef1) SHA1(22a6992f6217d8ef2140e72063290fa34cb45683) ) ROM_LOAD( "ryorioh.d1", 0x1c00000, 0x400000, CRC(ae6055e8) SHA1(ee20a7b3c4f899404ca259991509728d3a0f96b9) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "ryorioh.snd", 0x000000, 0x200000, CRC(7bd38b76) SHA1(d8490b4af839ef0802b8b2a47277fcd4091e4d37) ) ROM_REGION( 0x400, "plds", 0 ) @@ -3892,19 +3913,17 @@ ROM_START( srmp7 ) ROM_LOAD( "sx015-12.d2", 0x3800000, 0x400000, CRC(80336523) SHA1(ec66e21fe1401fdb438e03657542a7b6b0cbc5ce) ) ROM_LOAD( "sx015-11.d3", 0x3c00000, 0x400000, CRC(134c8e28) SHA1(669118b58f27d5e2e08052debe904f95d9ab32a3) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sx015-06.s0", 0x000000, 0x200000, CRC(0d5a206c) SHA1(2fdaf2a56b6608f20a788eb79a8426102ff33e14) ) - ROM_RELOAD( 0x400000, 0x200000) - ROM_REGION16_BE( 0x800000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sx015-05.s1", 0x000000, 0x200000, CRC(bb8cebe2) SHA1(3691e5fb4e963f69c1fe01cb5d968433029c4833) ) - ROM_RELOAD( 0x400000, 0x200000) - ROM_REGION16_BE( 0x800000, "ensoniq.2", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x800000, "ensoniq.2", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sx015-04.s2", 0x000000, 0x200000, CRC(f6e933df) SHA1(7cb69515a0ffc62fbac2be3a5fb322538560bd38) ) ROM_LOAD16_BYTE( "sx015-02.s4", 0x400000, 0x200000, CRC(6567bc3e) SHA1(e902f22f1499edc6a0e2c8b6cc26460d66a3bdbe) ) - ROM_REGION16_BE( 0x800000, "ensoniq.3", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x800000, "ensoniq.3", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sx015-03.s3", 0x000000, 0x200000, CRC(5b51ab21) SHA1(cf3e86e41f7984208984d6486b04cec117dadc18) ) ROM_LOAD16_BYTE( "sx015-01.s5", 0x400000, 0x200000, CRC(481b00ed) SHA1(2c3d158dd5be9af0ee57fd5dd94d2ec75e28b182) ) ROM_END @@ -4391,7 +4410,7 @@ ROM_START( stmblade ) ROM_LOAD( "sb-c2.u4", 0x1000000, 0x080000, CRC(fd1d2a92) SHA1(957a8a52b79e252c7f1a4b6383107ae609dce5ef) ) ROM_FILL( 0x1200000, 0x600000, 0x000000) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sb-snd0.u22", 0x000000, 0x200000, CRC(4efd605b) SHA1(9c97be105c923c7db847d9b9aea37025edb685a0) ) ROM_REGION( 0x11000, "st010", 0) @@ -4422,7 +4441,7 @@ ROM_START( stmbladej ) ROM_LOAD( "sb-c2.u4", 0x1000000, 0x080000, CRC(fd1d2a92) SHA1(957a8a52b79e252c7f1a4b6383107ae609dce5ef) ) ROM_FILL( 0x1200000, 0x600000, 0x000000) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sb-snd0.u22", 0x000000, 0x200000, CRC(4efd605b) SHA1(9c97be105c923c7db847d9b9aea37025edb685a0) ) ROM_REGION( 0x11000, "st010", 0) @@ -4490,10 +4509,10 @@ ROM_START( twineag2 ) ROM_FILL( 0x1200000, 0x600000, 0x000000 ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sx002-10.u14", 0x000000, 0x200000, CRC(b0669dfa) SHA1(ff805f59864ac4ccee3e249c06804d844d3df59c) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "sx002-11.u7", 0x000000, 0x200000, CRC(b8dd621a) SHA1(f9b43e018f2bb121e4f4e9554419cd32b870556b) ) ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */ @@ -4536,10 +4555,10 @@ ROM_START( ultrax ) ROM_LOAD( "71047-06.u88", 0x0800000, 0x100000, CRC(b8ac2942) SHA1(3e85e8f5669d469dd3114455248546d32a642315) ) ROM_FILL( 0x0900000, 0x300000, 0x000000 ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "71047-07.u59", 0x000000, 0x200000, CRC(d9828b62) SHA1(f66a388d7a00b3a45d386671c061f5b840453451) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "71047-08.u60", 0x000000, 0x200000, CRC(30ebff6d) SHA1(53824c1fc37e22b545fd68b59722f7968f0ca1e2) ) ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */ @@ -4566,10 +4585,10 @@ ROM_START( ultraxg ) ROM_LOAD( "71047-06.u88", 0x0800000, 0x100000, CRC(b8ac2942) SHA1(3e85e8f5669d469dd3114455248546d32a642315) ) ROM_FILL( 0x0900000, 0x300000, 0x000000 ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "71047-07.u59", 0x000000, 0x200000, CRC(d9828b62) SHA1(f66a388d7a00b3a45d386671c061f5b840453451) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "71047-08.u60", 0x000000, 0x200000, CRC(30ebff6d) SHA1(53824c1fc37e22b545fd68b59722f7968f0ca1e2) ) ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */ @@ -4679,10 +4698,10 @@ ROM_START( vasara ) ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(d110dacf) SHA1(6f33bf6ce8c06f0b823b5478a56dc95095385181) ) ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(82d0ca55) SHA1(5ac07df713504329fbc8e8b5374c04e53745230e) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(754fca02) SHA1(5b2810a36183e0d4f42f0fb4a09be033ad0db40d) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(5f303698) SHA1(bd6495f912aa9d761d245ef0a1566d9d7bdbb2ad) ) ROM_END @@ -4700,10 +4719,10 @@ ROM_START( vasara2 ) ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(54ede017) SHA1(4a7ff7ff8ec5843837016f35a588983b5ace06ff) ) ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(4be8479d) SHA1(cbb5943dfae86f4d571459263199a63399dedc20) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(2b381b33) SHA1(b9dd13651e4b8d0b9e3bc4c592022f31ea634d19) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(11cd7098) SHA1(f75288b5c89df039dfb41d66bd275cda8605e75a) ) ROM_END @@ -4721,10 +4740,10 @@ ROM_START( vasara2a ) ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(54ede017) SHA1(4a7ff7ff8ec5843837016f35a588983b5ace06ff) ) ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(4be8479d) SHA1(cbb5943dfae86f4d571459263199a63399dedc20) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(2b381b33) SHA1(b9dd13651e4b8d0b9e3bc4c592022f31ea634d19) ) - ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE | 0 ) /* Samples */ + ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */ ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(11cd7098) SHA1(f75288b5c89df039dfb41d66bd275cda8605e75a) ) ROM_END @@ -4877,7 +4896,7 @@ GAME( 1997, koikois2, 0, janjans1, koikois2, ssv_state, init_ssv, GAME( 1997, mslider, 0, mslider, mslider, ssv_state, init_ssv, ROT0, "Visco / Datt Japan", "Monster Slider (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1997, srmp7, 0, srmp7, srmp7, ssv_state, init_ssv, ROT0, "Seta", "Super Real Mahjong P7 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1997, srmp7, 0, srmp7, srmp7, ssv_state, init_srmp7, ROT0, "Seta", "Super Real Mahjong P7 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1998, ryorioh, 0, ryorioh, ryorioh, ssv_state, init_ssv, ROT0, "Visco", "Gourmet Battle Quiz Ryohrioh CooKing (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp index 9da6037b864..d109cfaa6ff 100644 --- a/src/mame/drivers/superchs.cpp +++ b/src/mame/drivers/superchs.cpp @@ -50,6 +50,7 @@ #include "machine/eepromser.h" #include "sound/es5506.h" #include "screen.h" +#include "speaker.h" #include "superchs.lh" @@ -248,7 +249,12 @@ void superchs_state::superchs(machine_config &config) m_tc0480scp->set_offsets_tx(-1, 0); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } void superchs_state::chase3(machine_config &config) @@ -289,7 +295,7 @@ ROM_START( superchs ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d46-07.ic34", 0x00000, 0x80000, CRC(c3b8b093) SHA1(f34364248ca7fdaaa1a0f8f6f795f9b4bc935fb9) ) /* STY, used to create big sprites on the fly */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d46-10.ic2", 0xc00000, 0x200000, CRC(306256be) SHA1(e6e5d4a4c0b98470f2aff2e94624dd19af73ec5d) ) ROM_LOAD16_BYTE( "d46-12.ic4", 0x000000, 0x200000, CRC(a24a53a8) SHA1(5d5fb87a94ceabda89360064d7d9b6d23c4c606b) ) ROM_RELOAD ( 0x400000, 0x200000 ) @@ -339,7 +345,7 @@ ROM_START( superchsu ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d46-07.ic34", 0x00000, 0x80000, CRC(c3b8b093) SHA1(f34364248ca7fdaaa1a0f8f6f795f9b4bc935fb9) ) /* STY, used to create big sprites on the fly */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d46-10.ic2", 0xc00000, 0x200000, CRC(306256be) SHA1(e6e5d4a4c0b98470f2aff2e94624dd19af73ec5d) ) ROM_LOAD16_BYTE( "d46-12.ic4", 0x000000, 0x200000, CRC(a24a53a8) SHA1(5d5fb87a94ceabda89360064d7d9b6d23c4c606b) ) ROM_RELOAD ( 0x400000, 0x200000 ) @@ -389,7 +395,7 @@ ROM_START( superchsj ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d46-07.ic34", 0x00000, 0x80000, CRC(c3b8b093) SHA1(f34364248ca7fdaaa1a0f8f6f795f9b4bc935fb9) ) /* STY, used to create big sprites on the fly */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d46-10.ic2", 0xc00000, 0x200000, CRC(306256be) SHA1(e6e5d4a4c0b98470f2aff2e94624dd19af73ec5d) ) ROM_LOAD16_BYTE( "d46-09.ic4", 0x000000, 0x200000, CRC(0acb8bc7) SHA1(62d66925f0eee4cee282c4e0972e08d12acf331c) ) ROM_RELOAD ( 0x400000, 0x200000 ) @@ -454,7 +460,7 @@ ROM_START( superchsp ) ROM_LOAD16_BYTE( "0style.ic28", 0x00000, 0x40000, CRC(161263e5) SHA1(3b501dd9c543a9505c3fd7627aa42434eeb1a531) ) ROM_LOAD16_BYTE( "8style.ic27", 0x00001, 0x40000, CRC(b32f246c) SHA1(be950f0da5d839978961cb77745427ac0bd83a5c) ) - ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE(0x800000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE("0wave.ic1", 0x000000, 0x080000, CRC(3ffdc22e) SHA1(16cc02895a0219fdecec5da3ce37bb246e511a1f) ) ROM_LOAD16_BYTE("1wave.ic2", 0x100000, 0x080000, CRC(2ffc7b82) SHA1(e7837753bf4b85fc2973ef4d70afac47a614830c) ) ROM_LOAD16_BYTE("2wave.ic3", 0x200000, 0x080000, CRC(ab976601) SHA1(2edfceb3bfbc65b61a0f8358b24242c2cf0eebcf) ) @@ -512,7 +518,7 @@ ROM_START( superchsp2 ) ROM_LOAD16_BYTE( "28.ic27", 0x00001, 0x40000, CRC(94bf0bc3) SHA1(9b0d4517e9c3f3a5833fe773b8e2774b9a42f48f) ) // real ROM labels is unknown - ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE(0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE("0wave.ic1", 0x000000, 0x080000, CRC(3426d5fc) SHA1(e4c846b5e6adc0e0dfc1fc6b1f8867401e859051) ) ROM_LOAD16_BYTE("1wave.ic2", 0x100000, 0x080000, CRC(86bfd6cb) SHA1(c9d95a079393b911b476e82f6f9319d510d27e31) ) ROM_LOAD16_BYTE("2wave.ic3", 0x200000, 0x080000, CRC(39ceebab) SHA1(f4bb61b83be8d40762f0d1da69a54778eea11c50) ) diff --git a/src/mame/drivers/taito_f3.cpp b/src/mame/drivers/taito_f3.cpp index 16fafb91630..f4c720d8ab9 100644 --- a/src/mame/drivers/taito_f3.cpp +++ b/src/mame/drivers/taito_f3.cpp @@ -106,12 +106,12 @@ void taito_f3_state::f3_control_w(offs_t offset, u32 data, u32 mem_mask) void taito_f3_state::sound_reset_0_w(u32 data) { - m_audiocpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); + m_taito_en->audiocpu().set_input_line(INPUT_LINE_RESET, CLEAR_LINE); } void taito_f3_state::sound_reset_1_w(u32 data) { - m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + m_taito_en->audiocpu().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } void taito_f3_state::sound_bankswitch_w(offs_t offset, u32 data, u32 mem_mask) @@ -463,8 +463,8 @@ void taito_f3_state::machine_start() void taito_f3_state::machine_reset() { /* start with sound m68k off, qtheater relies on it (otherwise main CPU tries to reset it while 68k is working with irq table vectors). */ - if (m_audiocpu) - m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + if (m_taito_en) + m_taito_en->audiocpu().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } void taito_f3_state::f3(machine_config &config) @@ -491,7 +491,12 @@ void taito_f3_state::f3(machine_config &config) PALETTE(config, m_palette).set_entries(0x2000); /* sound hardware */ + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + TAITO_EN(config, m_taito_en, 0); + m_taito_en->add_route(0, "lspeaker", 1.0); + m_taito_en->add_route(1, "rspeaker", 1.0); } /* These games reprogram the video output registers to display different scanlines, @@ -623,7 +628,7 @@ ROM_START( ringrage ) ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -654,7 +659,7 @@ ROM_START( ringrageu ) ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -685,7 +690,7 @@ ROM_START( ringragej ) ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -716,7 +721,7 @@ ROM_START( arabianm ) ROM_LOAD16_BYTE("d29-18.ic5", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) ROM_LOAD16_BYTE("d29-19.ic6", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d29-01.ic17", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d29-02.ic18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -758,7 +763,7 @@ ROM_START( arabianmj ) ROM_LOAD16_BYTE("d29-18.ic5", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) ROM_LOAD16_BYTE("d29-19.ic6", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d29-01.ic17", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d29-02.ic18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -800,7 +805,7 @@ ROM_START( arabianmu ) ROM_LOAD16_BYTE("d29-18.ic5", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) ROM_LOAD16_BYTE("d29-19.ic6", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d29-01.ic17", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d29-02.ic18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -840,7 +845,7 @@ ROM_START( ridingf ) ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -869,7 +874,7 @@ ROM_START( ridingfj ) ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -898,7 +903,7 @@ ROM_START( ridingfu ) ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -931,7 +936,7 @@ ROM_START( gseeker ) ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -964,7 +969,7 @@ ROM_START( gseekerj ) ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -997,7 +1002,7 @@ ROM_START( gseekeru ) ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1031,7 +1036,7 @@ ROM_START( commandw ) ROM_LOAD16_BYTE("cw_spr1.bin", 0x100000, 0x20000, CRC(c8f81c25) SHA1(1c914053826587cc2d5d2c0220a3e29a641fe6f9) ) ROM_LOAD16_BYTE("cw_spr0.bin", 0x100001, 0x20000, CRC(2aaa9dfb) SHA1(6d4c36ff54a84035c0ddf40e4f3eafd2adc15a5e) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("cw_pcm_0.bin", 0x000000, 0x200000, CRC(a1e26629) SHA1(0c5899a767f66f67a5d59b8d287d74b54f8c3727) ) // C8 C9 CA CB ROM_LOAD16_BYTE("cw_pcm_1.bin", 0x400000, 0x200000, CRC(39fc6cf4) SHA1(d43ef294af62765bfec089fac1d67ad81e1b06da) ) // CC -- -std- ROM_END @@ -1064,7 +1069,7 @@ ROM_START( cupfinal ) ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1098,7 +1103,7 @@ ROM_START( hthero93 ) ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1132,7 +1137,7 @@ ROM_START( hthero93u ) ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1182,7 +1187,7 @@ ROM_START( trstar ) ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END @@ -1215,7 +1220,7 @@ ROM_START( trstarj ) ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END @@ -1248,7 +1253,7 @@ ROM_START( prmtmfgt ) ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END @@ -1281,7 +1286,7 @@ ROM_START( trstaro ) ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END @@ -1314,7 +1319,7 @@ ROM_START( trstaroj ) ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END @@ -1347,7 +1352,7 @@ ROM_START( prmtmfgto ) ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- ROM_END @@ -1377,7 +1382,7 @@ ROM_START( gunlock ) ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d66-01.ic2", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d66-02.ic3", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- ROM_END @@ -1412,7 +1417,7 @@ ROM_START( gunlocko ) ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("snd0.ic8", 0x000000, 0x080000, CRC(6a468f69) SHA1(77424ee26417e232a81a340cd192531cc59f1f50) ) ROM_LOAD16_BYTE("snd1.ic7", 0x100000, 0x080000, CRC(332827b5) SHA1(e1a75799e553ca3969e4aa52ec199c0bbdfcc02b) ) ROM_LOAD16_BYTE("snd2.ic6", 0x200000, 0x080000, CRC(b5e737dd) SHA1(a056ab589c35657580ea1d58e40ed2089e831112) ) @@ -1448,7 +1453,7 @@ ROM_START( rayforce ) ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d66-01.ic2", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d66-02.ic3", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- ROM_END @@ -1478,7 +1483,7 @@ ROM_START( rayforcej ) ROM_LOAD16_BYTE("d66-23.ic10", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) ROM_LOAD16_BYTE("d66-22.ic23", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d66-01.ic2", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d66-02.ic3", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- ROM_END @@ -1511,7 +1516,7 @@ ROM_START( scfinals ) /* This is the single PCB version */ ROM_LOAD16_BYTE("d49-17.ic5", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.ic6", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1548,7 +1553,7 @@ ROM_START( scfinalso ) /* Cart version */ ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x20000, CRC(f2058eba) SHA1(7faaa94fadf02b6304287b61fb9613f9f4169fef) ) ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x20000, CRC(a0fdd270) SHA1(9b5a2c8d35ea3bc6842e3c328447c3bf641b9237) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V1: 2 banks + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V1: 2 banks ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1585,7 +1590,7 @@ ROM_START( lightbr ) ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END @@ -1618,7 +1623,7 @@ ROM_START( dungeonm ) ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END @@ -1651,7 +1656,7 @@ ROM_START( dungeonmu ) ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END @@ -1744,7 +1749,7 @@ ROM_START( lightbrj ) ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- ROM_END @@ -1777,7 +1782,7 @@ ROM_START( intcup94 ) ROM_LOAD16_BYTE("d78-08.32", 0x100000, 0x20000, CRC(a629d07c) SHA1(b2904e106633a3960ceb2bc58b600ea60034ff0b) ) ROM_LOAD16_BYTE("d78-09.33", 0x100001, 0x20000, CRC(1f0efe01) SHA1(7bff748b9fcee170e430d90ee07eb9975d8fba59) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1811,7 +1816,7 @@ ROM_START( hthero94 ) ROM_LOAD16_BYTE("d78-08.32", 0x100000, 0x20000, CRC(a629d07c) SHA1(b2904e106633a3960ceb2bc58b600ea60034ff0b) ) ROM_LOAD16_BYTE("d78-09.33", 0x100001, 0x20000, CRC(1f0efe01) SHA1(7bff748b9fcee170e430d90ee07eb9975d8fba59) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB // half empty ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1840,7 +1845,7 @@ ROM_START( recalh ) ROM_LOAD16_BYTE("rh_spr1.bin", 0x100000, 0x20000, CRC(504cbc1d) SHA1(35a775c1ebc8107c553e43b9d84eb735446c26fd) ) ROM_LOAD16_BYTE("rh_spr0.bin", 0x100001, 0x20000, CRC(78fba467) SHA1(4586b061724be7ec413784b820c33cc0d6bbcd0c) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("rh_snd0.bin", 0x000000, 0x200000, CRC(386f5e1b) SHA1(d67d5f057c6db3092643f10ea10f977b1caa662f) ) // C8 CB CA C9 // half empty ROM_LOAD16_BYTE("rh_snd1.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- @@ -1883,7 +1888,7 @@ ROM_START( kaiserkn ) ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -1928,7 +1933,7 @@ ROM_START( kaiserknj ) ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -1973,7 +1978,7 @@ ROM_START( gblchmp ) ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -2018,7 +2023,7 @@ ROM_START( dankuga ) ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF @@ -2051,7 +2056,7 @@ ROM_START( dariusg ) ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 ROM_END @@ -2081,7 +2086,7 @@ ROM_START( dariusgj ) ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 ROM_END @@ -2111,7 +2116,7 @@ ROM_START( dariusgu ) ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 ROM_END @@ -2141,7 +2146,7 @@ ROM_START( dariusgx ) ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 ROM_END @@ -2172,7 +2177,7 @@ ROM_START( bublbob2 ) ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- @@ -2208,7 +2213,7 @@ ROM_START( bublbob2o ) ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- ROM_END @@ -2242,7 +2247,7 @@ ROM_START( bublbob2p ) ROM_LOAD16_BYTE("snd-h-348f.ic66", 0x100000, 0x20000, CRC(f66e60f2) SHA1(b94c97ccde179a69811137c77730c91924236bfe) ) ROM_LOAD16_BYTE("snd-l-4ec1.ic65", 0x100001, 0x20000, CRC(d302d8bc) SHA1(02a2e69d0f4406578b12b05ab25d2abdf5bbba3c) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE("cq80-snd-data0-7b5f.ic43", 0x000000, 0x080000, CRC(bf8f26d3) SHA1(b165fc62ed30ae56d27caffbb0b16321d3c5ef8b) ) // C8 ROM_LOAD16_BYTE("cq80-snd-data1-933b.ic44", 0x100000, 0x080000, CRC(62b00475) SHA1(d2b44940cefca76897b291d83b5ca8ec18dbe1fa) ) // C9 @@ -2289,7 +2294,7 @@ ROM_START( bubsymphe ) ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- ROM_END @@ -2319,7 +2324,7 @@ ROM_START( bubsymphj ) ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- @@ -2412,7 +2417,7 @@ ROM_START( bubsymphu ) ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- ROM_END @@ -2440,7 +2445,7 @@ ROM_START( spcinvdj ) ROM_LOAD16_BYTE("d93-05.bin", 0x100000, 0x20000, CRC(ff365596) SHA1(4cf2e0d6f42cf3fb69796be6092eff8a47f7f8b9) ) ROM_LOAD16_BYTE("d93-06.bin", 0x100001, 0x20000, CRC(ef7ad400) SHA1(01be403d575a543f089b910a5a8c381a6603e67e) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("d93-11.38", 0x000000, 0x80000, CRC(df5853de) SHA1(bb1ea604d44819dc7c82848c5bde9612f70f7528) ) // C8 ROM_LOAD16_BYTE("d93-12.39", 0x100000, 0x80000, CRC(b0f71d60) SHA1(35fc32764d9b82b1b40c5e9cc8e367cf842531a2) ) // C9 ROM_LOAD16_BYTE("d93-13.40", 0x200000, 0x80000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- @@ -2478,7 +2483,7 @@ ROM_START( pwrgoal ) ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END @@ -2514,7 +2519,7 @@ ROM_START( hthero95 ) ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END @@ -2550,7 +2555,7 @@ ROM_START( hthero95u ) ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END @@ -2586,7 +2591,7 @@ ROM_START( hthero95a ) ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) /* Over dump?? 0x20000-0x3ffff == 0xFF */ - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- ROM_END @@ -2614,7 +2619,7 @@ ROM_START( qtheater ) ROM_LOAD16_BYTE("d95-07.32", 0x100000, 0x40000, CRC(3c201d70) SHA1(89fe4d363f4e1a847ba7d2894a2092708b287a33) ) ROM_LOAD16_BYTE("d95-08.33", 0x100001, 0x40000, CRC(01c23354) SHA1(7b332edc844b1b1c1513e879215089987645fa3f) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("d95-03.38", 0x000000, 0x200000, CRC(4149ea67) SHA1(35fc9e60cd368c6eab20e23deb581aa4f46e164e) ) // C8 C9 CA CB ROM_LOAD16_BYTE("d95-04.41", 0x400000, 0x200000, CRC(e9049d16) SHA1(ffa7dfc5d1cb82a601bad26b634c993aedda7803) ) // CC CD -std- ROM_END @@ -2644,7 +2649,7 @@ ROM_START( spcinv95u ) ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF @@ -2681,7 +2686,7 @@ ROM_START( spcinv95 ) ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF @@ -2718,7 +2723,7 @@ ROM_START( akkanvdr ) ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF ROM_END @@ -2833,7 +2838,7 @@ ROM_START( elvactr ) ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF @@ -2872,7 +2877,7 @@ ROM_START( elvactrj ) ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF ROM_END @@ -2902,7 +2907,7 @@ ROM_START( elvact2u ) ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF ROM_END @@ -2934,7 +2939,7 @@ ROM_START( twinqix ) ROM_LOAD16_BYTE("spr0-1.b66", 0x100000, 0x40000, CRC(4b20e99d) SHA1(faf184daea0f1131bafa50edb48bd470d4c0b141) ) ROM_LOAD16_BYTE("spr0-0.b65", 0x100001, 0x40000, CRC(2569eb30) SHA1(ec804131025e600198cd8342925823340e7ef458) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("snd-0.b43", 0x000000, 0x80000, CRC(ad5405a9) SHA1(67ee42498d2c3c00015237b3b5cd020f9a7c4a18) ) // C8 ROM_LOAD16_BYTE("snd-1.b44", 0x100000, 0x80000, CRC(274864af) SHA1(47fefee23038bb751bdf6b6f48312ba0b6e38b90) ) // C9 ROM_LOAD16_BYTE("snd-14.b10", 0x200000, 0x80000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- @@ -2978,7 +2983,7 @@ ROM_START( quizhuhu ) ROM_LOAD16_BYTE("e08-18.32", 0x100000, 0x20000, CRC(e695497e) SHA1(9d845b4c0bd9b40471fb4b5ab2f9240058bc324f) ) ROM_LOAD16_BYTE("e08-17.33", 0x100001, 0x20000, CRC(fafc7e4e) SHA1(26f46d5900fbf26d25651e7e818e486fc7a878ec) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e08-07.38", 0x400000, 0x200000, CRC(c05dc85b) SHA1(d46ae3f066bbe041edde40358dd54f93e8e195de) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e08-08.39", 0x800000, 0x200000, CRC(3eb94a99) SHA1(e6e8832e87397811dfc40525f2a15fc0415cec68) ) // CC CD CE CF @@ -3010,7 +3015,7 @@ ROM_START( pbobble2 ) ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF @@ -3044,7 +3049,7 @@ ROM_START( pbobble2o ) ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF ROM_END @@ -3073,7 +3078,7 @@ ROM_START( pbobble2j ) ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF ROM_END @@ -3102,7 +3107,7 @@ ROM_START( pbobble2u ) ROM_LOAD16_BYTE("e10-16.32", 0x100000, 0x40000, CRC(765ce77a) SHA1(e2723bd6238da91d28307081909a7172a1825c83) ) ROM_LOAD16_BYTE("e10-17.33", 0x100001, 0x40000, CRC(0aec3b1e) SHA1(a76a020cefcfbf86b0d893a6eb8ff93cb571abeb) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF ROM_END @@ -3131,7 +3136,7 @@ ROM_START( pbobble2x ) ROM_LOAD16_BYTE("e10-30.32", 0x100000, 0x40000, CRC(bb090c1e) SHA1(af2ff23d6f9bd56c25530cb9bf9f452b6f5210f5) ) ROM_LOAD16_BYTE("e10-31.33", 0x100001, 0x40000, CRC(f4b88d65) SHA1(c74dcb4bed979039fad1d5c7528c14ce4db1d5ec) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF @@ -3168,7 +3173,7 @@ ROM_START( gekiridn ) ROM_LOAD16_BYTE("e11-13.ic32", 0x100000, 0x40000, CRC(f5c5486a) SHA1(4091f3ddb1e6cbc9dc89485e1e784a4b6fa191b7) ) ROM_LOAD16_BYTE("e11-14.ic33", 0x100001, 0x40000, CRC(7fa10f96) SHA1(50efefd890535e952022a494c5b4e9b33bb90fad) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) ) // CC CD -std- ROM_END @@ -3198,7 +3203,7 @@ ROM_START( gekiridnj ) ROM_LOAD16_BYTE("e11-13.ic32", 0x100000, 0x40000, CRC(f5c5486a) SHA1(4091f3ddb1e6cbc9dc89485e1e784a4b6fa191b7) ) ROM_LOAD16_BYTE("e11-14.ic33", 0x100001, 0x40000, CRC(7fa10f96) SHA1(50efefd890535e952022a494c5b4e9b33bb90fad) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) ) // CC CD -std- ROM_END @@ -3234,7 +3239,7 @@ ROM_START( tcobra2 ) ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- @@ -3273,7 +3278,7 @@ ROM_START( tcobra2u ) ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- @@ -3312,7 +3317,7 @@ ROM_START( ktiger2 ) ROM_LOAD16_BYTE("e15-15.ic32", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) ROM_LOAD16_BYTE("e15-16.ic33", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e15-05.ic38", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e15-06.ic41", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- @@ -3348,7 +3353,7 @@ ROM_START( bubblem ) ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- @@ -3380,7 +3385,7 @@ ROM_START( bubblemu ) ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- @@ -3412,7 +3417,7 @@ ROM_START( bubblemj ) ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- @@ -3444,7 +3449,7 @@ ROM_START( cleopatr ) ROM_LOAD16_BYTE("e28-11.bin", 0x100000, 0x20000, CRC(01a06950) SHA1(94d22cd839f9027e9d45264c366e0cb5d698e0b6) ) ROM_LOAD16_BYTE("e28-12.bin", 0x100001, 0x20000, CRC(dc19260f) SHA1(fa0ca03a236326652e4f9898d07cd837c1507a9d) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e28-03.bin", 0x000000, 0x200000, CRC(15c7989d) SHA1(7cc63d93e5c1f9f52f889e973bbefd5e6f7ce807) ) // C8 C9 CA CB ROM_END @@ -3484,7 +3489,7 @@ ROM_START( cleopatro ) ROM_LOAD16_BYTE("e28-11.bin", 0x100000, 0x20000, CRC(01a06950) SHA1(94d22cd839f9027e9d45264c366e0cb5d698e0b6) ) ROM_LOAD16_BYTE("e28-12.bin", 0x100001, 0x20000, CRC(dc19260f) SHA1(fa0ca03a236326652e4f9898d07cd837c1507a9d) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e28-03.bin", 0x000000, 0x200000, CRC(15c7989d) SHA1(7cc63d93e5c1f9f52f889e973bbefd5e6f7ce807) ) // C8 C9 CA CB ROM_END @@ -3512,7 +3517,7 @@ ROM_START( pbobble3 ) ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA @@ -3543,7 +3548,7 @@ ROM_START( pbobble3u ) ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA @@ -3574,7 +3579,7 @@ ROM_START( pbobble3j ) ROM_LOAD16_BYTE("e29-13.ic32", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) ROM_LOAD16_BYTE("e29-14.ic33", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e29-03.ic38", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 ROM_LOAD16_BYTE("e29-04.ic39", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA @@ -3613,7 +3618,7 @@ ROM_START( arkretrn ) ROM_REGION( 0x080000, "tilemap_hi", 0 ) ROM_LOAD ("e36-05.43", 0x000000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e36-04.38", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB ROM_REGION( 0x0a00, "plds", 0 ) @@ -3649,7 +3654,7 @@ ROM_START( arkretrnu ) ROM_REGION( 0x080000, "tilemap_hi", 0 ) ROM_LOAD ("e36-05.43", 0x000000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e36-04.38", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB ROM_REGION( 0x0a00, "plds", 0 ) @@ -3685,7 +3690,7 @@ ROM_START( arkretrnj ) ROM_REGION( 0x080000, "tilemap_hi", 0 ) ROM_LOAD ("e36-05.43", 0x000000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_REGION16_BE( 0x400000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated + ROM_REGION16_BE( 0x400000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated ROM_LOAD16_BYTE("e36-04.38", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB ROM_REGION( 0x0a00, "plds", 0 ) @@ -3728,7 +3733,7 @@ ROM_START( kirameki ) ROM_LOAD16_BYTE("e44-21.52", 0x100001, 0x080000, CRC(d31b94b8) SHA1(41ee381d10254dc6e7163c5f353568539a96fc20) ) ROM_LOAD16_WORD_SWAP("e44-15.53", 0x200000, 0x200000, CRC(5043b608) SHA1(a328b8cc27ba1620a75a17cdf8571e217c42b9fd) ) /* Banked data */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks ROM_LOAD16_BYTE("e44-07.38", 0x000000, 0x400000, CRC(a9e28544) SHA1(0dc3e1755a93fda310d26ed5f95dd211c05e579e) ) // D2 C8 C8 C9 CA CB CC CD ROM_LOAD16_BYTE("e44-08.39", 0x800000, 0x400000, CRC(33ba3037) SHA1(b4bbc4198929938607c444edf159ff40f53235d7) ) // CE CF D0 -- -- -- -std- @@ -3764,7 +3769,7 @@ ROM_START( puchicar ) // an Asia cart was dumped and all ROMs match ROM_LOAD16_BYTE("e46-21", 0x100000, 0x40000, CRC(b466cff6) SHA1(0757984f15a6ac9939c1e8625d5b9bfcbc788acc) ) ROM_LOAD16_BYTE("e46-22", 0x100001, 0x40000, CRC(c67b767e) SHA1(19f3db6615d7a6ed4d2636b6beabe2f3ed6d0c38) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e46-07", 0x400000, 0x200000, CRC(f20af91e) SHA1(86040ff7ce591418b32c06c3a02fabcbe76281f5) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e46-08", 0x800000, 0x200000, CRC(f7f96e1d) SHA1(8a83ea9036e8647b8dec6b5e144288ed9c025779) ) // CC CD CE CF @@ -3806,7 +3811,7 @@ ROM_START( puchicarj ) ROM_LOAD16_BYTE("e46-19", 0x100000, 0x40000, CRC(2624eba0) SHA1(ba0b13bda241c648c7f8520106acd8c0c888fe29) ) ROM_LOAD16_BYTE("e46-20", 0x100001, 0x40000, CRC(065e934f) SHA1(0ec1b5ae33b1c43776b9327c9d380787d64ed5f9) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e46-07", 0x400000, 0x200000, CRC(f20af91e) SHA1(86040ff7ce591418b32c06c3a02fabcbe76281f5) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e46-08", 0x800000, 0x200000, CRC(f7f96e1d) SHA1(8a83ea9036e8647b8dec6b5e144288ed9c025779) ) // CC CD CE CF @@ -3844,7 +3849,7 @@ ROM_START( pbobble4 ) ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 @@ -3882,7 +3887,7 @@ ROM_START( pbobble4j ) ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 @@ -3920,7 +3925,7 @@ ROM_START( pbobble4u ) ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 @@ -3959,7 +3964,7 @@ ROM_START( popnpopj ) ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- @@ -3996,7 +4001,7 @@ ROM_START( popnpop ) ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- @@ -4033,7 +4038,7 @@ ROM_START( popnpopu ) ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - ROM_REGION16_BE( 0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated + ROM_REGION16_BE( 0x800000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- @@ -4112,7 +4117,7 @@ ROM_START( landmakr ) ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e61-04.38", 0x400000, 0x200000, CRC(c27aec0c) SHA1(e95da2db07a20a53662ebd45c033966e8a22a15a) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e61-05.39", 0x800000, 0x200000, CRC(83920d9d) SHA1(019e39ae85d1129f6d3b8460c4b1bd925f868ee2) ) // CC CD CE CF @@ -4151,7 +4156,7 @@ ROM_START( landmakrj ) ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("e61-04.38", 0x400000, 0x200000, CRC(c27aec0c) SHA1(e95da2db07a20a53662ebd45c033966e8a22a15a) ) // C8 C9 CA CB ROM_LOAD16_BYTE("e61-05.39", 0x800000, 0x200000, CRC(83920d9d) SHA1(019e39ae85d1129f6d3b8460c4b1bd925f868ee2) ) // CC CD CE CF @@ -4208,7 +4213,7 @@ ROM_START( landmakrp ) // First 3 roms match parent, mpro-0.63 has bytes 7FFFE & ROM_LOAD16_BYTE("spro-1.66", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) ROM_LOAD16_BYTE("spro-0.65", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) // V2: 4 banks // empty ROM_LOAD16_BYTE("snd-0.43", 0x400000, 0x80000, CRC(0e5ef5c8) SHA1(e2840c9cedb9361b7eb307e87ea96f3bb6225487) ) // C8 ROM_LOAD16_BYTE("snd-1.44", 0x500000, 0x80000, CRC(2998fd65) SHA1(192e32f9934465bb0da5c1ad116c5ea9b286f36a) ) // C9 diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp index e8b01aba025..9bf25cf8b0b 100644 --- a/src/mame/drivers/taitojc.cpp +++ b/src/mame/drivers/taitojc.cpp @@ -1125,7 +1125,12 @@ void taitojc_state::taitojc(machine_config &config) TC0780FPA(config, m_tc0780fpa, 0); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } void taitojc_state::dendego(machine_config &config) @@ -1233,7 +1238,7 @@ ROM_START( sidebs ) /* Side by Side ver 2.7 J */ ROM_LOAD( "e23-10.ic20", 0x0c00000, 0x200000, CRC(038370d9) SHA1(c02f68a25121d2d5aae62c419522b25cd6ec32b6) ) ROM_LOAD( "e23-11.ic21", 0x0e00000, 0x200000, CRC(91fab03d) SHA1(1865d8b679faa6f2b3c14db2c6c461c00afd547c) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) ROM_LOAD16_BYTE( "e23-16.ic33", 0x400000, 0x200000, CRC(1d63d785) SHA1(0cf74bb433e9c453e35f7a552fdf9e22084b2f49) ) ROM_LOAD16_BYTE( "e23-17.ic34", 0x800000, 0x200000, CRC(1c54021a) SHA1(a1efbdb02d23a5d32ebd25cb8e99dface3178ebd) ) @@ -1276,7 +1281,7 @@ ROM_START( sidebsja ) /* Side by Side ver 2.6 J */ ROM_LOAD( "e23-10.ic20", 0x0c00000, 0x200000, CRC(038370d9) SHA1(c02f68a25121d2d5aae62c419522b25cd6ec32b6) ) ROM_LOAD( "e23-11.ic21", 0x0e00000, 0x200000, CRC(91fab03d) SHA1(1865d8b679faa6f2b3c14db2c6c461c00afd547c) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) ROM_LOAD16_BYTE( "e23-16.ic33", 0x400000, 0x200000, CRC(1d63d785) SHA1(0cf74bb433e9c453e35f7a552fdf9e22084b2f49) ) ROM_LOAD16_BYTE( "e23-17.ic34", 0x800000, 0x200000, CRC(1c54021a) SHA1(a1efbdb02d23a5d32ebd25cb8e99dface3178ebd) ) @@ -1319,7 +1324,7 @@ ROM_START( sidebsjb ) /* Side by Side ver 2.5 J */ ROM_LOAD( "e23-10.ic20", 0x0c00000, 0x200000, CRC(038370d9) SHA1(c02f68a25121d2d5aae62c419522b25cd6ec32b6) ) ROM_LOAD( "e23-11.ic21", 0x0e00000, 0x200000, CRC(91fab03d) SHA1(1865d8b679faa6f2b3c14db2c6c461c00afd547c) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) ROM_LOAD16_BYTE( "e23-16.ic33", 0x400000, 0x200000, CRC(1d63d785) SHA1(0cf74bb433e9c453e35f7a552fdf9e22084b2f49) ) ROM_LOAD16_BYTE( "e23-17.ic34", 0x800000, 0x200000, CRC(1c54021a) SHA1(a1efbdb02d23a5d32ebd25cb8e99dface3178ebd) ) @@ -1369,7 +1374,7 @@ ROM_START( sidebs2 ) /* Side by Side 2 Ver 2.6 OK */ ROM_RELOAD( 0x0f00000, 0x080000 ) ROM_RELOAD( 0x0f80000, 0x080000 ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) // from sidebs (redump) ROM_LOAD16_BYTE( "e38-17.ic33", 0x400000, 0x200000, CRC(61e81c7f) SHA1(aa650bc139685ad456c233b79aa60005a8fd6d79) ) ROM_LOAD16_BYTE( "e38-18.ic34", 0x800000, 0x200000, CRC(43e2f149) SHA1(32ea9156948a886dda5bd071e9f493ddc2b06212) ) @@ -1435,7 +1440,7 @@ ROM_START( sidebs2u ) /* Side by Side 2 Ver 2.6 A */ ROM_RELOAD( 0x0f00000, 0x080000 ) ROM_RELOAD( 0x0f80000, 0x080000 ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) // from sidebs (redump) ROM_LOAD16_BYTE( "e38-17.ic33", 0x400000, 0x200000, CRC(61e81c7f) SHA1(aa650bc139685ad456c233b79aa60005a8fd6d79) ) ROM_LOAD16_BYTE( "e38-18.ic34", 0x800000, 0x200000, CRC(43e2f149) SHA1(32ea9156948a886dda5bd071e9f493ddc2b06212) ) @@ -1501,7 +1506,7 @@ ROM_START( sidebs2j ) /* Side by Side 2 Evoluzione RR Ver 3.1 J */ ROM_RELOAD( 0x0f00000, 0x080000 ) ROM_RELOAD( 0x0f80000, 0x080000 ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) // from sidebs (redump) ROM_LOAD16_BYTE( "e38-17.ic33", 0x400000, 0x200000, CRC(61e81c7f) SHA1(aa650bc139685ad456c233b79aa60005a8fd6d79) ) ROM_LOAD16_BYTE( "e38-18.ic34", 0x800000, 0x200000, CRC(43e2f149) SHA1(32ea9156948a886dda5bd071e9f493ddc2b06212) ) @@ -1567,7 +1572,7 @@ ROM_START( sidebs2ja ) /* Side by Side 2 Evoluzione Ver 2.4 J */ ROM_RELOAD( 0x0f00000, 0x080000 ) ROM_RELOAD( 0x0f80000, 0x080000 ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e23-15.ic32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) // from sidebs (redump) ROM_LOAD16_BYTE( "e38-17.ic33", 0x400000, 0x200000, CRC(61e81c7f) SHA1(aa650bc139685ad456c233b79aa60005a8fd6d79) ) ROM_LOAD16_BYTE( "e38-18.ic34", 0x800000, 0x200000, CRC(43e2f149) SHA1(32ea9156948a886dda5bd071e9f493ddc2b06212) ) @@ -1630,7 +1635,7 @@ ROM_START( dendego ) ROM_REGION( 0x40000, "oki", 0 ) /* train board, OKI6295 sound samples */ ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e35-17.ic32", 0x000000, 0x200000, CRC(3bc23aa1) SHA1(621e0f2f5f3dbd7d7ce05c9cd317958c361c1c26) ) ROM_LOAD16_BYTE( "e35-18.ic33", 0x400000, 0x200000, CRC(a084d3aa) SHA1(18ea39366006e362e16d6732ce3e79cd3bfa041e) ) ROM_LOAD16_BYTE( "e35-19.ic34", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) @@ -1677,7 +1682,7 @@ ROM_START( dendegox ) ROM_REGION( 0x40000, "oki", 0 ) /* train board, OKI6295 sound samples */ ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e35-17.ic32", 0x000000, 0x200000, CRC(3bc23aa1) SHA1(621e0f2f5f3dbd7d7ce05c9cd317958c361c1c26) ) ROM_LOAD16_BYTE( "e35-18.ic33", 0x400000, 0x200000, CRC(a084d3aa) SHA1(18ea39366006e362e16d6732ce3e79cd3bfa041e) ) ROM_LOAD16_BYTE( "e35-19.ic34", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) @@ -1728,7 +1733,7 @@ ROM_START( dendego2 ) ROM_REGION( 0x40000, "oki", 0 ) /* train board, OKI6295 sound samples */ ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e52-21.ic32", 0x000000, 0x200000, CRC(ba58081d) SHA1(bcb6c8781191d48f906ed404a3e7388097a64781) ) ROM_LOAD16_BYTE( "e52-22.ic33", 0x400000, 0x200000, CRC(dda281b1) SHA1(4851a6bf7902548c5033090a0e5c15f74c00ef58) ) ROM_LOAD16_BYTE( "e52-23.ic34", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) // same as e35-19.ic34 from dendego @@ -1779,7 +1784,7 @@ ROM_START( dendego23k ) ROM_REGION( 0x40000, "oki", 0 ) /* train board, OKI6295 sound samples */ ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e52-21.ic32", 0x000000, 0x200000, CRC(ba58081d) SHA1(bcb6c8781191d48f906ed404a3e7388097a64781) ) ROM_LOAD16_BYTE( "e52-22.ic33", 0x400000, 0x200000, CRC(dda281b1) SHA1(4851a6bf7902548c5033090a0e5c15f74c00ef58) ) ROM_LOAD16_BYTE( "e52-23.ic34", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) // same as e35-19.ic34 from dendego @@ -1825,7 +1830,7 @@ ROM_START( landgear ) /* Landing Gear Ver 4.2 O */ ROM_LOAD( "e17-07.ic18", 0x0800000, 0x200000, CRC(0f180eb0) SHA1(5e1dd920f110a62a029bace6f4cb80fee0fdaf03) ) ROM_LOAD( "e17-08.ic19", 0x0a00000, 0x200000, CRC(3107e154) SHA1(59a99770c2aa535cac6569f41b03be1554e0e800) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e17-13.ic32", 0x000000, 0x200000, CRC(6cf238e7) SHA1(0745d2dcfea26178adde3ad08650156e8e30651f) ) ROM_LOAD16_BYTE( "e17-14.ic33", 0x400000, 0x200000, CRC(5efec311) SHA1(f253bc40f2567f59ddfb617fddb8b9a389bfac89) ) ROM_LOAD16_BYTE( "e17-15.ic34", 0x800000, 0x200000, CRC(41d7a7d0) SHA1(f5a8b79c1d47611e93d46aaf921107b52090bb5f) ) @@ -1879,7 +1884,7 @@ ROM_START( landgearj ) /* Landing Gear Ver 4.2 J */ ROM_LOAD( "e17-07.ic18", 0x0800000, 0x200000, CRC(0f180eb0) SHA1(5e1dd920f110a62a029bace6f4cb80fee0fdaf03) ) ROM_LOAD( "e17-08.ic19", 0x0a00000, 0x200000, CRC(3107e154) SHA1(59a99770c2aa535cac6569f41b03be1554e0e800) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e17-13.ic32", 0x000000, 0x200000, CRC(6cf238e7) SHA1(0745d2dcfea26178adde3ad08650156e8e30651f) ) ROM_LOAD16_BYTE( "e17-14.ic33", 0x400000, 0x200000, CRC(5efec311) SHA1(f253bc40f2567f59ddfb617fddb8b9a389bfac89) ) ROM_LOAD16_BYTE( "e17-15.ic34", 0x800000, 0x200000, CRC(41d7a7d0) SHA1(f5a8b79c1d47611e93d46aaf921107b52090bb5f) ) @@ -1933,7 +1938,7 @@ ROM_START( landgeara ) /* Landing Gear Ver 3.1 O, is there an alternate set with ROM_LOAD( "e17-07.ic18", 0x0800000, 0x200000, CRC(0f180eb0) SHA1(5e1dd920f110a62a029bace6f4cb80fee0fdaf03) ) ROM_LOAD( "e17-08.ic19", 0x0a00000, 0x200000, CRC(3107e154) SHA1(59a99770c2aa535cac6569f41b03be1554e0e800) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e17-13.ic32", 0x000000, 0x200000, CRC(6cf238e7) SHA1(0745d2dcfea26178adde3ad08650156e8e30651f) ) ROM_LOAD16_BYTE( "e17-14.ic33", 0x400000, 0x200000, CRC(5efec311) SHA1(f253bc40f2567f59ddfb617fddb8b9a389bfac89) ) ROM_LOAD16_BYTE( "e17-15.ic34", 0x800000, 0x200000, CRC(41d7a7d0) SHA1(f5a8b79c1d47611e93d46aaf921107b52090bb5f) ) @@ -1987,7 +1992,7 @@ ROM_START( landgearja ) /* Landing Gear Ver 3.0 J, is there an alternate set wit ROM_LOAD( "e17-07.ic18", 0x0800000, 0x200000, CRC(0f180eb0) SHA1(5e1dd920f110a62a029bace6f4cb80fee0fdaf03) ) ROM_LOAD( "e17-08.ic19", 0x0a00000, 0x200000, CRC(3107e154) SHA1(59a99770c2aa535cac6569f41b03be1554e0e800) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e17-13.ic32", 0x000000, 0x200000, CRC(6cf238e7) SHA1(0745d2dcfea26178adde3ad08650156e8e30651f) ) ROM_LOAD16_BYTE( "e17-14.ic33", 0x400000, 0x200000, CRC(5efec311) SHA1(f253bc40f2567f59ddfb617fddb8b9a389bfac89) ) ROM_LOAD16_BYTE( "e17-15.ic34", 0x800000, 0x200000, CRC(41d7a7d0) SHA1(f5a8b79c1d47611e93d46aaf921107b52090bb5f) ) @@ -2045,7 +2050,7 @@ ROM_START( dangcurv ) /* Dangerous Curves Ver 2.9 O */ ROM_LOAD( "e09-11.ic20", 0x0c00000, 0x200000, CRC(18cc0ba7) SHA1(626929a501def6f1b8bd6a468786efb0b0dda9fa) ) ROM_LOAD( "e09-12.ic21", 0x0e00000, 0x200000, CRC(3273e438) SHA1(e9581d52f5db1c1924a860464579332a2f23e713) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e09-17.ic32", 0x000000, 0x200000, CRC(a8a6512e) SHA1(71bd3ccd65b731270b92da334b9fb99c28e267fe) ) ROM_LOAD16_BYTE( "e09-18.ic33", 0x400000, 0x200000, CRC(bdf1f5eb) SHA1(a568a99a90e0afbcd26ddd320f515ed62cf0db1a) ) ROM_LOAD16_BYTE( "e09-19.ic34", 0x800000, 0x200000, CRC(3626c7ed) SHA1(7535f0457b3d9fe1d54712a26322d6144b9e7de6) ) @@ -2102,7 +2107,7 @@ ROM_START( dangcurvj ) /* Dangerous Curves Ver 2.2 J */ ROM_LOAD( "e09-11.ic20", 0x0c00000, 0x200000, CRC(18cc0ba7) SHA1(626929a501def6f1b8bd6a468786efb0b0dda9fa) ) ROM_LOAD( "e09-12.ic21", 0x0e00000, 0x200000, CRC(3273e438) SHA1(e9581d52f5db1c1924a860464579332a2f23e713) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "e09-17.ic32", 0x000000, 0x200000, CRC(a8a6512e) SHA1(71bd3ccd65b731270b92da334b9fb99c28e267fe) ) ROM_LOAD16_BYTE( "e09-18.ic33", 0x400000, 0x200000, CRC(bdf1f5eb) SHA1(a568a99a90e0afbcd26ddd320f515ed62cf0db1a) ) ROM_LOAD16_BYTE( "e09-19.ic34", 0x800000, 0x200000, CRC(3626c7ed) SHA1(7535f0457b3d9fe1d54712a26322d6144b9e7de6) ) diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp index 69525f6e4e9..8d8c062b492 100644 --- a/src/mame/drivers/undrfire.cpp +++ b/src/mame/drivers/undrfire.cpp @@ -201,6 +201,7 @@ Board contains only 29 ROMs and not much else. #include "machine/watchdog.h" #include "sound/es5506.h" #include "screen.h" +#include "speaker.h" #include "cbombers.lh" @@ -554,7 +555,12 @@ void undrfire_state::undrfire(machine_config &config) m_tc0480scp->set_offsets_tx(-1, 0); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } @@ -612,7 +618,12 @@ void undrfire_state::cbombers(machine_config &config) m_tc0480scp->set_col_base(4096); /* sound hardware */ - TAITO_EN(config, "taito_en", 0); + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); + + taito_en_device &taito_en(TAITO_EN(config, "taito_en", 0)); + taito_en.add_route(0, "lspeaker", 1.0); + taito_en.add_route(1, "rspeaker", 1.0); } @@ -652,7 +663,7 @@ ROM_START( undrfire ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d67-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */ ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) ) @@ -693,7 +704,7 @@ ROM_START( undrfireu ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d67-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */ ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) ) @@ -733,7 +744,7 @@ ROM_START( undrfirej ) ROM_REGION16_LE( 0x80000, "spritemap", 0 ) ROM_LOAD16_WORD( "d67-13", 0x00000, 0x80000, CRC(42e7690d) SHA1(5f00f3f814653733bf9a5cb010675799de02fa76) ) /* STY, spritemap */ - ROM_REGION16_BE( 0x1000000, "ensoniq.0", ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d67-01", 0x000000, 0x200000, CRC(a2f18122) SHA1(640014c6e6d66c59fe0accf370ad3bab9f40429a) ) /* Ensoniq samples */ ROM_LOAD16_BYTE( "d67-02", 0xc00000, 0x200000, CRC(fceb715e) SHA1(9326513acb0696669d4f2345649ab37c8c6ed171) ) @@ -786,7 +797,7 @@ ROM_START( cbombers ) ROM_REGION( 0x40000, "spritemaphi", 0 ) ROM_LOAD( "d83_30.ic9", 0x00000, 0x40000, CRC(eb86dc67) SHA1(31c7b6f30ff912fafed4b87ce8bf603ee17d1664) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d83_01.ic40", 0xc00000, 0x200000, CRC(912799f4) SHA1(22f69e61519d2cddcfc4e4c9601e78a9d5265d5b) ) ROM_LOAD16_BYTE( "d83_02.ic39", 0x000000, 0x200000, CRC(2abca020) SHA1(3491a95651ca89b7fe6d040b8576fa7646bfe84b) ) ROM_RELOAD ( 0x400000, 0x200000 ) @@ -841,7 +852,7 @@ ROM_START( cbombersj ) ROM_REGION( 0x40000, "spritemaphi", 0 ) ROM_LOAD( "d83_30.ic9", 0x00000, 0x40000, CRC(eb86dc67) SHA1(31c7b6f30ff912fafed4b87ce8bf603ee17d1664) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "d83_01.ic40", 0xc00000, 0x200000, CRC(912799f4) SHA1(22f69e61519d2cddcfc4e4c9601e78a9d5265d5b) ) ROM_LOAD16_BYTE( "d83_02.ic39", 0x000000, 0x200000, CRC(2abca020) SHA1(3491a95651ca89b7fe6d040b8576fa7646bfe84b) ) ROM_RELOAD ( 0x400000, 0x200000 ) @@ -930,7 +941,7 @@ ROM_START( cbombersp ) ROM_REGION( 0x40000, "spritemaphi", 0 ) ROM_LOAD( "st16_ic3.bin", 0x00000, 0x40000, CRC(c4ff6b2f) SHA1(65795bcb3749cce9c291204cd64fafa529317e14) ) - ROM_REGION16_BE( 0x1000000, "ensoniq.0" , ROMREGION_ERASE00 ) + ROM_REGION16_BE( 0x1000000, "taito_en:ensoniq" , ROMREGION_ERASE00 ) ROM_LOAD16_BYTE("ic84_0816_wave0.bin", 0x000000, 0x080000, CRC(c30c71fd) SHA1(4240a23120b85f9daf6a462770185614fa758e4d) ) ROM_LOAD16_BYTE("ic85_8058_wave1.bin", 0x100000, 0x080000, CRC(fe37d544) SHA1(75c23b4e4e2efbbda1724a557f68c3bf1e5016c6) ) ROM_LOAD16_BYTE("ic86_9e88_wave2.bin", 0x200000, 0x080000, CRC(d6dcb45d) SHA1(ec69fb0a9fc6f7e72850775656e9fcd185889825) ) diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h index 37bf6cc6576..af3348602de 100644 --- a/src/mame/includes/macrossp.h +++ b/src/mame/includes/macrossp.h @@ -112,7 +112,10 @@ private: void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void draw_layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int linem, int pri); DECLARE_WRITE_LINE_MEMBER(irqhandler); + void macrossp_map(address_map &map); + void macrossp_es5506_bank1_map(address_map &map); + void macrossp_es5506_bank3_map(address_map &map); void macrossp_sound_map(address_map &map); }; diff --git a/src/mame/includes/ssv.h b/src/mame/includes/ssv.h index 02c592ac6af..0f7a63d73e5 100644 --- a/src/mame/includes/ssv.h +++ b/src/mame/includes/ssv.h @@ -30,6 +30,7 @@ public: m_scroll(*this, "scroll"), m_irq_vectors(*this, "irq_vectors"), m_input_sel(*this, "input_sel"), + m_srmp7_esbank(*this, "esbank_%u", 2U), m_raster_interrupt_enabled(false), m_io_key(*this, "KEY%u", 0U), m_gfxdecode(*this, "gfxdecode"), @@ -61,6 +62,7 @@ public: void init_ssv(); void init_ssv_tilescram(); void init_ssv_irq1(); + void init_srmp7(); void init_jsk(); void init_pastelis(); @@ -74,6 +76,7 @@ protected: required_shared_ptr<uint16_t> m_scroll; required_shared_ptr<uint16_t> m_irq_vectors; optional_shared_ptr<uint16_t> m_input_sel; + optional_memory_bank_array<2> m_srmp7_esbank; int m_tile_code[16]; int m_enable_video; @@ -144,6 +147,8 @@ protected: void ryorioh_map(address_map &map); void srmp4_map(address_map &map); void srmp7_map(address_map &map); + void srmp7_es5506_bank2_map(address_map &map); + void srmp7_es5506_bank3_map(address_map &map); void survarts_map(address_map &map); void twineag2_map(address_map &map); void ultrax_map(address_map &map); diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h index 6bdd37be8eb..5d9624fd2f8 100644 --- a/src/mame/includes/taito_f3.h +++ b/src/mame/includes/taito_f3.h @@ -78,7 +78,6 @@ public: m_dial(*this, "DIAL.%u", 0), m_eepromin(*this, "EEPROMIN"), m_eepromout(*this, "EEPROMOUT"), - m_audiocpu(*this, "taito_en:audiocpu"), m_taito_en(*this, "taito_en"), m_oki(*this, "oki"), m_paletteram32(*this, "paletteram"), @@ -382,7 +381,6 @@ protected: void scanline_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect); private: - optional_device<cpu_device> m_audiocpu; optional_device<taito_en_device> m_taito_en; optional_device<okim6295_device> m_oki; |