mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
Moved soundlatch helpers into driver.c and removed emu/audio/generic.c.
Normalized soundlatch helper function names. Created delegates for machine/sound/video_start/reset callbacks and added necessary infrastructure to use them going forward.
This commit is contained in:
parent
6711559e87
commit
5181e3ea96
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -32,8 +32,6 @@ src/emu/addrmap.c svneol=native#text/plain
|
||||
src/emu/addrmap.h svneol=native#text/plain
|
||||
src/emu/attotime.c svneol=native#text/plain
|
||||
src/emu/attotime.h svneol=native#text/plain
|
||||
src/emu/audio/generic.c svneol=native#text/plain
|
||||
src/emu/audio/generic.h svneol=native#text/plain
|
||||
src/emu/audit.c svneol=native#text/plain
|
||||
src/emu/audit.h svneol=native#text/plain
|
||||
src/emu/cheat.c svneol=native#text/plain
|
||||
|
@ -1,168 +0,0 @@
|
||||
/***************************************************************************
|
||||
|
||||
generic.c
|
||||
|
||||
Generic simple sound functions.
|
||||
|
||||
Copyright Nicola Salmoria and the MAME Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
|
||||
struct _generic_audio_private
|
||||
{
|
||||
UINT16 latch_clear_value;
|
||||
UINT16 latched_value[4];
|
||||
UINT8 latch_read[4];
|
||||
};
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
generic_sound_init - initialize globals and
|
||||
register for save states
|
||||
-------------------------------------------------*/
|
||||
|
||||
int generic_sound_init(running_machine &machine)
|
||||
{
|
||||
generic_audio_private *state;
|
||||
|
||||
state = machine.generic_audio_data = auto_alloc_clear(machine, generic_audio_private);
|
||||
|
||||
/* register globals with the save state system */
|
||||
state_save_register_global_array(machine, state->latched_value);
|
||||
state_save_register_global_array(machine, state->latch_read);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Many games use a master-slave CPU setup. Typically, the main CPU writes
|
||||
a command to some register, and then writes to another register to trigger
|
||||
an interrupt on the slave CPU (the interrupt might also be triggered by
|
||||
the first write). The slave CPU, notified by the interrupt, goes and reads
|
||||
the command.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
latch_callback - time-delayed callback to
|
||||
set a latch value
|
||||
-------------------------------------------------*/
|
||||
|
||||
static TIMER_CALLBACK( latch_callback )
|
||||
{
|
||||
generic_audio_private *state = machine.generic_audio_data;
|
||||
UINT16 value = param >> 8;
|
||||
int which = param & 0xff;
|
||||
|
||||
/* if the latch hasn't been read and the value is changed, log a warning */
|
||||
if (!state->latch_read[which] && state->latched_value[which] != value)
|
||||
logerror("Warning: sound latch %d written before being read. Previous: %02x, new: %02x\n", which, state->latched_value[which], value);
|
||||
|
||||
/* store the new value and mark it not read */
|
||||
state->latched_value[which] = value;
|
||||
state->latch_read[which] = 0;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
latch_w - handle a write to a given latch
|
||||
-------------------------------------------------*/
|
||||
|
||||
INLINE void latch_w(address_space *space, int which, UINT16 value)
|
||||
{
|
||||
space->machine().scheduler().synchronize(FUNC(latch_callback), which | (value << 8));
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
latch_r - handle a read from a given latch
|
||||
-------------------------------------------------*/
|
||||
|
||||
INLINE UINT16 latch_r(address_space *space, int which)
|
||||
{
|
||||
generic_audio_private *state = space->machine().generic_audio_data;
|
||||
state->latch_read[which] = 1;
|
||||
return state->latched_value[which];
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
latch_clear - clear a given latch
|
||||
-------------------------------------------------*/
|
||||
|
||||
INLINE void latch_clear(address_space *space, int which)
|
||||
{
|
||||
generic_audio_private *state = space->machine().generic_audio_data;
|
||||
state->latched_value[which] = state->latch_clear_value;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
soundlatch_w - global write handlers for
|
||||
writing to sound latches
|
||||
-------------------------------------------------*/
|
||||
|
||||
WRITE8_MEMBER( driver_device::soundlatch_w ) { latch_w(&space, 0, data); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch_word_w ) { latch_w(&space, 0, data); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch2_w ) { latch_w(&space, 1, data); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch2_word_w ) { latch_w(&space, 1, data); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch3_w ) { latch_w(&space, 2, data); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch3_word_w ) { latch_w(&space, 2, data); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch4_w ) { latch_w(&space, 3, data); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch4_word_w ) { latch_w(&space, 3, data); }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
soundlatch_r - global read handlers for
|
||||
reading from sound latches
|
||||
-------------------------------------------------*/
|
||||
|
||||
READ8_MEMBER( driver_device::soundlatch_r ) { return latch_r(&space, 0); }
|
||||
READ16_MEMBER( driver_device::soundlatch_word_r ) { return latch_r(&space, 0); }
|
||||
READ8_MEMBER( driver_device::soundlatch2_r ) { return latch_r(&space, 1); }
|
||||
READ16_MEMBER( driver_device::soundlatch2_word_r ) { return latch_r(&space, 1); }
|
||||
READ8_MEMBER( driver_device::soundlatch3_r ) { return latch_r(&space, 2); }
|
||||
READ16_MEMBER( driver_device::soundlatch3_word_r ) { return latch_r(&space, 2); }
|
||||
READ8_MEMBER( driver_device::soundlatch4_r ) { return latch_r(&space, 3); }
|
||||
READ16_MEMBER( driver_device::soundlatch4_word_r ) { return latch_r(&space, 3); }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
soundlatch_clear_w - global write handlers
|
||||
for clearing sound latches
|
||||
-------------------------------------------------*/
|
||||
|
||||
WRITE8_MEMBER( driver_device::soundlatch_clear_w ) { latch_clear(&space, 0); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch2_clear_w ) { latch_clear(&space, 1); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch3_clear_w ) { latch_clear(&space, 2); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch4_clear_w ) { latch_clear(&space, 3); }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
soundlatch_setclearedvalue - set the "clear"
|
||||
value for all sound latches
|
||||
-------------------------------------------------*/
|
||||
|
||||
void soundlatch_setclearedvalue(running_machine &machine, int value)
|
||||
{
|
||||
generic_audio_private *state = machine.generic_audio_data;
|
||||
assert_always(machine.phase() == MACHINE_PHASE_INIT, "Can only call soundlatch_setclearedvalue at init time!");
|
||||
state->latch_clear_value = value;
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
/***************************************************************************
|
||||
|
||||
generic.h
|
||||
|
||||
Generic simple sound functions.
|
||||
|
||||
Copyright Nicola Salmoria and the MAME Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __SOUND_GENERIC_H__
|
||||
#define __SOUND_GENERIC_H__
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Function prototypes
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
int generic_sound_init(running_machine &machine);
|
||||
|
||||
/* If you're going to use soundlatchX_clear_w, and the cleared value is
|
||||
something other than 0x00, use this function from machine_init. Note
|
||||
that this one call effects all 4 latches */
|
||||
void soundlatch_setclearedvalue(running_machine &machine, int value);
|
||||
|
||||
|
||||
#endif /* __SOUND_GENERIC_H__ */
|
114
src/emu/driver.c
114
src/emu/driver.c
@ -51,18 +51,21 @@
|
||||
|
||||
driver_device::driver_device(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: device_t(mconfig, type, "Driver Device", tag, NULL, 0),
|
||||
m_system(NULL),
|
||||
m_palette_init(NULL),
|
||||
m_generic_paletteram_8(*this, "paletteram"),
|
||||
m_generic_paletteram2_8(*this, "paletteram2"),
|
||||
m_generic_paletteram_16(*this, "paletteram"),
|
||||
m_generic_paletteram2_16(*this, "paletteram2"),
|
||||
m_generic_paletteram_32(*this, "paletteram"),
|
||||
m_generic_paletteram2_32(*this, "paletteram2"),
|
||||
m_system(NULL),
|
||||
m_palette_init(NULL),
|
||||
m_latch_clear_value(0),
|
||||
m_flip_screen_x(0),
|
||||
m_flip_screen_y(0)
|
||||
{
|
||||
memset(m_callbacks, 0, sizeof(m_callbacks));
|
||||
memset(m_legacy_callbacks, 0, sizeof(m_legacy_callbacks));
|
||||
memset(m_latched_value, 0, sizeof(m_latched_value));
|
||||
memset(m_latch_read, 0, sizeof(m_latch_read));
|
||||
}
|
||||
|
||||
|
||||
@ -101,12 +104,16 @@ void driver_device::static_set_game(device_t &device, const game_driver &game)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// static_set_machine_start - set the legacy
|
||||
// machine start callback in the device
|
||||
// configuration
|
||||
// static_set_callback - set the a callback in
|
||||
// the device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void driver_device::static_set_callback(device_t &device, callback_type type, legacy_callback_func callback)
|
||||
{
|
||||
downcast<driver_device &>(device).m_legacy_callbacks[type] = callback;
|
||||
}
|
||||
|
||||
void driver_device::static_set_callback(device_t &device, callback_type type, driver_callback_delegate callback)
|
||||
{
|
||||
downcast<driver_device &>(device).m_callbacks[type] = callback;
|
||||
}
|
||||
@ -141,8 +148,8 @@ void driver_device::driver_start()
|
||||
|
||||
void driver_device::machine_start()
|
||||
{
|
||||
if (m_callbacks[CB_MACHINE_START] != NULL)
|
||||
(*m_callbacks[CB_MACHINE_START])(machine());
|
||||
if (!m_callbacks[CB_MACHINE_START].isnull())
|
||||
m_callbacks[CB_MACHINE_START]();
|
||||
}
|
||||
|
||||
|
||||
@ -153,8 +160,8 @@ void driver_device::machine_start()
|
||||
|
||||
void driver_device::sound_start()
|
||||
{
|
||||
if (m_callbacks[CB_SOUND_START] != NULL)
|
||||
(*m_callbacks[CB_SOUND_START])(machine());
|
||||
if (!m_callbacks[CB_SOUND_START].isnull())
|
||||
m_callbacks[CB_SOUND_START]();
|
||||
}
|
||||
|
||||
|
||||
@ -165,8 +172,8 @@ void driver_device::sound_start()
|
||||
|
||||
void driver_device::video_start()
|
||||
{
|
||||
if (m_callbacks[CB_VIDEO_START] != NULL)
|
||||
(*m_callbacks[CB_VIDEO_START])(machine());
|
||||
if (!m_callbacks[CB_VIDEO_START].isnull())
|
||||
m_callbacks[CB_VIDEO_START]();
|
||||
}
|
||||
|
||||
|
||||
@ -187,8 +194,8 @@ void driver_device::driver_reset()
|
||||
|
||||
void driver_device::machine_reset()
|
||||
{
|
||||
if (m_callbacks[CB_MACHINE_RESET] != NULL)
|
||||
(*m_callbacks[CB_MACHINE_RESET])(machine());
|
||||
if (!m_callbacks[CB_MACHINE_RESET].isnull())
|
||||
m_callbacks[CB_MACHINE_RESET]();
|
||||
}
|
||||
|
||||
|
||||
@ -199,8 +206,8 @@ void driver_device::machine_reset()
|
||||
|
||||
void driver_device::sound_reset()
|
||||
{
|
||||
if (m_callbacks[CB_SOUND_RESET] != NULL)
|
||||
(*m_callbacks[CB_SOUND_RESET])(machine());
|
||||
if (!m_callbacks[CB_SOUND_RESET].isnull())
|
||||
m_callbacks[CB_SOUND_RESET]();
|
||||
}
|
||||
|
||||
|
||||
@ -211,8 +218,8 @@ void driver_device::sound_reset()
|
||||
|
||||
void driver_device::video_reset()
|
||||
{
|
||||
if (m_callbacks[CB_VIDEO_RESET] != NULL)
|
||||
(*m_callbacks[CB_VIDEO_RESET])(machine());
|
||||
if (!m_callbacks[CB_VIDEO_RESET].isnull())
|
||||
m_callbacks[CB_VIDEO_RESET]();
|
||||
}
|
||||
|
||||
|
||||
@ -245,6 +252,11 @@ ioport_constructor driver_device::device_input_ports() const
|
||||
|
||||
void driver_device::device_start()
|
||||
{
|
||||
// bind our legacy callbacks
|
||||
for (int index = 0; index < ARRAY_LENGTH(m_legacy_callbacks); index++)
|
||||
if (m_legacy_callbacks[index] != NULL)
|
||||
m_callbacks[index] = driver_callback_delegate(m_legacy_callbacks[index], "legacy_callback", &machine());
|
||||
|
||||
// reschedule ourselves to be last
|
||||
device_iterator iter(*this);
|
||||
for (device_t *test = iter.first(); test != NULL; test = iter.next())
|
||||
@ -291,6 +303,72 @@ void driver_device::device_reset_after_children()
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// GENERIC SOUND COMMAND LATCHING
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// soundlatch_sync_callback - time-delayed
|
||||
// callback to set a latch value
|
||||
//-------------------------------------------------
|
||||
|
||||
void driver_device::soundlatch_sync_callback(void *ptr, INT32 param)
|
||||
{
|
||||
UINT16 value = param >> 8;
|
||||
int which = param & 0xff;
|
||||
|
||||
// if the latch hasn't been read and the value is changed, log a warning
|
||||
if (!m_latch_read[which] && m_latched_value[which] != value)
|
||||
logerror("Warning: sound latch %d written before being read. Previous: %02x, new: %02x\n", which, m_latched_value[which], value);
|
||||
|
||||
// store the new value and mark it not read
|
||||
m_latched_value[which] = value;
|
||||
m_latch_read[which] = 0;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// soundlatch_byte_w - global write handlers for
|
||||
// writing to sound latches
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER( driver_device::soundlatch_byte_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 0 | (data << 8)); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch_word_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 0 | (data << 8)); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch2_byte_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 1 | (data << 8)); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch2_word_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 1 | (data << 8)); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch3_byte_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 2 | (data << 8)); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch3_word_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 2 | (data << 8)); }
|
||||
WRITE8_MEMBER( driver_device::soundlatch4_byte_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 3 | (data << 8)); }
|
||||
WRITE16_MEMBER( driver_device::soundlatch4_word_w ) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(driver_device::soundlatch_sync_callback), this), 3 | (data << 8)); }
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// soundlatch_byte_r - global read handlers for
|
||||
// reading from sound latches
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_MEMBER( driver_device::soundlatch_byte_r ) { return m_latched_value[0]; }
|
||||
READ16_MEMBER( driver_device::soundlatch_word_r ) { return m_latched_value[0]; }
|
||||
READ8_MEMBER( driver_device::soundlatch2_byte_r ) { return m_latched_value[1]; }
|
||||
READ16_MEMBER( driver_device::soundlatch2_word_r ) { return m_latched_value[1]; }
|
||||
READ8_MEMBER( driver_device::soundlatch3_byte_r ) { return m_latched_value[2]; }
|
||||
READ16_MEMBER( driver_device::soundlatch3_word_r ) { return m_latched_value[2]; }
|
||||
READ8_MEMBER( driver_device::soundlatch4_byte_r ) { return m_latched_value[3]; }
|
||||
READ16_MEMBER( driver_device::soundlatch4_word_r ) { return m_latched_value[3]; }
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// soundlatch_clear_byte_w - global write handlers
|
||||
// for clearing sound latches
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER( driver_device::soundlatch_clear_byte_w ) { m_latched_value[0] = m_latch_clear_value; }
|
||||
WRITE8_MEMBER( driver_device::soundlatch2_clear_byte_w ) { m_latched_value[1] = m_latch_clear_value; }
|
||||
WRITE8_MEMBER( driver_device::soundlatch3_clear_byte_w ) { m_latched_value[2] = m_latch_clear_value; }
|
||||
WRITE8_MEMBER( driver_device::soundlatch4_clear_byte_w ) { m_latched_value[3] = m_latch_clear_value; }
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// GENERIC FLIP SCREEN HANDLING
|
||||
//**************************************************************************
|
||||
|
@ -51,6 +51,8 @@
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
typedef delegate<void ()> driver_callback_delegate;
|
||||
|
||||
|
||||
// ======================> driver_device
|
||||
|
||||
@ -61,6 +63,9 @@ public:
|
||||
// construction/destruction
|
||||
driver_device(const machine_config &mconfig, device_type type, const char *tag);
|
||||
virtual ~driver_device();
|
||||
|
||||
// getters
|
||||
const game_driver &system() const { assert(m_system != NULL); return *m_system; }
|
||||
|
||||
// indexes into our generic callbacks
|
||||
enum callback_type
|
||||
@ -77,6 +82,7 @@ public:
|
||||
// inline configuration helpers
|
||||
static void static_set_game(device_t &device, const game_driver &game);
|
||||
static void static_set_callback(device_t &device, callback_type type, legacy_callback_func callback);
|
||||
static void static_set_callback(device_t &device, callback_type type, driver_callback_delegate callback);
|
||||
static void static_set_palette_init(device_t &device, palette_init_func callback);
|
||||
|
||||
// generic helpers
|
||||
@ -86,6 +92,43 @@ public:
|
||||
(downcast<_DriverClass &>(device).*_Function)();
|
||||
}
|
||||
|
||||
// watchdog read/write handlers
|
||||
DECLARE_WRITE8_MEMBER( watchdog_reset_w );
|
||||
DECLARE_READ8_MEMBER( watchdog_reset_r );
|
||||
DECLARE_WRITE16_MEMBER( watchdog_reset16_w );
|
||||
DECLARE_READ16_MEMBER( watchdog_reset16_r );
|
||||
DECLARE_WRITE32_MEMBER( watchdog_reset32_w );
|
||||
DECLARE_READ32_MEMBER( watchdog_reset32_r );
|
||||
|
||||
// generic audio
|
||||
void soundlatch_setclearedvalue(UINT16 value) { m_latch_clear_value = value; }
|
||||
|
||||
// sound latch readers
|
||||
DECLARE_READ8_MEMBER( soundlatch_byte_r );
|
||||
DECLARE_READ8_MEMBER( soundlatch2_byte_r );
|
||||
DECLARE_READ8_MEMBER( soundlatch3_byte_r );
|
||||
DECLARE_READ8_MEMBER( soundlatch4_byte_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch_word_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch2_word_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch3_word_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch4_word_r );
|
||||
|
||||
// sound latch writers
|
||||
DECLARE_WRITE8_MEMBER( soundlatch_byte_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch2_byte_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch3_byte_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch4_byte_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch_word_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch2_word_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch3_word_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch4_word_w );
|
||||
|
||||
// sound latch clearers
|
||||
DECLARE_WRITE8_MEMBER( soundlatch_clear_byte_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch2_clear_byte_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch3_clear_byte_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch4_clear_byte_w );
|
||||
|
||||
// generic video
|
||||
void flip_screen_set(UINT32 on);
|
||||
void flip_screen_set_no_update(UINT32 on);
|
||||
@ -95,40 +138,6 @@ public:
|
||||
UINT32 flip_screen_x() const { return m_flip_screen_x; }
|
||||
UINT32 flip_screen_y() const { return m_flip_screen_y; }
|
||||
|
||||
// watchdog read/write handlers
|
||||
DECLARE_WRITE8_MEMBER( watchdog_reset_w );
|
||||
DECLARE_READ8_MEMBER( watchdog_reset_r );
|
||||
DECLARE_WRITE16_MEMBER( watchdog_reset16_w );
|
||||
DECLARE_READ16_MEMBER( watchdog_reset16_r );
|
||||
DECLARE_WRITE32_MEMBER( watchdog_reset32_w );
|
||||
DECLARE_READ32_MEMBER( watchdog_reset32_r );
|
||||
|
||||
// sound latch readers
|
||||
DECLARE_READ8_MEMBER( soundlatch_r );
|
||||
DECLARE_READ8_MEMBER( soundlatch2_r );
|
||||
DECLARE_READ8_MEMBER( soundlatch3_r );
|
||||
DECLARE_READ8_MEMBER( soundlatch4_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch_word_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch2_word_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch3_word_r );
|
||||
DECLARE_READ16_MEMBER( soundlatch4_word_r );
|
||||
|
||||
// sound latch writers
|
||||
DECLARE_WRITE8_MEMBER( soundlatch_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch2_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch3_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch4_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch_word_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch2_word_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch3_word_w );
|
||||
DECLARE_WRITE16_MEMBER( soundlatch4_word_w );
|
||||
|
||||
// sound latch clearers
|
||||
DECLARE_WRITE8_MEMBER( soundlatch_clear_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch2_clear_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch3_clear_w );
|
||||
DECLARE_WRITE8_MEMBER( soundlatch4_clear_w );
|
||||
|
||||
// templatized palette writers for 8-bit palette data
|
||||
template<int _RedBits, int _GreenBits, int _BlueBits, int _RedShift, int _GreenShift, int _BlueShift> DECLARE_WRITE8_MEMBER( palette_8bit_byte_w );
|
||||
|
||||
@ -239,12 +248,6 @@ protected:
|
||||
inline UINT16 paletteram16_split(offs_t offset) const { return m_generic_paletteram_8[offset] | (m_generic_paletteram2_8[offset] << 8); }
|
||||
inline UINT32 paletteram32_be(offs_t offset) const { return m_generic_paletteram_16[offset | 1] | (m_generic_paletteram_16[offset & ~1] << 16); }
|
||||
|
||||
// internal state
|
||||
const game_driver * m_system; // pointer to the game driver
|
||||
|
||||
legacy_callback_func m_callbacks[CB_COUNT]; // generic legacy callbacks
|
||||
palette_init_func m_palette_init; // one-time palette init callback
|
||||
|
||||
public:
|
||||
// generic pointers
|
||||
optional_shared_ptr<UINT8> m_generic_paletteram_8;
|
||||
@ -256,11 +259,23 @@ public:
|
||||
|
||||
private:
|
||||
// helpers
|
||||
void soundlatch_sync_callback(void *ptr, INT32 param);
|
||||
void updateflip();
|
||||
|
||||
// internal state
|
||||
const game_driver * m_system; // pointer to the game driver
|
||||
palette_init_func m_palette_init; // one-time palette init callback
|
||||
driver_callback_delegate m_callbacks[CB_COUNT]; // start/reset callbacks
|
||||
legacy_callback_func m_legacy_callbacks[CB_COUNT]; // legacy start/reset callbacks
|
||||
|
||||
// generic audio
|
||||
UINT16 m_latch_clear_value;
|
||||
UINT16 m_latched_value[4];
|
||||
UINT8 m_latch_read[4];
|
||||
|
||||
// generic video
|
||||
UINT32 m_flip_screen_x;
|
||||
UINT32 m_flip_screen_y;
|
||||
UINT32 m_flip_screen_x;
|
||||
UINT32 m_flip_screen_y;
|
||||
};
|
||||
|
||||
|
||||
|
@ -140,7 +140,6 @@ typedef device_t * (*machine_config_constructor)(machine_config &config, device_
|
||||
// generic helpers
|
||||
#include "devcb.h"
|
||||
#include "drivers/xtal.h"
|
||||
#include "audio/generic.h"
|
||||
#include "machine/generic.h"
|
||||
#include "video/generic.h"
|
||||
|
||||
|
@ -134,7 +134,6 @@ EMUSOUNDOBJS = \
|
||||
$(EMUOBJ)/sound/wavwrite.o \
|
||||
|
||||
EMUAUDIOOBJS = \
|
||||
$(EMUAUDIO)/generic.o \
|
||||
|
||||
EMUDRIVEROBJS = \
|
||||
$(EMUDRIVERS)/empty.o \
|
||||
|
@ -62,7 +62,6 @@
|
||||
- calls render_init() [render.c] to initialize the rendering system
|
||||
- calls ui_init() [ui.c] to initialize the user interface
|
||||
- calls generic_machine_init() [machine/generic.c] to initialize generic machine structures
|
||||
- calls generic_sound_init() [audio/generic.c] to initialize generic sound structures
|
||||
- calls timer_init() [timer.c] to reset the timer system
|
||||
- calls osd_init() [osdepend.h] to do platform-specific initialization
|
||||
- calls input_port_init() [inptport.c] to set up the input ports
|
||||
@ -148,7 +147,6 @@ running_machine::running_machine(const machine_config &_config, osd_interface &o
|
||||
ui_input_data(NULL),
|
||||
debugcpu_data(NULL),
|
||||
generic_machine_data(NULL),
|
||||
generic_audio_data(NULL),
|
||||
|
||||
m_config(_config),
|
||||
m_system(_config.gamedrv()),
|
||||
@ -249,7 +247,6 @@ void running_machine::start()
|
||||
palette_init(*this);
|
||||
m_render = auto_alloc(*this, render_manager(*this));
|
||||
generic_machine_init(*this);
|
||||
generic_sound_init(*this);
|
||||
|
||||
// allocate a soft_reset timer
|
||||
m_soft_reset_timer = m_scheduler.timer_alloc(timer_expired_delegate(FUNC(running_machine::soft_reset), this));
|
||||
|
@ -189,7 +189,6 @@ typedef struct _input_port_private input_port_private;
|
||||
typedef struct _ui_input_private ui_input_private;
|
||||
typedef struct _debugcpu_private debugcpu_private;
|
||||
typedef struct _generic_machine_private generic_machine_private;
|
||||
typedef struct _generic_audio_private generic_audio_private;
|
||||
|
||||
|
||||
// legacy callback functions
|
||||
@ -412,7 +411,6 @@ public:
|
||||
ui_input_private * ui_input_data; // internal data from uiinput.c
|
||||
debugcpu_private * debugcpu_data; // internal data from debugcpu.c
|
||||
generic_machine_private *generic_machine_data; // internal data from machine/generic.c
|
||||
generic_audio_private * generic_audio_data; // internal data from audio/generic.c
|
||||
|
||||
private:
|
||||
// internal helpers
|
||||
|
@ -21,7 +21,7 @@ WRITE16_HANDLER( aztarac_sound_w )
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
data &= 0xff;
|
||||
state->soundlatch_w(*space, offset, data);
|
||||
state->soundlatch_byte_w(*space, offset, data);
|
||||
state->m_sound_status ^= 0x21;
|
||||
if (state->m_sound_status & 0x20)
|
||||
cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
|
||||
@ -33,7 +33,7 @@ READ8_HANDLER( aztarac_snd_command_r )
|
||||
aztarac_state *state = space->machine().driver_data<aztarac_state>();
|
||||
state->m_sound_status |= 0x01;
|
||||
state->m_sound_status &= ~0x20;
|
||||
return state->soundlatch_r(*space,offset);
|
||||
return state->soundlatch_byte_r(*space,offset);
|
||||
}
|
||||
|
||||
READ8_HANDLER( aztarac_snd_status_r )
|
||||
|
@ -44,14 +44,14 @@ READ8_HANDLER( cchasm_soundlatch2_r )
|
||||
cchasm_state *state = space->machine().driver_data<cchasm_state>();
|
||||
state->m_sound_flags &= ~0x80;
|
||||
z80ctc_trg2_w(state->m_ctc, 0);
|
||||
return state->soundlatch2_r(*space, offset);
|
||||
return state->soundlatch2_byte_r(*space, offset);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( cchasm_soundlatch4_w )
|
||||
{
|
||||
cchasm_state *state = space->machine().driver_data<cchasm_state>();
|
||||
state->m_sound_flags |= 0x40;
|
||||
state->soundlatch4_w(*space, offset, data);
|
||||
state->soundlatch4_byte_w(*space, offset, data);
|
||||
cputag_set_input_line(space->machine(), "maincpu", 1, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -66,11 +66,11 @@ WRITE16_HANDLER( cchasm_io_w )
|
||||
switch (offset & 0xf)
|
||||
{
|
||||
case 0:
|
||||
state->soundlatch_w(*space, offset, data);
|
||||
state->soundlatch_byte_w(*space, offset, data);
|
||||
break;
|
||||
case 1:
|
||||
state->m_sound_flags |= 0x80;
|
||||
state->soundlatch2_w(*space, offset, data);
|
||||
state->soundlatch2_byte_w(*space, offset, data);
|
||||
z80ctc_trg2_w(state->m_ctc, 1);
|
||||
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
break;
|
||||
@ -87,10 +87,10 @@ READ16_HANDLER( cchasm_io_r )
|
||||
switch (offset & 0xf)
|
||||
{
|
||||
case 0x0:
|
||||
return state->soundlatch3_r(*space, offset) << 8;
|
||||
return state->soundlatch3_byte_r(*space, offset) << 8;
|
||||
case 0x1:
|
||||
state->m_sound_flags &= ~0x40;
|
||||
return state->soundlatch4_r(*space,offset) << 8;
|
||||
return state->soundlatch4_byte_r(*space,offset) << 8;
|
||||
case 0x2:
|
||||
return (state->m_sound_flags| (input_port_read(space->machine(), "IN3") & 0x07) | 0x08) << 8;
|
||||
case 0x5:
|
||||
|
@ -46,7 +46,7 @@ WRITE8_DEVICE_HANDLER( hyprolyb_adpcm_w )
|
||||
{
|
||||
hyprolyb_adpcm_state *state = get_safe_token(device);
|
||||
driver_device *drvstate = device->machine().driver_data<driver_device>();
|
||||
drvstate->soundlatch2_w(*state->m_space, offset, data);
|
||||
drvstate->soundlatch2_byte_w(*state->m_space, offset, data);
|
||||
state->m_adpcm_ready = 0x80;
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ static READ8_DEVICE_HANDLER( hyprolyb_adpcm_data_r )
|
||||
hyprolyb_adpcm_state *state = get_safe_token(device);
|
||||
driver_device *drvstate = device->machine().driver_data<driver_device>();
|
||||
state->m_adpcm_ready = 0x00;
|
||||
return drvstate->soundlatch2_r(*state->m_space, offset);
|
||||
return drvstate->soundlatch2_byte_r(*state->m_space, offset);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( hyprolyb_adpcm_map, AS_PROGRAM, 8, driver_device )
|
||||
|
@ -66,7 +66,7 @@ WRITE8_HANDLER( irem_sound_cmd_w )
|
||||
{
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
if ((data & 0x80) == 0)
|
||||
drvstate->soundlatch_w(*space, 0, data & 0x7f);
|
||||
drvstate->soundlatch_byte_w(*space, 0, data & 0x7f);
|
||||
else
|
||||
cputag_set_input_line(space->machine(), "iremsound", 0, ASSERT_LINE);
|
||||
}
|
||||
@ -251,7 +251,7 @@ static const ay8910_interface irem_ay8910_interface_1 =
|
||||
{
|
||||
AY8910_SINGLE_OUTPUT | AY8910_DISCRETE_OUTPUT,
|
||||
{470, 0, 0},
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_DEVICE_HANDLER("irem_audio", ay8910_0_portb_w)
|
||||
|
@ -154,7 +154,7 @@ WRITE16_DEVICE_HANDLER( m72_sound_command_w )
|
||||
{
|
||||
m72_audio_state *state = get_safe_token(device);
|
||||
driver_device *drvstate = device->machine().driver_data<driver_device>();
|
||||
drvstate->soundlatch_w(*state->space, offset, data);
|
||||
drvstate->soundlatch_byte_w(*state->space, offset, data);
|
||||
device->machine().scheduler().synchronize(FUNC(setvector_callback), Z80_ASSERT, state);
|
||||
}
|
||||
}
|
||||
@ -163,7 +163,7 @@ WRITE8_DEVICE_HANDLER( m72_sound_command_byte_w )
|
||||
{
|
||||
m72_audio_state *state = get_safe_token(device);
|
||||
driver_device *drvstate = device->machine().driver_data<driver_device>();
|
||||
drvstate->soundlatch_w(*state->space, offset, data);
|
||||
drvstate->soundlatch_byte_w(*state->space, offset, data);
|
||||
device->machine().scheduler().synchronize(FUNC(setvector_callback), Z80_ASSERT, state);
|
||||
}
|
||||
|
||||
|
@ -22,17 +22,17 @@
|
||||
#define ACTIVELOW_PORT_BIT(P,A,D) ((P & (~(1 << A))) | ((D ^ 1) << A))
|
||||
#define ACTIVEHIGH_PORT_BIT(P,A,D) ((P & (~(1 << A))) | (D << A))
|
||||
|
||||
#define I8035_T_R(M,N) ((state->soundlatch2_r(M,0) >> (N)) & 1)
|
||||
#define I8035_T_W_AH(M,N,D) do { state->m_portT = ACTIVEHIGH_PORT_BIT(state->m_portT,N,D); state->soundlatch2_w(M, 0, state->m_portT); } while (0)
|
||||
#define I8035_T_R(M,N) ((state->soundlatch2_byte_r(M,0) >> (N)) & 1)
|
||||
#define I8035_T_W_AH(M,N,D) do { state->m_portT = ACTIVEHIGH_PORT_BIT(state->m_portT,N,D); state->soundlatch2_byte_w(M, 0, state->m_portT); } while (0)
|
||||
|
||||
#define I8035_P1_R(M) (state->soundlatch3_r(M,0))
|
||||
#define I8035_P2_R(M) (state->soundlatch4_r(M,0))
|
||||
#define I8035_P1_W(M,D) state->soundlatch3_w(M,0,D)
|
||||
#define I8035_P1_R(M) (state->soundlatch3_byte_r(M,0))
|
||||
#define I8035_P2_R(M) (state->soundlatch4_byte_r(M,0))
|
||||
#define I8035_P1_W(M,D) state->soundlatch3_byte_w(M,0,D)
|
||||
|
||||
#if (USE_8039)
|
||||
#define I8035_P2_W(M,D) do { state->soundlatch4_w(M,0,D); } while (0)
|
||||
#define I8035_P2_W(M,D) do { state->soundlatch4_byte_w(M,0,D); } while (0)
|
||||
#else
|
||||
#define I8035_P2_W(M,D) do { set_ea(M, ((D) & 0x20) ? 0 : 1); state->soundlatch4_w(M,0,D); } while (0)
|
||||
#define I8035_P2_W(M,D) do { set_ea(M, ((D) & 0x20) ? 0 : 1); state->soundlatch4_byte_w(M,0,D); } while (0)
|
||||
#endif
|
||||
|
||||
#define I8035_P1_W_AH(M,B,D) I8035_P1_W(M,ACTIVEHIGH_PORT_BIT(I8035_P1_R(M),B,(D)))
|
||||
@ -444,10 +444,10 @@ static SOUND_RESET( mario )
|
||||
#endif
|
||||
|
||||
/* FIXME: convert to latch8 */
|
||||
state->soundlatch_clear_w(*space, 0, 0);
|
||||
state->soundlatch2_clear_w(*space, 0, 0);
|
||||
state->soundlatch3_clear_w(*space, 0, 0);
|
||||
state->soundlatch4_clear_w(*space, 0, 0);
|
||||
state->soundlatch_clear_byte_w(*space, 0, 0);
|
||||
state->soundlatch2_clear_byte_w(*space, 0, 0);
|
||||
state->soundlatch3_clear_byte_w(*space, 0, 0);
|
||||
state->soundlatch4_clear_byte_w(*space, 0, 0);
|
||||
I8035_P1_W(*space, 0x00); /* Input port */
|
||||
I8035_P2_W(*space, 0xff); /* Port is in high impedance state after reset */
|
||||
|
||||
@ -492,7 +492,7 @@ static READ8_HANDLER( mario_sh_tune_r )
|
||||
UINT8 p2 = I8035_P2_R(*space);
|
||||
|
||||
if ((p2 >> 7) & 1)
|
||||
return state->soundlatch_r(*space, offset);
|
||||
return state->soundlatch_byte_r(*space, offset);
|
||||
else
|
||||
return (SND[(0x1000 + (p2 & 0x0f) * 256 + offset) & mask]);
|
||||
}
|
||||
@ -536,7 +536,7 @@ WRITE8_HANDLER( masao_sh_irqtrigger_w )
|
||||
WRITE8_HANDLER( mario_sh_tuneselect_w )
|
||||
{
|
||||
mario_state *state = space->machine().driver_data<mario_state>();
|
||||
state->soundlatch_w(*space, offset, data);
|
||||
state->soundlatch_byte_w(*space, offset, data);
|
||||
}
|
||||
|
||||
/* Sound 0 and 1 are pulsed !*/
|
||||
@ -626,7 +626,7 @@ static const ay8910_interface ay8910_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
|
@ -66,7 +66,7 @@ WRITE8_HANDLER( redalert_audio_command_w )
|
||||
{
|
||||
redalert_state *state = space->machine().driver_data<redalert_state>();
|
||||
/* the byte is connected to port A of the AY8910 */
|
||||
state->soundlatch_w(*space, 0, data);
|
||||
state->soundlatch_byte_w(*space, 0, data);
|
||||
|
||||
/* D7 is also connected to the NMI input of the CPU -
|
||||
the NMI is actually toggled by a 74121 */
|
||||
@ -119,7 +119,7 @@ static const ay8910_interface redalert_ay8910_interface =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_NULL, /* port A/B read */
|
||||
DEVCB_NULL,
|
||||
DEVCB_HANDLER(redalert_analog_w) /* port A/B write */
|
||||
@ -158,7 +158,7 @@ static SOUND_START( redalert_audio )
|
||||
WRITE8_HANDLER( redalert_voice_command_w )
|
||||
{
|
||||
redalert_state *state = space->machine().driver_data<redalert_state>();
|
||||
state->soundlatch2_w(*space, 0, (data & 0x78) >> 3);
|
||||
state->soundlatch2_byte_w(*space, 0, (data & 0x78) >> 3);
|
||||
cputag_set_input_line(space->machine(), "voice", I8085_RST75_LINE, (~data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
@ -188,7 +188,7 @@ static ADDRESS_MAP_START( redalert_voice_map, AS_PROGRAM, 8, driver_device )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x7fff) AM_NOP
|
||||
AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x3c00) AM_RAM
|
||||
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x3fff) AM_READ(soundlatch2_r) AM_WRITENOP
|
||||
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x3fff) AM_READ(soundlatch2_byte_r) AM_WRITENOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -286,7 +286,7 @@ WRITE8_HANDLER( demoneye_audio_command_w )
|
||||
{
|
||||
redalert_state *state = space->machine().driver_data<redalert_state>();
|
||||
/* the byte is connected to port A of the AY8910 */
|
||||
state->soundlatch_w(*space, 0, data);
|
||||
state->soundlatch_byte_w(*space, 0, data);
|
||||
cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -359,7 +359,7 @@ static const ay8910_interface demoneye_ay8910_interface =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_NULL, /* port A/B read */
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL /* port A/B write */
|
||||
|
@ -126,7 +126,7 @@ READ8_DEVICE_HANDLER( hotshock_soundlatch_r )
|
||||
{
|
||||
driver_device *drvstate = device->machine().driver_data<driver_device>();
|
||||
cputag_set_input_line(device->machine(), "audiocpu", 0, CLEAR_LINE);
|
||||
return drvstate->soundlatch_r(*device->machine().device("audiocpu")->memory().space(AS_PROGRAM),0);
|
||||
return drvstate->soundlatch_byte_r(*device->machine().device("audiocpu")->memory().space(AS_PROGRAM),0);
|
||||
}
|
||||
|
||||
static void filter_w(device_t *device, int data)
|
||||
|
@ -198,7 +198,7 @@ static const ay8910_interface timeplt_ay8910_interface =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_DEVICE_HANDLER("timeplt_audio", timeplt_portB_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
|
@ -544,7 +544,7 @@ static READ8_HANDLER( narc_command_r )
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
device_set_input_line(state->sound_cpu, M6809_IRQ_LINE, CLEAR_LINE);
|
||||
state->sound_int_state = 0;
|
||||
return drvstate->soundlatch_r(*space, 0);
|
||||
return drvstate->soundlatch_byte_r(*space, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -552,7 +552,7 @@ static WRITE8_HANDLER( narc_command2_w )
|
||||
{
|
||||
williams_audio_state *state = &audio;
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
drvstate->soundlatch2_w(*space, 0, data & 0xff);
|
||||
drvstate->soundlatch2_byte_w(*space, 0, data & 0xff);
|
||||
device_set_input_line(state->soundalt_cpu, M6809_FIRQ_LINE, ASSERT_LINE);
|
||||
}
|
||||
|
||||
@ -562,7 +562,7 @@ static READ8_HANDLER( narc_command2_r )
|
||||
williams_audio_state *state = &audio;
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
device_set_input_line(state->soundalt_cpu, M6809_FIRQ_LINE, CLEAR_LINE);
|
||||
return drvstate->soundlatch2_r(*space, 0);
|
||||
return drvstate->soundlatch2_byte_r(*space, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -619,7 +619,7 @@ void williams_narc_data_w(running_machine &machine, int data)
|
||||
device_t *sound_cpu = state->sound_cpu;
|
||||
address_space *space = sound_cpu->memory().space(AS_PROGRAM);
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
drvstate->soundlatch_w(*space, 0, data & 0xff);
|
||||
drvstate->soundlatch_byte_w(*space, 0, data & 0xff);
|
||||
device_set_input_line(sound_cpu, INPUT_LINE_NMI, (data & 0x100) ? CLEAR_LINE : ASSERT_LINE);
|
||||
if (!(data & 0x200))
|
||||
{
|
||||
@ -697,7 +697,7 @@ static READ8_HANDLER( adpcm_command_r )
|
||||
self-tests to pass */
|
||||
space->machine().scheduler().timer_set(attotime::from_usec(10), FUNC(clear_irq_state));
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
return drvstate->soundlatch_r(*space, 0);
|
||||
return drvstate->soundlatch_byte_r(*space, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -720,7 +720,7 @@ void williams_adpcm_data_w(running_machine &machine, int data)
|
||||
device_t *sound_cpu = state->sound_cpu;
|
||||
address_space *space = sound_cpu->memory().space(AS_PROGRAM);
|
||||
driver_device *drvstate = space->machine().driver_data<driver_device>();
|
||||
drvstate->soundlatch_w(*space, 0, data & 0xff);
|
||||
drvstate->soundlatch_byte_w(*space, 0, data & 0xff);
|
||||
if (!(data & 0x200))
|
||||
{
|
||||
device_set_input_line(sound_cpu, M6809_IRQ_LINE, ASSERT_LINE);
|
||||
|
@ -94,7 +94,7 @@ static ADDRESS_MAP_START( c1942_map, AS_PROGRAM, 8, _1942_state )
|
||||
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc802, 0xc803) AM_WRITE(c1942_scroll_w)
|
||||
AM_RANGE(0xc804, 0xc804) AM_WRITE(c1942_c804_w)
|
||||
AM_RANGE(0xc805, 0xc805) AM_WRITE(c1942_palette_bank_w)
|
||||
@ -108,7 +108,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _1942_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -59,7 +59,7 @@ static ADDRESS_MAP_START( c1943_map, AS_PROGRAM, 8, _1943_state )
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSWA")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xc007, 0xc007) AM_READ(c1943_protection_r)
|
||||
AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc804, 0xc804) AM_WRITE(c1943_c804_w) // ROM bank switch, screen flip
|
||||
AM_RANGE(0xc806, 0xc806) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0xc807, 0xc807) AM_WRITENOP // ???
|
||||
@ -80,7 +80,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _1943_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xe000, 0xe001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0xe002, 0xe003) AM_DEVWRITE_LEGACY("ym2", ym2203_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -236,7 +236,7 @@ static TIMER_CALLBACK( nmi_callback )
|
||||
|
||||
WRITE8_MEMBER(fortyl_state::sound_command_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
machine().scheduler().synchronize(FUNC(nmi_callback), data);
|
||||
}
|
||||
|
||||
@ -750,7 +750,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fortyl_state )
|
||||
AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
|
||||
AM_RANGE(0xcc00, 0xcc00) AM_DEVWRITE_LEGACY("msm", sound_control_0_w)
|
||||
AM_RANGE(0xce00, 0xce00) AM_DEVWRITE_LEGACY("msm", sound_control_1_w)
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_r) AM_WRITE(to_main_w)
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r) AM_WRITE(to_main_w)
|
||||
AM_RANGE(0xda00, 0xda00) AM_READNOP AM_WRITE(nmi_enable_w) /* unknown read */
|
||||
AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w)
|
||||
AM_RANGE(0xde00, 0xde00) AM_READNOP AM_DEVWRITE_LEGACY("dac", dac_signed_w) /* signed 8-bit DAC - unknown read */
|
||||
|
@ -134,7 +134,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state )
|
||||
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram)
|
||||
AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w)
|
||||
AM_RANGE(0x5f88, 0x5f88) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x5f90, 0x5f90) AM_WRITE(k88games_sh_irqtrigger_w)
|
||||
AM_RANGE(0x5f94, 0x5f94) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x5f95, 0x5f95) AM_READ_PORT("IN1")
|
||||
@ -150,7 +150,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _88games_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x9000, 0x9000) AM_WRITE(speech_msg_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(speech_control_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -55,7 +55,7 @@ READ8_MEMBER(actfancr_state::triothep_control_r)
|
||||
|
||||
WRITE8_MEMBER(actfancr_state::actfancr_sound_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -118,7 +118,7 @@ static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, actfancr_state )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM
|
||||
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x4000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -83,8 +83,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, aeroboto_state )
|
||||
AM_RANGE(0x2900, 0x2fff) AM_WRITENOP // cleared along with sprite RAM
|
||||
AM_RANGE(0x2973, 0x2973) AM_READ(aeroboto_2973_r) // protection read
|
||||
AM_RANGE(0x3000, 0x3000) AM_READWRITE(aeroboto_in0_r, aeroboto_3000_w)
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_w)
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_byte_w)
|
||||
AM_RANGE(0x3003, 0x3003) AM_WRITEONLY AM_BASE(m_vscroll)
|
||||
AM_RANGE(0x3004, 0x3004) AM_READ(aeroboto_201_r) AM_WRITEONLY AM_BASE(m_starx)
|
||||
AM_RANGE(0x3005, 0x3005) AM_WRITEONLY AM_BASE(m_stary) // usable but probably wrong
|
||||
@ -217,8 +217,8 @@ static const ay8910_interface ay8910_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
@ -71,7 +71,7 @@ WRITE16_MEMBER(aerofgt_state::sound_command_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_pending_command = 1;
|
||||
soundlatch_w(space, offset, data & 0xff);
|
||||
soundlatch_byte_w(space, offset, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -81,7 +81,7 @@ WRITE16_MEMBER(aerofgt_state::turbofrc_sound_command_w)
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_pending_command = 1;
|
||||
soundlatch_w(space, offset, (data >> 8) & 0xff);
|
||||
soundlatch_byte_w(space, offset, (data >> 8) & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -90,7 +90,7 @@ WRITE16_MEMBER(aerofgt_state::aerfboot_soundlatch_w)
|
||||
{
|
||||
if(ACCESSING_BITS_8_15)
|
||||
{
|
||||
soundlatch_w(space, 0, (data >> 8) & 0xff);
|
||||
soundlatch_byte_w(space, 0, (data >> 8) & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -385,7 +385,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( turbofrc_sound_portmap, AS_IO, 8, aerofgt_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(aerofgt_sh_bankswitch_w)
|
||||
AM_RANGE(0x14, 0x14) AM_READ(soundlatch_r) AM_WRITE(pending_command_clear_w)
|
||||
AM_RANGE(0x14, 0x14) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w)
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -394,7 +394,7 @@ static ADDRESS_MAP_START( aerofgt_sound_portmap, AS_IO, 8, aerofgt_state )
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
|
||||
AM_RANGE(0x04, 0x04) AM_WRITE(aerofgt_sh_bankswitch_w)
|
||||
AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w)
|
||||
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( aerfboot_sound_map, AS_PROGRAM, 8, aerofgt_state )
|
||||
@ -402,7 +402,7 @@ static ADDRESS_MAP_START( aerfboot_sound_map, AS_PROGRAM, 8, aerofgt_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x9000, 0x9000) AM_WRITE(aerfboot_okim6295_banking_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( wbbc97_sound_map, AS_PROGRAM, 8, aerofgt_state )
|
||||
@ -411,7 +411,7 @@ static ADDRESS_MAP_START( wbbc97_sound_map, AS_PROGRAM, 8, aerofgt_state )
|
||||
AM_RANGE(0xf800, 0xf800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xf810, 0xf811) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
|
||||
AM_RANGE(0xfc00, 0xfc00) AM_NOP
|
||||
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( pspikes )
|
||||
|
@ -295,25 +295,25 @@ READ8_MEMBER(airbustr_state::soundcommand_status_r)
|
||||
READ8_MEMBER(airbustr_state::soundcommand_r)
|
||||
{
|
||||
m_soundlatch_status = 0; // soundlatch has been read
|
||||
return soundlatch_r(space, 0);
|
||||
return soundlatch_byte_r(space, 0);
|
||||
}
|
||||
|
||||
READ8_MEMBER(airbustr_state::soundcommand2_r)
|
||||
{
|
||||
m_soundlatch2_status = 0; // soundlatch2 has been read
|
||||
return soundlatch2_r(space, 0);
|
||||
return soundlatch2_byte_r(space, 0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(airbustr_state::soundcommand_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
m_soundlatch_status = 1; // soundlatch has been written
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE); // cause a nmi to sub cpu
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(airbustr_state::soundcommand2_w)
|
||||
{
|
||||
soundlatch2_w(space, 0, data);
|
||||
soundlatch2_byte_w(space, 0, data);
|
||||
m_soundlatch2_status = 1; // soundlatch2 has been written
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ static ADDRESS_MAP_START( ajax_sound_map, AS_PROGRAM, 8, ajax_state )
|
||||
AM_RANGE(0xb80c, 0xb80c) AM_DEVWRITE_LEGACY("k007232_2", k007232_extvol_w) /* extra volume, goes to the 007232 w/ A11 */
|
||||
/* selecting a different latch for the external port */
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -69,7 +69,7 @@ WRITE8_MEMBER(aliens_state::aliens_coin_counter_w)
|
||||
WRITE8_MEMBER(aliens_state::aliens_sh_irqtrigger_w)
|
||||
{
|
||||
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ static ADDRESS_MAP_START( aliens_sound_map, AS_PROGRAM, 8, aliens_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM g04_b03.bin */
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* soundlatch_r */
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
|
||||
AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -296,20 +296,20 @@ READ16_MEMBER(alpha68k_state::jongbou_inputs_r)
|
||||
WRITE16_MEMBER(alpha68k_state::kyros_sound_w)
|
||||
{
|
||||
if(ACCESSING_BITS_8_15)
|
||||
soundlatch_w(space, 0, (data >> 8) & 0xff);
|
||||
soundlatch_byte_w(space, 0, (data >> 8) & 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(alpha68k_state::alpha68k_II_sound_w)
|
||||
{
|
||||
if(ACCESSING_BITS_0_7)
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(alpha68k_state::alpha68k_V_sound_w)
|
||||
{
|
||||
/* Sound & fix bank select are in the same word */
|
||||
if(ACCESSING_BITS_0_7)
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
if(ACCESSING_BITS_8_15)
|
||||
alpha68k_V_video_bank_w(machine(), (data >> 8) & 0xff);
|
||||
}
|
||||
@ -319,7 +319,7 @@ WRITE16_MEMBER(alpha68k_state::paddlema_soundlatch_w)
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
}
|
||||
}
|
||||
@ -329,7 +329,7 @@ WRITE16_MEMBER(alpha68k_state::tnextspc_soundlatch_w)
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -750,8 +750,8 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( kyros_sound_map, AS_PROGRAM, 8, alpha68k_state )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xe002, 0xe002) AM_WRITE(soundlatch_clear_w)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xe002, 0xe002) AM_WRITE(soundlatch_clear_byte_w)
|
||||
AM_RANGE(0xe004, 0xe004) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
|
||||
AM_RANGE(0xe006, 0xe00e) AM_WRITENOP // soundboard I/O's, ignored
|
||||
/* reference only
|
||||
@ -766,8 +766,8 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sstingry_sound_map, AS_PROGRAM, 8, alpha68k_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0xc100, 0xc100) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc102, 0xc102) AM_WRITE(soundlatch_clear_w)
|
||||
AM_RANGE(0xc100, 0xc100) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xc102, 0xc102) AM_WRITE(soundlatch_clear_byte_w)
|
||||
AM_RANGE(0xc104, 0xc104) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
|
||||
AM_RANGE(0xc106, 0xc10e) AM_WRITENOP // soundboard I/O's, ignored
|
||||
ADDRESS_MAP_END
|
||||
@ -779,7 +779,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( alpha68k_I_s_map, AS_PROGRAM, 8, alpha68k_state )
|
||||
AM_RANGE(0x0000, 0x9fff) AM_ROM
|
||||
AM_RANGE(0xe000, 0xe000) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w)
|
||||
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_status_port_r, ym3812_control_port_w)
|
||||
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ymsnd", ym3812_write_port_w)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
@ -790,12 +790,12 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( tnextspc_sound_map, AS_PROGRAM, 8, alpha68k_state )
|
||||
AM_RANGE(0x0000, 0xefff) AM_ROM
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
AM_RANGE(0xf800, 0xf800) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
|
||||
AM_RANGE(0xf800, 0xf800) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, alpha68k_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w)
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w)
|
||||
AM_RANGE(0x08, 0x08) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
|
||||
AM_RANGE(0x0a, 0x0b) AM_DEVWRITE_LEGACY("ym2", ym2413_w)
|
||||
AM_RANGE(0x0c, 0x0d) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
@ -815,7 +815,7 @@ static ADDRESS_MAP_START( jongbou_sound_portmap, AS_IO, 8, alpha68k_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w)
|
||||
AM_RANGE(0x01, 0x01) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_data_w)
|
||||
AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w)
|
||||
AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_byte_w)
|
||||
AM_RANGE(0x06, 0x06) AM_WRITENOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1823,7 +1823,7 @@ static const ay8910_interface ay8910_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r)
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r)
|
||||
};
|
||||
|
||||
WRITE8_MEMBER(alpha68k_state::porta_w)
|
||||
@ -1847,7 +1847,7 @@ static const ym2203_interface ym2203_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_DRIVER_MEMBER(alpha68k_state, porta_w),
|
||||
DEVCB_NULL
|
||||
|
@ -69,7 +69,7 @@ static READ8_DEVICE_HANDLER( amspdwy_sound_r )
|
||||
|
||||
WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( amspdwy_sound_map, AS_PROGRAM, 8, amspdwy_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
|
||||
// AM_RANGE(0x8000, 0x8000) AM_WRITENOP // ? Written with 0 at the start
|
||||
AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r) // From Main CPU
|
||||
AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_byte_r) // From Main CPU
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) //
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM // Work RAM
|
||||
AM_RANGE(0xffff, 0xffff) AM_READNOP // ??? IY = FFFF at the start ?
|
||||
|
@ -62,7 +62,7 @@ WRITE16_MEMBER(aquarium_state::aquarium_sound_w)
|
||||
{
|
||||
// popmessage("sound write %04x",data);
|
||||
|
||||
soundlatch_w(space, 1, data & 0xff);
|
||||
soundlatch_byte_w(space, 1, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
|
||||
}
|
||||
|
||||
@ -131,7 +131,7 @@ static ADDRESS_MAP_START( snd_portmap, AS_IO, 8, aquarium_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x02, 0x02) AM_READWRITE(aquarium_oki_r, aquarium_oki_w)
|
||||
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x06, 0x06) AM_WRITE(aquarium_snd_ack_w)
|
||||
AM_RANGE(0x08, 0x08) AM_WRITE(aquarium_z80_bank_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -198,7 +198,7 @@ static ADDRESS_MAP_START( argus_map, AS_PROGRAM, 8, argus_state )
|
||||
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc201, 0xc201) AM_WRITE(argus_flipscreen_w)
|
||||
AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w)
|
||||
AM_RANGE(0xc300, 0xc301) AM_RAM AM_BASE(m_bg0_scrollx)
|
||||
@ -222,7 +222,7 @@ static ADDRESS_MAP_START( valtric_map, AS_PROGRAM, 8, argus_state )
|
||||
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc201, 0xc201) AM_WRITE(argus_flipscreen_w)
|
||||
AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w)
|
||||
AM_RANGE(0xc300, 0xc300) AM_WRITE(valtric_unknown_w)
|
||||
@ -247,7 +247,7 @@ static ADDRESS_MAP_START( butasan_map, AS_PROGRAM, 8, argus_state )
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0xc100, 0xc100) AM_WRITE(butasan_unknown_w)
|
||||
AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc201, 0xc201) AM_WRITE(argus_flipscreen_w)
|
||||
AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w)
|
||||
AM_RANGE(0xc203, 0xc203) AM_WRITE(butasan_pageselect_w)
|
||||
@ -268,13 +268,13 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map_a, AS_PROGRAM, 8, argus_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_map_b, AS_PROGRAM, 8, argus_state )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
#if 0
|
||||
|
@ -361,12 +361,12 @@ WRITE16_MEMBER(armedf_state::bootleg_io_w)
|
||||
WRITE16_MEMBER(armedf_state::sound_command_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
soundlatch_w(space, 0, ((data & 0x7f) << 1) | 1);
|
||||
soundlatch_byte_w(space, 0, ((data & 0x7f) << 1) | 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(armedf_state::soundlatch_clear_r)
|
||||
{
|
||||
soundlatch_clear_w(space, 0, 0);
|
||||
soundlatch_clear_byte_w(space, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -758,7 +758,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, armedf_state )
|
||||
AM_RANGE(0x2, 0x2) AM_DEVWRITE_LEGACY("dac1", dac_signed_w)
|
||||
AM_RANGE(0x3, 0x3) AM_DEVWRITE_LEGACY("dac2", dac_signed_w)
|
||||
AM_RANGE(0x4, 0x4) AM_READ(soundlatch_clear_r)
|
||||
AM_RANGE(0x6, 0x6) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x6, 0x6) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -91,7 +91,7 @@ WRITE16_MEMBER(ashnojoe_state::ashnojoe_soundlatch_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_soundlatch_status = 1;
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ WRITE8_MEMBER(ashnojoe_state::adpcm_w)
|
||||
READ8_MEMBER(ashnojoe_state::sound_latch_r)
|
||||
{
|
||||
m_soundlatch_status = 0;
|
||||
return soundlatch_r(space, 0);
|
||||
return soundlatch_byte_r(space, 0);
|
||||
}
|
||||
|
||||
READ8_MEMBER(ashnojoe_state::sound_latch_status_r)
|
||||
|
@ -522,7 +522,7 @@ static const ay8910_interface ay8912_interface =
|
||||
|
||||
WRITE8_MEMBER(astrocde_state::tenpindx_sound_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
cputag_set_input_line(machine(), "sub", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -708,7 +708,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( tenpin_sub_io_map, AS_IO, 8, astrocde_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x90, 0x93) AM_DEVREADWRITE_LEGACY("ctc", z80ctc_r, z80ctc_w)
|
||||
AM_RANGE(0x97, 0x97) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x97, 0x97) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x98, 0x98) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w)
|
||||
AM_RANGE(0x98, 0x98) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
|
||||
AM_RANGE(0x9a, 0x9a) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w)
|
||||
|
@ -35,7 +35,7 @@ WRITE8_MEMBER(battlera_state::battlera_sound_w)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
soundlatch_w(space,0,data);
|
||||
soundlatch_byte_w(space,0,data);
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
|
||||
}
|
||||
}
|
||||
@ -111,7 +111,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state )
|
||||
AM_RANGE(0x080000, 0x080001) AM_WRITE(battlera_adpcm_data_w)
|
||||
AM_RANGE(0x1fe800, 0x1fe80f) AM_DEVWRITE_LEGACY("c6280", c6280_w)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank7") /* Main ram */
|
||||
AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_r) AM_DEVWRITE_LEGACY("msm", battlera_adpcm_reset_w)
|
||||
AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_byte_r) AM_DEVWRITE_LEGACY("msm", battlera_adpcm_reset_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -70,7 +70,7 @@ static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8, battlnts_state )
|
||||
AM_RANGE(0x2e08, 0x2e08) AM_WRITE(battlnts_bankswitch_w) /* bankswitch control */
|
||||
AM_RANGE(0x2e0c, 0x2e0c) AM_WRITE(battlnts_spritebank_w) /* sprite bank select */
|
||||
AM_RANGE(0x2e10, 0x2e10) AM_WRITE(watchdog_reset_w) /* watchdog reset */
|
||||
AM_RANGE(0x2e14, 0x2e14) AM_WRITE(soundlatch_w) /* sound code # */
|
||||
AM_RANGE(0x2e14, 0x2e14) AM_WRITE(soundlatch_byte_w) /* sound code # */
|
||||
AM_RANGE(0x2e18, 0x2e18) AM_WRITE(battlnts_sh_irqtrigger_w) /* cause interrupt on audio CPU */
|
||||
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* banked ROM */
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM 777e02.bin */
|
||||
@ -81,7 +81,7 @@ static ADDRESS_MAP_START( battlnts_sound_map, AS_PROGRAM, 8, battlnts_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ym1", ym3812_r, ym3812_w) /* YM3812 (chip 1) */
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ym2", ym3812_r, ym3812_w) /* YM3812 (chip 2) */
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*************************************
|
||||
|
@ -253,7 +253,7 @@ WRITE16_MEMBER(bbusters_state::sound_cpu_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data&0xff);
|
||||
soundlatch_byte_w(space, 0, data&0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -376,7 +376,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bbusters_state )
|
||||
AM_RANGE(0x0000, 0xefff) AM_ROM
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r) AM_WRITE(sound_status_w)
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r) AM_WRITE(sound_status_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, bbusters_state )
|
||||
|
@ -695,7 +695,7 @@ static ADDRESS_MAP_START( sc1_base, AS_PROGRAM, 8, bfm_sc1_state )
|
||||
|
||||
AM_RANGE(0x2E00, 0x2E00) AM_READ(irqlatch_r) // irq latch
|
||||
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x3001, 0x3001) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w)
|
||||
AM_RANGE(0x3101, 0x3201) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w)
|
||||
|
||||
|
@ -89,7 +89,7 @@ READ8_MEMBER(bingoc_state::sound_test_r)
|
||||
#else
|
||||
WRITE16_MEMBER(bingoc_state::main_sound_latch_w)
|
||||
{
|
||||
soundlatch_w(space,0,data&0xff);
|
||||
soundlatch_byte_w(space,0,data&0xff);
|
||||
cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
#endif
|
||||
@ -127,7 +127,7 @@ static ADDRESS_MAP_START( sound_io, AS_IO, 8, bingoc_state )
|
||||
AM_RANGE(0x40, 0x40) AM_DEVWRITE_LEGACY("upd", bingoc_play_w)
|
||||
AM_RANGE(0x80, 0x80) AM_DEVWRITE_LEGACY("upd", upd7759_port_w)
|
||||
#if !SOUND_TEST
|
||||
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) //soundlatch
|
||||
AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_byte_r) //soundlatch
|
||||
#else
|
||||
AM_RANGE(0xc0, 0xc0) AM_READ(sound_test_r)
|
||||
#endif
|
||||
|
@ -102,7 +102,7 @@ WRITE16_MEMBER(bionicc_state::hacked_soundcommand_w)
|
||||
{
|
||||
|
||||
COMBINE_DATA(&m_soundcommand);
|
||||
soundlatch_w(space, 0, m_soundcommand & 0xff);
|
||||
soundlatch_byte_w(space, 0, m_soundcommand & 0xff);
|
||||
}
|
||||
|
||||
READ16_MEMBER(bionicc_state::hacked_soundcommand_r)
|
||||
@ -164,7 +164,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bionicc_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -42,7 +42,7 @@ WRITE8_MEMBER(bking_state::bking_soundlatch_w)
|
||||
if (data & (1 << i))
|
||||
code |= 0x80 >> i;
|
||||
|
||||
soundlatch_w(space, offset, code);
|
||||
soundlatch_byte_w(space, offset, code);
|
||||
if (m_sound_nmi_enable)
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
@ -133,7 +133,7 @@ static ADDRESS_MAP_START( bking_audio_map, AS_PROGRAM, 8, bking_state )
|
||||
AM_RANGE(0x4401, 0x4401) AM_DEVREAD_LEGACY("ay1", ay8910_r)
|
||||
AM_RANGE(0x4402, 0x4403) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
|
||||
AM_RANGE(0x4403, 0x4403) AM_DEVREAD_LEGACY("ay2", ay8910_r)
|
||||
AM_RANGE(0x4800, 0x4800) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x4800, 0x4800) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x4802, 0x4802) AM_READWRITE(bking_sndnmi_disable_r, bking_sndnmi_enable_w)
|
||||
AM_RANGE(0xe000, 0xefff) AM_ROM /* Space for diagnostic ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
@ -90,7 +90,7 @@ WRITE8_MEMBER(bladestl_state::bladestl_bankswitch_w)
|
||||
WRITE8_MEMBER(bladestl_state::bladestl_sh_irqtrigger_w)
|
||||
{
|
||||
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
|
||||
//logerror("(sound) write %02x\n", data);
|
||||
}
|
||||
@ -146,7 +146,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bladestl_state )
|
||||
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE_LEGACY("upd", bladestl_speech_ctrl_w) /* UPD7759 */
|
||||
AM_RANGE(0x4000, 0x4000) AM_DEVREAD_LEGACY("upd", bladestl_speech_busy_r) /* UPD7759 */
|
||||
AM_RANGE(0x5000, 0x5000) AM_WRITENOP /* ??? */
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) /* soundlatch_r */
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -80,7 +80,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( blktiger_io_map, AS_IO, 8, blktiger_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(blktiger_bankswitch_w)
|
||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE(blktiger_coinlockout_w)
|
||||
@ -97,7 +97,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( blktigerbl_io_map, AS_IO, 8, blktiger_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(blktiger_bankswitch_w)
|
||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE(blktiger_coinlockout_w)
|
||||
@ -115,7 +115,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( blktiger_sound_map, AS_PROGRAM, 8, blktiger_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
|
||||
AM_RANGE(0xe002, 0xe003) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r, ym2203_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -92,7 +92,7 @@ WRITE8_MEMBER(blockhl_state::k052109_051960_w)
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
|
||||
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(blockhl_sh_irqtrigger_w)
|
||||
AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW3")
|
||||
@ -110,7 +110,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, blockhl_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xe00c, 0xe00d) AM_WRITENOP /* leftover from missing 007232? */
|
||||
ADDRESS_MAP_END
|
||||
|
@ -79,7 +79,7 @@ WRITE16_MEMBER(blockout_state::blockout_sound_command_w)
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, offset, data & 0xff);
|
||||
soundlatch_byte_w(space, offset, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -147,7 +147,7 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, blockout_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -70,7 +70,7 @@ READ8_MEMBER(blueprnt_state::blueprnt_sh_dipsw_r)
|
||||
|
||||
WRITE8_MEMBER(blueprnt_state::blueprnt_sound_command_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -254,7 +254,7 @@ static const ay8910_interface ay8910_interface_1 =
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_NULL,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_HANDLER(dipsw_w),
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
@ -134,7 +134,7 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, boogwing_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
|
@ -169,7 +169,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bottom9_state )
|
||||
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0x1f90, 0x1f90) AM_WRITE(bottom9_1f90_w)
|
||||
AM_RANGE(0x1fa0, 0x1fa0) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x1fb0, 0x1fb0) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x1fb0, 0x1fb0) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x1fc0, 0x1fc0) AM_WRITE(bottom9_sh_irqtrigger_w)
|
||||
AM_RANGE(0x1fd0, 0x1fd0) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x1fd1, 0x1fd1) AM_READ_PORT("P1")
|
||||
@ -190,7 +190,7 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, bottom9_state )
|
||||
AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w)
|
||||
AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w)
|
||||
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w)
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(nmi_enable_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -92,7 +92,7 @@ WRITE8_MEMBER(brkthru_state::darwin_0803_w)
|
||||
|
||||
WRITE8_MEMBER(brkthru_state::brkthru_soundlatch_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, brkthru_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE_LEGACY("ym2", ym3526_w)
|
||||
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x6000, 0x6001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -511,7 +511,7 @@ static ADDRESS_MAP_START( disco_audio_map, AS_PROGRAM, 8, btime_state )
|
||||
AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
|
||||
AM_RANGE(0x6000, 0x6fff) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
|
||||
AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
|
||||
AM_RANGE(0x8000, 0x8fff) AM_READ(soundlatch_r) AM_WRITENOP /* ack ? */
|
||||
AM_RANGE(0x8000, 0x8fff) AM_READ(soundlatch_byte_r) AM_WRITENOP /* ack ? */
|
||||
AM_RANGE(0xf000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -541,14 +541,14 @@ static INPUT_CHANGED( coin_inserted_nmi_lo )
|
||||
|
||||
WRITE8_MEMBER(btime_state::audio_command_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER(btime_state::audio_command_r)
|
||||
{
|
||||
device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
|
||||
return soundlatch_r(space, offset);
|
||||
return soundlatch_byte_r(space, offset);
|
||||
}
|
||||
|
||||
READ8_MEMBER(btime_state::zoar_dsw1_read)
|
||||
|
@ -308,7 +308,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bublbobl_state )
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM
|
||||
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ym2", ym3526_r, ym3526_w)
|
||||
AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r) AM_WRITE(bublbobl_sound_status_w)
|
||||
AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_byte_r) AM_WRITE(bublbobl_sound_status_w)
|
||||
AM_RANGE(0xb001, 0xb001) AM_WRITE(bublbobl_sh_nmi_enable_w) AM_READNOP
|
||||
AM_RANGE(0xb002, 0xb002) AM_WRITE(bublbobl_sh_nmi_disable_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM?
|
||||
@ -392,7 +392,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( tokio_sound_map, AS_PROGRAM, 8, bublbobl_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM
|
||||
AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r) AM_WRITE(bublbobl_sound_status_w)
|
||||
AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_byte_r) AM_WRITE(bublbobl_sound_status_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_READNOP // ???
|
||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(bublbobl_sh_nmi_disable_w)
|
||||
AM_RANGE(0xa800, 0xa800) AM_WRITE(bublbobl_sh_nmi_enable_w)
|
||||
|
@ -103,7 +103,7 @@ static TIMER_CALLBACK( nmi_callback )
|
||||
|
||||
WRITE8_MEMBER(buggychl_state::sound_command_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
machine().scheduler().synchronize(FUNC(nmi_callback), data);
|
||||
}
|
||||
|
||||
@ -169,7 +169,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, buggychl_state )
|
||||
AM_RANGE(0x4810, 0x481d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
|
||||
AM_RANGE(0x4820, 0x4820) AM_RAM /* VOL/BAL for the 7630 on the MSM5232 output */
|
||||
AM_RANGE(0x4830, 0x4830) AM_RAM /* TRBL/BASS for the 7630 on the MSM5232 output */
|
||||
AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_byte_r)
|
||||
// AM_RANGE(0x5001, 0x5001) AM_READNOP /* is command pending? */
|
||||
AM_RANGE(0x5001, 0x5001) AM_WRITE(nmi_enable_w)
|
||||
AM_RANGE(0x5002, 0x5002) AM_WRITE(nmi_disable_w)
|
||||
|
@ -103,7 +103,7 @@ WRITE8_MEMBER(bwing_state::bwp1_ctrl_w)
|
||||
device_set_input_line(m_subcpu, INPUT_LINE_NMI, ASSERT_LINE); // SNMI
|
||||
else
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ
|
||||
}
|
||||
break;
|
||||
@ -178,7 +178,7 @@ static ADDRESS_MAP_START( bwp3_map, AS_PROGRAM, 8, bwing_state )
|
||||
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
|
||||
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
|
||||
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xd000, 0xd000) AM_WRITE(bwp3_nmimask_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_ROM AM_BASE_SIZE(m_bwp3_rombase, m_bwp3_romsize)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -199,13 +199,13 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( cabalbl_sound_map, AS_PROGRAM, 8, cabal_state )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x2fff) AM_RAM
|
||||
AM_RANGE(0x4000, 0x4000) AM_WRITE(soundlatch3_w)
|
||||
AM_RANGE(0x4002, 0x4002) AM_WRITE(soundlatch4_w)
|
||||
AM_RANGE(0x4000, 0x4000) AM_WRITE(soundlatch3_byte_w)
|
||||
AM_RANGE(0x4002, 0x4002) AM_WRITE(soundlatch4_byte_w)
|
||||
AM_RANGE(0x4004, 0x4004) AM_WRITE(cabalbl_coin_w)
|
||||
AM_RANGE(0x4006, 0x4006) AM_READ_PORT("COIN")
|
||||
AM_RANGE(0x4008, 0x4008) AM_READ(cabalbl_snd2_r)
|
||||
AM_RANGE(0x400a, 0x400a) AM_READ(cabalbl_snd1_r)
|
||||
AM_RANGE(0x400c, 0x400c) AM_WRITE(soundlatch2_w)
|
||||
AM_RANGE(0x400c, 0x400c) AM_WRITE(soundlatch2_byte_w)
|
||||
AM_RANGE(0x400e, 0x400f) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x6000, 0x6000) AM_WRITENOP /* ??? */
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
@ -228,7 +228,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cabalbl_talk1_portmap, AS_IO, 8, cabal_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_r)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch3_byte_r)
|
||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm1", cabalbl_adpcm_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -238,7 +238,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cabalbl_talk2_portmap, AS_IO, 8, cabal_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch4_r)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch4_byte_r)
|
||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm2", cabalbl_adpcm_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -224,8 +224,8 @@ WRITE8_MEMBER(calorie_state::calorie_flipscreen_w)
|
||||
|
||||
READ8_MEMBER(calorie_state::calorie_soundlatch_r)
|
||||
{
|
||||
UINT8 latch = soundlatch_r(space, 0);
|
||||
soundlatch_clear_w(space, 0, 0);
|
||||
UINT8 latch = soundlatch_byte_r(space, 0);
|
||||
soundlatch_clear_byte_w(space, 0, 0);
|
||||
return latch;
|
||||
}
|
||||
|
||||
@ -253,7 +253,7 @@ static ADDRESS_MAP_START( calorie_map, AS_PROGRAM, 8, calorie_state )
|
||||
AM_RANGE(0xf002, 0xf002) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xf004, 0xf004) AM_READ_PORT("DSW1") AM_WRITE(calorie_flipscreen_w)
|
||||
AM_RANGE(0xf005, 0xf005) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0xf800, 0xf800) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xf800, 0xf800) AM_WRITE(soundlatch_byte_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -183,7 +183,7 @@ WRITE8_MEMBER(capbowl_state::track_reset_w)
|
||||
WRITE8_MEMBER(capbowl_state::capbowl_sndcmd_w)
|
||||
{
|
||||
device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
}
|
||||
|
||||
|
||||
@ -264,7 +264,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, capbowl_state )
|
||||
AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
|
||||
AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* Not hooked up according to the schematics */
|
||||
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("dac", dac_w)
|
||||
AM_RANGE(0x7000, 0x7000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x7000, 0x7000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -71,7 +71,7 @@ static ADDRESS_MAP_START( carjmbre_map, AS_PROGRAM, 8, carjmbre_state )
|
||||
AM_RANGE(0x9800, 0x985f) AM_MIRROR(0x80) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW") AM_WRITE(soundlatch_byte_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( carjmbre_sound_map, AS_PROGRAM, 8, carjmbre_state )
|
||||
@ -82,7 +82,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( carjmbre_sound_io_map, AS_IO, 8, carjmbre_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x10, 0x10) AM_WRITENOP //?? written on init/0xff sound command reset
|
||||
AM_RANGE(0x20, 0x21) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
|
||||
AM_RANGE(0x22, 0x22) AM_WRITENOP //?? written before and after 0x21 with same value
|
||||
|
@ -39,7 +39,7 @@ WRITE16_MEMBER(cbuster_state::twocrude_control_w)
|
||||
return;
|
||||
|
||||
case 2: /* Sound CPU write */
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
return;
|
||||
|
||||
@ -133,7 +133,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cbuster_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ym2", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
|
@ -56,7 +56,7 @@ static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 8, cchasm_state )
|
||||
AM_RANGE(0x6001, 0x6001) AM_MIRROR(0xf9e) AM_DEVREAD_LEGACY("ay1", ay8910_r)
|
||||
AM_RANGE(0x6020, 0x6021) AM_MIRROR(0xf9e) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
|
||||
AM_RANGE(0x6021, 0x6021) AM_MIRROR(0xf9e) AM_DEVREAD_LEGACY("ay2", ay8910_r)
|
||||
AM_RANGE(0x6040, 0x6040) AM_MIRROR(0xf9e) AM_READWRITE(soundlatch_r, soundlatch3_w)
|
||||
AM_RANGE(0x6040, 0x6040) AM_MIRROR(0xf9e) AM_READWRITE(soundlatch_byte_r, soundlatch3_byte_w)
|
||||
AM_RANGE(0x6041, 0x6041) AM_MIRROR(0xf9e) AM_READWRITE_LEGACY(cchasm_soundlatch2_r, cchasm_soundlatch4_w)
|
||||
AM_RANGE(0x6061, 0x6061) AM_MIRROR(0xf9e) AM_WRITE_LEGACY(cchasm_reset_coin_flag_w)
|
||||
AM_RANGE(0x7041, 0x7041) AM_NOP // TODO
|
||||
|
@ -216,7 +216,7 @@ Dip location verified from manual for: cclimber, guzzler, swimmer
|
||||
|
||||
WRITE8_MEMBER(cclimber_state::swimmer_sh_soundlatch_w)
|
||||
{
|
||||
soundlatch_w(space,offset,data);
|
||||
soundlatch_byte_w(space,offset,data);
|
||||
cputag_set_input_line_and_vector(machine(), "audiocpu", 0, HOLD_LINE, 0xff);
|
||||
}
|
||||
|
||||
@ -399,7 +399,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( swimmer_audio_map, AS_PROGRAM, 8, cclimber_state )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x2000, 0x23ff) AM_RAM
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x4000, 0x4001) AM_RAM /* ??? */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -264,7 +264,7 @@ static ADDRESS_MAP_START( champbas_main_map, AS_PROGRAM, 8, champbas_state )
|
||||
AM_RANGE(0xa007, 0xa007) AM_WRITE(champbas_mcu_switch_w) // MCU not present/not used in champbas
|
||||
|
||||
AM_RANGE(0xa060, 0xa06f) AM_RAM AM_BASE(m_spriteram_2)
|
||||
AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_byte_w)
|
||||
/* AM_RANGE(0xa0a0, 0xa0a0) ???? */
|
||||
AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(champbas_watchdog_reset_w)
|
||||
|
||||
@ -293,7 +293,7 @@ static ADDRESS_MAP_START( exctsccrb_main_map, AS_PROGRAM, 8, champbas_state )
|
||||
AM_RANGE(0xa007, 0xa007) AM_WRITENOP /* MCU is not used, but some leftover code still writes here */
|
||||
|
||||
AM_RANGE(0xa040, 0xa06f) AM_WRITEONLY AM_BASE(m_spriteram) /* Sprite Pos */
|
||||
AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(watchdog_reset_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -318,7 +318,7 @@ static ADDRESS_MAP_START( exctsccr_main_map, AS_PROGRAM, 8, champbas_state )
|
||||
AM_RANGE(0xa007, 0xa007) AM_WRITENOP /* This is also MCU control, but i dont need it */
|
||||
|
||||
AM_RANGE(0xa040, 0xa06f) AM_WRITEONLY AM_BASE(m_spriteram) /* Sprite pos */
|
||||
AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(watchdog_reset_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -326,9 +326,9 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( champbas_sub_map, AS_PROGRAM, 8, champbas_state )
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0x6000, 0x7fff) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x6000, 0x7fff) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0x9fff) AM_WRITENOP // 4-bit return code to main CPU (not used)
|
||||
AM_RANGE(0xa000, 0xbfff) AM_WRITE(soundlatch_clear_w)
|
||||
AM_RANGE(0xa000, 0xbfff) AM_WRITE(soundlatch_clear_byte_w)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_DEVWRITE_LEGACY("dac", champbas_dac_w)
|
||||
AM_RANGE(0xe000, 0xe3ff) AM_MIRROR(0x1c00) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
@ -339,8 +339,8 @@ static ADDRESS_MAP_START( exctsccr_sub_map, AS_PROGRAM, 8, champbas_state )
|
||||
AM_RANGE(0xa000, 0xa7ff) AM_RAM
|
||||
AM_RANGE(0xc008, 0xc008) AM_DEVWRITE_LEGACY("dac1", champbas_dac_w)
|
||||
AM_RANGE(0xc009, 0xc009) AM_DEVWRITE_LEGACY("dac2", champbas_dac_w)
|
||||
AM_RANGE(0xc00c, 0xc00c) AM_WRITE(soundlatch_clear_w)
|
||||
AM_RANGE(0xc00d, 0xc00d) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc00c, 0xc00c) AM_WRITE(soundlatch_clear_byte_w)
|
||||
AM_RANGE(0xc00d, 0xc00d) AM_READ(soundlatch_byte_r)
|
||||
// AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP /* ??? */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -140,7 +140,7 @@ static WRITE8_HANDLER( chinagat_interrupt_w )
|
||||
switch (offset)
|
||||
{
|
||||
case 0: /* 3e00 - SND irq */
|
||||
state->soundlatch_w(*space, 0, data);
|
||||
state->soundlatch_byte_w(*space, 0, data);
|
||||
device_set_input_line(state->m_snd_cpu, state->m_sound_irq, (state->m_sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE );
|
||||
break;
|
||||
|
||||
@ -341,7 +341,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( ym2203c_sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
@ -359,7 +359,7 @@ static ADDRESS_MAP_START( ym2203c_sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
|
||||
// AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
// AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( saiyugoub1_sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
@ -367,7 +367,7 @@ static ADDRESS_MAP_START( saiyugoub1_sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_WRITE_LEGACY(saiyugoub1_mcu_command_w)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( i8748_map, AS_PROGRAM, 8, ddragon_state )
|
||||
|
@ -131,7 +131,7 @@ READ8_MEMBER(chqflag_state::analog_read_r)
|
||||
|
||||
WRITE8_MEMBER(chqflag_state::chqflag_sh_irqtrigger_w)
|
||||
{
|
||||
soundlatch2_w(space, 0, data);
|
||||
soundlatch2_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ static ADDRESS_MAP_START( chqflag_map, AS_PROGRAM, 8, chqflag_state )
|
||||
AM_RANGE(0x2000, 0x2007) AM_DEVREADWRITE_LEGACY("k051960", k051937_r, k051937_w) /* Sprite control registers */
|
||||
AM_RANGE(0x2400, 0x27ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_r, k051960_w) /* Sprite RAM */
|
||||
AM_RANGE(0x2800, 0x2fff) AM_READ_BANK("bank3") AM_DEVWRITE_LEGACY("k051316_2", k051316_w) /* 051316 zoom/rotation (chip 2) */
|
||||
AM_RANGE(0x3000, 0x3000) AM_WRITE(soundlatch_w) /* sound code # */
|
||||
AM_RANGE(0x3000, 0x3000) AM_WRITE(soundlatch_byte_w) /* sound code # */
|
||||
AM_RANGE(0x3001, 0x3001) AM_WRITE(chqflag_sh_irqtrigger_w) /* cause interrupt on audio CPU */
|
||||
AM_RANGE(0x3002, 0x3002) AM_WRITE(chqflag_bankswitch_w) /* bankswitch control */
|
||||
AM_RANGE(0x3003, 0x3003) AM_WRITE(chqflag_vreg_w) /* enable K051316 ROM reading */
|
||||
@ -187,8 +187,8 @@ static ADDRESS_MAP_START( chqflag_sound_map, AS_PROGRAM, 8, chqflag_state )
|
||||
AM_RANGE(0xa01c, 0xa01c) AM_DEVWRITE_LEGACY("k007232_2", k007232_extvolume_w) /* extra volume, goes to the 007232 w/ A11 */
|
||||
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w) /* 007232 (chip 2) */
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) /* soundlatch_r */
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch2_r) /* engine sound volume */
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch2_byte_r) /* engine sound volume */
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ??? */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -153,7 +153,7 @@ static ADDRESS_MAP_START( circusc_map, AS_PROGRAM, 8, circusc_state )
|
||||
AM_RANGE(0x0003, 0x0004) AM_MIRROR(0x03f8) AM_WRITE(circusc_coin_counter_w) /* COIN1, COIN2 */
|
||||
AM_RANGE(0x0005, 0x0005) AM_MIRROR(0x03f8) AM_WRITEONLY AM_BASE(m_spritebank) /* OBJ CHENG */
|
||||
AM_RANGE(0x0400, 0x0400) AM_MIRROR(0x03ff) AM_WRITE(watchdog_reset_w) /* WDOG */
|
||||
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x03ff) AM_WRITE(soundlatch_w) /* SOUND DATA */
|
||||
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x03ff) AM_WRITE(soundlatch_byte_w) /* SOUND DATA */
|
||||
AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03ff) AM_WRITE(circusc_sh_irqtrigger_w) /* SOUND-ON causes interrupt on audio CPU */
|
||||
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x03fc) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x03fc) AM_READ_PORT("P1")
|
||||
@ -174,7 +174,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, circusc_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
|
||||
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r) /* CS0 */
|
||||
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_byte_r) /* CS0 */
|
||||
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(circusc_sh_timer_r) /* CS1 */
|
||||
AM_RANGE(0xa000, 0xa07f) AM_MIRROR(0x1f80) AM_WRITE(circusc_sound_w) /* CS2 - CS6 */
|
||||
ADDRESS_MAP_END
|
||||
|
@ -33,8 +33,8 @@ static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8, citycon_state )
|
||||
AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
|
||||
AM_RANGE(0x2800, 0x2fff) AM_NOP //0x2900-0x2fff cleared at post but unused
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(citycon_in_r) AM_WRITE(citycon_background_w) /* player 1 & 2 inputs multiplexed */
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_w)
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE(soundlatch2_byte_w)
|
||||
AM_RANGE(0x3004, 0x3005) AM_READNOP AM_WRITEONLY AM_BASE(m_scroll)
|
||||
AM_RANGE(0x3007, 0x3007) AM_READ(citycon_irq_ack_r)
|
||||
AM_RANGE(0x3800, 0x3cff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
|
||||
@ -176,8 +176,8 @@ static const ym2203_interface ym2203_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
},
|
||||
|
@ -57,14 +57,14 @@ Note about version levels using Mutant Fighter as the example:
|
||||
WRITE16_MEMBER(cninja_state::cninja_sound_w)
|
||||
{
|
||||
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cninja_state::stoneage_sound_w)
|
||||
{
|
||||
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -307,7 +307,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ym2", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
@ -319,7 +319,7 @@ static ADDRESS_MAP_START( sound_map_mutantf, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
@ -329,7 +329,7 @@ static ADDRESS_MAP_START( stoneage_s_map, AS_PROGRAM, 8, cninja_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -458,7 +458,7 @@ WRITE8_MEMBER(cntsteer_state::gekitsui_sub_irq_ack)
|
||||
|
||||
WRITE8_MEMBER(cntsteer_state::cntsteer_sound_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -597,7 +597,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cntsteer_state )
|
||||
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
|
||||
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
|
||||
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xd000, 0xd000) AM_WRITE(nmimask_w)
|
||||
AM_RANGE(0xe000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -110,7 +110,7 @@ SOUND CPU:
|
||||
9000 uPD7759
|
||||
b000 uPD7759
|
||||
c000 uPD7759
|
||||
d000 soundlatch_r
|
||||
d000 soundlatch_byte_r
|
||||
e000-e001 YM2203
|
||||
|
||||
|
||||
@ -150,7 +150,7 @@ WRITE8_MEMBER(combatsc_state::combatsc_vreg_w)
|
||||
|
||||
WRITE8_MEMBER(combatsc_state::combatscb_sh_irqtrigger_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -389,7 +389,7 @@ static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8, combatsc_state )
|
||||
AM_RANGE(0x0408, 0x0408) AM_WRITE(combatsc_coin_counter_w) /* coin counters */
|
||||
AM_RANGE(0x040c, 0x040c) AM_WRITE(combatsc_vreg_w)
|
||||
AM_RANGE(0x0410, 0x0410) AM_WRITE(combatsc_bankselect_w)
|
||||
AM_RANGE(0x0414, 0x0414) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0x0414, 0x0414) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0x0418, 0x0418) AM_WRITE(combatsc_sh_irqtrigger_w)
|
||||
AM_RANGE(0x041c, 0x041c) AM_WRITE(watchdog_reset_w) /* watchdog reset? */
|
||||
|
||||
@ -419,7 +419,7 @@ static ADDRESS_MAP_START( combatsc_sound_map, AS_PROGRAM, 8, combatsc_state )
|
||||
AM_RANGE(0xb000, 0xb000) AM_DEVREAD_LEGACY("upd", combatsc_busy_r) /* upd7759 busy? */
|
||||
AM_RANGE(0xc000, 0xc000) AM_DEVWRITE_LEGACY("upd", combatsc_voice_reset_w) /* upd7759 reset? */
|
||||
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) /* soundlatch_r? */
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r? */
|
||||
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", combatsc_ym2203_r, ym2203_w) /* YM 2203 intercepted */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -440,7 +440,7 @@ static ADDRESS_MAP_START( combatscb_sound_map, AS_PROGRAM, 8, combatsc_state )
|
||||
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) /* YM 2203 */
|
||||
AM_RANGE(0x9008, 0x9009) AM_DEVREAD_LEGACY("ymsnd", ym2203_r) /* ??? */
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVWRITE_LEGACY("msm5205",combatscb_dac_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r? */
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r? */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*************************************
|
||||
|
@ -57,7 +57,7 @@ static ADDRESS_MAP_START( commando_map, AS_PROGRAM, 8, commando_state )
|
||||
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P2")
|
||||
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc804, 0xc804) AM_WRITE(commando_c804_w)
|
||||
AM_RANGE(0xc808, 0xc809) AM_WRITE(commando_scrollx_w)
|
||||
AM_RANGE(0xc80a, 0xc80b) AM_WRITE(commando_scrolly_w)
|
||||
@ -73,7 +73,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, commando_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x8002, 0x8003) AM_DEVWRITE_LEGACY("ym2", ym2203_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -53,7 +53,7 @@ WRITE8_MEMBER(contra_state::contra_coin_counter_w)
|
||||
|
||||
WRITE8_MEMBER(contra_state::cpu_sound_command_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
}
|
||||
|
||||
|
||||
@ -96,7 +96,7 @@ static ADDRESS_MAP_START( contra_map, AS_PROGRAM, 8, contra_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, contra_state )
|
||||
AM_RANGE(0x0000, 0x0000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x0000, 0x0000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x4000, 0x4000) AM_WRITENOP /* read triggers irq reset and latch read (in the hardware only). */
|
||||
AM_RANGE(0x6000, 0x67ff) AM_RAM
|
||||
|
@ -72,13 +72,13 @@ Mighty Guy board layout:
|
||||
|
||||
WRITE8_MEMBER(cop01_state::cop01_sound_command_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, 0, ASSERT_LINE );
|
||||
}
|
||||
|
||||
READ8_MEMBER(cop01_state::cop01_sound_command_r)
|
||||
{
|
||||
int res = (soundlatch_r(space, offset) & 0x7f) << 1;
|
||||
int res = (soundlatch_byte_r(space, offset) & 0x7f) << 1;
|
||||
|
||||
/* bit 0 seems to be a timer */
|
||||
if ((m_audiocpu->total_cycles() / TIMER_RATE) & 1)
|
||||
|
@ -486,14 +486,14 @@ static SCREEN_UPDATE_IND16(luckyrlt)
|
||||
|
||||
WRITE8_MEMBER(corona_state::sound_latch_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "soundcpu", 0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER(corona_state::sound_latch_r)
|
||||
{
|
||||
cputag_set_input_line(machine(), "soundcpu", 0, CLEAR_LINE);
|
||||
return soundlatch_r(space, 0);
|
||||
return soundlatch_byte_r(space, 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -292,13 +292,13 @@ static WRITE8_DEVICE_HANDLER( cps1_oki_pin7_w )
|
||||
WRITE16_MEMBER(cps_state::cps1_soundlatch_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cps_state::cps1_soundlatch2_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
soundlatch2_w(space, 0, data & 0xff);
|
||||
soundlatch2_byte_w(space, 0, data & 0xff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cps_state::cps1_coinctrl_w)
|
||||
@ -582,8 +582,8 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
|
||||
AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
|
||||
AM_RANGE(0xf006, 0xf006) AM_DEVWRITE_LEGACY("oki", cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
|
||||
AM_RANGE(0xf008, 0xf008) AM_READ(soundlatch_r) /* Sound command */
|
||||
AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_r) /* Sound timer fade */
|
||||
AM_RANGE(0xf008, 0xf008) AM_READ(soundlatch_byte_r) /* Sound command */
|
||||
AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_byte_r) /* Sound timer fade */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16, cps_state )
|
||||
|
@ -32,7 +32,7 @@ WRITE8_MEMBER(crimfght_state::crimfght_coin_w)
|
||||
|
||||
WRITE8_MEMBER(crimfght_state::crimfght_sh_irqtrigger_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ static ADDRESS_MAP_START( crimfght_sound_map, AS_PROGRAM, 8, crimfght_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 821l01.h4 */
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) /* YM2151 */
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* soundlatch_r */
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
|
||||
AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w) /* 007232 registers */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -42,7 +42,7 @@ WRITE16_MEMBER(crospang_state::crospang_soundlatch_w)
|
||||
{
|
||||
if(ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ static ADDRESS_MAP_START( crospang_sound_io_map, AS_IO, 8, crospang_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
|
||||
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x06, 0x06) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -165,7 +165,7 @@ WRITE16_MEMBER(crshrace_state::sound_command_w)
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_pending_command = 1;
|
||||
soundlatch_w(space, offset, data & 0xff);
|
||||
soundlatch_byte_w(space, offset, data & 0xff);
|
||||
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -214,7 +214,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, crshrace_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(crshrace_sh_bankswitch_w)
|
||||
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r) AM_WRITE(pending_command_clear_w)
|
||||
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w)
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -109,7 +109,7 @@ WRITE16_MEMBER(csplayh5_state::csplayh5_mux_w)
|
||||
|
||||
WRITE16_MEMBER(csplayh5_state::csplayh5_sound_w)
|
||||
{
|
||||
soundlatch_w(space, 0, ((data >> 8) & 0xff));
|
||||
soundlatch_byte_w(space, 0, ((data >> 8) & 0xff));
|
||||
}
|
||||
|
||||
|
||||
@ -174,12 +174,12 @@ static void csplayh5_soundbank_w(running_machine &machine, int data)
|
||||
|
||||
READ8_MEMBER(csplayh5_state::csplayh5_sound_r)
|
||||
{
|
||||
return soundlatch_r(space, 0);
|
||||
return soundlatch_byte_r(space, 0);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(csplayh5_state::csplayh5_soundclr_w)
|
||||
{
|
||||
soundlatch_clear_w(space, 0, 0);
|
||||
soundlatch_clear_byte_w(space, 0, 0);
|
||||
}
|
||||
|
||||
READ8_MEMBER(csplayh5_state::tmpz84c011_pio_r)
|
||||
|
@ -391,7 +391,7 @@ READ8_MEMBER(cvs_state::cvs_speech_command_r)
|
||||
|
||||
/* FIXME: this was by observation on board ???
|
||||
* -bit 7 is TMS status (active LO) */
|
||||
return ((tms5110_ctl_r(m_tms, 0) ^ 1) << 7) | (soundlatch_r(space, 0) & 0x7f);
|
||||
return ((tms5110_ctl_r(m_tms, 0) ^ 1) << 7) | (soundlatch_byte_r(space, 0) & 0x7f);
|
||||
}
|
||||
|
||||
|
||||
@ -459,7 +459,7 @@ WRITE8_MEMBER(cvs_state::audio_command_w)
|
||||
|
||||
LOG(("data %02x\n", data));
|
||||
/* cause interrupt on audio CPU if bit 7 set */
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
cvs_slave_cpu_interrupt(m_audiocpu, data & 0x80 ? 1 : 0);
|
||||
}
|
||||
|
||||
@ -506,7 +506,7 @@ static ADDRESS_MAP_START( cvs_dac_cpu_map, AS_PROGRAM, 8, cvs_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x1000, 0x107f) AM_RAM
|
||||
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1840, 0x1840) AM_DEVWRITE_LEGACY("dac1", dac_w)
|
||||
AM_RANGE(0x1880, 0x1883) AM_DEVWRITE_LEGACY("dac2", cvs_4_bit_dac_data_w) AM_BASE(m_cvs_4_bit_dac_data)
|
||||
AM_RANGE(0x1884, 0x1887) AM_DEVWRITE_LEGACY("dac3", cvs_unknown_w) AM_BASE(m_dac3_state) /* ???? not connected to anything */
|
||||
|
@ -227,7 +227,7 @@ WRITE8_MEMBER(cyclemb_state::cyclemb_bankswitch_w)
|
||||
#if 0
|
||||
WRITE8_MEMBER(cyclemb_state::sound_cmd_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
|
||||
}
|
||||
#endif
|
||||
@ -241,7 +241,7 @@ READ8_MEMBER(cyclemb_state::mcu_status_r)
|
||||
|
||||
WRITE8_MEMBER(cyclemb_state::sound_cmd_w)//actually ciom
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
|
||||
}
|
||||
#endif
|
||||
@ -280,7 +280,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( cyclemb_sound_io, AS_IO, 8, cyclemb_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_address_data_w)
|
||||
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_r) AM_WRITE(soundlatch2_w)
|
||||
AM_RANGE(0x40, 0x40) AM_READ(soundlatch_byte_r) AM_WRITE(soundlatch2_byte_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static MACHINE_RESET( cyclemb )
|
||||
|
@ -203,7 +203,7 @@ WRITE8_MEMBER(dacholer_state::coins_w)
|
||||
|
||||
WRITE8_MEMBER(dacholer_state::snd_w)
|
||||
{
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -284,7 +284,7 @@ WRITE8_MEMBER(dacholer_state::music_irq_w)
|
||||
|
||||
static ADDRESS_MAP_START( snd_io_map, AS_IO, 8, dacholer_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w )
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w )
|
||||
AM_RANGE(0x04, 0x04) AM_WRITE(music_irq_w)
|
||||
AM_RANGE(0x08, 0x08) AM_WRITE(snd_irq_w)
|
||||
AM_RANGE(0x0c, 0x0c) AM_WRITE(snd_ack_w)
|
||||
@ -296,7 +296,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( itaten_snd_io_map, AS_IO, 8, dacholer_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_r, soundlatch_clear_w )
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(soundlatch_byte_r, soundlatch_clear_byte_w )
|
||||
AM_RANGE(0x86, 0x87) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
|
||||
AM_RANGE(0x8a, 0x8b) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
|
||||
AM_RANGE(0x8e, 0x8f) AM_DEVWRITE_LEGACY("ay3", ay8910_data_address_w)
|
||||
|
@ -32,7 +32,7 @@ WRITE16_MEMBER(darkseal_state::darkseal_control_w)
|
||||
m_spriteram->copy();
|
||||
return;
|
||||
case 8: /* Sound CPU write */
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
|
||||
return;
|
||||
case 0xa: /* IRQ Ack (VBL) */
|
||||
@ -88,7 +88,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, darkseal_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ym2", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
|
@ -166,7 +166,7 @@ READ16_MEMBER(dassault_state::dassault_sub_control_r)
|
||||
|
||||
WRITE16_MEMBER(dassault_state::dassault_sound_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE); /* IRQ1 */
|
||||
}
|
||||
|
||||
@ -254,7 +254,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dassault_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ym2", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
|
@ -240,7 +240,7 @@ WRITE16_MEMBER(dblewing_state::dblewing_prot_w)
|
||||
//printf("%04x\n",m_280_data);
|
||||
return;
|
||||
case 0x380: // sound write
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
m_sound_irq |= 0x02;
|
||||
device_set_input_line(m_audiocpu, 0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
|
||||
return;
|
||||
@ -347,7 +347,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dblewing_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_status_port_r,ym2151_w)
|
||||
AM_RANGE(0xb000, 0xb000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ(irq_latch_r) //timing? sound latch?
|
||||
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -97,7 +97,7 @@ WRITE16_MEMBER(dbz_state::dbzcontrol_w)
|
||||
|
||||
WRITE16_MEMBER(dbz_state::dbz_sound_command_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data >> 8);
|
||||
soundlatch_byte_w(space, 0, data >> 8);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(dbz_state::dbz_sound_cause_nmi)
|
||||
@ -154,7 +154,7 @@ static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8, dbz_state )
|
||||
AM_RANGE(0x8000, 0xbfff) AM_RAM
|
||||
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xd000, 0xd002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8, dbz_state )
|
||||
|
@ -143,7 +143,7 @@ WRITE16_MEMBER(dcheese_state::sound_command_w)
|
||||
/* write the latch and set the IRQ */
|
||||
m_soundlatch_full = 1;
|
||||
device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
@ -161,7 +161,7 @@ READ8_MEMBER(dcheese_state::sound_command_r)
|
||||
/* read the latch and clear the IRQ */
|
||||
m_soundlatch_full = 0;
|
||||
device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
|
||||
return soundlatch_r(space, 0);
|
||||
return soundlatch_byte_r(space, 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -205,7 +205,7 @@ WRITE8_MEMBER(ddayjlc_state::bg2_w)
|
||||
WRITE8_MEMBER(ddayjlc_state::sound_w)
|
||||
{
|
||||
|
||||
soundlatch_w(space, offset, data);
|
||||
soundlatch_byte_w(space, offset, data);
|
||||
device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
|
||||
}
|
||||
|
||||
@ -421,7 +421,7 @@ static const ay8910_interface ay8910_config =
|
||||
{
|
||||
AY8910_LEGACY_OUTPUT,
|
||||
AY8910_DEFAULT_LOADS,
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_r),
|
||||
DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
|
@ -2090,7 +2090,7 @@ WRITE8_MEMBER(dynax_state::mmpanic_rombank_w)
|
||||
WRITE8_MEMBER(dynax_state::mmpanic_soundlatch_w)
|
||||
{
|
||||
|
||||
soundlatch_w(*&space, 0, data);
|
||||
soundlatch_byte_w(*&space, 0, data);
|
||||
device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -2200,7 +2200,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mmpanic_sound_portmap, AS_IO, 8, dynax_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x02, 0x02) AM_READNOP // read just before port 00
|
||||
AM_RANGE(0x04, 0x04) AM_NOP // read only once at the start
|
||||
AM_RANGE(0x06, 0x06) AM_WRITENOP // almost always 1, sometimes 0
|
||||
@ -2338,7 +2338,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( funkyfig_sound_portmap, AS_IO, 8, dynax_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x02, 0x02) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x04, 0x04) AM_READNOP // read only once at the start
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -316,7 +316,7 @@ static WRITE8_HANDLER( ddragon_interrupt_w )
|
||||
break;
|
||||
|
||||
case 3: /* 380e - SND irq */
|
||||
state->soundlatch_w(*space, 0, data);
|
||||
state->soundlatch_byte_w(*space, 0, data);
|
||||
device_set_input_line(state->m_snd_cpu, state->m_sound_irq, (state->m_sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
|
||||
break;
|
||||
|
||||
@ -594,7 +594,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
||||
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1800, 0x1800) AM_READ_LEGACY(dd_adpcm_status_r)
|
||||
AM_RANGE(0x2800, 0x2801) AM_DEVREADWRITE_LEGACY("fmsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x3800, 0x3807) AM_WRITE_LEGACY(dd_adpcm_w)
|
||||
@ -607,7 +607,7 @@ static ADDRESS_MAP_START( dd2_sound_map, AS_PROGRAM, 8, ddragon_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("fmsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -171,8 +171,8 @@ WRITE16_MEMBER(ddragon3_state::ddragon3_io_w)
|
||||
m_vreg = m_io_reg[0];
|
||||
break;
|
||||
|
||||
case 1: /* soundlatch_w */
|
||||
soundlatch_w(space, 1, m_io_reg[1] & 0xff);
|
||||
case 1: /* soundlatch_byte_w */
|
||||
soundlatch_byte_w(space, 1, m_io_reg[1] & 0xff);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
|
||||
break;
|
||||
|
||||
@ -257,7 +257,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon3_state )
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE_LEGACY("ym2151", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE_LEGACY("oki", oki_bankswitch_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -266,7 +266,7 @@ static ADDRESS_MAP_START( ctribe_sound_map, AS_PROGRAM, 8, ddragon3_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE_LEGACY("ym2151", ym2151_status_port_r, ym2151_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*************************************
|
||||
|
@ -188,7 +188,7 @@ WRITE16_MEMBER(dec0_state::dec0_control_w)
|
||||
case 4: /* 6502 sound cpu */
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
break;
|
||||
@ -227,7 +227,7 @@ WRITE16_MEMBER(dec0_state::automat_control_w)
|
||||
case 0xe: /* 6502 sound cpu */
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
|
||||
}
|
||||
break;
|
||||
@ -260,7 +260,7 @@ WRITE16_MEMBER(dec0_state::slyspy_control_w)
|
||||
case 0:
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
break;
|
||||
@ -274,7 +274,7 @@ WRITE16_MEMBER(dec0_state::midres_sound_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -552,7 +552,7 @@ static ADDRESS_MAP_START( dec0_s_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0x0000, 0x05ff) AM_RAM
|
||||
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x3800, 0x3800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
@ -564,7 +564,7 @@ static ADDRESS_MAP_START( slyspy_s_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */
|
||||
AM_RANGE(0x0b0000, 0x0b0001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x0f0000, 0x0f0001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x0f0000, 0x0f0001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
@ -574,7 +574,7 @@ static ADDRESS_MAP_START( midres_s_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0x108000, 0x108001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
|
||||
AM_RANGE(0x118000, 0x118001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x138000, 0x138001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x138000, 0x138001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
@ -652,7 +652,7 @@ static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8, dec0_state )
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
// AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(ym2203_control_port_0_w)
|
||||
// AM_RANGE(0xc801, 0xc801) AM_WRITE_LEGACY(ym2203_write_port_0_w)
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_byte_r)
|
||||
// AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(ym2203_control_port_1_w)
|
||||
// AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(ym2203_write_port_1_w)
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(automat_adpcm_w)
|
||||
|
@ -478,7 +478,7 @@ WRITE8_MEMBER(dec8_state::csilver_control_w)
|
||||
|
||||
WRITE8_MEMBER(dec8_state::dec8_sound_w)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
@ -873,7 +873,7 @@ static ADDRESS_MAP_START( dec8_s_map, AS_PROGRAM, 8, dec8_state )
|
||||
AM_RANGE(0x0000, 0x05ff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -882,7 +882,7 @@ static ADDRESS_MAP_START( oscar_s_map, AS_PROGRAM, 8, dec8_state )
|
||||
AM_RANGE(0x0000, 0x05ff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE_LEGACY("ym2", ym3526_w)
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -891,7 +891,7 @@ static ADDRESS_MAP_START( ym3526_s_map, AS_PROGRAM, 8, dec8_state )
|
||||
AM_RANGE(0x0000, 0x05ff) AM_RAM
|
||||
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
|
||||
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3526_w)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -902,7 +902,7 @@ static ADDRESS_MAP_START( csilver_s_map, AS_PROGRAM, 8, dec8_state )
|
||||
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3526_w)
|
||||
AM_RANGE(0x1800, 0x1800) AM_WRITE(csilver_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
|
||||
AM_RANGE(0x2000, 0x2000) AM_WRITE(csilver_sound_bank_w)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x3400, 0x3400) AM_DEVREAD_LEGACY("msm", csilver_adpcm_reset_r) /* ? not sure */
|
||||
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank3")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
|
@ -343,7 +343,7 @@ WRITE32_MEMBER(deco32_state::deco32_irq_controller_w)
|
||||
|
||||
WRITE32_MEMBER(deco32_state::deco32_sound_w)
|
||||
{
|
||||
soundlatch_w(space,0,data & 0xff);
|
||||
soundlatch_byte_w(space,0,data & 0xff);
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -669,7 +669,7 @@ WRITE32_MEMBER(deco32_state::nslasher_prot_w)
|
||||
if (offset==0x700/4) {
|
||||
|
||||
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
|
||||
soundlatch_w(space,0,(data>>16)&0xff);
|
||||
soundlatch_byte_w(space,0,(data>>16)&0xff);
|
||||
m_nslasher_sound_irq |= 0x02;
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
@ -1004,7 +1004,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, deco32_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
@ -1015,7 +1015,7 @@ READ8_MEMBER(deco32_state::latch_r)
|
||||
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
|
||||
m_nslasher_sound_irq &= ~0x02;
|
||||
cputag_set_input_line(machine(), "audiocpu", 0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
|
||||
return soundlatch_r(space,0);
|
||||
return soundlatch_byte_r(space,0);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( nslasher_sound, AS_PROGRAM, 8, deco32_state )
|
||||
@ -3352,7 +3352,8 @@ static DRIVER_INIT( nslasher )
|
||||
|
||||
deco156_decrypt(machine);
|
||||
|
||||
soundlatch_setclearedvalue(machine, 0xff);
|
||||
deco32_state *state = machine.driver_data<deco32_state>();
|
||||
state->soundlatch_setclearedvalue(0xff);
|
||||
|
||||
/* The board for Night Slashers is very close to the Fighter's History and
|
||||
Tattoo Assassins boards, but has an encrypted ARM cpu. */
|
||||
|
@ -156,7 +156,7 @@ static SCREEN_UPDATE_IND16( rblaster )
|
||||
#if 0
|
||||
WRITE8_MEMBER(deco_ld_state::rblaster_sound_w)
|
||||
{
|
||||
soundlatch_w(space,0,data);
|
||||
soundlatch_byte_w(space,0,data);
|
||||
device_set_input_line(machine().cpu[1], 0, HOLD_LINE);
|
||||
}
|
||||
#endif
|
||||
@ -258,7 +258,7 @@ static ADDRESS_MAP_START( rblaster_sound_map, AS_PROGRAM, 8, deco_ld_state )
|
||||
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
|
||||
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
|
||||
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0xe000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -52,7 +52,7 @@ WRITE16_MEMBER(deniam_state::sound_command_w)
|
||||
{
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
soundlatch_w(space,offset, (data >> 8) & 0xff);
|
||||
soundlatch_byte_w(space,offset, (data >> 8) & 0xff);
|
||||
device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
}
|
||||
@ -101,7 +101,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, deniam_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x01, 0x01) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
|
||||
AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x07, 0x07) AM_DEVWRITE_LEGACY("oki", deniam16b_oki_rom_bank_w)
|
||||
|
@ -37,7 +37,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dietgo_state )
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0x130000, 0x130001) AM_NOP /* This board only has 1 oki chip */
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
|
||||
|
@ -232,7 +232,7 @@ WRITE8_MEMBER(discoboy_state::discoboy_port_03_w)// sfx? (to sound cpu)
|
||||
{
|
||||
// printf("unk discoboy_port_03_w %02x\n", data);
|
||||
// device_set_input_line(m_audiocpu, INPUT_LINE_NMI, HOLD_LINE);
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
}
|
||||
|
||||
@ -349,7 +349,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, discoboy_state )
|
||||
AM_RANGE(0xe400, 0xe400) AM_WRITE(yunsung8_adpcm_w)
|
||||
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -123,7 +123,7 @@ WRITE16_MEMBER(diverboy_state::soundcmd_w)
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
soundlatch_w(space, 0, data & 0xff);
|
||||
soundlatch_byte_w(space, 0, data & 0xff);
|
||||
device_set_input_line(m_audiocpu, 0, HOLD_LINE);
|
||||
}
|
||||
}
|
||||
@ -161,7 +161,7 @@ static ADDRESS_MAP_START( snd_map, AS_PROGRAM, 8, diverboy_state )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE_LEGACY("oki", okibank_w)
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -232,7 +232,7 @@ WRITE8_MEMBER(djboy_state::coin_count_w)
|
||||
|
||||
WRITE8_MEMBER(djboy_state::trigger_nmi_on_sound_cpu2)
|
||||
{
|
||||
soundlatch_w(space, 0, data);
|
||||
soundlatch_byte_w(space, 0, data);
|
||||
device_set_input_line(m_cpu2, INPUT_LINE_NMI, PULSE_LINE);
|
||||
} /* trigger_nmi_on_sound_cpu2 */
|
||||
|
||||
@ -293,7 +293,7 @@ static ADDRESS_MAP_START( cpu2_port_am, AS_IO, 8, djboy_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(cpu2_bankswitch_w)
|
||||
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
|
||||
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x04, 0x04) AM_READ(soundlatch_byte_r)
|
||||
AM_RANGE(0x06, 0x06) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
|
||||
AM_RANGE(0x07, 0x07) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user