And some more. Converted the ds2404 to a device along the way.
This commit is contained in:
parent
a9697769d9
commit
ead42740ca
@ -17,7 +17,8 @@ typedef enum {
|
||||
DS2404_STATE_COPY_SCRATCHPAD /* Copy Scratchpad command active */
|
||||
} DS2404_STATE;
|
||||
|
||||
typedef struct {
|
||||
typedef struct _ds2404_state ds2404_state;
|
||||
struct _ds2404_state {
|
||||
UINT16 address;
|
||||
UINT16 offset;
|
||||
UINT16 end_offset;
|
||||
@ -27,17 +28,25 @@ typedef struct {
|
||||
UINT8 rtc[5]; /* 40-bit RTC counter */
|
||||
DS2404_STATE state[8];
|
||||
int state_ptr;
|
||||
} DS2404;
|
||||
};
|
||||
|
||||
static DS2404 ds2404;
|
||||
INLINE ds2404_state *get_safe_token(const device_config *device)
|
||||
{
|
||||
assert(device != NULL);
|
||||
assert(device->token != NULL);
|
||||
assert(device->type == DS2404);
|
||||
|
||||
static void ds2404_rom_cmd(UINT8 cmd)
|
||||
return (ds2404_state *)device->token;
|
||||
}
|
||||
|
||||
|
||||
static void ds2404_rom_cmd(ds2404_state *state, UINT8 cmd)
|
||||
{
|
||||
switch(cmd)
|
||||
{
|
||||
case 0xcc: /* Skip ROM */
|
||||
ds2404.state[0] = DS2404_STATE_COMMAND;
|
||||
ds2404.state_ptr = 0;
|
||||
state->state[0] = DS2404_STATE_COMMAND;
|
||||
state->state_ptr = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -46,33 +55,33 @@ static void ds2404_rom_cmd(UINT8 cmd)
|
||||
}
|
||||
}
|
||||
|
||||
static void ds2404_cmd(UINT8 cmd)
|
||||
static void ds2404_cmd(ds2404_state *state, UINT8 cmd)
|
||||
{
|
||||
switch(cmd)
|
||||
{
|
||||
case 0x0f: /* Write scratchpad */
|
||||
ds2404.state[0] = DS2404_STATE_ADDRESS1;
|
||||
ds2404.state[1] = DS2404_STATE_ADDRESS2;
|
||||
ds2404.state[2] = DS2404_STATE_INIT_COMMAND;
|
||||
ds2404.state[3] = DS2404_STATE_WRITE_SCRATCHPAD;
|
||||
ds2404.state_ptr = 0;
|
||||
state->state[0] = DS2404_STATE_ADDRESS1;
|
||||
state->state[1] = DS2404_STATE_ADDRESS2;
|
||||
state->state[2] = DS2404_STATE_INIT_COMMAND;
|
||||
state->state[3] = DS2404_STATE_WRITE_SCRATCHPAD;
|
||||
state->state_ptr = 0;
|
||||
break;
|
||||
|
||||
case 0x55: /* Copy scratchpad */
|
||||
ds2404.state[0] = DS2404_STATE_ADDRESS1;
|
||||
ds2404.state[1] = DS2404_STATE_ADDRESS2;
|
||||
ds2404.state[2] = DS2404_STATE_OFFSET;
|
||||
ds2404.state[3] = DS2404_STATE_INIT_COMMAND;
|
||||
ds2404.state[4] = DS2404_STATE_COPY_SCRATCHPAD;
|
||||
ds2404.state_ptr = 0;
|
||||
state->state[0] = DS2404_STATE_ADDRESS1;
|
||||
state->state[1] = DS2404_STATE_ADDRESS2;
|
||||
state->state[2] = DS2404_STATE_OFFSET;
|
||||
state->state[3] = DS2404_STATE_INIT_COMMAND;
|
||||
state->state[4] = DS2404_STATE_COPY_SCRATCHPAD;
|
||||
state->state_ptr = 0;
|
||||
break;
|
||||
|
||||
case 0xf0: /* Read memory */
|
||||
ds2404.state[0] = DS2404_STATE_ADDRESS1;
|
||||
ds2404.state[1] = DS2404_STATE_ADDRESS2;
|
||||
ds2404.state[2] = DS2404_STATE_INIT_COMMAND;
|
||||
ds2404.state[3] = DS2404_STATE_READ_MEMORY;
|
||||
ds2404.state_ptr = 0;
|
||||
state->state[0] = DS2404_STATE_ADDRESS1;
|
||||
state->state[1] = DS2404_STATE_ADDRESS2;
|
||||
state->state[2] = DS2404_STATE_INIT_COMMAND;
|
||||
state->state[3] = DS2404_STATE_READ_MEMORY;
|
||||
state->state_ptr = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -81,47 +90,50 @@ static void ds2404_cmd(UINT8 cmd)
|
||||
}
|
||||
}
|
||||
|
||||
static UINT8 ds2404_readmem(void)
|
||||
static UINT8 ds2404_readmem(ds2404_state *state)
|
||||
{
|
||||
if( ds2404.address < 0x200 )
|
||||
if( state->address < 0x200 )
|
||||
{
|
||||
return ds2404.sram[ ds2404.address ];
|
||||
return state->sram[ state->address ];
|
||||
}
|
||||
else if( ds2404.address >= 0x202 && ds2404.address <= 0x206 )
|
||||
else if( state->address >= 0x202 && state->address <= 0x206 )
|
||||
{
|
||||
return ds2404.rtc[ ds2404.address - 0x202 ];
|
||||
return state->rtc[ state->address - 0x202 ];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ds2404_writemem(UINT8 value)
|
||||
static void ds2404_writemem(ds2404_state *state, UINT8 value)
|
||||
{
|
||||
if( ds2404.address < 0x200 )
|
||||
if( state->address < 0x200 )
|
||||
{
|
||||
ds2404.sram[ ds2404.address ] = value;
|
||||
state->sram[ state->address ] = value;
|
||||
}
|
||||
else if( ds2404.address >= 0x202 && ds2404.address <= 0x206 )
|
||||
else if( state->address >= 0x202 && state->address <= 0x206 )
|
||||
{
|
||||
ds2404.rtc[ ds2404.address - 0x202 ] = value;
|
||||
state->rtc[ state->address - 0x202 ] = value;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( DS2404_1W_reset_w )
|
||||
WRITE8_DEVICE_HANDLER( ds2404_1w_reset_w )
|
||||
{
|
||||
ds2404.state[0] = DS2404_STATE_IDLE;
|
||||
ds2404.state_ptr = 0;
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
state->state[0] = DS2404_STATE_IDLE;
|
||||
state->state_ptr = 0;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( DS2404_3W_reset_w )
|
||||
WRITE8_DEVICE_HANDLER( ds2404_3w_reset_w )
|
||||
{
|
||||
ds2404.state[0] = DS2404_STATE_COMMAND;
|
||||
ds2404.state_ptr = 0;
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
state->state[0] = DS2404_STATE_COMMAND;
|
||||
state->state_ptr = 0;
|
||||
}
|
||||
|
||||
READ8_HANDLER( DS2404_data_r )
|
||||
READ8_DEVICE_HANDLER( ds2404_data_r )
|
||||
{
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
UINT8 value;
|
||||
switch( ds2404.state[ds2404.state_ptr] )
|
||||
switch( state->state[state->state_ptr] )
|
||||
{
|
||||
case DS2404_STATE_IDLE:
|
||||
case DS2404_STATE_COMMAND:
|
||||
@ -132,13 +144,13 @@ READ8_HANDLER( DS2404_data_r )
|
||||
break;
|
||||
|
||||
case DS2404_STATE_READ_MEMORY:
|
||||
value = ds2404_readmem();
|
||||
value = ds2404_readmem(state);
|
||||
return value;
|
||||
|
||||
case DS2404_STATE_READ_SCRATCHPAD:
|
||||
if( ds2404.offset < 0x20 ) {
|
||||
value = ds2404.ram[ds2404.offset];
|
||||
ds2404.offset++;
|
||||
if( state->offset < 0x20 ) {
|
||||
value = state->ram[state->offset];
|
||||
state->offset++;
|
||||
return value;
|
||||
}
|
||||
break;
|
||||
@ -152,33 +164,34 @@ READ8_HANDLER( DS2404_data_r )
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( DS2404_data_w )
|
||||
WRITE8_DEVICE_HANDLER( ds2404_data_w )
|
||||
{
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
int i;
|
||||
|
||||
switch( ds2404.state[ds2404.state_ptr] )
|
||||
switch( state->state[state->state_ptr] )
|
||||
{
|
||||
case DS2404_STATE_IDLE:
|
||||
ds2404_rom_cmd(data & 0xff);
|
||||
ds2404_rom_cmd(state, data & 0xff);
|
||||
break;
|
||||
|
||||
case DS2404_STATE_COMMAND:
|
||||
ds2404_cmd(data & 0xff);
|
||||
ds2404_cmd(state, data & 0xff);
|
||||
break;
|
||||
|
||||
case DS2404_STATE_ADDRESS1:
|
||||
ds2404.a1 = data & 0xff;
|
||||
ds2404.state_ptr++;
|
||||
state->a1 = data & 0xff;
|
||||
state->state_ptr++;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_ADDRESS2:
|
||||
ds2404.a2 = data & 0xff;
|
||||
ds2404.state_ptr++;
|
||||
state->a2 = data & 0xff;
|
||||
state->state_ptr++;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_OFFSET:
|
||||
ds2404.end_offset = data & 0xff;
|
||||
ds2404.state_ptr++;
|
||||
state->end_offset = data & 0xff;
|
||||
state->state_ptr++;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_INIT_COMMAND:
|
||||
@ -191,9 +204,9 @@ WRITE8_HANDLER( DS2404_data_w )
|
||||
break;
|
||||
|
||||
case DS2404_STATE_WRITE_SCRATCHPAD:
|
||||
if( ds2404.offset < 0x20 ) {
|
||||
ds2404.ram[ds2404.offset] = data & 0xff;
|
||||
ds2404.offset++;
|
||||
if( state->offset < 0x20 ) {
|
||||
state->ram[state->offset] = data & 0xff;
|
||||
state->offset++;
|
||||
} else {
|
||||
/* Set OF flag */
|
||||
}
|
||||
@ -203,8 +216,8 @@ WRITE8_HANDLER( DS2404_data_w )
|
||||
break;
|
||||
}
|
||||
|
||||
if( ds2404.state[ds2404.state_ptr] == DS2404_STATE_INIT_COMMAND ) {
|
||||
switch( ds2404.state[ds2404.state_ptr+1] )
|
||||
if( state->state[state->state_ptr] == DS2404_STATE_INIT_COMMAND ) {
|
||||
switch( state->state[state->state_ptr+1] )
|
||||
{
|
||||
case DS2404_STATE_IDLE:
|
||||
case DS2404_STATE_COMMAND:
|
||||
@ -215,36 +228,37 @@ WRITE8_HANDLER( DS2404_data_w )
|
||||
break;
|
||||
|
||||
case DS2404_STATE_READ_MEMORY:
|
||||
ds2404.address = (ds2404.a2 << 8) | ds2404.a1;
|
||||
ds2404.address -= 1;
|
||||
state->address = (state->a2 << 8) | state->a1;
|
||||
state->address -= 1;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_WRITE_SCRATCHPAD:
|
||||
ds2404.address = (ds2404.a2 << 8) | ds2404.a1;
|
||||
ds2404.offset = ds2404.address & 0x1f;
|
||||
state->address = (state->a2 << 8) | state->a1;
|
||||
state->offset = state->address & 0x1f;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_READ_SCRATCHPAD:
|
||||
ds2404.address = (ds2404.a2 << 8) | ds2404.a1;
|
||||
ds2404.offset = ds2404.address & 0x1f;
|
||||
state->address = (state->a2 << 8) | state->a1;
|
||||
state->offset = state->address & 0x1f;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_COPY_SCRATCHPAD:
|
||||
ds2404.address = (ds2404.a2 << 8) | ds2404.a1;
|
||||
state->address = (state->a2 << 8) | state->a1;
|
||||
|
||||
for( i=0; i <= ds2404.end_offset; i++ ) {
|
||||
ds2404_writemem( ds2404.ram[i] );
|
||||
ds2404.address++;
|
||||
for( i=0; i <= state->end_offset; i++ ) {
|
||||
ds2404_writemem( state, state->ram[i] );
|
||||
state->address++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ds2404.state_ptr++;
|
||||
state->state_ptr++;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( DS2404_clk_w )
|
||||
WRITE8_DEVICE_HANDLER( ds2404_clk_w )
|
||||
{
|
||||
switch( ds2404.state[ds2404.state_ptr] )
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
switch( state->state[state->state_ptr] )
|
||||
{
|
||||
case DS2404_STATE_IDLE:
|
||||
case DS2404_STATE_COMMAND:
|
||||
@ -255,7 +269,7 @@ WRITE8_HANDLER( DS2404_clk_w )
|
||||
break;
|
||||
|
||||
case DS2404_STATE_READ_MEMORY:
|
||||
ds2404.address++;
|
||||
state->address++;
|
||||
break;
|
||||
|
||||
case DS2404_STATE_READ_SCRATCHPAD:
|
||||
@ -269,52 +283,74 @@ WRITE8_HANDLER( DS2404_clk_w )
|
||||
}
|
||||
}
|
||||
|
||||
static TIMER_CALLBACK( DS2404_tick )
|
||||
static TIMER_CALLBACK( ds2404_tick )
|
||||
{
|
||||
ds2404_state *state = get_safe_token(ptr);
|
||||
int i;
|
||||
for( i = 0; i < 5; i++ )
|
||||
{
|
||||
ds2404.rtc[ i ]++;
|
||||
if( ds2404.rtc[ i ] != 0 )
|
||||
state->rtc[ i ]++;
|
||||
if( state->rtc[ i ] != 0 )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DS2404_init(running_machine *machine, int ref_year, int ref_month, int ref_day)
|
||||
|
||||
static DEVICE_START( ds2404 )
|
||||
{
|
||||
ds2404_config *config = (ds2404_config *)device->inline_config;
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
|
||||
struct tm ref_tm;
|
||||
time_t ref_time;
|
||||
time_t current_time;
|
||||
emu_timer *timer;
|
||||
|
||||
memset( &ref_tm, 0, sizeof( ref_tm ) );
|
||||
ref_tm.tm_year = ref_year - 1900;
|
||||
ref_tm.tm_mon = ref_month - 1;
|
||||
ref_tm.tm_mday = ref_day;
|
||||
ref_tm.tm_year = config->ref_year - 1900;
|
||||
ref_tm.tm_mon = config->ref_month - 1;
|
||||
ref_tm.tm_mday = config->ref_day;
|
||||
|
||||
ref_time = mktime( &ref_tm );
|
||||
|
||||
time( ¤t_time );
|
||||
current_time -= ref_time;
|
||||
|
||||
ds2404.rtc[ 0 ] = 0x0;
|
||||
ds2404.rtc[ 1 ] = ( current_time >> 0 ) & 0xff;
|
||||
ds2404.rtc[ 2 ] = ( current_time >> 8 ) & 0xff;
|
||||
ds2404.rtc[ 3 ] = ( current_time >> 16 ) & 0xff;
|
||||
ds2404.rtc[ 4 ] = ( current_time >> 24 ) & 0xff;
|
||||
state->rtc[ 0 ] = 0x0;
|
||||
state->rtc[ 1 ] = ( current_time >> 0 ) & 0xff;
|
||||
state->rtc[ 2 ] = ( current_time >> 8 ) & 0xff;
|
||||
state->rtc[ 3 ] = ( current_time >> 16 ) & 0xff;
|
||||
state->rtc[ 4 ] = ( current_time >> 24 ) & 0xff;
|
||||
|
||||
timer = timer_alloc( machine, DS2404_tick , NULL);
|
||||
timer = timer_alloc( device->machine, ds2404_tick , (void *)device);
|
||||
timer_adjust_periodic( timer, ATTOTIME_IN_HZ( 256 ), 0, ATTOTIME_IN_HZ( 256 ) );
|
||||
}
|
||||
|
||||
void DS2404_load(mame_file *file)
|
||||
|
||||
static DEVICE_RESET( ds2404 )
|
||||
{
|
||||
mame_fread(file, ds2404.sram, 512);
|
||||
}
|
||||
|
||||
void DS2404_save(mame_file *file)
|
||||
|
||||
static DEVICE_NVRAM( ds2404 )
|
||||
{
|
||||
mame_fwrite(file, ds2404.sram, 512);
|
||||
ds2404_state *state = get_safe_token(device);
|
||||
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, state->sram, sizeof(state->sram));
|
||||
else if (file)
|
||||
mame_fread(file, state->sram, sizeof(state->sram));
|
||||
else
|
||||
memset(state->sram, 0, sizeof(state->sram));
|
||||
}
|
||||
|
||||
|
||||
static const char DEVTEMPLATE_SOURCE[] = __FILE__;
|
||||
|
||||
#define DEVTEMPLATE_ID(p,s) p##ds2404##s
|
||||
#define DEVTEMPLATE_FEATURES DT_HAS_START | DT_HAS_RESET | DT_HAS_NVRAM | DT_HAS_INLINE_CONFIG
|
||||
#define DEVTEMPLATE_NAME "DS2404"
|
||||
#define DEVTEMPLATE_FAMILY "NVRAM"
|
||||
#include "devtempl.h"
|
||||
|
@ -1,18 +1,34 @@
|
||||
#ifndef DS2404_H
|
||||
#define DS2404_H
|
||||
|
||||
void DS2404_init(running_machine *machine, int ref_year, int ref_month, int ref_day);
|
||||
void DS2404_load(mame_file *file);
|
||||
void DS2404_save(mame_file *file);
|
||||
typedef struct _ds2404_config ds2404_config;
|
||||
struct _ds2404_config
|
||||
{
|
||||
UINT32 ref_year;
|
||||
UINT8 ref_month;
|
||||
UINT8 ref_day;
|
||||
};
|
||||
|
||||
|
||||
#define MDRV_DS2404_ADD(_tag, _ref_year, _ref_month, _ref_day) \
|
||||
MDRV_DEVICE_ADD(_tag, DS2404, 0) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(ds2404_config, ref_year, _ref_year) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(ds2404_config, ref_month, _ref_month) \
|
||||
MDRV_DEVICE_CONFIG_DATA32(ds2404_config, ref_day, _ref_day)
|
||||
|
||||
|
||||
/* 1-wire interface reset */
|
||||
WRITE8_HANDLER( DS2404_1W_reset_w );
|
||||
WRITE8_DEVICE_HANDLER( ds2404_1w_reset_w );
|
||||
|
||||
/* 3-wire interface reset */
|
||||
WRITE8_HANDLER( DS2404_3W_reset_w );
|
||||
WRITE8_DEVICE_HANDLER( ds2404_3w_reset_w );
|
||||
|
||||
READ8_HANDLER( DS2404_data_r );
|
||||
WRITE8_HANDLER( DS2404_data_w );
|
||||
WRITE8_HANDLER( DS2404_clk_w );
|
||||
READ8_DEVICE_HANDLER( ds2404_data_r );
|
||||
WRITE8_DEVICE_HANDLER( ds2404_data_w );
|
||||
WRITE8_DEVICE_HANDLER( ds2404_clk_w );
|
||||
|
||||
/* device get info callback */
|
||||
#define DS2404 DEVICE_GET_INFO_NAME(ds2404)
|
||||
DEVICE_GET_INFO( ds2404 );
|
||||
|
||||
#endif
|
||||
|
@ -106,11 +106,16 @@ static void tmp68301_update_timer( running_machine *machine, int i )
|
||||
}
|
||||
}
|
||||
|
||||
MACHINE_RESET( tmp68301 )
|
||||
MACHINE_START( tmp68301 )
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 3; i++)
|
||||
tmp68301_timer[i] = timer_alloc(machine, tmp68301_timer_callback, NULL);
|
||||
}
|
||||
|
||||
MACHINE_RESET( tmp68301 )
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
tmp68301_IE[i] = 0;
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define TMP68301_H
|
||||
|
||||
// Machine init
|
||||
MACHINE_START( tmp68301 );
|
||||
MACHINE_RESET( tmp68301 );
|
||||
|
||||
// Hardware Registers
|
||||
|
@ -234,9 +234,9 @@ void state_save_register_memory(running_machine *machine, const char *module, co
|
||||
/* check for invalid timing */
|
||||
if (!global->reg_allowed)
|
||||
{
|
||||
logerror("Attempt to register save state entry after state registration is closed! module %s tag %s name %s\n",module, tag, name);
|
||||
logerror("Attempt to register save state entry after state registration is closed!\nFile: %s, line %d, module %s tag %s name %s\n", file, line, module, tag, name);
|
||||
if (machine->gamedrv->flags & GAME_SUPPORTS_SAVE)
|
||||
fatalerror("Attempt to register save state entry after state registration is closed! module %s tag %s name %s\n", module, tag, name);
|
||||
fatalerror("Attempt to register save state entry after state registration is closed!\nFile: %s, line %d, module %s tag %s name %s\n", file, line, module, tag, name);
|
||||
global->illegal_regs++;
|
||||
return;
|
||||
}
|
||||
|
@ -644,6 +644,8 @@ INLINE emu_timer *_timer_alloc_common(running_machine *machine, timer_fired_func
|
||||
/* if we're not temporary, register ourselves with the save state system */
|
||||
if (!temp)
|
||||
{
|
||||
if (!state_save_registration_allowed(machine))
|
||||
fatalerror("timer_alloc() called after save state registration closed! (file %s, line %d)\n", file, line);
|
||||
timer_register_save(timer);
|
||||
restrack_register_object(OBJTYPE_TIMER, timer, 0, file, line);
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ MACHINE_DRIVER_END
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static TIMER_CALLBACK( increment_t1_clock )
|
||||
static TIMER_DEVICE_CALLBACK( increment_t1_clock )
|
||||
{
|
||||
/* only increment if it is not being forced clear */
|
||||
if (!(usb.last_p2_value & 0x80))
|
||||
@ -316,7 +316,6 @@ void sega_usb_reset(running_machine *machine, UINT8 t1_clock_mask)
|
||||
cpu_set_input_line(usb.cpu, INPUT_LINE_RESET, ASSERT_LINE);
|
||||
|
||||
/* start the clock timer */
|
||||
timer_pulse(machine, attotime_mul(ATTOTIME_IN_HZ(USB_2MHZ_CLOCK), 256), NULL, 0, increment_t1_clock);
|
||||
usb.t1_clock_mask = t1_clock_mask;
|
||||
}
|
||||
|
||||
@ -923,6 +922,8 @@ MACHINE_DRIVER_START( sega_universal_sound_board )
|
||||
MDRV_CPU_PROGRAM_MAP(usb_map)
|
||||
MDRV_CPU_IO_MAP(usb_portmap)
|
||||
|
||||
MDRV_TIMER_ADD_PERIODIC("usb_timer", increment_t1_clock, HZ(USB_2MHZ_CLOCK / 256))
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SOUND_ADD("usbsnd", USB, 0)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
@ -143,6 +143,8 @@ static MACHINE_DRIVER_START( nitedrvr )
|
||||
|
||||
MDRV_MACHINE_START(nitedrvr)
|
||||
MDRV_MACHINE_RESET(nitedrvr)
|
||||
|
||||
MDRV_TIMER_ADD_PERIODIC("crash_timer", nitedrvr_crash_toggle_callback, NSEC(PERIOD_OF_555_ASTABLE_NSEC(RES_K(180), 330, CAP_U(1))))
|
||||
|
||||
// video hardware
|
||||
|
||||
|
@ -3277,6 +3277,7 @@ static MACHINE_DRIVER_START( theglobp )
|
||||
MDRV_CPU_PROGRAM_MAP(epos_map)
|
||||
MDRV_CPU_IO_MAP(theglobp_portmap)
|
||||
|
||||
MDRV_MACHINE_START(theglobp)
|
||||
MDRV_MACHINE_RESET(theglobp)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
@ -3290,6 +3291,7 @@ static MACHINE_DRIVER_START( acitya )
|
||||
MDRV_CPU_PROGRAM_MAP(epos_map)
|
||||
MDRV_CPU_IO_MAP(acitya_portmap)
|
||||
|
||||
MDRV_MACHINE_START(acitya)
|
||||
MDRV_MACHINE_RESET(acitya)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
@ -25,7 +25,7 @@ static UINT16* pkscramble_mdtilemap_ram;
|
||||
static UINT16* pkscramble_bgtilemap_ram;
|
||||
|
||||
static tilemap *fg_tilemap, *md_tilemap, *bg_tilemap;
|
||||
static emu_timer *scanline_timer;
|
||||
static const device_config *scanline_timer;
|
||||
|
||||
static WRITE16_HANDLER( pkscramble_fgtilemap_w )
|
||||
{
|
||||
@ -191,20 +191,20 @@ static TILE_GET_INFO( get_fg_tile_info )
|
||||
SET_TILE_INFO(0,tile,color,0);
|
||||
}
|
||||
|
||||
static TIMER_CALLBACK( scanline_callback )
|
||||
static TIMER_DEVICE_CALLBACK( scanline_callback )
|
||||
{
|
||||
if (param == interrupt_scanline)
|
||||
{
|
||||
if (out & 0x2000)
|
||||
cputag_set_input_line(machine, "maincpu", 1, ASSERT_LINE);
|
||||
timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, param + 1, 0), param+1);
|
||||
cputag_set_input_line(timer->machine, "maincpu", 1, ASSERT_LINE);
|
||||
timer_device_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(timer->machine->primary_screen, param + 1, 0), param+1);
|
||||
interrupt_line_active = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (interrupt_line_active)
|
||||
cputag_set_input_line(machine, "maincpu", 1, CLEAR_LINE);
|
||||
timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, interrupt_scanline, 0), interrupt_scanline);
|
||||
cputag_set_input_line(timer->machine, "maincpu", 1, CLEAR_LINE);
|
||||
timer_device_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(timer->machine->primary_screen, interrupt_scanline, 0), interrupt_scanline);
|
||||
interrupt_line_active = 0;
|
||||
}
|
||||
}
|
||||
@ -259,15 +259,18 @@ static const ym2203_interface ym2203_config =
|
||||
irqhandler
|
||||
};
|
||||
|
||||
static MACHINE_START( pkscramble)
|
||||
{
|
||||
state_save_register_global(machine, out);
|
||||
state_save_register_global(machine, interrupt_line_active);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( pkscramble)
|
||||
{
|
||||
out = 0;
|
||||
interrupt_line_active=0;
|
||||
scanline_timer = timer_alloc(machine, scanline_callback, NULL);
|
||||
timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, interrupt_scanline, 0), interrupt_scanline);
|
||||
|
||||
state_save_register_global(machine, out);
|
||||
state_save_register_global(machine, interrupt_line_active);
|
||||
scanline_timer = devtag_get_device(machine, "scan_timer");
|
||||
timer_device_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, interrupt_scanline, 0), interrupt_scanline);
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START( pkscramble )
|
||||
@ -278,7 +281,10 @@ static MACHINE_DRIVER_START( pkscramble )
|
||||
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
MDRV_MACHINE_START(pkscramble)
|
||||
MDRV_MACHINE_RESET(pkscramble)
|
||||
|
||||
MDRV_TIMER_ADD("scan_timer", scanline_callback)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -96,8 +96,8 @@ static int channel2_active;
|
||||
static int channel2_const;
|
||||
|
||||
/* timer handling */
|
||||
static TIMER_CALLBACK( polyplay_timer_callback );
|
||||
static emu_timer* polyplay_timer;
|
||||
static TIMER_DEVICE_CALLBACK( polyplay_timer_callback );
|
||||
static const device_config* polyplay_timer;
|
||||
static WRITE8_HANDLER( polyplay_start_timer2 );
|
||||
static WRITE8_HANDLER( polyplay_sound_channel );
|
||||
|
||||
@ -123,7 +123,7 @@ static MACHINE_RESET( polyplay )
|
||||
polyplay_set_channel2(0);
|
||||
polyplay_play_channel2(machine, 0);
|
||||
|
||||
polyplay_timer = timer_alloc(machine, polyplay_timer_callback, NULL);
|
||||
polyplay_timer = devtag_get_device(machine, "timer");
|
||||
}
|
||||
|
||||
|
||||
@ -234,10 +234,10 @@ static WRITE8_HANDLER( polyplay_sound_channel )
|
||||
static WRITE8_HANDLER( polyplay_start_timer2 )
|
||||
{
|
||||
if (data == 0x03)
|
||||
timer_adjust_oneshot(polyplay_timer, attotime_never, 0);
|
||||
timer_device_adjust_oneshot(polyplay_timer, attotime_never, 0);
|
||||
|
||||
if (data == 0xb5)
|
||||
timer_adjust_periodic(polyplay_timer, ATTOTIME_IN_HZ(40), 0, ATTOTIME_IN_HZ(40));
|
||||
timer_device_adjust_periodic(polyplay_timer, ATTOTIME_IN_HZ(40), 0, ATTOTIME_IN_HZ(40));
|
||||
}
|
||||
|
||||
static READ8_HANDLER( polyplay_random_read )
|
||||
@ -286,6 +286,9 @@ static MACHINE_DRIVER_START( polyplay )
|
||||
MDRV_CPU_VBLANK_INT("screen", coin_interrupt)
|
||||
|
||||
MDRV_MACHINE_RESET(polyplay)
|
||||
|
||||
MDRV_TIMER_ADD("timer", polyplay_timer_callback)
|
||||
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -354,9 +357,9 @@ ROM_START( polyplay )
|
||||
ROM_END
|
||||
|
||||
|
||||
static TIMER_CALLBACK( polyplay_timer_callback )
|
||||
static TIMER_DEVICE_CALLBACK( polyplay_timer_callback )
|
||||
{
|
||||
cputag_set_input_line_and_vector(machine, "maincpu", 0, HOLD_LINE, 0x4c);
|
||||
cputag_set_input_line_and_vector(timer->machine, "maincpu", 0, HOLD_LINE, 0x4c);
|
||||
}
|
||||
|
||||
/* game driver */
|
||||
|
@ -680,6 +680,7 @@ static MACHINE_DRIVER_START( realbrk )
|
||||
MDRV_CPU_PROGRAM_MAP(realbrk_mem)
|
||||
MDRV_CPU_VBLANK_INT("screen", realbrk_interrupt)
|
||||
|
||||
MDRV_MACHINE_START( tmp68301 )
|
||||
MDRV_MACHINE_RESET( tmp68301 )
|
||||
|
||||
/* video hardware */
|
||||
|
@ -867,6 +867,11 @@ static MACHINE_DRIVER_START( type1 )
|
||||
MDRV_PPI8255_ADD( "ppi8255_0", scramble_ppi_0_intf )
|
||||
MDRV_PPI8255_ADD( "ppi8255_1", scramble_ppi_1_intf )
|
||||
|
||||
MDRV_7474_ADD("7474_9m_1", galaxold_7474_9m_1_callback)
|
||||
MDRV_7474_ADD("7474_9m_2", galaxold_7474_9m_2_callback)
|
||||
|
||||
MDRV_TIMER_ADD("int_timer", galaxold_interrupt_timer)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(16000.0/132/2)
|
||||
@ -990,6 +995,11 @@ static MACHINE_DRIVER_START( hustler )
|
||||
|
||||
MDRV_MACHINE_RESET(scramble)
|
||||
|
||||
MDRV_7474_ADD("7474_9m_1", galaxold_7474_9m_1_callback)
|
||||
MDRV_7474_ADD("7474_9m_2", galaxold_7474_9m_2_callback)
|
||||
|
||||
MDRV_TIMER_ADD("int_timer", galaxold_interrupt_timer)
|
||||
|
||||
/* device config overrides */
|
||||
MDRV_PPI8255_ADD( "ppi8255_0", scramble_ppi_0_intf )
|
||||
MDRV_PPI8255_ADD( "ppi8255_1", scramble_ppi_1_intf )
|
||||
|
@ -909,7 +909,8 @@ CPU - 317-0092 |--------------------------------------------------------------
|
||||
static UINT16 *workram;
|
||||
|
||||
static UINT8 rom_board;
|
||||
static int atomicp_sound_rate;
|
||||
static UINT8 atomicp_sound_divisor;
|
||||
static UINT8 atomicp_sound_count;
|
||||
|
||||
static UINT8 has_sound_cpu;
|
||||
|
||||
@ -1112,16 +1113,13 @@ static MACHINE_RESET( system16b )
|
||||
}
|
||||
|
||||
|
||||
static TIMER_CALLBACK( atomicp_sound_irq )
|
||||
static TIMER_DEVICE_CALLBACK( atomicp_sound_irq )
|
||||
{
|
||||
cputag_set_input_line(machine, "maincpu", 2, HOLD_LINE);
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_RESET( atomicp )
|
||||
{
|
||||
MACHINE_RESET_CALL(system16b);
|
||||
timer_pulse(machine, ATTOTIME_IN_HZ(atomicp_sound_rate), NULL, 0, atomicp_sound_irq);
|
||||
if (++atomicp_sound_count >= atomicp_sound_divisor)
|
||||
{
|
||||
cputag_set_input_line(timer->machine, "maincpu", 2, HOLD_LINE);
|
||||
atomicp_sound_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1556,6 +1554,12 @@ static void wrestwar_i8751_sim(running_machine *machine)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_START( atomicp )
|
||||
{
|
||||
state_save_register_global(machine, atomicp_sound_count);
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_HANDLER( atomicp_sound_w )
|
||||
{
|
||||
ym2413_w(devtag_get_device(space->machine, "ymsnd"), offset, data >> 8);
|
||||
@ -3296,7 +3300,9 @@ static MACHINE_DRIVER_START( atomicp ) /* 10MHz CPU Clock verified */
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_DEVICE_REMOVE("soundcpu")
|
||||
MDRV_MACHINE_RESET(atomicp)
|
||||
|
||||
MDRV_MACHINE_START(atomicp)
|
||||
MDRV_TIMER_ADD_PERIODIC("atomicp_timer", atomicp_sound_irq, HZ(10000))
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SOUND_REPLACE("ymsnd", YM2413, XTAL_20MHz/4) /* 20MHz OSC divided by 4 (verified) */
|
||||
@ -6356,7 +6362,7 @@ static DRIVER_INIT( atomicp )
|
||||
system16b_generic_init(machine, ROM_BOARD_ATOMICP);
|
||||
disable_screen_blanking = 1;
|
||||
segaic16_display_enable = 1;
|
||||
atomicp_sound_rate = 10000;
|
||||
atomicp_sound_divisor = 1;
|
||||
}
|
||||
|
||||
|
||||
@ -6365,7 +6371,7 @@ static DRIVER_INIT( snapper )
|
||||
system16b_generic_init(machine, ROM_BOARD_ATOMICP);
|
||||
disable_screen_blanking = 1;
|
||||
segaic16_display_enable = 1;
|
||||
atomicp_sound_rate = 2500;
|
||||
atomicp_sound_divisor = 4;
|
||||
}
|
||||
|
||||
|
||||
|
@ -888,35 +888,6 @@ static READ32_HANDLER( spi_unknown_r )
|
||||
return 0xffffffff;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( ds2404_reset_w )
|
||||
{
|
||||
if( ACCESSING_BITS_0_7 ) {
|
||||
DS2404_1W_reset_w(space, offset, data);
|
||||
}
|
||||
}
|
||||
|
||||
static READ32_HANDLER( ds2404_data_r )
|
||||
{
|
||||
if( ACCESSING_BITS_0_7 ) {
|
||||
return DS2404_data_r(space, offset);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( ds2404_data_w )
|
||||
{
|
||||
if( ACCESSING_BITS_0_7 ) {
|
||||
DS2404_data_w(space, offset, data);
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( ds2404_clk_w )
|
||||
{
|
||||
if( ACCESSING_BITS_0_7 ) {
|
||||
DS2404_clk_w(space, offset, data);
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( eeprom_w )
|
||||
{
|
||||
const device_config *oki2 = devtag_get_device(space->machine, "oki2");
|
||||
@ -1090,10 +1061,10 @@ static ADDRESS_MAP_START( spi_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x00000680, 0x00000683) AM_WRITE(sound_fifo_w)
|
||||
AM_RANGE(0x00000684, 0x00000687) AM_READ(sound_fifo_status_r)
|
||||
AM_RANGE(0x00000684, 0x00000687) AM_WRITENOP /* Unknown */
|
||||
AM_RANGE(0x000006d0, 0x000006d3) AM_WRITE(ds2404_reset_w)
|
||||
AM_RANGE(0x000006d4, 0x000006d7) AM_WRITE(ds2404_data_w)
|
||||
AM_RANGE(0x000006d8, 0x000006db) AM_WRITE(ds2404_clk_w)
|
||||
AM_RANGE(0x000006dc, 0x000006df) AM_READ(ds2404_data_r)
|
||||
AM_RANGE(0x000006d0, 0x000006d3) AM_DEVWRITE8("ds2404", ds2404_1w_reset_w, 0x000000ff)
|
||||
AM_RANGE(0x000006d4, 0x000006d7) AM_DEVWRITE8("ds2404", ds2404_data_w, 0x000000ff)
|
||||
AM_RANGE(0x000006d8, 0x000006db) AM_DEVWRITE8("ds2404", ds2404_clk_w, 0x000000ff)
|
||||
AM_RANGE(0x000006dc, 0x000006df) AM_DEVREAD8("ds2404", ds2404_data_r, 0x000000ff)
|
||||
AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_BASE(&spimainram)
|
||||
AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE("share2")
|
||||
AM_RANGE(0x00a00000, 0x013fffff) AM_READ(soundrom_r)
|
||||
@ -1822,16 +1793,6 @@ GFXDECODE_END
|
||||
|
||||
static NVRAM_HANDLER( spi )
|
||||
{
|
||||
if( read_or_write ) {
|
||||
DS2404_save(file);
|
||||
} else {
|
||||
DS2404_init(machine, 1995, 1, 1);
|
||||
|
||||
if(file) {
|
||||
DS2404_load(file);
|
||||
}
|
||||
}
|
||||
|
||||
nvram_handler_intelflash(machine, 0, file, read_or_write);
|
||||
nvram_handler_intelflash(machine, 1, file, read_or_write);
|
||||
}
|
||||
@ -1874,6 +1835,11 @@ static IRQ_CALLBACK(spi_irq_callback)
|
||||
|
||||
/* SPI */
|
||||
|
||||
static MACHINE_START( spi )
|
||||
{
|
||||
z80_rom = auto_alloc_array(machine, UINT8, 0x40000);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( spi )
|
||||
{
|
||||
int i;
|
||||
@ -1889,7 +1855,6 @@ static MACHINE_RESET( spi )
|
||||
memory_install_write32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x00000688, 0x0000068b, 0, 0, z80_prg_fifo_w);
|
||||
memory_install_write32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x0000068c, 0x0000068f, 0, 0, z80_enable_w);
|
||||
|
||||
z80_rom = auto_alloc_array(machine, UINT8, 0x40000);
|
||||
memory_set_bankptr(machine, "bank4", z80_rom);
|
||||
memory_set_bankptr(machine, "bank5", z80_rom);
|
||||
|
||||
@ -1923,9 +1888,12 @@ static MACHINE_DRIVER_START( spi )
|
||||
|
||||
MDRV_QUANTUM_TIME(HZ(12000))
|
||||
|
||||
MDRV_MACHINE_START(spi)
|
||||
MDRV_MACHINE_RESET(spi)
|
||||
MDRV_NVRAM_HANDLER(spi)
|
||||
|
||||
MDRV_DS2404_ADD("ds2404", 1995, 1, 1)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(54)
|
||||
@ -2238,7 +2206,7 @@ static MACHINE_DRIVER_START( seibu386 )
|
||||
|
||||
MDRV_NVRAM_HANDLER(sxx2f)
|
||||
MDRV_MACHINE_RESET(seibu386)
|
||||
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(54)
|
||||
|
@ -24,6 +24,8 @@ WRITE8_HANDLER( nitedrvr_steering_reset_w );
|
||||
WRITE8_HANDLER( nitedrvr_out0_w );
|
||||
WRITE8_HANDLER( nitedrvr_out1_w );
|
||||
|
||||
TIMER_DEVICE_CALLBACK( nitedrvr_crash_toggle_callback );
|
||||
|
||||
MACHINE_RESET( nitedrvr );
|
||||
MACHINE_START( nitedrvr );
|
||||
|
||||
|
@ -58,11 +58,13 @@ void jumpshot_decode(running_machine *machine);
|
||||
|
||||
/*----------- defined in machine/theglobp.c -----------*/
|
||||
|
||||
MACHINE_START( theglobp );
|
||||
MACHINE_RESET( theglobp );
|
||||
READ8_HANDLER( theglobp_decrypt_rom );
|
||||
|
||||
|
||||
/*----------- defined in machine/acitya.c -------------*/
|
||||
|
||||
MACHINE_START( acitya );
|
||||
MACHINE_RESET( acitya );
|
||||
READ8_HANDLER( acitya_decrypt_rom );
|
||||
|
@ -184,7 +184,7 @@ READ8_HANDLER( acitya_decrypt_rom )
|
||||
}
|
||||
|
||||
|
||||
MACHINE_RESET( acitya )
|
||||
MACHINE_START( acitya )
|
||||
{
|
||||
UINT8 *RAM = memory_region(machine, "maincpu");
|
||||
|
||||
@ -196,10 +196,15 @@ MACHINE_RESET( acitya )
|
||||
acitya_decrypt_rom_A(machine);
|
||||
acitya_decrypt_rom_B(machine);
|
||||
|
||||
/* The initial state of the counter is 0x0B */
|
||||
counter = 0x0B;
|
||||
memory_configure_bank(machine, "bank1", 0, 4, &RAM[0x10000], 0x4000);
|
||||
memory_set_bank(machine, "bank1", 3);
|
||||
|
||||
state_save_register_global(machine, counter);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_RESET( acitya )
|
||||
{
|
||||
/* The initial state of the counter is 0x0B */
|
||||
counter = 0x0B;
|
||||
memory_set_bank(machine, "bank1", 3);
|
||||
}
|
||||
|
@ -250,11 +250,11 @@ WRITE8_HANDLER( nitedrvr_out1_w )
|
||||
}
|
||||
|
||||
|
||||
static TIMER_CALLBACK( nitedrvr_crash_toggle_callback )
|
||||
TIMER_DEVICE_CALLBACK( nitedrvr_crash_toggle_callback )
|
||||
{
|
||||
if (nitedrvr_crash_en && nitedrvr_crash_data_en)
|
||||
{
|
||||
const device_config *discrete = devtag_get_device(machine, "discrete");
|
||||
const device_config *discrete = devtag_get_device(timer->machine, "discrete");
|
||||
|
||||
nitedrvr_crash_data--;
|
||||
discrete_sound_w(discrete, NITEDRVR_BANG_DATA, nitedrvr_crash_data); // Crash Volume
|
||||
@ -262,14 +262,14 @@ static TIMER_CALLBACK( nitedrvr_crash_toggle_callback )
|
||||
if (nitedrvr_crash_data & 0x01)
|
||||
{
|
||||
/* Invert video */
|
||||
palette_set_color(machine,1,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
|
||||
palette_set_color(machine,0,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
|
||||
palette_set_color(timer->machine,1,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
|
||||
palette_set_color(timer->machine,0,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Normal video */
|
||||
palette_set_color(machine,0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
|
||||
palette_set_color(machine,1,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
|
||||
palette_set_color(timer->machine,0,MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
|
||||
palette_set_color(timer->machine,1,MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -298,6 +298,4 @@ MACHINE_RESET( nitedrvr )
|
||||
nitedrvr_crash_data_en = 0;
|
||||
ac_line = 0;
|
||||
last_steering_val = 0;
|
||||
|
||||
timer_pulse(machine, PERIOD_OF_555_ASTABLE(RES_K(180), 330, CAP_U(1)), NULL, 0, nitedrvr_crash_toggle_callback);
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ READ8_HANDLER( theglobp_decrypt_rom )
|
||||
}
|
||||
|
||||
|
||||
MACHINE_RESET( theglobp )
|
||||
MACHINE_START( theglobp )
|
||||
{
|
||||
UINT8 *RAM = memory_region(machine, "maincpu");
|
||||
|
||||
@ -250,10 +250,15 @@ MACHINE_RESET( theglobp )
|
||||
theglobp_decrypt_rom_A(machine);
|
||||
theglobp_decrypt_rom_B(machine);
|
||||
|
||||
/* The initial state of the counter is 0x0A */
|
||||
counter = 0x0A;
|
||||
memory_configure_bank(machine, "bank1", 0, 4, &RAM[0x10000], 0x4000);
|
||||
memory_set_bank(machine, "bank1", 2);
|
||||
|
||||
state_save_register_global(machine, counter);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_RESET( theglobp )
|
||||
{
|
||||
/* The initial state of the counter is 0x0A */
|
||||
counter = 0x0A;
|
||||
memory_set_bank(machine, "bank1", 2);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user