summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2008-09-01 12:41:32 +0000
committer smf- <smf-@users.noreply.github.com>2008-09-01 12:41:32 +0000
commitb258d93893d4f92dcd3c2a017d1681c57b4a4131 (patch)
treed219833729b8c819cb3acd15b179a3a4c90d8d0b
parentadaa2afe495258a7ee365df45519475f842dfe23 (diff)
converted timekeeper to a device, all default contents are loaded from disk. slapshot & opwolf3 read/write memory map have been merged.
-rw-r--r--src/emu/machine/timekpr.c434
-rw-r--r--src/emu/machine/timekpr.h31
-rw-r--r--src/mame/drivers/hornet.c348
-rw-r--r--src/mame/drivers/itech32.c33
-rw-r--r--src/mame/drivers/ksys573.c20
-rw-r--r--src/mame/drivers/midzeus.c25
-rw-r--r--src/mame/drivers/nwk-tr.c183
-rw-r--r--src/mame/drivers/slapshot.c88
-rw-r--r--src/mame/drivers/viper.c195
9 files changed, 570 insertions, 787 deletions
diff --git a/src/emu/machine/timekpr.c b/src/emu/machine/timekpr.c
index 0c5cfa9ff8f..afb0c90ed1b 100644
--- a/src/emu/machine/timekpr.c
+++ b/src/emu/machine/timekpr.c
@@ -12,7 +12,7 @@
#include "driver.h"
#include "machine/timekpr.h"
-struct timekeeper_chip
+typedef struct
{
UINT8 control;
UINT8 seconds;
@@ -24,7 +24,8 @@ struct timekeeper_chip
UINT8 year;
UINT8 century;
UINT8 *data;
- int type;
+ UINT8 *default_data;
+ const device_config *device;
int size;
int offset_control;
int offset_seconds;
@@ -36,9 +37,7 @@ struct timekeeper_chip
int offset_year;
int offset_century;
int offset_flags;
-};
-
-static struct timekeeper_chip timekeeper[ MAX_TIMEKEEPER_CHIPS ];
+} timekeeper_state;
#define MASK_SECONDS ( 0x7f )
#define MASK_MINUTES ( 0x7f )
@@ -106,7 +105,7 @@ static void counter_to_ram( UINT8 *data, int offset, int counter )
}
}
-static void counters_to_ram( struct timekeeper_chip *c )
+static void counters_to_ram( timekeeper_state *c )
{
counter_to_ram( c->data, c->offset_control, c->control );
counter_to_ram( c->data, c->offset_seconds, c->seconds );
@@ -128,10 +127,8 @@ static int counter_from_ram( UINT8 *data, int offset )
return 0;
}
-static void counters_from_ram( int chip )
+static void counters_from_ram( timekeeper_state *c )
{
- struct timekeeper_chip *c = &timekeeper[ chip ];
-
c->control = counter_from_ram( c->data, c->offset_control );
c->seconds = counter_from_ram( c->data, c->offset_seconds );
c->minutes = counter_from_ram( c->data, c->offset_minutes );
@@ -145,7 +142,7 @@ static void counters_from_ram( int chip )
static TIMER_CALLBACK( timekeeper_tick )
{
- struct timekeeper_chip *c = ptr;
+ timekeeper_state *c = (timekeeper_state *) ptr;
int carry;
@@ -203,15 +200,14 @@ static TIMER_CALLBACK( timekeeper_tick )
if( carry )
{
carry = inc_bcd( &c->century, MASK_CENTURY, 0x00, 0x99 );
- switch( c->type )
+
+ if( c->device->type == M48T35 ||
+ c->device->type == M48T58 )
{
- case TIMEKEEPER_M48T35:
- case TIMEKEEPER_M48T58:
if( ( c->day & DAY_CEB ) != 0 )
{
c->day ^= DAY_CB;
}
- break;
}
}
@@ -221,87 +217,90 @@ static TIMER_CALLBACK( timekeeper_tick )
}
}
-void timekeeper_init( running_machine *machine, int chip, int type, UINT8 *data )
+/*-------------------------------------------------
+ get_safe_token - makes sure that the passed
+ in device is the right type
+-------------------------------------------------*/
+
+INLINE timekeeper_state *get_safe_token(const device_config *device)
{
- emu_timer *timer;
- attotime duration;
- mame_system_time systime;
- struct timekeeper_chip *c;
+ assert(device != NULL);
+ assert(device->token != NULL);
+ assert((device->type == M48T02) ||
+ (device->type == M48T35) ||
+ (device->type == M48T58) ||
+ (device->type == MK48T08));
+
+ return (timekeeper_state *)device->token;
+}
- if( chip >= MAX_TIMEKEEPER_CHIPS )
- {
- logerror( "timekeeper_init( %d ) invalid chip\n", chip );
- return;
- }
- c = &timekeeper[ chip ];
+/* memory handlers */
- c->type = type;
+WRITE8_DEVICE_HANDLER( timekeeper_w )
+{
+ timekeeper_state *c = get_safe_token(device);
- switch( c->type )
+ if( offset == c->offset_control )
+ {
+ if( ( c->control & CONTROL_W ) != 0 &&
+ ( data & CONTROL_W ) == 0 )
+ {
+ counters_from_ram( c );
+ }
+ c->control = data;
+ }
+ else if( offset == c->offset_day )
{
- case TIMEKEEPER_M48T02:
- c->offset_control = 0x7f8;
- c->offset_seconds = 0x7f9;
- c->offset_minutes = 0x7fa;
- c->offset_hours = 0x7fb;
- c->offset_day = 0x7fc;
- c->offset_date = 0x7fd;
- c->offset_month = 0x7fe;
- c->offset_year = 0x7ff;
- c->offset_century = -1;
- c->offset_flags = -1;
- c->size = 0x800;
- break;
- case TIMEKEEPER_M48T35:
- c->offset_control = 0x7ff8;
- c->offset_seconds = 0x7ff9;
- c->offset_minutes = 0x7ffa;
- c->offset_hours = 0x7ffb;
- c->offset_day = 0x7ffc;
- c->offset_date = 0x7ffd;
- c->offset_month = 0x7ffe;
- c->offset_year = 0x7fff;
- c->offset_century = -1;
- c->offset_flags = -1;
- c->size = 0x8000;
- break;
- case TIMEKEEPER_M48T58:
- c->offset_control = 0x1ff8;
- c->offset_seconds = 0x1ff9;
- c->offset_minutes = 0x1ffa;
- c->offset_hours = 0x1ffb;
- c->offset_day = 0x1ffc;
- c->offset_date = 0x1ffd;
- c->offset_month = 0x1ffe;
- c->offset_year = 0x1fff;
- c->offset_century = -1;
- c->offset_flags = -1;
- c->size = 0x2000;
- break;
- case TIMEKEEPER_MK48T08:
- c->offset_control = 0x1ff8;
- c->offset_seconds = 0x1ff9;
- c->offset_minutes = 0x1ffa;
- c->offset_hours = 0x1ffb;
- c->offset_day = 0x1ffc;
- c->offset_date = 0x1ffd;
- c->offset_month = 0x1ffe;
- c->offset_year = 0x1fff;
- c->offset_century = 0x1ff1;
- c->offset_flags = 0x1ff0;
- c->size = 0x2000;
- break;
+ if( c->device->type == M48T35 ||
+ c->device->type == M48T58 )
+ {
+ c->day = ( c->day & ~DAY_CEB ) | ( data & DAY_CEB );
+ }
}
-
- if( data == NULL )
+ else if( offset == c->offset_date && c->device->type == M48T58 )
{
- data = auto_malloc( c->size );
- memset( data, 0xff, c->size );
+ data &= ~DATE_BL;
+ }
+ else if( offset == c->offset_flags && c->device->type == MK48T08 )
+ {
+ data &= ~FLAGS_BL;
}
- c->data = data;
- mame_get_base_datetime(machine, &systime);
+ logerror( "%08x: timekeeper_write( %s, %04x, %02x )\n", activecpu_get_pc(), c->device->token, offset, data );
+ c->data[ offset ] = data;
+}
+
+READ8_DEVICE_HANDLER( timekeeper_r )
+{
+ timekeeper_state *c = get_safe_token(device);
+ UINT8 data = c->data[ offset ];
+ logerror( "%08x: timekeeper_read( %s, %04x ) %02x\n", activecpu_get_pc(), c->device->token, offset, data );
+ return data;
+}
+/*-------------------------------------------------
+ device start callback
+-------------------------------------------------*/
+
+static DEVICE_START(timekeeper)
+{
+ timekeeper_state *c = get_safe_token(device);
+ const timekeeper_config *config;
+ char unique_tag[50];
+ emu_timer *timer;
+ attotime duration;
+ mame_system_time systime;
+
+ /* validate some basic stuff */
+ assert(device != NULL);
+// assert(device->static_config != NULL);
+ assert(device->inline_config == NULL);
+ assert(device->machine != NULL);
+ assert(device->machine->config != NULL);
+
+ mame_get_base_datetime(device->machine, &systime);
+
+ c->device = device;
c->control = 0;
c->seconds = make_bcd( systime.local_time.second );
c->minutes = make_bcd( systime.local_time.minute );
@@ -311,32 +310,124 @@ void timekeeper_init( running_machine *machine, int chip, int type, UINT8 *data
c->month = make_bcd( systime.local_time.month + 1 );
c->year = make_bcd( systime.local_time.year % 100 );
c->century = make_bcd( systime.local_time.year / 100 );
+ c->data = auto_malloc( c->size );
- state_save_register_item( "timekeeper", chip, c->control );
- state_save_register_item( "timekeeper", chip, c->seconds );
- state_save_register_item( "timekeeper", chip, c->minutes );
- state_save_register_item( "timekeeper", chip, c->hours );
- state_save_register_item( "timekeeper", chip, c->day );
- state_save_register_item( "timekeeper", chip, c->date );
- state_save_register_item( "timekeeper", chip, c->month );
- state_save_register_item( "timekeeper", chip, c->year );
- state_save_register_item( "timekeeper", chip, c->century );
- state_save_register_item_pointer( "timekeeper", chip, c->data, c->size );
+ config = device->static_config;
+ if( config != NULL && config->data != NULL )
+ {
+ c->default_data = memory_region( device->machine, config->data );
+ if( c->default_data != NULL )
+ {
+ assert( memory_region_length( device->machine, config->data ) == c->size );
+ }
+ }
+
+ assert( strlen( device->tag ) < 30 );
+ state_save_combine_module_and_tag( unique_tag, "timekeeper", device->tag );
+
+ state_save_register_item( unique_tag, 0, c->control );
+ state_save_register_item( unique_tag, 0, c->seconds );
+ state_save_register_item( unique_tag, 0, c->minutes );
+ state_save_register_item( unique_tag, 0, c->hours );
+ state_save_register_item( unique_tag, 0, c->day );
+ state_save_register_item( unique_tag, 0, c->date );
+ state_save_register_item( unique_tag, 0, c->month );
+ state_save_register_item( unique_tag, 0, c->year );
+ state_save_register_item( unique_tag, 0, c->century );
+ state_save_register_item_pointer( unique_tag, 0, c->data, c->size );
timer = timer_alloc( timekeeper_tick, c );
duration = ATTOTIME_IN_SEC(1);
timer_adjust_periodic( timer, duration, 0, duration );
}
-static void timekeeper_nvram( int chip, mame_file *file, int read_or_write )
+static DEVICE_START(m48t02)
{
- struct timekeeper_chip *c;
- if( chip >= MAX_TIMEKEEPER_CHIPS )
- {
- logerror( "timekeeper_nvram( %d ) invalid chip\n", chip );
- return;
- }
- c = &timekeeper[ chip ];
+ timekeeper_state *c = get_safe_token(device);
+
+ c->offset_control = 0x7f8;
+ c->offset_seconds = 0x7f9;
+ c->offset_minutes = 0x7fa;
+ c->offset_hours = 0x7fb;
+ c->offset_day = 0x7fc;
+ c->offset_date = 0x7fd;
+ c->offset_month = 0x7fe;
+ c->offset_year = 0x7ff;
+ c->offset_century = -1;
+ c->offset_flags = -1;
+ c->size = 0x800;
+
+ DEVICE_START_CALL( timekeeper );
+}
+
+static DEVICE_START(m48t35)
+{
+ timekeeper_state *c = get_safe_token(device);
+
+ c->offset_control = 0x7ff8;
+ c->offset_seconds = 0x7ff9;
+ c->offset_minutes = 0x7ffa;
+ c->offset_hours = 0x7ffb;
+ c->offset_day = 0x7ffc;
+ c->offset_date = 0x7ffd;
+ c->offset_month = 0x7ffe;
+ c->offset_year = 0x7fff;
+ c->offset_century = -1;
+ c->offset_flags = -1;
+ c->size = 0x8000;
+
+ DEVICE_START_CALL( timekeeper );
+}
+
+static DEVICE_START(m48t58)
+{
+ timekeeper_state *c = get_safe_token(device);
+
+ c->offset_control = 0x1ff8;
+ c->offset_seconds = 0x1ff9;
+ c->offset_minutes = 0x1ffa;
+ c->offset_hours = 0x1ffb;
+ c->offset_day = 0x1ffc;
+ c->offset_date = 0x1ffd;
+ c->offset_month = 0x1ffe;
+ c->offset_year = 0x1fff;
+ c->offset_century = -1;
+ c->offset_flags = -1;
+ c->size = 0x2000;
+
+ DEVICE_START_CALL( timekeeper );
+}
+
+static DEVICE_START(mk48t08)
+{
+ timekeeper_state *c = get_safe_token(device);
+
+ c->offset_control = 0x1ff8;
+ c->offset_seconds = 0x1ff9;
+ c->offset_minutes = 0x1ffa;
+ c->offset_hours = 0x1ffb;
+ c->offset_day = 0x1ffc;
+ c->offset_date = 0x1ffd;
+ c->offset_month = 0x1ffe;
+ c->offset_year = 0x1fff;
+ c->offset_century = 0x1ff1;
+ c->offset_flags = 0x1ff0;
+ c->size = 0x2000;
+
+ DEVICE_START_CALL( timekeeper );
+}
+
+/*-------------------------------------------------
+ device reset callback
+-------------------------------------------------*/
+
+static DEVICE_RESET(timekeeper)
+{
+}
+
+static DEVICE_NVRAM(timekeeper)
+{
+ timekeeper_state *c = get_safe_token(device);
if( read_or_write )
{
@@ -348,78 +439,115 @@ static void timekeeper_nvram( int chip, mame_file *file, int read_or_write )
{
mame_fread( file, c->data, c->size );
}
+ else
+ {
+ if( c->default_data != NULL )
+ {
+ memcpy( c->data, c->default_data, c->size );
+ }
+ else
+ {
+ memset( c->data, 0xff, c->size );
+ }
+ }
+
counters_to_ram( c );
}
}
-NVRAM_HANDLER( timekeeper_0 ) { timekeeper_nvram( 0, file, read_or_write ); }
+/*-------------------------------------------------
+ device set info callback
+-------------------------------------------------*/
-static UINT8 timekeeper_read( UINT32 chip, offs_t offset )
+static DEVICE_SET_INFO(timekeeper)
{
- UINT8 data;
- struct timekeeper_chip *c;
- if( chip >= MAX_TIMEKEEPER_CHIPS )
+ switch (state)
{
- logerror( "%08x: timekeeper_read( %d, %04x ) chip out of range\n", activecpu_get_pc(), chip, offset );
- return 0;
+ /* no parameters to set */
}
- c = &timekeeper[ chip ];
-
- data = c->data[ offset ];
-// logerror( "%08x: timekeeper_read( %d, %04x ) %02x\n", activecpu_get_pc(), chip, offset, data );
- return data;
}
-static void timekeeper_write( UINT32 chip, offs_t offset, UINT8 data )
+/*-------------------------------------------------
+ device get info callback
+-------------------------------------------------*/
+
+static DEVICE_GET_INFO(timekeeper)
{
- struct timekeeper_chip *c;
- if( chip >= MAX_TIMEKEEPER_CHIPS )
+ switch (state)
{
- logerror( "%08x: timekeeper_write( %d, %04x, %02x ) chip out of range\n", activecpu_get_pc(), chip, offset, data );
- return;
+ /* --- the following bits of info are returned as 64-bit signed integers --- */
+ case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(timekeeper_state); break;
+ case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = 0; break; // sizeof(timekeeper_config)
+ case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break;
+
+ /* --- the following bits of info are returned as pointers to data or functions --- */
+ case DEVINFO_FCT_SET_INFO: info->set_info = DEVICE_SET_INFO_NAME(timekeeper); break;
+ case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(timekeeper); break;
+ case DEVINFO_FCT_STOP: /* nothing */ break;
+ case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(timekeeper); break;
+ case DEVINFO_FCT_NVRAM: info->nvram = DEVICE_NVRAM_NAME(timekeeper); break;
+
+ /* --- the following bits of info are returned as NULL-terminated strings --- */
+ case DEVINFO_STR_NAME: info->s = "Timekeeper"; break;
+ case DEVINFO_STR_FAMILY: info->s = "EEPROM"; break;
+ case DEVINFO_STR_VERSION: info->s = "1.0"; break;
+ case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
+ case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
}
- c = &timekeeper[ chip ];
+}
- if( offset == c->offset_control )
- {
- if( ( c->control & CONTROL_W ) != 0 &&
- ( data & CONTROL_W ) == 0 )
- {
- counters_from_ram( chip );
- }
- c->control = data;
- }
- else if( offset == c->offset_day )
- {
- switch( c->type )
- {
- case TIMEKEEPER_M48T35:
- case TIMEKEEPER_M48T58:
- c->day = ( c->day & ~DAY_CEB ) | ( data & DAY_CEB );
- break;
- }
- }
- else if( c->type == TIMEKEEPER_M48T58 && offset == c->offset_date )
+DEVICE_GET_INFO( m48t02 )
+{
+ switch (state)
{
- data &= ~DATE_BL;
+ /* --- the following bits of info are returned as NULL-terminated strings --- */
+ case DEVINFO_STR_NAME: info->s = "M48T02"; break;
+
+ /* --- the following bits of info are returned as pointers to data or functions --- */
+ case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(m48t02); break;
+
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
}
- else if( c->type == TIMEKEEPER_MK48T08 && offset == c->offset_flags )
+}
+
+DEVICE_GET_INFO( m48t35 )
+{
+ switch (state)
{
- data &= ~FLAGS_BL;
- }
+ /* --- the following bits of info are returned as NULL-terminated strings --- */
+ case DEVINFO_STR_NAME: info->s = "M48T35"; break;
-// logerror( "%08x: timekeeper_write( %d, %04x, %02x )\n", activecpu_get_pc(), chip, offset, data );
- c->data[ offset ] = data;
-}
+ /* --- the following bits of info are returned as pointers to data or functions --- */
+ case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(m48t35); break;
-/* memory handlers */
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ }
+}
-READ8_HANDLER( timekeeper_0_r )
+DEVICE_GET_INFO( m48t58 )
{
- return timekeeper_read(0, offset);
+ switch (state)
+ {
+ /* --- the following bits of info are returned as NULL-terminated strings --- */
+ case DEVINFO_STR_NAME: info->s = "M48T58"; break;
+
+ /* --- the following bits of info are returned as pointers to data or functions --- */
+ case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(m48t58); break;
+
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ }
}
-WRITE8_HANDLER( timekeeper_0_w )
+DEVICE_GET_INFO( mk48t08 )
{
- timekeeper_write(0, offset, data);
+ switch (state)
+ {
+ /* --- the following bits of info are returned as NULL-terminated strings --- */
+ case DEVINFO_STR_NAME: info->s = "MK48T08"; break;
+
+ /* --- the following bits of info are returned as pointers to data or functions --- */
+ case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(mk48t08); break;
+
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ }
}
diff --git a/src/emu/machine/timekpr.h b/src/emu/machine/timekpr.h
index 7c0891e2016..638f8c05679 100644
--- a/src/emu/machine/timekpr.h
+++ b/src/emu/machine/timekpr.h
@@ -1,29 +1,38 @@
/*
* STmicroelectronics TIMEKEEPER SRAM
*
- * Supports: MK48T08, M48T02 & M48T58
+ * Supports:
+ * M48T02
+ * M48T35
+ * M48T58
+ * MK48T08
*
*/
#if !defined( TIMEKPR_H )
#define TIMEKPR_H ( 1 )
-extern void timekeeper_init( running_machine *machine, int chip, int type, UINT8 *data );
+typedef struct _timekeeper_config timekeeper_config;
+struct _timekeeper_config
+{
+ const char *data;
+};
-#define MAX_TIMEKEEPER_CHIPS ( 1 )
+#define M48T02 DEVICE_GET_INFO_NAME(m48t02)
+DEVICE_GET_INFO(m48t02);
-#define TIMEKEEPER_M48T02 ( 1 )
-#define TIMEKEEPER_M48T35 ( 2 )
-#define TIMEKEEPER_M48T58 ( 3 )
-#define TIMEKEEPER_MK48T08 ( 4 )
+#define M48T35 DEVICE_GET_INFO_NAME(m48t35)
+DEVICE_GET_INFO(m48t35);
-/* nvram handlers */
+#define M48T58 DEVICE_GET_INFO_NAME(m48t58)
+DEVICE_GET_INFO(m48t58);
-extern NVRAM_HANDLER( timekeeper_0 );
+#define MK48T08 DEVICE_GET_INFO_NAME(mk48t08)
+DEVICE_GET_INFO(mk48t08);
/* memory handlers */
-extern READ8_HANDLER( timekeeper_0_r );
-extern WRITE8_HANDLER( timekeeper_0_w );
+WRITE8_DEVICE_HANDLER( timekeeper_w );
+READ8_DEVICE_HANDLER( timekeeper_r );
#endif
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index 6258bff31b6..6040e68d71f 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -323,7 +323,6 @@ static UINT32 *workram;
static UINT32 *sharc_dataram[2];
static UINT8 *jvs_sdata;
static UINT32 jvs_sdata_ptr = 0;
-static UINT8 *backup_ram;
/* K037122 Tilemap chip (move to konamiic.c ?) */
@@ -817,7 +816,7 @@ static ADDRESS_MAP_START( hornet_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
AM_RANGE(0x7d000000, 0x7d00ffff) AM_READ8(sysreg_r, 0xffffffff)
AM_RANGE(0x7d010000, 0x7d01ffff) AM_WRITE8(sysreg_w, 0xffffffff)
- AM_RANGE(0x7d020000, 0x7d021fff) AM_READWRITE8(timekeeper_0_r, timekeeper_0_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
+ AM_RANGE(0x7d020000, 0x7d021fff) AM_DEVREADWRITE8(M48T58, "m48t58", timekeeper_r, timekeeper_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
AM_RANGE(0x7d030000, 0x7d030007) AM_READWRITE(K056800_host_r, K056800_host_w)
AM_RANGE(0x7d042000, 0x7d043fff) AM_RAM /* COMM BOARD 0 */
AM_RANGE(0x7d044000, 0x7d044007) AM_READ(comm0_unk_r)
@@ -1040,10 +1039,14 @@ static MACHINE_RESET( hornet )
static NVRAM_HANDLER( hornet )
{
- NVRAM_HANDLER_CALL(timekeeper_0);
NVRAM_HANDLER_CALL(93C46);
}
+static const timekeeper_config timekeeper_intf =
+{
+ "m48t58"
+};
+
static MACHINE_DRIVER_START( hornet )
/* basic machine hardware */
@@ -1086,6 +1089,8 @@ static MACHINE_DRIVER_START( hornet )
MDRV_SOUND_ROUTE(0, "left", 1.0)
MDRV_SOUND_ROUTE(1, "right", 1.0)
+ MDRV_DEVICE_ADD( "m48t58", M48T58 )
+ MDRV_DEVICE_CONFIG( timekeeper_intf )
MACHINE_DRIVER_END
static MACHINE_RESET( hornet_2board )
@@ -1307,7 +1312,7 @@ static void sound_irq_callback(running_machine *machine, int irq)
cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ2, PULSE_LINE);
}
-static void init_hornet(running_machine *machine)
+static DRIVER_INIT(hornet)
{
init_konami_cgboard(1, CGBOARD_TYPE_HORNET);
set_cgboard_texture_bank(0, 5, memory_region(machine, "user5"));
@@ -1316,12 +1321,11 @@ static void init_hornet(running_machine *machine)
K033906_init();
led_reg0 = led_reg1 = 0x7f;
- timekeeper_init(machine, 0, TIMEKEEPER_M48T58, backup_ram);
ppc4xx_spu_set_tx_handler(0, jamma_jvs_w);
}
-static void init_hornet_2board(running_machine *machine)
+static DRIVER_INIT(hornet_2board)
{
init_konami_cgboard(2, CGBOARD_TYPE_HORNET);
set_cgboard_texture_bank(0, 5, memory_region(machine, "user5"));
@@ -1331,220 +1335,10 @@ static void init_hornet_2board(running_machine *machine)
K033906_init();
led_reg0 = led_reg1 = 0x7f;
- timekeeper_init(machine, 0, TIMEKEEPER_M48T58, backup_ram);
ppc4xx_spu_set_tx_handler(0, jamma_jvs_w);
}
-static DRIVER_INIT(gradius4)
-{
- UINT8 *backupdef;
-
- backupdef = auto_malloc(0x2000);
- memset(backupdef, 0, 0x2000);
-
- /* RTC data */
- backupdef[0x00] = 0x47; // 'G'
- backupdef[0x01] = 0x58; // 'X'
- backupdef[0x02] = 0x38; // '8'
- backupdef[0x03] = 0x33; // '3'
- backupdef[0x04] = 0x37; // '7'
- backupdef[0x05] = 0x00; //
- backupdef[0x06] = 0x11; //
- backupdef[0x07] = 0x06; // 06 / 11
- backupdef[0x08] = 0x19; //
- backupdef[0x09] = 0x98; // 1998
- backupdef[0x0a] = 0x4a; // 'J'
- backupdef[0x0b] = 0x41; // 'A'
- backupdef[0x0c] = 0x43; // 'C'
- backupdef[0x0d] = 0x00; //
- backupdef[0x0e] = 0x02; // checksum
- backupdef[0x0f] = 0xd7; // checksum
-
- backup_ram = backupdef;
- init_hornet(machine);
-}
-
-static DRIVER_INIT(nbapbp)
-{
- UINT8 *backupdef;
- int i;
- UINT16 checksum;
-
- backupdef = auto_malloc(0x2000);
- memset(backupdef, 0, 0x2000);
-
- /* RTC data */
- backupdef[0x00] = 0x47; // 'G'
- backupdef[0x01] = 0x58; // 'X'
- backupdef[0x02] = 0x37; // '7'
- backupdef[0x03] = 0x37; // '7'
- backupdef[0x04] = 0x38; // '8'
- backupdef[0x05] = 0x00; //
- backupdef[0x06] = 0x00; //
- backupdef[0x07] = 0x00; //
- backupdef[0x08] = 0x19; //
- backupdef[0x09] = 0x98; // 1998
- backupdef[0x0a] = 0x4a; // 'J'
- backupdef[0x0b] = 0x41; // 'A'
- backupdef[0x0c] = 0x41; // 'A'
- backupdef[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i++)
- {
- checksum += backupdef[i];
- checksum &= 0xffff;
- }
- backupdef[0x0e] = (checksum >> 8) & 0xff; // checksum
- backupdef[0x0f] = (checksum >> 0) & 0xff; // checksum
-
- backup_ram = backupdef;
- init_hornet(machine);
-}
-
-static DRIVER_INIT(terabrst)
-{
- UINT8 *backupdef;
- int i;
- UINT16 checksum;
-
- backupdef = auto_malloc(0x2000);
- memset(backupdef, 0, 0x2000);
-
- /* RTC data */
- backupdef[0x00] = 0x47; // 'G'
- backupdef[0x01] = 0x4e; // 'N'
- backupdef[0x02] = 0x37; // '7'
- backupdef[0x03] = 0x31; // '1'
- backupdef[0x04] = 0x35; // '5'
- backupdef[0x05] = 0x00; //
- backupdef[0x06] = 0x00; //
- backupdef[0x07] = 0x00; //
- backupdef[0x08] = 0x19; //
- backupdef[0x09] = 0x98; // 1998
- backupdef[0x0a] = 0x41; // 'J'
- backupdef[0x0b] = 0x41; // 'A'
- backupdef[0x0c] = 0x45; // 'E'
- backupdef[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i+=2)
- {
- checksum += (backupdef[i] << 8) | (backupdef[i+1]);
- }
- checksum = ~checksum - 0;
- backupdef[0x0e] = (checksum >> 8) & 0xff; // checksum
- backupdef[0x0f] = (checksum >> 0) & 0xff; // checksum
-
- backup_ram = backupdef;
- init_hornet_2board(machine);
-}
-
-static DRIVER_INIT(sscope)
-{
- UINT8 *backupdef;
- int i;
- UINT16 checksum;
-
- backupdef = auto_malloc(0x2000);
- memset(backupdef, 0, 0x2000);
-
- /* RTC data */
- backupdef[0x00] = 0x47; // 'G'
- backupdef[0x01] = 0x51; // 'Q'
- backupdef[0x02] = 0x38; // '8'
- backupdef[0x03] = 0x33; // '3'
- backupdef[0x04] = 0x30; // '0'
- backupdef[0x05] = 0x00; //
- backupdef[0x06] = 0x00; //
- backupdef[0x07] = 0x00; //
- backupdef[0x08] = 0x20; //
- backupdef[0x09] = 0x00; // 2000
- backupdef[0x0a] = 0x55; // 'U'
- backupdef[0x0b] = 0x41; // 'A'
- backupdef[0x0c] = 0x41; // 'A'
- backupdef[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i+=2)
- {
- checksum += (backupdef[i] << 8) | (backupdef[i+1]);
- }
- checksum = ~checksum - 1;
- backupdef[0x0e] = (checksum >> 8) & 0xff; // checksum
- backupdef[0x0f] = (checksum >> 0) & 0xff; // checksum
-
- backup_ram = backupdef;
- init_hornet_2board(machine);
-}
-
-static DRIVER_INIT(sscope2)
-{
- UINT8 *backupdef;
- int i;
- int checksum;
-
- backupdef = auto_malloc(0x2000);
- memset(backupdef, 0, 0x2000);
-
- /* RTC data */
- backupdef[0x00] = 0x47; // 'G'
- backupdef[0x01] = 0x4b; // 'K'
- backupdef[0x02] = 0x39; // '9'
- backupdef[0x03] = 0x33; // '3'
- backupdef[0x04] = 0x31; // '1'
- backupdef[0x05] = 0x00; //
- backupdef[0x06] = 0x00; //
- backupdef[0x07] = 0x00; //
- backupdef[0x08] = 0x20; //
- backupdef[0x09] = 0x00; // 2000
- backupdef[0x0a] = 0x55; // 'U'
- backupdef[0x0b] = 0x41; // 'A'
- backupdef[0x0c] = 0x41; // 'A'
- backupdef[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i+=2)
- {
- checksum += (backupdef[i] << 8) | (backupdef[i+1]);
- checksum &= 0xffff;
- }
- checksum = (-1 - checksum) - 1;
- backupdef[0x0e] = (checksum >> 8) & 0xff; // checksum
- backupdef[0x0f] = (checksum >> 0) & 0xff; // checksum
-
-
- /* Silent Scope data */
- backupdef[0x1f40] = 0x47; // 'G'
- backupdef[0x1f41] = 0x4b; // 'Q'
- backupdef[0x1f42] = 0x38; // '8'
- backupdef[0x1f43] = 0x33; // '3'
- backupdef[0x1f44] = 0x30; // '0'
- backupdef[0x1f45] = 0x00; //
- backupdef[0x1f46] = 0x00; //
- backupdef[0x1f47] = 0x00; //
- backupdef[0x1f48] = 0x20; //
- backupdef[0x1f49] = 0x00; // 2000
- backupdef[0x1f4a] = 0x55; // 'U'
- backupdef[0x1f4b] = 0x41; // 'A'
- backupdef[0x1f4c] = 0x41; // 'A'
- backupdef[0x1f4d] = 0x00; //
-
- checksum = 0;
- for (i=0x1f40; i < 0x1f4e; i+=2)
- {
- checksum += (backupdef[i] << 8) | (backupdef[i+1]);
- checksum &= 0xffff;
- }
- checksum = (-1 - checksum) - 1;
- backupdef[0x1f4e] = (checksum >> 8) & 0xff; // checksum
- backupdef[0x1f4f] = (checksum >> 0) & 0xff; // checksum
-
- backup_ram = backupdef;
- init_hornet_2board(machine);
-}
-
/*****************************************************************************/
ROM_START(sscope)
@@ -1558,12 +1352,15 @@ ROM_START(sscope)
ROM_LOAD16_WORD_SWAP("ss1-1.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1))
ROM_REGION(0x1000000, "user5", 0) /* CG Board texture roms */
- ROM_LOAD32_WORD( "ss1-3.u32", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) )
- ROM_LOAD32_WORD( "ss1-3.u24", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) )
+ ROM_LOAD32_WORD( "ss1-3.u32", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) )
+ ROM_LOAD32_WORD( "ss1-3.u24", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) )
ROM_REGION(0x1000000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
- ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
+ ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
+ ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(ee815325) SHA1(91b10802791b68a8360c0cd6c376c0c4bbbc6fa0) )
ROM_END
ROM_START(sscopea)
@@ -1577,12 +1374,15 @@ ROM_START(sscopea)
ROM_LOAD16_WORD_SWAP("ss1-1.7s", 0x000000, 0x80000, CRC(2805ea1d) SHA1(2556a51ee98cb8f59bf081e916c69a24532196f1))
ROM_REGION(0x1000000, "user5", 0) /* CG Board texture roms */
- ROM_LOAD32_WORD( "ss1-3.u32", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) )
- ROM_LOAD32_WORD( "ss1-3.u24", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) )
+ ROM_LOAD32_WORD( "ss1-3.u32", 0x000000, 0x400000, CRC(335793e1) SHA1(d582b53c3853abd59bc728f619a30c27cfc9497c) )
+ ROM_LOAD32_WORD( "ss1-3.u24", 0x000002, 0x400000, CRC(d6e7877e) SHA1(b4d0e17ada7dd126ec564a20e7140775b4b3fdb7) )
ROM_REGION(0x1000000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
- ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
+ ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
+ ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(ee815325) SHA1(91b10802791b68a8360c0cd6c376c0c4bbbc6fa0) )
ROM_END
ROM_START(sscope2)
@@ -1591,7 +1391,7 @@ ROM_START(sscope2)
ROM_RELOAD(0x000000, 0x200000)
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP("931a04.bin", 0x000000, 0x200000, CRC(4f5917e6) SHA1(a63a107f1d6d9756e4ab0965d72ea446f0692814))
+ ROM_LOAD32_WORD_SWAP("931a04.bin", 0x000000, 0x200000, CRC(4f5917e6) SHA1(a63a107f1d6d9756e4ab0965d72ea446f0692814))
ROM_REGION32_BE(0x800000, "user3", 0) /* Comm board roms */
ROM_LOAD("931a19.bin", 0x000000, 0x400000, BAD_DUMP CRC(8e8bb6af) SHA1(1bb399f7897fbcbe6852fda3215052b2810437d8))
@@ -1603,88 +1403,100 @@ ROM_START(sscope2)
ROM_LOAD16_WORD_SWAP("931a08.bin", 0x000000, 0x80000, CRC(1597d604) SHA1(a1eab4d25907930b59ea558b484c3b6ddcb9303c))
ROM_REGION(0xc00000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "931a09.bin", 0x000000, 0x400000, CRC(694c354c) SHA1(42f54254a5959e1b341f2801f1ad032c4ed6f329) )
- ROM_LOAD( "931a10.bin", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
- ROM_LOAD( "931a11.bin", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
+ ROM_LOAD( "931a09.bin", 0x000000, 0x400000, CRC(694c354c) SHA1(42f54254a5959e1b341f2801f1ad032c4ed6f329) )
+ ROM_LOAD( "931a10.bin", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
+ ROM_LOAD( "931a11.bin", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(d4e69d7a) SHA1(1e29eecf4886e5e098a388dedd5f3901c2bb65e5) )
ROM_END
ROM_START(gradius4)
ROM_REGION32_BE(0x400000, "user1", 0) /* PowerPC program */
- ROM_LOAD16_WORD_SWAP( "837c01.27p", 0x200000, 0x200000, CRC(ce003123) SHA1(15e33997be2c1b3f71998627c540db378680a7a1) )
- ROM_RELOAD(0x000000, 0x200000)
+ ROM_LOAD16_WORD_SWAP( "837c01.27p", 0x200000, 0x200000, CRC(ce003123) SHA1(15e33997be2c1b3f71998627c540db378680a7a1) )
+ ROM_RELOAD(0x000000, 0x200000)
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) )
- ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) )
+ ROM_LOAD32_WORD_SWAP( "837a04.16t", 0x000000, 0x200000, CRC(18453b59) SHA1(3c75a54d8c09c0796223b42d30fb3867a911a074) )
+ ROM_LOAD32_WORD_SWAP( "837a05.14t", 0x000002, 0x200000, CRC(77178633) SHA1(ececdd501d0692390325c8dad6dbb068808a8b26) )
ROM_REGION32_BE(0x1000000, "user5", 0) /* CG Board texture roms */
- ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) )
- ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) )
- ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) )
- ROM_LOAD32_WORD_SWAP( "837a15.24v", 0x800000, 0x400000, CRC(e0620737) SHA1(c14078cdb44f75c7c956b3627045d8494941d6b4) )
+ ROM_LOAD32_WORD_SWAP( "837a14.32u", 0x000002, 0x400000, CRC(ff1b5d18) SHA1(7a38362170133dcc6ea01eb62981845917b85c36) )
+ ROM_LOAD32_WORD_SWAP( "837a13.24u", 0x000000, 0x400000, CRC(d86e10ff) SHA1(6de1179d7081d9a93ab6df47692d3efc190c38ba) )
+ ROM_LOAD32_WORD_SWAP( "837a16.32v", 0x800002, 0x400000, CRC(bb7a7558) SHA1(8c8cc062793c2dcfa72657b6ea0813d7223a0b87) )
+ ROM_LOAD32_WORD_SWAP( "837a15.24v", 0x800000, 0x400000, CRC(e0620737) SHA1(c14078cdb44f75c7c956b3627045d8494941d6b4) )
ROM_REGION(0x80000, "audio", 0) /* 68K Program */
- ROM_LOAD16_WORD_SWAP( "837a08.7s", 0x000000, 0x080000, CRC(c3a7ff56) SHA1(9d8d033277d560b58da151338d14b4758a9235ea) )
+ ROM_LOAD16_WORD_SWAP( "837a08.7s", 0x000000, 0x080000, CRC(c3a7ff56) SHA1(9d8d033277d560b58da151338d14b4758a9235ea) )
ROM_REGION(0x800000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
- ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
+ ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
+ ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(935f9d05) SHA1(c3a787dff1b2ac4942858ffa1574405db01292b6) )
ROM_END
ROM_START(nbapbp)
ROM_REGION32_BE(0x400000, "user1", 0) /* PowerPC program */
- ROM_LOAD16_WORD_SWAP( "778a01.27p", 0x200000, 0x200000, CRC(e70019ce) SHA1(8b187b6e670fdc88771da08a56685cd621b139dc) )
- ROM_RELOAD(0x000000, 0x200000)
+ ROM_LOAD16_WORD_SWAP( "778a01.27p", 0x200000, 0x200000, CRC(e70019ce) SHA1(8b187b6e670fdc88771da08a56685cd621b139dc) )
+ ROM_RELOAD(0x000000, 0x200000)
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) )
- ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) )
+ ROM_LOAD32_WORD_SWAP( "778a04.16t", 0x000000, 0x400000, CRC(62c70132) SHA1(405aed149fc51e0adfa3ace3c644e47d53cf1ee3) )
+ ROM_LOAD32_WORD_SWAP( "778a05.14t", 0x000002, 0x400000, CRC(03249803) SHA1(f632a5f1dfa0a8500407214df0ec8d98ce09bc2b) )
ROM_REGION32_BE(0x1000000, "user5", 0) /* CG Board texture roms */
- ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) )
- ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) )
- ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) )
- ROM_LOAD32_WORD_SWAP( "778a15.24v", 0x800000, 0x400000, CRC(d176ad0d) SHA1(2be755dfa3f60379d396734809bbaaaad49e0db5) )
+ ROM_LOAD32_WORD_SWAP( "778a14.32u", 0x000002, 0x400000, CRC(db0c278d) SHA1(bb9884b6cdcdb707fff7e56e92e2ede062abcfd3) )
+ ROM_LOAD32_WORD_SWAP( "778a13.24u", 0x000000, 0x400000, CRC(47fda9cc) SHA1(4aae01c1f1861b4b12a3f9de6b39eb4d11a9736b) )
+ ROM_LOAD32_WORD_SWAP( "778a16.32v", 0x800002, 0x400000, CRC(6c0f46ea) SHA1(c6b9fbe14e13114a91a5925a0b46496260539687) )
+ ROM_LOAD32_WORD_SWAP( "778a15.24v", 0x800000, 0x400000, CRC(d176ad0d) SHA1(2be755dfa3f60379d396734809bbaaaad49e0db5) )
ROM_REGION(0x80000, "audio", 0) /* 68K Program */
- ROM_LOAD16_WORD_SWAP( "778a08.7s", 0x000000, 0x080000, CRC(6259b4bf) SHA1(d0c38870495c9a07984b4b85e736d6477dd44832) )
+ ROM_LOAD16_WORD_SWAP( "778a08.7s", 0x000000, 0x080000, CRC(6259b4bf) SHA1(d0c38870495c9a07984b4b85e736d6477dd44832) )
ROM_REGION(0x1000000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "778a09.16p", 0x000000, 0x400000, CRC(e8c6fd93) SHA1(dd378b67b3b7dd932e4b39fbf4321e706522247f) )
- ROM_LOAD( "778a10.14p", 0x400000, 0x400000, CRC(c6a0857b) SHA1(976734ba56460fcc090619fbba043a3d888c4f4e) )
- ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
- ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
+ ROM_LOAD( "778a09.16p", 0x000000, 0x400000, CRC(e8c6fd93) SHA1(dd378b67b3b7dd932e4b39fbf4321e706522247f) )
+ ROM_LOAD( "778a10.14p", 0x400000, 0x400000, CRC(c6a0857b) SHA1(976734ba56460fcc090619fbba043a3d888c4f4e) )
+ ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
+ ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) )
ROM_END
ROM_START(terabrst)
ROM_REGION32_BE(0x400000, "user1", 0) /* PowerPC program */
- ROM_LOAD32_WORD_SWAP( "715a02.25p", 0x000000, 0x200000, CRC(070c48b3) SHA1(066cefbd34d8f6476083417471114f782bef97fb) )
- ROM_LOAD32_WORD_SWAP( "715a03.22p", 0x000002, 0x200000, CRC(f77d242f) SHA1(7680e4abcccd549b3f6d1d245f64631fab57e80d) )
+ ROM_LOAD32_WORD_SWAP( "715a02.25p", 0x000000, 0x200000, CRC(070c48b3) SHA1(066cefbd34d8f6476083417471114f782bef97fb) )
+ ROM_LOAD32_WORD_SWAP( "715a03.22p", 0x000002, 0x200000, CRC(f77d242f) SHA1(7680e4abcccd549b3f6d1d245f64631fab57e80d) )
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) )
- ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) )
+ ROM_LOAD32_WORD_SWAP( "715a04.16t", 0x000000, 0x200000, CRC(00d9567e) SHA1(fe372399ad0ae89d557c93c3145b38e3ed0f714d) )
+ ROM_LOAD32_WORD_SWAP( "715a05.14t", 0x000002, 0x200000, CRC(462d53bf) SHA1(0216a84358571de6791365c69a1fa8fe2784148d) )
ROM_REGION32_BE(0x1000000, "user5", 0) /* CG Board texture roms */
- ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) )
- ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) )
+ ROM_LOAD32_WORD_SWAP( "715a14.32u", 0x000002, 0x400000, CRC(bbb36be3) SHA1(c828d0af0546db02e87afe68423b9447db7c7e51) )
+ ROM_LOAD32_WORD_SWAP( "715a13.24u", 0x000000, 0x400000, CRC(dbff58a1) SHA1(f0c60bb2cbf268cfcbdd65606ebb18f1b4839c0e) )
ROM_REGION(0x80000, "audio", 0) /* 68K Program */
- ROM_LOAD16_WORD_SWAP( "715a08.7s", 0x000000, 0x080000, CRC(3aa2f4a5) SHA1(bb43e5f5ef4ac51f228d4d825be66d3c720d51ea) )
+ ROM_LOAD16_WORD_SWAP( "715a08.7s", 0x000000, 0x080000, CRC(3aa2f4a5) SHA1(bb43e5f5ef4ac51f228d4d825be66d3c720d51ea) )
ROM_REGION(0x1000000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "715a09.16p", 0x000000, 0x400000, CRC(65845866) SHA1(d2a63d0deef1901e6fa21b55c5f96e1f781dceda) )
- ROM_LOAD( "715a10.14p", 0x400000, 0x400000, CRC(294fe71b) SHA1(ac5fff5627df1cee4f1e1867377f208b34334899) )
+ ROM_LOAD( "715a09.16p", 0x000000, 0x400000, CRC(65845866) SHA1(d2a63d0deef1901e6fa21b55c5f96e1f781dceda) )
+ ROM_LOAD( "715a10.14p", 0x400000, 0x400000, CRC(294fe71b) SHA1(ac5fff5627df1cee4f1e1867377f208b34334899) )
ROM_REGION(0x20000, "dsp", 0) /* 68K Program */
- ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
+ ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(62fecb78) SHA1(09509be8a947cf2d38e12a6ea755ec0de4aa9bd4) )
ROM_END
/*************************************************************************/
-GAME( 1998, gradius4, 0, hornet, hornet, gradius4, ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, nbapbp, 0, hornet, hornet, nbapbp, ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL( 1998, terabrst, 0, hornet_2board, hornet, terabrst, ROT0, "Konami", "Teraburst", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscope, 0, hornet_2board, sscope, sscope, ROT0, "Konami", "Silent Scope (ver UAB)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscopea, sscope, hornet_2board, sscope, sscope, ROT0, "Konami", "Silent Scope (ver UAA)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscope2, 0, hornet_2board_v2, sscope, sscope2, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAME( 1998, gradius4, 0, hornet, hornet, hornet, ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1998, nbapbp, 0, hornet, hornet, hornet, ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAMEL( 1998, terabrst, 0, hornet_2board, hornet, hornet_2board, ROT0, "Konami", "Teraburst", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscope, 0, hornet_2board, sscope, hornet_2board, ROT0, "Konami", "Silent Scope (ver UAB)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscopea, sscope, hornet_2board, sscope, hornet_2board, ROT0, "Konami", "Silent Scope (ver UAA)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscope2, 0, hornet_2board_v2, sscope, hornet_2board, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index 3811a98b428..ca830573e93 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -219,7 +219,7 @@ Notes:
#include "itech32.h"
#include "sound/es5506.h"
#include "machine/timekpr.h"
-#include "memconv.h"
+#include "devconv.h"
#define FULL_LOGGING 0
@@ -766,14 +766,14 @@ static WRITE32_HANDLER( int1_ack32_w )
int1_ack_w(machine, offset, data, mem_mask);
}
-static WRITE32_HANDLER( timekeeper_0_32be_w )
+static WRITE32_DEVICE_HANDLER( timekeeper_32be_w )
{
- write32be_with_write8_handler( timekeeper_0_w, machine, offset, data, mem_mask );
+ write32be_with_write8_device_handler( timekeeper_w, device, offset, data, mem_mask );
}
-static READ32_HANDLER( timekeeper_0_32be_r )
+static READ32_DEVICE_HANDLER( timekeeper_32be_r )
{
- return read32be_with_read8_handler( timekeeper_0_r, machine, offset, mem_mask );
+ return read32be_with_read8_device_handler( timekeeper_r, device, offset, mem_mask );
}
@@ -820,14 +820,6 @@ static NVRAM_HANDLER( itech020 )
}
-static NVRAM_HANDLER( tournament )
-{
- NVRAM_HANDLER_CALL(itech020);
- NVRAM_HANDLER_CALL(timekeeper_0);
-}
-
-
-
/*************************************
*
* Main CPU memory handlers
@@ -1699,7 +1691,7 @@ static MACHINE_DRIVER_START( tourny )
/* basic machine hardware */
MDRV_IMPORT_FROM(sftm)
- MDRV_NVRAM_HANDLER( tournament ) /* Make Tournament sets load/store the Timekeeper info */
+ MDRV_DEVICE_ADD( "m48t02", M48T02 )
MACHINE_DRIVER_END
@@ -3892,13 +3884,18 @@ static DRIVER_INIT( wcbowln ) /* PIC 16C54 labeled as ITBWL-3 */
init_shuffle_bowl_common(machine, 0x1116);
}
+static void install_timekeeper(running_machine *machine)
+{
+ const device_config *device = device_list_find_by_tag(machine->config->devicelist, M48T02, "m48t02");
+ memory_install_readwrite32_device_handler(device, 0, ADDRESS_SPACE_PROGRAM, 0x681000, 0x6817ff, 0, 0, timekeeper_32be_r, timekeeper_32be_w);
+}
+
static DRIVER_INIT( wcbowlt ) /* PIC 16C54 labeled as ITBWL-3 */
{
/* Tournament Version, Same protection memory address as WCB Deluxe, but uses the standard WCB pic ITBWL-3 */
init_shuffle_bowl_common(machine, 0x111a);
- timekeeper_init( machine, 0, TIMEKEEPER_M48T02, NULL );
- memory_install_readwrite32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x681000, 0x6817ff, 0, 0, timekeeper_0_32be_r, timekeeper_0_32be_w);
+ install_timekeeper(machine);
}
static void init_gt_common(running_machine *machine)
@@ -3946,8 +3943,8 @@ static DRIVER_INIT( aamat )
Tournament Version - So install needed handler for the TimeKeeper ram
*/
DRIVER_INIT_CALL(aama);
- timekeeper_init( machine, 0, TIMEKEEPER_M48T02, NULL );
- memory_install_readwrite32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x681000, 0x6817ff, 0, 0, timekeeper_0_32be_r, timekeeper_0_32be_w);
+
+ install_timekeeper(machine);
}
diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c
index 072c2521253..ee0e2d73a5c 100644
--- a/src/mame/drivers/ksys573.c
+++ b/src/mame/drivers/ksys573.c
@@ -266,8 +266,6 @@ static NVRAM_HANDLER( konami573 )
{
int i;
- NVRAM_HANDLER_CALL(timekeeper_0);
-
if( nvram_handler_security_cart_0 != NULL )
{
NVRAM_HANDLER_CALL(security_cart_0);
@@ -1299,7 +1297,7 @@ static ADDRESS_MAP_START( konami573_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x1f500000, 0x1f500003) AM_READWRITE( control_r, control_w ) // Konami can't make a game without a "control" register.
AM_RANGE(0x1f560000, 0x1f560003) AM_WRITE( atapi_reset_w )
AM_RANGE(0x1f5c0000, 0x1f5c0003) AM_WRITENOP // watchdog?
- AM_RANGE(0x1f620000, 0x1f623fff) AM_READWRITE8(timekeeper_0_r, timekeeper_0_w, 0x00ff00ff)
+ AM_RANGE(0x1f620000, 0x1f623fff) AM_DEVREADWRITE8(M48T58, "m48t58", timekeeper_r, timekeeper_w, 0x00ff00ff)
AM_RANGE(0x1f680000, 0x1f68001f) AM_READWRITE(mb89371_r, mb89371_w)
AM_RANGE(0x1f6a0000, 0x1f6a0003) AM_READWRITE( security_r, security_w )
AM_RANGE(0x1f800000, 0x1f8003ff) AM_RAM /* scratchpad */
@@ -1503,8 +1501,6 @@ static DRIVER_INIT( konami573 )
m_p_timer_root[i] = timer_alloc(root_finished, NULL);
}
- timekeeper_init( machine, 0, TIMEKEEPER_M48T58, memory_region( machine, "user11" ) );
-
state_save_register_global( m_n_security_control );
security_cart_init( machine, 0, "user2", "user9" );
@@ -2722,6 +2718,11 @@ static DRIVER_INIT( salarymc )
state_save_register_global( salarymc_lamp_clk );
}
+static const timekeeper_config timekeeper_intf =
+{
+ "m48t58"
+};
+
static MACHINE_DRIVER_START( konami573 )
/* basic machine hardware */
MDRV_CPU_ADD("main", PSXCPU, XTAL_67_7376MHz )
@@ -2756,6 +2757,9 @@ static MACHINE_DRIVER_START( konami573 )
MDRV_SOUND_ADD( "cdda", CDDA, 0 )
MDRV_SOUND_ROUTE( 0, "left", 1.0 )
MDRV_SOUND_ROUTE( 1, "right", 1.0 )
+
+ MDRV_DEVICE_ADD( "m48t58", M48T58 )
+ MDRV_DEVICE_CONFIG( timekeeper_intf )
MACHINE_DRIVER_END
static INPUT_PORTS_START( konami573 )
@@ -3500,7 +3504,7 @@ ROM_START( ddr4mp )
ROM_REGION( 0x000008, "user10", 0 ) /* game security cart id */
ROM_LOAD( "gca34ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
- ROM_REGION( 0x002000, "user11", 0 ) /* timekeeper */
+ ROM_REGION( 0x002000, "m48t58", 0 ) /* timekeeper */
ROM_LOAD( "gca34ja.22h", 0x000000, 0x002000, CRC(80575c1f) SHA1(a0594ca0f75bc7d49b645e835e9fa48a73c3c9c7) )
DISK_REGION( "cdrom0" )
@@ -3529,7 +3533,7 @@ ROM_START( ddr4mps )
ROM_REGION( 0x000008, "user10", 0 ) /* game security cart id */
ROM_LOAD( "gca34jb.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
- ROM_REGION( 0x002000, "user11", 0 ) /* timekeeper */
+ ROM_REGION( 0x002000, "m48t58", 0 ) /* timekeeper */
ROM_LOAD( "gca34jb.22h", 0x000000, 0x002000, CRC(bc6c8bd7) SHA1(10ceec5c7bc5ca9fca88f3c083a7d97012982079) )
DISK_REGION( "cdrom0" )
@@ -3708,7 +3712,7 @@ ROM_START( drmn )
ROM_LOAD( "gq881ja.31h", 0xc00000, 0x200000, CRC(a5b86ece) SHA1(9696f0c512501574bae6e436306675894bb2352e) )
ROM_LOAD( "gq881ja.27h", 0xe00000, 0x200000, CRC(fc0b94c1) SHA1(967d374288db757d161d0e9e8e396a1176071c5f) )
- ROM_REGION( 0x002000, "user11", 0 ) /* timekeeper */
+ ROM_REGION( 0x002000, "m48t58", 0 ) /* timekeeper */
ROM_LOAD( "gq881ja.22h", 0x000000, 0x002000, CRC(e834d5ec) SHA1(1c845811e43d7dfec657da288b5a38b8bc9c8366) )
DISK_REGION( "cdrom0" )
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index 5588759c53c..f1051516af6 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -89,13 +89,6 @@ static MACHINE_START( midzeus )
}
-static MACHINE_START( midzeus2 )
-{
- timekeeper_init(machine, 0, TIMEKEEPER_M48T35, NULL);
- MACHINE_START_CALL(midzeus);
-}
-
-
static MACHINE_RESET( midzeus )
{
memcpy(ram_base, memory_region(machine, "user1"), 0x40000*4);
@@ -161,18 +154,18 @@ static WRITE32_HANDLER( cmos_protect_w )
*
*************************************/
-static READ32_HANDLER( timekeeper_r )
+static READ32_DEVICE_HANDLER( zeus2_timekeeper_r )
{
- return timekeeper_0_r(machine, offset) | 0xffffff00;
+ return timekeeper_r(device, offset) | 0xffffff00;
}
-static WRITE32_HANDLER( timekeeper_w )
+static WRITE32_DEVICE_HANDLER( zeus2_timekeeper_w )
{
if (bitlatch[2] && !cmos_protected)
- timekeeper_0_w(machine, offset, data);
+ timekeeper_w(device, offset, data);
else
- logerror("%06X:timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", activecpu_get_pc(), bitlatch[2], cmos_protected);
+ logerror("%06X:zeus2_timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", activecpu_get_pc(), bitlatch[2], cmos_protected);
cmos_protected = TRUE;
}
@@ -201,8 +194,6 @@ static WRITE32_HANDLER( zpram_w )
static NVRAM_HANDLER( midzeus2 )
{
- NVRAM_HANDLER_CALL(timekeeper_0);
-
if (read_or_write)
mame_fwrite(file, zpram, zpram_size);
else if (file)
@@ -612,7 +603,7 @@ static ADDRESS_MAP_START( zeus2_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x990000, 0x99000f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w)
AM_RANGE(0x9c0000, 0x9c000f) AM_READWRITE(analog_r, analog_w)
AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog?
- AM_RANGE(0x9f0000, 0x9f7fff) AM_READWRITE(timekeeper_r, timekeeper_w)
+ AM_RANGE(0x9f0000, 0x9f7fff) AM_DEVREADWRITE(M48T35, "m48t35", zeus2_timekeeper_r, zeus2_timekeeper_w)
AM_RANGE(0x9f8000, 0x9f8000) AM_WRITE(cmos_protect_w)
AM_RANGE(0xa00000, 0xbfffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0xc00000, 0xffffff) AM_ROMBANK(1) AM_REGION("user2", 0)
@@ -1143,7 +1134,7 @@ static MACHINE_DRIVER_START( midzeus2 )
MDRV_CPU_PROGRAM_MAP(zeus2_map,0)
MDRV_CPU_VBLANK_INT("main", display_irq)
- MDRV_MACHINE_START(midzeus2)
+ MDRV_MACHINE_START(midzeus)
MDRV_MACHINE_RESET(midzeus)
MDRV_NVRAM_HANDLER(midzeus2)
@@ -1157,6 +1148,8 @@ static MACHINE_DRIVER_START( midzeus2 )
/* sound hardware */
MDRV_IMPORT_FROM(dcs2_audio_2104)
+
+ MDRV_DEVICE_ADD( "m48t35", M48T35 )
MACHINE_DRIVER_END
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index 05589e7755f..2dcfc0d5f23 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -226,7 +226,6 @@ Thrill Drive 713A13 - 713A14 -
static UINT8 led_reg0, led_reg1;
static UINT32 *work_ram;
-static UINT8 *backup_ram;
static WRITE32_HANDLER( paletteram32_w )
@@ -970,7 +969,7 @@ static ADDRESS_MAP_START( nwktr_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
AM_RANGE(0x7d000000, 0x7d00ffff) AM_READ(sysreg_r)
AM_RANGE(0x7d010000, 0x7d01ffff) AM_WRITE(sysreg_w)
- AM_RANGE(0x7d020000, 0x7d021fff) AM_READWRITE8(timekeeper_0_r, timekeeper_0_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
+ AM_RANGE(0x7d020000, 0x7d021fff) AM_DEVREADWRITE8(M48T58, "m48t58", timekeeper_r, timekeeper_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
AM_RANGE(0x7d030000, 0x7d030007) AM_READ(K056800_host_r)
AM_RANGE(0x7d030000, 0x7d030007) AM_WRITE(K056800_host_w)
AM_RANGE(0x7d030008, 0x7d03000f) AM_WRITE(K056800_host_w)
@@ -1091,6 +1090,11 @@ static MACHINE_RESET( nwktr )
cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE);
}
+static const timekeeper_config timekeeper_intf =
+{
+ "m48t58"
+};
+
static MACHINE_DRIVER_START( nwktr )
/* basic machine hardware */
@@ -1108,7 +1112,6 @@ static MACHINE_DRIVER_START( nwktr )
MDRV_MACHINE_START(nwktr)
MDRV_MACHINE_RESET(nwktr)
- MDRV_NVRAM_HANDLER( timekeeper_0 )
MDRV_3DFX_VOODOO_1_ADD("voodoo", STD_VOODOO_1_CLOCK, 2, "main")
MDRV_3DFX_VOODOO_TMU_MEMORY(0, 2)
@@ -1133,6 +1136,8 @@ static MACHINE_DRIVER_START( nwktr )
MDRV_SOUND_ROUTE(0, "left", 1.0)
MDRV_SOUND_ROUTE(1, "right", 1.0)
+ MDRV_DEVICE_ADD( "m48t58", M48T58 )
+ MDRV_DEVICE_CONFIG( timekeeper_intf )
MACHINE_DRIVER_END
/*****************************************************************************/
@@ -1145,14 +1150,13 @@ static void sound_irq_callback(running_machine *machine, int irq)
cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ2, PULSE_LINE);
}
-static void init_nwktr(running_machine *machine)
+static DRIVER_INIT(nwktr)
{
init_konami_cgboard(1, CGBOARD_TYPE_NWKTR);
set_cgboard_texture_bank(0, 5, memory_region(machine, "user5"));
sharc_dataram = auto_malloc(0x100000);
led_reg0 = led_reg1 = 0x7f;
- timekeeper_init(machine, 0, TIMEKEEPER_M48T58, backup_ram);
K056800_init(sound_irq_callback);
K033906_init();
@@ -1164,118 +1168,6 @@ static void init_nwktr(running_machine *machine)
lanc2_init();
}
-static DRIVER_INIT(thrilld)
-{
- int i;
- UINT16 checksum;
-
- backup_ram = auto_malloc(0x2000);
- memset(backup_ram, 0, 0x2000);
-
- /* RTC data */
- backup_ram[0x00] = 0x47; // 'G'
- backup_ram[0x01] = 0x43; // 'C'
- backup_ram[0x02] = 0x36; // '6'
- backup_ram[0x03] = 0x37; // '7'
- backup_ram[0x04] = 0x36; // '6'
- backup_ram[0x05] = 0x00; //
- backup_ram[0x06] = 0x00; // ?
- backup_ram[0x07] = 0x00; // ?
- backup_ram[0x08] = 0x19; //
- backup_ram[0x09] = 0x99; // 1999
- backup_ram[0x0a] = 0x4a; // 'J'
- backup_ram[0x0b] = 0x41; // 'A'
- backup_ram[0x0c] = 0x41; //
- backup_ram[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i+=2)
- {
- checksum += (backup_ram[i] << 8) | (backup_ram[i+1]);
- checksum &= 0xffff;
- }
- checksum = -1 - checksum;
-
- backup_ram[0x0e] = (checksum >> 8) & 0xff; // checksum
- backup_ram[0x0f] = (checksum >> 0) & 0xff; // checksum
-
- init_nwktr(machine);
-}
-
-static DRIVER_INIT(racingj)
-{
- int i;
- UINT32 checksum;
-
- backup_ram = auto_malloc(0x2000);
- memset(backup_ram, 0, 0x2000);
-
- /* RTC data */
- backup_ram[0x00] = 0x47; // 'G'
- backup_ram[0x01] = 0x6e; // 'n'
- backup_ram[0x02] = 0x36; // '6'
- backup_ram[0x03] = 0x37; // '7'
- backup_ram[0x04] = 0x36; // '6'
- backup_ram[0x05] = 0x00; //
- backup_ram[0x06] = 0x00; //
- backup_ram[0x07] = 0x00; //
- backup_ram[0x08] = 0x00; //
- backup_ram[0x09] = 0x00; //
- backup_ram[0x0a] = 0x4a; // 'J'
- backup_ram[0x0b] = 0x41; // 'A'
- backup_ram[0x0c] = 0x45; // 'E'
- backup_ram[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i+=2)
- {
- checksum += (backup_ram[i] << 8) | (backup_ram[i+1]);
- checksum &= 0xffff;
- }
- checksum = -1 - checksum;
- backup_ram[0x0e] = (checksum >> 8) & 0xff; // checksum
- backup_ram[0x0f] = (checksum >> 0) & 0xff; // checksum
-
- init_nwktr(machine);
-}
-
-static DRIVER_INIT(racingj2)
-{
- int i;
- UINT32 checksum;
-
- backup_ram = auto_malloc(0x2000);
- memset(backup_ram, 0, 0x2000);
-
- /* RTC data */
- backup_ram[0x00] = 0x47; // 'G'
- backup_ram[0x01] = 0x6e; // 'n'
- backup_ram[0x02] = 0x38; // '8'
- backup_ram[0x03] = 0x38; // '8'
- backup_ram[0x04] = 0x38; // '8'
- backup_ram[0x05] = 0x00; //
- backup_ram[0x06] = 0x00; //
- backup_ram[0x07] = 0x00; //
- backup_ram[0x08] = 0x00; //
- backup_ram[0x09] = 0x00; //
- backup_ram[0x0a] = 0x4a; // 'J'
- backup_ram[0x0b] = 0x41; // 'A'
- backup_ram[0x0c] = 0x45; // 'E'
- backup_ram[0x0d] = 0x00; //
-
- checksum = 0;
- for (i=0; i < 14; i+=2)
- {
- checksum += (backup_ram[i] << 8) | (backup_ram[i+1]);
- checksum &= 0xffff;
- }
- checksum = -1 - checksum;
- backup_ram[0x0e] = (checksum >> 8) & 0xff; // checksum
- backup_ram[0x0f] = (checksum >> 0) & 0xff; // checksum
-
- init_nwktr(machine);
-}
-
/*****************************************************************************/
@@ -1284,19 +1176,22 @@ ROM_START(racingj)
ROM_LOAD16_WORD_SWAP("676nc01.bin", 0x000000, 0x200000, CRC(690346b5) SHA1(157ab6788382ef4f5a8772f08819f54d0856fcc8))
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP("676a04.bin", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f))
- ROM_LOAD32_WORD_SWAP("676a05.bin", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5))
+ ROM_LOAD32_WORD_SWAP("676a04.bin", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f))
+ ROM_LOAD32_WORD_SWAP("676a05.bin", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5))
ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board texture roms */
- ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
- ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
+ ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
+ ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
ROM_REGION(0x80000, "audio", 0) /* 68k program roms */
- ROM_LOAD16_WORD_SWAP( "676gna08.7s", 0x000000, 0x080000, CRC(8973f6f2) SHA1(f5648a7e0205f7e979ccacbb52936809ce14a184) )
+ ROM_LOAD16_WORD_SWAP( "676gna08.7s", 0x000000, 0x080000, CRC(8973f6f2) SHA1(f5648a7e0205f7e979ccacbb52936809ce14a184) )
ROM_REGION(0x1000000, "rf", 0) /* other roms (textures?) */
- ROM_LOAD( "676a09.16p", 0x000000, 0x400000, CRC(f85c8dc6) SHA1(8b302c80be309b5cc68b75945fcd7b87a56a4c9b) )
- ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) )
+ ROM_LOAD( "676a09.16p", 0x000000, 0x400000, CRC(f85c8dc6) SHA1(8b302c80be309b5cc68b75945fcd7b87a56a4c9b) )
+ ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(47e1628c) SHA1(7c42d06ae2f2cd24d083890f333552cbf4f1d3c9) )
ROM_END
ROM_START(racingj2)
@@ -1304,20 +1199,23 @@ ROM_START(racingj2)
ROM_LOAD16_WORD_SWAP("888a01.27p", 0x000000, 0x200000, CRC(d077890a) SHA1(08b252324cf46fbcdb95e8f9312287920cd87c5d))
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP( "676a04.bin", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f))
- ROM_LOAD32_WORD_SWAP( "676a05.bin", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5))
+ ROM_LOAD32_WORD_SWAP( "676a04.bin", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f))
+ ROM_LOAD32_WORD_SWAP( "676a05.bin", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5))
ROM_LOAD32_WORD_SWAP( "888a06.12t", 0x400000, 0x200000, CRC(00cbec4d) SHA1(1ce7807d86e90edbf4eecba462a27c725f5ad862))
ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */
- ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) )
- ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) )
+ ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) )
+ ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) )
ROM_REGION(0x80000, "audio", 0) /* 68k program roms */
- ROM_LOAD16_WORD_SWAP( "888a08.7s", 0x000000, 0x080000, CRC(55fbea65) SHA1(ad953f758181731efccadcabc4326e6634c359e8) )
+ ROM_LOAD16_WORD_SWAP( "888a08.7s", 0x000000, 0x080000, CRC(55fbea65) SHA1(ad953f758181731efccadcabc4326e6634c359e8) )
ROM_REGION(0x1000000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) )
- ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) )
+ ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) )
+ ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f691f5ab) SHA1(e81f652c5caa2caa8bd1c6d6db488d849bda058e) )
ROM_END
ROM_START(thrilld)
@@ -1325,23 +1223,26 @@ ROM_START(thrilld)
ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed))
ROM_REGION32_BE(0x800000, "user2", 0) /* Data roms */
- ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a))
- ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69))
+ ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a))
+ ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69))
ROM_REGION32_BE(0x800000, "user5", 0) /* CG Board Texture roms */
- ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
- ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
+ ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
+ ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
ROM_REGION(0x80000, "audio", 0) /* 68k program roms */
- ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
+ ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
ROM_REGION(0x1000000, "rf", 0) /* PCM sample roms */
- ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
- ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
+ ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
+ ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
+
+ ROM_REGION(0x2000, "m48t58",0)
+ ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(5d8fbcb2) SHA1(74ad91544d2a200cf599a565005476623075e7d6) )
ROM_END
/*****************************************************************************/
-GAME( 1998, racingj, 0, nwktr, nwktr, racingj, ROT0, "Konami", "Racing Jam", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1999, racingj2, racingj,nwktr, nwktr, racingj2, ROT0, "Konami", "Racing Jam: Chapter 2", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1998, thrilld, 0, nwktr, nwktr, thrilld, ROT0, "Konami", "Thrill Drive", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND )
+GAME( 1998, racingj, 0, nwktr, nwktr, nwktr, ROT0, "Konami", "Racing Jam", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 1999, racingj2, racingj, nwktr, nwktr, nwktr, ROT0, "Konami", "Racing Jam: Chapter 2", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 1998, thrilld, 0, nwktr, nwktr, nwktr, ROT0, "Konami", "Thrill Drive", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index 8218cfb6bcb..852c50cb037 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -276,62 +276,35 @@ static READ16_HANDLER( slapshot_msb_sound_r )
MEMORY STRUCTURES
***********************************************************/
-static ADDRESS_MAP_START( slapshot_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
- AM_RANGE(0x500000, 0x50ffff) AM_READ(SMH_RAM) /* main RAM */
- AM_RANGE(0x600000, 0x60ffff) AM_READ(SMH_RAM) /* sprite ram */
- AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM) /* debugging */
- AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */
- AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_word_r)
- AM_RANGE(0x900000, 0x907fff) AM_READ(color_ram_word_r) /* 8bpg palette */
- AM_RANGE(0xa00000, 0xa03fff) AM_READ8(timekeeper_0_r, 0xff00) /* nvram (only low bytes used) */
- AM_RANGE(0xc00000, 0xc0000f) AM_READ(TC0640FIO_halfword_byteswap_r)
- AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
- AM_RANGE(0xd00000, 0xd00003) AM_READ(slapshot_msb_sound_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( slapshot_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x500000, 0x50ffff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x600000, 0x60ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
- AM_RANGE(0x700000, 0x701fff) AM_WRITE(SMH_RAM) AM_BASE(&taito_sprite_ext) AM_SIZE(&taito_spriteext_size)
- AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */
- AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_word_w)
- AM_RANGE(0x900000, 0x907fff) AM_WRITE(color_ram_word_w) AM_BASE(&color_ram)
- AM_RANGE(0xa00000, 0xa03fff) AM_WRITE8(timekeeper_0_w, 0xff00)
+static ADDRESS_MAP_START( slapshot_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM
+ AM_RANGE(0x500000, 0x50ffff) AM_RAM /* main RAM */
+ AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprite ram */
+ AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE(&taito_sprite_ext) AM_SIZE(&taito_spriteext_size) /* debugging */
+ AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemaps */
+ AM_RANGE(0x830000, 0x83002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w)
+ AM_RANGE(0x900000, 0x907fff) AM_READWRITE(color_ram_word_r, color_ram_word_w) AM_BASE(&color_ram) /* 8bpg palette */
+ AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8(MK48T08, "mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_swap_w) /* priority chip */
- AM_RANGE(0xc00000, 0xc0000f) AM_WRITE(TC0640FIO_halfword_byteswap_w)
- AM_RANGE(0xd00000, 0xd00003) AM_WRITE(slapshot_msb_sound_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( opwolf3_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
- AM_RANGE(0x500000, 0x50ffff) AM_READ(SMH_RAM) /* main RAM */
- AM_RANGE(0x600000, 0x60ffff) AM_READ(SMH_RAM) /* sprite ram */
- AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM) /* debugging */
- AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */
- AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_word_r)
- AM_RANGE(0x900000, 0x907fff) AM_READ(color_ram_word_r) /* 8bpg palette */
- AM_RANGE(0xa00000, 0xa03fff) AM_READ8(timekeeper_0_r, 0xff00) /* nvram (only low bytes used) */
- AM_RANGE(0xc00000, 0xc0000f) AM_READ(TC0640FIO_halfword_byteswap_r)
+ AM_RANGE(0xc00000, 0xc0000f) AM_READWRITE(TC0640FIO_halfword_byteswap_r, TC0640FIO_halfword_byteswap_w)
AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
- AM_RANGE(0xd00000, 0xd00003) AM_READ(slapshot_msb_sound_r)
- AM_RANGE(0xe00000, 0xe00007) AM_READ(opwolf3_adc_r)
+ AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( opwolf3_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x500000, 0x50ffff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x600000, 0x60ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
- AM_RANGE(0x700000, 0x701fff) AM_WRITE(SMH_RAM) AM_BASE(&taito_sprite_ext) AM_SIZE(&taito_spriteext_size)
- AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */
- AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_word_w)
- AM_RANGE(0x900000, 0x907fff) AM_WRITE(color_ram_word_w) AM_BASE(&color_ram)
- AM_RANGE(0xa00000, 0xa03fff) AM_WRITE8(timekeeper_0_w, 0xff00)
+static ADDRESS_MAP_START( opwolf3_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x1fffff) AM_ROM
+ AM_RANGE(0x500000, 0x50ffff) AM_RAM /* main RAM */
+ AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprite ram */
+ AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE(&taito_sprite_ext) AM_SIZE(&taito_spriteext_size) /* debugging */
+ AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w) /* tilemaps */
+ AM_RANGE(0x830000, 0x83002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w)
+ AM_RANGE(0x900000, 0x907fff) AM_READWRITE(color_ram_word_r, color_ram_word_w) AM_BASE(&color_ram) /* 8bpg palette */
+ AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8(MK48T08, "mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_swap_w) /* priority chip */
- AM_RANGE(0xc00000, 0xc0000f) AM_WRITE(TC0640FIO_halfword_byteswap_w)
- AM_RANGE(0xd00000, 0xd00003) AM_WRITE(slapshot_msb_sound_w)
- AM_RANGE(0xe00000, 0xe00007) AM_WRITE(opwolf3_adc_req_w)
+ AM_RANGE(0xc00000, 0xc0000f) AM_READWRITE(TC0640FIO_halfword_byteswap_r, TC0640FIO_halfword_byteswap_w)
+ AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
+ AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
+ AM_RANGE(0xe00000, 0xe00007) AM_READWRITE(opwolf3_adc_r, opwolf3_adc_req_w)
ADDRESS_MAP_END
/***************************************************************************/
@@ -555,7 +528,7 @@ static MACHINE_DRIVER_START( slapshot )
/* basic machine hardware */
MDRV_CPU_ADD("main", M68000, 14346000) /* 28.6860 MHz / 2 ??? */
- MDRV_CPU_PROGRAM_MAP(slapshot_readmem,slapshot_writemem)
+ MDRV_CPU_PROGRAM_MAP(slapshot_map,0)
MDRV_CPU_VBLANK_INT("main", slapshot_interrupt)
MDRV_CPU_ADD("audio", Z80,32000000/8) /* 4 MHz */
@@ -564,7 +537,6 @@ static MACHINE_DRIVER_START( slapshot )
MDRV_INTERLEAVE(10)
MDRV_MACHINE_START(slapshot)
- MDRV_NVRAM_HANDLER(timekeeper_0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -590,13 +562,15 @@ static MACHINE_DRIVER_START( slapshot )
MDRV_SOUND_ROUTE(0, "right", 0.25)
MDRV_SOUND_ROUTE(1, "left", 1.0)
MDRV_SOUND_ROUTE(2, "right", 1.0)
+
+ MDRV_DEVICE_ADD( "mk48t08", MK48T08 )
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( opwolf3 )
/* basic machine hardware */
MDRV_CPU_ADD("main", M68000, 14346000) /* 28.6860 MHz / 2 ??? */
- MDRV_CPU_PROGRAM_MAP(opwolf3_readmem,opwolf3_writemem)
+ MDRV_CPU_PROGRAM_MAP(opwolf3_map,0)
MDRV_CPU_VBLANK_INT("main", slapshot_interrupt)
MDRV_CPU_ADD("audio", Z80,32000000/8) /* 4 MHz */
@@ -604,8 +578,6 @@ static MACHINE_DRIVER_START( opwolf3 )
MDRV_INTERLEAVE(10)
- MDRV_NVRAM_HANDLER(timekeeper_0)
-
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
MDRV_SCREEN_REFRESH_RATE(60)
@@ -630,6 +602,8 @@ static MACHINE_DRIVER_START( opwolf3 )
MDRV_SOUND_ROUTE(0, "right", 0.25)
MDRV_SOUND_ROUTE(1, "left", 1.0)
MDRV_SOUND_ROUTE(2, "right", 1.0)
+
+ MDRV_DEVICE_ADD( "mk48t08", MK48T08 )
MACHINE_DRIVER_END
/***************************************************************************
@@ -731,8 +705,6 @@ static DRIVER_INIT( slapshot )
int size=memory_region_length(machine, "gfx2");
int data;
- timekeeper_init( machine, 0, TIMEKEEPER_MK48T08, NULL );
-
offset = size/2;
for (i = size/2+size/4; i<size; i++)
{
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 1583da1bab6..4d823924315 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -37,8 +37,6 @@
-static UINT8 backup_ram[0x2000];
-
static VIDEO_UPDATE(viper)
{
const device_config *device = device_list_find_by_tag(screen->machine->config->devicelist, VOODOO_GRAPHICS, "voodoo");
@@ -561,7 +559,7 @@ static ADDRESS_MAP_START(viper_map, ADDRESS_SPACE_PROGRAM, 64)
AM_RANGE(0xfee00000, 0xfeefffff) AM_READWRITE(pci_config_data_r, pci_config_data_w)
AM_RANGE(0xff300000, 0xff300fff) AM_DEVREADWRITE(IDE_CONTROLLER, "ide", ata_r, ata_w)
AM_RANGE(0xffe10000, 0xffe10007) AM_READ(unk1_r)
- AM_RANGE(0xffe30000, 0xffe31fff) AM_READWRITE8(timekeeper_0_r, timekeeper_0_w, U64(0xffffffffffffffff))
+ AM_RANGE(0xffe30000, 0xffe31fff) AM_DEVREADWRITE8(M48T58,"m48t58",timekeeper_r, timekeeper_w, U64(0xffffffffffffffff))
AM_RANGE(0xffe40000, 0xffe4000f) AM_NOP
AM_RANGE(0xffe50000, 0xffe50007) AM_WRITE(unk2_w)
AM_RANGE(0xffe80000, 0xffe80007) AM_WRITE(unk1a_w)
@@ -592,6 +590,11 @@ static MACHINE_RESET(viper)
devtag_reset(machine, IDE_CONTROLLER, "ide");
}
+static const timekeeper_config timekeeper_intf =
+{
+ "m48t58"
+};
+
static MACHINE_DRIVER_START(viper)
/* basic machine hardware */
@@ -602,8 +605,6 @@ static MACHINE_DRIVER_START(viper)
MDRV_MACHINE_RESET(viper)
- MDRV_NVRAM_HANDLER(timekeeper_0)
-
MDRV_IDE_CONTROLLER_ADD("ide", ide_interrupt)
MDRV_3DFX_VOODOO_3_ADD("voodoo", STD_VOODOO_3_CLOCK, 16, "main")
@@ -621,6 +622,8 @@ static MACHINE_DRIVER_START(viper)
/* sound hardware */
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
+ MDRV_DEVICE_ADD( "m48t58", M48T58 )
+ MDRV_DEVICE_CONFIG( timekeeper_intf )
MACHINE_DRIVER_END
/*****************************************************************************/
@@ -639,16 +642,9 @@ static const struct pci_device_info voodoo3 =
static DRIVER_INIT(viper)
{
- UINT8 *nvram;
-
pci_init();
pci_add_device(0, 0, &mpc8240);
pci_add_device(0, 12, &voodoo3);
-
- timekeeper_init(machine, 0, TIMEKEEPER_M48T58, backup_ram);
-
- nvram = memory_region(machine, "user2");
- memcpy(backup_ram, nvram, 0x2000);
}
static DRIVER_INIT(vipercf)
@@ -661,35 +657,6 @@ static DRIVER_INIT(vipercf)
memory_install_readwrite64_device_handler( ide, 0, ADDRESS_SPACE_PROGRAM, 0xff200000, 0xff200fff, 0, 0, cf_card_r, cf_card_w );
}
-static DRIVER_INIT(ppp2nd)
-{
- DRIVER_INIT_CALL(viper);
-
- /*
- backup_ram[0x0000] = 0x50; // P
- backup_ram[0x0001] = 0x33; // 3
- backup_ram[0x0002] = 0x5f; // _
- backup_ram[0x0003] = 0x32; // 2
- backup_ram[0x0004] = 0x6e; // n
- backup_ram[0x0005] = 0x64; // d
- backup_ram[0x0006] = 0x4d; // M
- backup_ram[0x0007] = 0x49; // I
- backup_ram[0x0008] = 0x58; // X
- backup_ram[0x0009] = 0x00; //
- backup_ram[0x000a] = 0x00; //
- backup_ram[0x000b] = 0x00; //
- backup_ram[0x000c] = 0x00; //
- backup_ram[0x000d] = 0x00; //
- backup_ram[0x000e] = 0x00; //
- backup_ram[0x000f] = 0x00; //
-
- backup_ram[0x0100] = 0x39;
- backup_ram[0x0101] = 0x89;
- backup_ram[0x0102] = 0x3a;
- backup_ram[0x0103] = 0xaa;
- */
-}
-
/*****************************************************************************/
@@ -705,7 +672,7 @@ static DRIVER_INIT(ppp2nd)
ROM_START(kviper)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
ROM_END
@@ -713,243 +680,243 @@ ROM_END
ROM_START(ppp2nd)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "ppp2nd", 0, MD5(06012243d4b64ebd9b81e9781fb5624d) SHA1(54b45e2df3f4239191000900181a94227a351c67))
+ DISK_IMAGE( "ppp2nd", 0, MD5(06012243d4b64ebd9b81e9781fb5624d) SHA1(54b45e2df3f4239191000900181a94227a351c67))
ROM_END
/* Viper games with Compact Flash card */
ROM_START(boxingm)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(c24e29fc) SHA1(efb6ecaf25cbdf9d8dfcafa85e38a195fa5ff6c4))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(c24e29fc) SHA1(efb6ecaf25cbdf9d8dfcafa85e38a195fa5ff6c4))
DISK_REGION( "ide" )
- DISK_IMAGE( "a45jaa02", 0, MD5(db0e9de39e2b4e6bd9f6f768472ab24a) SHA1(046c766fdb1b6607e794c598d5d603215b8e81a3) )
+ DISK_IMAGE( "a45jaa02", 0, MD5(db0e9de39e2b4e6bd9f6f768472ab24a) SHA1(046c766fdb1b6607e794c598d5d603215b8e81a3) )
ROM_END
ROM_START(code1d)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "gk922d02", 0, MD5(c2713080273300a963fbf96dc22f70d7) SHA1(fcf451e8d49a93ca25a2177f2eb014da6ca6bcb3) )
+ DISK_IMAGE( "gk922d02", 0, MD5(c2713080273300a963fbf96dc22f70d7) SHA1(fcf451e8d49a93ca25a2177f2eb014da6ca6bcb3) )
ROM_END
ROM_START(code1db)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "gk922b02", 0, MD5(c1a9b406300c2e258be1cca00746ad6c) SHA1(ce949cdbe16ff8539e7fa46ccc58a06a90c7edde) )
+ DISK_IMAGE( "gk922b02", 0, MD5(c1a9b406300c2e258be1cca00746ad6c) SHA1(ce949cdbe16ff8539e7fa46ccc58a06a90c7edde) )
ROM_END
ROM_START(gticlub2)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(d0604e84) SHA1(18d1183f1331af3e655a56692eb7ab877b4bc239))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(d0604e84) SHA1(18d1183f1331af3e655a56692eb7ab877b4bc239))
DISK_REGION( "ide" )
- DISK_IMAGE( "gm941b02", 0, MD5(8403c7f5fa5c254a30d87b59f8d1fedc) SHA1(217ef1628e8a377d22f537507dbe18fa9fe01fa2) )
+ DISK_IMAGE( "gm941b02", 0, MD5(8403c7f5fa5c254a30d87b59f8d1fedc) SHA1(217ef1628e8a377d22f537507dbe18fa9fe01fa2) )
ROM_END
ROM_START(jpark3)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(55d1681d) SHA1(26868cf0d14f23f06b81f2df0b4186924439bb43))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(55d1681d) SHA1(26868cf0d14f23f06b81f2df0b4186924439bb43))
DISK_REGION( "ide" )
- DISK_IMAGE( "b41c02", 0, MD5(4909b6c4007cc24f8cc514aa0ea26170) SHA1(386059033832c70063ff38363d473050162835e9) )
+ DISK_IMAGE( "b41c02", 0, MD5(4909b6c4007cc24f8cc514aa0ea26170) SHA1(386059033832c70063ff38363d473050162835e9) )
ROM_END
ROM_START(mocapglf)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "b33a02", 0, MD5(5e7d62ab51dae4e9ace35d7e52b08b5d) SHA1(a56df1917fb476cbacfe24f1a2f2cacc770eb80a) )
+ DISK_IMAGE( "b33a02", 0, MD5(5e7d62ab51dae4e9ace35d7e52b08b5d) SHA1(a56df1917fb476cbacfe24f1a2f2cacc770eb80a) )
ROM_END
ROM_START(mocapb)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(14b9fe68) SHA1(3c59e6df1bb46bc1835c13fd182b1bb092c08759))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(14b9fe68) SHA1(3c59e6df1bb46bc1835c13fd182b1bb092c08759))
DISK_REGION( "ide" )
- DISK_IMAGE( "a29b02", 0, MD5(18f7070bbde3c3ca38d71425bdc074ab) SHA1(167b4b9f0960503db37c22e81ce4149925c5ec71) )
+ DISK_IMAGE( "a29b02", 0, MD5(18f7070bbde3c3ca38d71425bdc074ab) SHA1(167b4b9f0960503db37c22e81ce4149925c5ec71) )
ROM_END
ROM_START(mocapbj)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(2f7cdf27) SHA1(0b69d8728be12909e235268268a312982f81d46a))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(2f7cdf27) SHA1(0b69d8728be12909e235268268a312982f81d46a))
DISK_REGION( "ide" )
- DISK_IMAGE( "a29a02", 0, MD5(ba06338534dbad61071d39907a3aed85) SHA1(8ab0b63f6e4d1401380a286736964f0cd668a70e) )
+ DISK_IMAGE( "a29a02", 0, MD5(ba06338534dbad61071d39907a3aed85) SHA1(8ab0b63f6e4d1401380a286736964f0cd668a70e) )
ROM_END
ROM_START(p911)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(cca056ca) SHA1(de1a00d84c1311d48bbe6d24f5b36e22ecf5e85a))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(cca056ca) SHA1(de1a00d84c1311d48bbe6d24f5b36e22ecf5e85a))
DISK_REGION( "ide" )
- DISK_IMAGE( "a00aad02", 0, MD5(894ec7584841d7e1775e76edc53e739e) SHA1(2fc73fdaf9bc9ab6942672458206517bf8d851e1) )
+ DISK_IMAGE( "a00aad02", 0, MD5(894ec7584841d7e1775e76edc53e739e) SHA1(2fc73fdaf9bc9ab6942672458206517bf8d851e1) )
ROM_END
ROM_START(p911uc)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "a00aac02", 0, MD5(c1d1a18932490c9d6185d0c3b55b50cf) SHA1(5cbdfce13ce2cb5c45ea66e20e092d5a5fe69c5d) )
+ DISK_IMAGE( "a00aac02", 0, MD5(c1d1a18932490c9d6185d0c3b55b50cf) SHA1(5cbdfce13ce2cb5c45ea66e20e092d5a5fe69c5d) )
ROM_END
ROM_START(p911e)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "a00eaa02", 0, MD5(5c870c38a408591e080516ae6a5f28e5) SHA1(8ff93666c33c7ee3ac2e4eeca9077c8296036187) )
+ DISK_IMAGE( "a00eaa02", 0, MD5(5c870c38a408591e080516ae6a5f28e5) SHA1(8ff93666c33c7ee3ac2e4eeca9077c8296036187) )
ROM_END
ROM_START(p911j)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(9ecf70dc) SHA1(4769a99b0cc28563e219860b8d480f32d1e21f60))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(9ecf70dc) SHA1(4769a99b0cc28563e219860b8d480f32d1e21f60))
DISK_REGION( "ide" )
- DISK_IMAGE( "a00jac02", 0, MD5(6c4b7c934159a54c93d5aa386e44969a) SHA1(80217103ad96b06855a57763c702140cbe4a2494) )
+ DISK_IMAGE( "a00jac02", 0, MD5(6c4b7c934159a54c93d5aa386e44969a) SHA1(80217103ad96b06855a57763c702140cbe4a2494) )
ROM_END
ROM_START(p9112)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "b11a02", 0, MD5(7ddf6139577bce2062b2f9a9ac99e56a) SHA1(56d9c47f3c7fceb2d8c36a8fa205c90595923c6f) )
+ DISK_IMAGE( "b11a02", 0, MD5(7ddf6139577bce2062b2f9a9ac99e56a) SHA1(56d9c47f3c7fceb2d8c36a8fa205c90595923c6f) )
ROM_END
ROM_START(popn9)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "c00jab", 0, MD5(f16cfaae05d29fdeeb7289265bf45712) SHA1(fd5b374731975e956b6e4e7102bc8350bfd8b5f4) )
+ DISK_IMAGE( "c00jab", 0, MD5(f16cfaae05d29fdeeb7289265bf45712) SHA1(fd5b374731975e956b6e4e7102bc8350bfd8b5f4) )
ROM_END
ROM_START(sscopex)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(7b0e1ac8) SHA1(1ea549964539e27f87370e9986bfa44eeed037cd))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(7b0e1ac8) SHA1(1ea549964539e27f87370e9986bfa44eeed037cd))
DISK_REGION( "ide" )
- DISK_IMAGE( "gka13c02", 0, MD5(994ced1f61dfe5ea10eac4b407359392) SHA1(179145b0e98c2ab5a7fc5c93cbc0c5398f961f65) )
+ DISK_IMAGE( "gka13c02", 0, MD5(994ced1f61dfe5ea10eac4b407359392) SHA1(179145b0e98c2ab5a7fc5c93cbc0c5398f961f65) )
ROM_END
ROM_START(sogeki)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(2f325c55) SHA1(0bc44f40f981a815c8ce64eae95ae55db510c565))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x000000, 0x2000, CRC(2f325c55) SHA1(0bc44f40f981a815c8ce64eae95ae55db510c565))
DISK_REGION( "ide" )
- DISK_IMAGE( "a13b02", 0, MD5(b476764d13ebf3fc3ec52e1fc2b36f96) SHA1(16965f5f164f4f8191e93274f8c99d84def15c70) )
+ DISK_IMAGE( "a13b02", 0, MD5(b476764d13ebf3fc3ec52e1fc2b36f96) SHA1(16965f5f164f4f8191e93274f8c99d84def15c70) )
ROM_END
ROM_START(thrild2)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(d5de9b8e) SHA1(768bcd46a6ad20948f60f5e0ecd2f7b9c2901061))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(d5de9b8e) SHA1(768bcd46a6ad20948f60f5e0ecd2f7b9c2901061))
DISK_REGION( "ide" )
- DISK_IMAGE( "gma41b02", 0, MD5(a3c39be28464fa737390e2e1e2aeb683) SHA1(0a451e33f5a6b708a54b70cc247e4d49ada0025a) )
+ DISK_IMAGE( "gma41b02", 0, MD5(a3c39be28464fa737390e2e1e2aeb683) SHA1(0a451e33f5a6b708a54b70cc247e4d49ada0025a) )
ROM_END
ROM_START(thrild2a)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(3b7b0969) SHA1(3f11b6420ad3e3ee6f807e1ae14908bdc6e86d8f))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(3b7b0969) SHA1(3f11b6420ad3e3ee6f807e1ae14908bdc6e86d8f))
DISK_REGION( "ide" )
- DISK_IMAGE( "gma41a02", 0, MD5(e73843d28afaef6c6af2513b6cf064e6) SHA1(abdaba1f539cf5d723fa51e939c0ffcbf5cdf28f) )
+ DISK_IMAGE( "gma41a02", 0, MD5(e73843d28afaef6c6af2513b6cf064e6) SHA1(abdaba1f539cf5d723fa51e939c0ffcbf5cdf28f) )
ROM_END
ROM_START(tsurugi)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(c123342c) SHA1(55416767608fe0311a362854a16b214b04435a31))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(c123342c) SHA1(55416767608fe0311a362854a16b214b04435a31))
DISK_REGION( "ide" )
- DISK_IMAGE( "a30eab02", 0, MD5(81593f4d5a10f7dea124bef0b02d15e6) SHA1(2202d8f8fa7cc752d4ebae16eac6818a5de06b98) )
+ DISK_IMAGE( "a30eab02", 0, MD5(81593f4d5a10f7dea124bef0b02d15e6) SHA1(2202d8f8fa7cc752d4ebae16eac6818a5de06b98) )
ROM_END
ROM_START(tsurugij)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "a30jac02", 0, MD5(c7400ccdb4b045bbf2de4fa9d63a9e87) SHA1(64cc19941c2f3b39cbbe158042f3b312a678752d) )
+ DISK_IMAGE( "a30jac02", 0, MD5(c7400ccdb4b045bbf2de4fa9d63a9e87) SHA1(64cc19941c2f3b39cbbe158042f3b312a678752d) )
ROM_END
ROM_START(wcombat)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(4f8b5858) SHA1(68066241c6f9db7f45e55b3c5da101987f4ce53c))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(4f8b5858) SHA1(68066241c6f9db7f45e55b3c5da101987f4ce53c))
DISK_REGION( "ide" )
- DISK_IMAGE( "c22d02", 0, MD5(f3b63ac0b2f613c9183356e7cf966ba6) SHA1(f7a6e8eba877f213075bd4836a62a898f17a27dc) )
+ DISK_IMAGE( "c22d02", 0, MD5(f3b63ac0b2f613c9183356e7cf966ba6) SHA1(f7a6e8eba877f213075bd4836a62a898f17a27dc) )
ROM_END
ROM_START(wcombak)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(ebd4d645) SHA1(2fa7e2c6b113214f3eb1900c8ceef4d5fcf0bb76))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(ebd4d645) SHA1(2fa7e2c6b113214f3eb1900c8ceef4d5fcf0bb76))
DISK_REGION( "ide" )
- DISK_IMAGE( "c22c02", 0, MD5(e108a01a0a3ada065f42b0b4b16a4480) SHA1(6caff33b9b22fc56a619d58cfb8fb5aca2ecd289) )
+ DISK_IMAGE( "c22c02", 0, MD5(e108a01a0a3ada065f42b0b4b16a4480) SHA1(6caff33b9b22fc56a619d58cfb8fb5aca2ecd289) )
ROM_END
ROM_START(wcombaj)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(bd8a6640) SHA1(2d409197ef3fb07d984d27fa943f29c7a711d715))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(bd8a6640) SHA1(2d409197ef3fb07d984d27fa943f29c7a711d715))
DISK_REGION( "ide" )
- DISK_IMAGE( "c22a02", 0, MD5(0df54ceaa46c00e9b849af4bea6df1eb) SHA1(63ba75403ff714b2169f3c2e8ae3246a035da2d3) )
+ DISK_IMAGE( "c22a02", 0, MD5(0df54ceaa46c00e9b849af4bea6df1eb) SHA1(63ba75403ff714b2169f3c2e8ae3246a035da2d3) )
ROM_END
ROM_START(xtrial)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(33708a93) SHA1(715968e3c9c15edf628fa6ac655dc0864e336c6c))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(33708a93) SHA1(715968e3c9c15edf628fa6ac655dc0864e336c6c))
DISK_REGION( "ide" )
- DISK_IMAGE( "b4xb02", 0, MD5(c915e4946231fee8d3df00d5be08c177) SHA1(8631efafc19cc34ab8fbee2ed912d35de1f8b161) )
+ DISK_IMAGE( "b4xb02", 0, MD5(c915e4946231fee8d3df00d5be08c177) SHA1(8631efafc19cc34ab8fbee2ed912d35de1f8b161) )
ROM_END
/* Viper Satellite Terminal games */
@@ -1002,20 +969,20 @@ CF card and NVRAM are swapped....
ROM_START(mfightc)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
- ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(9fb551a5) SHA1(a33d185e186d404c3bf62277d7e34e5ad0000b09))
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_LOAD("nvram.u39", 0x00000, 0x2000, CRC(9fb551a5) SHA1(a33d185e186d404c3bf62277d7e34e5ad0000b09))
DISK_REGION( "ide" )
- DISK_IMAGE( "c09jad04", 0, MD5(a858ca8f04838e8b5b603ea12526016c) SHA1(97e9b57c72787737c976cf9d7e997aee50befd53) )
+ DISK_IMAGE( "c09jad04", 0, MD5(a858ca8f04838e8b5b603ea12526016c) SHA1(97e9b57c72787737c976cf9d7e997aee50befd53) )
ROM_END
ROM_START(mfightcc)
VIPER_BIOS
- ROM_REGION(0x2000, "user2", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
+ ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */
DISK_REGION( "ide" )
- DISK_IMAGE( "c09jac04", 0, MD5(3d502e1f9c8dbd7a9179ffd754a3de1b) SHA1(d27f04cc25df9955c014b7b97f768324f8e47c5c) )
+ DISK_IMAGE( "c09jac04", 0, MD5(3d502e1f9c8dbd7a9179ffd754a3de1b) SHA1(d27f04cc25df9955c014b7b97f768324f8e47c5c) )
ROM_END
/*****************************************************************************/
@@ -1023,7 +990,7 @@ ROM_END
/* Viper BIOS */
GAME(1999, kviper, 0, viper, 0, viper, ROT0, "Konami", "Konami Viper BIOS", GAME_IS_BIOS_ROOT)
-GAME(2001, ppp2nd, kviper, viper, 0, ppp2nd, ROT0, "Konami", "ParaParaParadise 2nd Mix", GAME_NOT_WORKING|GAME_NO_SOUND)
+GAME(2001, ppp2nd, kviper, viper, 0, viper, ROT0, "Konami", "ParaParaParadise 2nd Mix", GAME_NOT_WORKING|GAME_NO_SOUND)
GAME(2001, boxingm, kviper, viper, 0, vipercf, ROT0, "Konami", "Boxing Mania", GAME_NOT_WORKING|GAME_NO_SOUND)
GAME(2000, code1d, kviper, viper, 0, vipercf, ROT0, "Konami", "Code One Dispatch", GAME_NOT_WORKING|GAME_NO_SOUND)