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