add driver for snk6502/rockola games
This commit is contained in:
parent
54f46923d5
commit
e554cdd579
|
@ -54,7 +54,7 @@ drvsrc = d_dodonpachi.o d_donpachi.o d_esprade.o d_feversos.o d_gaia.o d_guwang
|
||||||
d_mappy.o d_marineb.o d_mario.o d_markham.o d_megasys1.o d_meijinsn.o d_metlfrzr.o d_millipede.o d_mirax.o d_mitchell.o d_mole.o d_momoko.o d_mouser.o \
|
d_mappy.o d_marineb.o d_mario.o d_markham.o d_megasys1.o d_meijinsn.o d_metlfrzr.o d_millipede.o d_mirax.o d_mitchell.o d_mole.o d_momoko.o d_mouser.o \
|
||||||
d_mrdo.o d_mrflea.o d_mrjong.o d_munchmo.o d_mustache.o d_mystston.o d_namcos1.o d_namcos86.o d_ninjakd2.o d_naughtyb.o d_pacland.o d_pacman.o d_pac2650.o \
|
d_mrdo.o d_mrflea.o d_mrjong.o d_munchmo.o d_mustache.o d_mystston.o d_namcos1.o d_namcos86.o d_ninjakd2.o d_naughtyb.o d_pacland.o d_pacman.o d_pac2650.o \
|
||||||
d_pengadvb.o d_phoenix.o d_pitnrun.o d_pkunwar.o d_popeye.o d_popper.o d_prehisle.o d_psychic5.o d_pturn.o d_punchout.o d_qbert.o d_quizo.o d_rallyx.o d_renegade.o \
|
d_pengadvb.o d_phoenix.o d_pitnrun.o d_pkunwar.o d_popeye.o d_popper.o d_prehisle.o d_psychic5.o d_pturn.o d_punchout.o d_qbert.o d_quizo.o d_rallyx.o d_renegade.o \
|
||||||
d_route16.o d_rpunch.o d_safarir.o d_sauro.o d_scregg.o d_seicross.o d_sf.o d_sidearms.o d_skyarmy.o d_skyfox.o d_skykid.o d_snk.o \
|
d_route16.o d_rpunch.o d_safarir.o d_sauro.o d_scregg.o d_seicross.o d_sf.o d_sidearms.o d_skyarmy.o d_skyfox.o d_skykid.o d_snk.o d_snk6502.o \
|
||||||
d_snk68.o d_solomon.o d_sonson.o d_srumbler.o d_ssozumo.o d_sub.o d_suna8.o d_tail2nose.o d_tbowl.o d_tecmo.o d_terracre.o d_thedeep.o d_thepit.o \
|
d_snk68.o d_solomon.o d_sonson.o d_srumbler.o d_ssozumo.o d_sub.o d_suna8.o d_tail2nose.o d_tbowl.o d_tecmo.o d_terracre.o d_thedeep.o d_thepit.o \
|
||||||
d_tigeroad.o d_timelimt.o d_toki.o d_toypop.o d_travrusa.o d_tsamurai.o d_twincobr.o d_usgames.o d_vastar.o d_vulgus.o d_wallc.o d_warpwarp.o d_wc90.o \
|
d_tigeroad.o d_timelimt.o d_toki.o d_toypop.o d_travrusa.o d_tsamurai.o d_twincobr.o d_usgames.o d_vastar.o d_vulgus.o d_wallc.o d_warpwarp.o d_wc90.o \
|
||||||
d_wc90b.o d_wiping.o d_wiz.o d_wrally.o d_wwfsstar.o d_xain.o d_xxmissio.o d_zodiack.o \
|
d_wc90b.o d_wiping.o d_wiz.o d_wrally.o d_wwfsstar.o d_xain.o d_xxmissio.o d_zodiack.o \
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -28,10 +28,10 @@
|
||||||
|
|
||||||
struct TONE
|
struct TONE
|
||||||
{
|
{
|
||||||
int mute;
|
INT32 mute;
|
||||||
int offset;
|
INT32 offset;
|
||||||
int base;
|
INT32 base;
|
||||||
int mask;
|
INT32 mask;
|
||||||
INT32 sample_rate;
|
INT32 sample_rate;
|
||||||
INT32 sample_step;
|
INT32 sample_step;
|
||||||
INT32 sample_cur;
|
INT32 sample_cur;
|
||||||
|
@ -46,12 +46,12 @@ static INT32 last_music_freq;
|
||||||
static double last_clock_time;
|
static double last_clock_time;
|
||||||
|
|
||||||
static UINT8 *m_ROM;
|
static UINT8 *m_ROM;
|
||||||
static int m_Sound0StopOnRollover;
|
static INT32 m_Sound0StopOnRollover;
|
||||||
static UINT8 m_LastPort1;
|
static UINT8 m_LastPort1;
|
||||||
|
|
||||||
static int m_hd38880_cmd;
|
static INT32 m_hd38880_cmd;
|
||||||
static UINT32 m_hd38880_addr;
|
static UINT32 m_hd38880_addr;
|
||||||
static int m_hd38880_data_bytes;
|
static INT32 m_hd38880_data_bytes;
|
||||||
static double m_hd38880_speed;
|
static double m_hd38880_speed;
|
||||||
static INT32 speechnum_playing;
|
static INT32 speechnum_playing;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ void snk6502_sound_init(UINT8 *soundrom)
|
||||||
snk6502_set_music_clock(M_LN2 * (RES_K(18) * 2 + RES_K(1)) * CAP_U(1));
|
snk6502_set_music_clock(M_LN2 * (RES_K(18) * 2 + RES_K(1)) * CAP_U(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void validate_tone_channel(int channel)
|
static void validate_tone_channel(INT32 channel)
|
||||||
{
|
{
|
||||||
if (!m_tone_channels[channel].mute)
|
if (!m_tone_channels[channel].mute)
|
||||||
{
|
{
|
||||||
|
@ -95,11 +95,11 @@ static void validate_tone_channel(int channel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sasuke_build_waveform(int mask)
|
static void sasuke_build_waveform(INT32 mask)
|
||||||
{
|
{
|
||||||
int bit0, bit1, bit2, bit3;
|
INT32 bit0, bit1, bit2, bit3;
|
||||||
int base;
|
INT32 base;
|
||||||
int i;
|
INT32 i;
|
||||||
|
|
||||||
mask &= 7;
|
mask &= 7;
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ static void sasuke_build_waveform(int mask)
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
int data = 0;
|
INT32 data = 0;
|
||||||
|
|
||||||
if (i & 1)
|
if (i & 1)
|
||||||
data += bit0;
|
data += bit0;
|
||||||
|
@ -137,11 +137,11 @@ static void sasuke_build_waveform(int mask)
|
||||||
m_tone_channels[0].form[i] *= 65535 / 16;
|
m_tone_channels[0].form[i] *= 65535 / 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void satansat_build_waveform(int mask)
|
static void satansat_build_waveform(INT32 mask)
|
||||||
{
|
{
|
||||||
int bit0, bit1, bit2, bit3;
|
INT32 bit0, bit1, bit2, bit3;
|
||||||
int base;
|
INT32 base;
|
||||||
int i;
|
INT32 i;
|
||||||
|
|
||||||
mask &= 7;
|
mask &= 7;
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ static void satansat_build_waveform(int mask)
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
int data = 0;
|
INT32 data = 0;
|
||||||
|
|
||||||
if (i & 1)
|
if (i & 1)
|
||||||
data += bit0;
|
data += bit0;
|
||||||
|
@ -175,11 +175,11 @@ static void satansat_build_waveform(int mask)
|
||||||
m_tone_channels[1].form[i] *= 65535 / 16;
|
m_tone_channels[1].form[i] *= 65535 / 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void build_waveform(int channel, int mask)
|
static void build_waveform(INT32 channel, INT32 mask)
|
||||||
{
|
{
|
||||||
int bit0, bit1, bit2, bit3;
|
INT32 bit0, bit1, bit2, bit3;
|
||||||
int base;
|
INT32 base;
|
||||||
int i;
|
INT32 i;
|
||||||
|
|
||||||
mask &= 15;
|
mask &= 15;
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ static void build_waveform(int channel, int mask)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int data = 0;
|
INT32 data = 0;
|
||||||
|
|
||||||
if (i & 1)
|
if (i & 1)
|
||||||
data += bit0;
|
data += bit0;
|
||||||
|
@ -250,12 +250,12 @@ static void build_waveform(int channel, int mask)
|
||||||
m_tone_channels[channel].form[i] *= 65535 / 160;
|
m_tone_channels[channel].form[i] *= 65535 / 160;
|
||||||
}
|
}
|
||||||
|
|
||||||
void snk6502_set_music_freq(int freq)
|
void snk6502_set_music_freq(INT32 freq)
|
||||||
{
|
{
|
||||||
if (freq == -1) freq = last_music_freq;
|
if (freq == -1) freq = last_music_freq;
|
||||||
last_music_freq = freq;
|
last_music_freq = freq;
|
||||||
|
|
||||||
int i;
|
INT32 i;
|
||||||
|
|
||||||
for (i = 0; i < CHANNELS; i++)
|
for (i = 0; i < CHANNELS; i++)
|
||||||
{
|
{
|
||||||
|
@ -280,7 +280,7 @@ void snk6502_set_music_clock(double clock_time)
|
||||||
m_tone_clock = 0;
|
m_tone_clock = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int snk6502_music0_playing()
|
INT32 snk6502_music0_playing()
|
||||||
{
|
{
|
||||||
return m_tone_channels[0].mute;
|
return m_tone_channels[0].mute;
|
||||||
}
|
}
|
||||||
|
@ -550,8 +550,6 @@ void fantasy_sound_w(UINT16 offset, UINT8 data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* BOMB */
|
/* BOMB */
|
||||||
//machine().device<discrete_device>("discrete")->write(space, FANTASY_BOMB_EN, data & 0x80);
|
|
||||||
if (data & 0x80) bprintf(0, _T("bomb! %x\n"), data);
|
|
||||||
SN76477_enable_w(0, (data & 0x80) ? 0 : 1);
|
SN76477_enable_w(0, (data & 0x80) ? 0 : 1);
|
||||||
|
|
||||||
m_LastPort1 = data;
|
m_LastPort1 = data;
|
||||||
|
@ -647,7 +645,7 @@ void fantasy_sound_w(UINT16 offset, UINT8 data)
|
||||||
#define HD38880_CMV 0x20
|
#define HD38880_CMV 0x20
|
||||||
#define HD68880_SYBS 0x0f
|
#define HD68880_SYBS 0x0f
|
||||||
|
|
||||||
static int samples_playing()
|
static INT32 samples_playing()
|
||||||
{
|
{
|
||||||
for (INT32 i = 0; i < 16; i++) {
|
for (INT32 i = 0; i < 16; i++) {
|
||||||
if (BurnSampleGetStatus(i) == 1)
|
if (BurnSampleGetStatus(i) == 1)
|
||||||
|
@ -665,7 +663,7 @@ static void samples_stopall()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void speech_w(UINT8 data, const UINT16 *table, int start)
|
static void speech_w(UINT8 data, const UINT16 *table, INT32 start)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
bit description
|
bit description
|
||||||
|
@ -693,7 +691,7 @@ static void speech_w(UINT8 data, const UINT16 *table, int start)
|
||||||
|
|
||||||
if (m_hd38880_data_bytes == 5 && !samples_playing())
|
if (m_hd38880_data_bytes == 5 && !samples_playing())
|
||||||
{
|
{
|
||||||
int i;
|
INT32 i;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
|
@ -882,9 +880,9 @@ void snk_sound_update(INT16 *buffer, INT32 samples)
|
||||||
|
|
||||||
if (!voice->mute && voice->sample_step)
|
if (!voice->mute && voice->sample_step)
|
||||||
{
|
{
|
||||||
int cur_pos = voice->sample_cur + voice->sample_step;
|
INT32 cur_pos = voice->sample_cur + voice->sample_step;
|
||||||
int prev = form[(voice->sample_cur >> FRAC_BITS) & 15];
|
INT32 prev = form[(voice->sample_cur >> FRAC_BITS) & 15];
|
||||||
int cur = form[(cur_pos >> FRAC_BITS) & 15];
|
INT32 cur = form[(cur_pos >> FRAC_BITS) & 15];
|
||||||
|
|
||||||
/* interpolate */
|
/* interpolate */
|
||||||
data += ((INT32)prev * (FRAC_ONE - (cur_pos & FRAC_MASK))
|
data += ((INT32)prev * (FRAC_ONE - (cur_pos & FRAC_MASK))
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
void snk6502_sound_reset();
|
void snk6502_sound_reset();
|
||||||
void snk6502_sound_init(UINT8 *soundrom);
|
void snk6502_sound_init(UINT8 *soundrom);
|
||||||
void snk6502_set_music_freq(int freq);
|
void snk6502_set_music_freq(INT32 freq);
|
||||||
void snk6502_set_music_clock(double clock_time);
|
void snk6502_set_music_clock(double clock_time);
|
||||||
int snk6502_music0_playing();
|
INT32 snk6502_music0_playing();
|
||||||
void sasuke_sound_w(UINT16 offset, UINT8 data);
|
void sasuke_sound_w(UINT16 offset, UINT8 data);
|
||||||
void satansat_sound_w(UINT16 offset, UINT8 data);
|
void satansat_sound_w(UINT16 offset, UINT8 data);
|
||||||
void vanguard_sound_w(UINT16 offset, UINT8 data);
|
void vanguard_sound_w(UINT16 offset, UINT8 data);
|
||||||
|
|
Loading…
Reference in New Issue