1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// license:BSD-3-Clause
// copyright-holders:Bryan McPhail
/***************************************************************************
stadhero video emulation - Bryan McPhail, mish@tendril.co.uk
*********************************************************************
MXC-06 chip to produce sprites, see decmxc06.cpp
BAC-06 chip for background
??? for text layer
***************************************************************************/
#include "emu.h"
#include "includes/stadhero.h"
/******************************************************************************/
/******************************************************************************/
uint32_t stadhero_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bool flip = m_tilegen->get_flip_state();
m_tilegen->set_flip_screen(flip);
m_spritegen->set_flip_screen(flip);
m_pf1_tilemap->set_flip(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
m_tilegen->deco_bac06_pf_draw(screen,bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0);
m_spritegen->draw_sprites(screen, bitmap, cliprect, m_gfxdecode->gfx(2), m_spriteram, 0x800/2);
m_pf1_tilemap->draw(screen, bitmap, cliprect, 0,0);
return 0;
}
/******************************************************************************/
void stadhero_state::pf1_data_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_pf1_data[offset]);
m_pf1_tilemap->mark_tile_dirty(offset);
}
/******************************************************************************/
TILE_GET_INFO_MEMBER(stadhero_state::get_pf1_tile_info)
{
int tile=m_pf1_data[tile_index];
int color=tile >> 12;
tile=tile&0xfff;
tileinfo.set(0,
tile,
color,
0);
}
void stadhero_state::video_start()
{
m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(stadhero_state::get_pf1_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 32,32);
m_pf1_tilemap->set_transparent_pen(0);
}
/******************************************************************************/
|