blob: 3aad966cbd2e1790790a8072ca5fdc427d01601c (
plain) (
blame)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/*************************************************************************
Metro Games
*************************************************************************/
class metro_state
{
public:
static void *alloc(running_machine &machine) { return auto_alloc_clear(&machine, metro_state(machine)); }
metro_state(running_machine &machine) { }
/* memory pointers */
UINT16 * vram_0;
UINT16 * vram_1;
UINT16 * vram_2;
UINT16 * spriteram;
UINT16 * tiletable;
UINT16 * tiletable_old;
UINT16 * blitter_regs;
UINT16 * scroll;
UINT16 * window;
UINT16 * irq_enable;
UINT16 * irq_levels;
UINT16 * irq_vectors;
UINT16 * rombank;
UINT16 * videoregs;
UINT16 * screenctrl;
UINT16 * input_sel;
UINT16 * k053936_ram;
UINT8 * dirtyindex;
UINT8 * empty_tiles;
size_t spriteram_size;
size_t tiletable_size;
int flip_screen;
// UINT16 * paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *k053936_tilemap;
tilemap_t *bg_tilemap[3];
tilemap_t *bg_tilemap_16x16[3];
int support_8bpp, support_16x16;
int has_zoom;
int sprite_xoffs, sprite_yoffs;
/* blitter */
int blitter_bit;
/* irq_related */
int irq_line;
UINT8 requested_int[8];
emu_timer *mouja_irq_timer;
/* sound related */
UINT16 soundstatus;
int porta, portb, busy_sndcpu;
/* misc */
int gakusai_oki_bank_lo, gakusai_oki_bank_hi;
/* used by vmetal.c */
UINT16 *vmetal_texttileram;
UINT16 *vmetal_mid1tileram;
UINT16 *vmetal_mid2tileram;
UINT16 *vmetal_tlookup;
UINT16 *vmetal_videoregs;
tilemap_t *vmetal_texttilemap;
tilemap_t *vmetal_mid1tilemap;
tilemap_t *vmetal_mid2tilemap;
/* devices */
running_device *maincpu;
running_device *audiocpu;
running_device *oki;
running_device *ymsnd;
running_device *k053936;
};
/*----------- defined in video/metro.c -----------*/
WRITE16_HANDLER( metro_window_w );
WRITE16_HANDLER( metro_vram_0_w );
WRITE16_HANDLER( metro_vram_1_w );
WRITE16_HANDLER( metro_vram_2_w );
WRITE16_HANDLER( metro_k053936_w );
VIDEO_START( metro_14100 );
VIDEO_START( metro_14220 );
VIDEO_START( metro_14300 );
VIDEO_START( blzntrnd );
VIDEO_START( gstrik2 );
VIDEO_UPDATE( metro );
void metro_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect);
|