Exemplo n.º 1
0
uint32_t gal3_state::screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
	int i;
	char mst[18], slv[18];
	static int pivot = 15;
	int pri;

	update_palette();

	if( machine().input().code_pressed_once(KEYCODE_H)&&(pivot<15) )    pivot+=1;
	if( machine().input().code_pressed_once(KEYCODE_J)&&(pivot>0) ) pivot-=1;

	for( pri=0; pri<pivot; pri++ )
	{
		c355_obj_draw(screen, bitmap, cliprect, pri);
	}

/*  CopyVisiblePolyFrameBuffer( bitmap, cliprect,0,0x7fbf );

    for( pri=pivot; pri<15; pri++ )
    {
        c355_obj_draw(screen, bitmap, cliprect, pri);
    }*/

	// CPU Diag LEDs
	mst[17]='\0', slv[17]='\0';
/// printf("mst=0x%x\tslv=0x%x\n", m_led_mst, m_led_slv);
	for(i=16;i<32;i++)
	{
		int t;
		if(i<24)
			t=i;
		else
			t=i+1;
		mst[8]=' '; slv[8]=' ';

		if(m_led_mst&(1<<i))
			mst[t-16]='*';
		else
			mst[t-16]='O';

		if(m_led_slv&(1<<i))
			slv[t-16]='*';
		else
			slv[t-16]='O';
	}

	popmessage("LED_MST:  %s\nLED_SLV:  %s\n2D Layer: 0-%d (Press H for +, J for -)\n", mst, slv, pivot);

	return 0;
}
Exemplo n.º 2
0
UINT32 namcofl_state::screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	int pri;

	namcofl_install_palette(machine());

	bitmap.fill(get_black_pen(machine()), cliprect );

	for( pri=0; pri<16; pri++ )
	{
		c169_roz_draw(screen, bitmap, cliprect, pri);
		if((pri&1)==0)
			namco_tilemap_draw( screen, bitmap, cliprect, pri>>1 );
		c355_obj_draw(screen, bitmap, cliprect, pri );
	}

	return 0;
}
Exemplo n.º 3
0
UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	UINT8 *videoram = m_videoram;
	int pivot = 3;
	int pri;
	update_palette(machine());
	bitmap.fill(0xff, cliprect );

	if( m_gametype != NAMCOS21_WINRUN91 )
	{ /* draw low priority 2d sprites */
		c355_obj_draw(screen, bitmap, cliprect, 2 );
		c355_obj_draw(screen, bitmap, cliprect, 14 );   //driver's eyes
	}

	CopyVisiblePolyFrameBuffer( machine(), bitmap, cliprect, 0x7fc0, 0x7ffe );

	if( m_gametype != NAMCOS21_WINRUN91 )
	{ /* draw low priority 2d sprites */
		c355_obj_draw(screen, bitmap, cliprect, 0 );
		c355_obj_draw(screen, bitmap, cliprect, 1 );
	}

	CopyVisiblePolyFrameBuffer( machine(), bitmap, cliprect, 0, 0x7fbf );


	if( m_gametype != NAMCOS21_WINRUN91 )
	{ /* draw high priority 2d sprites */
		for( pri=pivot; pri<8; pri++ )
		{
			c355_obj_draw(screen, bitmap, cliprect, pri );
		}
			c355_obj_draw(screen, bitmap, cliprect, 15 );   //driver's eyes
	}
	else
	{ /* winrun bitmap layer */
		int yscroll = -cliprect.min_y+(INT16)m_winrun_gpu_register[0x2/2];
		int base = 0x1000+0x100*(m_winrun_color&0xf);
		int sx,sy;
		for( sy=cliprect.min_y; sy<=cliprect.max_y; sy++ )
		{
			const UINT8 *pSource = &videoram[((yscroll+sy)&0x3ff)*0x200];
			UINT16 *pDest = &bitmap.pix16(sy);
			for( sx=cliprect.min_x; sx<=cliprect.max_x; sx++ )
			{
				int pen = pSource[sx];
				switch( pen )
				{
				case 0xff:
					break;
				case 0x00:
					pDest[sx] = (pDest[sx]&0x1fff)+0x4000;
					break;
				case 0x01:
					pDest[sx] = (pDest[sx]&0x1fff)+0x6000;
					break;
				default:
					pDest[sx] = base|pen;
					break;
				}
			}
		}
	} /* winrun bitmap layer */
	return 0;
}