sega/dsbz80.cpp: Fix volume, Add variables into save states, Cleanups: (#12608)

- Move devices into private:
- Initialize variables at machine start
- Remove hardcoded tags and literal tag usage
- Add notes
- Fix spacing
- Constantize values
- Use correct typename values
This commit is contained in:
cam900 2024-07-25 00:31:48 +09:00 committed by GitHub
parent 592e405016
commit efe7286ed0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 127 additions and 100 deletions

View File

@ -13,11 +13,11 @@
#include "dsbz80.h"
#include "machine/clock.h"
#define Z80_TAG "mpegcpu"
#include <algorithm>
void dsbz80_device::dsbz80_map(address_map &map)
{
map(0x0000, 0x7fff).rom().region(":mpegcpu", 0);
map(0x0000, 0x7fff).rom().region("mpegcpu", 0);
map(0x8000, 0xffff).ram();
}
@ -29,7 +29,7 @@ void dsbz80_device::dsbz80io_map(address_map &map)
map(0xe5, 0xe7).w(FUNC(dsbz80_device::mpeg_end_w));
map(0xe8, 0xe8).w(FUNC(dsbz80_device::mpeg_volume_w));
map(0xe9, 0xe9).w(FUNC(dsbz80_device::mpeg_stereo_w));
map(0xf0, 0xf1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xf0, 0xf1).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
}
@ -70,10 +70,24 @@ void dsbz80_device::device_add_mconfig(machine_config &config)
dsbz80_device::dsbz80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, DSBZ80, tag, owner, clock),
device_sound_interface(mconfig, *this),
m_ourcpu(*this, Z80_TAG),
m_ourcpu(*this, "mpegcpu"),
m_uart(*this, "uart"),
m_mpeg_rom(*this, "mpeg"),
m_mp_start(0),
m_mp_end(0),
m_mp_vol(0x7f),
m_mp_pan(0),
m_mp_state(0),
m_lp_start(0),
m_lp_end(0),
m_start(0),
m_end(0),
m_mp_pos(0),
m_audio_pos(0),
m_audio_avail(0),
m_rxd_handler(*this)
{
std::fill(std::begin(m_audio_buf), std::end(m_audio_buf), 0);
}
//-------------------------------------------------
@ -82,9 +96,21 @@ dsbz80_device::dsbz80_device(const machine_config &mconfig, const char *tag, dev
void dsbz80_device::device_start()
{
uint8_t *rom_base = machine().root_device().memregion("mpeg")->base();
decoder = new mpeg_audio(rom_base, mpeg_audio::L2, false, 0);
m_decoder = new mpeg_audio(&m_mpeg_rom[0], mpeg_audio::L2, false, 0);
stream_alloc(0, 2, 32000);
save_item(NAME(m_mp_start));
save_item(NAME(m_mp_end));
save_item(NAME(m_mp_vol));
save_item(NAME(m_mp_pan));
save_item(NAME(m_mp_state));
save_item(NAME(m_lp_start));
save_item(NAME(m_lp_end));
save_item(NAME(m_start));
save_item(NAME(m_end));
save_item(NAME(m_mp_pos));
save_item(NAME(m_audio_pos));
save_item(NAME(m_audio_avail));
}
//-------------------------------------------------
@ -93,10 +119,11 @@ void dsbz80_device::device_start()
void dsbz80_device::device_reset()
{
start = end = 0;
audio_pos = audio_avail = 0;
memset(audio_buf, 0, sizeof(audio_buf));
mp_state = 0;
m_start = m_end = 0;
m_audio_pos = m_audio_avail = 0;
std::fill(std::begin(m_audio_buf), std::end(m_audio_buf), 0);
m_mp_vol = 0x7f;
m_mp_state = 0;
m_uart->write_cts(0);
}
@ -114,35 +141,35 @@ void dsbz80_device::output_txd(int state)
void dsbz80_device::mpeg_trigger_w(uint8_t data)
{
mp_state = data;
m_mp_state = data;
if (data == 0) // stop
{
mp_state = 0;
audio_pos = audio_avail = 0;
m_mp_state = 0;
m_audio_pos = m_audio_avail = 0;
}
else if (data == 1) // play without loop
{
mp_pos = mp_start*8;
m_mp_pos = m_mp_start * 8;
}
else if (data == 2) // play with loop
{
mp_pos = mp_start*8;
m_mp_pos = m_mp_start * 8;
}
}
uint8_t dsbz80_device::mpeg_pos_r(offs_t offset)
{
int mp_prg = mp_pos >> 3;
uint32_t const mp_prg = m_mp_pos >> 3;
switch (offset)
{
case 0:
return (mp_prg>>16)&0xff;
return (mp_prg >> 16) & 0xff;
case 1:
return (mp_prg>>8)&0xff;
return (mp_prg >> 8) & 0xff;
case 2:
return mp_prg&0xff;
return mp_prg & 0xff;
}
return 0;
@ -160,32 +187,32 @@ void dsbz80_device::mpeg_start_w(offs_t offset, uint8_t data)
switch (offset)
{
case 0:
start &= 0x00ffff;
start |= (int)data<<16;
m_start &= 0x00ffff;
m_start |= (uint32_t)data << 16;
break;
case 1:
start &= 0xff00ff;
start |= (int)data<<8;
m_start &= 0xff00ff;
m_start |= (uint32_t)data << 8;
break;
case 2:
start &= 0xffff00;
start |= data;
m_start &= 0xffff00;
m_start |= data;
if (mp_state == 0)
if (m_mp_state == 0)
{
mp_start = start;
m_mp_start = m_start;
}
else
{
lp_start = start;
m_lp_start = m_start;
// SWA: if loop end is zero, it means "keep previous end marker"
if (lp_end == 0)
if (m_lp_end == 0)
{
// MPEG_Set_Loop(ROM + lp_start, mp_end-lp_start);
// MPEG_Set_Loop(ROM + m_lp_start, m_mp_end-m_lp_start);
}
else
{
// MPEG_Set_Loop(ROM + lp_start, lp_end-lp_start);
// MPEG_Set_Loop(ROM + m_lp_start, m_lp_end-m_lp_start);
}
}
break;
@ -197,25 +224,25 @@ void dsbz80_device::mpeg_end_w(offs_t offset, uint8_t data)
switch (offset)
{
case 0:
end &= 0x00ffff;
end |= (int)data<<16;
m_end &= 0x00ffff;
m_end |= (uint32_t)data << 16;
break;
case 1:
end &= 0xff00ff;
end |= (int)data<<8;
m_end &= 0xff00ff;
m_end |= (uint32_t)data << 8;
break;
case 2:
end &= 0xffff00;
end |= data;
m_end &= 0xffff00;
m_end |= data;
if (mp_state == 0)
if (m_mp_state == 0)
{
mp_end = end;
m_mp_end = m_end;
}
else
{
lp_end = end;
// MPEG_Set_Loop(ROM + lp_start, lp_end-lp_start);
m_lp_end = m_end;
// MPEG_Set_Loop(ROM + m_lp_start, m_lp_end-m_lp_start);
}
break;
}
@ -223,12 +250,13 @@ void dsbz80_device::mpeg_end_w(offs_t offset, uint8_t data)
void dsbz80_device::mpeg_volume_w(uint8_t data)
{
mp_vol = 0x7f - data;
// TODO: MSB used but unknown purpose
m_mp_vol = 0x7f - (data & 0x7f);
}
void dsbz80_device::mpeg_stereo_w(uint8_t data)
{
mp_pan = data & 3; // 0 = stereo, 1 = left on both channels, 2 = right on both channels
m_mp_pan = data & 3; // 0 = stereo, 1 = left on both channels, 2 = right on both channels
}
void dsbz80_device::sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs)
@ -238,40 +266,40 @@ void dsbz80_device::sound_stream_update(sound_stream &stream, std::vector<read_s
int samples = out_l.samples();
int sampindex = 0;
for(;;)
for (;;)
{
while(samples && audio_pos < audio_avail)
while (samples && m_audio_pos < m_audio_avail)
{
switch (mp_pan)
switch (m_mp_pan)
{
case 0: // stereo
out_l.put_int(sampindex, audio_buf[audio_pos*2], 32768);
out_r.put_int(sampindex, audio_buf[audio_pos*2+1], 32768);
out_l.put_int(sampindex, m_audio_buf[m_audio_pos*2] * m_mp_vol, 32768 * 128);
out_r.put_int(sampindex, m_audio_buf[m_audio_pos*2+1] * m_mp_vol, 32768 * 128);
sampindex++;
break;
case 1: // left only
out_l.put_int(sampindex, audio_buf[audio_pos*2], 32768);
out_r.put_int(sampindex, audio_buf[audio_pos*2], 32768);
out_l.put_int(sampindex, m_audio_buf[m_audio_pos*2] * m_mp_vol, 32768 * 128);
out_r.put_int(sampindex, m_audio_buf[m_audio_pos*2] * m_mp_vol, 32768 * 128);
sampindex++;
break;
case 2: // right only
out_l.put_int(sampindex, audio_buf[audio_pos*2+1], 32768);
out_r.put_int(sampindex, audio_buf[audio_pos*2+1], 32768);
out_l.put_int(sampindex, m_audio_buf[m_audio_pos*2+1] * m_mp_vol, 32768 * 128);
out_r.put_int(sampindex, m_audio_buf[m_audio_pos*2+1] * m_mp_vol, 32768 * 128);
sampindex++;
break;
}
audio_pos++;
m_audio_pos++;
samples--;
}
if(!samples)
if (!samples)
{
break;
}
if(mp_state == 0)
if (m_mp_state == 0)
{
out_l.fill(0, sampindex);
out_r.fill(0, sampindex);
@ -281,31 +309,31 @@ void dsbz80_device::sound_stream_update(sound_stream &stream, std::vector<read_s
else
{
int sample_rate, channel_count;
bool ok = decoder->decode_buffer(mp_pos, mp_end*8, audio_buf, audio_avail, sample_rate, channel_count);
bool const ok = m_decoder->decode_buffer(m_mp_pos, m_mp_end*8, m_audio_buf, m_audio_avail, sample_rate, channel_count);
if (ok)
{
audio_pos = 0;
m_audio_pos = 0;
}
else
{
if(mp_state == 2)
if (m_mp_state == 2)
{
if (mp_pos == lp_start*8)
if (m_mp_pos == m_lp_start*8)
{
// We're looping on un-decodable crap, abort abort abort
mp_state = 0;
m_mp_state = 0;
}
mp_pos = lp_start*8;
m_mp_pos = m_lp_start*8;
if (lp_end)
if (m_lp_end)
{
mp_end = lp_end;
m_mp_end = m_lp_end;
}
}
else
{
mp_state = 0;
m_mp_state = 0;
}
}
}

View File

@ -9,8 +9,6 @@
#include "machine/i8251.h"
#include "sound/mpeg_audio.h"
#define DSBZ80_TAG "dsbz80"
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -24,9 +22,6 @@ public:
// configuration
auto rxd_handler() { return m_rxd_handler.bind(); }
required_device<cpu_device> m_ourcpu;
required_device<i8251_device> m_uart;
void write_txd(int state);
void dsbz80_map(address_map &map);
@ -40,10 +35,14 @@ protected:
virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
private:
mpeg_audio *decoder;
int16_t audio_buf[1152*2];
uint32_t mp_start, mp_end, mp_vol, mp_pan, mp_state, lp_start, lp_end, start, end;
int mp_pos, audio_pos, audio_avail;
required_device<cpu_device> m_ourcpu;
required_device<i8251_device> m_uart;
required_region_ptr<uint8_t> m_mpeg_rom;
mpeg_audio *m_decoder;
int16_t m_audio_buf[1152*2];
uint32_t m_mp_start, m_mp_end, m_mp_vol, m_mp_pan, m_mp_state, m_lp_start, m_lp_end, m_start, m_end;
int32_t m_mp_pos, m_audio_pos, m_audio_avail;
devcb_write_line m_rxd_handler;

View File

@ -1370,10 +1370,10 @@ ROM_START( swa )
ROM_LOAD( "mpr-16484.4", 0x000000, 0x200000, CRC(9d4c334d) SHA1(8b4d903f14559fed425d225bb23ccfe8da23cbd3) )
ROM_LOAD( "mpr-16485.5", 0x200000, 0x200000, CRC(95aadcad) SHA1(4276db655db9834692c3843eb96a3e3a89cb7252) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 DSB code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 DSB code */
ROM_LOAD( "epr-16471.2", 0x000000, 0x020000, CRC(f4ee84a4) SHA1(f12b214e6f195b0e5f49ba9f41d8e54bfcea9acc) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB MPEG data */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB MPEG data */
ROM_LOAD( "mpr-16514.57", 0x000000, 0x200000, CRC(3175b0be) SHA1(63649d053c8c17ce1746d16d0cc8202be20c302f) )
ROM_LOAD( "mpr-16515.58", 0x200000, 0x200000, CRC(3114d748) SHA1(9ef090623cdd2a1d06b5d1bc4b9a07ab4eff5b76) )
@ -1418,10 +1418,10 @@ ROM_START( swaj )
ROM_LOAD( "mpr-16484.4", 0x000000, 0x200000, CRC(9d4c334d) SHA1(8b4d903f14559fed425d225bb23ccfe8da23cbd3) )
ROM_LOAD( "mpr-16485.5", 0x200000, 0x200000, CRC(95aadcad) SHA1(4276db655db9834692c3843eb96a3e3a89cb7252) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 DSB code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 DSB code */
ROM_LOAD( "epr-16471.2", 0x000000, 0x020000, CRC(f4ee84a4) SHA1(f12b214e6f195b0e5f49ba9f41d8e54bfcea9acc) )
ROM_REGION( 0x400000, "mpeg", 0 ) /* DSB MPEG data */
ROM_REGION( 0x400000, "dsbz80:mpeg", 0 ) /* DSB MPEG data */
ROM_LOAD( "mpr-16514.57", 0x000000, 0x200000, CRC(3175b0be) SHA1(63649d053c8c17ce1746d16d0cc8202be20c302f) )
ROM_LOAD( "mpr-16515.58", 0x200000, 0x200000, CRC(3114d748) SHA1(9ef090623cdd2a1d06b5d1bc4b9a07ab4eff5b76) )

View File

@ -35,7 +35,7 @@ public:
, m_m1audio(*this, M1AUDIO_TAG)
, m_m1uart(*this, "m1uart")
, m_m1comm(*this, "m1comm")
, m_dsbz80(*this, DSBZ80_TAG)
, m_dsbz80(*this, "dsbz80")
, m_tgp_copro(*this, "tgp_copro")
, m_screen(*this, "screen")
, m_copro_fifo_in(*this, "copro_fifo_in")

View File

@ -4548,7 +4548,7 @@ ROM_START( stcc ) /* Sega Touring Car Championship, Model 2C - Defaults to Japan
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x000000, 0x020000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) )
ROM_REGION( 0x20000, "mpegcpu", 0) // Z80 DSB program
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0) // Z80 DSB program
ROM_LOAD("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) )
ROM_REGION( 0x20000, "cpu4", 0) // Communication program
@ -4558,7 +4558,7 @@ ROM_START( stcc ) /* Sega Touring Car Championship, Model 2C - Defaults to Japan
ROM_LOAD16_WORD_SWAP("mpr-19259.32", 0x000000, 0x400000, CRC(4d55dbfc) SHA1(6e57e6e6e785b0f14bb5e221a44d518dbde7ad65) )
ROM_LOAD16_WORD_SWAP("mpr-19261.34", 0x400000, 0x400000, CRC(b88878ff) SHA1(4bebcfba68b0cc2fa0bcacfaaf2d2e8af3625c5d) )
ROM_REGION( 0x800000, "mpeg", 0 ) // MPEG audio data
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) // MPEG audio data
ROM_LOAD("mpr-19262.57s", 0x000000, 0x200000, CRC(922aed7a) SHA1(8d6872bdd46eaf2076c10d18c10af8ccbd3b10e8) )
ROM_LOAD("mpr-19263.58s", 0x200000, 0x200000, CRC(a256f4cd) SHA1(a17b49050f1ecf1970477b12201cc3b58b31d89c) )
ROM_LOAD("mpr-19264.59s", 0x400000, 0x200000, CRC(b6c51d0f) SHA1(9e0969a1e49ec1462f69cd0f0f9ce630d66174ce) )
@ -4613,7 +4613,7 @@ ROM_START( stccb ) /* Sega Touring Car Championship Revision B, Model 2C - Defau
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x000000, 0x020000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) )
ROM_REGION( 0x20000, "mpegcpu", 0) // Z80 DSB program
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0) // Z80 DSB program
ROM_LOAD("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) )
ROM_REGION( 0x20000, "cpu4", 0) // Communication program
@ -4623,7 +4623,7 @@ ROM_START( stccb ) /* Sega Touring Car Championship Revision B, Model 2C - Defau
ROM_LOAD16_WORD_SWAP("mpr-19259.32", 0x000000, 0x400000, CRC(4d55dbfc) SHA1(6e57e6e6e785b0f14bb5e221a44d518dbde7ad65) )
ROM_LOAD16_WORD_SWAP("mpr-19261.34", 0x400000, 0x400000, CRC(b88878ff) SHA1(4bebcfba68b0cc2fa0bcacfaaf2d2e8af3625c5d) )
ROM_REGION( 0x800000, "mpeg", 0 ) // MPEG audio data
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) // MPEG audio data
ROM_LOAD("mpr-19262.57s", 0x000000, 0x200000, CRC(922aed7a) SHA1(8d6872bdd46eaf2076c10d18c10af8ccbd3b10e8) )
ROM_LOAD("mpr-19263.58s", 0x200000, 0x200000, CRC(a256f4cd) SHA1(a17b49050f1ecf1970477b12201cc3b58b31d89c) )
ROM_LOAD("mpr-19264.59s", 0x400000, 0x200000, CRC(b6c51d0f) SHA1(9e0969a1e49ec1462f69cd0f0f9ce630d66174ce) )
@ -4678,7 +4678,7 @@ ROM_START( stcca ) /* Sega Touring Car Championship Revision A, Model 2C - Defau
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x000000, 0x020000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) )
ROM_REGION( 0x20000, "mpegcpu", 0) // Z80 DSB program
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0) // Z80 DSB program
ROM_LOAD("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) )
ROM_REGION( 0x20000, "cpu4", 0) // Communication program
@ -4688,7 +4688,7 @@ ROM_START( stcca ) /* Sega Touring Car Championship Revision A, Model 2C - Defau
ROM_LOAD16_WORD_SWAP("mpr-19259.32", 0x000000, 0x400000, CRC(4d55dbfc) SHA1(6e57e6e6e785b0f14bb5e221a44d518dbde7ad65) )
ROM_LOAD16_WORD_SWAP("mpr-19261.34", 0x400000, 0x400000, CRC(b88878ff) SHA1(4bebcfba68b0cc2fa0bcacfaaf2d2e8af3625c5d) )
ROM_REGION( 0x800000, "mpeg", 0 ) // MPEG audio data
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) // MPEG audio data
ROM_LOAD("mpr-19262.57s", 0x000000, 0x200000, CRC(922aed7a) SHA1(8d6872bdd46eaf2076c10d18c10af8ccbd3b10e8) )
ROM_LOAD("mpr-19263.58s", 0x200000, 0x200000, CRC(a256f4cd) SHA1(a17b49050f1ecf1970477b12201cc3b58b31d89c) )
ROM_LOAD("mpr-19264.59s", 0x400000, 0x200000, CRC(b6c51d0f) SHA1(9e0969a1e49ec1462f69cd0f0f9ce630d66174ce) )
@ -4743,7 +4743,7 @@ ROM_START( stcco ) /* Sega Touring Car Championship, Model 2C - Defaults to Japa
ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program
ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x000000, 0x020000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) )
ROM_REGION( 0x20000, "mpegcpu", 0) // Z80 DSB program
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0) // Z80 DSB program
ROM_LOAD("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) )
ROM_REGION( 0x20000, "cpu4", 0) // Communication program
@ -4753,7 +4753,7 @@ ROM_START( stcco ) /* Sega Touring Car Championship, Model 2C - Defaults to Japa
ROM_LOAD16_WORD_SWAP("mpr-19259.32", 0x000000, 0x400000, CRC(4d55dbfc) SHA1(6e57e6e6e785b0f14bb5e221a44d518dbde7ad65) )
ROM_LOAD16_WORD_SWAP("mpr-19261.34", 0x400000, 0x400000, CRC(b88878ff) SHA1(4bebcfba68b0cc2fa0bcacfaaf2d2e8af3625c5d) )
ROM_REGION( 0x800000, "mpeg", 0 ) // MPEG audio data
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) // MPEG audio data
ROM_LOAD("mpr-19262.57s", 0x000000, 0x200000, CRC(922aed7a) SHA1(8d6872bdd46eaf2076c10d18c10af8ccbd3b10e8) )
ROM_LOAD("mpr-19263.58s", 0x200000, 0x200000, CRC(a256f4cd) SHA1(a17b49050f1ecf1970477b12201cc3b58b31d89c) )
ROM_LOAD("mpr-19264.59s", 0x400000, 0x200000, CRC(b6c51d0f) SHA1(9e0969a1e49ec1462f69cd0f0f9ce630d66174ce) )

View File

@ -51,7 +51,7 @@ public:
m_bufferram(*this, "bufferram"),
m_soundram(*this, "soundram"),
m_maincpu(*this,"maincpu"),
m_dsbz80(*this, DSBZ80_TAG),
m_dsbz80(*this, "dsbz80"),
m_m1audio(*this, M1AUDIO_TAG),
m_uart(*this, "uart"),
m_m2comm(*this, "m2comm"),

View File

@ -2162,10 +2162,10 @@ ROM_START( scud ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 834-13
ROM_LOAD16_WORD_SWAP( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD16_WORD_SWAP( "mpr-19671.24", 0x400000, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2231,10 +2231,10 @@ ROM_START( scuddx ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 1293
ROM_LOAD16_WORD_SWAP( "mpr-19601.22", 0x000000, 0x400000, CRC(ba350fcc) SHA1(b85a9d45e06e048c3e777cbb190d20b5ef72d1b3) )
ROM_LOAD16_WORD_SWAP( "mpr-19602.24", 0x400000, 0x400000, CRC(a92231c1) SHA1(9ecf97dce0a2184dc31906c6090c27494188384c) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2300,10 +2300,10 @@ ROM_START( scuddxo ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 833
ROM_LOAD16_WORD_SWAP( "mpr-19601.22", 0x000000, 0x400000, CRC(ba350fcc) SHA1(b85a9d45e06e048c3e777cbb190d20b5ef72d1b3) )
ROM_LOAD16_WORD_SWAP( "mpr-19602.24", 0x400000, 0x400000, CRC(a92231c1) SHA1(9ecf97dce0a2184dc31906c6090c27494188384c) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2371,10 +2371,10 @@ ROM_START( scudau ) /* step 1.5, Sega game ID# is 833-13041, ROM board ID# 834
ROM_LOAD16_WORD_SWAP( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD16_WORD_SWAP( "mpr-19671.24", 0x400000, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2446,10 +2446,10 @@ ROM_START( scudplus ) /* step 1.5, Sega game ID# is 833-13260 SCUD PLUS, ROM b
ROM_LOAD16_WORD_SWAP( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD16_WORD_SWAP( "mpr-20101.24", 0x400000, 0x400000, CRC(66d1e31f) SHA1(cbc06e9aebcdf82f14bef1c35cbb3203530ef6ae) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )
@ -2521,10 +2521,10 @@ ROM_START( scudplusa ) /* step 1.5, Sega game ID# is 833-13260 SCUD PLUS, ROM b
ROM_LOAD16_WORD_SWAP( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) )
ROM_LOAD16_WORD_SWAP( "mpr-20101.24", 0x400000, 0x400000, CRC(66d1e31f) SHA1(cbc06e9aebcdf82f14bef1c35cbb3203530ef6ae) )
ROM_REGION( 0x20000, "mpegcpu", 0 ) /* Z80 code */
ROM_REGION( 0x20000, "dsbz80:mpegcpu", 0 ) /* Z80 code */
ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) )
ROM_REGION( 0x800000, "mpeg", 0 ) /* DSB samples */
ROM_REGION( 0x800000, "dsbz80:mpeg", 0 ) /* DSB samples */
ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) )
ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) )
ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) )

View File

@ -123,7 +123,7 @@ public:
m_work_ram(*this, "work_ram"),
m_bank_crom(*this, "bank_crom"),
m_paletteram64(*this, "paletteram64"),
m_dsbz80(*this, DSBZ80_TAG),
m_dsbz80(*this, "dsbz80"),
m_uart(*this, "uart"),
m_soundram(*this, "soundram"),
m_gfxdecode(*this, "gfxdecode"),