Пример #1
0
ROM_END

/***************************************************************************

  Game driver(s)

***************************************************************************/

static KONAMI_SETLINES_CALLBACK( crimfght_banking )
{
	crimfght_state *state = device->machine().driver_data<crimfght_state>();

	/* bit 5 = select work RAM or palette */
	if (lines & 0x20)
	{
		device->memory().space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank3");
		device->memory().space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(crimfght_state::paletteram_xBBBBBGGGGGRRRRR_byte_be_w), state));
		state->membank("bank3")->set_base(state->m_generic_paletteram_8);
	}
	else
		device->memory().space(AS_PROGRAM).install_readwrite_bank(0x0000, 0x03ff, "bank1");								/* RAM */

	/* bit 6 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->m_k052109, (lines & 0x40) ? ASSERT_LINE : CLEAR_LINE);

	state->membank("bank2")->set_entry(lines & 0x0f);
}
Пример #2
0
/***************************************************************************

  Game ROMs

***************************************************************************/

ROM_START( blockhl )
	ROM_REGION( 0x18000, "maincpu", 0 ) /* code + banked roms + space for banked RAM */
	ROM_LOAD( "973l02.e21", 0x10000, 0x08000, CRC(e14f849a) SHA1(d44cf178cc98998b72ed32c6e20b6ebdf1f97579) )
	ROM_CONTINUE(           0x08000, 0x08000 )

	ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
	ROM_LOAD( "973d01.g6",  0x0000, 0x8000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) )

	ROM_REGION( 0x20000, "gfx1", 0 ) /* graphics (addressable by the main CPU) */
	ROM_LOAD16_BYTE( "973f07.k15", 0x00000, 0x08000, CRC(1a8cd9b4) SHA1(7cb7944d24ac51fa6b610542d9dec68697cacf0f) )	/* tiles */
	ROM_LOAD16_BYTE( "973f08.k18", 0x00001, 0x08000, CRC(952b51a6) SHA1(017575738d444b688b137cad5611638d53be84f2) )
	ROM_LOAD16_BYTE( "973f09.k20", 0x10000, 0x08000, CRC(77841594) SHA1(e1bfdc5bb598d865868d578ef7faba8078becd7a) )
	ROM_LOAD16_BYTE( "973f10.k23", 0x10001, 0x08000, CRC(09039fab) SHA1(a9dea17aacf4484d21ef3b16470263447b51b6b5) )

	ROM_REGION( 0x20000, "gfx2", 0 ) /* graphics (addressable by the main CPU) */
	ROM_LOAD16_BYTE( "973f06.k12", 0x00000, 0x08000, CRC(51acfdb6) SHA1(94d243f341b490684f5297d95d4835bd522ece35) )	/* sprites */
	ROM_LOAD16_BYTE( "973f05.k9",  0x00001, 0x08000, CRC(4cfea298) SHA1(4772b5b99f5fd8174d8884bd84173512e1edabf4) )
	ROM_LOAD16_BYTE( "973f04.k7",  0x10000, 0x08000, CRC(69ca41bd) SHA1(9b0b1c888efd2f2d5525f14778e18fb4a7353eb6) )
	ROM_LOAD16_BYTE( "973f03.k4",  0x10001, 0x08000, CRC(21e98472) SHA1(8c697d369a1f57be0825c33b4e9107ce1b02a130) )

	ROM_REGION( 0x0100, "proms", 0 )	/* PROMs */
	ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) )	/* priority encoder (not used) */
ROM_END

ROM_START( quarth )
	ROM_REGION( 0x18000, "maincpu", 0 ) /* code + banked roms + space for banked RAM */
	ROM_LOAD( "973j02.e21", 0x10000, 0x08000, CRC(27a90118) SHA1(51309385b93db29b9277d14252166c4ea1746303) )
	ROM_CONTINUE(           0x08000, 0x08000 )

	ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
	ROM_LOAD( "973d01.g6",  0x0000, 0x8000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) )

	ROM_REGION( 0x20000, "gfx1", 0 ) /* graphics (addressable by the main CPU) */
	ROM_LOAD16_BYTE( "973e07.k15", 0x00000, 0x08000, CRC(0bd6b0f8) SHA1(6c59cf637354fe2df424eaa89feb9c1bc1f66a92) )	/* tiles */
	ROM_LOAD16_BYTE( "973e08.k18", 0x00001, 0x08000, CRC(104d0d5f) SHA1(595698911513113d01e5b565f5b073d1bd033d3f) )
	ROM_LOAD16_BYTE( "973e09.k20", 0x10000, 0x08000, CRC(bd3a6f24) SHA1(eb45db3a6a52bb2b25df8c2dace877e59b4130a6) )
	ROM_LOAD16_BYTE( "973e10.k23", 0x10001, 0x08000, CRC(cf5e4b86) SHA1(43348753894c1763b26dbfc70245dac92048db8f) )

	ROM_REGION( 0x20000, "gfx2", 0 ) /* graphics (addressable by the main CPU) */
	ROM_LOAD16_BYTE( "973e06.k12", 0x00000, 0x08000, CRC(0d58af85) SHA1(2efd661d614fb305a14cfe1aa4fb17714f215d4f) )	/* sprites */
	ROM_LOAD16_BYTE( "973e05.k9",  0x00001, 0x08000, CRC(15d822cb) SHA1(70ecad5e0a461df0da6e6eb23f43a7b643297f0d) )
	ROM_LOAD16_BYTE( "973e04.k7",  0x10000, 0x08000, CRC(d70f4a2c) SHA1(25f835a17bacf2b8debb2eb8a3cff90cab3f402a) )
	ROM_LOAD16_BYTE( "973e03.k4",  0x10001, 0x08000, CRC(2c5a4b4b) SHA1(e2991dd78b9cd96cf93ebd6de0d4e060d346ab9c) )

	ROM_REGION( 0x0100, "proms", 0 )	/* PROMs */
	ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) )	/* priority encoder (not used) */
ROM_END


/***************************************************************************

  Game driver(s)

***************************************************************************/

static KONAMI_SETLINES_CALLBACK( blockhl_banking )
{
	blockhl_state *state = device->machine().driver_data<blockhl_state>();

	/* bits 0-1 = ROM bank */
	state->m_rombank = lines & 0x03;
	state->membank("bank1")->set_entry(state->m_rombank);

	/* bits 3/4 = coin counters */
	coin_counter_w(device->machine(), 0, lines & 0x08);
	coin_counter_w(device->machine(), 1, lines & 0x10);

	/* bit 5 = select palette RAM or work RAM at 5800-5fff */
	state->m_palette_selected = ~lines & 0x20;

	/* bit 6 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->m_k052109, (lines & 0x40) ? ASSERT_LINE : CLEAR_LINE);

	/* bit 7 used but unknown */

	/* other bits unknown */

	if ((lines & 0x84) != 0x80)
		logerror("%04x: setlines %02x\n", device->safe_pc(), lines);
}
Пример #3
0
ROM_END

/***************************************************************************

  Game driver(s)

***************************************************************************/

static KONAMI_SETLINES_CALLBACK( crimfght_banking )
{
	crimfght_state *state = device->machine().driver_data<crimfght_state>();

	/* bit 5 = select work RAM or palette */
	if (lines & 0x20)
	{
		device->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x03ff, "bank3");
		device->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0000, 0x03ff, FUNC(paletteram_xBBBBBGGGGGRRRRR_be_w));
		memory_set_bankptr(device->machine(), "bank3", device->machine().generic.paletteram.v);
	}
	else
		device->memory().space(AS_PROGRAM)->install_readwrite_bank(0x0000, 0x03ff, "bank1");								/* RAM */

	/* bit 6 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->m_k052109, (lines & 0x40) ? ASSERT_LINE : CLEAR_LINE);

	memory_set_bank(device->machine(), "bank2", lines & 0x0f);
}
Пример #4
0
INPUT_PORTS_END


/*************************************
 *
 *  Machine driver
 *
 *************************************/

static KONAMI_SETLINES_CALLBACK( k88games_banking )
{
	_88games_state *state = device->machine().driver_data<_88games_state>();
	UINT8 *RAM = state->memregion("maincpu")->base();
	int offs;

	logerror("%04x: bank select %02x\n", device->safe_pc(), lines);

	/* bits 0-2 select ROM bank for 0000-1fff */
	/* bit 3: when 1, palette RAM at 1000-1fff */
	/* bit 4: when 0, 051316 RAM at 3800-3fff; when 1, work RAM at 2000-3fff (NVRAM 3370-37ff) */
	offs = 0x10000 + (lines & 0x07) * 0x2000;
	memcpy(state->m_banked_rom, &RAM[offs], 0x1000);
	if (lines & 0x08)
	{
		if (state->m_generic_paletteram_8 != state->m_paletteram_1000)
		{
			memcpy(state->m_paletteram_1000, state->m_generic_paletteram_8, 0x1000);
			state->m_generic_paletteram_8.set_target(state->m_paletteram_1000, 0x1000);
		}
	}
	else
	{
		if (state->m_generic_paletteram_8 != &RAM[0x20000])
		{
			memcpy(&RAM[0x20000], state->m_generic_paletteram_8, 0x1000);
			state->m_generic_paletteram_8.set_target(&RAM[0x20000], 0x01000);
		}
		memcpy(state->m_paletteram_1000, &RAM[offs+0x1000], 0x1000);
	}

	state->m_videobank = lines & 0x10;

	/* bit 5 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->m_k052109, (lines & 0x20) ? ASSERT_LINE : CLEAR_LINE);

	/* bit 6 is unknown, 1 most of the time */

	/* bit 7 controls layer priority */
	state->m_k88games_priority = lines & 0x80;
}
Пример #5
0
static WRITE8_HANDLER( gbusters_1f98_w )
{
	gbusters_state *state = space->machine->driver_data<gbusters_state>();

	/* bit 0 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->k052109, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);

	/* bit 7 used (during gfx rom tests), but unknown */

	/* other bits unused/unknown */
	if (data & 0xfe)
	{
		//logerror("%04x: (1f98) write %02x\n",cpu_get_pc(space->cpu), data);
		//popmessage("$1f98 = %02x", data);
	}
}
Пример #6
0
static WRITE8_HANDLER( surpratk_5fc0_w )
{
    surpratk_state *state = (surpratk_state *)space->machine->driver_data;

    if ((data & 0xf4) != 0x10)
        logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(space->cpu),data);

    /* bit 0/1 = coin counters */
    coin_counter_w(space->machine, 0, data & 0x01);
    coin_counter_w(space->machine, 1, data & 0x02);

    /* bit 3 = enable char ROM reading through the video RAM */
    k052109_set_rmrd_line(state->k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);

    /* other bits unknown */
}
Пример #7
0
static WRITE8_HANDLER( parodius_3fc0_w )
{
	parodius_state *state = space->machine().driver_data<parodius_state>();

	if ((data & 0xf4) != 0x10)
		logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(&space->device()),data);

	/* bit 0/1 = coin counters */
	coin_counter_w(space->machine(), 0, data & 0x01);
	coin_counter_w(space->machine(), 1, data & 0x02);

	/* bit 3 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);

	/* other bits unknown */
}
Пример #8
0
static WRITE8_HANDLER( vendetta_5fe0_w )
{
	vendetta_state *state = (vendetta_state *)space->machine->driver_data;

	/* bit 0,1 coin counters */
	coin_counter_w(space->machine, 0, data & 0x01);
	coin_counter_w(space->machine, 1, data & 0x02);

	/* bit 2 = BRAMBK ?? */

	/* bit 3 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);

	/* bit 4 = INIT ?? */

	/* bit 5 = enable sprite ROM reading */
	k053246_set_objcha_line(state->k053246, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
}
Пример #9
0
static WRITE8_HANDLER( thunderx_1f98_w )
{
	thunderx_state *state = (thunderx_state *)space->machine->driver_data;

	// logerror("%04x: 1f98_w %02x\n", cpu_get_pc(space->cpu),data);

	/* bit 0 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->k052109, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);

	/* bit 1 = PMC-BK */
	state->pmcbank = (data & 0x02) >> 1;

	/* bit 2 = do collision detection when 0->1 */
	if ((data & 4) && !(state->_1f98_data & 4))
	{
		calculate_collisions(space->machine);

		/* 100 cycle delay is arbitrary */
		timer_set(space->machine, downcast<cpu_device *>(space->cpu)->cycles_to_attotime(100), NULL, 0, thunderx_firq_callback);
	}

	state->_1f98_data = data;
}
Пример #10
0
static WRITE16_HANDLER( eeprom_w )
{
	xmen_state *state = space->machine().driver_data<xmen_state>();

	logerror("%06x: write %04x to 108000\n",cpu_get_pc(&space->device()),data);
	if (ACCESSING_BITS_0_7)
	{
		/* bit 0 = coin counter */
		coin_counter_w(space->machine(), 0, data & 0x01);

		/* bit 2 is data */
		/* bit 3 is clock (active high) */
		/* bit 4 is cs (active low) */
		input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
	}
	if (ACCESSING_BITS_8_15)
	{
		/* bit 8 = enable sprite ROM reading */
		k053246_set_objcha_line(state->m_k053246, (data & 0x0100) ? ASSERT_LINE : CLEAR_LINE);
		/* bit 9 = enable char ROM reading through the video RAM */
		k052109_set_rmrd_line(state->m_k052109, (data & 0x0200) ? ASSERT_LINE : CLEAR_LINE);
	}
}
Пример #11
0
static WRITE8_HANDLER( aliens_coin_counter_w )
{
	aliens_state *state = space->machine().driver_data<aliens_state>();

	/* bits 0-1 = coin counters */
	coin_counter_w(space->machine(), 0, data & 0x01);
	coin_counter_w(space->machine(), 1, data & 0x02);

	/* bit 5 = select work RAM or palette */
	state->m_palette_selected = data & 0x20;

	/* bit 6 = enable char ROM reading through the video RAM */
	k052109_set_rmrd_line(state->m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);

	/* other bits unknown */
#if 0
{
	char baf[40];
	sprintf(baf, "%02x", data);
	popmessage(baf);
}
#endif
}