summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/sound/ta7630.cpp2
-rw-r--r--src/mame/drivers/flstory.cpp79
-rw-r--r--src/mame/drivers/msisaac.cpp2
-rw-r--r--src/mame/includes/flstory.h7
4 files changed, 38 insertions, 52 deletions
diff --git a/src/devices/sound/ta7630.cpp b/src/devices/sound/ta7630.cpp
index 29a7c9bf457..3427036236c 100644
--- a/src/devices/sound/ta7630.cpp
+++ b/src/devices/sound/ta7630.cpp
@@ -91,7 +91,7 @@ void ta7630_device::set_device_volume(device_sound_interface *device,uint8_t val
device->set_output_gain(ALL_OUTPUTS,m_vol_ctrl[value & 0xf]);
}
-// Most Taito implementations seems to use this, is it correct?
+// TODO: Most Taito implementations uses this, is it correct?
void ta7630_device::set_channel_volume(device_sound_interface *device, uint8_t ch,uint8_t value)
{
device->set_output_gain(ch,m_vol_ctrl[value & 0xf]);
diff --git a/src/mame/drivers/flstory.cpp b/src/mame/drivers/flstory.cpp
index 0d9de3102f5..88ecd3ee318 100644
--- a/src/mame/drivers/flstory.cpp
+++ b/src/mame/drivers/flstory.cpp
@@ -16,7 +16,6 @@
#include "cpu/m6805/m6805.h"
#include "cpu/z80/z80.h"
-#include "sound/ay8910.h"
#include "sound/dac.h"
#include "sound/volt_reg.h"
#include "screen.h"
@@ -119,29 +118,6 @@ static ADDRESS_MAP_START( rumba_map, AS_PROGRAM, 8, flstory_state )
ADDRESS_MAP_END
-MACHINE_RESET_MEMBER(flstory_state,ta7630)
-{
- int i;
-
- double db = 0.0;
- double db_step = 1.50; /* 1.50 dB step (at least, maybe more) */
- double db_step_inc = 0.125;
- for (i = 0; i < 16; i++)
- {
- double max = 100.0 / pow(10.0, db/20.0 );
- m_vol_ctrl[15 - i] = max;
- /*logerror("vol_ctrl[%x] = %i (%f dB)\n", 15 - i, m_vol_ctrl[15 - i], db);*/
- db += db_step;
- db_step += db_step_inc;
- }
-
- /* for (i = 0; i < 8; i++)
- logerror("SOUND Chan#%i name=%s\n", i, mixer_get_name(i)); */
-/*
- channels 0-2 AY#0
- channels 3,4 MSM5232 group1,group2
-*/
-}
WRITE8_MEMBER(flstory_state::sound_control_0_w)
{
@@ -149,37 +125,37 @@ WRITE8_MEMBER(flstory_state::sound_control_0_w)
// popmessage("SND0 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
/* this definitely controls main melody voice on 2'-1 and 4'-1 outputs */
- m_msm->set_output_gain(0, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- m_msm->set_output_gain(1, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- m_msm->set_output_gain(2, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
- m_msm->set_output_gain(3, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ for(int i=0;i<4;i++)
+ m_ta7630->set_channel_volume(m_msm,i,m_snd_ctrl0 >> 4);
+ //m_msm->set_output_gain(0, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ //m_msm->set_output_gain(1, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ //m_msm->set_output_gain(2, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
+ //m_msm->set_output_gain(3, m_vol_ctrl[(m_snd_ctrl0 >> 4) & 15] / 100.0); /* group1 from msm5232 */
}
WRITE8_MEMBER(flstory_state::sound_control_1_w)
{
m_snd_ctrl1 = data & 0xff;
// popmessage("SND1 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
- m_msm->set_output_gain(4, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- m_msm->set_output_gain(5, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- m_msm->set_output_gain(6, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
- m_msm->set_output_gain(7, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+ for(int i=0;i<4;i++)
+ m_ta7630->set_channel_volume(m_msm,i+4,m_snd_ctrl0 >> 4);
+
+// m_msm->set_output_gain(4, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+// m_msm->set_output_gain(5, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+// m_msm->set_output_gain(6, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
+// m_msm->set_output_gain(7, m_vol_ctrl[(m_snd_ctrl1 >> 4) & 15] / 100.0); /* group2 from msm5232 */
}
WRITE8_MEMBER(flstory_state::sound_control_2_w)
{
- device_t *device = machine().device("aysnd");
- int i;
-
m_snd_ctrl2 = data & 0xff;
// popmessage("SND2 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
- device_sound_interface *sound;
- device->interface(sound);
- for (i = 0; i < 3; i++)
- sound->set_output_gain(i, m_vol_ctrl[(m_snd_ctrl2 >> 4) & 15] / 100.0); /* ym2149f all */
+ m_ta7630->set_device_volume(m_ay,m_snd_ctrl2 >> 4);
}
-WRITE8_MEMBER(flstory_state::sound_control_3_w)/* unknown */
+// ta7630 bass / treble for AY?
+WRITE8_MEMBER(flstory_state::sound_control_3_w)
{
m_snd_ctrl3 = data & 0xff;
// popmessage("SND3 0=%02x 1=%02x 2=%02x 3=%02x", m_snd_ctrl0, m_snd_ctrl1, m_snd_ctrl2, m_snd_ctrl3);
@@ -719,7 +695,6 @@ void flstory_state::machine_start()
save_item(NAME(m_char_bank));
save_item(NAME(m_palette_bank));
/* sound */
- save_item(NAME(m_vol_ctrl));
save_item(NAME(m_snd_ctrl0));
save_item(NAME(m_snd_ctrl1));
save_item(NAME(m_snd_ctrl2));
@@ -733,7 +708,7 @@ void flstory_state::machine_start()
MACHINE_RESET_MEMBER(flstory_state,flstory)
{
- MACHINE_RESET_CALL_MEMBER(ta7630);
+// MACHINE_RESET_CALL_MEMBER(ta7630);
/* video */
m_gfxctrl = 0;
@@ -796,6 +771,7 @@ static MACHINE_CONFIG_START( flstory )
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ MCFG_TA7630_ADD("ta7630")
MCFG_SOUND_ADD("aysnd", YM2149, XTAL_8MHz/4) /* verified on pcb */
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
@@ -824,11 +800,11 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( onna34ro )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, 10733000/2) /* ??? */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_10_733MHz/2) /* ??? */
MCFG_CPU_PROGRAM_MAP(onna34ro_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", flstory_state, irq0_line_hold)
- MCFG_CPU_ADD("audiocpu", Z80, 8000000/2) /* 4 MHz */
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz/2) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(flstory_state, irq0_line_hold, 2*60) /* IRQ generated by ??? */
/* NMI generated by the main CPU */
@@ -864,13 +840,14 @@ static MACHINE_CONFIG_START( onna34ro )
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ MCFG_TA7630_ADD("ta7630")
- MCFG_SOUND_ADD("aysnd", YM2149, 8000000/4)
+ MCFG_SOUND_ADD("aysnd", YM2149, XTAL_8MHz/4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(flstory_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.1)
- MCFG_SOUND_ADD("msm", MSM5232, 8000000/4)
+ MCFG_SOUND_ADD("msm", MSM5232, XTAL_8MHz/4)
MCFG_MSM5232_SET_CAPACITORS(1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6) /* 1.0 uF capacitors (verified on real PCB) */
MCFG_SOUND_ROUTE(0, "speaker", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "speaker", 1.0) // pin 29 4'-1
@@ -899,11 +876,11 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( victnine )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, 8000000/2) /* 4 MHz */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(victnine_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", flstory_state, irq0_line_hold)
- MCFG_CPU_ADD("audiocpu", Z80, 8000000/2) /* 4 MHz */
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz/2) /* 4 MHz */
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_PERIODIC_INT_DRIVER(flstory_state, irq0_line_hold, 2*60) /* IRQ generated by ??? */
/* NMI generated by the main CPU */
@@ -942,13 +919,14 @@ static MACHINE_CONFIG_START( victnine )
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ MCFG_TA7630_ADD("ta7630")
- MCFG_SOUND_ADD("aysnd", YM2149, 8000000/4)
+ MCFG_SOUND_ADD("aysnd", YM2149, XTAL_8MHz/4)
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(flstory_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
- MCFG_SOUND_ADD("msm", MSM5232, 8000000/4)
+ MCFG_SOUND_ADD("msm", MSM5232, XTAL_8MHz/4)
MCFG_MSM5232_SET_CAPACITORS(1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6) /* 1.0 uF capacitors (verified on real PCB) */
MCFG_SOUND_ROUTE(0, "speaker", 1.0) // pin 28 2'-1
MCFG_SOUND_ROUTE(1, "speaker", 1.0) // pin 29 4'-1
@@ -1014,6 +992,7 @@ static MACHINE_CONFIG_START( rumba )
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ MCFG_TA7630_ADD("ta7630")
MCFG_SOUND_ADD("aysnd", YM2149, XTAL_8MHz/4) /* verified on pcb */
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
diff --git a/src/mame/drivers/msisaac.cpp b/src/mame/drivers/msisaac.cpp
index 8b77f9136ca..e399b134db0 100644
--- a/src/mame/drivers/msisaac.cpp
+++ b/src/mame/drivers/msisaac.cpp
@@ -483,9 +483,11 @@ static MACHINE_CONFIG_START( msisaac )
MCFG_TA7630_ADD("ta7630")
MCFG_SOUND_ADD("ay1", AY8910, 2000000)
+ // port A/B likely to be TA7630 filters
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, 2000000)
+ // port A/B likely to be TA7630 filters
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5232, 2000000)
diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h
index 13073d6b57b..36545251621 100644
--- a/src/mame/includes/flstory.h
+++ b/src/mame/includes/flstory.h
@@ -5,6 +5,8 @@
#include "machine/input_merger.h"
#include "sound/msm5232.h"
#include "machine/taito68705interface.h"
+#include "sound/ta7630.h"
+#include "sound/ay8910.h"
class flstory_state : public driver_device
{
@@ -19,6 +21,8 @@ public:
m_audiocpu(*this, "audiocpu"),
m_bmcu(*this, "bmcu"),
m_msm(*this, "msm"),
+ m_ay(*this, "aysnd"),
+ m_ta7630(*this, "ta7630"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
m_soundlatch(*this, "soundlatch"),
@@ -40,7 +44,6 @@ public:
uint8_t m_palette_bank;
/* sound-related */
- int m_vol_ctrl[16];
uint8_t m_snd_ctrl0;
uint8_t m_snd_ctrl1;
uint8_t m_snd_ctrl2;
@@ -55,6 +58,8 @@ public:
required_device<cpu_device> m_audiocpu;
optional_device<taito68705_mcu_device> m_bmcu;
required_device<msm5232_device> m_msm;
+ required_device<ay8910_device> m_ay;
+ required_device<ta7630_device> m_ta7630;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
required_device<generic_latch_8_device> m_soundlatch;