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