summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2020-08-28 04:28:01 +0900
committer GitHub <noreply@github.com>2020-08-27 15:28:01 -0400
commit314c80ea0ea9060777fee430005ebcf850a04a07 (patch)
tree5e1ce9369c75f78e5cbe1fb1966fffaa379693a4
parent471781f99ae8242319beb474649dd4afefa5e3f7 (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.cpp585
-rw-r--r--src/devices/sound/es5506.h98
-rw-r--r--src/mame/audio/taito_en.cpp49
-rw-r--r--src/mame/audio/taito_en.h14
-rw-r--r--src/mame/drivers/galastrm.cpp10
-rw-r--r--src/mame/drivers/groundfx.cpp10
-rw-r--r--src/mame/drivers/gunbustr.cpp14
-rw-r--r--src/mame/drivers/macrossp.cpp36
-rw-r--r--src/mame/drivers/ssv.cpp85
-rw-r--r--src/mame/drivers/superchs.cpp18
-rw-r--r--src/mame/drivers/taito_f3.cpp205
-rw-r--r--src/mame/drivers/taitojc.cpp41
-rw-r--r--src/mame/drivers/undrfire.cpp27
-rw-r--r--src/mame/includes/macrossp.h3
-rw-r--r--src/mame/includes/ssv.h5
-rw-r--r--src/mame/includes/taito_f3.h2
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, &macrossp_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, &macrossp_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;