This commit is contained in:
Robbbert 2018-05-10 00:46:52 +10:00
commit 775a3e0703
125 changed files with 728 additions and 834 deletions

View File

@ -68,6 +68,7 @@ MACHINES["Z80PIO"] = true
MACHINES["68681"] = true MACHINES["68681"] = true
MACHINES["BANKDEV"] = true MACHINES["BANKDEV"] = true
MACHINES["GEN_LATCH"] = true MACHINES["GEN_LATCH"] = true
MACHINES["OUTPUT_LATCH"] = true
MACHINES["TICKET"] = true MACHINES["TICKET"] = true
MACHINES["WATCHDOG"] = true MACHINES["WATCHDOG"] = true

View File

@ -45,12 +45,10 @@ MACHINE_CONFIG_START(einstein_speculator_device::device_add_mconfig)
MCFG_TTL74123_OUTPUT_CHANGED_CB(WRITELINE(*this, einstein_speculator_device, ic5b_q_w)) MCFG_TTL74123_OUTPUT_CHANGED_CB(WRITELINE(*this, einstein_speculator_device, ic5b_q_w))
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD(m_cassette)
MCFG_CASSETTE_FORMATS(tzx_cassette_formats) MCFG_CASSETTE_FORMATS(tzx_cassette_formats)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)
MCFG_CASSETTE_INTERFACE("spectrum_cass") MCFG_CASSETTE_INTERFACE("spectrum_cass")

View File

@ -93,7 +93,7 @@ MACHINE_CONFIG_START(a26_rom_ss_device::device_add_mconfig)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("a2600_cass") MCFG_CASSETTE_INTERFACE("a2600_cass")
// MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") // MCFG_SOUND_WAVE_ADD("wave", "cassette")
// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -39,6 +39,19 @@
Register 7: Register 7:
D7..D0: Noise volume D7..D0: Noise volume
************************************************************
The device has active high(!) SO strobes triggered by
read accesses, which transfer data from the the 8 SI
lines to the bus. Logically SO0-7 and SI0-7 ought to
be hooked up to the same input matrix, but this only
appears to be the case with the Astrocade home systems.
The arcade games instead channel the SI inputs through
a quartet of MC14539B (pin-compatible with 74153) CMOS
multiplexers and connect the SO strobes to unrelated
outputs which generally use the upper 8 address bits
as data.
***********************************************************/ ***********************************************************/
#include "emu.h" #include "emu.h"
@ -46,7 +59,7 @@
// device type definition // device type definition
DEFINE_DEVICE_TYPE(ASTROCADE, astrocade_device, "astrocade", "Astrocade") DEFINE_DEVICE_TYPE(ASTROCADE_IO, astrocade_io_device, "astrocade_io", "Astrocade Custom I/O")
//************************************************************************** //**************************************************************************
@ -54,39 +67,54 @@ DEFINE_DEVICE_TYPE(ASTROCADE, astrocade_device, "astrocade", "Astrocade")
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// astrocade_device - constructor // astrocade_io_device - constructor
//------------------------------------------------- //-------------------------------------------------
astrocade_device::astrocade_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) astrocade_io_device::astrocade_io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ASTROCADE, tag, owner, clock), : device_t(mconfig, ASTROCADE_IO, tag, owner, clock)
device_sound_interface(mconfig, *this), , device_sound_interface(mconfig, *this)
m_stream(nullptr), , m_stream(nullptr)
m_master_count(0), , m_master_count(0)
m_vibrato_clock(0), , m_vibrato_clock(0)
m_noise_clock(0), , m_noise_clock(0)
m_noise_state(0), , m_noise_state(0)
m_a_count(0), , m_a_count(0)
m_a_state(0), , m_a_state(0)
m_b_count(0), , m_b_count(0)
m_b_state(0), , m_b_state(0)
m_c_count(0), , m_c_count(0)
m_c_state(0) , m_c_state(0)
, m_si_callback(*this)
, m_so_callback{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}}
, m_pots(*this, {finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG, finder_base::DUMMY_TAG})
{ {
memset(m_reg, 0, sizeof(uint8_t)*8); memset(m_reg, 0, sizeof(uint8_t)*8);
memset(m_bitswap, 0, sizeof(uint8_t)*256); memset(m_bitswap, 0, sizeof(uint8_t)*256);
} }
//-------------------------------------------------
// device_resolve_objects - resolve objects that
// may be needed for other devices to set
// initial conditions at start time
//-------------------------------------------------
void astrocade_io_device::device_resolve_objects()
{
m_si_callback.resolve_safe(0);
for (auto &cb : m_so_callback)
cb.resolve_safe();
}
//------------------------------------------------- //-------------------------------------------------
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void astrocade_device::device_start() void astrocade_io_device::device_start()
{ {
int i;
/* generate a bitswap table for the noise */ /* generate a bitswap table for the noise */
for (i = 0; i < 256; i++) for (int i = 0; i < 256; i++)
m_bitswap[i] = bitswap<8>(i, 0,1,2,3,4,5,6,7); m_bitswap[i] = bitswap<8>(i, 0,1,2,3,4,5,6,7);
/* allocate a stream for output */ /* allocate a stream for output */
@ -102,7 +130,7 @@ void astrocade_device::device_start()
// sound_stream_update - handle a stream update // sound_stream_update - handle a stream update
//------------------------------------------------- //-------------------------------------------------
void astrocade_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) void astrocade_io_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{ {
stream_sample_t *dest = outputs[0]; stream_sample_t *dest = outputs[0];
uint16_t noise_state; uint16_t noise_state;
@ -218,7 +246,7 @@ void astrocade_device::sound_stream_update(sound_stream &stream, stream_sample_t
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void astrocade_device::device_reset() void astrocade_io_device::device_reset()
{ {
memset(m_reg, 0, sizeof(m_reg)); memset(m_reg, 0, sizeof(m_reg));
@ -243,7 +271,7 @@ void astrocade_device::device_reset()
// Save state registration // Save state registration
//------------------------------------------------- //-------------------------------------------------
void astrocade_device::state_save_register() void astrocade_io_device::state_save_register()
{ {
save_item(NAME(m_reg)); save_item(NAME(m_reg));
@ -270,7 +298,7 @@ void astrocade_device::state_save_register()
* *
*************************************/ *************************************/
WRITE8_MEMBER( astrocade_device::astrocade_sound_w ) WRITE8_MEMBER(astrocade_io_device::write)
{ {
if ((offset & 8) != 0) if ((offset & 8) != 0)
offset = (offset >> 8) & 7; offset = (offset >> 8) & 7;
@ -283,3 +311,19 @@ WRITE8_MEMBER( astrocade_device::astrocade_sound_w )
/* stash the new register value */ /* stash the new register value */
m_reg[offset & 7] = data; m_reg[offset & 7] = data;
} }
READ8_MEMBER(astrocade_io_device::read)
{
if ((offset & 0x0f) < 0x08)
{
if (!machine().side_effects_disabled())
m_so_callback[offset & 7](space, 0, offset >> 8);
return m_si_callback(space, offset & 7);
}
else if ((offset & 0x0f) >= 0x0c)
return m_pots[offset & 3].read_safe(0);
else
return 0xff;
}

View File

@ -1,5 +1,34 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:Aaron Giles,Frank Palazzolo // copyright-holders:Aaron Giles,Frank Palazzolo
/***********************************************************
Astrocade custom 'IO' chip
************************************************************
_____ _____
Vss 1 |* \_/ | 40 MXD7
SI0 2 | | 39 MXD6
SI1 3 | | 38 MXD5
SI2 4 | | 37 MXD4
SI3 5 | | 36 MXD3
SI4 6 | | 35 MXD2
SI5 7 | | 34 MXD1
SI6 8 | | 33 MXD0
SI7 9 | | 32 SO0
POT0 10 | CUSTOM | 31 SO1
POT1 11 | I/O | 30 SO2
POT2 12 | | 29 SO3
POT3 13 | | 28 SO4
DISCHG 14 | | 27 SO5
MONOS 15 | | 26 SO6
ϕ 16 | | 25 SO7
/RESET 17 | | 24 AUDIO
TEST 18 | | 23 /RD
/IORQ 19 | | 22 Vgg
/ϕ 20 |_____________| 21 Vdd
***********************************************************/
#ifndef MAME_SOUND_ASTROCDE_H #ifndef MAME_SOUND_ASTROCDE_H
#define MAME_SOUND_ASTROCDE_H #define MAME_SOUND_ASTROCDE_H
@ -10,11 +39,44 @@
// INTERFACE CONFIGURATION MACROS // INTERFACE CONFIGURATION MACROS
//************************************************************************** //**************************************************************************
#define MCFG_ASTROCADE_ADD(tag, clock) \ #define MCFG_ASTROCADE_IO_SI_READ_CB(_devcb) \
MCFG_DEVICE_ADD((tag), ASTROCADE, (clock)) devcb = &downcast<astrocade_io_device &>(*device).set_si_callback(DEVCB_##_devcb);
#define MCFG_ASTROCADE_REPLACE(tag, clock) \ #define MCFG_ASTROCADE_IO_SO0_STROBE_CB(_devcb) \
MCFG_DEVICE_REPLACE((tag), ASTROCADE, (clock)) devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<0>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO1_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<1>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO2_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<2>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO3_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<3>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO4_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<4>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO5_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<5>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO6_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<6>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_SO7_STROBE_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_so_callback<7>(DEVCB_##_devcb);
#define MCFG_ASTROCADE_IO_POT0(_tag) \
downcast<astrocade_io_device &>(*device).set_pot_tag<0>(_tag);
#define MCFG_ASTROCADE_IO_POT1(_tag) \
downcast<astrocade_io_device &>(*device).set_pot_tag<1>(_tag);
#define MCFG_ASTROCADE_IO_POT2(_tag) \
downcast<astrocade_io_device &>(*device).set_pot_tag<2>(_tag);
#define MCFG_ASTROCADE_IO_POT3(_tag) \
downcast<astrocade_io_device &>(*device).set_pot_tag<3>(_tag);
@ -22,15 +84,21 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> astrocade_device // ======================> astrocade_io_device
class astrocade_device : public device_t, public device_sound_interface class astrocade_io_device : public device_t, public device_sound_interface
{ {
public: public:
astrocade_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); astrocade_io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration access
template<class Object> devcb_base &set_si_callback(Object &&cb) { return m_si_callback.set_callback(std::forward<Object>(cb)); }
template<int N, class Object> devcb_base &set_so_callback(Object &&cb) { return m_so_callback[N].set_callback(std::forward<Object>(cb)); }
template<int N> void set_pot_tag(const char *tag) { m_pots[N].set_tag(tag); }
protected: protected:
// device-level overrides // device-level overrides
virtual void device_resolve_objects() override;
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
@ -38,7 +106,8 @@ protected:
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
public: public:
DECLARE_WRITE8_MEMBER( astrocade_sound_w ); DECLARE_WRITE8_MEMBER(write);
DECLARE_READ8_MEMBER(read);
private: private:
void state_save_register(); void state_save_register();
@ -63,8 +132,12 @@ private:
uint8_t m_c_state; /* current tone generator C state */ uint8_t m_c_state; /* current tone generator C state */
uint8_t m_bitswap[256]; /* bitswap table */ uint8_t m_bitswap[256]; /* bitswap table */
devcb_read8 m_si_callback;
devcb_write8 m_so_callback[8];
optional_ioport_array<4> m_pots;
}; };
DECLARE_DEVICE_TYPE(ASTROCADE, astrocade_device) DECLARE_DEVICE_TYPE(ASTROCADE_IO, astrocade_io_device)
#endif // MAME_SOUND_ASTROCDE_H #endif // MAME_SOUND_ASTROCDE_H

View File

@ -25,13 +25,12 @@
DEFINE_DEVICE_TYPE(WAVE, wave_device, "wave", "Wave") DEFINE_DEVICE_TYPE(WAVE, wave_device, "wave", "Cassette Sound")
wave_device::wave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) wave_device::wave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, WAVE, tag, owner, clock) : device_t(mconfig, WAVE, tag, owner, clock)
, device_sound_interface(mconfig, *this) , device_sound_interface(mconfig, *this)
, m_cassette_tag(nullptr) , m_cass(*this, finder_base::DUMMY_TAG)
, m_cass(nullptr)
{ {
} }
@ -47,7 +46,6 @@ void wave_device::device_start()
machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate()); machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate());
else else
machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate()); machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate());
m_cass = owner()->subdevice<cassette_image_device>(m_cassette_tag);
} }
//------------------------------------------------- //-------------------------------------------------

View File

@ -15,9 +15,15 @@
class wave_device : public device_t, public device_sound_interface class wave_device : public device_t, public device_sound_interface
{ {
public: public:
wave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template <typename T>
wave_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cassette_tag)
: wave_device(mconfig, tag, owner, uint32_t(0))
{
m_cass.set_tag(std::forward<T>(cassette_tag));
}
wave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
void set_cassette_tag(const char *cassette_tag) { m_cassette_tag = cassette_tag; } template <typename T> void set_cassette_tag(T &&cassette_tag) { m_cass.set_tag(std::forward<T>(cassette_tag)); }
protected: protected:
// device-level overrides // device-level overrides
@ -27,19 +33,9 @@ protected:
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
private: private:
const char *m_cassette_tag; required_device<cassette_image_device> m_cass;
cassette_image_device *m_cass;
}; };
DECLARE_DEVICE_TYPE(WAVE, wave_device) DECLARE_DEVICE_TYPE(WAVE, wave_device)
#define WAVE_TAG "wave"
#define WAVE2_TAG "wave2"
#define MCFG_SOUND_WAVE_ADD(_tag, _cass_tag) \
MCFG_DEVICE_ADD( _tag, WAVE, 0 ) \
downcast<wave_device &>(*device).set_cassette_tag(_cass_tag);
#endif // MAME_SOUND_WAVE_H #endif // MAME_SOUND_WAVE_H

View File

@ -12,9 +12,6 @@
#pragma once #pragma once
#define MCFG_NT7534_ADD( _tag ) \
MCFG_DEVICE_ADD( _tag, NT7534, 0 )
#define MCFG_NT7534_PIXEL_UPDATE_CB(_class, _method) \ #define MCFG_NT7534_PIXEL_UPDATE_CB(_class, _method) \
downcast<nt7534_device &>(*device).set_pixel_update_cb(nt7534_device::pixel_update_delegate(&_class::_method, #_class "::" #_method, this)); downcast<nt7534_device &>(*device).set_pixel_update_cb(nt7534_device::pixel_update_delegate(&_class::_method, #_class "::" #_method, this));
@ -33,7 +30,7 @@ public:
typedef device_delegate<void (bitmap_ind16 &bitmap, uint8_t line, uint8_t pos, uint8_t y, uint8_t x, int state)> pixel_update_delegate; typedef device_delegate<void (bitmap_ind16 &bitmap, uint8_t line, uint8_t pos, uint8_t y, uint8_t x, int state)> pixel_update_delegate;
// construction/destruction // construction/destruction
nt7534_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); nt7534_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <typename Object> void set_pixel_update_cb(Object &&cb) { m_pixel_update_cb = std::forward<Object>(cb); } template <typename Object> void set_pixel_update_cb(Object &&cb) { m_pixel_update_cb = std::forward<Object>(cb); }

View File

@ -586,10 +586,8 @@ MACHINE_CONFIG_START(a5105_state::a5105)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) BEEP(config, "beeper", 500).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("beeper", BEEP, 500)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL(15'000'000) / 16) // unk clock MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL(15'000'000) / 16) // unk clock

View File

@ -240,8 +240,7 @@ MACHINE_CONFIG_START(a6809_state::a6809)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("via", VIA6522, XTAL(4'000'000) / 4) MCFG_DEVICE_ADD("via", VIA6522, XTAL(4'000'000) / 4)

View File

@ -509,8 +509,7 @@ MACHINE_CONFIG_START(abc80_state::abc80)
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(330)) // oneshot caps + res: C53 0.1u - R25 330k MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(330)) // oneshot caps + res: C53 0.1u - R25 330k
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, CASSETTE_TAG) WAVE(config, "wave", CASSETTE_TAG).add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
// devices // devices
MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL(11'980'800)/2/2) MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL(11'980'800)/2/2)

View File

@ -155,8 +155,7 @@ MACHINE_CONFIG_START(ac1_state::ac1)
MCFG_PALETTE_ADD_MONOCHROME("palette") MCFG_PALETTE_ADD_MONOCHROME("palette")
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -274,8 +274,7 @@ MACHINE_CONFIG_START(acrnsys1_state::acrnsys1)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* devices */ /* devices */
MCFG_DEVICE_ADD("b1", INS8154, 0) MCFG_DEVICE_ADD("b1", INS8154, 0)

View File

@ -207,8 +207,7 @@ MACHINE_CONFIG_START(aim65_state::aim65)
/* Sound - wave sound only */ /* Sound - wave sound only */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* other devices */ /* other devices */
MCFG_DEVICE_ADD("riot", MOS6532_NEW, AIM65_CLOCK) MCFG_DEVICE_ADD("riot", MOS6532_NEW, AIM65_CLOCK)

View File

@ -717,10 +717,8 @@ MACHINE_CONFIG_START(alphatro_state::alphatro)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 950) /* piezo-device needs to be measured */ BEEP(config, "beeper", 950).add_route(ALL_OUTPUTS, "mono", 1.00); /* piezo-device needs to be measured */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_UPD765A_ADD("fdc", true, true) MCFG_UPD765A_ADD("fdc", true, true)

View File

@ -948,8 +948,7 @@ MACHINE_CONFIG_START(amstrad_state::amstrad_base)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("ay", AY8912, XTAL(16'000'000) / 16) MCFG_DEVICE_ADD("ay", AY8912, XTAL(16'000'000) / 16)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, amstrad_state, amstrad_psg_porta_read)) /* portA read */ MCFG_AY8910_PORT_A_READ_CB(READ8(*this, amstrad_state, amstrad_psg_porta_read)) /* portA read */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
@ -1076,8 +1075,7 @@ MACHINE_CONFIG_START(amstrad_state::cpcplus)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("ay", AY8912, XTAL(40'000'000) / 40) MCFG_DEVICE_ADD("ay", AY8912, XTAL(40'000'000) / 40)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, amstrad_state, amstrad_psg_porta_read)) /* portA read */ MCFG_AY8910_PORT_A_READ_CB(READ8(*this, amstrad_state, amstrad_psg_porta_read)) /* portA read */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)

View File

@ -562,8 +562,7 @@ MACHINE_CONFIG_START(apf_state::apfimag)
MCFG_RAM_DEFAULT_SIZE("8K") MCFG_RAM_DEFAULT_SIZE("8K")
MCFG_RAM_EXTRA_OPTIONS("16K") MCFG_RAM_EXTRA_OPTIONS("16K")
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_DEVICE_ADD("pia1", PIA6821, 0) MCFG_DEVICE_ADD("pia1", PIA6821, 0)
MCFG_PIA_READPA_HANDLER(READ8(*this, apf_state, pia1_porta_r)) MCFG_PIA_READPA_HANDLER(READ8(*this, apf_state, pia1_porta_r))

View File

@ -254,8 +254,7 @@ MACHINE_CONFIG_START(apogee_state::apogee)
MCFG_PALETTE_INIT_OWNER(apogee_state,radio86) MCFG_PALETTE_INIT_OWNER(apogee_state,radio86)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SPEAKER_LEVELS(4, speaker_levels) MCFG_SPEAKER_LEVELS(4, speaker_levels)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)

View File

@ -878,8 +878,7 @@ MACHINE_CONFIG_START(applix_state::applix)
MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT) MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT) MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "lspeaker", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
/* Devices */ /* Devices */
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL(30'000'000) / 16) // MC6545 @ 1.875 MHz MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL(30'000'000) / 16) // MC6545 @ 1.875 MHz

View File

@ -120,6 +120,9 @@
#include "cpu/z80/z80daisy.h" #include "cpu/z80/z80daisy.h"
#include "machine/z80ctc.h" #include "machine/z80ctc.h"
#include "machine/nvram.h" #include "machine/nvram.h"
#include "machine/74259.h"
#include "machine/output_latch.h"
#include "machine/watchdog.h"
#include "sound/ay8910.h" #include "sound/ay8910.h"
#include "sound/votrax.h" #include "sound/votrax.h"
@ -164,26 +167,6 @@ WRITE8_MEMBER(astrocde_state::protected_ram_w)
* *
*************************************/ *************************************/
WRITE8_MEMBER(astrocde_state::seawolf2_lamps_w)
{
/* 0x42 = player 2 (left), 0x43 = player 1 (right) */
/* --x----- explosion */
/* ---x---- RELOAD (active low) */
/* ----x--- torpedo 1 available */
/* -----x-- torpedo 2 available */
/* ------x- torpedo 3 available */
/* -------x torpedo 4 available */
output().set_lamp_value((offset ^ 1) * 7 + 0, ( data >> 5) & 1); /* 0/7 = hit lamp */
output().set_lamp_value((offset ^ 1) * 7 + 1, (~data >> 4) & 1); /* 1/8 = reload lamp */
output().set_lamp_value((offset ^ 1) * 7 + 2, ( data >> 4) & 1); /* 2/9 = ready lamp */
output().set_lamp_value((offset ^ 1) * 7 + 3, ( data >> 3) & 1); /* 3/10 = torpedo 1 lamp */
output().set_lamp_value((offset ^ 1) * 7 + 4, ( data >> 2) & 1); /* 4/11 = torpedo 2 lamp */
output().set_lamp_value((offset ^ 1) * 7 + 5, ( data >> 1) & 1); /* 5/12 = torpedo 3 lamp */
output().set_lamp_value((offset ^ 1) * 7 + 6, ( data >> 0) & 1); /* 6/13 = torpedo 4 lamp */
}
WRITE8_MEMBER(astrocde_state::seawolf2_sound_1_w)// Port 40 WRITE8_MEMBER(astrocde_state::seawolf2_sound_1_w)// Port 40
{ {
uint8_t rising_bits = data & ~m_port_1_last; uint8_t rising_bits = data & ~m_port_1_last;
@ -229,6 +212,33 @@ WRITE8_MEMBER(astrocde_state::seawolf2_sound_2_w)// Port 41
/*************************************
*
* Generic input/output
*
*************************************/
READ8_MEMBER(astrocde_state::input_mux_r)
{
return m_handle[offset & 3].read_safe(0xff);
}
template<int Coin>
WRITE_LINE_MEMBER(astrocde_state::coin_counter_w)
{
machine().bookkeeping().coin_counter_w(Coin, state);
}
template<int Bit>
WRITE_LINE_MEMBER(astrocde_state::sparkle_w)
{
m_sparkle[Bit] = state;
}
/************************************* /*************************************
* *
* Extra Bases specific input/output * Extra Bases specific input/output
@ -254,112 +264,47 @@ WRITE8_MEMBER(astrocde_state::ebases_coin_w)
/*************************************
*
* Space Zap specific input/output
*
*************************************/
READ8_MEMBER(astrocde_state::spacezap_io_r)
{
machine().bookkeeping().coin_counter_w(0, (offset >> 8) & 1);
machine().bookkeeping().coin_counter_w(1, (offset >> 9) & 1);
return m_p3handle.read_safe(0xff);
}
/*************************************
*
* Wizard of Wor specific input/output
*
*************************************/
READ8_MEMBER(astrocde_state::wow_io_r)
{
uint8_t data = (offset >> 8) & 1;
switch ((offset >> 9) & 7)
{
case 0: machine().bookkeeping().coin_counter_w(0, data); break;
case 1: machine().bookkeeping().coin_counter_w(1, data); break;
case 2: m_sparkle[0] = data; break;
case 3: m_sparkle[1] = data; break;
case 4: m_sparkle[2] = data; break;
case 5: m_sparkle[3] = data; break;
case 7: machine().bookkeeping().coin_counter_w(2, data); break;
}
return 0xff;
}
/************************************* /*************************************
* *
* Gorf specific input/output * Gorf specific input/output
* *
*************************************/ *************************************/
READ8_MEMBER(astrocde_state::gorf_io_1_r) WRITE_LINE_MEMBER(astrocde_state::gorf_sound_switch_w)
{ {
uint8_t data = (offset >> 8) & 1; m_astrocade_sound1->set_output_gain(0, state ? 0.0 : 1.0);
m_votrax->set_output_gain(0, state ? 1.0 : 0.0);
switch ((offset >> 9) & 7)
{
case 0: machine().bookkeeping().coin_counter_w(0, data); break;
case 1: machine().bookkeeping().coin_counter_w(1, data); break;
case 2: m_sparkle[0] = data; break;
case 3: m_sparkle[1] = data; break;
case 4: m_sparkle[2] = data; break;
case 5: m_sparkle[3] = data; break;
case 6:
m_astrocade_sound1->set_output_gain(0, data ? 0.0 : 1.0);
m_votrax->set_output_gain(0, data ? 1.0 : 0.0);
break;
case 7: osd_printf_debug("io_1:%d\n", data); break;
}
return 0xff;
}
READ8_MEMBER(astrocde_state::gorf_io_2_r)
{
uint8_t data = (offset >> 8) & 1;
switch ((offset >> 9) & 7)
{
case 0: output().set_lamp_value(0, data); break;
case 1: output().set_lamp_value(1, data); break;
case 2: output().set_lamp_value(2, data); break;
case 3: output().set_lamp_value(3, data); break;
case 4: output().set_lamp_value(4, data); break;
case 5: output().set_lamp_value(5, data); break;
case 6: /* n/c */ break;
case 7: output().set_lamp_value(7, data); break;
}
return 0xff;
} }
/************************************* /*************************************
* *
* Robby Roto specific input/output * Demons & Dragons specific input/output
* *
*************************************/ *************************************/
READ8_MEMBER(astrocde_state::robby_io_r) WRITE8_MEMBER(astrocde_state::demndrgn_banksw_w)
{ {
uint8_t data = (offset >> 8) & 1; int bank = (data >> 5) & 3;
m_bank4000->set_bank(bank);
m_bank8000->set_entry(bank);
}
switch ((offset >> 9) & 7) WRITE_LINE_MEMBER(astrocde_state::demndrgn_input_select_w)
{ {
case 0: machine().bookkeeping().coin_counter_w(0, data); break; m_input_select = state;
case 1: machine().bookkeeping().coin_counter_w(1, data); break; }
case 2: machine().bookkeeping().coin_counter_w(2, data); break;
case 6: output().set_led_value(0, data); break; CUSTOM_INPUT_MEMBER(astrocde_state::demndragn_joystick_r)
case 7: output().set_led_value(1, data); break; {
} return m_joystick[m_input_select]->read();
return 0xff; }
WRITE8_MEMBER(astrocde_state::demndrgn_sound_w)
{
logerror("Trigger sound sample 0x%02x\n",data);
} }
@ -370,35 +315,6 @@ READ8_MEMBER(astrocde_state::robby_io_r)
* *
*************************************/ *************************************/
READ8_MEMBER(astrocde_state::profpac_io_1_r)
{
machine().bookkeeping().coin_counter_w(0, (offset >> 8) & 1);
machine().bookkeeping().coin_counter_w(1, (offset >> 9) & 1);
output().set_led_value(0, (offset >> 10) & 1);
output().set_led_value(1, (offset >> 11) & 1);
return 0xff;
}
READ8_MEMBER(astrocde_state::profpac_io_2_r)
{
output().set_lamp_value(0, (offset >> 8) & 1); /* left lamp A */
output().set_lamp_value(1, (offset >> 9) & 1); /* left lamp B */
output().set_lamp_value(2, (offset >> 10) & 1); /* left lamp C */
output().set_lamp_value(3, (offset >> 12) & 1); /* right lamp A */
output().set_lamp_value(4, (offset >> 13) & 1); /* right lamp B */
output().set_lamp_value(5, (offset >> 14) & 1); /* right lamp C */
return 0xff;
}
WRITE8_MEMBER(astrocde_state::demndrgn_banksw_w)
{
int bank = (data >> 5) & 3;
m_bank4000->set_bank(bank);
m_bank8000->set_entry(bank);
}
WRITE8_MEMBER(astrocde_state::profpac_banksw_w) WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
{ {
@ -418,36 +334,6 @@ WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
} }
/*************************************
*
* Demons & Dragons specific input/output
*
*************************************/
READ8_MEMBER(astrocde_state::demndrgn_io_r)
{
machine().bookkeeping().coin_counter_w(0, (offset >> 8) & 1);
machine().bookkeeping().coin_counter_w(1, (offset >> 9) & 1);
output().set_led_value(0, (offset >> 10) & 1);
output().set_led_value(1, (offset >> 11) & 1);
m_input_select = (offset >> 12) & 1;
return 0xff;
}
CUSTOM_INPUT_MEMBER(astrocde_state::demndragn_joystick_r)
{
return m_joystick[m_input_select]->read();
}
WRITE8_MEMBER(astrocde_state::demndrgn_sound_w)
{
logerror("Trigger sound sample 0x%02x\n",data);
}
/************************************* /*************************************
* *
@ -507,14 +393,12 @@ WRITE8_MEMBER(astrocde_state::tenpindx_lights_w)
* *
*************************************/ *************************************/
READ8_MEMBER( astrocde_state::votrax_speech_r ) WRITE8_MEMBER(astrocde_state::votrax_speech_w)
{ {
uint8_t data = offset >> 8;
m_votrax->inflection_w(space, 0, data >> 6); m_votrax->inflection_w(space, 0, data >> 6);
m_votrax->write(space, 0, data); m_votrax->write(space, 0, data);
/* Note : We should really also use volume in this as well as frequency */ /* Note : We should really also use volume in this as well as frequency */
return data; /* Return nicely */
} }
@ -633,13 +517,40 @@ void astrocde_state::tenpin_sub_map(address_map &map)
void astrocde_state::port_map(address_map &map) void astrocde_state::port_map(address_map &map)
{ {
map(0x0000, 0x0019).select(0xff00).rw(this, FUNC(astrocde_state::astrocade_data_chip_register_r), FUNC(astrocde_state::astrocade_data_chip_register_w)); map(0x0000, 0x000f).mirror(0xff00).rw(this, FUNC(astrocde_state::video_register_r), FUNC(astrocde_state::video_register_w));
map(0x0010, 0x001f).select(0xff00).r("astrocade1", FUNC(astrocade_io_device::read));
map(0x0010, 0x0018).select(0xff00).w("astrocade1", FUNC(astrocade_io_device::write));
map(0x0019, 0x0019).mirror(0xff00).w(this, FUNC(astrocde_state::expand_register_w));
}
void astrocde_state::port_map_discrete(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x0f).rw(this, FUNC(astrocde_state::video_register_r), FUNC(astrocde_state::video_register_w));
map(0x10, 0x10).portr("HANDLE0");
map(0x11, 0x11).portr("HANDLE1");
map(0x12, 0x12).portr("HANDLE2");
map(0x13, 0x13).portr("HANDLE3");
map(0x19, 0x19).w(this, FUNC(astrocde_state::expand_register_w));
map(0x40, 0x40).mirror(0x18).w(this, FUNC(astrocde_state::seawolf2_sound_1_w));
map(0x41, 0x41).mirror(0x18).w(this, FUNC(astrocde_state::seawolf2_sound_2_w));
map(0x42, 0x42).mirror(0x18).w("lamplatch2", FUNC(output_latch_device::write));
map(0x43, 0x43).mirror(0x18).w("lamplatch1", FUNC(output_latch_device::write));
}
void astrocde_state::port_map_ebases(address_map &map)
{
port_map(map);
map(0x0020, 0x0020).mirror(0xff07).w(this, FUNC(astrocde_state::ebases_coin_w));
map(0x0028, 0x0028).mirror(0xff07).w(this, FUNC(astrocde_state::ebases_trackball_select_w));
} }
void astrocde_state::port_map_mono_pattern(address_map &map) void astrocde_state::port_map_mono_pattern(address_map &map)
{ {
map(0x0000, 0x0019).select(0xff00).rw(this, FUNC(astrocde_state::astrocade_data_chip_register_r), FUNC(astrocde_state::astrocade_data_chip_register_w)); port_map(map);
map(0x0078, 0x007e).mirror(0xff00).w(this, FUNC(astrocde_state::astrocade_pattern_board_w)); map(0x0078, 0x007e).mirror(0xff00).w(this, FUNC(astrocde_state::astrocade_pattern_board_w));
map(0xa55b, 0xa55b).w(this, FUNC(astrocde_state::protected_ram_enable_w)); map(0xa55b, 0xa55b).w(this, FUNC(astrocde_state::protected_ram_enable_w));
} }
@ -647,29 +558,25 @@ void astrocde_state::port_map_mono_pattern(address_map &map)
void astrocde_state::port_map_stereo_pattern(address_map &map) void astrocde_state::port_map_stereo_pattern(address_map &map)
{ {
map(0x0000, 0x0019).select(0xff00).rw(this, FUNC(astrocde_state::astrocade_data_chip_register_r), FUNC(astrocde_state::astrocade_data_chip_register_w)); port_map_mono_pattern(map);
map(0x0050, 0x0058).select(0xff00).w("astrocade2", FUNC(astrocade_device::astrocade_sound_w)); map(0x0050, 0x0058).select(0xff00).w("astrocade2", FUNC(astrocade_io_device::write));
map(0x0078, 0x007e).mirror(0xff00).w(this, FUNC(astrocde_state::astrocade_pattern_board_w));
map(0xa55b, 0xa55b).w(this, FUNC(astrocde_state::protected_ram_enable_w));
} }
void astrocde_state::port_map_16col_pattern(address_map &map) void astrocde_state::port_map_16col_pattern(address_map &map)
{ {
map(0x0000, 0x0019).select(0xff00).rw(this, FUNC(astrocde_state::astrocade_data_chip_register_r), FUNC(astrocde_state::astrocade_data_chip_register_w)); port_map_stereo_pattern(map);
map(0x0050, 0x0058).select(0xff00).w("astrocade2", FUNC(astrocade_device::astrocade_sound_w));
map(0x0078, 0x007e).mirror(0xff00).w(this, FUNC(astrocde_state::astrocade_pattern_board_w));
map(0x00bf, 0x00bf).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_page_select_w)); map(0x00bf, 0x00bf).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_page_select_w));
map(0x00c3, 0x00c3).mirror(0xff00).r(this, FUNC(astrocde_state::profpac_intercept_r)); map(0x00c3, 0x00c3).mirror(0xff00).r(this, FUNC(astrocde_state::profpac_intercept_r));
map(0x00c0, 0x00c5).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_screenram_ctrl_w)); map(0x00c0, 0x00c5).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_screenram_ctrl_w));
map(0x00f3, 0x00f3).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_banksw_w)); map(0x00f3, 0x00f3).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_banksw_w));
map(0xa55b, 0xa55b).w(this, FUNC(astrocde_state::protected_ram_enable_w));
} }
void astrocde_state::port_map_16col_pattern_nosound(address_map &map) void astrocde_state::port_map_16col_pattern_nosound(address_map &map)
{ {
map(0x0000, 0x0019).select(0xff00).rw(this, FUNC(astrocde_state::astrocade_data_chip_register_r), FUNC(astrocde_state::astrocade_data_chip_register_w)); map(0x0000, 0x000f).mirror(0xff00).rw(this, FUNC(astrocde_state::video_register_r), FUNC(astrocde_state::video_register_w));
map(0x0019, 0x0019).mirror(0xff00).w(this, FUNC(astrocde_state::expand_register_w));
map(0x0078, 0x007e).mirror(0xff00).w(this, FUNC(astrocde_state::astrocade_pattern_board_w)); map(0x0078, 0x007e).mirror(0xff00).w(this, FUNC(astrocde_state::astrocade_pattern_board_w));
map(0x00bf, 0x00bf).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_page_select_w)); map(0x00bf, 0x00bf).mirror(0xff00).w(this, FUNC(astrocde_state::profpac_page_select_w));
map(0x00c3, 0x00c3).mirror(0xff00).r(this, FUNC(astrocde_state::profpac_intercept_r)); map(0x00c3, 0x00c3).mirror(0xff00).r(this, FUNC(astrocde_state::profpac_intercept_r));
@ -679,6 +586,14 @@ void astrocde_state::port_map_16col_pattern_nosound(address_map &map)
} }
void astrocde_state::port_map_16col_pattern_demndrgn(address_map &map)
{
port_map_16col_pattern_nosound(map);
map(0x0010, 0x001f).select(0xff00).r("astrocade1", FUNC(astrocade_io_device::read));
map(0x0097, 0x0097).mirror(0xff00).w(this, FUNC(astrocde_state::demndrgn_sound_w));
}
void astrocde_state::port_map_16col_pattern_tenpindx(address_map &map) void astrocde_state::port_map_16col_pattern_tenpindx(address_map &map)
{ {
port_map_16col_pattern_nosound(map); port_map_16col_pattern_nosound(map);
@ -1311,7 +1226,8 @@ MACHINE_CONFIG_START(astrocde_state::astrocade_mono_sound)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_ASTROCADE_ADD("astrocade1", ASTROCADE_CLOCK/4) MCFG_DEVICE_ADD("astrocade1", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_ASTROCADE_IO_SI_READ_CB(READ8(*this, astrocde_state, input_mux_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1322,11 +1238,16 @@ MACHINE_CONFIG_START(astrocde_state::astrocade_stereo_sound)
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); SPEAKER(config, "rspeaker").front_right();
MCFG_ASTROCADE_ADD("astrocade1", ASTROCADE_CLOCK/4) MCFG_DEVICE_ADD("astrocade1", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_ASTROCADE_IO_SI_READ_CB(READ8(*this, astrocde_state, input_mux_r))
MCFG_ASTROCADE_IO_SO0_STROBE_CB(WRITE8("watchdog", watchdog_timer_device, reset_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_ASTROCADE_ADD("astrocade2", ASTROCADE_CLOCK/4) MCFG_DEVICE_ADD("astrocade2", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_WATCHDOG_ADD("watchdog") // MC14024B on CPU board at U18
MCFG_WATCHDOG_VBLANK_INIT("screen", 128) // CLK = VERTDR, Q7 used for RESET
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1343,7 +1264,25 @@ MACHINE_CONFIG_START(astrocde_state::seawolf2)
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(seawolf2_map) MCFG_DEVICE_PROGRAM_MAP(seawolf2_map)
MCFG_DEVICE_IO_MAP(port_map) MCFG_DEVICE_IO_MAP(port_map_discrete)
MCFG_DEVICE_ADD("lamplatch1", OUTPUT_LATCH, 0) // 74174 on game board at N2
MCFG_OUTPUT_LATCH_BIT0_HANDLER(OUTPUT("lamp6")) // right player torpedo 4 available
MCFG_OUTPUT_LATCH_BIT1_HANDLER(OUTPUT("lamp5")) // right player torpedo 3 available
MCFG_OUTPUT_LATCH_BIT2_HANDLER(OUTPUT("lamp4")) // right player torpedo 2 available
MCFG_OUTPUT_LATCH_BIT3_HANDLER(OUTPUT("lamp3")) // right player torpedo 1 available
MCFG_OUTPUT_LATCH_BIT4_HANDLER(OUTPUT("lamp2")) // right player ready
MCFG_DEVCB_CHAIN_OUTPUT(OUTPUT("lamp1")) MCFG_DEVCB_INVERT // right player reload (active low)
MCFG_OUTPUT_LATCH_BIT5_HANDLER(OUTPUT("lamp0")) // right player explosion (hit)
MCFG_DEVICE_ADD("lamplatch2", OUTPUT_LATCH, 0) // 74174 on game board at P2
MCFG_OUTPUT_LATCH_BIT0_HANDLER(OUTPUT("lamp13")) // left player torpedo 4 available
MCFG_OUTPUT_LATCH_BIT1_HANDLER(OUTPUT("lamp12")) // left player torpedo 3 available
MCFG_OUTPUT_LATCH_BIT2_HANDLER(OUTPUT("lamp11")) // left player torpedo 2 available
MCFG_OUTPUT_LATCH_BIT3_HANDLER(OUTPUT("lamp10")) // left player torpedo 1 available
MCFG_OUTPUT_LATCH_BIT4_HANDLER(OUTPUT("lamp9")) // left player ready
MCFG_DEVCB_CHAIN_OUTPUT(OUTPUT("lamp8")) MCFG_DEVCB_INVERT // left player reload (active low)
MCFG_OUTPUT_LATCH_BIT5_HANDLER(OUTPUT("lamp7")) // left player explosion (hit)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
@ -1372,7 +1311,13 @@ MACHINE_CONFIG_START(astrocde_state::ebases)
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(ebases_map) MCFG_DEVICE_PROGRAM_MAP(ebases_map)
MCFG_DEVICE_IO_MAP(port_map) MCFG_DEVICE_IO_MAP(port_map_ebases)
MCFG_DEVICE_MODIFY("astrocade1")
MCFG_ASTROCADE_IO_SO1_STROBE_CB(WRITE8("watchdog", watchdog_timer_device, reset_w))
MCFG_WATCHDOG_ADD("watchdog") // MC14024 on CPU board at U18
MCFG_WATCHDOG_VBLANK_INIT("screen", 128) // CLK = VERTDR, Q7 used for RESET
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1384,6 +1329,17 @@ MACHINE_CONFIG_START(astrocde_state::spacezap)
MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(spacezap_map) MCFG_DEVICE_PROGRAM_MAP(spacezap_map)
MCFG_DEVICE_IO_MAP(port_map_mono_pattern) MCFG_DEVICE_IO_MAP(port_map_mono_pattern)
MCFG_DEVICE_MODIFY("astrocade1")
MCFG_ASTROCADE_IO_SO0_STROBE_CB(WRITE8("watchdog", watchdog_timer_device, reset_w))
MCFG_ASTROCADE_IO_SO3_STROBE_CB(WRITE8("outlatch", output_latch_device, write))
MCFG_DEVICE_ADD("outlatch", OUTPUT_LATCH, 0) // MC14174B on game board at U16
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(*this, astrocde_state, coin_counter_w<0>))
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(*this, astrocde_state, coin_counter_w<1>))
MCFG_WATCHDOG_ADD("watchdog") // MC14024 on CPU board at U18
MCFG_WATCHDOG_VBLANK_INIT("screen", 128) // CLK = VERTDR, Q7 used for RESET
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(astrocde_state::wow) MACHINE_CONFIG_START(astrocde_state::wow)
@ -1395,6 +1351,15 @@ MACHINE_CONFIG_START(astrocde_state::wow)
MCFG_DEVICE_PROGRAM_MAP(wow_map) MCFG_DEVICE_PROGRAM_MAP(wow_map)
MCFG_DEVICE_IO_MAP(port_map_stereo_pattern) MCFG_DEVICE_IO_MAP(port_map_stereo_pattern)
MCFG_DEVICE_ADD("outlatch", CD4099, 0)
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<0>))
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<1>))
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<0>))
MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<1>))
MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<2>))
MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<3>))
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<2>))
/* video hardware */ /* video hardware */
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_DEFAULT_POSITION(1.0, 0.0, 1.0, 0.0) /* adjusted to match screenshots */ MCFG_SCREEN_DEFAULT_POSITION(1.0, 0.0, 1.0, 0.0) /* adjusted to match screenshots */
@ -1403,6 +1368,10 @@ MACHINE_CONFIG_START(astrocde_state::wow)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "center").front_center(); SPEAKER(config, "center").front_center();
MCFG_DEVICE_MODIFY("astrocade1")
MCFG_ASTROCADE_IO_SO5_STROBE_CB(WRITE8("outlatch", cd4099_device, write_nibble_d0))
MCFG_ASTROCADE_IO_SO7_STROBE_CB(WRITE8(*this, astrocde_state, votrax_speech_w))
MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "center", 0.85) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "center", 0.85)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1416,6 +1385,29 @@ MACHINE_CONFIG_START(astrocde_state::gorf)
MCFG_DEVICE_PROGRAM_MAP(wow_map) MCFG_DEVICE_PROGRAM_MAP(wow_map)
MCFG_DEVICE_IO_MAP(port_map_stereo_pattern) MCFG_DEVICE_IO_MAP(port_map_stereo_pattern)
MCFG_DEVICE_ADD("outlatch", CD4099, 0) // MC14099B on game board at U6
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<0>))
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<1>))
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<0>))
MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<1>))
MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<2>))
MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(*this, astrocde_state, sparkle_w<3>))
MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(*this, astrocde_state, gorf_sound_switch_w))
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(OUTPUT("lamp6"))
MCFG_DEVICE_ADD("lamplatch", CD4099, 0) // MC14099B on game board at U7
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(OUTPUT("lamp0"))
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(OUTPUT("lamp1"))
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(OUTPUT("lamp2"))
MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(OUTPUT("lamp3"))
MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(OUTPUT("lamp4"))
MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(OUTPUT("lamp5"))
MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(NOOP) // n/c
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(OUTPUT("lamp7"))
MCFG_WATCHDOG_ADD("watchdog") // MC14024 on CPU board at U18
MCFG_WATCHDOG_VBLANK_INIT("screen", 128) // CLK = VERTDR, Q7 used for RESET
/* video hardware */ /* video hardware */
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_DEFAULT_POSITION(1.0, 0.0, 1.0, 0.0) /* adjusted to match flyer */ MCFG_SCREEN_DEFAULT_POSITION(1.0, 0.0, 1.0, 0.0) /* adjusted to match flyer */
@ -1424,10 +1416,15 @@ MACHINE_CONFIG_START(astrocde_state::gorf)
SPEAKER(config, "upper", 0.0, 0.0, 1.0); SPEAKER(config, "upper", 0.0, 0.0, 1.0);
SPEAKER(config, "lower", 0.0, -0.5, 1.0); SPEAKER(config, "lower", 0.0, -0.5, 1.0);
MCFG_ASTROCADE_ADD("astrocade1", ASTROCADE_CLOCK/4) MCFG_DEVICE_ADD("astrocade1", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_ASTROCADE_IO_SI_READ_CB(READ8(*this, astrocde_state, input_mux_r))
MCFG_ASTROCADE_IO_SO0_STROBE_CB(WRITE8("watchdog", watchdog_timer_device, reset_w))
MCFG_ASTROCADE_IO_SO5_STROBE_CB(WRITE8("outlatch", cd4099_device, write_nibble_d0))
MCFG_ASTROCADE_IO_SO6_STROBE_CB(WRITE8("lamplatch", cd4099_device, write_nibble_d0))
MCFG_ASTROCADE_IO_SO7_STROBE_CB(WRITE8(*this, astrocde_state, votrax_speech_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "upper", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "upper", 1.0)
MCFG_ASTROCADE_ADD("astrocade2", ASTROCADE_CLOCK/4) MCFG_DEVICE_ADD("astrocade2", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lower", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lower", 1.0)
MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000)
@ -1444,7 +1441,17 @@ MACHINE_CONFIG_START(astrocde_state::robby)
MCFG_DEVICE_PROGRAM_MAP(robby_map) MCFG_DEVICE_PROGRAM_MAP(robby_map)
MCFG_DEVICE_IO_MAP(port_map_stereo_pattern) MCFG_DEVICE_IO_MAP(port_map_stereo_pattern)
MCFG_NVRAM_ADD_0FILL("nvram") MCFG_NVRAM_ADD_0FILL("nvram") // HM6116LP-4 + battery
MCFG_DEVICE_ADD("outlatch", CD4099, 0) // on game board at U1
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<0>))
MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<1>))
MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, astrocde_state, coin_counter_w<2>))
MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(OUTPUT("led0"))
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(OUTPUT("led1"))
MCFG_DEVICE_MODIFY("astrocade1")
MCFG_ASTROCADE_IO_SO5_STROBE_CB(WRITE8("outlatch", cd4099_device, write_nibble_d0))
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1460,16 +1467,47 @@ MACHINE_CONFIG_START(astrocde_state::profpac)
MCFG_DEVICE_MODIFY("bank4000") MCFG_DEVICE_MODIFY("bank4000")
MCFG_DEVICE_PROGRAM_MAP(profpac_bank4000_map) MCFG_DEVICE_PROGRAM_MAP(profpac_bank4000_map)
MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(20) MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(20)
MCFG_DEVICE_ADD("outlatch", OUTPUT_LATCH, 0) // 74LS174 on game board at U6
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(*this, astrocde_state, coin_counter_w<0>))
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(*this, astrocde_state, coin_counter_w<1>))
MCFG_OUTPUT_LATCH_BIT2_HANDLER(OUTPUT("led0"))
MCFG_OUTPUT_LATCH_BIT3_HANDLER(OUTPUT("led1"))
MCFG_DEVICE_ADD("lamplatch", OUTPUT_LATCH, 0) // 74LS174 on game board at U7
MCFG_OUTPUT_LATCH_BIT0_HANDLER(OUTPUT("lamp0")) // left lamp A
MCFG_OUTPUT_LATCH_BIT1_HANDLER(OUTPUT("lamp1")) // left lamp B
MCFG_OUTPUT_LATCH_BIT2_HANDLER(OUTPUT("lamp2")) // left lamp C
MCFG_OUTPUT_LATCH_BIT4_HANDLER(OUTPUT("lamp3")) // right lamp A
MCFG_OUTPUT_LATCH_BIT5_HANDLER(OUTPUT("lamp4")) // right lamp B
MCFG_OUTPUT_LATCH_BIT6_HANDLER(OUTPUT("lamp5")) // right lamp C
MCFG_DEVICE_MODIFY("astrocade1")
MCFG_ASTROCADE_IO_SO4_STROBE_CB(WRITE8("outlatch", output_latch_device, write))
MCFG_ASTROCADE_IO_SO5_STROBE_CB(WRITE8("lamplatch", output_latch_device, write))
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(astrocde_state::demndrgn) MACHINE_CONFIG_START(astrocde_state::demndrgn)
astrocade_16color_base(config); astrocade_16color_base(config);
astrocade_mono_sound(config); // used only for I/O
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(demndrgn_map) MCFG_DEVICE_PROGRAM_MAP(demndrgn_map)
MCFG_DEVICE_IO_MAP(port_map_16col_pattern_nosound) MCFG_DEVICE_IO_MAP(port_map_16col_pattern_demndrgn)
MCFG_DEVICE_ADD("outlatch", OUTPUT_LATCH, 0)
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(*this, astrocde_state, coin_counter_w<0>))
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(*this, astrocde_state, coin_counter_w<1>))
MCFG_OUTPUT_LATCH_BIT2_HANDLER(OUTPUT("led0"))
MCFG_OUTPUT_LATCH_BIT3_HANDLER(OUTPUT("led1"))
MCFG_OUTPUT_LATCH_BIT4_HANDLER(WRITELINE(*this, astrocde_state, demndrgn_input_select_w))
MCFG_DEVICE_MODIFY("astrocade1")
MCFG_ASTROCADE_IO_SO4_STROBE_CB(WRITE8("outlatch", output_latch_device, write))
MCFG_ASTROCADE_IO_POT0("FIREX")
MCFG_ASTROCADE_IO_POT1("FIREY")
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1727,58 +1765,42 @@ ROM_END
DRIVER_INIT_MEMBER(astrocde_state,seawolf2) DRIVER_INIT_MEMBER(astrocde_state,seawolf2)
{ {
m_video_config = 0x00; m_video_config = 0x00;
m_maincpu->space(AS_IO).install_write_handler(0x40, 0x40, 0, 0xff18, 0, write8_delegate(FUNC(astrocde_state::seawolf2_sound_1_w), this));
m_maincpu->space(AS_IO).install_write_handler(0x41, 0x41, 0, 0xff18, 0, write8_delegate(FUNC(astrocde_state::seawolf2_sound_2_w), this));
m_maincpu->space(AS_IO).install_write_handler(0x42, 0x43, 0, 0xff18, 0, write8_delegate(FUNC(astrocde_state::seawolf2_lamps_w), this));
} }
DRIVER_INIT_MEMBER(astrocde_state,ebases) DRIVER_INIT_MEMBER(astrocde_state,ebases)
{ {
m_video_config = AC_SOUND_PRESENT | AC_MONITOR_BW; m_video_config = AC_SOUND_PRESENT | AC_MONITOR_BW;
m_maincpu->space(AS_IO).install_write_handler(0x20, 0x20, 0, 0xff07, 0, write8_delegate(FUNC(astrocde_state::ebases_coin_w), this));
m_maincpu->space(AS_IO).install_write_handler(0x28, 0x28, 0, 0xff07, 0, write8_delegate(FUNC(astrocde_state::ebases_trackball_select_w), this));
} }
DRIVER_INIT_MEMBER(astrocde_state,spacezap) DRIVER_INIT_MEMBER(astrocde_state,spacezap)
{ {
m_video_config = AC_SOUND_PRESENT | AC_MONITOR_BW; m_video_config = AC_SOUND_PRESENT | AC_MONITOR_BW;
m_maincpu->space(AS_IO).install_read_handler(0x13, 0x13, 0, 0xfc00, 0x0300, read8_delegate(FUNC(astrocde_state::spacezap_io_r), this));
} }
DRIVER_INIT_MEMBER(astrocde_state,wow) DRIVER_INIT_MEMBER(astrocde_state,wow)
{ {
m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS; m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS;
m_maincpu->space(AS_IO).install_read_handler(0x15, 0x15, 0, 0xf000, 0x0f00, read8_delegate(FUNC(astrocde_state::wow_io_r), this));
m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, 0, 0x0000, 0xff00, read8_delegate(FUNC(astrocde_state::votrax_speech_r), this));
} }
DRIVER_INIT_MEMBER(astrocde_state,gorf) DRIVER_INIT_MEMBER(astrocde_state,gorf)
{ {
m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS; m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS;
m_maincpu->space(AS_IO).install_read_handler(0x15, 0x15, 0, 0xf000, 0x0f00, read8_delegate(FUNC(astrocde_state::gorf_io_1_r), this));
m_maincpu->space(AS_IO).install_read_handler(0x16, 0x16, 0, 0xf000, 0x0f00, read8_delegate(FUNC(astrocde_state::gorf_io_2_r), this));
m_maincpu->space(AS_IO).install_read_handler(0x17, 0x17, 0, 0x0000, 0xff00, read8_delegate(FUNC(astrocde_state::votrax_speech_r), this));
} }
DRIVER_INIT_MEMBER(astrocde_state,robby) DRIVER_INIT_MEMBER(astrocde_state,robby)
{ {
m_video_config = AC_SOUND_PRESENT; m_video_config = AC_SOUND_PRESENT;
m_maincpu->space(AS_IO).install_read_handler(0x15, 0x15, 0, 0xf000, 0x0f00, read8_delegate(FUNC(astrocde_state::robby_io_r), this));
} }
DRIVER_INIT_MEMBER(astrocde_state,profpac) DRIVER_INIT_MEMBER(astrocde_state,profpac)
{ {
address_space &iospace = m_maincpu->space(AS_IO);
m_video_config = AC_SOUND_PRESENT; m_video_config = AC_SOUND_PRESENT;
iospace.install_read_handler(0x14, 0x14, 0, 0xf000, 0x0f00, read8_delegate(FUNC(astrocde_state::profpac_io_1_r), this));
iospace.install_read_handler(0x15, 0x15, 0, 0x8800, 0x7700, read8_delegate(FUNC(astrocde_state::profpac_io_2_r), this));
/* configure banking */ /* configure banking */
m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000); m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000);
@ -1788,13 +1810,7 @@ DRIVER_INIT_MEMBER(astrocde_state,profpac)
DRIVER_INIT_MEMBER(astrocde_state,demndrgn) DRIVER_INIT_MEMBER(astrocde_state,demndrgn)
{ {
address_space &iospace = m_maincpu->space(AS_IO);
m_video_config = 0x00; m_video_config = 0x00;
iospace.install_read_handler(0x14, 0x14, 0, 0xe000, 0x1f00, read8_delegate(FUNC(astrocde_state::demndrgn_io_r), this));
iospace.install_read_port(0x1c, 0x1c, 0xff00, "FIREX");
iospace.install_read_port(0x1d, 0x1d, 0xff00, "FIREY");
iospace.install_write_handler(0x97, 0x97, 0, 0xff00, 0x0000, write8_delegate(FUNC(astrocde_state::demndrgn_sound_w), this));
/* configure banking */ /* configure banking */
m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000); m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000);

View File

@ -29,14 +29,20 @@ public:
: astrocde_state(mconfig, type, tag) : astrocde_state(mconfig, type, tag)
, m_cart(*this, "cartslot") , m_cart(*this, "cartslot")
, m_exp(*this, "exp") , m_exp(*this, "exp")
, m_keypad(*this, "KEYPAD%u", 0U)
{ } { }
void astrocde(machine_config &config);
private:
DECLARE_READ8_MEMBER(inputs_r);
DECLARE_MACHINE_START(astrocde);
void astrocade_io(address_map &map);
void astrocade_mem(address_map &map);
required_device<astrocade_cart_slot_device> m_cart; required_device<astrocade_cart_slot_device> m_cart;
required_device<astrocade_exp_device> m_exp; required_device<astrocade_exp_device> m_exp;
DECLARE_MACHINE_START(astrocde); required_ioport_array<4> m_keypad;
void astrocde(machine_config &config);
void astrocade_io(address_map &map);
void astrocade_mem(address_map &map);
}; };
/********************************************************************************* /*********************************************************************************
@ -64,7 +70,10 @@ void astrocde_mess_state::astrocade_mem(address_map &map)
void astrocde_mess_state::astrocade_io(address_map &map) void astrocde_mess_state::astrocade_io(address_map &map)
{ {
map(0x00, 0x1f).select(0xff00).rw(this, FUNC(astrocde_mess_state::astrocade_data_chip_register_r), FUNC(astrocde_mess_state::astrocade_data_chip_register_w)); map(0x00, 0x0f).mirror(0xff00).rw(this, FUNC(astrocde_state::video_register_r), FUNC(astrocde_state::video_register_w));
map(0x10, 0x1f).select(0xff00).r("astrocade1", FUNC(astrocade_io_device::read));
map(0x10, 0x18).select(0xff00).w("astrocade1", FUNC(astrocade_io_device::write));
map(0x19, 0x19).mirror(0xff00).w(this, FUNC(astrocde_state::expand_register_w));
} }
/************************************* /*************************************
@ -90,6 +99,14 @@ void astrocde_mess_state::astrocade_io(address_map &map)
* *
*************************************/ *************************************/
READ8_MEMBER(astrocde_mess_state::inputs_r)
{
if (BIT(offset, 2))
return m_keypad[offset & 3]->read();
else
return m_handle[offset & 3]->read();
}
static INPUT_PORTS_START( astrocde ) static INPUT_PORTS_START( astrocde )
PORT_START("P1HANDLE") PORT_START("P1HANDLE")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY
@ -216,7 +233,12 @@ MACHINE_CONFIG_START(astrocde_mess_state::astrocde)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("astrocade1", ASTROCADE, ASTROCADE_CLOCK/4) MCFG_DEVICE_ADD("astrocade1", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_ASTROCADE_IO_SI_READ_CB(READ8(*this, astrocde_mess_state, inputs_r))
MCFG_ASTROCADE_IO_POT0("P1_KNOB")
MCFG_ASTROCADE_IO_POT1("P2_KNOB")
MCFG_ASTROCADE_IO_POT2("P3_KNOB")
MCFG_ASTROCADE_IO_POT3("P4_KNOB")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* expansion port */ /* expansion port */

View File

@ -325,8 +325,7 @@ MACHINE_CONFIG_START(binbug_state::binbug)
/* Cassette */ /* Cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* quickload */ /* quickload */
MCFG_QUICKLOAD_ADD("quickload", binbug_state, binbug, "pgm", 1) MCFG_QUICKLOAD_ADD("quickload", binbug_state, binbug, "pgm", 1)
@ -561,8 +560,7 @@ MACHINE_CONFIG_START(dg680_state::dg680)
/* Cassette */ /* Cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("z80ctc", Z80CTC, XTAL(8'000'000) / 4) MCFG_DEVICE_ADD("z80ctc", Z80CTC, XTAL(8'000'000) / 4)

View File

@ -184,8 +184,7 @@ MACHINE_CONFIG_START(bk_state::bk0010)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)

View File

@ -357,10 +357,8 @@ MACHINE_CONFIG_START(bmjr_state::bmjr)
/* Audio */ /* Audio */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200) // guesswork BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50); // guesswork
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -1014,10 +1014,8 @@ MACHINE_CONFIG_START(bml3_state::bml3_common)
/* Audio */ /* Audio */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* slot devices */ /* slot devices */
MCFG_DEVICE_ADD("bml3bus", BML3BUS, 0) MCFG_DEVICE_ADD("bml3bus", BML3BUS, 0)

View File

@ -279,8 +279,7 @@ MACHINE_CONFIG_START(c80_state::c80)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED ) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* internal ram */ /* internal ram */
MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_ADD(RAM_TAG)

View File

@ -851,8 +851,7 @@ MACHINE_CONFIG_START(camplynx_state::lynx_common)
MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.375) // unknown DAC MCFG_DEVICE_ADD("dac", DAC_6BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.375) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.02);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.02)
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(camplynx_state::lynx_disk) MACHINE_CONFIG_START(camplynx_state::lynx_disk)

View File

@ -316,10 +316,8 @@ MACHINE_CONFIG_START(cd2650_state::cd2650)
/* Sound */ /* Sound */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) BEEP(config, "beeper", 950).add_route(ALL_OUTPUTS, "mono", 0.50); // guess
MCFG_DEVICE_ADD("beeper", BEEP, 950) // guess
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)

View File

@ -390,11 +390,9 @@ MACHINE_CONFIG_START(coco_state::coco_sound)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
// Single-bit sound: R22 = 10K // Single-bit sound: R22 = 10K
MCFG_DEVICE_ADD("sbs", DAC_1BIT, 0) DAC_1BIT(config, "sbs", 0).add_route(ALL_OUTPUTS, "speaker", 0.125);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -37,8 +37,9 @@ class controlidx628_state : public driver_device
{ {
public: public:
controlidx628_state(const machine_config &mconfig, device_type type, const char *tag) controlidx628_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag)
m_lcdc(*this, "nt7534") { } , m_lcdc(*this, "nt7534")
{ }
void controlidx628(machine_config &config); void controlidx628(machine_config &config);
private: private:
@ -113,26 +114,26 @@ PALETTE_INIT_MEMBER(controlidx628_state, controlidx628)
MACHINE_CONFIG_START(controlidx628_state::controlidx628) MACHINE_CONFIG_START(controlidx628_state::controlidx628)
// basic machine hardware // basic machine hardware
MCFG_DEVICE_ADD("maincpu", I80C32, XTAL(11'059'200)) /* Actually the board has an Atmel AT89S52 mcu. */ MCFG_DEVICE_ADD("maincpu", I80C32, XTAL(11'059'200)) // Actually the board has an Atmel AT89S52 MCU.
MCFG_DEVICE_PROGRAM_MAP(prog_map) MCFG_DEVICE_PROGRAM_MAP(prog_map)
MCFG_DEVICE_IO_MAP(io_map) MCFG_DEVICE_IO_MAP(io_map)
MCFG_MCS51_PORT_P0_OUT_CB(WRITE8(*this, controlidx628_state, p0_w)) MCFG_MCS51_PORT_P0_OUT_CB(WRITE8(*this, controlidx628_state, p0_w))
MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, controlidx628_state, p1_w)) MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, controlidx628_state, p1_w))
MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, controlidx628_state, p3_w)) MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, controlidx628_state, p3_w))
/* video hardware */ // video hardware
MCFG_SCREEN_ADD("screen", LCD) MCFG_SCREEN_ADD("screen", LCD)
MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
MCFG_SCREEN_SIZE(132, 65) MCFG_SCREEN_SIZE(132, 65)
MCFG_SCREEN_VISIBLE_AREA(3, 130, 0, 63) MCFG_SCREEN_VISIBLE_AREA(3, 130, 0, 63)
MCFG_SCREEN_UPDATE_DEVICE("nt7534", nt7534_device, screen_update) MCFG_SCREEN_UPDATE_DEVICE("nt7534", nt7534_device, screen_update)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 2) MCFG_PALETTE_ADD("palette", 2)
MCFG_PALETTE_INIT_OWNER(controlidx628_state, controlidx628) MCFG_PALETTE_INIT_OWNER(controlidx628_state, controlidx628)
MCFG_NT7534_ADD("nt7534") NT7534(config, m_lcdc);
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -768,8 +768,7 @@ MACHINE_CONFIG_START(crvision_state::creativision)
MCFG_SN76496_READY_HANDLER(WRITELINE(PIA6821_TAG, pia6821_device, cb1_w)) MCFG_SN76496_READY_HANDLER(WRITELINE(PIA6821_TAG, pia6821_device, cb1_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(1, "mono", 0.25);
MCFG_SOUND_ROUTE(1, "mono", 0.25)
// cartridge // cartridge
MCFG_CRVISION_CARTRIDGE_ADD("cartslot", crvision_cart, nullptr) MCFG_CRVISION_CARTRIDGE_ADD("cartslot", crvision_cart, nullptr)
@ -852,8 +851,7 @@ MACHINE_CONFIG_START(laser2001_state::lasr2001)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(1, "mono", 0.25);
MCFG_SOUND_ROUTE(1, "mono", 0.25)
// cartridge // cartridge
MCFG_CRVISION_CARTRIDGE_ADD("cartslot", crvision_cart, nullptr) MCFG_CRVISION_CARTRIDGE_ADD("cartslot", crvision_cart, nullptr)

View File

@ -402,10 +402,8 @@ MACHINE_CONFIG_START(d6800_state::d6800)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("beeper", BEEP, 1200)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* devices */ /* devices */
MCFG_DEVICE_ADD("pia", PIA6821, 0) MCFG_DEVICE_ADD("pia", PIA6821, 0)

View File

@ -221,13 +221,10 @@ MACHINE_CONFIG_START(dai_state::dai)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right(); SPEAKER(config, "rspeaker").front_right();
MCFG_DEVICE_ADD("custom", DAI_SOUND) DAI_SOUND(config, "custom").add_route(0, "lspeaker", 0.50).add_route(1, "rspeaker", 0.50);
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -244,13 +244,11 @@ MACHINE_CONFIG_START(dauphin_state::dauphin)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_TIMER_DRIVER_ADD_PERIODIC("dauphin_c", dauphin_state, dauphin_c, attotime::from_hz(4000)) MCFG_TIMER_DRIVER_ADD_PERIODIC("dauphin_c", dauphin_state, dauphin_c, attotime::from_hz(4000))
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -614,10 +614,8 @@ MACHINE_CONFIG_START(elwro800_state::elwro800)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(tzx_cassette_formats) MCFG_CASSETTE_FORMATS(tzx_cassette_formats)

View File

@ -251,8 +251,7 @@ MACHINE_CONFIG_START(et3400_state::et3400)
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -576,10 +576,8 @@ MACHINE_CONFIG_START(excali64_state::excali64)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
/* Video hardware */ /* Video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -530,8 +530,7 @@ MACHINE_CONFIG_START(fc100_state::fc100)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("psg", AY8910, XTAL(7'159'090)/3/2) /* AY-3-8910 - clock not verified */ MCFG_DEVICE_ADD("psg", AY8910, XTAL(7'159'090)/3/2) /* AY-3-8910 - clock not verified */
MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY0")) MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY0"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("JOY1")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("JOY1"))

View File

@ -2081,10 +2081,8 @@ MACHINE_CONFIG_START(fm7_state::fm7)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("psg", AY8910, XTAL(4'915'200) / 4) MCFG_DEVICE_ADD("psg", AY8910, XTAL(4'915'200) / 4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 1.00)
MCFG_DEVICE_ADD("beeper", BEEP, 1200) BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.25)
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7)
@ -2134,10 +2132,8 @@ MACHINE_CONFIG_START(fm7_state::fm8)
MCFG_QUANTUM_PERFECT_CPU("sub") MCFG_QUANTUM_PERFECT_CPU("sub")
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200) BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7)
@ -2187,10 +2183,8 @@ MACHINE_CONFIG_START(fm7_state::fm77av)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, fm7_state, fm77av_joy_1_r)) MCFG_AY8910_PORT_A_READ_CB(READ8(*this, fm7_state, fm77av_joy_1_r))
MCFG_AY8910_PORT_B_READ_CB(READ8(*this, fm7_state, fm77av_joy_2_r)) MCFG_AY8910_PORT_B_READ_CB(READ8(*this, fm7_state, fm77av_joy_2_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",1.0)
MCFG_DEVICE_ADD("beeper", BEEP, 1200) BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm77av) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm77av)
@ -2262,10 +2256,8 @@ MACHINE_CONFIG_START(fm7_state::fm11)
MCFG_DEVICE_IO_MAP(fm11_x86_io) MCFG_DEVICE_IO_MAP(fm11_x86_io)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200) BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm11) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm11)
@ -2327,10 +2319,8 @@ MACHINE_CONFIG_START(fm7_state::fm16beta)
MCFG_QUANTUM_PERFECT_CPU("sub") MCFG_QUANTUM_PERFECT_CPU("sub")
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200) BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm16) MCFG_MACHINE_START_OVERRIDE(fm7_state,fm16)

View File

@ -96,7 +96,7 @@ void g627_state::io_map(address_map &map)
map.global_mask(0xff); map.global_mask(0xff);
map(0x00, 0x02).w(this, FUNC(g627_state::disp_w)); map(0x00, 0x02).w(this, FUNC(g627_state::disp_w));
map(0x03, 0x07).w(this, FUNC(g627_state::lamp_w)); map(0x03, 0x07).w(this, FUNC(g627_state::lamp_w));
map(0x10, 0x17).w("astrocade", FUNC(astrocade_device::astrocade_sound_w)); map(0x10, 0x17).w("astrocade", FUNC(astrocade_io_device::write));
map(0x20, 0x27).rw("i8156", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w)); map(0x20, 0x27).rw("i8156", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
} }
@ -311,7 +311,7 @@ MACHINE_CONFIG_START(g627_state::g627)
/* Sound */ /* Sound */
genpin_audio(config); genpin_audio(config);
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("astrocade", ASTROCADE, 14138000/8) // 0066-117XX audio chip MCFG_DEVICE_ADD("astrocade", ASTROCADE_IO, 14138000/8) // 0066-117XX audio chip
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* Video */ /* Video */

View File

@ -201,8 +201,7 @@ MACHINE_CONFIG_START(galaxy_state::galaxy)
MCFG_SNAPSHOT_ADD("snapshot", galaxy_state, galaxy, "gal", 0) MCFG_SNAPSHOT_ADD("snapshot", galaxy_state, galaxy, "gal", 0)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(gtp_cassette_formats) MCFG_CASSETTE_FORMATS(gtp_cassette_formats)
@ -244,9 +243,8 @@ MACHINE_CONFIG_START(galaxy_state::galaxyp)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL/4) MCFG_DEVICE_ADD("ay8910", AY8910, XTAL/4) // FIXME: really no output routes for this AY?
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(gtp_cassette_formats) MCFG_CASSETTE_FORMATS(gtp_cassette_formats)

View File

@ -323,10 +323,8 @@ MACHINE_CONFIG_START(h8_state::h8)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, H8_BEEP_FRQ) BEEP(config, "beeper", H8_BEEP_FRQ).add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("uart", I8251, 0) MCFG_DEVICE_ADD("uart", I8251, 0)

View File

@ -770,8 +770,7 @@ MACHINE_CONFIG_START(homelab_state::homelab)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2) MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2)
@ -803,8 +802,7 @@ MACHINE_CONFIG_START(homelab_state::homelab3)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2) MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2)
@ -836,8 +834,7 @@ MACHINE_CONFIG_START(homelab_state::brailab4)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("mea8000", MEA8000, 3840000) MCFG_DEVICE_ADD("mea8000", MEA8000, 3840000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)

View File

@ -437,8 +437,7 @@ MACHINE_CONFIG_START(instruct_state::instruct)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -393,10 +393,8 @@ MACHINE_CONFIG_START(jr100_state::jr100)
MCFG_VIA6522_CB2_HANDLER(WRITELINE(*this, jr100_state, jr100_via_write_cb2)) MCFG_VIA6522_CB2_HANDLER(WRITELINE(*this, jr100_state, jr100_via_write_cb2))
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_DEVICE_ADD("beeper", BEEP, 0) MCFG_DEVICE_ADD("beeper", BEEP, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)

View File

@ -735,11 +735,9 @@ MACHINE_CONFIG_START(jtc_state::basic)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(1, "mono", 0.25);
MCFG_SOUND_ROUTE(1, "mono", 0.25)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")

View File

@ -773,10 +773,8 @@ MACHINE_CONFIG_START(ace_state::ace)
// sound hardware // sound hardware
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_DEVICE_ADD(AY8910_TAG, AY8910, XTAL(6'500'000)/2) MCFG_DEVICE_ADD(AY8910_TAG, AY8910, XTAL(6'500'000)/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)

View File

@ -134,10 +134,8 @@ MACHINE_CONFIG_START(kc_state::kc85_3)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* devices */ /* devices */
MCFG_QUICKLOAD_ADD("quickload", kc_state, kc, "kcc", 2) MCFG_QUICKLOAD_ADD("quickload", kc_state, kc, "kcc", 2)
@ -218,10 +216,8 @@ MACHINE_CONFIG_START(kc85_4_state::kc85_4)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* devices */ /* devices */
MCFG_QUICKLOAD_ADD("quickload", kc_state, kc, "kcc", 2) MCFG_QUICKLOAD_ADD("quickload", kc_state, kc, "kcc", 2)

View File

@ -294,8 +294,7 @@ MACHINE_CONFIG_START(lola8a_state::lola8a)
/* Cassette */ /* Cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -460,10 +460,8 @@ MACHINE_CONFIG_START(lviv_state::lviv)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* snapshot */ /* snapshot */
MCFG_SNAPSHOT_ADD("snapshot", lviv_state, lviv, "sav", 0) MCFG_SNAPSHOT_ADD("snapshot", lviv_state, lviv, "sav", 0)

View File

@ -677,10 +677,8 @@ MACHINE_CONFIG_START(mbee_state::mbee)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* devices */ /* devices */
MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL(12'000'000) / 8) MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL(12'000'000) / 8)
@ -736,10 +734,8 @@ MACHINE_CONFIG_START(mbee_state::mbeeic)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* devices */ /* devices */
MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8) MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8)

View File

@ -297,9 +297,8 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", mc1502_isa8_cards, "rom", false) MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", mc1502_isa8_cards, "rom", false)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette"); // FIXME: really no output routes for the cassette sound?
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6)) MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6))

View File

@ -382,8 +382,7 @@ MACHINE_CONFIG_START(mekd2_state::mekd2)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")

View File

@ -232,8 +232,7 @@ MACHINE_CONFIG_START(microtan_state::microtan)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("ay8910.1", AY8910, 1000000) MCFG_DEVICE_ADD("ay8910.1", AY8910, 1000000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MCFG_DEVICE_ADD("ay8910.2", AY8910, 1000000) MCFG_DEVICE_ADD("ay8910.2", AY8910, 1000000)

View File

@ -188,8 +188,7 @@ MACHINE_CONFIG_START(mikro80_state::mikro80)
MCFG_PALETTE_ADD_MONOCHROME("palette") MCFG_PALETTE_ADD_MONOCHROME("palette")
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(rk8_cassette_formats) MCFG_CASSETTE_FORMATS(rk8_cassette_formats)

View File

@ -245,8 +245,7 @@ MACHINE_CONFIG_START(mikrosha_state::mikrosha)
MCFG_PALETTE_INIT_OWNER(mikrosha_state,radio86) MCFG_PALETTE_INIT_OWNER(mikrosha_state,radio86)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9) MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, radio86_state, hrq_w)) MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, radio86_state, hrq_w))

View File

@ -211,8 +211,7 @@ MACHINE_CONFIG_START(mk14_state::mk14)
// sound // sound
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05)
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("dac8", ZN425E, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // Ferranti ZN425E MCFG_DEVICE_ADD("dac8", ZN425E, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // Ferranti ZN425E
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)

View File

@ -205,8 +205,7 @@ MACHINE_CONFIG_START(mkit09_state::mkit09)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("pia", PIA6821, 0) MCFG_DEVICE_ADD("pia", PIA6821, 0)
@ -230,8 +229,7 @@ MACHINE_CONFIG_START(mkit09_state::mkit09a)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("pia", PIA6821, 0) MCFG_DEVICE_ADD("pia", PIA6821, 0)

View File

@ -1365,8 +1365,7 @@ MACHINE_CONFIG_START(msx_state::msx)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(10'738'635)/3/2) MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(10'738'635)/3/2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, msx_state, msx_psg_port_a_r)) MCFG_AY8910_PORT_A_READ_CB(READ8(*this, msx_state, msx_psg_port_a_r))
@ -1518,8 +1517,7 @@ MACHINE_CONFIG_START(msx_state::msx2)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(21'477'272)/6/2) MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(21'477'272)/6/2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, msx_state, msx_psg_port_a_r)) MCFG_AY8910_PORT_A_READ_CB(READ8(*this, msx_state, msx_psg_port_a_r))
@ -1576,8 +1574,7 @@ MACHINE_CONFIG_START(msx_state::msx2p)
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(21'477'272)/6/2) MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(21'477'272)/6/2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, msx_state, msx_psg_port_a_r)) MCFG_AY8910_PORT_A_READ_CB(READ8(*this, msx_state, msx_psg_port_a_r))

View File

@ -543,8 +543,7 @@ MACHINE_CONFIG_START(mycom_state::mycom)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("sn1", SN76489, XTAL(10'000'000) / 4) MCFG_DEVICE_ADD("sn1", SN76489, XTAL(10'000'000) / 4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50)

View File

@ -927,11 +927,9 @@ MACHINE_CONFIG_START(mz2000_state::mz2000)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("beeper", BEEP, 4096) BEEP(config, "beeper", 4096).add_route(ALL_OUTPUTS,"mono",0.15);
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15)
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(mz2000_state::mz80b) MACHINE_CONFIG_START(mz2000_state::mz80b)

View File

@ -398,10 +398,8 @@ MACHINE_CONFIG_START(mz_state::mz700)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* ne556 timers */ /* ne556 timers */
MCFG_TIMER_DRIVER_ADD_PERIODIC("cursor", mz_state, ne556_cursor_callback, attotime::from_hz(1.5)) MCFG_TIMER_DRIVER_ADD_PERIODIC("cursor", mz_state, ne556_cursor_callback, attotime::from_hz(1.5))

View File

@ -298,10 +298,8 @@ MACHINE_CONFIG_START(mz80_state::mz80k)
/* Audio */ /* Audio */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("ppi8255", I8255, 0) MCFG_DEVICE_ADD("ppi8255", I8255, 0)

View File

@ -3810,8 +3810,8 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(namcos22_state::cybrcomm) MACHINE_CONFIG_START(namcos22_state::cybrcomm)
namcos22(config); namcos22(config);
SPEAKER(config, "rear_left").front_left(); SPEAKER(config, "rear_left", -0.2, 0.0, -0.5);
SPEAKER(config, "rear_right").front_right(); SPEAKER(config, "rear_right", 0.2, 0.0, -0.5);
MCFG_DEVICE_MODIFY("c352") MCFG_DEVICE_MODIFY("c352")
MCFG_SOUND_ROUTE(2, "rear_left", 1.00) MCFG_SOUND_ROUTE(2, "rear_left", 1.00)
@ -3933,8 +3933,8 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(namcos22_state::tokyowar) MACHINE_CONFIG_START(namcos22_state::tokyowar)
namcos22s(config); namcos22s(config);
SPEAKER(config, "seat").front_center(); SPEAKER(config, "seat", 0.0, 0.0, 0.0);
SPEAKER(config, "vibration").front_center(); SPEAKER(config, "vibration", 0.0, 0.0, 0.0);
MCFG_DEVICE_MODIFY("c352") MCFG_DEVICE_MODIFY("c352")
MCFG_SOUND_ROUTE(3, "seat", 1.00) MCFG_SOUND_ROUTE(3, "seat", 1.00)

View File

@ -142,8 +142,7 @@ MACHINE_CONFIG_START(ondra_state::ondra)
// sound hardware // sound hardware
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)

View File

@ -189,10 +189,8 @@ MACHINE_CONFIG_START(orao_state::orao)
/* audio hardware */ /* audio hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette") MCFG_CASSETTE_ADD( "cassette")
MCFG_CASSETTE_FORMATS(orao_cassette_formats) MCFG_CASSETTE_FORMATS(orao_cassette_formats)

View File

@ -790,8 +790,7 @@ MACHINE_CONFIG_START(oric_state::oric)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("ay8912", AY8912, XTAL(12'000'000)/12) MCFG_DEVICE_ADD("ay8912", AY8912, XTAL(12'000'000)/12)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT) MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(4700, 4700, 4700) MCFG_AY8910_RES_LOADS(4700, 4700, 4700)

View File

@ -126,8 +126,7 @@ MACHINE_CONFIG_START(orion_state::orion128)
MCFG_VIDEO_START_OVERRIDE(orion_state,orion128) MCFG_VIDEO_START_OVERRIDE(orion_state,orion128)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(rko_cassette_formats) MCFG_CASSETTE_FORMATS(rko_cassette_formats)
@ -202,10 +201,8 @@ MACHINE_CONFIG_START(orion_state::orionz80)
MCFG_MC146818_ADD( "rtc", XTAL(4'194'304) ) MCFG_MC146818_ADD( "rtc", XTAL(4'194'304) )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("ay8912", AY8912, 1773400) MCFG_DEVICE_ADD("ay8912", AY8912, 1773400)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
@ -278,10 +275,8 @@ MACHINE_CONFIG_START(orion_state::orionpro)
MCFG_VIDEO_START_OVERRIDE(orion_state,orion128) MCFG_VIDEO_START_OVERRIDE(orion_state,orion128)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("ay8912", AY8912, 1773400) MCFG_DEVICE_ADD("ay8912", AY8912, 1773400)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)

View File

@ -199,8 +199,7 @@ MACHINE_CONFIG_START(partner_state::partner)
MCFG_PALETTE_INIT_OWNER(partner_state,radio86) MCFG_PALETTE_INIT_OWNER(partner_state,radio86)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9) MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, partner_state, hrq_w)) MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, partner_state, hrq_w))

View File

@ -1529,8 +1529,7 @@ MACHINE_CONFIG_START(pc6001_state::pc6001)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1")) MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
// MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") // WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* TODO: accurate timing on this */ /* TODO: accurate timing on this */
MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", pc6001_state, keyboard_callback, attotime::from_hz(250)) MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", pc6001_state, keyboard_callback, attotime::from_hz(250))

View File

@ -274,10 +274,8 @@ MACHINE_CONFIG_START(pcm_state::pcm)
/* Sound */ /* Sound */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* Devices */ /* Devices */
MCFG_K7659_KEYBOARD_ADD() MCFG_K7659_KEYBOARD_ADD()

View File

@ -504,8 +504,7 @@ MACHINE_CONFIG_START(pegasus_state::pegasus)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
/* devices */ /* devices */
MCFG_DEVICE_ADD("pia_s", PIA6821, 0) MCFG_DEVICE_ADD("pia_s", PIA6821, 0)

View File

@ -324,8 +324,7 @@ MACHINE_CONFIG_START(pencil2_state::pencil2)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(10'738'635)/3) // guess MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(10'738'635)/3) // guess
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -320,8 +320,7 @@ MACHINE_CONFIG_START(phc25_state::phc25)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY0")) MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY0"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("JOY1")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("JOY1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
/* devices */ /* devices */
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")

View File

@ -364,10 +364,8 @@ MACHINE_CONFIG_START(phunsy_state::phunsy)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)

View File

@ -390,10 +390,8 @@ MACHINE_CONFIG_START(pk8000_state::pk8000)
/* audio hardware */ /* audio hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(fmsx_cassette_formats) MCFG_CASSETTE_FORMATS(fmsx_cassette_formats)

View File

@ -235,10 +235,8 @@ MACHINE_CONFIG_START(pk8020_state::pk8020)
/* audio hardware */ /* audio hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY)

View File

@ -626,8 +626,7 @@ MACHINE_CONFIG_START(pmd85_state::pmd85)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")

View File

@ -218,8 +218,7 @@ MACHINE_CONFIG_START(poly88_state::poly88)
/* audio hardware */ /* audio hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -220,10 +220,8 @@ MACHINE_CONFIG_START(pp01_state::pp01)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) //WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
//MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
//MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("uart", I8251, 0) MCFG_DEVICE_ADD("uart", I8251, 0)

View File

@ -265,10 +265,8 @@ MACHINE_CONFIG_START(primo_state::primoa32)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* snapshot/quickload */ /* snapshot/quickload */
MCFG_SNAPSHOT_ADD("snapshot", primo_state, primo, "pss", 0) MCFG_SNAPSHOT_ADD("snapshot", primo_state, primo, "pss", 0)

View File

@ -184,8 +184,7 @@ MACHINE_CONFIG_START(pro80_state::pro80)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
/* Devices */ /* Devices */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -407,8 +407,7 @@ MACHINE_CONFIG_START(proteus3_state::proteus3)
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", proteus3_state, timer_c, attotime::from_hz(4800)) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", proteus3_state, timer_c, attotime::from_hz(4800))
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", proteus3_state, timer_p, attotime::from_hz(40000)) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", proteus3_state, timer_p, attotime::from_hz(40000))

View File

@ -733,12 +733,9 @@ MACHINE_CONFIG_START(sol20_state::sol20)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 2.00); // music board
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.00) // music board WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05); // cass1 speaker
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave2", "cassette2").add_route(ALL_OUTPUTS, "mono", 0.05); // cass2 speaker
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) // cass1 speaker
MCFG_SOUND_WAVE_ADD(WAVE2_TAG, "cassette2")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) // cass2 speaker
// devices // devices
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")

View File

@ -404,8 +404,7 @@ MACHINE_CONFIG_START(pv2000_state::pv2000)
MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(7'159'090)/2) /* 3.579545 MHz */ MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(7'159'090)/2) /* 3.579545 MHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -780,8 +780,7 @@ MACHINE_CONFIG_START(px8_state::px8)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(0, "mono", 0.25);
MCFG_SOUND_ROUTE(0, "mono", 0.25)
/* cartridge */ /* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px8_cart") MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px8_cart")

View File

@ -380,8 +380,7 @@ MACHINE_CONFIG_START(radio86_state::radio86)
MCFG_PALETTE_INIT_OWNER(radio86_state,radio86) MCFG_PALETTE_INIT_OWNER(radio86_state,radio86)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9) MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, radio86_state, hrq_w)) MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, radio86_state, hrq_w))

View File

@ -353,8 +353,7 @@ MACHINE_CONFIG_START(ravens_state::ravens)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(ravens_state::ravens2) MACHINE_CONFIG_START(ravens_state::ravens2)
@ -377,8 +376,7 @@ MACHINE_CONFIG_START(ravens_state::ravens2)
/* cassette */ /* cassette */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -504,8 +504,7 @@ MACHINE_CONFIG_START(rx78_state::rx78)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(28'636'363)/8) // unknown divider MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(28'636'363)/8) // unknown divider
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)

View File

@ -436,10 +436,8 @@ MACHINE_CONFIG_START(sorcerer_state::sorcerer)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05); // cass1 speaker
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) // cass1 speaker WAVE(config, "wave2", "cassette2").add_route(ALL_OUTPUTS, "mono", 0.05); // cass2 speaker
MCFG_SOUND_WAVE_ADD(WAVE2_TAG, "cassette2")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) // cass2 speaker
MCFG_DEVICE_ADD( "uart", AY31015, 0 ) MCFG_DEVICE_ADD( "uart", AY31015, 0 )
MCFG_AY31015_TX_CLOCK(ES_UART_CLOCK) MCFG_AY31015_TX_CLOCK(ES_UART_CLOCK)

View File

@ -486,8 +486,7 @@ MACHINE_CONFIG_START(spc1000_state::spc1000)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, spc1000_state, porta_r)) MCFG_AY8910_PORT_A_READ_CB(READ8(*this, spc1000_state, porta_r))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8("cent_data_out", output_latch_device, write)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8("cent_data_out", output_latch_device, write))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("ext1", SPC1000_EXP_SLOT, 0) MCFG_DEVICE_ADD("ext1", SPC1000_EXP_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(spc1000_exp, nullptr, false) MCFG_DEVICE_SLOT_INTERFACE(spc1000_exp, nullptr, false)

View File

@ -911,8 +911,7 @@ MACHINE_CONFIG_START(spc1500_state::spc1500)
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, spc1500_state, psga_r)) MCFG_AY8910_PORT_A_READ_CB(READ8(*this, spc1500_state, psga_r))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, spc1500_state, psgb_w)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, spc1500_state, psgb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, spc1500_state, centronics_busy_w)) MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, spc1500_state, centronics_busy_w))

View File

@ -384,12 +384,11 @@ MACHINE_CONFIG_START(special_state::special)
/* audio hardware */ /* audio hardware */
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.0625);
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("ppi8255", I8255, 0) MCFG_DEVICE_ADD("ppi8255", I8255, 0)
@ -506,12 +505,11 @@ MACHINE_CONFIG_START(special_state::erik)
/* audio hardware */ /* audio hardware */
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
MCFG_DEVICE_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.0625);
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
/* Devices */ /* Devices */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -693,10 +693,8 @@ MACHINE_CONFIG_START(spectrum_state::spectrum_common)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* expansion port */ /* expansion port */
MCFG_SPECTRUM_EXPANSION_SLOT_ADD("exp", spectrum_expansion_devices, "kempjoy") MCFG_SPECTRUM_EXPANSION_SLOT_ADD("exp", spectrum_expansion_devices, "kempjoy")

View File

@ -733,10 +733,8 @@ MACHINE_CONFIG_START(super80_state::super80)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("samples", SAMPLES) MCFG_DEVICE_ADD("samples", SAMPLES)
MCFG_SAMPLES_CHANNELS(1) MCFG_SAMPLES_CHANNELS(1)
MCFG_SAMPLES_NAMES(relay_sample_names) MCFG_SAMPLES_NAMES(relay_sample_names)
@ -827,10 +825,8 @@ MACHINE_CONFIG_START(super80_state::super80v)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("samples", SAMPLES) MCFG_DEVICE_ADD("samples", SAMPLES)
MCFG_SAMPLES_CHANNELS(1) MCFG_SAMPLES_CHANNELS(1)
MCFG_SAMPLES_NAMES(relay_sample_names) MCFG_SAMPLES_NAMES(relay_sample_names)

View File

@ -557,10 +557,8 @@ MACHINE_CONFIG_START(svi3x8_state::svi318)
// sound hardware // sound hardware
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("psg", AY8910, XTAL(10'738'635) / 6) MCFG_DEVICE_ADD("psg", AY8910, XTAL(10'738'635) / 6)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY")) MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY"))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, svi3x8_state, bank_w)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, svi3x8_state, bank_w))

View File

@ -301,8 +301,7 @@ MACHINE_CONFIG_START(tavernie_state::cpu09)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
/* Devices */ /* Devices */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -89,7 +89,7 @@ public:
, m_maincpu(*this, "maincpu") , m_maincpu(*this, "maincpu")
, m_speaker(*this, "speaker") , m_speaker(*this, "speaker")
, m_cass(*this, "cassette") , m_cass(*this, "cassette")
, m_wave(*this, WAVE_TAG) , m_wave(*this, "wave")
, m_key_pressed(0) , m_key_pressed(0)
, m_io_line0(*this, "LINE0") , m_io_line0(*this, "LINE0")
, m_io_line1(*this, "LINE1") , m_io_line1(*this, "LINE1")
@ -441,10 +441,8 @@ MACHINE_CONFIG_START(tec1_state::tecjmon)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
/* Devices */ /* Devices */
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )

View File

@ -1038,8 +1038,7 @@ MACHINE_CONFIG_START(ti99_4p_state::ti99_4p_60hz)
SPEAKER(config, "cass_out").front_center(); SPEAKER(config, "cass_out").front_center();
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "cass_out", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "cass_out", 0.25)
// Joystick port // Joystick port
MCFG_TI_JOYPORT4A_ADD( TI_JOYPORT_TAG ) MCFG_TI_JOYPORT4A_ADD( TI_JOYPORT_TAG )

View File

@ -900,8 +900,7 @@ MACHINE_CONFIG_START(ti99_4x_state::ti99_4)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_ADD( "cassette2" ) MCFG_CASSETTE_ADD( "cassette2" )
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "cass_out", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "cass_out", 0.25)
// GROM devices // GROM devices
MCFG_GROM_ADD( TI99_GROM0_TAG, 0, TI99_CONSOLEGROM, 0x0000, WRITELINE(*this, ti99_4x_state, console_ready_grom)) MCFG_GROM_ADD( TI99_GROM0_TAG, 0, TI99_CONSOLEGROM, 0x0000, WRITELINE(*this, ti99_4x_state, console_ready_grom))
@ -1019,8 +1018,7 @@ MACHINE_CONFIG_START(ti99_4x_state::ti99_4a)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_ADD( "cassette2" ) MCFG_CASSETTE_ADD( "cassette2" )
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "cass_out", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "cass_out", 0.25)
// GROM devices // GROM devices
MCFG_GROM_ADD( TI99_GROM0_TAG, 0, TI99_CONSOLEGROM, 0x0000, WRITELINE(*this, ti99_4x_state, console_ready_grom)) MCFG_GROM_ADD( TI99_GROM0_TAG, 0, TI99_CONSOLEGROM, 0x0000, WRITELINE(*this, ti99_4x_state, console_ready_grom))
@ -1176,8 +1174,7 @@ MACHINE_CONFIG_START(ti99_4x_state::ti99_4ev_60hz)
MCFG_CASSETTE_ADD( "cassette" ) MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_ADD( "cassette2" ) MCFG_CASSETTE_ADD( "cassette2" )
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "cass_out", 0.25);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "cass_out", 0.25)
// GROM devices // GROM devices
MCFG_GROM_ADD( TI99_GROM0_TAG, 0, TI99_CONSOLEGROM, 0x0000, WRITELINE(*this, ti99_4x_state, console_ready_grom)) MCFG_GROM_ADD( TI99_GROM0_TAG, 0, TI99_CONSOLEGROM, 0x0000, WRITELINE(*this, ti99_4x_state, console_ready_grom))

Some files were not shown because too many files have changed in this diff Show More