diff options
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 |
commit | b258d93893d4f92dcd3c2a017d1681c57b4a4131 (patch) | |
tree | d219833729b8c819cb3acd15b179a3a4c90d8d0b | |
parent | adaa2afe495258a7ee365df45519475f842dfe23 (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.c | 434 | ||||
-rw-r--r-- | src/emu/machine/timekpr.h | 31 | ||||
-rw-r--r-- | src/mame/drivers/hornet.c | 348 | ||||
-rw-r--r-- | src/mame/drivers/itech32.c | 33 | ||||
-rw-r--r-- | src/mame/drivers/ksys573.c | 20 | ||||
-rw-r--r-- | src/mame/drivers/midzeus.c | 25 | ||||
-rw-r--r-- | src/mame/drivers/nwk-tr.c | 183 | ||||
-rw-r--r-- | src/mame/drivers/slapshot.c | 88 | ||||
-rw-r--r-- | src/mame/drivers/viper.c | 195 |
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) |