1 /***************************************************************************
2 
3   The Main Event, (c) 1988 Konami
4   Devastators, (c) 1988 Konami
5 
6 Emulation by Bryan McPhail, mish@tendril.co.uk
7 
8 Notes:
9 - Schematics show a palette/work RAM bank selector, but this doesn't seem
10   to be used?
11 
12 - In Devastators, shadows don't work. Bit 7 of the sprite attribute is always 0,
13   could there be a global enable flag in the 051960?
14   This is particularly evident in level 2 where plane shadows cover other sprites.
15   The priority/shadow encoder PROM is quite complex, however bits 5-7 of the sprite
16   attribute don't seem to be used, at least not in the first two levels, so the
17   PROM just maps to the fixed priority order currently implemented.
18 
19 - In Devastators, sprite zooming for the planes in level 2 is particularly bad.
20 
21 ***************************************************************************/
22 
23 #include "driver.h"
24 #include "vidhrdw/generic.h"
25 #include "vidhrdw/konamiic.h"
26 #include "cpu/m6809/m6809.h"
27 
28 
29 VIDEO_UPDATE( mainevt );
30 VIDEO_UPDATE( dv );
31 VIDEO_START( mainevt );
32 VIDEO_START( dv );
33 
34 
35 
INTERRUPT_GEN(mainevt_interrupt)36 static INTERRUPT_GEN( mainevt_interrupt )
37 {
38 	if (K052109_is_IRQ_enabled())
39 		irq0_line_hold();
40 }
41 
42 
43 static int nmi_enable;
44 
WRITE_HANDLER(dv_nmienable_w)45 static WRITE_HANDLER( dv_nmienable_w )
46 {
47 	nmi_enable = data;
48 }
49 
INTERRUPT_GEN(dv_interrupt)50 static INTERRUPT_GEN( dv_interrupt )
51 {
52 	if (nmi_enable)
53 		nmi_line_pulse();
54 }
55 
56 
WRITE_HANDLER(mainevt_bankswitch_w)57 WRITE_HANDLER( mainevt_bankswitch_w )
58 {
59 	unsigned char *RAM = memory_region(REGION_CPU1);
60 	int bankaddress;
61 
62 	/* bit 0-1 ROM bank select */
63 	bankaddress = 0x10000 + (data & 0x03) * 0x2000;
64 	cpu_setbank(1,&RAM[bankaddress]);
65 
66 	/* TODO: bit 5 = select work RAM or palette? */
67 /*	palette_selected = data & 0x20;*/
68 
69 	/* bit 6 = enable char ROM reading through the video RAM */
70 	K052109_set_RMRD_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
71 
72 	/* bit 7 = NINITSET (unknown) */
73 
74 	/* other bits unused */
75 }
76 
WRITE_HANDLER(mainevt_coin_w)77 WRITE_HANDLER( mainevt_coin_w )
78 {
79 	coin_counter_w(0,data & 0x10);
80 	coin_counter_w(1,data & 0x20);
81 	set_led_status(0,data & 0x01);
82 	set_led_status(1,data & 0x02);
83 	set_led_status(2,data & 0x04);
84 	set_led_status(3,data & 0x08);
85 }
86 
WRITE_HANDLER(mainevt_sh_irqtrigger_w)87 WRITE_HANDLER( mainevt_sh_irqtrigger_w )
88 {
89 	cpu_set_irq_line_and_vector(1,0,HOLD_LINE,0xff);
90 }
91 
WRITE_HANDLER(mainevt_sh_irqcontrol_w)92 WRITE_HANDLER( mainevt_sh_irqcontrol_w )
93 {
94 	UPD7759_reset_w(0, data & 2);
95 	UPD7759_start_w(0, data & 1);
96 
97 	interrupt_enable_w(0,data & 4);
98 }
99 
WRITE_HANDLER(devstor_sh_irqcontrol_w)100 WRITE_HANDLER( devstor_sh_irqcontrol_w )
101 {
102 interrupt_enable_w(0,data & 4);
103 }
104 
WRITE_HANDLER(mainevt_sh_bankswitch_w)105 WRITE_HANDLER( mainevt_sh_bankswitch_w )
106 {
107 	int bank_A,bank_B;
108 
109 /*logerror("CPU #1 PC: %04x bank switch = %02x\n",activecpu_get_pc(),data);*/
110 
111 	/* bits 0-3 select the 007232 banks */
112 	bank_A=(data&0x3);
113 	bank_B=((data>>2)&0x3);
114 	K007232_set_bank( 0, bank_A, bank_B );
115 
116 	/* bits 4-5 select the UPD7759 bank */
117 	UPD7759_set_bank_base(0, ((data >> 4) & 0x03) * 0x20000);
118 }
119 
WRITE_HANDLER(dv_sh_bankswitch_w)120 WRITE_HANDLER( dv_sh_bankswitch_w )
121 {
122 	int bank_A,bank_B;
123 
124 /*logerror("CPU #1 PC: %04x bank switch = %02x\n",activecpu_get_pc(),data);*/
125 
126 	/* bits 0-3 select the 007232 banks */
127 	bank_A=(data&0x3);
128 	bank_B=((data>>2)&0x3);
129 	K007232_set_bank( 0, bank_A, bank_B );
130 }
131 
132 
MEMORY_READ_START(readmem)133 static MEMORY_READ_START( readmem )
134 	{ 0x1f94, 0x1f94, input_port_0_r }, /* Coins */
135 	{ 0x1f95, 0x1f95, input_port_1_r }, /* Player 1 */
136 	{ 0x1f96, 0x1f96, input_port_2_r }, /* Player 2 */
137 	{ 0x1f97, 0x1f97, input_port_5_r }, /* Dip 1 */
138 	{ 0x1f98, 0x1f98, input_port_7_r }, /* Dip 3 */
139 	{ 0x1f99, 0x1f99, input_port_3_r }, /* Player 3 */
140 	{ 0x1f9a, 0x1f9a, input_port_4_r }, /* Player 4 */
141 	{ 0x1f9b, 0x1f9b, input_port_6_r }, /* Dip 2 */
142 
143 	{ 0x0000, 0x3fff, K052109_051960_r },
144 	{ 0x4000, 0x5fff, MRA_RAM },
145 	{ 0x6000, 0x7fff, MRA_BANK1 },
146 	{ 0x8000, 0xffff, MRA_ROM },
147 MEMORY_END
148 
149 static MEMORY_WRITE_START( writemem )
150 	{ 0x1f80, 0x1f80, mainevt_bankswitch_w },
151 	{ 0x1f84, 0x1f84, soundlatch_w },				/* probably */
152 	{ 0x1f88, 0x1f88, mainevt_sh_irqtrigger_w },	/* probably */
153 	{ 0x1f8c, 0x1f8d, MWA_NOP },	/* ??? */
154 	{ 0x1f90, 0x1f90, mainevt_coin_w },	/* coin counters + lamps */
155 
156 	{ 0x0000, 0x3fff, K052109_051960_w },
157 	{ 0x4000, 0x5dff, MWA_RAM },
158 	{ 0x5e00, 0x5fff, paletteram_xBBBBBGGGGGRRRRR_swap_w, &paletteram },
159  	{ 0x6000, 0xffff, MWA_ROM },
160 MEMORY_END
161 
162 
163 static MEMORY_READ_START( dv_readmem )
164 	{ 0x1f94, 0x1f94, input_port_0_r }, /* Coins */
165 	{ 0x1f95, 0x1f95, input_port_1_r }, /* Player 1 */
166 	{ 0x1f96, 0x1f96, input_port_2_r }, /* Player 2 */
167 	{ 0x1f97, 0x1f97, input_port_5_r }, /* Dip 1 */
168 	{ 0x1f98, 0x1f98, input_port_7_r }, /* Dip 3 */
169 	{ 0x1f9b, 0x1f9b, input_port_6_r }, /* Dip 2 */
170 	{ 0x1fa0, 0x1fbf, K051733_r },
171 
172 	{ 0x0000, 0x3fff, K052109_051960_r },
173 	{ 0x4000, 0x5fff, MRA_RAM },
174 	{ 0x6000, 0x7fff, MRA_BANK1 },
175 	{ 0x8000, 0xffff, MRA_ROM },
176 MEMORY_END
177 
178 static MEMORY_WRITE_START( dv_writemem )
179 	{ 0x1f80, 0x1f80, mainevt_bankswitch_w },
180 	{ 0x1f84, 0x1f84, soundlatch_w },				/* probably */
181 	{ 0x1f88, 0x1f88, mainevt_sh_irqtrigger_w },	/* probably */
182 	{ 0x1f90, 0x1f90, mainevt_coin_w },	/* coin counters + lamps */
183 	{ 0x1fb2, 0x1fb2, dv_nmienable_w },
184 	{ 0x1fa0, 0x1fbf, K051733_w },
185 
186 	{ 0x0000, 0x3fff, K052109_051960_w },
187 	{ 0x4000, 0x5dff, MWA_RAM },
188 	{ 0x5e00, 0x5fff, paletteram_xBBBBBGGGGGRRRRR_swap_w, &paletteram },
189 	{ 0x6000, 0xffff, MWA_ROM },
190 MEMORY_END
191 
192 
193 static MEMORY_READ_START( sound_readmem )
194 	{ 0x0000, 0x7fff, MRA_ROM },
195 	{ 0x8000, 0x83ff, MRA_RAM },
196 	{ 0xa000, 0xa000, soundlatch_r },
197 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
198 	{ 0xd000, 0xd000, UPD7759_0_busy_r },
199 MEMORY_END
200 
201 static MEMORY_WRITE_START( sound_writemem )
202 	{ 0x0000, 0x7fff, MWA_ROM },
203 	{ 0x8000, 0x83ff, MWA_RAM },
204 	{ 0xb000, 0xb00d, K007232_write_port_0_w },
205 	{ 0x9000, 0x9000, UPD7759_0_port_w },
206 	{ 0xe000, 0xe000, mainevt_sh_irqcontrol_w },
207 	{ 0xf000, 0xf000, mainevt_sh_bankswitch_w },
208 MEMORY_END
209 
210 static MEMORY_READ_START( dv_sound_readmem )
211 	{ 0x0000, 0x7fff, MRA_ROM },
212 	{ 0x8000, 0x83ff, MRA_RAM },
213 	{ 0xa000, 0xa000, soundlatch_r },
214 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
215 	{ 0xc001, 0xc001, YM2151_status_port_0_r },
216 MEMORY_END
217 
218 static MEMORY_WRITE_START( dv_sound_writemem )
219 	{ 0x0000, 0x7fff, MWA_ROM },
220 	{ 0x8000, 0x83ff, MWA_RAM },
221 	{ 0xb000, 0xb00d, K007232_write_port_0_w },
222 	{ 0xc000, 0xc000, YM2151_register_port_0_w },
223 	{ 0xc001, 0xc001, YM2151_data_port_0_w },
224 	{ 0xe000, 0xe000, devstor_sh_irqcontrol_w },
225 	{ 0xf000, 0xf000, dv_sh_bankswitch_w },
226 MEMORY_END
227 
228 
229 
230 /*****************************************************************************/
231 
232 INPUT_PORTS_START( mainevt )
233 	PORT_START	/* IN0 */
234 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
235 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
236 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
237 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
238 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
239 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
240 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
241 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
242 
243 	PORT_START	/* IN1 */
244 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
245 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
246 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
247 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
248 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
249 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
250 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
251 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
252 
253 	PORT_START	/* IN2 */
254 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
255 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
256 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
257 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
258 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
259 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
260 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
261 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
262 
263 	PORT_START	/* IN1 */
264 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
265 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
266 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
267 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
268 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
269 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
270 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
271 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
272 
273 	PORT_START	/* IN2 */
274 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER4 )
275 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4 )
276 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER4 )
277 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER4 )
278 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
279 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
280 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
281 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
282 
283 	PORT_START
284 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
285 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
286 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
287 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
288 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
289 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
290 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
291 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
292 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
293 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
294 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
295 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
296 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
297 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
298 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
299 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
300 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
301 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
302 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
303 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
304 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
305 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
306 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
307 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
308 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
309 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
310 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
311 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
312 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
313 
314  	PORT_START
315 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
316 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
317 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
318 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
319 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
320 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
321 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
322 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
323 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
324 	PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" )
325 	PORT_DIPSETTING(    0x00, "60" )
326 	PORT_DIPSETTING(    0x08, "70" )
327 	PORT_DIPSETTING(    0x10, "80" )
328 	PORT_DIPSETTING(    0x18, "90" )
329 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
330 	PORT_DIPSETTING(    0x60, "Easy" )
331 	PORT_DIPSETTING(    0x40, "Normal" )
332 	PORT_DIPSETTING(    0x20, "Difficult" )
333 	PORT_DIPSETTING(    0x00, "Very Difficult" )
334 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
335 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
336 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
337 
338 	PORT_START
339 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
340 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
341 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
342 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
343 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
344 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
345 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
346 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
347 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
348 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
349 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
350 INPUT_PORTS_END
351 
352 INPUT_PORTS_START( mainev2p )
353 	PORT_START	/* IN0 */
354 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
355 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
356 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
357 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
358 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
359 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
360 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
361 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
362 
363 	PORT_START	/* IN1 */
364 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
365 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
366 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
367 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
368 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
369 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
370 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
371 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
372 
373 	PORT_START	/* IN2 */
374 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
375 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
376 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
377 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
378 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
379 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
380 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
381 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
382 
383 	PORT_START	/* IN1 */
384 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
385 
386 	PORT_START	/* IN2 */
387 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
388 
389 	PORT_START
390 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
391 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
392 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
393 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
394 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
395 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
396 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
397 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
398 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
399 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
400 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
401 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
402 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
403 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
404 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
405 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
406 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
407 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
408 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
409 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
410 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
411 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
412 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
413 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
414 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
415 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
416 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
417 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
418 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
419 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
420 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
421 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
422 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
423 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
424 
425  	PORT_START
426 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
427 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
428 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
429 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
430 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
431 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
432 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
433 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
434 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
435 	PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" )
436 	PORT_DIPSETTING(    0x00, "60" )
437 	PORT_DIPSETTING(    0x08, "70" )
438 	PORT_DIPSETTING(    0x10, "80" )
439 	PORT_DIPSETTING(    0x18, "90" )
440 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
441 	PORT_DIPSETTING(    0x60, "Easy" )
442 	PORT_DIPSETTING(    0x40, "Normal" )
443 	PORT_DIPSETTING(    0x20, "Difficult" )
444 	PORT_DIPSETTING(    0x00, "Very Difficult" )
445 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
446 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
447 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
448 
449 	PORT_START
450 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
451 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
452 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
453 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
454 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
455 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
456 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
457 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
458 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
459 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
460 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
461 INPUT_PORTS_END
462 
463 INPUT_PORTS_START( devstors )
464 	PORT_START	/* IN0 */
465 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
466 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
467 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
468 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
469 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
470 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
471 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
472 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
473 
474 	PORT_START	/* IN1 */
475 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
476 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
477 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
478 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
479 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
480 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
481 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
482 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
483 
484 	PORT_START	/* IN2 */
485 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
486 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
487 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
488 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
489 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
490 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
491 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
492 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
493 
494 	PORT_START
495 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
496 
497 	PORT_START
498 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
499 
500 	PORT_START
501 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
502 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
503 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
504 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
505 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
506 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
507 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
508 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
509 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
510 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
511 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
512 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
513 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
514 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
515 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
516 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
517 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
518 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
519 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
520 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
521 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
522 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
523 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
524 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
525 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
526 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
527 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
528 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
529 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
530 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
531 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
532 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
533 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
534 /*	PORT_DIPSETTING(    0x00, "Invalid" )*/
535 
536  	PORT_START
537 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
538 	PORT_DIPSETTING(    0x03, "2" )
539 	PORT_DIPSETTING(    0x02, "3" )
540 	PORT_DIPSETTING(    0x01, "5" )
541 	PORT_DIPSETTING(    0x00, "7" )
542 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
543 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
544 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
545 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
546 	PORT_DIPSETTING(    0x18, "150 and every 200" )
547 	PORT_DIPSETTING(    0x10, "150 and every 250" )
548 	PORT_DIPSETTING(    0x08, "150" )
549 	PORT_DIPSETTING(    0x00, "200" )
550 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
551 	PORT_DIPSETTING(    0x60, "Easy" )
552 	PORT_DIPSETTING(    0x40, "Normal" )
553 	PORT_DIPSETTING(    0x20, "Difficult" )
554 	PORT_DIPSETTING(    0x00, "Very Difficult" )
555 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
556 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
557 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
558 
559 	PORT_START
560 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
561 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
562 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
563 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
564 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
565 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
566 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
567 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
568 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
569 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
570 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
571 INPUT_PORTS_END
572 
573 /* Same as 'devstors', but additional "Cocktail" Dip Switch (even if I don't see the use) */
574 INPUT_PORTS_START( devstor2 )
575 	PORT_START	/* IN0 */
576 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
577 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
578 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
579 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
580 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
581 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
582 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
583 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
584 
585 	PORT_START	/* IN1 */
586 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
587 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
588 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
589 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
590 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
591 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
592 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
593 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
594 
595 	PORT_START	/* IN2 */
596 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
597 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
598 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
599 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
600 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
601 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
602 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
603 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
604 
605 	PORT_START
606 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
607 
608 	PORT_START
609 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
610 
611 	PORT_START
612 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
613 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
614 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
615 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
616 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
617 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
618 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
619 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
620 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
621 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
622 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
623 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
624 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
625 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
626 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
627 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
628 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
629 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
630 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
631 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
632 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
633 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
634 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
635 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
636 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
637 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
638 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
639 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
640 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
641 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
642 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
643 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
644 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
645 /*	PORT_DIPSETTING(    0x00, "Invalid" )*/
646 
647  	PORT_START
648 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
649 	PORT_DIPSETTING(    0x03, "2" )
650 	PORT_DIPSETTING(    0x02, "3" )
651 	PORT_DIPSETTING(    0x01, "5" )
652 	PORT_DIPSETTING(    0x00, "7" )
653 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
654 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
655 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
656 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
657 	PORT_DIPSETTING(    0x18, "150 and every 200" )
658 	PORT_DIPSETTING(    0x10, "150 and every 250" )
659 	PORT_DIPSETTING(    0x08, "150" )
660 	PORT_DIPSETTING(    0x00, "200" )
661 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
662 	PORT_DIPSETTING(    0x60, "Easy" )
663 	PORT_DIPSETTING(    0x40, "Normal" )
664 	PORT_DIPSETTING(    0x20, "Difficult" )
665 	PORT_DIPSETTING(    0x00, "Very Difficult" )
666 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
667 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
668 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
669 
670 	PORT_START
671 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
672 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
673 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
674 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
675 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
676 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
677 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
678 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
679 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
680 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
681 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
682 INPUT_PORTS_END
683 
684 /*****************************************************************************/
685 
686 static void volume_callback(int v)
687 {
688 	K007232_set_volume(0,0,(v >> 4) * 0x11,0);
689 	K007232_set_volume(0,1,0,(v & 0x0f) * 0x11);
690 }
691 
692 static struct K007232_interface k007232_interface =
693 {
694 	1,		/* number of chips */
695 	3579545,	/* clock */
696 	{ REGION_SOUND1 },	/* memory regions */
697 	{ K007232_VOL(20,MIXER_PAN_CENTER,20,MIXER_PAN_CENTER) },	/* volume */
698 	{ volume_callback }	/* external port callback */
699 };
700 
701 static struct UPD7759_interface upd7759_interface =
702 {
703 	1,		/* number of chips */
704 	{ 50 }, /* volume */
705 	{ REGION_SOUND2 },		/* memory region */
706 	UPD7759_STANDALONE_MODE,		/* chip mode */
707 	{0}
708 };
709 
710 static struct YM2151interface ym2151_interface =
711 {
712 	1,			/* 1 chip */
713 	3579545,	/* 3.579545 MHz */
714 	{ YM3012_VOL(30,MIXER_PAN_CENTER,30,MIXER_PAN_CENTER) },
715 	{ 0 }
716 };
717 
718 static MACHINE_DRIVER_START( mainevt )
719 
720 	/* basic machine hardware */
721 	MDRV_CPU_ADD(HD6309, 3000000)	/* ?? */
MDRV_CPU_MEMORY(readmem,writemem)722 	MDRV_CPU_MEMORY(readmem,writemem)
723 	MDRV_CPU_VBLANK_INT(mainevt_interrupt,1)
724 
725 	MDRV_CPU_ADD(Z80, 3579545)
726 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
727 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
728 	MDRV_CPU_VBLANK_INT(nmi_line_pulse,8)	/* ??? */
729 
730 	MDRV_FRAMES_PER_SECOND(60)
731 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
732 
733 	/* video hardware */
734 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
735 	MDRV_SCREEN_SIZE(64*8, 32*8)
736 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
737 	MDRV_PALETTE_LENGTH(256)
738 
739 	MDRV_VIDEO_START(mainevt)
740 	MDRV_VIDEO_UPDATE(mainevt)
741 
742 	/* sound hardware */
743 	MDRV_SOUND_ADD(K007232, k007232_interface)
744 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
745 MACHINE_DRIVER_END
746 
747 
748 static MACHINE_DRIVER_START( devstors )
749 
750 	/* basic machine hardware */
751 	MDRV_CPU_ADD(HD6309, 3000000)	/* ?? */
752 	MDRV_CPU_MEMORY(dv_readmem,dv_writemem)
753 	MDRV_CPU_VBLANK_INT(dv_interrupt,1)
754 
755 	MDRV_CPU_ADD(Z80, 3579545)
756 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
757 	MDRV_CPU_MEMORY(dv_sound_readmem,dv_sound_writemem)
758 	MDRV_CPU_VBLANK_INT(irq0_line_hold,4)
759 
760 	MDRV_FRAMES_PER_SECOND(60)
761 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
762 
763 	/* video hardware */
764 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
765 	MDRV_SCREEN_SIZE(64*8, 32*8)
766 	MDRV_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
767 	MDRV_PALETTE_LENGTH(256)
768 
769 	MDRV_VIDEO_START(dv)
770 	MDRV_VIDEO_UPDATE(dv)
771 
772 	/* sound hardware */
773 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
774 	MDRV_SOUND_ADD(K007232, k007232_interface)
775 MACHINE_DRIVER_END
776 
777 
778 
779 /***************************************************************************
780 
781   Game driver(s)
782 
783 ***************************************************************************/
784 
785 /* 4 players - English title screen - No "Warning" message in the ROM */
786 
787 ROM_START( mainevt )
788 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
789 	ROM_LOAD( "799c02.k11",   0x10000, 0x08000, CRC(e2e7dbd5) SHA1(80314cd42a9f47f7bb82a2160fb5ef2ddc6dff30) )
790 	ROM_CONTINUE(             0x08000, 0x08000 )
791 
792 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
793 	ROM_LOAD( "799c01.f7",    0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
794 
795 	ROM_REGION( 0x20000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
796 	ROM_LOAD16_BYTE( "799c06.f22",   0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) )
797 	ROM_LOAD16_BYTE( "799c07.h22",   0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) )
798 	ROM_LOAD16_BYTE( "799c08.j22",   0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) )
799 	ROM_LOAD16_BYTE( "799c09.k22",   0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) )
800 
801 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
802 	ROM_LOAD( "799b04.h4",    0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) )
803 	ROM_LOAD( "799b05.k4",    0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) )
804 
805 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
806 	ROM_LOAD( "63s141n.bin",  0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) )	/* priority encoder (not used) */
807 
808 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
809 	ROM_LOAD( "799b03.d4",    0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) )
810 
811 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* 512k for the UPD7759C samples */
812 	ROM_LOAD( "799b06.c22",   0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) )
813 ROM_END
814 
815 
816 /* 4 players - English title screen - No "Warning" message in the ROM */
817 
818 ROM_START( mainevto )
819 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
820 	ROM_LOAD( "799_02.k11",   0x10000, 0x08000, CRC(c143596b) SHA1(5da7efaf0f7c7a493cc242eae115f278bc9c134b) )
821 	ROM_CONTINUE(             0x08000, 0x08000 )
822 
823 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
824 	ROM_LOAD( "799c01.f7",    0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
825 
826 	ROM_REGION( 0x20000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
827 	ROM_LOAD16_BYTE( "799c06.f22",   0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) )
828 	ROM_LOAD16_BYTE( "799c07.h22",   0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) )
829 	ROM_LOAD16_BYTE( "799c08.j22",   0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) )
830 	ROM_LOAD16_BYTE( "799c09.k22",   0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) )
831 
832 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
833 	ROM_LOAD( "799b04.h4",    0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) )
834 	ROM_LOAD( "799b05.k4",    0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) )
835 
836 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
837 	ROM_LOAD( "63s141n.bin",  0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) )	/* priority encoder (not used) */
838 
839 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
840 	ROM_LOAD( "799b03.d4",    0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) )
841 
842 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* 512k for the UPD7759C samples */
843 	ROM_LOAD( "799b06.c22",   0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) )
844 ROM_END
845 
846 
847 /* 2 players - English title screen - "Warning" message in the ROM (not displayed) */
848 
849 ROM_START( mainev2p )
850 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
851 	ROM_LOAD( "799x02.k11",   0x10000, 0x08000, CRC(42cfc650) SHA1(2d1918ebc0d93a2356ad995a6854dbde7c3b8daf) )
852 	ROM_CONTINUE(             0x08000, 0x08000 )
853 
854 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
855 	ROM_LOAD( "799c01.f7",    0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
856 
857 	ROM_REGION( 0x20000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
858 	ROM_LOAD16_BYTE( "799c06.f22",   0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) )
859 	ROM_LOAD16_BYTE( "799c07.h22",   0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) )
860 	ROM_LOAD16_BYTE( "799c08.j22",   0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) )
861 	ROM_LOAD16_BYTE( "799c09.k22",   0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) )
862 
863 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
864 	ROM_LOAD( "799b04.h4",    0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) )
865 	ROM_LOAD( "799b05.k4",    0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) )
866 
867 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
868 	ROM_LOAD( "63s141n.bin",  0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) )	/* priority encoder (not used) */
869 
870 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
871 	ROM_LOAD( "799b03.d4",    0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) )
872 
873 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* 512k for the UPD7759C samples */
874 	ROM_LOAD( "799b06.c22",   0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) )
875 ROM_END
876 
877 
878 /* 2 players - Japan title screen - "Warning" message in the ROM (displayed) */
879 
880 ROM_START( ringohja )
881 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
882 	ROM_LOAD( "799n02.k11",   0x10000, 0x08000, CRC(f9305dd0) SHA1(7135053be9d46ac9c09ab63eca1eb71825a71a13) )
883 	ROM_CONTINUE(             0x08000, 0x08000 )
884 
885 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
886 	ROM_LOAD( "799c01.f7",    0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
887 
888 	ROM_REGION( 0x20000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
889 	ROM_LOAD16_BYTE( "799c06.f22",   0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) )
890 	ROM_LOAD16_BYTE( "799c07.h22",   0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) )
891 	ROM_LOAD16_BYTE( "799c08.j22",   0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) )
892 	ROM_LOAD16_BYTE( "799c09.k22",   0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) )
893 
894 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
895 	ROM_LOAD( "799b04.h4",    0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) )
896 	ROM_LOAD( "799b05.k4",    0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) )
897 
898 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
899 	ROM_LOAD( "63s141n.bin",  0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) )	/* priority encoder (not used) */
900 
901 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
902 	ROM_LOAD( "799b03.d4",    0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) )
903 
904 	ROM_REGION( 0x80000, REGION_SOUND2, 0 )	/* 512k for the UPD7759C samples */
905 	ROM_LOAD( "799b06.c22",   0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) )
906 ROM_END
907 
908 ROM_START( devstors )
909 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
910 	ROM_LOAD( "890-z02.k11",  0x10000, 0x08000, CRC(ebeb306f) SHA1(838fcfe95dfedd61f21f34301d48e337db765ab2) )
911 	ROM_CONTINUE(             0x08000, 0x08000 )
912 
913 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
914 	ROM_LOAD( "dev-k01.rom",  0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
915 
916 	ROM_REGION( 0x40000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
917 	ROM_LOAD16_BYTE( "dev-f06.rom",  0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) )
918 	ROM_LOAD16_BYTE( "dev-f07.rom",  0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) )
919 	ROM_LOAD16_BYTE( "dev-f08.rom",  0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) )
920 	ROM_LOAD16_BYTE( "dev-f09.rom",  0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) )
921 
922 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
923 	ROM_LOAD( "dev-f04.rom",  0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) )
924 	ROM_LOAD( "dev-f05.rom",  0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) )
925 
926 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
927 	ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) )	/* priority encoder (not used) */
928 
929 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
930  	ROM_LOAD( "dev-f03.rom",  0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) )
931 ROM_END
932 
933 ROM_START( devstor2 )
934 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
935 	ROM_LOAD( "dev-x02.rom",  0x10000, 0x08000, CRC(e58ebb35) SHA1(4253b6a7128534cc0866bc910a271d91ac8b40fd) )
936 	ROM_CONTINUE(             0x08000, 0x08000 )
937 
938 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
939 	ROM_LOAD( "dev-k01.rom",  0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
940 
941 	ROM_REGION( 0x40000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
942 	ROM_LOAD16_BYTE( "dev-f06.rom",  0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) )
943 	ROM_LOAD16_BYTE( "dev-f07.rom",  0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) )
944 	ROM_LOAD16_BYTE( "dev-f08.rom",  0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) )
945 	ROM_LOAD16_BYTE( "dev-f09.rom",  0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) )
946 
947 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
948 	ROM_LOAD( "dev-f04.rom",  0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) )
949 	ROM_LOAD( "dev-f05.rom",  0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) )
950 
951 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
952 	ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) )	/* priority encoder (not used) */
953 
954 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
955  	ROM_LOAD( "dev-f03.rom",  0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) )
956 ROM_END
957 
958 ROM_START( devstor3 )
959 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
960 	ROM_LOAD( "890k02.k11",   0x10000, 0x08000, CRC(52f4ccdd) SHA1(074e526ed170a5f2083c8c0808734291a2ea7403) )
961 	ROM_CONTINUE(             0x08000, 0x08000 )
962 
963 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
964 	ROM_LOAD( "dev-k01.rom",  0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
965 
966 	ROM_REGION( 0x40000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
967 	ROM_LOAD16_BYTE( "dev-f06.rom",  0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) )
968 	ROM_LOAD16_BYTE( "dev-f07.rom",  0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) )
969 	ROM_LOAD16_BYTE( "dev-f08.rom",  0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) )
970 	ROM_LOAD16_BYTE( "dev-f09.rom",  0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) )
971 
972 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
973 	ROM_LOAD( "dev-f04.rom",  0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) )
974 	ROM_LOAD( "dev-f05.rom",  0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) )
975 
976 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
977 	ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) )	/* priority encoder (not used) */
978 
979 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
980  	ROM_LOAD( "dev-f03.rom",  0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) )
981 ROM_END
982 
983 ROM_START( garuka )
984 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
985 	ROM_LOAD( "890w02.bin",   0x10000, 0x08000, CRC(b2f6f538) SHA1(95dad3258a2e4c5648d0fc22c06fa3e2da3b5ed1) )
986 	ROM_CONTINUE(             0x08000, 0x08000 )
987 
988 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
989 	ROM_LOAD( "dev-k01.rom",  0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
990 
991 	ROM_REGION( 0x40000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
992 	ROM_LOAD16_BYTE( "dev-f06.rom",  0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) )
993 	ROM_LOAD16_BYTE( "dev-f07.rom",  0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) )
994 	ROM_LOAD16_BYTE( "dev-f08.rom",  0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) )
995 	ROM_LOAD16_BYTE( "dev-f09.rom",  0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) )
996 
997 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
998 	ROM_LOAD( "dev-f04.rom",  0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) )
999 	ROM_LOAD( "dev-f05.rom",  0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) )
1000 
1001 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
1002 	ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) )	/* priority encoder (not used) */
1003 
1004 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* 512k for 007232 samples */
1005  	ROM_LOAD( "dev-f03.rom",  0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) )
1006 ROM_END
1007 
1008 
1009 
1010 static DRIVER_INIT( mainevt )
1011 {
1012 	konami_rom_deinterleave_2(REGION_GFX1);
1013 	konami_rom_deinterleave_2(REGION_GFX2);
1014 }
1015 
1016 
1017 
1018 GAME( 1988, mainevt,  0,        mainevt,  mainevt,  mainevt, ROT0,  "Konami", "The Main Event (4 Players ver. Y)" )
1019 GAME( 1988, mainevto, mainevt,  mainevt,  mainevt,  mainevt, ROT0,  "Konami", "The Main Event (4 Players ver. F)" )
1020 GAME( 1988, mainev2p, mainevt,  mainevt,  mainev2p, mainevt, ROT0,  "Konami", "The Main Event (2 Players ver. X)" )
1021 GAME( 1988, ringohja, mainevt,  mainevt,  mainev2p, mainevt, ROT0,  "Konami", "Ring no Ohja (Japan 2 Players ver. N)" )
1022 GAME( 1988, devstors, 0,        devstors, devstors, mainevt, ROT90, "Konami", "Devastators (ver. Z)" )
1023 GAME( 1988, devstor2, devstors, devstors, devstor2, mainevt, ROT90, "Konami", "Devastators (ver. X)" )
1024 GAME( 1988, devstor3, devstors, devstors, devstors, mainevt, ROT90, "Konami", "Devastators (ver. V)" )
1025 GAME( 1988, garuka,   devstors, devstors, devstor2, mainevt, ROT90, "Konami", "Garuka (Japan ver. W)" )
1026