1 /*************************************************************************
2 
3 	Driver for Midway MCR games
4 
5 **************************************************************************/
6 
7 /* constants */
8 #define MAIN_OSC_MCR_I		19968000
9 
10 
11 /*----------- defined in machine/mcr.c -----------*/
12 
13 extern INT16 spyhunt_scrollx, spyhunt_scrolly;
14 extern double mcr68_timing_factor;
15 
16 extern Z80_DaisyChain mcr_daisy_chain[];
17 extern UINT8 mcr_cocktail_flip;
18 
19 extern struct GfxLayout mcr_bg_layout;
20 extern struct GfxLayout mcr_sprite_layout;
21 
22 MACHINE_INIT( mcr );
23 MACHINE_INIT( mcr68 );
24 MACHINE_INIT( zwackery );
25 
26 INTERRUPT_GEN( mcr_interrupt );
27 INTERRUPT_GEN( mcr68_interrupt );
28 
29 WRITE_HANDLER( mcr_control_port_w );
30 WRITE_HANDLER( mcrmono_control_port_w );
31 WRITE_HANDLER( mcr_scroll_value_w );
32 
33 WRITE16_HANDLER( mcr68_6840_upper_w );
34 WRITE16_HANDLER( mcr68_6840_lower_w );
35 READ16_HANDLER( mcr68_6840_upper_r );
36 READ16_HANDLER( mcr68_6840_lower_r );
37 
38 
39 /*----------- defined in vidhrdw/mcr12.c -----------*/
40 
41 extern INT8 mcr12_sprite_xoffs;
42 extern INT8 mcr12_sprite_xoffs_flip;
43 
44 VIDEO_START( mcr1 );
45 VIDEO_START( mcr2 );
46 VIDEO_START( twotigra );
47 VIDEO_START( journey );
48 
49 WRITE_HANDLER( mcr1_videoram_w );
50 WRITE_HANDLER( mcr2_videoram_w );
51 WRITE_HANDLER( twotigra_videoram_w );
52 
53 VIDEO_UPDATE( mcr1 );
54 VIDEO_UPDATE( mcr2 );
55 VIDEO_UPDATE( journey );
56 
57 
58 /*----------- defined in vidhrdw/mcr3.c -----------*/
59 
60 extern UINT8 spyhunt_sprite_color_mask;
61 extern INT16 spyhunt_scrollx, spyhunt_scrolly;
62 extern INT16 spyhunt_scroll_offset;
63 
64 extern UINT8 *spyhunt_alpharam;
65 
66 WRITE_HANDLER( mcr3_paletteram_w );
67 WRITE_HANDLER( mcr3_videoram_w );
68 WRITE_HANDLER( spyhunt_videoram_w );
69 WRITE_HANDLER( spyhunt_alpharam_w );
70 
71 void mcr3_update_sprites(struct mame_bitmap *bitmap, const struct rectangle *cliprect, int color_mask, int code_xor, int dx, int dy);
72 
73 VIDEO_START( mcr3 );
74 VIDEO_START( mcrmono );
75 VIDEO_START( spyhunt );
76 VIDEO_START( dotron );
77 
78 PALETTE_INIT( spyhunt );
79 
80 VIDEO_UPDATE( mcr3 );
81 VIDEO_UPDATE( spyhunt );
82 VIDEO_UPDATE( dotron );
83 
84 
85 /*----------- defined in vidhrdw/mcr68.c -----------*/
86 
87 extern UINT8 mcr68_sprite_clip;
88 extern INT8 mcr68_sprite_xoffset;
89 
90 WRITE16_HANDLER( mcr68_paletteram_w );
91 WRITE16_HANDLER( mcr68_videoram_w );
92 
93 VIDEO_START( mcr68 );
94 VIDEO_UPDATE( mcr68 );
95 
96 WRITE16_HANDLER( zwackery_paletteram_w );
97 WRITE16_HANDLER( zwackery_videoram_w );
98 WRITE16_HANDLER( zwackery_spriteram_w );
99 
100 PALETTE_INIT( zwackery );
101 VIDEO_START( zwackery );
102 VIDEO_UPDATE( zwackery );
103