mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
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:
parent
592e405016
commit
efe7286ed0
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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) )
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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) )
|
||||
|
@ -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"),
|
||||
|
@ -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) )
|
||||
|
@ -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"),
|
||||
|
Loading…
Reference in New Issue
Block a user