예제 #1
0
static DEVICE_START( iremga20 )
{
	ga20_state *chip = get_safe_token(device);
	int i;

	/* Initialize our chip structure */
	chip->rom = *device->region;
	chip->rom_size = device->region->bytes();

	iremga20_reset(chip);

	for ( i = 0; i < 0x40; i++ )
		chip->regs[i] = 0;

	chip->stream = stream_create( device, 0, 2, device->clock/4, chip, IremGA20_update );

	state_save_register_device_item_array(device, 0, chip->regs);
	for (i = 0; i < 4; i++)
	{
		state_save_register_device_item(device, i, chip->channel[i].rate);
		state_save_register_device_item(device, i, chip->channel[i].size);
		state_save_register_device_item(device, i, chip->channel[i].start);
		state_save_register_device_item(device, i, chip->channel[i].pos);
		state_save_register_device_item(device, i, chip->channel[i].end);
		state_save_register_device_item(device, i, chip->channel[i].volume);
		state_save_register_device_item(device, i, chip->channel[i].pan);
		state_save_register_device_item(device, i, chip->channel[i].effect);
		state_save_register_device_item(device, i, chip->channel[i].play);
	}
}
예제 #2
0
파일: iremga20.c 프로젝트: opicron/mame
static DEVICE_START( iremga20 )
{
	ga20_state *chip = get_safe_token(device);
	int i;

	/* Initialize our chip structure */
	chip->rom = *device->region();
	chip->rom_size = device->region()->bytes();

	iremga20_reset(chip);

	for ( i = 0; i < 0x40; i++ )
		chip->regs[i] = 0;

	chip->stream = device->machine().sound().stream_alloc( *device, 0, 2, device->clock()/4, chip, IremGA20_update );

	device->save_item(NAME(chip->regs));
	for (i = 0; i < 4; i++)
	{
		device->save_item(NAME(chip->channel[i].rate), i);
		device->save_item(NAME(chip->channel[i].size), i);
		device->save_item(NAME(chip->channel[i].start), i);
		device->save_item(NAME(chip->channel[i].pos), i);
		device->save_item(NAME(chip->channel[i].end), i);
		device->save_item(NAME(chip->channel[i].volume), i);
		device->save_item(NAME(chip->channel[i].pan), i);
		device->save_item(NAME(chip->channel[i].effect), i);
		device->save_item(NAME(chip->channel[i].play), i);
	}
}
예제 #3
0
void iremga20_device::device_start()
{
	int i;

	iremga20_reset();

	for ( i = 0; i < 0x40; i++ )
		m_regs[i] = 0;

	m_stream = stream_alloc(0, 2, clock()/4);

	save_item(NAME(m_regs));
	for (i = 0; i < 4; i++)
	{
		save_item(NAME(m_channel[i].rate), i);
		save_item(NAME(m_channel[i].size), i);
		save_item(NAME(m_channel[i].start), i);
		save_item(NAME(m_channel[i].pos), i);
		save_item(NAME(m_channel[i].frac), i);
		save_item(NAME(m_channel[i].end), i);
		save_item(NAME(m_channel[i].volume), i);
		save_item(NAME(m_channel[i].pan), i);
		save_item(NAME(m_channel[i].effect), i);
		save_item(NAME(m_channel[i].play), i);
	}
}
예제 #4
0
static DEVICE_RESET( iremga20 )
{
	iremga20_reset(get_safe_token(device));
}
예제 #5
0
void iremga20_device::device_reset()
{
	iremga20_reset();
}