mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
Cleanups and version bump for 0.123u2.
This commit is contained in:
parent
e619861862
commit
8436bec1e3
@ -166,11 +166,11 @@ int sign_of(int n)
|
||||
|
||||
void zero(int n,int sign)
|
||||
{
|
||||
if (sign == 0)
|
||||
if (sign == 0)
|
||||
sh4.fr[n] = 0x00000000;
|
||||
else
|
||||
else
|
||||
sh4.fr[n] = 0x80000000;
|
||||
if ((sh4.fpscr & PR) == 1)
|
||||
if ((sh4.fpscr & PR) == 1)
|
||||
sh4.fr[n+1] = 0x00000000;
|
||||
}
|
||||
|
||||
@ -183,53 +183,53 @@ UINT32 abs;
|
||||
if (abs < 0x00800000) {
|
||||
if (((sh4.fpscr & DN) == 1) || (abs == 0x00000000)) {
|
||||
if (sign_of(n) == 0) {
|
||||
zero(n, 0);
|
||||
zero(n, 0);
|
||||
return(SH4_FPU_PZERO);
|
||||
} else {
|
||||
zero(n, 1);
|
||||
zero(n, 1);
|
||||
return(SH4_FPU_NZERO);
|
||||
}
|
||||
} else
|
||||
} else
|
||||
return(SH4_FPU_DENORM);
|
||||
} else
|
||||
if (abs < 0x7f800000)
|
||||
} else
|
||||
if (abs < 0x7f800000)
|
||||
return(SH4_FPU_NORM);
|
||||
else
|
||||
else
|
||||
if (abs == 0x7f800000) {
|
||||
if (sign_of(n) == 0)
|
||||
if (sign_of(n) == 0)
|
||||
return(SH4_FPU_PINF);
|
||||
else
|
||||
else
|
||||
return(SH4_FPU_NINF);
|
||||
} else
|
||||
if (abs < 0x7fc00000)
|
||||
} else
|
||||
if (abs < 0x7fc00000)
|
||||
return(SH4_FPU_qNaN);
|
||||
else
|
||||
else
|
||||
return(SH4_FPU_sNaN);
|
||||
} else { /* Double-precision */
|
||||
if (abs < 0x00100000) {
|
||||
if (((sh4.fpscr & DN) == 1) || ((abs == 0x00000000) && (sh4.fr[n+1] == 0x00000000))) {
|
||||
if(sign_of(n) == 0) {
|
||||
zero(n, 0);
|
||||
zero(n, 0);
|
||||
return(SH4_FPU_PZERO);
|
||||
} else {
|
||||
zero(n, 1);
|
||||
zero(n, 1);
|
||||
return(SH4_FPU_NZERO);
|
||||
}
|
||||
} else
|
||||
} else
|
||||
return(SH4_FPU_DENORM);
|
||||
} else
|
||||
if (abs < 0x7ff00000)
|
||||
if (abs < 0x7ff00000)
|
||||
return(SH4_FPU_NORM);
|
||||
else
|
||||
else
|
||||
if ((abs == 0x7ff00000) && (sh4.fr[n+1] == 0x00000000)) {
|
||||
if (sign_of(n) == 0)
|
||||
if (sign_of(n) == 0)
|
||||
return(SH4_FPU_PINF);
|
||||
else
|
||||
else
|
||||
return(SH4_FPU_NINF);
|
||||
} else
|
||||
if (abs < 0x7ff80000)
|
||||
} else
|
||||
if (abs < 0x7ff80000)
|
||||
return(SH4_FPU_qNaN);
|
||||
else
|
||||
else
|
||||
return(SH4_FPU_sNaN);
|
||||
}
|
||||
return(SH4_FPU_NORM);
|
||||
@ -3383,7 +3383,7 @@ INLINE void FSRRA(UINT32 n)
|
||||
INLINE void FSSCA(UINT32 n)
|
||||
{
|
||||
float angle;
|
||||
|
||||
|
||||
angle = (((float)(sh4.fpul & 0xFFFF)) / 65536.0) * 2.0 * M_PI;
|
||||
FP_RFS(n) = sinf(angle);
|
||||
FP_RFS(n+1) = cosf(angle);
|
||||
|
@ -84,23 +84,23 @@ device_config *device_list_add(device_config **listheadptr, device_type type, co
|
||||
device_config **devptr;
|
||||
device_config *device;
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(listheadptr != NULL);
|
||||
assert(type != NULL);
|
||||
assert(tag != NULL);
|
||||
|
||||
|
||||
/* find the end of the list, and ensure no duplicates along the way */
|
||||
for (devptr = listheadptr; *devptr != NULL; devptr = &(*devptr)->next)
|
||||
if (type == (*devptr)->type && strcmp(tag, (*devptr)->tag) == 0)
|
||||
fatalerror("Attempted to add duplicate device: type=%s tag=%s\n", devtype_name(type), tag);
|
||||
|
||||
|
||||
/* get the size of the inline config */
|
||||
info.i = 0;
|
||||
(*type)(NULL, NULL, DEVINFO_INT_INLINE_CONFIG_BYTES, &info);
|
||||
|
||||
|
||||
/* allocate a new device */
|
||||
device = malloc_or_die(sizeof(*device) + strlen(tag) + info.i);
|
||||
|
||||
|
||||
/* populate all fields */
|
||||
device->next = NULL;
|
||||
device->type = type;
|
||||
@ -108,7 +108,7 @@ device_config *device_list_add(device_config **listheadptr, device_type type, co
|
||||
device->inline_config = (info.i == 0) ? NULL : (device->tag + strlen(tag) + 1);
|
||||
device->token = NULL;
|
||||
strcpy(device->tag, tag);
|
||||
|
||||
|
||||
/* reset the inline_config to 0 */
|
||||
if (info.i > 0)
|
||||
memset(device->inline_config, 0, info.i);
|
||||
@ -117,19 +117,19 @@ device_config *device_list_add(device_config **listheadptr, device_type type, co
|
||||
info.set_info = NULL;
|
||||
(*type)(NULL, NULL, DEVINFO_FCT_SET_INFO, &info);
|
||||
device->set_info = info.set_info;
|
||||
|
||||
|
||||
info.start = NULL;
|
||||
(*type)(NULL, NULL, DEVINFO_FCT_START, &info);
|
||||
device->start = info.start;
|
||||
|
||||
|
||||
info.stop = NULL;
|
||||
(*type)(NULL, NULL, DEVINFO_FCT_STOP, &info);
|
||||
device->stop = info.stop;
|
||||
|
||||
|
||||
info.reset = NULL;
|
||||
(*type)(NULL, NULL, DEVINFO_FCT_RESET, &info);
|
||||
device->reset = info.reset;
|
||||
|
||||
|
||||
/* link us to the end and return */
|
||||
*devptr = device;
|
||||
return device;
|
||||
@ -156,7 +156,7 @@ void device_list_remove(device_config **listheadptr, device_type type, const cha
|
||||
break;
|
||||
if (*devptr == NULL)
|
||||
fatalerror("Attempted to remove non-existant device: type=%s tag=%s\n", devtype_name(type), tag);
|
||||
|
||||
|
||||
/* remove the device from the list */
|
||||
device = *devptr;
|
||||
*devptr = device->next;
|
||||
@ -167,8 +167,8 @@ void device_list_remove(device_config **listheadptr, device_type type, const cha
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_items - return the number of
|
||||
items of a given type; DEVICE_TYPE_WILDCARD
|
||||
device_list_items - return the number of
|
||||
items of a given type; DEVICE_TYPE_WILDCARD
|
||||
is allowed
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -176,51 +176,51 @@ int device_list_items(const device_config *listhead, device_type type)
|
||||
{
|
||||
const device_config *curdev;
|
||||
int count = 0;
|
||||
|
||||
|
||||
/* locate all devices */
|
||||
for (curdev = listhead; curdev != NULL; curdev = curdev->next)
|
||||
count += device_matches_type(curdev, type);
|
||||
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_first - return the first device
|
||||
in the list of a given type;
|
||||
device_list_first - return the first device
|
||||
in the list of a given type;
|
||||
DEVICE_TYPE_WILDCARD is allowed
|
||||
-------------------------------------------------*/
|
||||
|
||||
const device_config *device_list_first(const device_config *listhead, device_type type)
|
||||
{
|
||||
const device_config *curdev;
|
||||
|
||||
|
||||
/* scan forward starting with the list head */
|
||||
for (curdev = listhead; curdev != NULL; curdev = curdev->next)
|
||||
if (device_matches_type(curdev, type))
|
||||
return curdev;
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_next - return the next device
|
||||
in the list of a given type;
|
||||
device_list_next - return the next device
|
||||
in the list of a given type;
|
||||
DEVICE_TYPE_WILDCARD is allowed
|
||||
-------------------------------------------------*/
|
||||
|
||||
const device_config *device_list_next(const device_config *prevdevice, device_type type)
|
||||
{
|
||||
const device_config *curdev;
|
||||
|
||||
|
||||
assert(prevdevice != NULL);
|
||||
|
||||
/* scan forward starting with the item after the previous one */
|
||||
for (curdev = prevdevice->next; curdev != NULL; curdev = curdev->next)
|
||||
if (device_matches_type(curdev, type))
|
||||
return curdev;
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -240,7 +240,7 @@ const device_config *device_list_find_by_tag(const device_config *listhead, devi
|
||||
for (curdev = listhead; curdev != NULL; curdev = curdev->next)
|
||||
if (device_matches_type(curdev, type) && strcmp(tag, curdev->tag) == 0)
|
||||
return curdev;
|
||||
|
||||
|
||||
/* fail */
|
||||
return NULL;
|
||||
}
|
||||
@ -253,8 +253,8 @@ const device_config *device_list_find_by_tag(const device_config *listhead, devi
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_index - return the index of a
|
||||
device based on its type and tag;
|
||||
device_list_index - return the index of a
|
||||
device based on its type and tag;
|
||||
DEVICE_TYPE_WILDCARD is allowed
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -262,7 +262,7 @@ int device_list_index(const device_config *listhead, device_type type, const cha
|
||||
{
|
||||
const device_config *curdev;
|
||||
int index = 0;
|
||||
|
||||
|
||||
/* locate all devices */
|
||||
for (curdev = listhead; curdev != NULL; curdev = curdev->next)
|
||||
if (device_matches_type(curdev, type))
|
||||
@ -271,7 +271,7 @@ int device_list_index(const device_config *listhead, device_type type, const cha
|
||||
return index;
|
||||
index++;
|
||||
}
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -291,7 +291,7 @@ const device_config *device_list_find_by_index(const device_config *listhead, de
|
||||
for (curdev = listhead; curdev != NULL; curdev = curdev->next)
|
||||
if (device_matches_type(curdev, type) && index-- == 0)
|
||||
return curdev;
|
||||
|
||||
|
||||
/* fail */
|
||||
return NULL;
|
||||
}
|
||||
@ -303,18 +303,18 @@ const device_config *device_list_find_by_index(const device_config *listhead, de
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_start - start the configured list
|
||||
device_list_start - start the configured list
|
||||
of devices for a machine
|
||||
-------------------------------------------------*/
|
||||
|
||||
void device_list_start(running_machine *machine)
|
||||
{
|
||||
device_config *config;
|
||||
|
||||
|
||||
/* add an exit callback for cleanup */
|
||||
add_reset_callback(machine, device_list_reset);
|
||||
add_exit_callback(machine, device_list_stop);
|
||||
|
||||
|
||||
/* iterate over devices and start them */
|
||||
for (config = (device_config *)machine->config->devicelist; config != NULL; config = config->next)
|
||||
{
|
||||
@ -322,10 +322,10 @@ void device_list_start(running_machine *machine)
|
||||
assert(config->type != NULL);
|
||||
assert(config->start != NULL);
|
||||
|
||||
/* call the start function */
|
||||
/* call the start function */
|
||||
config->token = (*config->start)(machine, config->tag, config->static_config, config->inline_config);
|
||||
assert(config->token != NULL);
|
||||
|
||||
|
||||
/* fatal error if this fails */
|
||||
if (config->token == NULL)
|
||||
fatalerror("Error starting device: type=%s tag=%s\n", devtype_name(config->type), config->tag);
|
||||
@ -334,24 +334,24 @@ void device_list_start(running_machine *machine)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_stop - stop the configured list
|
||||
device_list_stop - stop the configured list
|
||||
of devices for a machine
|
||||
-------------------------------------------------*/
|
||||
|
||||
static void device_list_stop(running_machine *machine)
|
||||
{
|
||||
device_config *config;
|
||||
|
||||
|
||||
/* iterate over devices and stop them */
|
||||
for (config = (device_config *)machine->config->devicelist; config != NULL; config = config->next)
|
||||
{
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
|
||||
|
||||
/* if we have a stop function, call it */
|
||||
if (config->stop != NULL)
|
||||
(*config->stop)(machine, config->token);
|
||||
|
||||
|
||||
/* clear the token to indicate we are finished */
|
||||
config->token = NULL;
|
||||
}
|
||||
@ -359,14 +359,14 @@ static void device_list_stop(running_machine *machine)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_list_reset - reset the configured list
|
||||
device_list_reset - reset the configured list
|
||||
of devices for a machine
|
||||
-------------------------------------------------*/
|
||||
|
||||
static void device_list_reset(running_machine *machine)
|
||||
{
|
||||
const device_config *config;
|
||||
|
||||
|
||||
/* iterate over devices and stop them */
|
||||
for (config = (device_config *)machine->config->devicelist; config != NULL; config = config->next)
|
||||
device_reset(machine, config);
|
||||
@ -374,7 +374,7 @@ static void device_list_reset(running_machine *machine)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_reset - reset a device based on an
|
||||
device_reset - reset a device based on an
|
||||
allocated device_config
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -382,7 +382,7 @@ void device_reset(running_machine *machine, const device_config *config)
|
||||
{
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
|
||||
|
||||
/* if we have a reset function, call it */
|
||||
if (config->reset != NULL)
|
||||
(*config->reset)(machine, config->token);
|
||||
@ -404,7 +404,7 @@ void devtag_reset(running_machine *machine, device_type type, const char *tag)
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
devtag_get_token - return the token associated
|
||||
devtag_get_token - return the token associated
|
||||
with an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -418,8 +418,8 @@ void *devtag_get_token(running_machine *machine, device_type type, const char *t
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
devtag_get_static_config - return a pointer to
|
||||
the static configuration for a device based on
|
||||
devtag_get_static_config - return a pointer to
|
||||
the static configuration for a device based on
|
||||
type and tag
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -433,8 +433,8 @@ const void *devtag_get_static_config(running_machine *machine, device_type type,
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
devtag_get_inline_config - return a pointer to
|
||||
the inline configuration for a device based on
|
||||
devtag_get_inline_config - return a pointer to
|
||||
the inline configuration for a device based on
|
||||
type and tag
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -448,18 +448,18 @@ const void *devtag_get_inline_config(running_machine *machine, device_type type,
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_get_info_int - return an integer state
|
||||
device_get_info_int - return an integer state
|
||||
value from an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
INT64 device_get_info_int(running_machine *machine, const device_config *config, UINT32 state)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_INT_FIRST && state <= DEVINFO_INT_LAST);
|
||||
|
||||
|
||||
/* retrieve the value */
|
||||
info.i = 0;
|
||||
(*config->type)(machine, config->token, state, &info);
|
||||
@ -477,18 +477,18 @@ INT64 devtag_get_info_int(running_machine *machine, device_type type, const char
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_get_info_ptr - return a pointer state
|
||||
device_get_info_ptr - return a pointer state
|
||||
value from an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
void *device_get_info_ptr(running_machine *machine, const device_config *config, UINT32 state)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_PTR_FIRST && state <= DEVINFO_PTR_LAST);
|
||||
|
||||
|
||||
/* retrieve the value */
|
||||
info.p = NULL;
|
||||
(*config->type)(machine, config->token, state, &info);
|
||||
@ -506,18 +506,18 @@ void *devtag_get_info_ptr(running_machine *machine, device_type type, const char
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_get_info_fct - return a function
|
||||
device_get_info_fct - return a function
|
||||
pointer state value from an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
genf *device_get_info_fct(running_machine *machine, const device_config *config, UINT32 state)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_FCT_FIRST && state <= DEVINFO_FCT_LAST);
|
||||
|
||||
|
||||
/* retrieve the value */
|
||||
info.f = 0;
|
||||
(*config->type)(machine, config->token, state, &info);
|
||||
@ -535,18 +535,18 @@ genf *devtag_get_info_fct(running_machine *machine, device_type type, const char
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_get_info_string - return a string value
|
||||
device_get_info_string - return a string value
|
||||
from an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
const char *device_get_info_string(running_machine *machine, const device_config *config, UINT32 state)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_STR_FIRST && state <= DEVINFO_STR_LAST);
|
||||
|
||||
|
||||
/* retrieve the value */
|
||||
info.s = get_temp_string_buffer();
|
||||
(*config->type)(machine, config->token, state, &info);
|
||||
@ -564,18 +564,18 @@ const char *devtag_get_info_string(running_machine *machine, device_type type, c
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
devtype_get_info_string - return a string value
|
||||
from a device type (does not need to be
|
||||
devtype_get_info_string - return a string value
|
||||
from a device type (does not need to be
|
||||
allocated)
|
||||
-------------------------------------------------*/
|
||||
|
||||
const char *devtype_get_info_string(device_type type, UINT32 state)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(type != NULL);
|
||||
assert(state >= DEVINFO_STR_FIRST && state <= DEVINFO_STR_LAST);
|
||||
|
||||
|
||||
/* retrieve the value */
|
||||
info.s = get_temp_string_buffer();
|
||||
(*type)(NULL, NULL, state, &info);
|
||||
@ -589,18 +589,18 @@ const char *devtype_get_info_string(device_type type, UINT32 state)
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_set_info_int - set an integer state
|
||||
device_set_info_int - set an integer state
|
||||
value for an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
void device_set_info_int(running_machine *machine, const device_config *config, UINT32 state, INT64 data)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_INT_FIRST && state <= DEVINFO_INT_LAST);
|
||||
|
||||
|
||||
/* set the value */
|
||||
info.i = data;
|
||||
(*config->set_info)(machine, config->token, state, &info);
|
||||
@ -617,18 +617,18 @@ void devtag_set_info_int(running_machine *machine, device_type type, const char
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_set_info_ptr - set a pointer state
|
||||
device_set_info_ptr - set a pointer state
|
||||
value for an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
void device_set_info_ptr(running_machine *machine, const device_config *config, UINT32 state, void *data)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_PTR_FIRST && state <= DEVINFO_PTR_LAST);
|
||||
|
||||
|
||||
/* set the value */
|
||||
info.p = data;
|
||||
(*config->set_info)(machine, config->token, state, &info);
|
||||
@ -645,18 +645,18 @@ void devtag_set_info_ptr(running_machine *machine, device_type type, const char
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
device_set_info_fct - set a function pointer
|
||||
device_set_info_fct - set a function pointer
|
||||
state value for an allocated device
|
||||
-------------------------------------------------*/
|
||||
|
||||
void device_set_info_fct(running_machine *machine, const device_config *config, UINT32 state, genf *data)
|
||||
{
|
||||
deviceinfo info;
|
||||
|
||||
|
||||
assert(config->token != NULL);
|
||||
assert(config->type != NULL);
|
||||
assert(state >= DEVINFO_FCT_FIRST && state <= DEVINFO_FCT_LAST);
|
||||
|
||||
|
||||
/* set the value */
|
||||
info.f = data;
|
||||
(*config->set_info)(machine, config->token, state, &info);
|
||||
|
@ -39,14 +39,14 @@ enum
|
||||
|
||||
/* --- the following bits of info are returned as pointers --- */
|
||||
DEVINFO_PTR_FIRST = 0x10000,
|
||||
|
||||
|
||||
DEVINFO_PTR_DEVICE_SPECIFIC = 0x18000, /* R/W: device-specific values start here */
|
||||
|
||||
DEVINFO_PTR_LAST = 0x1ffff,
|
||||
|
||||
/* --- the following bits of info are returned as pointers to functions --- */
|
||||
DEVINFO_FCT_FIRST = 0x20000,
|
||||
|
||||
|
||||
DEVINFO_FCT_SET_INFO = DEVINFO_FCT_FIRST, /* R/O: device_set_info_func */
|
||||
DEVINFO_FCT_START, /* R/O: device_start_func */
|
||||
DEVINFO_FCT_STOP, /* R/O: device_stop_func */
|
||||
@ -99,7 +99,7 @@ union _deviceinfo
|
||||
void * p; /* generic pointers */
|
||||
genf * f; /* generic function pointers */
|
||||
const char * s; /* generic strings */
|
||||
|
||||
|
||||
device_set_info_func set_info; /* DEVINFO_FCT_SET_INFO */
|
||||
device_start_func start; /* DEVINFO_FCT_START */
|
||||
device_stop_func stop; /* DEVINFO_FCT_STOP */
|
||||
|
@ -359,7 +359,7 @@ static void print_game_bios(FILE *out, const game_driver *game)
|
||||
/* skip if no ROMs */
|
||||
if (game->rom == NULL)
|
||||
return;
|
||||
|
||||
|
||||
/* iterate over ROM entries and look for BIOSes */
|
||||
for (rom = game->rom; !ROMENTRY_ISEND(rom); rom++)
|
||||
if (ROMENTRY_ISSYSTEM_BIOS(rom))
|
||||
@ -407,7 +407,7 @@ static void print_game_rom(FILE *out, const game_driver *game)
|
||||
if ((is_disk && rom_type != 2) || (!is_disk && rom_type == 2))
|
||||
continue;
|
||||
|
||||
/* iterate through ROM entries */
|
||||
/* iterate through ROM entries */
|
||||
for (rom = rom_first_file(region); rom != NULL; rom = rom_next_file(rom))
|
||||
{
|
||||
int is_bios = ROM_GETBIOSFLAGS(rom);
|
||||
@ -417,7 +417,7 @@ static void print_game_rom(FILE *out, const game_driver *game)
|
||||
const rom_entry *chunk;
|
||||
char bios_name[100];
|
||||
int length;
|
||||
|
||||
|
||||
/* BIOS ROMs only apply to bioses */
|
||||
if ((is_bios && rom_type != 0) || (!is_bios && rom_type == 0))
|
||||
continue;
|
||||
@ -431,7 +431,7 @@ static void print_game_rom(FILE *out, const game_driver *game)
|
||||
if (!ROM_NOGOODDUMP(rom) && clone_of != NULL)
|
||||
{
|
||||
const rom_entry *pregion, *prom;
|
||||
|
||||
|
||||
/* scan the clone_of ROM for a matching ROM entry */
|
||||
for (pregion = rom_first_region(clone_of); pregion != NULL; pregion = rom_next_region(pregion))
|
||||
for (prom = rom_first_file(pregion); prom != NULL; prom = rom_next_file(prom))
|
||||
@ -478,7 +478,7 @@ static void print_game_rom(FILE *out, const game_driver *game)
|
||||
{
|
||||
char checksum[HASH_BUF_SIZE];
|
||||
int hashtype;
|
||||
|
||||
|
||||
/* iterate over hash function types and print out their values */
|
||||
for (hashtype = 0; hashtype < HASH_NUM_FUNCTIONS; hashtype++)
|
||||
if (hash_data_extract_printable_checksum(ROM_GETHASHDATA(rom), 1 << hashtype, checksum))
|
||||
@ -551,7 +551,7 @@ static void print_game_rom(FILE *out, const game_driver *game)
|
||||
fprintf(out, " dispose=\"yes\"");
|
||||
fprintf(out, " offset=\"%x\"", offset);
|
||||
}
|
||||
|
||||
|
||||
/* for disk entries, add the disk index */
|
||||
else
|
||||
fprintf(out, " index=\"%x\"", DISK_GETINDEX(rom));
|
||||
@ -579,12 +579,12 @@ static void print_game_sampleof(FILE *out, const game_driver *game, const machin
|
||||
if (samplenames != NULL)
|
||||
{
|
||||
int sampnum;
|
||||
|
||||
|
||||
/* iterate over sample names */
|
||||
for (sampnum = 0; samplenames[sampnum] != NULL; sampnum++)
|
||||
{
|
||||
const char *cursampname = samplenames[sampnum];
|
||||
|
||||
|
||||
/* only output sampleof if different from the game name */
|
||||
if (cursampname[0] == '*' && strcmp(cursampname + 1, game->name) != 0)
|
||||
fprintf(out, " sampleof=\"%s\"", xml_normalize_string(cursampname + 1));
|
||||
@ -596,7 +596,7 @@ static void print_game_sampleof(FILE *out, const game_driver *game, const machin
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
print_game_sample - print a list of all
|
||||
print_game_sample - print a list of all
|
||||
samples referenced by a game_driver
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -613,17 +613,17 @@ static void print_game_sample(FILE *out, const game_driver *game, const machine_
|
||||
if (samplenames != NULL)
|
||||
{
|
||||
int sampnum;
|
||||
|
||||
|
||||
/* iterate over sample names */
|
||||
for (sampnum = 0; samplenames[sampnum] != NULL; sampnum++)
|
||||
{
|
||||
const char *cursampname = samplenames[sampnum];
|
||||
int dupnum;
|
||||
|
||||
|
||||
/* ignore the special '*' samplename */
|
||||
if (sampnum == 0 && cursampname[0] == '*')
|
||||
continue;
|
||||
|
||||
|
||||
/* filter out duplicates */
|
||||
for (dupnum = 0; dupnum < sampnum; dupnum++)
|
||||
if (strcmp(samplenames[dupnum], cursampname) == 0)
|
||||
@ -682,14 +682,14 @@ static void print_game_chips(FILE *out, const game_driver *game, const machine_c
|
||||
static void print_game_display(FILE *out, const game_driver *game, const machine_config *config)
|
||||
{
|
||||
const device_config *screen;
|
||||
|
||||
|
||||
/* iterate over screens */
|
||||
for (screen = video_screen_first(config); screen != NULL; screen = video_screen_next(screen))
|
||||
{
|
||||
const screen_config *scrconfig = screen->inline_config;
|
||||
|
||||
|
||||
fprintf(out, "\t\t<display");
|
||||
|
||||
|
||||
switch (scrconfig->type)
|
||||
{
|
||||
case SCREEN_TYPE_RASTER: fprintf(out, " type=\"raster\""); break;
|
||||
@ -915,7 +915,7 @@ static void print_game_info(FILE *out, const game_driver *game)
|
||||
|
||||
/* close the topmost tag */
|
||||
fprintf(out, "\t</" XML_TOP ">\n");
|
||||
|
||||
|
||||
/* release resources */
|
||||
end_resource_tracking();
|
||||
machine_config_free(config);
|
||||
@ -930,7 +930,7 @@ static void print_game_info(FILE *out, const game_driver *game)
|
||||
void print_mame_xml(FILE *out, const game_driver *const games[], const char *gamename)
|
||||
{
|
||||
int drvnum;
|
||||
|
||||
|
||||
fprintf(out,
|
||||
"<?xml version=\"1.0\"?>\n"
|
||||
"<!DOCTYPE " XML_ROOT " [\n"
|
||||
|
@ -1585,7 +1585,7 @@ static void init_machine(running_machine *machine)
|
||||
ui_set_startup_text(machine, "Initializing...", TRUE);
|
||||
if (machine->gamedrv->driver_init != NULL)
|
||||
(*machine->gamedrv->driver_init)(machine);
|
||||
|
||||
|
||||
/* start the video and audio hardware */
|
||||
video_init(machine);
|
||||
sound_init(machine);
|
||||
|
@ -26,13 +26,13 @@
|
||||
machine_config *machine_config_alloc(void (*constructor)(machine_config *))
|
||||
{
|
||||
machine_config *config;
|
||||
|
||||
|
||||
/* allocate a new configuration object */
|
||||
config = malloc_or_die(sizeof(*config));
|
||||
if (config == NULL)
|
||||
return NULL;
|
||||
memset(config, 0, sizeof(*config));
|
||||
|
||||
|
||||
/* call the function to construct the data */
|
||||
(*constructor)(config);
|
||||
return config;
|
||||
|
@ -88,7 +88,7 @@ struct _machine_config
|
||||
|
||||
void (*sound_start)(running_machine *machine); /* one-time sound start callback */
|
||||
void (*sound_reset)(running_machine *machine); /* sound reset callback */
|
||||
|
||||
|
||||
device_config * devicelist; /* list head for devices */
|
||||
};
|
||||
|
||||
|
@ -1355,7 +1355,7 @@ static int get_variable_value(const char *string, char **outputptr)
|
||||
{
|
||||
int scrnum = device_list_index(Machine->config->devicelist, VIDEO_SCREEN, device->tag);
|
||||
const screen_config *scrconfig = device->inline_config;
|
||||
|
||||
|
||||
/* native X aspect factor */
|
||||
sprintf(temp, "~scr%dnativexaspect~", scrnum);
|
||||
if (!strncmp(string, temp, strlen(temp)))
|
||||
|
@ -71,7 +71,7 @@
|
||||
#define DIPAN(slot) ((slot->udata.data[0x24/2]>>0x0)&0x001F)
|
||||
|
||||
#define EFSDL(slot) ((AICA->EFSPAN[slot*4]>>8)&0x000f)
|
||||
#define EFPAN(slot) ((AICA->EFSPAN[slot*4]>>0)&0x001f)
|
||||
#define EFPAN(slot) ((AICA->EFSPAN[slot*4]>>0)&0x001f)
|
||||
|
||||
//Envelope times in ms
|
||||
static const double ARTimes[64]={100000/*infinity*/,100000/*infinity*/,8100.0,6900.0,6000.0,4800.0,4000.0,3400.0,3000.0,2400.0,2000.0,1700.0,1500.0,
|
||||
@ -356,7 +356,7 @@ static int EG_Update(struct _SLOT *slot)
|
||||
slot->EG.volume+=slot->EG.AR;
|
||||
if(slot->EG.volume>=(0x3ff<<EG_SHIFT))
|
||||
{
|
||||
if (!LPSLNK(slot))
|
||||
if (!LPSLNK(slot))
|
||||
{
|
||||
slot->EG.state=DECAY1;
|
||||
if(slot->EG.D1R>=(1024<<EG_SHIFT)) //Skip DECAY1, go directly to DECAY2
|
||||
@ -386,8 +386,8 @@ static int EG_Update(struct _SLOT *slot)
|
||||
{
|
||||
slot->EG.volume=0;
|
||||
AICA_StopSlot(slot,0);
|
||||
// slot->EG.volume=0x17f<<EG_SHIFT;
|
||||
// slot->EG.state=ATTACK;
|
||||
// slot->EG.volume=0x17f<<EG_SHIFT;
|
||||
// slot->EG.state=ATTACK;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -529,7 +529,7 @@ static void AICA_Init(struct _AICA *AICA, const struct AICAinterface *intf, int
|
||||
{
|
||||
AICA->AICARAM = memory_region(intf->region);
|
||||
AICA->AICARAM += intf->roffset;
|
||||
AICA->AICARAM_LENGTH = memory_region_length(intf->region);
|
||||
AICA->AICARAM_LENGTH = memory_region_length(intf->region);
|
||||
AICA->RAM_MASK = AICA->AICARAM_LENGTH-1;
|
||||
AICA->RAM_MASK16 = AICA->RAM_MASK & 0x7ffffe;
|
||||
AICA->DSP.AICARAM = (UINT16 *)AICA->AICARAM;
|
||||
@ -700,7 +700,7 @@ static void AICA_UpdateSlotReg(struct _AICA *AICA,int s,int r)
|
||||
Compute_LFO(slot);
|
||||
break;
|
||||
case 0x24:
|
||||
// printf("[%02d]: %x to DISDL/DIPAN (PC=%x)\n", s, slot->udata.data[0x24/2], arm7_get_register(15));
|
||||
// printf("[%02d]: %x to DISDL/DIPAN (PC=%x)\n", s, slot->udata.data[0x24/2], arm7_get_register(15));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -728,13 +728,13 @@ static void AICA_UpdateReg(struct _AICA *AICA, int reg)
|
||||
case 0x9:
|
||||
AICA_MidiIn(0, AICA->udata.data[0x8/2]&0xff, 0);
|
||||
break;
|
||||
/* case 0x12:
|
||||
case 0x13:
|
||||
case 0x14:
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
break;*/
|
||||
/* case 0x12:
|
||||
case 0x13:
|
||||
case 0x14:
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
break;*/
|
||||
case 0x90:
|
||||
case 0x91:
|
||||
if(AICA->Master)
|
||||
@ -795,7 +795,7 @@ static void AICA_UpdateReg(struct _AICA *AICA, int reg)
|
||||
case 0xa4: //SCIRE
|
||||
case 0xa5:
|
||||
|
||||
if(AICA->Master)
|
||||
if(AICA->Master)
|
||||
{
|
||||
AICA->udata.data[0xa0/2] &= ~AICA->udata.data[0xa4/2];
|
||||
ResetInterrupts(AICA);
|
||||
@ -860,9 +860,9 @@ static void AICA_UpdateRegR(struct _AICA *AICA, int reg)
|
||||
case 0x10: // LP check
|
||||
case 0x11:
|
||||
{
|
||||
// int MSLC = (AICA->udata.data[0xc/2]>>8) & 0x3f; // which slot are we monitoring?
|
||||
// int MSLC = (AICA->udata.data[0xc/2]>>8) & 0x3f; // which slot are we monitoring?
|
||||
|
||||
// AICA->udata.data[0x10/2] |= 0x8000; // set LP if necessary
|
||||
// AICA->udata.data[0x10/2] |= 0x8000; // set LP if necessary
|
||||
}
|
||||
break;
|
||||
|
||||
@ -885,7 +885,7 @@ static void AICA_w16(struct _AICA *AICA,unsigned int addr,unsigned short val)
|
||||
{
|
||||
int slot=addr/0x80;
|
||||
addr&=0x7f;
|
||||
// printf("%x to slot %d offset %x\n", val, slot, addr);
|
||||
// printf("%x to slot %d offset %x\n", val, slot, addr);
|
||||
*((unsigned short *) (AICA->Slots[slot].udata.datab+(addr))) = val;
|
||||
AICA_UpdateSlotReg(AICA,slot,addr&0x7f);
|
||||
}
|
||||
@ -893,7 +893,7 @@ static void AICA_w16(struct _AICA *AICA,unsigned int addr,unsigned short val)
|
||||
{
|
||||
if (addr <= 0x2044)
|
||||
{
|
||||
// printf("%x to EFSxx slot %d (addr %x)\n", val, (addr-0x2000)/4, addr&0x7f);
|
||||
// printf("%x to EFSxx slot %d (addr %x)\n", val, (addr-0x2000)/4, addr&0x7f);
|
||||
AICA->EFSPAN[addr&0x7f] = val;
|
||||
}
|
||||
}
|
||||
@ -901,7 +901,7 @@ static void AICA_w16(struct _AICA *AICA,unsigned int addr,unsigned short val)
|
||||
{
|
||||
if (addr < 0x28be)
|
||||
{
|
||||
// printf("%x to AICA global @ %x\n", val, addr & 0xff);
|
||||
// printf("%x to AICA global @ %x\n", val, addr & 0xff);
|
||||
*((unsigned short *) (AICA->udata.datab+((addr&0xff)))) = val;
|
||||
AICA_UpdateReg(AICA, addr&0xff);
|
||||
}
|
||||
@ -969,8 +969,8 @@ static unsigned short AICA_r16(struct _AICA *AICA, unsigned int addr)
|
||||
return AICA->IRQR;
|
||||
}
|
||||
}
|
||||
// else if (addr<0x700)
|
||||
// v=AICA->RINGBUF[(addr-0x600)/2];
|
||||
// else if (addr<0x700)
|
||||
// v=AICA->RINGBUF[(addr-0x600)/2];
|
||||
return v;
|
||||
}
|
||||
|
||||
@ -1038,7 +1038,7 @@ INLINE INT32 AICA_UpdateSlot(struct _AICA *AICA, struct _SLOT *slot)
|
||||
addr1=slot->cur_addr>>SHIFT;
|
||||
addr2=slot->nxt_addr>>SHIFT;
|
||||
}
|
||||
else if(PCMS(slot) == 0)
|
||||
else if(PCMS(slot) == 0)
|
||||
{
|
||||
addr1=(slot->cur_addr>>(SHIFT-1))&AICA->RAM_MASK16;
|
||||
addr2=(slot->nxt_addr>>(SHIFT-1))&AICA->RAM_MASK16;
|
||||
@ -1123,7 +1123,7 @@ INLINE INT32 AICA_UpdateSlot(struct _AICA *AICA, struct _SLOT *slot)
|
||||
|
||||
sample=(s>>SHIFT);
|
||||
}
|
||||
|
||||
|
||||
slot->prv_addr=slot->cur_addr;
|
||||
slot->cur_addr+=step;
|
||||
slot->nxt_addr=slot->cur_addr+(1<<SHIFT);
|
||||
@ -1166,7 +1166,7 @@ INLINE INT32 AICA_UpdateSlot(struct _AICA *AICA, struct _SLOT *slot)
|
||||
slot->cur_quant = slot->cur_lpquant;
|
||||
}
|
||||
|
||||
// printf("Looping: slot_addr %x LSA %x LEA %x step %x base %x\n", *slot_addr[addr_select]>>SHIFT, LSA(slot), LEA(slot), slot->curstep, slot->adbase);
|
||||
// printf("Looping: slot_addr %x LSA %x LEA %x step %x base %x\n", *slot_addr[addr_select]>>SHIFT, LSA(slot), LEA(slot), slot->curstep, slot->adbase);
|
||||
}
|
||||
else if(PCMS(slot)>=2 && addr_select==1)
|
||||
{
|
||||
@ -1231,7 +1231,7 @@ static void AICA_DoMasterSamples(struct _AICA *AICA, int nsamples)
|
||||
smpr+=(sample*AICA->RPANTABLE[Enc])>>SHIFT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
AICA->BUFPTR&=63;
|
||||
}
|
||||
|
||||
@ -1299,7 +1299,7 @@ void aica_stop(void)
|
||||
|
||||
void AICA_set_ram_base(int which, void *base, int size)
|
||||
{
|
||||
struct _AICA *AICA = sndti_token(SOUND_AICA, which);
|
||||
struct _AICA *AICA = sndti_token(SOUND_AICA, which);
|
||||
if (AICA)
|
||||
{
|
||||
AICA->AICARAM = base;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Sega/Yamaha AICA emulation
|
||||
Sega/Yamaha AICA emulation
|
||||
*/
|
||||
|
||||
#ifndef _AICA_H_
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
#define MAX_AICA (2)
|
||||
|
||||
struct AICAinterface
|
||||
struct AICAinterface
|
||||
{
|
||||
int region; /* region of 2M/8M RAM */
|
||||
int roffset; /* offset in the region */
|
||||
|
@ -86,7 +86,7 @@ void AICADSP_Step(struct _AICADSP *DSP)
|
||||
for(step=0;step</*128*/DSP->LastStep;++step)
|
||||
{
|
||||
UINT16 *IPtr=DSP->MPRO+step*8;
|
||||
|
||||
|
||||
// if(IPtr[0]==0 && IPtr[1]==0 && IPtr[2]==0 && IPtr[3]==0)
|
||||
// break;
|
||||
|
||||
@ -119,7 +119,7 @@ void AICADSP_Step(struct _AICADSP *DSP)
|
||||
UINT32 MASA=(IPtr[6]>>9)&0x1f; //???
|
||||
UINT32 ADREB=(IPtr[6]>>8)&0x1;
|
||||
UINT32 NXADR=(IPtr[6]>>7)&0x1;
|
||||
|
||||
|
||||
INT64 v;
|
||||
|
||||
//operations are done at 24 bit precision
|
||||
|
@ -1,10 +1,10 @@
|
||||
/*
|
||||
AICA LFO handling
|
||||
AICA LFO handling
|
||||
|
||||
Part of the AICA emulator package.
|
||||
(not compiled directly, #included from aica.c)
|
||||
Part of the AICA emulator package.
|
||||
(not compiled directly, #included from aica.c)
|
||||
|
||||
By ElSemi, kingshriek, Deunan Knute, and R. Belmont
|
||||
By ElSemi, kingshriek, Deunan Knute, and R. Belmont
|
||||
*/
|
||||
|
||||
#define LFO_SHIFT 8
|
||||
@ -40,16 +40,16 @@ void AICALFO_Init(void)
|
||||
for(i=0;i<256;++i)
|
||||
{
|
||||
int a,p;
|
||||
// float TL;
|
||||
// float TL;
|
||||
//Saw
|
||||
a=255-i;
|
||||
if(i<128)
|
||||
p=i;
|
||||
else
|
||||
p=i-256;
|
||||
p=i-256;
|
||||
ALFO_SAW[i]=a;
|
||||
PLFO_SAW[i]=p;
|
||||
|
||||
|
||||
//Square
|
||||
if(i<128)
|
||||
{
|
||||
@ -63,7 +63,7 @@ void AICALFO_Init(void)
|
||||
}
|
||||
ALFO_SQR[i]=a;
|
||||
PLFO_SQR[i]=p;
|
||||
|
||||
|
||||
//Tri
|
||||
if(i<128)
|
||||
a=255-(i*2);
|
||||
@ -79,7 +79,7 @@ void AICALFO_Init(void)
|
||||
p=i*2-511;
|
||||
ALFO_TRI[i]=a;
|
||||
PLFO_TRI[i]=p;
|
||||
|
||||
|
||||
//noise
|
||||
//a=lfo_noise[i];
|
||||
a=mame_rand(Machine)&0xff;
|
||||
@ -107,10 +107,10 @@ signed int INLINE AICAPLFO_Step(struct _LFO *LFO)
|
||||
{
|
||||
int p;
|
||||
|
||||
LFO->phase+=LFO->phase_step;
|
||||
#if LFO_SHIFT!=8
|
||||
LFO->phase+=LFO->phase_step;
|
||||
#if LFO_SHIFT!=8
|
||||
LFO->phase&=(1<<(LFO_SHIFT+8))-1;
|
||||
#endif
|
||||
#endif
|
||||
p=LFO->table[LFO->phase>>LFO_SHIFT];
|
||||
p=LFO->scale[p+128];
|
||||
return p<<(SHIFT-LFO_SHIFT);
|
||||
@ -119,10 +119,10 @@ signed int INLINE AICAPLFO_Step(struct _LFO *LFO)
|
||||
signed int INLINE AICAALFO_Step(struct _LFO *LFO)
|
||||
{
|
||||
int p;
|
||||
LFO->phase+=LFO->phase_step;
|
||||
#if LFO_SHIFT!=8
|
||||
LFO->phase+=LFO->phase_step;
|
||||
#if LFO_SHIFT!=8
|
||||
LFO->phase&=(1<<(LFO_SHIFT+8))-1;
|
||||
#endif
|
||||
#endif
|
||||
p=LFO->table[LFO->phase>>LFO_SHIFT];
|
||||
p=LFO->scale[p];
|
||||
return p<<(SHIFT-LFO_SHIFT);
|
||||
|
@ -1112,7 +1112,7 @@ int sprintf_game_info(char *buffer)
|
||||
{
|
||||
int index = device_list_index(Machine->config->devicelist, VIDEO_SCREEN, device->tag);
|
||||
const screen_config *scrconfig = device->inline_config;
|
||||
|
||||
|
||||
if (scrcount > 1)
|
||||
bufptr += sprintf(bufptr, "Screen %d: ", index + 1);
|
||||
|
||||
|
@ -100,7 +100,7 @@ INLINE UINT32 quark_string_crc(const char *string)
|
||||
|
||||
/*-------------------------------------------------
|
||||
quark_add - add a quark to the table and
|
||||
connect it to the hash tables
|
||||
connect it to the hash tables
|
||||
-------------------------------------------------*/
|
||||
|
||||
INLINE void quark_add(quark_table *table, int index, UINT32 crc)
|
||||
@ -114,7 +114,7 @@ INLINE void quark_add(quark_table *table, int index, UINT32 crc)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
quark_table_get_first - return a pointer to the
|
||||
quark_table_get_first - return a pointer to the
|
||||
first hash entry connected to a CRC
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -130,7 +130,7 @@ INLINE quark_entry *quark_table_get_first(quark_table *table, UINT32 crc)
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
quark_table_alloc - allocate an array of
|
||||
quark_table_alloc - allocate an array of
|
||||
quark entries and a hash table
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -158,7 +158,7 @@ static quark_table *quark_table_alloc(UINT32 entries, UINT32 hashsize)
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
quark_tables_create - build "quarks" for fast
|
||||
quark_tables_create - build "quarks" for fast
|
||||
string operations
|
||||
-------------------------------------------------*/
|
||||
|
||||
@ -782,7 +782,7 @@ static int validate_display(int drivnum, const machine_config *drv)
|
||||
for (device = video_screen_first(drv); device != NULL; device = video_screen_next(device))
|
||||
{
|
||||
const screen_config *scrconfig = device->inline_config;
|
||||
|
||||
|
||||
/* sanity check dimensions */
|
||||
if ((scrconfig->defstate.width <= 0) || (scrconfig->defstate.height <= 0))
|
||||
{
|
||||
@ -1450,7 +1450,7 @@ int mame_validitychecks(const game_driver *curdriver)
|
||||
sound_checks -= osd_profiling_ticks();
|
||||
error = validate_sound(drivnum, config) || error;
|
||||
sound_checks += osd_profiling_ticks();
|
||||
|
||||
|
||||
machine_config_free(config);
|
||||
}
|
||||
|
||||
|
@ -1432,7 +1432,7 @@ static INPUT_PORTS_START( goldmedl )
|
||||
PORT_DIPSETTING( 0x00, "Upright 2 Players" )
|
||||
PORT_DIPSETTING( 0x80, "Upright 4 Players" )
|
||||
PORT_DIPSETTING( 0x88, DEF_STR( Cocktail ) )
|
||||
//PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) /* Not documented. */
|
||||
//PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) /* Not documented. */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START3 ) PORT_DIPLOCATION("SW1:3") /* Listed as "Always OFF". */
|
||||
PORT_DIPNAME( 0x20, 0x20, "Speed For 100M Dash" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x00, "10 Beats For Max Speed" )
|
||||
|
@ -312,11 +312,11 @@ ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( angelkds )
|
||||
/*
|
||||
Free Play: Set SW1:1-8 ON (A:Free Play & B:Free Play).
|
||||
Sound Test: Set SW1:1-8 ON (A:Free Play & B:Free Play), hold test switch and reboot.
|
||||
Joystick Test: Set SW1:1-7 ON & SW1:8 OFF (A:Free Play & B:3C_1C), hold test switch and reboot.
|
||||
Joystick Test Coin_A & Coin_B seem to be switched, only works when setting A to 3C_1C and B to Free Play.
|
||||
*/
|
||||
Free Play: Set SW1:1-8 ON (A:Free Play & B:Free Play).
|
||||
Sound Test: Set SW1:1-8 ON (A:Free Play & B:Free Play), hold test switch and reboot.
|
||||
Joystick Test: Set SW1:1-7 ON & SW1:8 OFF (A:Free Play & B:3C_1C), hold test switch and reboot.
|
||||
Joystick Test Coin_A & Coin_B seem to be switched, only works when setting A to 3C_1C and B to Free Play.
|
||||
*/
|
||||
PORT_START_TAG("I40") /* inport $40 */
|
||||
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
|
||||
PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) )
|
||||
|
@ -280,7 +280,7 @@ PROMs : (x1, near EPR-7543.12B, labelled PR7571)
|
||||
DIPSW : 8 position (x1)
|
||||
DIPSW Info:
|
||||
|
||||
1 2 3 4 5 6 7 8
|
||||
1 2 3 4 5 6 7 8
|
||||
-----------------------------------------------------------------------------------
|
||||
Coin1
|
||||
1Coin 1Credit OFF OFF OFF
|
||||
@ -299,14 +299,14 @@ Coin2
|
||||
3Coin 1Credit ON ON
|
||||
-----------------------------------------------------------------------------------
|
||||
Demo Sound
|
||||
Off OFF
|
||||
On ON
|
||||
Off OFF
|
||||
On ON
|
||||
-----------------------------------------------------------------------------------
|
||||
Not Used OFF
|
||||
Not Used OFF
|
||||
-----------------------------------------------------------------------------------
|
||||
Language
|
||||
Japanese OFF
|
||||
English ON
|
||||
Japanese OFF
|
||||
English ON
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -66,9 +66,9 @@ Note :
|
||||
=======
|
||||
- To enter test mode, press coin 2 key at start in Argus and Valtric.
|
||||
- DIP locations verified for:
|
||||
butasan
|
||||
argus
|
||||
valtric
|
||||
butasan
|
||||
argus
|
||||
valtric
|
||||
|
||||
|
||||
Known issues :
|
||||
|
@ -144,10 +144,10 @@ Stephh's notes (based on the games M68000 code and some tests) :
|
||||
2005-04-02 Sebastien Chevalier : various update to video on terrafu, plus some typos here and there
|
||||
|
||||
|
||||
DIP locations verified for:
|
||||
-cclimbr2
|
||||
-legion
|
||||
-terraf
|
||||
DIP locations verified for:
|
||||
-cclimbr2
|
||||
-legion
|
||||
-terraf
|
||||
|
||||
*/
|
||||
|
||||
@ -502,12 +502,12 @@ static INPUT_PORTS_START( armedf )
|
||||
PORT_DIPSETTING( 0x01, "5" )
|
||||
PORT_DIPSETTING( 0x00, "6" )
|
||||
/* SW1:3,4 defined in manual/test-mode as:
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, "20k" )
|
||||
PORT_DIPSETTING( 0x00, "40k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "60k" )
|
||||
PORT_DIPSETTING( 0x00, "80k" )*/
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, "20k" )
|
||||
PORT_DIPSETTING( 0x00, "40k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "60k" )
|
||||
PORT_DIPSETTING( 0x00, "80k" )*/
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:3,4")
|
||||
PORT_DIPSETTING( 0x0c, "20k then every 60k" )
|
||||
PORT_DIPSETTING( 0x04, "20k then every 80k" )
|
||||
@ -595,12 +595,12 @@ static INPUT_PORTS_START( terraf )
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
/* SW1:3,4 defined in manual/test-mode as:
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, "20k" )
|
||||
PORT_DIPSETTING( 0x00, "50k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "60k" )
|
||||
PORT_DIPSETTING( 0x00, "90k" )*/
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, "20k" )
|
||||
PORT_DIPSETTING( 0x00, "50k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "60k" )
|
||||
PORT_DIPSETTING( 0x00, "90k" )*/
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:3,4")
|
||||
PORT_DIPSETTING( 0x0c, "20k then every 60k" )
|
||||
PORT_DIPSETTING( 0x04, "20k then every 90k" )
|
||||
@ -628,12 +628,12 @@ static INPUT_PORTS_START( kodure )
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
/* SW1:3,4 defined in manual/test-mode as:
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( None ) )
|
||||
PORT_DIPSETTING( 0x00, "50k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "60k" )
|
||||
PORT_DIPSETTING( 0x00, "90k" )*/
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( None ) )
|
||||
PORT_DIPSETTING( 0x00, "50k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "60k" )
|
||||
PORT_DIPSETTING( 0x00, "90k" )*/
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:3,4")
|
||||
PORT_DIPSETTING( 0x08, "50k then every 60k" )
|
||||
PORT_DIPSETTING( 0x00, "50k then every 90k" )
|
||||
@ -680,12 +680,12 @@ static INPUT_PORTS_START( cclimbr2 )
|
||||
|
||||
PORT_MODIFY("DSW0")
|
||||
/* SW1:3,4 defined in manual/test-mode as:
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, "30k" )
|
||||
PORT_DIPSETTING( 0x00, "60k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "70k" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( None ) )*/
|
||||
PORT_DIPNAME( 0x04, 0x04, "1st Bonus Life" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x04, "30k" )
|
||||
PORT_DIPSETTING( 0x00, "60k" )
|
||||
PORT_DIPNAME( 0x08, 0x08, "2nd Bonus Life" ) PORT_DIPLOCATION("SW1:4")
|
||||
PORT_DIPSETTING( 0x08, "70k" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( None ) )*/
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:3,4")
|
||||
PORT_DIPSETTING( 0x0c, "30K and 100k" )
|
||||
PORT_DIPSETTING( 0x08, "60k and 130k" )
|
||||
|
@ -13,11 +13,11 @@
|
||||
* measured against a real PCB, the games run slightly too fast
|
||||
in spite of accurately measured VBLANK timings
|
||||
|
||||
DIP locations verified for:
|
||||
* ultennis (manual+test mode)
|
||||
* cheesech (test mode)
|
||||
* stonebal (test mode)
|
||||
* stoneba2 (test mode)
|
||||
DIP locations verified for:
|
||||
* ultennis (manual+test mode)
|
||||
* cheesech (test mode)
|
||||
* stonebal (test mode)
|
||||
* stoneba2 (test mode)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
@ -158,10 +158,10 @@ Kits are available immediately from your Atari Distributor. To determine which
|
||||
(Left coin always registers 1 credit/coin)
|
||||
|
||||
DIP locations verified from manual for:
|
||||
- asteroid
|
||||
- llander
|
||||
- llander1
|
||||
- astdelux
|
||||
- asteroid
|
||||
- llander
|
||||
- llander1
|
||||
- astdelux
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -433,8 +433,8 @@ static INPUT_PORTS_START( astdelux )
|
||||
PORT_DIPSETTING ( 0x01, DEF_STR( German ) )
|
||||
PORT_DIPSETTING ( 0x02, DEF_STR( French ) )
|
||||
PORT_DIPSETTING ( 0x03, DEF_STR( Spanish ) )
|
||||
/* Default lives is 2,3,4,5. Values incremented by 1 if Bonus Life set to None or Coinage set to 2C_1C.
|
||||
Incremented by 2 if both are set at the same time. PORT_CONDITION() can only test for 1 switch at a time. */
|
||||
/* Default lives is 2,3,4,5. Values incremented by 1 if Bonus Life set to None or Coinage set to 2C_1C.
|
||||
Incremented by 2 if both are set at the same time. PORT_CONDITION() can only test for 1 switch at a time. */
|
||||
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("R5:3,4") /* Default is 2 or 3 depending on manual version */
|
||||
PORT_DIPSETTING ( 0x00, "2-4" )
|
||||
PORT_DIPSETTING ( 0x04, "3-5" )
|
||||
@ -474,17 +474,17 @@ static INPUT_PORTS_START( astdelux )
|
||||
PORT_DIPSETTING ( 0xe0, DEF_STR( None ) )
|
||||
|
||||
/* The manual includes a 3rd DIP controlling the number & configuration of coin counters, defined as:
|
||||
PORT_START_TAG("DSW3") // 4-Toggle switch located on game PCB at M12
|
||||
PORT_DIPNAME( 0x03, 0x00, "Coin Counters" ) PORT_DIPLOCATION("M12:1,2")
|
||||
PORT_DIPSETTING ( 0x00, "1=Left, Center & Right" ) // "For games having these coin doors: Thai 1Baht/1Baht, German 1DM/1DM, US 25c/25c,
|
||||
// Belgian or French 5Fr/5Fr, Swiss or French 1Fr/1Fr, US 25c/25c/25c,
|
||||
// Japanese 100Y/100Y, Swedish 1Kr/1Kr, UK 10P/10P, Australian 20c/20c, or Italian 100L/100L."
|
||||
PORT_DIPSETTING ( 0x01, "1=Left & Center, 2=Right" ) // "For games having these coin doors: German 2DM/1DM, German 1DM/5DM, US 25c/25c/1$, or US 25c/1$."
|
||||
PORT_DIPSETTING ( 0x02, "1=Left, 2=Center & Right" ) // "No coin door is currently designed for this configuration."
|
||||
PORT_DIPSETTING ( 0x03, "1=Left, 2=Center, 3=Right" ) // "For games having these coin doors: German 1DM/2DM/5DM."
|
||||
PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "M12:3" ) // Listed as "Unused"
|
||||
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "M12:4" ) // Listed as "Unused"
|
||||
*/
|
||||
PORT_START_TAG("DSW3") // 4-Toggle switch located on game PCB at M12
|
||||
PORT_DIPNAME( 0x03, 0x00, "Coin Counters" ) PORT_DIPLOCATION("M12:1,2")
|
||||
PORT_DIPSETTING ( 0x00, "1=Left, Center & Right" ) // "For games having these coin doors: Thai 1Baht/1Baht, German 1DM/1DM, US 25c/25c,
|
||||
// Belgian or French 5Fr/5Fr, Swiss or French 1Fr/1Fr, US 25c/25c/25c,
|
||||
// Japanese 100Y/100Y, Swedish 1Kr/1Kr, UK 10P/10P, Australian 20c/20c, or Italian 100L/100L."
|
||||
PORT_DIPSETTING ( 0x01, "1=Left & Center, 2=Right" ) // "For games having these coin doors: German 2DM/1DM, German 1DM/5DM, US 25c/25c/1$, or US 25c/1$."
|
||||
PORT_DIPSETTING ( 0x02, "1=Left, 2=Center & Right" ) // "No coin door is currently designed for this configuration."
|
||||
PORT_DIPSETTING ( 0x03, "1=Left, 2=Center, 3=Right" ) // "For games having these coin doors: German 1DM/2DM/5DM."
|
||||
PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "M12:3" ) // Listed as "Unused"
|
||||
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "M12:4" ) // Listed as "Unused"
|
||||
*/
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
@ -896,7 +896,7 @@ static MACHINE_DRIVER_START( edrandy )
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
|
||||
|
||||
|
||||
MDRV_GFXDECODE(cninja)
|
||||
MDRV_PALETTE_LENGTH(2048)
|
||||
|
||||
|
@ -1550,7 +1550,7 @@ static MACHINE_DRIVER_START( snookr10 )
|
||||
// MDRV_SCREEN_SIZE((124+1)*4, (30+1)*8)
|
||||
// MDRV_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1)
|
||||
|
||||
// MDRV_DEVICE_ADD("crtc", MC6845)
|
||||
// MDRV_DEVICE_ADD("crtc", MC6845)
|
||||
|
||||
MDRV_GFXDECODE(sn10)
|
||||
|
||||
|
@ -111,7 +111,7 @@ ADDRESS_MAP_END
|
||||
static INPUT_PORTS_START( m52 )
|
||||
PORT_START_TAG("IN0")
|
||||
/* Start 1 & 2 also restarts and freezes the game with stop mode on
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
|
||||
/* coin input must be active for 19 frames to be consistently recognized */
|
||||
@ -266,31 +266,31 @@ static INPUT_PORTS_START( alpha1v )
|
||||
PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) /* table at 0x5ef4 - 16 bytes (coins) + 16 bytes (credits) */
|
||||
PORT_DIPSETTING( 0x0b, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( 3C_1C ) )
|
||||
// PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0a, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0a, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x0d, DEF_STR( 2C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) ) /* table at 0x5f14 - 16 bytes (coins) + 16 bytes (credits) */
|
||||
// PORT_DIPSETTING( 0xf0, "1 Coin/0 Credit" )
|
||||
// PORT_DIPSETTING( 0x70, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x50, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0xf0, "1 Coin/0 Credit" )
|
||||
// PORT_DIPSETTING( 0x70, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x50, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
|
||||
// PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0xd0, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 1C_4C ) )
|
||||
|
@ -90,7 +90,7 @@ ADDRESS_MAP_END
|
||||
static INPUT_PORTS_START( m57 )
|
||||
PORT_START_TAG("IN0")
|
||||
/* Start 1 & 2 also restarts and freezes the game with stop mode on
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
|
||||
/* coin input must be active for 19 frames to be consistently recognized */
|
||||
|
@ -54,7 +54,7 @@ ADDRESS_MAP_END
|
||||
static INPUT_PORTS_START( m58 )
|
||||
PORT_START_TAG("IN0")
|
||||
/* Start 1 & 2 also restarts and freezes the game with stop mode on
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
and are used in test mode to enter and esc the various tests */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
|
||||
/* coin input must be active for 19 frames to be consistently recognized */
|
||||
|
@ -801,17 +801,17 @@ static MACHINE_DRIVER_START( renegade )
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */*2)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 30*8-1)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 30*8-1)
|
||||
|
||||
MDRV_GFXDECODE(renegade)
|
||||
MDRV_PALETTE_LENGTH(256)
|
||||
MDRV_GFXDECODE(renegade)
|
||||
MDRV_PALETTE_LENGTH(256)
|
||||
|
||||
MDRV_VIDEO_START(renegade)
|
||||
MDRV_VIDEO_UPDATE(renegade)
|
||||
MDRV_VIDEO_START(renegade)
|
||||
MDRV_VIDEO_UPDATE(renegade)
|
||||
|
||||
/* sound hardware */
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD(YM3526, 12000000/4)
|
||||
|
@ -369,7 +369,7 @@ static MACHINE_DRIVER_START( spbactn )
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
|
||||
MDRV_SCREEN_SIZE(64*8, 32*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
|
||||
|
||||
|
||||
MDRV_GFXDECODE(spbactn)
|
||||
MDRV_PALETTE_LENGTH(0x2800/2)
|
||||
|
||||
|
@ -535,7 +535,7 @@ static MACHINE_DRIVER_START( funystrp )
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 47*8-1, 2*8, 32*8-1)
|
||||
|
||||
|
||||
MDRV_GFXDECODE(splash)
|
||||
MDRV_PALETTE_LENGTH(2048)
|
||||
|
||||
|
@ -1128,7 +1128,7 @@ static MACHINE_DRIVER_START( srmp3 )
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(400, 256-16)
|
||||
MDRV_SCREEN_VISIBLE_AREA(16, 400-1, 8, 256-1-24)
|
||||
|
||||
|
||||
MDRV_GFXDECODE(srmp3)
|
||||
MDRV_PALETTE_LENGTH(512) /* sprites only */
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
Super Kaneko Nova System
|
||||
Original Driver by Sylvain Glaize
|
||||
taken to pieces and attempted reconstruction by David Haywood
|
||||
|
@ -11,7 +11,7 @@
|
||||
#define IREM_Z80_COINAGE_TYPE_1_LOC(DIPBANK) \
|
||||
/* Coin Mode 1 */ \
|
||||
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, PORTCOND_NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 7C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
|
||||
@ -42,8 +42,8 @@
|
||||
#define IREM_Z80_COINAGE_TYPE_2_LOC(DIPBANK) \
|
||||
/* Coin Mode 1 */ \
|
||||
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, PORTCOND_NOTEQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6,7,8") \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x90, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x90, DEF_STR( Free_Play ) ) */ \
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
|
||||
@ -55,8 +55,8 @@
|
||||
PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \
|
||||
PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \
|
||||
/* PORT_DIPSETTING( 0x20, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x10, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x20, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x10, DEF_STR( Free_Play ) ) */ \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \
|
||||
/* Coin Mode 2 */ \
|
||||
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_CONDITION("DSW2", 0x04, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION(#DIPBANK":5,6") \
|
||||
@ -75,7 +75,7 @@
|
||||
#define IREM_Z80_COINAGE_TYPE_1 \
|
||||
/* Coin Mode 1 */ \
|
||||
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, PORTCOND_NOTEQUALS, 0x00) \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) */ \
|
||||
PORT_DIPSETTING( 0x90, DEF_STR( 7C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
|
||||
@ -101,13 +101,13 @@
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
|
||||
|
||||
#define IREM_Z80_COINAGE_TYPE_2 \
|
||||
/* Coin Mode 1 */ \
|
||||
PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) PORT_CONDITION("DSW2", 0x04, PORTCOND_NOTEQUALS, 0x00) \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x90, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x90, DEF_STR( Free_Play ) ) */ \
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \
|
||||
@ -119,8 +119,8 @@
|
||||
PORT_DIPSETTING( 0x50, DEF_STR( 1C_4C ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \
|
||||
PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) \
|
||||
/* PORT_DIPSETTING( 0x20, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x10, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x20, DEF_STR( Free_Play ) ) */ \
|
||||
/* PORT_DIPSETTING( 0x10, DEF_STR( Free_Play ) ) */ \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \
|
||||
/* Coin Mode 2 */ \
|
||||
PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_CONDITION("DSW2", 0x04, PORTCOND_EQUALS, 0x00) \
|
||||
@ -132,5 +132,5 @@
|
||||
PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
|
||||
|
||||
|
@ -146,7 +146,7 @@ INLINE int decode_reg_64(UINT32 offset, UINT64 mem_mask, UINT64 *shift)
|
||||
{
|
||||
mame_printf_verbose("Wrong mask! (PC=%x)\n", activecpu_get_pc());
|
||||
#ifdef ENABLE_DEBUGGER
|
||||
// mame_debug_break();
|
||||
// mame_debug_break();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -524,9 +524,9 @@ WRITE64_HANDLER( dc_maple_w )
|
||||
// first function
|
||||
maple0x86data2[pos+ 9]=1; // report
|
||||
maple0x86data2[pos+10]=0; // bits TEST TILT1 TILT2 TILT3 ? ? ? ?
|
||||
maple0x86data2[pos+11]=readinputportbytag("IN1"); // bits 1Pstart 1Pservice 1Pup 1Pdown 1Pleft 1Pright 1Ppush1 1Ppush2
|
||||
maple0x86data2[pos+11]=readinputportbytag("IN1"); // bits 1Pstart 1Pservice 1Pup 1Pdown 1Pleft 1Pright 1Ppush1 1Ppush2
|
||||
maple0x86data2[pos+12]=readinputportbytag("IN2"); // bits 1Ppush3 1Ppush4 1Ppush5 1Ppush6 1Ppush7 1Ppush8 ...
|
||||
maple0x86data2[pos+13]=readinputportbytag("IN3"); // bits 2Pstart 2Pservice 2Pup 2Pdown 2Pleft 2Pright 2Ppush1 2Ppush2
|
||||
maple0x86data2[pos+13]=readinputportbytag("IN3"); // bits 2Pstart 2Pservice 2Pup 2Pdown 2Pleft 2Pright 2Ppush1 2Ppush2
|
||||
maple0x86data2[pos+14]=readinputportbytag("IN4"); // bits 2Ppush3 2Ppush4 2Ppush5 2Ppush6 2Ppush7 2Ppush8 ...
|
||||
// second function
|
||||
maple0x86data2[pos+15]=1; // report
|
||||
@ -547,7 +547,7 @@ WRITE64_HANDLER( dc_maple_w )
|
||||
maple0x86data2[pos+26]=0;
|
||||
maple0x86data2[pos+7]=17+2;
|
||||
tocopy += 17;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
maple0x86data2[pos+7]=15+2;
|
||||
@ -846,7 +846,7 @@ READ64_HANDLER( dc_aica_reg_r )
|
||||
|
||||
reg = decode_reg_64(offset, mem_mask, &shift);
|
||||
|
||||
// mame_printf_verbose("AICA REG: [%08x] read %llx, mask %llx\n", 0x700000+reg*4, (UINT64)offset, mem_mask);
|
||||
// mame_printf_verbose("AICA REG: [%08x] read %llx, mask %llx\n", 0x700000+reg*4, (UINT64)offset, mem_mask);
|
||||
|
||||
return (UINT64) AICA_0_r(offset*2, 0x0000)<<shift;
|
||||
}
|
||||
@ -876,7 +876,7 @@ WRITE64_HANDLER( dc_aica_reg_w )
|
||||
|
||||
AICA_0_w(offset*2, dat, shift ? ((mem_mask>>32)&0xffff) : (mem_mask & 0xffff));
|
||||
|
||||
// mame_printf_verbose("AICA REG: [%08x=%x] write %llx to %x, mask %llx\n", 0x700000+reg*4, dat, data, offset, mem_mask);
|
||||
// mame_printf_verbose("AICA REG: [%08x=%x] write %llx to %x, mask %llx\n", 0x700000+reg*4, dat, data, offset, mem_mask);
|
||||
}
|
||||
|
||||
READ32_HANDLER( dc_arm_aica_r )
|
||||
|
@ -148,7 +148,7 @@ VIDEO_START(magiccrd)
|
||||
|
||||
VIDEO_START(snookr10)
|
||||
{
|
||||
// mc6845 = devtag_get_token(machine, MC6845, "crtc");
|
||||
// mc6845 = devtag_get_token(machine, MC6845, "crtc");
|
||||
bg_tilemap = tilemap_create(get_bg_tile_info, tilemap_scan_rows, 4, 8, 128, 32);
|
||||
}
|
||||
|
||||
|
@ -839,7 +839,7 @@ VIDEO_UPDATE( rjammer )
|
||||
PIN15 = select prom @16B (active low)
|
||||
PIN16 = select prom @16A (active low)
|
||||
PINs: 1,2,3,4,5 and 7,14 are used for priority system
|
||||
*/
|
||||
*/
|
||||
color_bank = (pal14h4_pin13 & ((bg_data&0x08)>>3) & ((bg_data&0x04)>>2) & (((bg_data&0x02)>>1)^1) & (bg_data&0x01) )
|
||||
| (pal14h4_pin18 & ((bg_data&0x08)>>3) & ((bg_data&0x04)>>2) & ((bg_data&0x02)>>1) & ((bg_data&0x01)^1) )
|
||||
| (pal14h4_pin19);
|
||||
|
@ -9,4 +9,4 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
const char build_version[] = "0.123u1 ("__DATE__")";
|
||||
const char build_version[] = "0.123u2 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user