Exemple #1
0
UINT32 wrally_state::screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	/* set scroll registers */
	if (!flip_screen()) {
		m_pant[0]->set_scrolly(0, m_vregs[0]);
		m_pant[0]->set_scrollx(0, m_vregs[1]+4);
		m_pant[1]->set_scrolly(0, m_vregs[2]);
		m_pant[1]->set_scrollx(0, m_vregs[3]);
	} else {
		m_pant[0]->set_scrolly(0, 248 - m_vregs[0]);
		m_pant[0]->set_scrollx(0, 1024 - m_vregs[1] - 4);
		m_pant[1]->set_scrolly(0, 248 - m_vregs[2]);
		m_pant[1]->set_scrollx(0, 1024 - m_vregs[3]);
	}

	/* draw tilemaps + sprites */
	m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
	m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0);
	m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0);

	m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
	m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0);

	draw_sprites(bitmap,cliprect,0);

	m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0);

	draw_sprites(bitmap,cliprect,1);

	return 0;
}
Exemple #2
0
static SCREEN_UPDATE(kingdrby)
{
	kingdrby_state *state = screen->machine().driver_data<kingdrby_state>();
	const rectangle &visarea = screen->visible_area();
	rectangle clip;
	tilemap_set_scrollx( state->m_sc0_tilemap,0, state->m_vram[0x342]);
	tilemap_set_scrolly( state->m_sc0_tilemap,0, state->m_vram[0x341]);
	tilemap_set_scrollx( state->m_sc1_tilemap,0, state->m_vram[0x342]);
	tilemap_set_scrolly( state->m_sc1_tilemap,0, state->m_vram[0x341]);
	tilemap_set_scrolly( state->m_sc0w_tilemap,0, 32);

	/* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/
	clip.min_x = visarea.min_x;
	clip.max_x = 256;
	clip.min_y = 192;
	clip.max_y = visarea.max_y;

	/*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/
	tilemap_draw(bitmap,cliprect,state->m_sc0_tilemap,0,0);
	draw_sprites(screen->machine(),bitmap,cliprect);
	tilemap_draw(bitmap,cliprect,state->m_sc1_tilemap,TILEMAP_DRAW_CATEGORY(1),0);
	tilemap_draw(bitmap,&clip,state->m_sc0w_tilemap,0,0);

	return 0;
}
Exemple #3
0
UINT32 kingdrby_state::screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	const rectangle &visarea = screen.visible_area();
	rectangle clip;
	m_sc0_tilemap->set_scrollx(0, m_vram[0x342]);
	m_sc0_tilemap->set_scrolly(0, m_vram[0x341]);
	m_sc1_tilemap->set_scrollx(0, m_vram[0x342]);
	m_sc1_tilemap->set_scrolly(0, m_vram[0x341]);
	m_sc0w_tilemap->set_scrolly(0, 32);

	/* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/
	clip.set(visarea.min_x, 256, 192, visarea.max_y);

	/*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/
	m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
	draw_sprites(machine(),bitmap,cliprect);
	m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
	m_sc0w_tilemap->draw(bitmap, clip, 0,0);

	return 0;
}
Exemple #4
0
static SCREEN_UPDATE_IND16(kingdrby)
{
    kingdrby_state *state = screen.machine().driver_data<kingdrby_state>();
    const rectangle &visarea = screen.visible_area();
    rectangle clip;
    state->m_sc0_tilemap->set_scrollx(0, state->m_vram[0x342]);
    state->m_sc0_tilemap->set_scrolly(0, state->m_vram[0x341]);
    state->m_sc1_tilemap->set_scrollx(0, state->m_vram[0x342]);
    state->m_sc1_tilemap->set_scrolly(0, state->m_vram[0x341]);
    state->m_sc0w_tilemap->set_scrolly(0, 32);

    /* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/
    clip.set(visarea.min_x, 256, 192, visarea.max_y);

    /*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/
    state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
    draw_sprites(screen.machine(),bitmap,cliprect);
    state->m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
    state->m_sc0w_tilemap->draw(bitmap, clip, 0,0);

    return 0;
}