示例#1
0
文件: aim65.cpp 项目: goofwear/mame
VIDEO_START_MEMBER(aim65_state,aim65)
{
	m_print_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(aim65_state::aim65_printer_timer),this));
	m_printerRAM = std::make_unique<uint16_t[]>((600 * 10 * 2) / 2);
	memset(m_printerRAM, 0, videoram_size);
	VIDEO_START_CALL_MEMBER(generic);
	m_printer_x = 0;
	m_printer_y = 0;
	m_printer_dir = 0;
	m_flag_a = 0;
	m_flag_b = 0;
	m_printer_level = 0;
}
示例#2
0
文件: beta.c 项目: Ilgrim/MAMEHub
void beta_state::machine_start()
{
	m_led_refresh_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(beta_state::led_refresh),this));

	// state saving
	save_item(NAME(m_eprom_oe));
	save_item(NAME(m_eprom_ce));
	save_item(NAME(m_eprom_addr));
	save_item(NAME(m_eprom_data));
	save_item(NAME(m_old_data));
	save_item(NAME(m_ls145_p));
	save_item(NAME(m_segment));
}
示例#3
0
void famibox_state::machine_start()
{
	m_nt_ram = auto_alloc_array(machine(), UINT8, 0x1000);
	m_nt_page[0] = m_nt_ram;
	m_nt_page[1] = m_nt_ram + 0x400;
	m_nt_page[2] = m_nt_ram + 0x800;
	m_nt_page[3] = m_nt_ram + 0xc00;

	machine().device("ppu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(famibox_state::famibox_nt_r), this), write8_delegate(FUNC(famibox_state::famibox_nt_w), this));
	machine().device("ppu")->memory().space(AS_PROGRAM).install_read_bank(0x0000, 0x1fff, "ppubank1");

	famicombox_bankswitch(0);


	m_attract_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(famibox_state::famicombox_attract_timer_callback),this));
	m_gameplay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(famibox_state::famicombox_gameplay_timer_callback),this));
	m_exception_cause = 0xff;
	m_exception_mask = 0;
	m_attract_timer_period = 0;
	m_money_reg = 0;
	m_coins = 0;
}
示例#4
0
void tms34061_device::device_start()
{
	/* resolve callbak */
	m_interrupt_cb.resolve();

	/* reset the data */
	m_vrammask = m_vramsize - 1;

	/* allocate memory for VRAM */
	m_vram = auto_alloc_array_clear(machine(), UINT8, m_vramsize + 256 * 2);

	/* allocate memory for latch RAM */
	m_latchram = auto_alloc_array_clear(machine(), UINT8, m_vramsize + 256 * 2);

	/* add some buffer space for VRAM and latch RAM */
	m_vram += 256;
	m_latchram += 256;

	/* point the shift register to the base of VRAM for now */
	m_shiftreg = m_vram;

	/* initialize registers to their default values from the manual */
	m_regs[TMS34061_HORENDSYNC]   = 0x0010;
	m_regs[TMS34061_HORENDBLNK]   = 0x0020;
	m_regs[TMS34061_HORSTARTBLNK] = 0x01f0;
	m_regs[TMS34061_HORTOTAL]     = 0x0200;
	m_regs[TMS34061_VERENDSYNC]   = 0x0004;
	m_regs[TMS34061_VERENDBLNK]   = 0x0010;
	m_regs[TMS34061_VERSTARTBLNK] = 0x00f0;
	m_regs[TMS34061_VERTOTAL]     = 0x0100;
	m_regs[TMS34061_DISPUPDATE]   = 0x0000;
	m_regs[TMS34061_DISPSTART]    = 0x0000;
	m_regs[TMS34061_VERINT]       = 0x0000;
	m_regs[TMS34061_CONTROL1]     = 0x7000;
	m_regs[TMS34061_CONTROL2]     = 0x0600;
	m_regs[TMS34061_STATUS]       = 0x0000;
	m_regs[TMS34061_XYOFFSET]     = 0x0010;
	m_regs[TMS34061_XYADDRESS]    = 0x0000;
	m_regs[TMS34061_DISPADDRESS]  = 0x0000;
	m_regs[TMS34061_VERCOUNTER]   = 0x0000;

	/* start vertical interrupt timer */
	m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tms34061_device::interrupt), this));

	save_item(NAME(m_regs));
	save_item(NAME(m_xmask));
	save_item(NAME(m_yshift));
	save_pointer(NAME(m_vram), m_vramsize);
	save_pointer(NAME(m_latchram), m_vramsize);
	save_item(NAME(m_latchdata));
}
示例#5
0
文件: gb.c 项目: antervud/MAMEHub
MACHINE_START_MEMBER(gb_state,sgb)
{
	m_sgb_packets = -1;

	/* Allocate the serial timer, and disable it */
	m_gb_serial_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gb_state::gb_serial_timer_proc),this));
	m_gb_serial_timer->enable( 0 );

	save_gb_base();
	save_sgb_only();

	if (m_cartslot && m_cartslot->get_sgb_hack())
		machine().device<sgb_lcd_device>("lcd")->set_sgb_hack(TRUE);
}
示例#6
0
文件: 8042kbdc.c 项目: Ilgrim/MAMEHub
void kbdc8042_device::device_start()
{
	// resolve callbacks
	m_system_reset_func.resolve(m_system_reset_cb, *this);
	m_gate_a20_func.resolve(m_gate_a20_cb, *this);
	m_input_buffer_full_func.resolve(m_input_buffer_full_cb, *this);
	m_output_buffer_empty_func.resolve(m_output_buffer_empty_cb, *this);
	m_speaker_func.resolve(m_speaker_cb, *this);
	m_getout2_func.resolve(m_getout2_cb, *this);
	machine().scheduler().timer_pulse(attotime::from_hz(60), timer_expired_delegate(FUNC(kbdc8042_device::kbdc8042_time),this));
	at_keyboard_init(machine(), AT_KEYBOARD_TYPE_AT);
	at_keyboard_set_scan_code_set(1);
	m_operation_write_state = 0; /* first write to 0x60 might occur before anything can set this */
}
示例#7
0
void amis2152_cpu_device::device_start()
{
	amis2000_base_device::device_start();

	m_d2f_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(amis2152_cpu_device::d2f_timer_cb), this));

	// zerofill
	m_d2f_latch = 0;
	m_fout_state = 0;

	// register for savestates
	save_item(NAME(m_d2f_latch));
	save_item(NAME(m_fout_state));
}
示例#8
0
文件: mame.cpp 项目: goofwear/mame
void mame_machine_manager::create_custom(running_machine& machine)
{
	// start the inifile manager
	m_inifile = std::make_unique<inifile_manager>(machine, m_ui->options());

	// allocate autoboot timer
	m_autoboot_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(mame_machine_manager::autoboot_callback), this));

	// start favorite manager
	m_favorite = std::make_unique<favorite_manager>(machine, m_ui->options());

	// set up the cheat engine
	m_cheat = std::make_unique<cheat_manager>(machine);
}
示例#9
0
void sprint4_state::machine_reset()
{
	machine().scheduler().timer_set(machine().primary_screen->time_until_pos(32), timer_expired_delegate(FUNC(sprint4_state::nmi_callback),this), 32);

	memset(m_steer_FF1, 0, sizeof m_steer_FF1);
	memset(m_steer_FF2, 0, sizeof m_steer_FF2);

	m_gear[0] = 1;
	m_gear[1] = 1;
	m_gear[2] = 1;
	m_gear[3] = 1;

	m_da_latch = 0;
}
示例#10
0
文件: pb1000.cpp 项目: ursine/mame
void pb1000_state::machine_start()
{
	std::string region_tag;
	m_rom_reg = memregion("rom");
	if (m_card1)
		m_card1_reg = memregion(region_tag.assign(m_card1->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
	if (m_card2)
		m_card2_reg = memregion(region_tag.assign(m_card2->tag()).append(GENERIC_ROM_REGION_TAG).c_str());

	membank("bank1")->set_base(m_rom_reg->base());

	m_kb_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pb1000_state::keyboard_timer),this));
	m_kb_timer->adjust(attotime::from_hz(192), 0, attotime::from_hz(192));
}
示例#11
0
文件: cdislave.c 项目: dinkc64/mame
void cdislave_device::device_start()
{
	save_item(NAME(m_channel[0].m_out_buf[0]));
	save_item(NAME(m_channel[0].m_out_buf[1]));
	save_item(NAME(m_channel[0].m_out_buf[2]));
	save_item(NAME(m_channel[0].m_out_buf[3]));
	save_item(NAME(m_channel[0].m_out_index));
	save_item(NAME(m_channel[0].m_out_count));
	save_item(NAME(m_channel[0].m_out_cmd));
	save_item(NAME(m_channel[1].m_out_buf[0]));
	save_item(NAME(m_channel[1].m_out_buf[1]));
	save_item(NAME(m_channel[1].m_out_buf[2]));
	save_item(NAME(m_channel[1].m_out_buf[3]));
	save_item(NAME(m_channel[1].m_out_index));
	save_item(NAME(m_channel[1].m_out_count));
	save_item(NAME(m_channel[1].m_out_cmd));
	save_item(NAME(m_channel[2].m_out_buf[0]));
	save_item(NAME(m_channel[2].m_out_buf[1]));
	save_item(NAME(m_channel[2].m_out_buf[2]));
	save_item(NAME(m_channel[2].m_out_buf[3]));
	save_item(NAME(m_channel[2].m_out_index));
	save_item(NAME(m_channel[2].m_out_count));
	save_item(NAME(m_channel[2].m_out_cmd));
	save_item(NAME(m_channel[3].m_out_buf[0]));
	save_item(NAME(m_channel[3].m_out_buf[1]));
	save_item(NAME(m_channel[3].m_out_buf[2]));
	save_item(NAME(m_channel[3].m_out_buf[3]));
	save_item(NAME(m_channel[3].m_out_index));
	save_item(NAME(m_channel[3].m_out_count));
	save_item(NAME(m_channel[3].m_out_cmd));

	save_item(NAME(m_in_buf));
	save_item(NAME(m_in_index));
	save_item(NAME(m_in_count));

	save_item(NAME(m_polling_active));

	save_item(NAME(m_xbus_interrupt_enable));

	save_item(NAME(m_lcd_state));

	save_item(NAME(m_real_mouse_x));
	save_item(NAME(m_real_mouse_y));

	save_item(NAME(m_fake_mouse_x));
	save_item(NAME(m_fake_mouse_y));

	m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cdislave_device::trigger_readback_int), this));
	m_interrupt_timer->adjust(attotime::never);
}
示例#12
0
文件: irisha.c 项目: Ilgrim/MAMEHub
void irisha_state::machine_start()
{
	static const char *const keynames[] = {
		"LINE0", "LINE1", "LINE2", "LINE3", "LINE4",
		"LINE5", "LINE6", "LINE7", "LINE8", "LINE9"
	};

	for ( int i = 0; i < 10; i++ )
	{
		m_io_ports[i] = ioport( keynames[i] );
	}

	machine().scheduler().timer_pulse(attotime::from_msec(30), timer_expired_delegate(FUNC(irisha_state::irisha_key),this));
}
示例#13
0
文件: moo.cpp 项目: Fulg/mame
INPUT_PORTS_END


MACHINE_START_MEMBER(moo_state,moo)
{
	save_item(NAME(m_cur_control2));
	save_item(NAME(m_alpha_enabled));
	save_item(NAME(m_sprite_colorbase));
	save_item(NAME(m_layer_colorbase));
	save_item(NAME(m_layerpri));
	save_item(NAME(m_protram));

	m_dmaend_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(moo_state::dmaend_callback),this));
}
示例#14
0
void z80ctc_device::ctc_channel::start(z80ctc_device *device, int index)
{
	// initialize state
	m_device = device;
	m_index = index;
	m_timer = m_device->machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(z80ctc_device::ctc_channel::timer_callback), this));

	// register for save states
	m_device->save_item(NAME(m_mode), m_index);
	m_device->save_item(NAME(m_tconst), m_index);
	m_device->save_item(NAME(m_down), m_index);
	m_device->save_item(NAME(m_extclk), m_index);
	m_device->save_item(NAME(m_int_state), m_index);
}
示例#15
0
文件: ay31015.c 项目: LeWoY/MAMEHub
void ay31015_device::device_start()
{
	m_read_si.resolve(read_si_cb, *this);
	m_write_so.resolve(write_so_cb, *this);
	m_status_changed.resolve(status_changed_cb, *this);

	m_tx_clock = transmitter_clock;
	m_rx_clock = receiver_clock;

	m_rx_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ay31015_device::rx_process),this));
	m_tx_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ay31015_device::tx_process),this));

	update_rx_timer();
	update_tx_timer();

	save_item(NAME(m_pins));
	save_item(NAME(m_control_reg));
	save_item(NAME(m_status_reg));
	save_item(NAME(m_second_stop_bit));
	save_item(NAME(m_total_pulses));
	save_item(NAME(m_internal_sample));

	save_item(NAME(m_rx_state));
	save_item(NAME(m_rx_data));
	save_item(NAME(m_rx_buffer));
	save_item(NAME(m_rx_bit_count));
	save_item(NAME(m_rx_parity));
	save_item(NAME(m_rx_pulses));
	save_item(NAME(m_rx_clock));

	save_item(NAME(m_tx_state));
	save_item(NAME(m_tx_data));
	save_item(NAME(m_tx_buffer));
	save_item(NAME(m_tx_parity));
	save_item(NAME(m_tx_pulses));
	save_item(NAME(m_tx_clock));
}
示例#16
0
文件: sslam.c 项目: coinhelper/jsmess
ROM_END

DRIVER_INIT_MEMBER(sslam_state,sslam)
{
	m_track = 0;
	m_melody = 0;
	m_bar = 0;

	save_item(NAME(m_track));
	save_item(NAME(m_melody));
	save_item(NAME(m_bar));
	save_item(NAME(m_snd_bank));

	m_music_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sslam_state::music_playback),this));
}
示例#17
0
MACHINE_START_MEMBER( mc1502_state, mc1502 )
{
	DBG_LOG(0,"init",("machine_start()\n"));

	/*
	       Keyboard polling circuit holds IRQ1 high until a key is
	       pressed, then it starts a timer that pulses IRQ1 low each
	       40ms (check) for 20ms (check) until all keys are released.
	       Last pulse causes BIOS to write a 'break' scancode into port 60h.
	 */
	m_pic8259->ir1_w(1);
	memset(&m_kbd, 0, sizeof(m_kbd));
	m_kbd.keyb_signal_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mc1502_state::keyb_signal_callback),this));
	m_kbd.keyb_signal_timer->adjust( attotime::from_msec(20), 0, attotime::from_msec(20) );
}
示例#18
0
void pecom_state::machine_start()
{
	static const char *const keynames[] = {
		"LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7",
		"LINE8", "LINE9", "LINE10", "LINE11", "LINE12", "LINE13", "LINE14", "LINE15", "LINE16",
		"LINE17", "LINE18", "LINE19", "LINE20", "LINE21", "LINE22", "LINE23", "LINE24","LINE25"
	};

	for ( int i = 0; i < 26; i++ )
	{
		m_io_ports[i] = ioport(keynames[i]);
	}

	m_reset_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pecom_state::reset_tick),this));
}
示例#19
0
MACHINE_CONFIG_END

MACHINE_START_MEMBER(md_boot_state, md_6button)
{
	MACHINE_START_CALL_MEMBER(md_bootleg);

	m_io_pad_6b[0] = ioport("EXTRA1");
	m_io_pad_6b[1] = ioport("EXTRA2");
	m_io_pad_6b[2] = ioport("IN0");
	m_io_pad_6b[3] = ioport("UNK");

	// setup timers for 6 button pads
	for (int i = 0; i < 3; i++)
		m_io_timeout[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(md_base_state::io_timeout_timer_callback),this), (void*)(FPTR)i);
}
示例#20
0
void sorcerer_state::machine_reset()
{
	address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);

	/* Initialize cassette interface */
	m_cass_data.output.length = 0;
	m_cass_data.output.level = 1;
	m_cass_data.input.length = 0;
	m_cass_data.input.bit = 1;

	m_fe = 0xff;
	sorcerer_fe_w(space, 0, 0, 0xff);

	membank("boot")->set_entry(1);
	machine().scheduler().timer_set(attotime::from_usec(10), timer_expired_delegate(FUNC(sorcerer_state::sorcerer_reset),this));
}
示例#21
0
文件: dectalk.c 项目: clobber/UME
INPUT_PORTS_END

/******************************************************************************
 Machine Drivers
******************************************************************************/
TIMER_CALLBACK_MEMBER(dectalk_state::outfifo_read_cb)
{
	UINT16 data;
	dac_device *speaker = machine().device<dac_device>("dac");
	data = dectalk_outfifo_r(machine());
#ifdef VERBOSE
	if (data!= 0x8000) logerror("sample output: %04X\n", data);
#endif
	machine().scheduler().timer_set(attotime::from_hz(10000), timer_expired_delegate(FUNC(dectalk_state::outfifo_read_cb),this));
	speaker->write_signed16(data);
}
示例#22
0
void kbdc8042_device::at_8042_receive(UINT8 data)
{
	if (LOG_KEYBOARD)
		logerror("at_8042_receive Received 0x%02x\n", data);

	m_data = data;
	m_keyboard.received = 1;

	if (!m_input_buffer_full_cb.isnull())
	{
		m_input_buffer_full_cb(1);
		/* Lets 8952's timers do their job before clear the interrupt line, */
		/* else Keyboard interrupt never happens. */
		machine().scheduler().timer_set(attotime::from_usec(2), timer_expired_delegate(FUNC(kbdc8042_device::kbdc8042_clr_int),this));
	}
}
示例#23
0
文件: v3021.cpp 项目: Ashura-X/mame
void v3021_device::device_start()
{
	/* let's call the timer callback every second */
	machine().scheduler().timer_pulse(attotime::from_hz(clock() / XTAL_32_768kHz), timer_expired_delegate(FUNC(v3021_device::timer_callback),this));

	system_time systime;
	machine().base_datetime(systime);

	m_rtc.day = ((systime.local_time.mday / 10)<<4) | ((systime.local_time.mday % 10) & 0xf);
	m_rtc.month = (((systime.local_time.month+1) / 10) << 4) | (((systime.local_time.month+1) % 10) & 0xf);
	m_rtc.wday = 1 << systime.local_time.weekday;
	m_rtc.year = (((systime.local_time.year % 100)/10)<<4) | ((systime.local_time.year % 10) & 0xf);
	m_rtc.hour = ((systime.local_time.hour / 10)<<4) | ((systime.local_time.hour % 10) & 0xf);
	m_rtc.min = ((systime.local_time.minute / 10)<<4) | ((systime.local_time.minute % 10) & 0xf);
	m_rtc.sec = ((systime.local_time.second / 10)<<4) | ((systime.local_time.second % 10) & 0xf);
}
示例#24
0
VIDEO_START_MEMBER(atarisy2_state,atarisy2)
{
	/* initialize banked memory */
	m_alpha_tilemap->basemem().set(&m_vram[0x0000], 0x2000, 16, ENDIANNESS_NATIVE, 2);
	m_playfield_tilemap->basemem().set(&m_vram[0x2000], 0x2000, 16, ENDIANNESS_NATIVE, 2);
	m_mob->set_spriteram(&m_vram[0x0c00], 0x0400);

	/* reset the statics */
	m_yscroll_reset_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(atarisy2_state::reset_yscroll_callback),this));
	m_videobank = 0;

	/* save states */
	save_item(NAME(m_playfield_tile_bank));
	save_item(NAME(m_videobank));
	save_item(NAME(m_vram));
}
示例#25
0
文件: orbit.cpp 项目: k2-git/mame
GFXDECODE_END



/*************************************
 *
 *  Machine setup
 *
 *************************************/

void orbit_state::machine_start()
{
	m_irq_off_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(orbit_state::irq_off), this));

	save_item(NAME(m_flip_screen));
}
示例#26
0
文件: rcnt.c 项目: coinhelper/jsmess
void psxrcnt_device::device_start()
{
	int n;

	m_irq0_handler.resolve_safe();
	m_irq1_handler.resolve_safe();
	m_irq2_handler.resolve_safe();

	for( n = 0; n < 3; n++ )
	{
		root_counter[ n ].timer = machine().scheduler().timer_alloc( timer_expired_delegate( FUNC( psxrcnt_device::root_finished ), this ) );
		state_save_register_item( machine(), "psxroot", NULL, n, root_counter[ n ].n_count );
		state_save_register_item( machine(), "psxroot", NULL, n, root_counter[ n ].n_mode );
		state_save_register_item( machine(), "psxroot", NULL, n, root_counter[ n ].n_target );
		state_save_register_item( machine(), "psxroot", NULL, n, root_counter[ n ].n_start );
	}
}
示例#27
0
void dio16_98544_device::device_start()
{
	// set_nubus_device makes m_slot valid
	set_dio_device();

	m_rom = device().machine().root_device().memregion(this->subtag(HP98544_ROM_REGION).c_str())->base();

	m_vram.resize(VRAM_SIZE);
	m_dio->install_memory(0x200000, 0x2fffff, read16_delegate(FUNC(dio16_98544_device::vram_r), this),
							write16_delegate(FUNC(dio16_98544_device::vram_w), this));
	m_dio->install_memory(0x560000, 0x563fff, read16_delegate(FUNC(dio16_98544_device::rom_r), this),
							write16_delegate(FUNC(dio16_98544_device::rom_w), this));
	m_dio->install_memory(0x564000, 0x567fff, read16_delegate(FUNC(dio16_98544_device::ctrl_r), this),
							write16_delegate(FUNC(dio16_98544_device::ctrl_w), this));
	m_cursor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(dio16_98544_device::cursor_callback),this));
	m_cursor_timer->adjust(attotime::from_hz(3));
}
示例#28
0
文件: itech32.cpp 项目: bradhugh/mame
void itech32_state::video_start()
{
	int i;

	/* allocate memory */
	m_videoram = std::make_unique<UINT16[]>(VRAM_WIDTH * (m_vram_height + 16) * 2);
	memset(m_videoram.get(), 0xff, VRAM_WIDTH * (m_vram_height + 16) * 2 * 2);

	/* videoplane[0] is the foreground; videoplane[1] is the background */
	m_videoplane[0] = &m_videoram[0 * VRAM_WIDTH * (m_vram_height + 16) + 8 * VRAM_WIDTH];
	m_videoplane[1] = &m_videoram[1 * VRAM_WIDTH * (m_vram_height + 16) + 8 * VRAM_WIDTH];

	/* set the masks */
	m_vram_mask = VRAM_WIDTH * m_vram_height - 1;
	m_vram_xmask = VRAM_WIDTH - 1;
	m_vram_ymask = m_vram_height - 1;

	/* clear the planes initially */
	for (i = 0; i < VRAM_WIDTH * m_vram_height; i++)
		m_videoplane[0][i] = m_videoplane[1][i] = 0xff;

	/* fetch the GROM base */
	m_grom_base = memregion("gfx1")->base();
	m_grom_size = memregion("gfx1")->bytes();
	m_grom_bank = 0;
	m_grom_bank_mask = m_grom_size >> 24;
	if (m_grom_bank_mask == 2)
		m_grom_bank_mask = 3;

	/* reset statics */
	memset(m_video, 0, 0x80);

	m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(itech32_state::scanline_interrupt),this));
	m_enable_latch[0] = 1;
	m_enable_latch[1] = (m_planes > 1) ? 1 : 0;

	save_item(NAME(m_xfer_xcount));
	save_item(NAME(m_xfer_ycount));
	save_item(NAME(m_xfer_xcur));
	save_item(NAME(m_xfer_ycur));
	save_item(NAME(m_grom_bank));
	save_item(NAME(m_color_latch));
	save_item(NAME(m_enable_latch));
	save_pointer(NAME(m_videoram.get()), VRAM_WIDTH * (m_vram_height + 16) * 2);
}
示例#29
0
void tmp68301_device::device_start()
{
	int i;
	for (i = 0; i < 3; i++)
		m_tmp68301_timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tmp68301_device::timer_callback), this));

	m_in_parallel_cb.resolve_safe(0);
	m_out_parallel_cb.resolve_safe();

	save_item(NAME(m_regs));
	save_item(NAME(m_icr));
	save_item(NAME(m_irq_vector));
	save_item(NAME(m_imr));
	save_item(NAME(m_iisr));
	save_item(NAME(m_scr));
	save_item(NAME(m_pdir));
	save_item(NAME(m_pdr));
}
示例#30
0
文件: xexex.c 项目: dinkc64/mame
void xexex_state::machine_start()
{
	membank("z80bank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
	membank("z80bank")->set_entry(0);

	save_item(NAME(m_cur_alpha));
	save_item(NAME(m_sprite_colorbase));
	save_item(NAME(m_layer_colorbase));
	save_item(NAME(m_layerpri));

	save_item(NAME(m_suspension_active));
	save_item(NAME(m_frame));

	save_item(NAME(m_cur_control2));
	machine().save().register_postload(save_prepost_delegate(FUNC(xexex_state::xexex_postload), this));

	m_dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(xexex_state::dmaend_callback),this));
}