This patch furthers the process of aligning the sound cores with the

recent cpu core changes.  Specifically, it adds a fake device
implementation similar to the one the cpu cores were using in 128u3
(i.e. it only provides the machine pointer and the token), and makes
some interface adjustments aligned to 128u4 (i.e. adding
snd_class_header, adding get_ to various getter functions).  The
primary benefit of this change is the removal of "deprecat.h" from 23
sound cores.  I also adjusted ui.c to stop calling sndnum_clock and
access the clock data similarly to how it does the cpu clock data.

[AtariAce]
This commit is contained in:
Aaron Giles 2008-12-04 10:44:15 +00:00
parent 5b45ad478f
commit 78622af0eb
60 changed files with 325 additions and 289 deletions

View File

@ -590,7 +590,7 @@ static void print_game_chips(FILE *out, const game_driver *game, const machine_c
fprintf(out, "\t\t<chip");
fprintf(out, " type=\"audio\"");
fprintf(out, " tag=\"%s\"", xml_normalize_string(config->sound[chipnum].tag));
fprintf(out, " name=\"%s\"", xml_normalize_string(sndtype_name(config->sound[chipnum].type)));
fprintf(out, " name=\"%s\"", xml_normalize_string(sndtype_get_name(config->sound[chipnum].type)));
if (config->sound[chipnum].clock != 0)
fprintf(out, " clock=\"%d\"", config->sound[chipnum].clock);
fprintf(out, "/>\n");

View File

@ -17,6 +17,7 @@
***************************************************************************/
#include "driver.h"
#include "deprecat.h"
@ -34,25 +35,13 @@
TYPE DEFINITIONS
***************************************************************************/
typedef struct _sound_interface sound_interface;
struct _sound_interface
{
/* table of core functions */
void (*get_info)(void *token, UINT32 state, sndinfo *info);
void (*set_info)(void *token, UINT32 state, sndinfo *info);
void * (*start)(const char *tag, int index, int clock, const void *config);
void (*stop)(void *token);
void (*reset)(void *token);
};
typedef struct _sndintrf_data sndintrf_data;
struct _sndintrf_data
{
sound_interface intf; /* copy of the interface data */
snd_class_header intf; /* copy of the interface data */
sound_type sndtype; /* type index of this sound chip */
sound_type aliastype; /* aliased type index of this sound chip */
void * token; /* dynamically allocated token data */
device_config device; /* dummy device for now */
const char * tag; /* tag this sound chip */
int index; /* index of this sound chip */
int clock; /* clock for this sound chip */
@ -61,7 +50,7 @@ struct _sndintrf_data
/***************************************************************************
EXTERNAL PROTOTYPES
PROTOTYPES FOR ALL SND ENTRY POINTS
***************************************************************************/
static SND_GET_INFO( dummy_sound );
@ -181,15 +170,13 @@ SND_GET_INFO( filter_rc );
/***************************************************************************
CORE INTERFACE LIST
MASTER SND LIST
***************************************************************************/
static sound_interface sndintrf[SOUND_COUNT];
static const struct
{
sound_type sndtype;
void (*get_info)(void *token, UINT32 state, sndinfo *info);
snd_get_info_func get_info;
} sndintrf_map[] =
{
{ SOUND_DUMMY, SND_GET_INFO_NAME( dummy_sound ) },
@ -513,6 +500,8 @@ static const struct
GLOBAL VARIABLES
***************************************************************************/
static snd_class_header snd_type_header[SOUND_COUNT];
static sndintrf_data sound[MAX_SOUND];
static sndintrf_data *current_sound_start;
static UINT8 sound_matrix[SOUND_COUNT][MAX_SOUND];
@ -535,40 +524,41 @@ void sndintrf_init(running_machine *machine)
int mapindex;
/* reset the sndintrf array */
memset(sndintrf, 0, sizeof(sndintrf));
memset(snd_type_header, 0, sizeof(snd_type_header));
/* build the sndintrf array */
for (mapindex = 0; mapindex < sizeof(sndintrf_map) / sizeof(sndintrf_map[0]); mapindex++)
for (mapindex = 0; mapindex < ARRAY_LENGTH(sndintrf_map); mapindex++)
{
sound_type sndtype = sndintrf_map[mapindex].sndtype;
sound_interface *intf = &sndintrf[sndtype];
snd_class_header *header = &snd_type_header[sndtype];
sndinfo info;
/* start with the get_info routine */
intf->get_info = sndintrf_map[mapindex].get_info;
header->sndtype = sndtype;
header->get_info = sndintrf_map[mapindex].get_info;
/* bootstrap the rest of the function pointers */
info.set_info = NULL;
(*intf->get_info)(NULL, SNDINFO_PTR_SET_INFO, &info);
intf->set_info = info.set_info;
(*header->get_info)(NULL, SNDINFO_PTR_SET_INFO, &info);
header->set_info = info.set_info;
info.start = NULL;
(*intf->get_info)(NULL, SNDINFO_PTR_START, &info);
intf->start = info.start;
(*header->get_info)(NULL, SNDINFO_PTR_START, &info);
header->start = info.start;
info.stop = NULL;
(*intf->get_info)(NULL, SNDINFO_PTR_STOP, &info);
intf->stop = info.stop;
(*header->get_info)(NULL, SNDINFO_PTR_STOP, &info);
header->stop = info.stop;
info.reset = NULL;
(*intf->get_info)(NULL, SNDINFO_PTR_RESET, &info);
intf->reset = info.reset;
(*header->get_info)(NULL, SNDINFO_PTR_RESET, &info);
header->reset = info.reset;
}
/* fill in any empty entries with the dummy sound */
for (mapindex = 0; mapindex < SOUND_COUNT; mapindex++)
if (sndintrf[mapindex].get_info == NULL)
sndintrf[mapindex] = sndintrf[SOUND_DUMMY];
if (snd_type_header[mapindex].get_info == NULL)
snd_type_header[mapindex] = snd_type_header[SOUND_DUMMY];
/* zap the sound data structures */
memset(sound, 0, sizeof(sound));
@ -589,8 +579,11 @@ int sndintrf_init_sound(int sndnum, const char *tag, sound_type sndtype, int clo
sndintrf_data *info = &sound[sndnum];
int index;
memset(&info->device, 0, sizeof(info->device));
info->device.machine = Machine;
/* fill in the type and interface */
info->intf = sndintrf[sndtype];
info->intf = snd_type_header[sndtype];
info->tag = tag;
info->sndtype = sndtype;
info->aliastype = sndtype_get_info_int(sndtype, SNDINFO_INT_ALIAS);
@ -610,12 +603,12 @@ int sndintrf_init_sound(int sndnum, const char *tag, sound_type sndtype, int clo
/* start the chip, tagging all its streams */
current_sound_start = &sound[sndnum];
info->token = (*info->intf.start)(info->tag, index, clock, config);
info->device.token = (*info->intf.start)(&info->device, info->tag, index, clock, config);
current_sound_start = NULL;
VPRINTF((" token = %p\n", info->token));
VPRINTF((" token = %p\n", info->device.token));
/* if that failed, die */
if (!info->token)
if (!info->device.token)
return 1;
return 0;
@ -631,7 +624,7 @@ void sndintrf_exit_sound(int sndnum)
{
/* stop the chip */
if (sound[sndnum].intf.stop)
(*sound[sndnum].intf.stop)(sound[sndnum].token);
(*sound[sndnum].intf.stop)(&sound[sndnum].device);
}
@ -648,7 +641,7 @@ void sndintrf_exit_sound(int sndnum)
void sndintrf_register_token(void *token)
{
if (current_sound_start)
current_sound_start->token = token;
current_sound_start->device.token = token;
}
@ -720,7 +713,7 @@ INT64 sndnum_get_info_int(int sndnum, UINT32 state)
VERIFY_SNDNUM(sndnum_get_info_int);
info.i = 0;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.i;
}
@ -730,7 +723,7 @@ void *sndnum_get_info_ptr(int sndnum, UINT32 state)
VERIFY_SNDNUM(sndnum_get_info_ptr);
info.p = NULL;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.p;
}
@ -740,7 +733,7 @@ genf *sndnum_get_info_fct(int sndnum, UINT32 state)
VERIFY_SNDNUM(sndnum_get_info_fct);
info.f = NULL;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.f;
}
@ -750,7 +743,7 @@ const char *sndnum_get_info_string(int sndnum, UINT32 state)
VERIFY_SNDNUM(sndnum_get_info_string);
info.s = NULL;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.s;
}
@ -764,7 +757,7 @@ void sndnum_set_info_int(int sndnum, UINT32 state, INT64 data)
sndinfo info;
VERIFY_SNDNUM(sndnum_set_info_int);
info.i = data;
(*sound[sndnum].intf.set_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.set_info)(&sound[sndnum].device, state, &info);
}
void sndnum_set_info_ptr(int sndnum, UINT32 state, void *data)
@ -772,7 +765,7 @@ void sndnum_set_info_ptr(int sndnum, UINT32 state, void *data)
sndinfo info;
VERIFY_SNDNUM(sndnum_set_info_ptr);
info.p = data;
(*sound[sndnum].intf.set_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.set_info)(&sound[sndnum].device, state, &info);
}
void sndnum_set_info_fct(int sndnum, UINT32 state, genf *data)
@ -780,7 +773,7 @@ void sndnum_set_info_fct(int sndnum, UINT32 state, genf *data)
sndinfo info;
VERIFY_SNDNUM(sndnum_set_info_ptr);
info.f = data;
(*sound[sndnum].intf.set_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.set_info)(&sound[sndnum].device, state, &info);
}
@ -792,7 +785,7 @@ void sndnum_reset(int sndnum)
{
VERIFY_SNDNUM(sndnum_reset);
if (sound[sndnum].intf.reset)
(*sound[sndnum].intf.reset)(sound[sndnum].token);
(*sound[sndnum].intf.reset)(&sound[sndnum].device);
}
int sndnum_clock(int sndnum)
@ -804,7 +797,7 @@ int sndnum_clock(int sndnum)
void *sndnum_token(int sndnum)
{
VERIFY_SNDNUM(sndnum_token);
return sound[sndnum].token;
return sound[sndnum].device.token;
}
@ -825,7 +818,7 @@ INT64 sndti_get_info_int(sound_type sndtype, int sndindex, UINT32 state)
VERIFY_SNDTI(sndti_get_info_int);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.i = 0;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.i;
}
@ -837,7 +830,7 @@ void *sndti_get_info_ptr(sound_type sndtype, int sndindex, UINT32 state)
VERIFY_SNDTI(sndti_get_info_ptr);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.p = NULL;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.p;
}
@ -849,7 +842,7 @@ genf *sndti_get_info_fct(sound_type sndtype, int sndindex, UINT32 state)
VERIFY_SNDTI(sndti_get_info_fct);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.f = NULL;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.f;
}
@ -861,7 +854,7 @@ const char *sndti_get_info_string(sound_type sndtype, int sndindex, UINT32 state
VERIFY_SNDTI(sndti_get_info_string);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.s = NULL;
(*sound[sndnum].intf.get_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.get_info)(&sound[sndnum].device, state, &info);
return info.s;
}
@ -878,7 +871,7 @@ void sndti_set_info_int(sound_type sndtype, int sndindex, UINT32 state, INT64 da
VERIFY_SNDTI(sndti_set_info_int);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.i = data;
(*sound[sndnum].intf.set_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.set_info)(&sound[sndnum].device, state, &info);
}
void sndti_set_info_ptr(sound_type sndtype, int sndindex, UINT32 state, void *data)
@ -889,7 +882,7 @@ void sndti_set_info_ptr(sound_type sndtype, int sndindex, UINT32 state, void *da
VERIFY_SNDTI(sndti_set_info_ptr);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.p = data;
(*sound[sndnum].intf.set_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.set_info)(&sound[sndnum].device, state, &info);
}
void sndti_set_info_fct(sound_type sndtype, int sndindex, UINT32 state, genf *data)
@ -900,7 +893,7 @@ void sndti_set_info_fct(sound_type sndtype, int sndindex, UINT32 state, genf *da
VERIFY_SNDTI(sndti_set_info_ptr);
sndnum = sound_matrix[sndtype][sndindex] - 1;
info.f = data;
(*sound[sndnum].intf.set_info)(sound[sndnum].token, state, &info);
(*sound[sndnum].intf.set_info)(&sound[sndnum].device, state, &info);
}
@ -915,7 +908,7 @@ void sndti_reset(sound_type sndtype, int sndindex)
VERIFY_SNDTI(sndti_reset);
sndnum = sound_matrix[sndtype][sndindex] - 1;
if (sound[sndnum].intf.reset)
(*sound[sndnum].intf.reset)(sound[sndnum].token);
(*sound[sndnum].intf.reset)(&sound[sndnum].device);
}
int sndti_clock(sound_type sndtype, int sndindex)
@ -931,7 +924,7 @@ void *sndti_token(sound_type sndtype, int sndindex)
int sndnum;
VERIFY_SNDTI(sndti_token);
sndnum = sound_matrix[sndtype][sndindex] - 1;
return sound[sndnum].token;
return sound[sndnum].device.token;
}
@ -946,41 +939,45 @@ void *sndti_token(sound_type sndtype, int sndindex)
INT64 sndtype_get_info_int(sound_type sndtype, UINT32 state)
{
snd_class_header *classheader = &snd_type_header[sndtype];
sndinfo info;
VERIFY_SNDTYPE(sndtype_get_info_int);
info.i = 0;
(*sndintrf[sndtype].get_info)(NULL, state, &info);
(*classheader->get_info)(NULL, state, &info);
return info.i;
}
void *sndtype_get_info_ptr(sound_type sndtype, UINT32 state)
{
snd_class_header *classheader = &snd_type_header[sndtype];
sndinfo info;
VERIFY_SNDTYPE(sndtype_get_info_ptr);
info.p = NULL;
(*sndintrf[sndtype].get_info)(NULL, state, &info);
(*classheader->get_info)(NULL, state, &info);
return info.p;
}
genf *sndtype_get_info_fct(sound_type sndtype, UINT32 state)
{
snd_class_header *classheader = &snd_type_header[sndtype];
sndinfo info;
VERIFY_SNDTYPE(sndtype_get_info_fct);
info.f = NULL;
(*sndintrf[sndtype].get_info)(NULL, state, &info);
(*classheader->get_info)(NULL, state, &info);
return info.f;
}
const char *sndtype_get_info_string(sound_type sndtype, UINT32 state)
{
snd_class_header *classheader = &snd_type_header[sndtype];
sndinfo info;
VERIFY_SNDTYPE(sndtype_get_info_string);
info.s = NULL;
(*sndintrf[sndtype].get_info)(NULL, state, &info);
(*classheader->get_info)(NULL, state, &info);
return info.s;
}

View File

@ -187,24 +187,24 @@ enum
***************************************************************************/
#define SND_GET_INFO_NAME(name) snd_get_info_##name
#define SND_GET_INFO(name) void SND_GET_INFO_NAME(name)(void *token, UINT32 state, sndinfo *info)
#define SND_GET_INFO_CALL(name) SND_GET_INFO_NAME(name)(token, state, info)
#define SND_GET_INFO(name) void SND_GET_INFO_NAME(name)(const device_config *device, UINT32 state, sndinfo *info)
#define SND_GET_INFO_CALL(name) SND_GET_INFO_NAME(name)(device, state, info)
#define SND_SET_INFO_NAME(name) snd_set_info_##name
#define SND_SET_INFO(name) void SND_SET_INFO_NAME(name)(void *token, UINT32 state, sndinfo *info)
#define SND_SET_INFO_CALL(name) SND_SET_INFO_NAME(name)(token, state, info)
#define SND_SET_INFO(name) void SND_SET_INFO_NAME(name)(const device_config *device, UINT32 state, sndinfo *info)
#define SND_SET_INFO_CALL(name) SND_SET_INFO_NAME(name)(device, state, info)
#define SND_START_NAME(name) snd_start_##name
#define SND_START(name) void *SND_START_NAME(name)(const char *tag, int sndindex, int clock, const void *config)
#define SND_START_CALL(name) SND_START_NAME(name)(tag, sndindex, clock, config)
#define SND_START(name) void *SND_START_NAME(name)(const device_config *device, const char *tag, int sndindex, int clock, const void *config)
#define SND_START_CALL(name) SND_START_NAME(name)(device, tag, sndindex, clock, config)
#define SND_STOP_NAME(name) snd_stop_##name
#define SND_STOP(name) void SND_STOP_NAME(name)(void *token)
#define SND_STOP_CALL(name) SND_STOP_NAME(name)(token)
#define SND_STOP(name) void SND_STOP_NAME(name)(const device_config *device)
#define SND_STOP_CALL(name) SND_STOP_NAME(name)(device)
#define SND_RESET_NAME(name) snd_reset_##name
#define SND_RESET(name) void SND_RESET_NAME(name)(void *token)
#define SND_RESET_CALL(name) SND_RESET_NAME(name)(token)
#define SND_RESET(name) void SND_RESET_NAME(name)(const device_config *device)
#define SND_RESET_CALL(name) SND_RESET_NAME(name)(device)
@ -212,7 +212,18 @@ enum
TYPE DEFINITIONS
***************************************************************************/
/* forward declaration of this union */
typedef union _sndinfo sndinfo;
/* define the various callback functions */
typedef void (*snd_get_info_func)(const device_config *device, UINT32 state, sndinfo *info);
typedef void (*snd_set_info_func)(const device_config *device, UINT32 state, sndinfo *info);
typedef void *(*snd_start_func)(const device_config *device, const char *tag, int sndindex, int clock, const void *config);
typedef void (*snd_stop_func)(const device_config *device);
typedef void (*snd_reset_func)(const device_config *device);
/* sndinfo union used to pass data to/from the get_info/set_info functions */
union _sndinfo
{
INT64 i; /* generic integers */
@ -220,12 +231,25 @@ union _sndinfo
genf * f; /* generic function pointers */
const char *s; /* generic strings */
void (*set_info)(void *token, UINT32 state, sndinfo *info);
void * (*start)(const char *tag, int index, int clock, const void *config);/* SNDINFO_PTR_START */
void (*stop)(void *token); /* SNDINFO_PTR_STOP */
void (*reset)(void *token); /* SNDINFO_PTR_RESET */
snd_set_info_func set_info; /* SNDINFO_PTR_SET_INFO */
snd_start_func start; /* SNDINFO_PTR_START */
snd_stop_func stop; /* SNDINFO_PTR_STOP */
snd_reset_func reset; /* SNDINFO_PTR_RESET */
};
typedef struct _snd_class_header snd_class_header;
struct _snd_class_header
{
int index; /* index of this SND */
sound_type sndtype; /* type index of this SND */
/* table of core functions */
snd_get_info_func get_info;
snd_set_info_func set_info;
snd_start_func start;
snd_stop_func stop;
snd_reset_func reset;
};
/***************************************************************************
@ -243,11 +267,11 @@ void sndnum_set_info_int(int sndnum, UINT32 state, INT64 data);
void sndnum_set_info_ptr(int sndnum, UINT32 state, void *data);
void sndnum_set_info_fct(int sndnum, UINT32 state, genf *data);
#define sndnum_name(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_NAME)
#define sndnum_core_family(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_FAMILY)
#define sndnum_core_version(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_VERSION)
#define sndnum_core_file(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_FILE)
#define sndnum_core_credits(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_CREDITS)
#define sndnum_get_name(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_NAME)
#define sndnum_get_core_family(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_FAMILY)
#define sndnum_get_core_version(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_VERSION)
#define sndnum_get_core_file(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_FILE)
#define sndnum_get_core_credits(sndnum) sndnum_get_info_string(sndnum, SNDINFO_STR_CORE_CREDITS)
/* misc accessors */
void sndnum_reset(int sndnum);
@ -271,11 +295,11 @@ void sndti_set_info_int(sound_type sndtype, int sndindex, UINT32 state, INT64 da
void sndti_set_info_ptr(sound_type sndtype, int sndindex, UINT32 state, void *data);
void sndti_set_info_fct(sound_type sndtype, int sndindex, UINT32 state, genf *data);
#define sndti_name(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_NAME)
#define sndti_core_family(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_FAMILY)
#define sndti_core_version(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_VERSION)
#define sndti_core_file(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_FILE)
#define sndti_core_credits(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_CREDITS)
#define sndti_get_name(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_NAME)
#define sndti_get_core_family(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_FAMILY)
#define sndti_get_core_version(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_VERSION)
#define sndti_get_core_file(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_FILE)
#define sndti_get_core_credits(sndtype, sndindex) sndti_get_info_string(sndtype, sndindex, SNDINFO_STR_CORE_CREDITS)
/* misc accessors */
void sndti_reset(sound_type sndtype, int sndindex);
@ -297,11 +321,11 @@ void *sndtype_get_info_ptr(sound_type sndtype, UINT32 state);
genf *sndtype_get_info_fct(sound_type sndtype, UINT32 state);
const char *sndtype_get_info_string(sound_type sndtype, UINT32 state);
#define sndtype_name(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_NAME)
#define sndtype_core_family(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_FAMILY)
#define sndtype_core_version(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_VERSION)
#define sndtype_core_file(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_FILE)
#define sndtype_core_credits(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_CREDITS)
#define sndtype_get_name(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_NAME)
#define sndtype_get_core_family(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_FAMILY)
#define sndtype_get_core_version(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_VERSION)
#define sndtype_get_core_file(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_FILE)
#define sndtype_get_core_credits(sndtype) sndtype_get_info_string(sndtype, SNDINFO_STR_CORE_CREDITS)

View File

@ -295,15 +295,15 @@ static void start_sound_chips(running_machine *machine)
num_regs = state_save_get_reg_count();
streams_set_tag(machine, info);
if (sndintrf_init_sound(sndnum, msound->tag, msound->type, msound->clock, msound->config) != 0)
fatalerror("Sound chip #%d (%s) failed to initialize!", sndnum, sndnum_name(sndnum));
fatalerror("Sound chip #%d (%s) failed to initialize!", sndnum, sndnum_get_name(sndnum));
/* if no state registered for saving, we can't save */
num_regs = state_save_get_reg_count() - num_regs;
if (num_regs == 0)
{
logerror("Sound chip #%d (%s) did not register any state to save!\n", sndnum, sndnum_name(sndnum));
logerror("Sound chip #%d (%s) did not register any state to save!\n", sndnum, sndnum_get_name(sndnum));
if (machine->gamedrv->flags & GAME_SUPPORTS_SAVE)
fatalerror("Sound chip #%d (%s) did not register any state to save!", sndnum, sndnum_name(sndnum));
fatalerror("Sound chip #%d (%s) did not register any state to save!", sndnum, sndnum_get_name(sndnum));
}
/* now count the outputs */
@ -440,7 +440,7 @@ static void route_sound(running_machine *machine)
sprintf(namebuf, "%sSpeaker '%s': ", namebuf, speaker->tag);
/* device name */
sprintf(namebuf, "%s%s ", namebuf, sndnum_name(sndnum));
sprintf(namebuf, "%s%s ", namebuf, sndnum_get_name(sndnum));
/* device index, if more than one of this type */
if (sndtype_count(sndtype) > 1)

View File

@ -8,7 +8,6 @@
#include "sndintrf.h"
#include "streams.h"
#include "deprecat.h"
#include "fm.h"
#include "2151intf.h"
#include "ym2151.h"
@ -55,7 +54,7 @@ static SND_START( ym2151 )
info->chip = ym2151_init(tag,clock,rate);
state_save_register_postload(Machine, ym2151intf_postload, info);
state_save_register_postload(device->machine, ym2151intf_postload, info);
if (info->chip != 0)
{
@ -69,13 +68,13 @@ static SND_START( ym2151 )
static SND_STOP( ym2151 )
{
struct ym2151_info *info = token;
struct ym2151_info *info = device->token;
ym2151_shutdown(info->chip);
}
static SND_RESET( ym2151 )
{
struct ym2151_info *info = token;
struct ym2151_info *info = device->token;
ym2151_reset_chip(info->chip);
}

View File

@ -137,7 +137,7 @@ static SND_START( ym2203 )
/* Initialize FM emurator */
info->chip = ym2203_init(info,tag,clock,rate,timer_handler,IRQHandler,&psgintf);
state_save_register_postload(Machine, ym2203_intf_postload, info);
state_save_register_postload(device->machine, ym2203_intf_postload, info);
if (info->chip)
return info;
@ -149,14 +149,14 @@ static SND_START( ym2203 )
static SND_STOP( ym2203 )
{
struct ym2203_info *info = token;
struct ym2203_info *info = device->token;
ym2203_shutdown(info->chip);
ay8910_stop_ym(info->psg);
}
static SND_RESET( ym2203 )
{
struct ym2203_info *info = token;
struct ym2203_info *info = device->token;
ym2203_reset_chip(info->chip);
}

View File

@ -97,13 +97,13 @@ static SND_START( ym2413 )
static SND_STOP( ym2413 )
{
struct ym2413_info *info = token;
struct ym2413_info *info = device->token;
ym2413_shutdown(info->chip);
}
static SND_RESET( ym2413 )
{
struct ym2413_info *info = token;
struct ym2413_info *info = device->token;
ym2413_reset_chip(info->chip);
}

View File

@ -151,15 +151,15 @@ static SND_START( ym2608 )
/* stream system initialize */
info->stream = stream_create(0,2,rate,info,ym2608_stream_update);
/* setup adpcm buffers */
pcmbufa = (void *)(memory_region(Machine, tag));
pcmsizea = memory_region_length(Machine, tag);
pcmbufa = (void *)(memory_region(device->machine, tag));
pcmsizea = memory_region_length(device->machine, tag);
/* initialize YM2608 */
info->chip = ym2608_init(info,tag,clock,rate,
pcmbufa,pcmsizea,
timer_handler,IRQHandler,&psgintf);
state_save_register_postload(Machine, ym2608_intf_postload, info);
state_save_register_postload(device->machine, ym2608_intf_postload, info);
if (info->chip)
return info;
@ -170,14 +170,14 @@ static SND_START( ym2608 )
static SND_STOP( ym2608 )
{
struct ym2608_info *info = token;
struct ym2608_info *info = device->token;
ym2608_shutdown(info->chip);
ay8910_stop_ym(info->psg);
}
static SND_RESET( ym2608 )
{
struct ym2608_info *info = token;
struct ym2608_info *info = device->token;
ym2608_reset_chip(info->chip);
}

View File

@ -152,11 +152,11 @@ static SND_START( ym2610 )
/* stream system initialize */
info->stream = stream_create(0,2,rate,info,ym2610_stream_update);
/* setup adpcm buffers */
pcmbufa = (void *)(memory_region(Machine, tag));
pcmsizea = memory_region_length(Machine, tag);
pcmbufa = (void *)(memory_region(device->machine, tag));
pcmsizea = memory_region_length(device->machine, tag);
astring_printf(name, "%s.deltat", tag);
pcmbufb = (void *)(memory_region(Machine, astring_c(name)));
pcmsizeb = memory_region_length(Machine, astring_c(name));
pcmbufb = (void *)(memory_region(device->machine, astring_c(name)));
pcmsizeb = memory_region_length(device->machine, astring_c(name));
astring_free(name);
if (pcmbufb == NULL || pcmsizeb == 0)
{
@ -169,7 +169,7 @@ static SND_START( ym2610 )
pcmbufa,pcmsizea,pcmbufb,pcmsizeb,
timer_handler,IRQHandler,&psgintf);
state_save_register_postload(Machine, ym2610_intf_postload, info);
state_save_register_postload(device->machine, ym2610_intf_postload, info);
if (info->chip)
return info;
@ -218,11 +218,11 @@ static SND_START( ym2610b )
/* stream system initialize */
info->stream = stream_create(0,2,rate,info,ym2610b_stream_update);
/* setup adpcm buffers */
pcmbufa = (void *)(memory_region(Machine, tag));
pcmsizea = memory_region_length(Machine, tag);
pcmbufa = (void *)(memory_region(device->machine, tag));
pcmsizea = memory_region_length(device->machine, tag);
astring_printf(name, "%s.deltat", tag);
pcmbufb = (void *)(memory_region(Machine, astring_c(name)));
pcmsizeb = memory_region_length(Machine, astring_c(name));
pcmbufb = (void *)(memory_region(device->machine, astring_c(name)));
pcmsizeb = memory_region_length(device->machine, astring_c(name));
astring_free(name);
if (pcmbufb == NULL || pcmsizeb == 0)
{
@ -244,14 +244,14 @@ static SND_START( ym2610b )
static SND_STOP( ym2610 )
{
struct ym2610_info *info = token;
struct ym2610_info *info = device->token;
ym2610_shutdown(info->chip);
ay8910_stop_ym(info->psg);
}
static SND_RESET( ym2610 )
{
struct ym2610_info *info = token;
struct ym2610_info *info = device->token;
ym2610_reset_chip(info->chip);
}

View File

@ -109,7 +109,7 @@ static SND_START( ym2612 )
/**** initialize YM2612 ****/
info->chip = ym2612_init(info,tag,clock,rate,timer_handler,IRQHandler);
state_save_register_postload(Machine, ym2612_intf_postload, info);
state_save_register_postload(device->machine, ym2612_intf_postload, info);
if (info->chip)
return info;
@ -120,13 +120,13 @@ static SND_START( ym2612 )
static SND_STOP( ym2612 )
{
struct ym2612_info *info = token;
struct ym2612_info *info = device->token;
ym2612_shutdown(info->chip);
}
static SND_RESET( ym2612 )
{
struct ym2612_info *info = token;
struct ym2612_info *info = device->token;
ym2612_reset_chip(info->chip);
}

View File

@ -98,14 +98,14 @@ static SND_START( ymf262 )
static SND_STOP( ymf262 )
{
struct ymf262_info *info = token;
struct ymf262_info *info = device->token;
ymf262_shutdown(info->chip);
}
/* reset */
static SND_RESET( ymf262 )
{
struct ymf262_info *info = token;
struct ymf262_info *info = device->token;
ymf262_reset_chip(info->chip);
}

View File

@ -110,13 +110,13 @@ static SND_START( ym3812 )
static SND_STOP( ym3812 )
{
struct ym3812_info *info = token;
struct ym3812_info *info = device->token;
ym3812_shutdown(info->chip);
}
static SND_RESET( ym3812 )
{
struct ym3812_info *info = token;
struct ym3812_info *info = device->token;
ym3812_reset_chip(info->chip);
}
@ -278,13 +278,13 @@ static SND_START( ym3526 )
static SND_STOP( ym3526 )
{
struct ym3526_info *info = token;
struct ym3526_info *info = device->token;
ym3526_shutdown(info->chip);
}
static SND_RESET( ym3526 )
{
struct ym3526_info *info = token;
struct ym3526_info *info = device->token;
ym3526_reset_chip(info->chip);
}
@ -470,8 +470,8 @@ static SND_START( y8950 )
/* ADPCM ROM data */
y8950_set_delta_t_memory(info->chip,
(void *)(memory_region(Machine, tag)),
memory_region_length(Machine, tag) );
(void *)(memory_region(device->machine, tag)),
memory_region_length(device->machine, tag) );
info->stream = stream_create(0,1,rate,info,y8950_stream_update);
@ -492,13 +492,13 @@ static SND_START( y8950 )
static SND_STOP( y8950 )
{
struct y8950_info *info = token;
struct y8950_info *info = device->token;
y8950_shutdown(info->chip);
}
static SND_RESET( y8950 )
{
struct y8950_info *info = token;
struct y8950_info *info = device->token;
y8950_reset_chip(info->chip);
}

View File

@ -84,7 +84,7 @@ static SND_START( tms5110 )
/* initialize a stream */
info->stream = stream_create(0, 1, clock / 80, info, tms5110_update);
if (memory_region(Machine, tag) == NULL)
if (memory_region(device->machine, tag) == NULL)
{
if (info->intf->M0_callback==NULL)
{
@ -158,14 +158,14 @@ static SND_START( m58817 )
static SND_STOP( tms5110 )
{
struct tms5110_info *info = token;
struct tms5110_info *info = device->token;
tms5110_destroy(info->chip);
}
static SND_RESET( tms5110 )
{
struct tms5110_info *info = token;
struct tms5110_info *info = device->token;
tms5110_reset_chip(info->chip);
}

View File

@ -92,7 +92,7 @@ static SND_START( tms5200 )
static SND_STOP( tms5220 )
{
struct tms5220_info *info = token;
struct tms5220_info *info = device->token;
tms5220_destroy(info->chip);
}
@ -100,7 +100,7 @@ static SND_STOP( tms5220 )
static SND_RESET( tms5220 )
{
struct tms5220_info *info = token;
struct tms5220_info *info = device->token;
tms5220_reset_chip(info->chip);
}
@ -240,7 +240,7 @@ void tms5220_set_frequency(int frequency)
static SND_SET_INFO( tms5220 )
{
struct tms5220_info *ti = token;
struct tms5220_info *ti = device->token;
switch (state)
{

View File

@ -196,10 +196,8 @@ static void astrocade_update(void *param, stream_sample_t **inputs, stream_sampl
*
*************************************/
static SND_RESET( astrocade )
static void astrocade_reset(struct astrocade_info *chip)
{
struct astrocade_info *chip = token;
memset(chip->reg, 0, sizeof(chip->reg));
chip->master_count = 0;
@ -218,6 +216,10 @@ static SND_RESET( astrocade )
chip->c_state = 0;
}
SND_RESET( astrocade )
{
astrocade_reset(device->token);
}
/*************************************
@ -273,7 +275,7 @@ static SND_START( astrocade )
chip->stream = stream_create(0, 1, clock, chip, astrocade_update);
/* reset state */
SND_RESET_NAME( astrocade )(chip);
astrocade_reset(chip);
astrocade_state_save_register(chip, tag);
return chip;

View File

@ -846,12 +846,12 @@ static SND_START( ym2149 )
static SND_STOP( ay8910 )
{
ay8910_stop_ym(token);
ay8910_stop_ym(device->token);
}
static SND_RESET( ay8910 )
{
ay8910_reset_ym(token);
ay8910_reset_ym(device->token);
}
static SND_SET_INFO( ay8910 )

View File

@ -14,7 +14,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "bsmt2000.h"
@ -86,8 +85,7 @@ struct _bsmt2000_chip
***************************************************************************/
/* core implementation */
static SND_START( bsmt2000 );
static SND_RESET( bsmt2000 );
static void bsmt2000_reset(bsmt2000_chip *chip);
static void bsmt2000_update(void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length);
/* read/write access */
@ -121,8 +119,8 @@ static SND_START( bsmt2000 )
chip->clock = clock;
/* initialize the regions */
chip->region_base = (INT8 *)memory_region(Machine, tag);
chip->total_banks = memory_region_length(Machine, tag) / 0x10000;
chip->region_base = (INT8 *)memory_region(device->machine, tag);
chip->total_banks = memory_region_length(device->machine, tag) / 0x10000;
/* register chip-wide data for save states */
state_save_register_item("bsmt2000", tag, 0, chip->last_register);
@ -148,7 +146,7 @@ static SND_START( bsmt2000 )
}
/* reset the chip -- this also configures the default mode */
SND_RESET_NAME( bsmt2000 )(chip);
bsmt2000_reset(chip);
return chip;
}
@ -157,9 +155,8 @@ static SND_START( bsmt2000 )
SND_RESET( bsmt2000 ) - chip reset callback
-------------------------------------------------*/
static SND_RESET( bsmt2000 )
static void bsmt2000_reset(bsmt2000_chip *chip)
{
bsmt2000_chip *chip = token;
int voicenum;
/* reset all the voice data */
@ -175,6 +172,11 @@ static SND_RESET( bsmt2000 )
set_mode(chip);
}
static SND_RESET( bsmt2000 )
{
bsmt2000_reset(device->token);
}
/*-------------------------------------------------
bsmt2000_update - update callback for

View File

@ -45,7 +45,6 @@ Unmapped registers:
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "c140.h"
@ -469,7 +468,7 @@ static SND_START( c140 )
info->stream = stream_create(0,2,info->sample_rate,info,update_stereo);
info->pRom=memory_region(Machine, tag);
info->pRom=memory_region(device->machine, tag);
/* make decompress pcm table */ //2000.06.26 CAB
{

View File

@ -15,7 +15,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "c352.h"
@ -542,8 +541,8 @@ static SND_START( c352 )
info = auto_malloc(sizeof(*info));
memset(info, 0, sizeof(*info));
info->c352_rom_samples = memory_region(Machine, tag);
info->c352_rom_length = memory_region_length(Machine, tag);
info->c352_rom_samples = memory_region(device->machine, tag);
info->c352_rom_length = memory_region_length(device->machine, tag);
info->sample_rate_base = clock / 192;

View File

@ -110,7 +110,7 @@ static SND_START( cdp1869 )
info = auto_malloc(sizeof(*info));
memset(info, 0, sizeof(*info));
info->stream = stream_create(0, 1, Machine->sample_rate, info, cdp1869_update );
info->stream = stream_create(0, 1, device->machine->sample_rate, info, cdp1869_update );
info->incr = 0;
info->signal = 0x07fff;

View File

@ -32,7 +32,7 @@ static SND_START( custom )
static SND_STOP( custom )
{
struct custom_info *info = token;
struct custom_info *info = device->token;
if (info->intf->stop)
(*info->intf->stop)(info->token);
}
@ -40,7 +40,7 @@ static SND_STOP( custom )
static SND_RESET( custom )
{
struct custom_info *info = token;
struct custom_info *info = device->token;
if (info->intf->reset)
(*info->intf->reset)(info->token);
}

View File

@ -261,7 +261,7 @@ static SND_START( discrete )
if (clock)
info->sample_rate = clock;
else
info->sample_rate = Machine->sample_rate;
info->sample_rate = device->machine->sample_rate;
info->sample_time = 1.0 / info->sample_rate;
info->neg_sample_time = - info->sample_time;
@ -332,7 +332,7 @@ static SND_START( discrete )
static SND_STOP( discrete )
{
discrete_info *info = token;
discrete_info *info = device->token;
int log_num;
#if (DISCRETE_PROFILING)
@ -392,7 +392,7 @@ static SND_STOP( discrete )
static SND_RESET( discrete )
{
discrete_info *info = token;
discrete_info *info = device->token;
int nodenum;
discrete_current_context = info;

View File

@ -820,7 +820,7 @@ static void es5506_update(void *param, stream_sample_t **inputs, stream_sample_t
***********************************************************************************************/
static void *es5506_start_common(sound_type sndtype, const char *tag, int sndindex, int clock, const void *config)
static void *es5506_start_common(const device_config *device, const char *tag, int sndindex, int clock, const void *config, sound_type sndtype)
{
const es5506_interface *intf = config;
struct ES5506Chip *chip;
@ -842,10 +842,10 @@ static void *es5506_start_common(sound_type sndtype, const char *tag, int sndind
chip->stream = stream_create(0, 2, clock / (16*32), chip, es5506_update);
/* initialize the regions */
chip->region_base[0] = intf->region0 ? (UINT16 *)memory_region(Machine, intf->region0) : NULL;
chip->region_base[1] = intf->region1 ? (UINT16 *)memory_region(Machine, intf->region1) : NULL;
chip->region_base[2] = intf->region2 ? (UINT16 *)memory_region(Machine, intf->region2) : NULL;
chip->region_base[3] = intf->region3 ? (UINT16 *)memory_region(Machine, intf->region3) : NULL;
chip->region_base[0] = intf->region0 ? (UINT16 *)memory_region(device->machine, intf->region0) : NULL;
chip->region_base[1] = intf->region1 ? (UINT16 *)memory_region(device->machine, intf->region1) : NULL;
chip->region_base[2] = intf->region2 ? (UINT16 *)memory_region(device->machine, intf->region2) : NULL;
chip->region_base[3] = intf->region3 ? (UINT16 *)memory_region(device->machine, intf->region3) : NULL;
/* initialize the rest of the structure */
chip->master_clock = clock;
@ -874,7 +874,7 @@ static void *es5506_start_common(sound_type sndtype, const char *tag, int sndind
static SND_START( es5506 )
{
return es5506_start_common(SOUND_ES5506, tag, sndindex, clock, config);
return es5506_start_common(device, tag, sndindex, clock, config, SOUND_ES5506);
}
@ -1511,7 +1511,7 @@ static SND_START( es5505 )
es5506intf.irq_callback = intf->irq_callback;
es5506intf.read_port = intf->read_port;
return es5506_start_common(SOUND_ES5505, tag, sndindex, clock, &es5506intf);
return es5506_start_common(device, tag, sndindex, clock, &es5506intf, SOUND_ES5505);
}

View File

@ -15,7 +15,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "es8712.h"
@ -222,7 +221,7 @@ static SND_START( es8712 )
chip->repeat = 0;
chip->bank_offset = 0;
chip->region_base = memory_region(Machine, tag);
chip->region_base = memory_region(device->machine, tag);
/* generate the name and create the stream */
chip->stream = stream_create(0, 1, clock, chip, es8712_update);
@ -246,7 +245,7 @@ static SND_START( es8712 )
static SND_RESET( es8712 )
{
struct es8712 *chip = token;
struct es8712 *chip = device->token;
if (chip->playing)
{

View File

@ -88,7 +88,7 @@ static SND_START( filter_rc )
info = auto_malloc(sizeof(*info));
memset(info, 0, sizeof(*info));
info->stream = stream_create(1, 1, Machine->sample_rate, info, filter_rc_update);
info->stream = stream_create(1, 1, device->machine->sample_rate, info, filter_rc_update);
if (conf)
set_RC_info(info, conf->type, conf->R1, conf->R2, conf->R3, conf->C);
else

View File

@ -1,6 +1,5 @@
#include "sndintrf.h"
#include "streams.h"
#include "deprecat.h"
#include "flt_vol.h"
@ -31,7 +30,7 @@ static SND_START( filter_volume )
memset(info, 0, sizeof(*info));
info->gain = 0x100;
info->stream = stream_create(1, 1, Machine->sample_rate, info, filter_volume_update);
info->stream = stream_create(1, 1, device->machine->sample_rate, info, filter_volume_update);
return info;
}

View File

@ -110,7 +110,8 @@ static SND_START( mc3418 )
static SND_RESET( hc55516 )
{
((struct hc55516_data *)token)->last_clock_state = 0;
struct hc55516_data *chip = device->token;
chip->last_clock_state = 0;
}

View File

@ -450,7 +450,7 @@ static SND_START( ics2115 )
chip->intf = config;
chip->index = sndindex;
chip->rom = memory_region(Machine, tag);
chip->rom = memory_region(device->machine, tag);
chip->timer[0].timer = timer_alloc(Machine, timer_cb_0, chip);
chip->timer[1].timer = timer_alloc(Machine, timer_cb_1, chip);
chip->ulaw = auto_malloc(256*sizeof(INT16));
@ -521,7 +521,7 @@ WRITE8_HANDLER( ics2115_w )
static SND_RESET( ics2115 )
{
struct ics2115 *chip = token;
struct ics2115 *chip = device->token;
chip->irq_en = 0;
chip->irq_pend = 0;
memset(chip->voice, 0, sizeof(chip->voice));

View File

@ -27,7 +27,6 @@ Revisions:
*********************************************************/
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "iremga20.h"
@ -206,9 +205,8 @@ READ16_HANDLER( irem_ga20_r )
return 0;
}
static SND_RESET( iremga20 )
static void iremga20_reset(struct IremGA20_chip_def *chip)
{
struct IremGA20_chip_def *chip = token;
int i;
for( i = 0; i < 4; i++ ) {
@ -226,6 +224,11 @@ static SND_RESET( iremga20 )
}
static SND_RESET( iremga20 )
{
iremga20_reset(device->token);
}
static SND_START( iremga20 )
{
struct IremGA20_chip_def *chip;
@ -235,10 +238,10 @@ static SND_START( iremga20 )
memset(chip, 0, sizeof(*chip));
/* Initialize our chip structure */
chip->rom = memory_region(Machine, tag);
chip->rom_size = memory_region_length(Machine, tag);
chip->rom = memory_region(device->machine, tag);
chip->rom_size = memory_region_length(device->machine, tag);
SND_RESET_NAME( iremga20 )(chip);
iremga20_reset(chip);
for ( i = 0; i < 0x40; i++ )
chip->regs[i] = 0;

View File

@ -26,7 +26,6 @@
***************************************************************************/
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "k005289.h"
@ -172,7 +171,7 @@ static SND_START( k005289 )
if (make_mixer_table(info, 2))
return NULL;
info->sound_prom = memory_region(Machine, tag);
info->sound_prom = memory_region(device->machine, tag);
/* reset all the voices */
voice[0].frequency = 0;

View File

@ -24,7 +24,6 @@ added external port callback, and functions to set the volume of the channels
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "k007232.h"
#include <math.h>
@ -307,9 +306,9 @@ static SND_START( k007232 )
/* Set up the chips */
info->pcmbuf[0] = (unsigned char *)memory_region(Machine, tag);
info->pcmbuf[1] = (unsigned char *)memory_region(Machine, tag);
info->pcmlimit = (unsigned int)memory_region_length(Machine, tag);
info->pcmbuf[0] = (unsigned char *)memory_region(device->machine, tag);
info->pcmbuf[1] = (unsigned char *)memory_region(device->machine, tag);
info->pcmlimit = (unsigned int)memory_region_length(device->machine, tag);
info->clock = clock;

View File

@ -151,7 +151,7 @@ static SND_START( k051649 )
static SND_RESET( k051649 )
{
struct k051649_info *info = token;
struct k051649_info *info = device->token;
k051649_sound_channel *voice = info->channel_list;
int i;

View File

@ -64,8 +64,7 @@ static void InitDeltaTable( struct k053260_chip_def *ic, int rate, int clock ) {
}
}
static SND_RESET( k053260 ) {
struct k053260_chip_def *ic = token;
static void k053260_reset(struct k053260_chip_def *ic) {
int i;
for( i = 0; i < 4; i++ ) {
@ -83,6 +82,11 @@ static SND_RESET( k053260 ) {
}
}
static SND_RESET( k053260 ) {
k053260_reset(device->token);
}
INLINE int limit( int val, int max, int min ) {
if ( val > max )
val = max;
@ -208,10 +212,10 @@ static SND_START( k053260 )
ic->intf = (config != NULL) ? config : &defintrf;
ic->mode = 0;
ic->rom = memory_region(Machine, (ic->intf->rgnoverride != NULL) ? ic->intf->rgnoverride : tag);
ic->rom_size = memory_region_length(Machine, (ic->intf->rgnoverride != NULL) ? ic->intf->rgnoverride : tag) - 1;
ic->rom = memory_region(device->machine, (ic->intf->rgnoverride != NULL) ? ic->intf->rgnoverride : tag);
ic->rom_size = memory_region_length(device->machine, (ic->intf->rgnoverride != NULL) ? ic->intf->rgnoverride : tag) - 1;
SND_RESET_NAME( k053260 )( ic );
k053260_reset( ic );
for ( i = 0; i < 0x30; i++ )
ic->regs[i] = 0;

View File

@ -664,7 +664,7 @@ static SND_START( k054539 )
k054539_init_chip(tag, info, clock, sndindex);
state_save_register_postload(Machine, reset_zones, info);
state_save_register_postload(device->machine, reset_zones, info);
return info;
}

View File

@ -147,10 +147,8 @@ static TIMER_CALLBACK( MSM5205_vclk_callback )
/*
* Reset emulation of an MSM5205-compatible chip
*/
static SND_RESET( msm5205 )
static void msm5205_reset(struct MSM5205Voice *voice)
{
struct MSM5205Voice *voice = token;
/* initialize work */
voice->data = 0;
voice->vclk = 0;
@ -161,6 +159,12 @@ static SND_RESET( msm5205 )
msm5205_playmode_w(voice->index,voice->intf->select);
}
static SND_RESET( msm5205 )
{
msm5205_reset(device->token);
}
/*
* Start emulation of an MSM5205-compatible chip
*/
@ -186,7 +190,7 @@ static SND_START( msm5205 )
voice->timer = timer_alloc(Machine, MSM5205_vclk_callback, voice);
/* initialize */
SND_RESET_NAME( msm5205 )(voice);
msm5205_reset(voice);
/* register for save states */
state_save_register_item("msm5205", tag, 0, voice->clock);

View File

@ -265,9 +265,8 @@ static void msm5232_gate_update(MSM5232 *chip)
}
static SND_RESET( msm5232 )
static void msm5232_reset(MSM5232 *chip)
{
MSM5232 *chip = token;
int i;
for (i=0; i<8; i++)
@ -294,6 +293,11 @@ static SND_RESET( msm5232 )
msm5232_gate_update(chip);
}
static SND_RESET( msm5232 )
{
msm5232_reset(device->token);
}
static void msm5232_init(MSM5232 *chip, const msm5232_interface *intf, int clock, int rate)
{
int j;
@ -315,7 +319,7 @@ static void msm5232_init(MSM5232 *chip, const msm5232_interface *intf, int clock
memset(&chip->voi[j],0,sizeof(VOICE));
msm5232_init_voice(chip,j);
}
SND_RESET_NAME( msm5232 )( chip );
msm5232_reset( chip );
}
static void msm5232_shutdown(void *chip)
@ -791,7 +795,7 @@ static SND_START( msm5232 )
static SND_STOP( msm5232 )
{
msm5232_shutdown(token);
msm5232_shutdown(device->token);
}
WRITE8_HANDLER ( msm5232_0_w )

View File

@ -33,7 +33,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "multipcm.h"
@ -494,7 +493,7 @@ static SND_START( multipcm )
ptChip=(struct _MultiPCM *)auto_malloc(sizeof(struct _MultiPCM));
ptChip->ROM=(INT8 *)memory_region(Machine, tag);
ptChip->ROM=(INT8 *)memory_region(device->machine, tag);
ptChip->Rate=(float) clock / MULTIPCM_CLOCKDIV;
ptChip->stream = stream_create(0, 2, ptChip->Rate, ptChip, MultiPCM_update);

View File

@ -14,7 +14,6 @@ silence compression: '00 nn' must be replaced by nn+1 times '80'.
***************************************************************************/
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "n63701x.h"
@ -107,7 +106,7 @@ static SND_START( namco_63701x )
chip = auto_malloc(sizeof(*chip));
memset(chip, 0, sizeof(*chip));
chip->rom = memory_region(Machine, tag);
chip->rom = memory_region(device->machine, tag);
chip->stream = stream_create(0, 2, clock/1000, chip, namco_63701x_update);

View File

@ -46,7 +46,6 @@ Jan 12, 2005. The 555 is probably an external playback frequency.
***************************************************************************/
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "filter.h"
#include "namco52.h"
@ -70,7 +69,7 @@ struct namco_52xx
filter2_context n52_lp_filter;
};
static SND_RESET( namco_52xx );
static void namco_52xx_reset(struct namco_52xx *chip);
static void namco_52xx_stream_update_one(void *param, stream_sample_t **inputs, stream_sample_t **_buffer, int length)
@ -100,7 +99,7 @@ static void namco_52xx_stream_update_one(void *param, stream_sample_t **inputs,
/* sample done */
memset(&buffer[i], 0, (length - i) * sizeof(INT16));
i = length;
SND_RESET_NAME( namco_52xx )(chip);
namco_52xx_reset(chip);
}
else
{
@ -120,16 +119,19 @@ static void namco_52xx_stream_update_one(void *param, stream_sample_t **inputs,
}
}
static SND_RESET( namco_52xx )
static void namco_52xx_reset(struct namco_52xx *chip)
{
struct namco_52xx *chip = token;
chip->n52_pb_cycle = chip->n52_start = chip->n52_end = chip->n52_length = chip->n52_pos = 0;
filter2_reset(&chip->n52_hp_filter);
filter2_reset(&chip->n52_lp_filter);
}
static SND_RESET( namco_52xx )
{
namco_52xx_reset(device->token);
}
static SND_START( namco_52xx )
{
struct namco_52xx *chip;
@ -139,8 +141,8 @@ static SND_START( namco_52xx )
memset(chip, 0, sizeof(*chip));
chip->intf = config;
chip->rom = memory_region(Machine, tag);
chip->rom_len = memory_region_length(Machine, tag);
chip->rom = memory_region(device->machine, tag);
chip->rom_len = memory_region_length(device->machine, tag);
if (chip->intf->play_rate == 0)
{
@ -157,7 +159,7 @@ static SND_START( namco_52xx )
chip->stream = stream_create(0, 1, rate, chip, namco_52xx_stream_update_one);
SND_RESET_NAME( namco_52xx )(chip);
namco_52xx_reset(chip);
state_save_register_item("namco52xx", tag, 0, chip->n52_pb_cycle);
state_save_register_item("namco52xx", tag, 0, chip->n52_step);

View File

@ -47,7 +47,6 @@
#include "sndintrf.h"
#include "cpuexec.h"
#include "streams.h"
#include "deprecat.h"
#include "nes_apu.h"
#include "cpu/m6502/m6502.h"
@ -681,9 +680,9 @@ static SND_START( nesapu )
memset(info, 0, sizeof(*info));
/* Initialize global variables */
info->samps_per_sync = rate / ATTOSECONDS_TO_HZ(video_screen_get_frame_period(Machine->primary_screen).attoseconds);
info->samps_per_sync = rate / ATTOSECONDS_TO_HZ(video_screen_get_frame_period(device->machine->primary_screen).attoseconds);
info->buffer_size = info->samps_per_sync;
info->real_rate = info->samps_per_sync * ATTOSECONDS_TO_HZ(video_screen_get_frame_period(Machine->primary_screen).attoseconds);
info->real_rate = info->samps_per_sync * ATTOSECONDS_TO_HZ(video_screen_get_frame_period(device->machine->primary_screen).attoseconds);
info->apu_incsize = (float) (clock / (float) info->real_rate);
/* Use initializer calls */
@ -695,7 +694,7 @@ static SND_START( nesapu )
info->buffer_size+=info->samps_per_sync;
/* Initialize individual chips */
(info->APU.dpcm).memory = cputag_get_address_space(Machine, intf->cpu_tag, ADDRESS_SPACE_PROGRAM);
(info->APU.dpcm).memory = cputag_get_address_space(device->machine, intf->cpu_tag, ADDRESS_SPACE_PROGRAM);
info->stream = stream_create(0, 1, rate, info, nes_psg_update_sound);

View File

@ -29,7 +29,6 @@
#include "streams.h"
#include "cpuintrf.h"
#include "nile.h"
#include "deprecat.h"
#define NILE_VOICES 8
@ -224,7 +223,7 @@ static SND_START( nile )
info = auto_malloc(sizeof(*info));
memset(info, 0, sizeof(*info));
info->sound_ram = (UINT8 *)memory_region(Machine, tag);
info->sound_ram = (UINT8 *)memory_region(device->machine, tag);
info->stream = stream_create(0, 2, 44100, info, nile_update);

View File

@ -12,7 +12,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "okim6258.h"
@ -219,7 +218,7 @@ static SND_START( okim6258 )
static SND_RESET( okim6258 )
{
struct okim6258 *info = token;
struct okim6258 *info = device->token;
stream_update(info->stream);

View File

@ -24,7 +24,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "okim6295.h"
@ -332,7 +331,7 @@ static SND_START( okim6295 )
info->command = -1;
info->bank_offset = 0;
info->region_base = memory_region(Machine, (intf->rgnoverride != NULL) ? intf->rgnoverride : tag);
info->region_base = memory_region(device->machine, (intf->rgnoverride != NULL) ? intf->rgnoverride : tag);
info->master_clock = clock;
@ -363,7 +362,7 @@ static SND_START( okim6295 )
static SND_RESET( okim6295 )
{
struct okim6295 *info = token;
struct okim6295 *info = device->token;
int i;
stream_update(info->stream);

View File

@ -33,7 +33,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "qsound.h"
@ -101,8 +100,8 @@ static SND_START( qsound )
chip = auto_malloc(sizeof(*chip));
memset(chip, 0, sizeof(*chip));
chip->sample_rom = (QSOUND_SRC_SAMPLE *)memory_region(Machine, tag);
chip->sample_rom_length = memory_region_length(Machine, tag);
chip->sample_rom = (QSOUND_SRC_SAMPLE *)memory_region(device->machine, tag);
chip->sample_rom_length = memory_region_length(device->machine, tag);
memset(chip->channel, 0, sizeof(chip->channel));
@ -155,7 +154,7 @@ static SND_START( qsound )
static SND_STOP( qsound )
{
struct qsound_info *chip = token;
struct qsound_info *chip = device->token;
if (chip->fpRawDataR)
{
fclose(chip->fpRawDataR);

View File

@ -230,7 +230,6 @@ and off as it normally does during speech). Once START has gone low-high-low, th
#include "sndintrf.h"
#include "streams.h"
#include "deprecat.h"
#include "s14001a.h"
typedef struct
@ -575,9 +574,9 @@ static SND_START( s14001a )
chip->filtervals[i] = SILENCE;
}
chip->SpeechRom = memory_region(Machine, tag);
chip->SpeechRom = memory_region(device->machine, tag);
chip->stream = stream_create(0, 1, clock ? clock : Machine->sample_rate, chip, s14001a_pcm_update);
chip->stream = stream_create(0, 1, clock ? clock : device->machine->sample_rate, chip, s14001a_pcm_update);
return chip;
}

View File

@ -541,7 +541,7 @@ static SND_START( samples )
/* read audio samples */
if (intf->samplenames)
info->samples = readsamples(intf->samplenames,Machine->gamedrv->name);
info->samples = readsamples(intf->samplenames,device->machine->gamedrv->name);
/* allocate channels */
info->numchannels = intf->channels;
@ -549,7 +549,7 @@ static SND_START( samples )
info->channel = auto_malloc(sizeof(*info->channel) * info->numchannels);
for (i = 0; i < info->numchannels; i++)
{
info->channel[i].stream = stream_create(0, 1, Machine->sample_rate, &info->channel[i], sample_update_sound);
info->channel[i].stream = stream_create(0, 1, device->machine->sample_rate, &info->channel[i], sample_update_sound);
info->channel[i].source = NULL;
info->channel[i].source_num = -1;
@ -566,7 +566,7 @@ static SND_START( samples )
state_save_register_item("samples", tag, i, info->channel[i].loop);
state_save_register_item("samples", tag, i, info->channel[i].paused);
}
state_save_register_postload(Machine, samples_postload, info);
state_save_register_postload(device->machine, samples_postload, info);
/* initialize any custom handlers */
if (intf->start)

View File

@ -3,7 +3,6 @@
/*********************************************************/
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "segapcm.h"
@ -86,7 +85,7 @@ static SND_START( segapcm )
spcm = auto_malloc(sizeof(*spcm));
memset(spcm, 0, sizeof(*spcm));
spcm->rom = (const UINT8 *)memory_region(Machine, tag);
spcm->rom = (const UINT8 *)memory_region(device->machine, tag);
spcm->ram = auto_malloc(0x800);
memset(spcm->ram, 0xff, 0x800);
@ -96,7 +95,7 @@ static SND_START( segapcm )
if(!mask)
mask = BANK_MASK7>>16;
len = memory_region_length(Machine, tag);
len = memory_region_length(device->machine, tag);
for(rom_mask = 1; rom_mask < len; rom_mask *= 2);
rom_mask--;

View File

@ -53,7 +53,7 @@ static void *sid_start(const char *tag, int sndindex, int clock, const void *con
static SND_RESET( sid )
{
SID6581 *sid = (SID6581 *) token;
SID6581 *sid = device->token;
sidEmuReset(sid);
}

View File

@ -30,7 +30,6 @@
#include <math.h> /* for pow() */
#include "sndintrf.h"
#include "streams.h"
#include "deprecat.h"
#include "wavwrite.h"
#include "sn76477.h"
@ -2405,7 +2404,7 @@ static SND_START( sn76477 )
sn->tag = tag;
sn->channel = stream_create(0, 1, Machine->sample_rate, sn, SN76477_update);
sn->channel = stream_create(0, 1, device->machine->sample_rate, sn, SN76477_update);
if (clock > 0)
{
@ -2413,7 +2412,7 @@ static SND_START( sn76477 )
}
else
{
sn->sample_rate = Machine->sample_rate;
sn->sample_rate = device->machine->sample_rate;
}
intialize_noise(sn);
@ -2464,7 +2463,7 @@ static SND_START( sn76477 )
static SND_STOP( sn76477 )
{
struct SN76477 *sn = (struct SN76477 *)token;
struct SN76477 *sn = device->token;
if (LOG_WAV)
close_wav_file(sn);

View File

@ -33,7 +33,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "cpuintrf.h"
#include "sp0256.h"
@ -1206,7 +1205,7 @@ static SND_START( sp0256 )
/* -------------------------------------------------------------------- */
/* Setup the ROM. */
/* -------------------------------------------------------------------- */
sp->rom = memory_region(Machine, tag);
sp->rom = memory_region(device->machine, tag);
sp0256_bitrevbuff(sp->rom, 0, 0xffff);
return sp;
@ -1214,14 +1213,12 @@ static SND_START( sp0256 )
static SND_STOP( sp0256 )
{
struct sp0256 *sp = token;
struct sp0256 *sp = device->token;
free( sp->scratch );
}
static SND_RESET( sp0256 )
static void sp0256_reset(struct sp0256 *sp)
{
struct sp0256 *sp = token;
/* ---------------------------------------------------------------- */
/* Reset the FIFO and SP0256. */
/* ---------------------------------------------------------------- */
@ -1243,6 +1240,11 @@ static SND_RESET( sp0256 )
SET_SBY(ASSERT_LINE)
}
static SND_RESET( sp0256 )
{
sp0256_reset(device->token);
}
WRITE8_HANDLER( sp0256_ALD_w )
{
struct sp0256 *sp = sndti_token(SOUND_SP0256, 0);
@ -1314,7 +1316,7 @@ WRITE16_HANDLER( spb640_w )
if (data & 0x400)
{
sp->fifo_head = sp->fifo_tail = sp->fifo_bitp = 0;
SND_RESET_NAME( sp0256 )(sp);
sp0256_reset(sp);
return;
}

View File

@ -9,7 +9,6 @@
#include "sndintrf.h"
#include "streams.h"
#include "deprecat.h"
#include "speaker.h"
static const INT16 default_levels[2] = {0,32767};
@ -40,7 +39,7 @@ static SND_START( speaker )
{
struct speaker *sp = auto_malloc(sizeof(*sp));
sp->channel = stream_create(0, 1, Machine->sample_rate, sp, speaker_sound_update);
sp->channel = stream_create(0, 1, device->machine->sample_rate, sp, speaker_sound_update);
sp->num_levels = 2;
sp->levels = default_levels;
sp->level = 0;

View File

@ -35,7 +35,7 @@ static SND_START( tia )
static SND_STOP( tia )
{
struct tia_info *info = (struct tia_info*)token;
struct tia_info *info = device->token;
tia_sound_free(info->chip);
}

View File

@ -552,9 +552,8 @@ static TIMER_CALLBACK( upd7759_slave_update )
*************************************************************/
static SND_RESET( upd7759 )
static void upd7759_reset(struct upd7759_chip *chip)
{
struct upd7759_chip *chip = token;
chip->pos = 0;
chip->fifo_in = 0;
chip->drq = 0;
@ -581,6 +580,12 @@ static SND_RESET( upd7759 )
}
static SND_RESET( upd7759 )
{
upd7759_reset(device->token);
}
static STATE_POSTLOAD( upd7759_postload )
{
struct upd7759_chip *chip = (struct upd7759_chip *)param;
@ -643,7 +648,7 @@ static SND_START( upd7759 )
chip->state = STATE_IDLE;
/* compute the ROM base or allocate a timer */
chip->rom = chip->rombase = memory_region(Machine, tag);
chip->rom = chip->rombase = memory_region(device->machine, tag);
if (chip->rom == NULL)
chip->timer = timer_alloc(Machine, upd7759_slave_update, chip);
@ -655,7 +660,7 @@ static SND_START( upd7759 )
chip->start = 1;
/* toggle the reset line to finish the reset */
SND_RESET_NAME( upd7759 )(chip);
upd7759_reset(chip);
register_for_save(chip, tag);
@ -682,7 +687,7 @@ void upd7759_reset_w(int which, UINT8 data)
/* on the falling edge, reset everything */
if (oldreset && !chip->reset)
SND_RESET_NAME( upd7759 )(chip);
upd7759_reset(chip);
}
void upd7759_start_w(int which, UINT8 data)

View File

@ -494,9 +494,8 @@ static STATE_POSTLOAD( vlm5030_restore_state )
}
static SND_RESET( vlm5030 )
static void vlm5030_reset(struct vlm5030_info *chip)
{
struct vlm5030_info *chip = token;
chip->phase = PH_RESET;
chip->address = 0;
chip->vcu_addr_h = 0;
@ -516,6 +515,12 @@ static SND_RESET( vlm5030 )
vlm5030_setup_parameter(chip, 0x00);
}
static SND_RESET( vlm5030 )
{
vlm5030_reset(device->token);
}
/* set speech rom address */
void vlm5030_set_rom(void *speech_rom)
{
@ -557,7 +562,7 @@ void vlm5030_rst (int pin )
chip->pin_RST = 1;
if( chip->pin_BSY )
{
SND_RESET_NAME( vlm5030 )(chip);
vlm5030_reset(chip);
}
}
}
@ -649,13 +654,13 @@ static SND_START( vlm5030 )
chip->pin_RST = chip->pin_ST = chip->pin_VCU= 0;
chip->latch_data = 0;
SND_RESET_NAME( vlm5030 )(chip);
vlm5030_reset(chip);
chip->phase = PH_IDLE;
chip->rom = memory_region(Machine, tag);
chip->rom = memory_region(device->machine, tag);
/* memory size */
if( chip->intf->memory_size == 0)
chip->address_mask = memory_region_length(Machine, tag)-1;
chip->address_mask = memory_region_length(device->machine, tag)-1;
else
chip->address_mask = chip->intf->memory_size-1;
@ -682,7 +687,7 @@ static SND_START( vlm5030 )
state_save_register_item(VLM_NAME,tag,0,chip->target_pitch);
state_save_register_item_array(VLM_NAME,tag,0,chip->target_k);
state_save_register_item_array(VLM_NAME,tag,0,chip->x);
state_save_register_postload(Machine, vlm5030_restore_state, chip);
state_save_register_postload(device->machine, vlm5030_restore_state, chip);
return chip;
}

View File

@ -108,10 +108,10 @@ static SND_START( votrax )
memset(votrax, 0, sizeof(*votrax));
votrax->samples = readsamples(VotraxTable,"votrax");
votrax->frequency = 8000;
votrax->volume = 230;
votrax->frequency = 8000;
votrax->volume = 230;
votrax->channel = stream_create(0, 1, Machine->sample_rate, votrax, votrax_update_sound);
votrax->channel = stream_create(0, 1, device->machine->sample_rate, votrax, votrax_update_sound);
votrax->sample = NULL;
votrax->step = 0;

View File

@ -62,9 +62,9 @@ static SND_START( wave )
const device_config *image = NULL;
#ifdef MESS
image = device_list_find_by_tag( Machine->config->devicelist, CASSETTE, tag );
image = device_list_find_by_tag( device->machine->config->devicelist, CASSETTE, tag );
#endif
stream_create(0, 1, Machine->sample_rate, (void *)image, wave_sound_update);
stream_create(0, 1, device->machine->sample_rate, (void *)image, wave_sound_update);
return (void *) (FPTR)(sndindex | WAVE_TOKEN_MASK);
}

View File

@ -1757,7 +1757,7 @@ static SND_START( ymf271 )
intf = (config != NULL) ? config : &defintrf;
ymf271_init(chip, memory_region(Machine, tag), intf->irq_callback, intf->ext_read, intf->ext_write);
ymf271_init(chip, memory_region(device->machine, tag), intf->irq_callback, intf->ext_read, intf->ext_write);
chip->stream = stream_create(0, 2, clock/384, chip, ymf271_update);
for (i = 0; i < 256; i++)
@ -1801,7 +1801,7 @@ WRITE8_HANDLER( ymf271_1_w )
static SND_RESET( ymf271 )
{
int i;
YMF271Chip *chip = (YMF271Chip*)token;
YMF271Chip *chip = device->token;
for (i = 0; i < 48; i++)
{

View File

@ -59,7 +59,6 @@
#include <math.h>
#include "sndintrf.h"
#include "deprecat.h"
#include "streams.h"
#include "cpuintrf.h"
#include "ymf278b.h"
@ -655,12 +654,12 @@ static void ymf278b_data_port_C_w(int num, UINT8 data)
ymf278b_C_w(chip, chip->port_C, data);
}
static void ymf278b_init(YMF278BChip *chip, UINT8 *rom, void (*cb)(running_machine *, int), int clock)
static void ymf278b_init(running_machine *machine, YMF278BChip *chip, UINT8 *rom, void (*cb)(running_machine *, int), int clock)
{
chip->rom = rom;
chip->irq_callback = cb;
chip->timer_a = timer_alloc(Machine, ymf278b_timer_a_tick, chip);
chip->timer_b = timer_alloc(Machine, ymf278b_timer_b_tick, chip);
chip->timer_a = timer_alloc(machine, ymf278b_timer_a_tick, chip);
chip->timer_b = timer_alloc(machine, ymf278b_timer_b_tick, chip);
chip->irq_line = CLEAR_LINE;
chip->clock = clock;
@ -680,7 +679,7 @@ static SND_START( ymf278b )
intf = (config != NULL) ? config : &defintrf;
ymf278b_init(chip, memory_region(Machine, tag), intf->irq_callback, clock);
ymf278b_init(device->machine, chip, memory_region(device->machine, tag), intf->irq_callback, clock);
chip->stream = stream_create(0, 2, clock/768, chip, ymf278b_pcm_update);
// Volume table, 1 = -0.375dB, 8 = -3dB, 256 = -96dB

View File

@ -644,7 +644,7 @@ static SND_START( ymz280b )
/* initialize the rest of the structure */
chip->master_clock = (double)clock / 384.0;
chip->region_base = memory_region(Machine, tag);
chip->region_base = memory_region(device->machine, tag);
chip->irq_callback = intf->irq_callback;
/* create the stream */
@ -691,7 +691,7 @@ static SND_START( ymz280b )
}
}
state_save_register_postload(Machine, YMZ280B_state_save_update_step, chip);
state_save_register_postload(device->machine, YMZ280B_state_save_update_step, chip);
#if MAKE_WAVS
chip->wavresample = wav_open("resamp.wav", INTERNAL_SAMPLE_RATE, 2);

View File

@ -1010,7 +1010,7 @@ astring *game_info_astring(running_machine *machine, astring *string)
for (sndnum = 0; sndnum < MAX_SOUND && machine->config->sound[sndnum].type != SOUND_DUMMY; sndnum += count)
{
sound_type type = machine->config->sound[sndnum].type;
int clock = sndnum_clock(sndnum);
int clock = machine->config->sound[sndnum].clock;
/* append the Sound: string */
if (sndnum == 0)
@ -1019,13 +1019,13 @@ astring *game_info_astring(running_machine *machine, astring *string)
/* count how many identical sound chips we have */
for (count = 1; sndnum + count < MAX_SOUND; count++)
if (machine->config->sound[sndnum + count].type != type ||
sndnum_clock(sndnum + count) != clock)
machine->config->sound[sndnum + count].clock != clock)
break;
/* if more than one, prepend a #x in front of the CPU name */
/* if more than one, prepend a #x in front of the SND name */
if (count > 1)
astring_catprintf(string, "%d" UTF8_MULTIPLY, count);
astring_catc(string, sndnum_name(sndnum));
astring_catc(string, sndtype_get_name(type));
/* display clock in kHz or MHz */
if (clock >= 1000000)