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["BANKDEV"] = true
MACHINES["GEN_LATCH"] = true
MACHINES["OUTPUT_LATCH"] = true
MACHINES["TICKET"] = 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))
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "mono", 0.25);
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_ADD(m_cassette)
MCFG_CASSETTE_FORMATS(tzx_cassette_formats)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)
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_INTERFACE("a2600_cass")
// MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
// MCFG_SOUND_WAVE_ADD("wave", "cassette")
// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END

View File

@ -39,6 +39,19 @@
Register 7:
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"
@ -46,7 +59,7 @@
// 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)
: device_t(mconfig, ASTROCADE, tag, owner, clock),
device_sound_interface(mconfig, *this),
m_stream(nullptr),
m_master_count(0),
m_vibrato_clock(0),
m_noise_clock(0),
m_noise_state(0),
m_a_count(0),
m_a_state(0),
m_b_count(0),
m_b_state(0),
m_c_count(0),
m_c_state(0)
astrocade_io_device::astrocade_io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ASTROCADE_IO, tag, owner, clock)
, device_sound_interface(mconfig, *this)
, m_stream(nullptr)
, m_master_count(0)
, m_vibrato_clock(0)
, m_noise_clock(0)
, m_noise_state(0)
, m_a_count(0)
, m_a_state(0)
, m_b_count(0)
, m_b_state(0)
, m_c_count(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_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
//-------------------------------------------------
void astrocade_device::device_start()
void astrocade_io_device::device_start()
{
int i;
/* 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);
/* allocate a stream for output */
@ -102,7 +130,7 @@ void astrocade_device::device_start()
// 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];
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
//-------------------------------------------------
void astrocade_device::device_reset()
void astrocade_io_device::device_reset()
{
memset(m_reg, 0, sizeof(m_reg));
@ -243,7 +271,7 @@ void astrocade_device::device_reset()
// Save state registration
//-------------------------------------------------
void astrocade_device::state_save_register()
void astrocade_io_device::state_save_register()
{
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)
offset = (offset >> 8) & 7;
@ -283,3 +311,19 @@ WRITE8_MEMBER( astrocade_device::astrocade_sound_w )
/* stash the new register value */
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
// 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
#define MAME_SOUND_ASTROCDE_H
@ -10,11 +39,44 @@
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_ASTROCADE_ADD(tag, clock) \
MCFG_DEVICE_ADD((tag), ASTROCADE, (clock))
#define MCFG_ASTROCADE_IO_SI_READ_CB(_devcb) \
devcb = &downcast<astrocade_io_device &>(*device).set_si_callback(DEVCB_##_devcb);
#define MCFG_ASTROCADE_REPLACE(tag, clock) \
MCFG_DEVICE_REPLACE((tag), ASTROCADE, (clock))
#define MCFG_ASTROCADE_IO_SO0_STROBE_CB(_devcb) \
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
//**************************************************************************
// ======================> 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:
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:
// device-level overrides
virtual void device_resolve_objects() override;
virtual void device_start() 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;
public:
DECLARE_WRITE8_MEMBER( astrocade_sound_w );
DECLARE_WRITE8_MEMBER(write);
DECLARE_READ8_MEMBER(read);
private:
void state_save_register();
@ -63,8 +132,12 @@ private:
uint8_t m_c_state; /* current tone generator C state */
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

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)
: device_t(mconfig, WAVE, tag, owner, clock)
, device_sound_interface(mconfig, *this)
, m_cassette_tag(nullptr)
, m_cass(nullptr)
, m_cass(*this, finder_base::DUMMY_TAG)
{
}
@ -47,7 +46,6 @@ void wave_device::device_start()
machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate());
else
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
{
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:
// 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;
private:
const char *m_cassette_tag;
cassette_image_device *m_cass;
required_device<cassette_image_device> m_cass;
};
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

View File

@ -12,9 +12,6 @@
#pragma once
#define MCFG_NT7534_ADD( _tag ) \
MCFG_DEVICE_ADD( _tag, NT7534, 0 )
#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));
@ -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;
// 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); }

View File

@ -586,10 +586,8 @@ MACHINE_CONFIG_START(a5105_state::a5105)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("beeper", BEEP, 500)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
BEEP(config, "beeper", 500).add_route(ALL_OUTPUTS, "mono", 0.50);
/* Devices */
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 */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, CASSETTE_TAG)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", CASSETTE_TAG).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
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")
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
MACHINE_CONFIG_END

View File

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

View File

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

View File

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

View File

@ -948,8 +948,7 @@ MACHINE_CONFIG_START(amstrad_state::amstrad_base)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
@ -1076,8 +1075,7 @@ MACHINE_CONFIG_START(amstrad_state::cpcplus)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
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_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_EXTRA_OPTIONS("16K")
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("pia1", PIA6821, 0)
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)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SPEAKER_LEVELS(4, speaker_levels)
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, "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")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "lspeaker", 0.50);
/* Devices */
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 "machine/z80ctc.h"
#include "machine/nvram.h"
#include "machine/74259.h"
#include "machine/output_latch.h"
#include "machine/watchdog.h"
#include "sound/ay8910.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
{
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
@ -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
*
*************************************/
READ8_MEMBER(astrocde_state::gorf_io_1_r)
WRITE_LINE_MEMBER(astrocde_state::gorf_sound_switch_w)
{
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 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;
m_astrocade_sound1->set_output_gain(0, state ? 0.0 : 1.0);
m_votrax->set_output_gain(0, state ? 1.0 : 0.0);
}
/*************************************
*
* 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)
{
case 0: machine().bookkeeping().coin_counter_w(0, data); break;
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;
case 7: output().set_led_value(1, data); break;
}
return 0xff;
WRITE_LINE_MEMBER(astrocde_state::demndrgn_input_select_w)
{
m_input_select = state;
}
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);
}
@ -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)
{
@ -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->write(space, 0, data);
/* 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)
{
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)
{
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(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)
{
map(0x0000, 0x0019).select(0xff00).rw(this, FUNC(astrocde_state::astrocade_data_chip_register_r), FUNC(astrocde_state::astrocade_data_chip_register_w));
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(0xa55b, 0xa55b).w(this, FUNC(astrocde_state::protected_ram_enable_w));
port_map_mono_pattern(map);
map(0x0050, 0x0058).select(0xff00).w("astrocade2", FUNC(astrocade_io_device::write));
}
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));
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));
port_map_stereo_pattern(map);
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(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(0xa55b, 0xa55b).w(this, FUNC(astrocde_state::protected_ram_enable_w));
}
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(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));
@ -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)
{
port_map_16col_pattern_nosound(map);
@ -1311,7 +1226,8 @@ MACHINE_CONFIG_START(astrocde_state::astrocade_mono_sound)
/* sound hardware */
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)
MACHINE_CONFIG_END
@ -1322,11 +1238,16 @@ MACHINE_CONFIG_START(astrocde_state::astrocade_stereo_sound)
SPEAKER(config, "lspeaker").front_left();
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_ASTROCADE_ADD("astrocade2", ASTROCADE_CLOCK/4)
MCFG_DEVICE_ADD("astrocade2", ASTROCADE_IO, ASTROCADE_CLOCK/4)
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
@ -1343,7 +1264,25 @@ MACHINE_CONFIG_START(astrocde_state::seawolf2)
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
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 */
SPEAKER(config, "lspeaker").front_left();
@ -1372,7 +1311,13 @@ MACHINE_CONFIG_START(astrocde_state::ebases)
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
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
@ -1384,6 +1329,17 @@ MACHINE_CONFIG_START(astrocde_state::spacezap)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(spacezap_map)
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_START(astrocde_state::wow)
@ -1395,6 +1351,15 @@ MACHINE_CONFIG_START(astrocde_state::wow)
MCFG_DEVICE_PROGRAM_MAP(wow_map)
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 */
MCFG_SCREEN_MODIFY("screen")
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 */
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_SOUND_ROUTE(ALL_OUTPUTS, "center", 0.85)
MACHINE_CONFIG_END
@ -1416,6 +1385,29 @@ MACHINE_CONFIG_START(astrocde_state::gorf)
MCFG_DEVICE_PROGRAM_MAP(wow_map)
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 */
MCFG_SCREEN_MODIFY("screen")
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, "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_ASTROCADE_ADD("astrocade2", ASTROCADE_CLOCK/4)
MCFG_DEVICE_ADD("astrocade2", ASTROCADE_IO, ASTROCADE_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lower", 1.0)
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_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
@ -1460,16 +1467,47 @@ MACHINE_CONFIG_START(astrocde_state::profpac)
MCFG_DEVICE_MODIFY("bank4000")
MCFG_DEVICE_PROGRAM_MAP(profpac_bank4000_map)
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_START(astrocde_state::demndrgn)
astrocade_16color_base(config);
astrocade_mono_sound(config); // used only for I/O
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
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
@ -1727,58 +1765,42 @@ ROM_END
DRIVER_INIT_MEMBER(astrocde_state,seawolf2)
{
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)
{
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)
{
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)
{
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)
{
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)
{
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)
{
address_space &iospace = m_maincpu->space(AS_IO);
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 */
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)
{
address_space &iospace = m_maincpu->space(AS_IO);
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 */
m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000);

View File

@ -29,14 +29,20 @@ public:
: astrocde_state(mconfig, type, tag)
, m_cart(*this, "cartslot")
, 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_exp_device> m_exp;
DECLARE_MACHINE_START(astrocde);
void astrocde(machine_config &config);
void astrocade_io(address_map &map);
void astrocade_mem(address_map &map);
required_ioport_array<4> m_keypad;
};
/*********************************************************************************
@ -64,7 +70,10 @@ void astrocde_mess_state::astrocade_mem(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 )
PORT_START("P1HANDLE")
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 */
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)
/* expansion port */

View File

@ -325,8 +325,7 @@ MACHINE_CONFIG_START(binbug_state::binbug)
/* Cassette */
MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* quickload */
MCFG_QUICKLOAD_ADD("quickload", binbug_state, binbug, "pgm", 1)
@ -561,8 +560,7 @@ MACHINE_CONFIG_START(dg680_state::dg680)
/* Cassette */
MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
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();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
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 */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200) // guesswork
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50); // guesswork
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
MCFG_CASSETTE_ADD( "cassette" )

View File

@ -1014,10 +1014,8 @@ MACHINE_CONFIG_START(bml3_state::bml3_common)
/* Audio */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* slot devices */
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 )
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* internal ram */
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("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_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.02)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.02);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(camplynx_state::lynx_disk)

View File

@ -316,10 +316,8 @@ MACHINE_CONFIG_START(cd2650_state::cd2650)
/* Sound */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("beeper", BEEP, 950) // guess
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
BEEP(config, "beeper", 950).add_route(ALL_OUTPUTS, "mono", 0.50); // guess
/* Devices */
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)
// Single-bit sound: R22 = 10K
MCFG_DEVICE_ADD("sbs", DAC_1BIT, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.125)
DAC_1BIT(config, "sbs", 0).add_route(ALL_OUTPUTS, "speaker", 0.125);
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MACHINE_CONFIG_END

View File

@ -37,8 +37,9 @@ class controlidx628_state : public driver_device
{
public:
controlidx628_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_lcdc(*this, "nt7534") { }
: driver_device(mconfig, type, tag)
, m_lcdc(*this, "nt7534")
{ }
void controlidx628(machine_config &config);
private:
@ -113,17 +114,17 @@ PALETTE_INIT_MEMBER(controlidx628_state, controlidx628)
MACHINE_CONFIG_START(controlidx628_state::controlidx628)
// 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_IO_MAP(io_map)
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_P3_OUT_CB(WRITE8(*this, controlidx628_state, p3_w))
/* video hardware */
// video hardware
MCFG_SCREEN_ADD("screen", LCD)
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_VISIBLE_AREA(3, 130, 0, 63)
MCFG_SCREEN_UPDATE_DEVICE("nt7534", nt7534_device, screen_update)
@ -132,7 +133,7 @@ MACHINE_CONFIG_START(controlidx628_state::controlidx628)
MCFG_PALETTE_ADD("palette", 2)
MCFG_PALETTE_INIT_OWNER(controlidx628_state, controlidx628)
MCFG_NT7534_ADD("nt7534")
NT7534(config, m_lcdc);
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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(1, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(1, "mono", 0.25);
// cartridge
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_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(1, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(1, "mono", 0.25);
// cartridge
MCFG_CRVISION_CARTRIDGE_ADD("cartslot", crvision_cart, nullptr)

View File

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

View File

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

View File

@ -244,13 +244,11 @@ MACHINE_CONFIG_START(dauphin_state::dauphin)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* 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))
MACHINE_CONFIG_END

View File

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

View File

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

View File

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

View File

@ -530,8 +530,7 @@ MACHINE_CONFIG_START(fc100_state::fc100)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
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_B_READ_CB(IOPORT("JOY1"))

View File

@ -2081,10 +2081,8 @@ MACHINE_CONFIG_START(fm7_state::fm7)
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("psg", AY8910, XTAL(4'915'200) / 4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 1.00)
MCFG_DEVICE_ADD("beeper", BEEP, 1200)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono", 0.25)
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm7)
@ -2134,10 +2132,8 @@ MACHINE_CONFIG_START(fm7_state::fm8)
MCFG_QUANTUM_PERFECT_CPU("sub")
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
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_B_READ_CB(READ8(*this, fm7_state, fm77av_joy_2_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",1.0)
MCFG_DEVICE_ADD("beeper", BEEP, 1200)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm77av)
@ -2262,10 +2256,8 @@ MACHINE_CONFIG_START(fm7_state::fm11)
MCFG_DEVICE_IO_MAP(fm11_x86_io)
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_MACHINE_START_OVERRIDE(fm7_state,fm11)
@ -2327,10 +2319,8 @@ MACHINE_CONFIG_START(fm7_state::fm16beta)
MCFG_QUANTUM_PERFECT_CPU("sub")
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1200)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.25)
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
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(0x00, 0x02).w(this, FUNC(g627_state::disp_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));
}
@ -311,7 +311,7 @@ MACHINE_CONFIG_START(g627_state::g627)
/* Sound */
genpin_audio(config);
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)
/* Video */

View File

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

View File

@ -323,10 +323,8 @@ MACHINE_CONFIG_START(h8_state::h8)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, H8_BEEP_FRQ)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
BEEP(config, "beeper", H8_BEEP_FRQ).add_route(ALL_OUTPUTS, "mono", 1.00);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_DEVICE_ADD("mea8000", MEA8000, 3840000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)

View File

@ -437,8 +437,7 @@ MACHINE_CONFIG_START(instruct_state::instruct)
/* cassette */
MCFG_CASSETTE_ADD( "cassette" )
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MACHINE_CONFIG_END
/* 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))
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_DEVICE_ADD("beeper", BEEP, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -677,10 +677,8 @@ MACHINE_CONFIG_START(mbee_state::mbee)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL(12'000'000) / 8)
@ -736,10 +734,8 @@ MACHINE_CONFIG_START(mbee_state::mbeeic)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
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)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
WAVE(config, "wave", "cassette"); // FIXME: really no output routes for the cassette sound?
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80);
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
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 */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CASSETTE_ADD("cassette")

View File

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

View File

@ -188,8 +188,7 @@ MACHINE_CONFIG_START(mikro80_state::mikro80)
MCFG_PALETTE_ADD_MONOCHROME("palette")
SPEAKER(config, "speaker").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
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)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, radio86_state, hrq_w))

View File

@ -211,8 +211,7 @@ MACHINE_CONFIG_START(mk14_state::mk14)
// sound
SPEAKER(config, "speaker").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.05)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.05);
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("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)

View File

@ -205,8 +205,7 @@ MACHINE_CONFIG_START(mkit09_state::mkit09)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
MCFG_DEVICE_ADD("pia", PIA6821, 0)
@ -230,8 +229,7 @@ MACHINE_CONFIG_START(mkit09_state::mkit09a)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(10'738'635)/3/2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(21'477'272)/6/2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
MCFG_DEVICE_ADD("ay8910", AY8910, XTAL(21'477'272)/6/2)
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
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();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_DEVICE_ADD("sn1", SN76489, XTAL(10'000'000) / 4)
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();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("beeper", BEEP, 4096)
MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.15)
BEEP(config, "beeper", 4096).add_route(ALL_OUTPUTS,"mono",0.15);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(mz2000_state::mz80b)

View File

@ -398,10 +398,8 @@ MACHINE_CONFIG_START(mz_state::mz700)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* ne556 timers */
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 */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* Devices */
MCFG_DEVICE_ADD("ppi8255", I8255, 0)

View File

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

View File

@ -142,8 +142,7 @@ MACHINE_CONFIG_START(ondra_state::ondra)
// sound hardware
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
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 */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CASSETTE_ADD( "cassette")
MCFG_CASSETTE_FORMATS(orao_cassette_formats)

View File

@ -790,8 +790,7 @@ MACHINE_CONFIG_START(oric_state::oric)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("ay8912", AY8912, XTAL(12'000'000)/12)
MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
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)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CASSETTE_ADD( "cassette" )
MCFG_CASSETTE_FORMATS(rko_cassette_formats)
@ -202,10 +201,8 @@ MACHINE_CONFIG_START(orion_state::orionz80)
MCFG_MC146818_ADD( "rtc", XTAL(4'194'304) )
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.0);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("ay8912", AY8912, 1773400)
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)
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.0);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("ay8912", AY8912, 1773400)
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)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9)
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_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
// MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
// WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* TODO: accurate timing on this */
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 */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
/* Devices */
MCFG_K7659_KEYBOARD_ADD()

View File

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

View File

@ -324,8 +324,7 @@ MACHINE_CONFIG_START(pencil2_state::pencil2)
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(10'738'635)/3) // guess
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* 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_B_READ_CB(IOPORT("JOY1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.15);
/* devices */
MCFG_CASSETTE_ADD("cassette")

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -407,8 +407,7 @@ MACHINE_CONFIG_START(proteus3_state::proteus3)
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_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_p", proteus3_state, timer_p, attotime::from_hz(40000))

View File

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

View File

@ -780,8 +780,7 @@ MACHINE_CONFIG_START(px8_state::px8)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(0, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(0, "mono", 0.25);
/* cartridge */
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)
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("dma8257", I8257, XTAL(16'000'000) / 9)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(*this, radio86_state, hrq_w))

View File

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

View File

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

View File

@ -436,10 +436,8 @@ MACHINE_CONFIG_START(sorcerer_state::sorcerer)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
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
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05); // cass1 speaker
WAVE(config, "wave2", "cassette2").add_route(ALL_OUTPUTS, "mono", 0.05); // cass2 speaker
MCFG_DEVICE_ADD( "uart", AY31015, 0 )
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_B_WRITE_CB(WRITE8("cent_data_out", output_latch_device, write))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
MCFG_DEVICE_ADD("ext1", SPC1000_EXP_SLOT, 0)
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_B_WRITE_CB(WRITE8(*this, spc1500_state, psgb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
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 */
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
/* Devices */
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
@ -506,12 +505,11 @@ MACHINE_CONFIG_START(special_state::erik)
/* audio hardware */
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_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "speaker", 0.25);
/* Devices */
MCFG_CASSETTE_ADD( "cassette" )

View File

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

View File

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

View File

@ -557,10 +557,8 @@ MACHINE_CONFIG_START(svi3x8_state::svi318)
// sound hardware
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25);
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("psg", AY8910, XTAL(10'738'635) / 6)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("JOY"))
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 */
SPEAKER(config, "mono").front_center();
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
/* Devices */
MCFG_CASSETTE_ADD( "cassette" )

View File

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