@@ -276,6 +276,7 @@ register. So what is controlling priority.
276
276
#include " taitosnd.h"
277
277
#include " taitoipt.h"
278
278
#include " taitocchip.h"
279
+ #include " tc0060dca.h"
279
280
#include " pc080sn.h"
280
281
#include " pc090oj.h"
281
282
@@ -314,6 +315,7 @@ class opwolf_state : public driver_device
314
315
m_pc080sn (*this , " pc080sn" ),
315
316
m_pc090oj (*this , " pc090oj" ),
316
317
m_msm (*this , " msm%u" , 0 ),
318
+ m_tc0060dca (*this , " tc0060dca%u" , 0 ),
317
319
m_lspeaker (*this , " lspeaker" ),
318
320
m_rspeaker (*this , " rspeaker" ),
319
321
m_z80bank (*this , " z80bank" ),
@@ -384,6 +386,7 @@ class opwolf_state : public driver_device
384
386
required_device<pc080sn_device> m_pc080sn;
385
387
required_device<pc090oj_device> m_pc090oj;
386
388
required_device_array<msm5205_device, 2 > m_msm;
389
+ required_device_array<tc0060dca_device, 2 > m_tc0060dca;
387
390
required_device<speaker_device> m_lspeaker;
388
391
required_device<speaker_device> m_rspeaker;
389
392
required_memory_bank m_z80bank;
@@ -755,7 +758,7 @@ void opwolf_state::opwolf_adpcm_b_w(offs_t offset, uint8_t data)
755
758
m_adpcm_pos[0 ] = start;
756
759
m_adpcm_end[0 ] = end;
757
760
m_msm[0 ]->reset_w (0 );
758
- m_msm [0 ]->set_output_gain ( 0 , m_adpcm_b[5 ] / 255.0 );
761
+ m_tc0060dca [0 ]->set_level ( m_adpcm_b[5 ]);
759
762
// logerror("TRIGGER MSM1\n");
760
763
}
761
764
@@ -778,7 +781,7 @@ void opwolf_state::opwolf_adpcm_c_w(offs_t offset, uint8_t data)
778
781
m_adpcm_pos[1 ] = start;
779
782
m_adpcm_end[1 ] = end;
780
783
m_msm[1 ]->reset_w (0 );
781
- m_msm [1 ]->set_output_gain ( 0 , m_adpcm_c[5 ] / 255.0 );
784
+ m_tc0060dca [1 ]->set_level ( m_adpcm_c[5 ]);
782
785
// logerror("TRIGGER MSM2\n");
783
786
}
784
787
@@ -931,17 +934,25 @@ void opwolf_state::opwolf(machine_config &config)
931
934
ymsnd.add_route (0 , " lspeaker" , 1.0 );
932
935
ymsnd.add_route (1 , " rspeaker" , 1.0 );
933
936
937
+ TC0060DCA (config, m_tc0060dca[0 ], 384000 );
938
+ m_tc0060dca[0 ]->add_route (ALL_OUTPUTS, " lspeaker" , 1.0 );
939
+ m_tc0060dca[0 ]->add_route (ALL_OUTPUTS, " rspeaker" , 1.0 );
940
+
934
941
MSM5205 (config, m_msm[0 ], 384000 );
935
942
m_msm[0 ]->vck_legacy_callback ().set (FUNC (opwolf_state::msm5205_vck_w<0 >));
936
943
m_msm[0 ]->set_prescaler_selector (msm5205_device::S48_4B); /* 8 kHz */
937
- m_msm[0 ]->add_route (ALL_OUTPUTS, " lspeaker" , 1.0 );
938
- m_msm[0 ]->add_route (ALL_OUTPUTS, " rspeaker" , 1.0 );
944
+ m_msm[0 ]->add_route (ALL_OUTPUTS, m_tc0060dca[0 ], 1.0 );
945
+ m_msm[0 ]->add_route (ALL_OUTPUTS, m_tc0060dca[0 ], 1.0 );
946
+
947
+ TC0060DCA (config, m_tc0060dca[1 ], 384000 );
948
+ m_tc0060dca[1 ]->add_route (ALL_OUTPUTS, " lspeaker" , 1.0 );
949
+ m_tc0060dca[1 ]->add_route (ALL_OUTPUTS, " rspeaker" , 1.0 );
939
950
940
951
MSM5205 (config, m_msm[1 ], 384000 );
941
952
m_msm[1 ]->vck_legacy_callback ().set (FUNC (opwolf_state::msm5205_vck_w<1 >));
942
953
m_msm[1 ]->set_prescaler_selector (msm5205_device::S48_4B); /* 8 kHz */
943
- m_msm[1 ]->add_route (ALL_OUTPUTS, " lspeaker " , 1.0 );
944
- m_msm[1 ]->add_route (ALL_OUTPUTS, " rspeaker " , 1.0 );
954
+ m_msm[1 ]->add_route (ALL_OUTPUTS, m_tc0060dca[ 1 ] , 1.0 );
955
+ m_msm[1 ]->add_route (ALL_OUTPUTS, m_tc0060dca[ 1 ] , 1.0 );
945
956
946
957
pc060ha_device &ciu (PC060HA (config, " ciu" , 0 ));
947
958
ciu.nmi_callback ().set_inputline (m_audiocpu, INPUT_LINE_NMI);
@@ -1002,17 +1013,25 @@ void opwolf_state::opwolfb(machine_config &config) /* OSC clocks unknown for the
1002
1013
ymsnd.add_route (0 , " lspeaker" , 1.0 );
1003
1014
ymsnd.add_route (1 , " rspeaker" , 1.0 );
1004
1015
1016
+ TC0060DCA (config, m_tc0060dca[0 ], 384000 );
1017
+ m_tc0060dca[0 ]->add_route (ALL_OUTPUTS, " lspeaker" , 1.0 );
1018
+ m_tc0060dca[0 ]->add_route (ALL_OUTPUTS, " rspeaker" , 1.0 );
1019
+
1005
1020
MSM5205 (config, m_msm[0 ], 384000 );
1006
1021
m_msm[0 ]->vck_legacy_callback ().set (FUNC (opwolf_state::msm5205_vck_w<0 >));
1007
- m_msm[0 ]->set_prescaler_selector (msm5205_device::S48_4B); /* 8 kHz */
1008
- m_msm[0 ]->add_route (ALL_OUTPUTS, " lspeaker" , 1.0 );
1009
- m_msm[0 ]->add_route (ALL_OUTPUTS, " rspeaker" , 1.0 );
1022
+ m_msm[0 ]->set_prescaler_selector (msm5205_device::S48_4B); /* 8 kHz */
1023
+ m_msm[0 ]->add_route (ALL_OUTPUTS, m_tc0060dca[0 ], 1.0 );
1024
+ m_msm[0 ]->add_route (ALL_OUTPUTS, m_tc0060dca[0 ], 1.0 );
1025
+
1026
+ TC0060DCA (config, m_tc0060dca[1 ], 384000 );
1027
+ m_tc0060dca[1 ]->add_route (ALL_OUTPUTS, " lspeaker" , 1.0 );
1028
+ m_tc0060dca[1 ]->add_route (ALL_OUTPUTS, " rspeaker" , 1.0 );
1010
1029
1011
1030
MSM5205 (config, m_msm[1 ], 384000 );
1012
1031
m_msm[1 ]->vck_legacy_callback ().set (FUNC (opwolf_state::msm5205_vck_w<1 >));
1013
- m_msm[1 ]->set_prescaler_selector (msm5205_device::S48_4B); /* 8 kHz */
1014
- m_msm[1 ]->add_route (ALL_OUTPUTS, " lspeaker " , 1.0 );
1015
- m_msm[1 ]->add_route (ALL_OUTPUTS, " rspeaker " , 1.0 );
1032
+ m_msm[1 ]->set_prescaler_selector (msm5205_device::S48_4B); /* 8 kHz */
1033
+ m_msm[1 ]->add_route (ALL_OUTPUTS, m_tc0060dca[ 1 ] , 1.0 );
1034
+ m_msm[1 ]->add_route (ALL_OUTPUTS, m_tc0060dca[ 1 ] , 1.0 );
1016
1035
1017
1036
pc060ha_device &ciu (PC060HA (config, " ciu" , 0 ));
1018
1037
ciu.nmi_callback ().set_inputline (m_audiocpu, INPUT_LINE_NMI);
0 commit comments