1 /***************************************************************************
2 
3 	Atari Cyberball hardware
4 
5 	driver by Aaron Giles
6 
7 	Games supported:
8 		* Cyberball (1988) [3 sets]
9 		* Cyberball 2072, 2-players (1989) [4 sets]
10 		* Tournament Cyberball 2072 (1989) [2 sets]
11 
12 	Known bugs:
13 		* none at this time
14 
15 ****************************************************************************
16 
17 	Memory map (TBA)
18 
19 ***************************************************************************/
20 
21 
22 #include "driver.h"
23 #include "machine/atarigen.h"
24 #include "sndhrdw/atarijsa.h"
25 #include "cyberbal.h"
26 
27 
28 
29 /*************************************
30  *
31  *	Initialization
32  *
33  *************************************/
34 
update_interrupts(void)35 static void update_interrupts(void)
36 {
37 	int newstate1 = 0;
38 	int newstate2 = 0;
39 	int temp;
40 
41 	if (atarigen_sound_int_state)
42 		newstate1 |= 1;
43 	if (atarigen_video_int_state)
44 		newstate2 |= 1;
45 
46 	if (newstate1)
47 		cpu_set_irq_line(0, newstate1, ASSERT_LINE);
48 	else
49 		cpu_set_irq_line(0, 7, CLEAR_LINE);
50 
51 	if (newstate2)
52 		cpu_set_irq_line(2, newstate2, ASSERT_LINE);
53 	else
54 		cpu_set_irq_line(2, 7, CLEAR_LINE);
55 
56 	/* check for screen swapping */
57 	temp = readinputport(2);
58 	if (temp & 1) cyberbal_set_screen(0);
59 	else if (temp & 2) cyberbal_set_screen(1);
60 }
61 
62 
MACHINE_INIT(cyberbal)63 static MACHINE_INIT( cyberbal )
64 {
65 	atarigen_eeprom_reset();
66 	atarigen_slapstic_reset();
67 	atarigen_interrupt_reset(update_interrupts);
68 	atarigen_scanline_timer_reset(cyberbal_scanline_update, 8);
69 	atarigen_sound_io_reset(1);
70 
71 	cyberbal_sound_reset();
72 
73 	/* CPU 2 doesn't run until reset */
74 	cpu_set_reset_line(2, ASSERT_LINE);
75 
76 	/* make sure we're pointing to the right screen by default */
77 	cyberbal_set_screen(0);
78 }
79 
80 
cyberb2p_update_interrupts(void)81 static void cyberb2p_update_interrupts(void)
82 {
83 	int newstate = 0;
84 
85 	if (atarigen_video_int_state)
86 		newstate |= 1;
87 	if (atarigen_sound_int_state)
88 		newstate |= 3;
89 
90 	if (newstate)
91 		cpu_set_irq_line(0, newstate, ASSERT_LINE);
92 	else
93 		cpu_set_irq_line(0, 7, CLEAR_LINE);
94 }
95 
96 
MACHINE_INIT(cyberb2p)97 static MACHINE_INIT( cyberb2p )
98 {
99 	atarigen_eeprom_reset();
100 	atarigen_interrupt_reset(cyberb2p_update_interrupts);
101 	atarigen_scanline_timer_reset(cyberbal_scanline_update, 8);
102 	atarijsa_reset();
103 
104 	/* make sure we're pointing to the only screen */
105 	cyberbal_set_screen(0);
106 }
107 
108 
109 
110 /*************************************
111  *
112  *	I/O read dispatch.
113  *
114  *************************************/
115 
READ16_HANDLER(special_port0_r)116 static READ16_HANDLER( special_port0_r )
117 {
118 	int temp = readinputport(0);
119 	if (atarigen_cpu_to_sound_ready) temp ^= 0x0080;
120 	return temp;
121 }
122 
123 
READ16_HANDLER(special_port2_r)124 static READ16_HANDLER( special_port2_r )
125 {
126 	int temp = readinputport(2);
127 	if (atarigen_cpu_to_sound_ready) temp ^= 0x2000;
128 	return temp;
129 }
130 
131 
READ16_HANDLER(sound_state_r)132 static READ16_HANDLER( sound_state_r )
133 {
134 	int temp = 0xffff;
135 	if (atarigen_cpu_to_sound_ready) temp ^= 0xffff;
136 	return temp;
137 }
138 
139 
140 
141 /*************************************
142  *
143  *	Extra I/O handlers.
144  *
145  *************************************/
146 
WRITE16_HANDLER(p2_reset_w)147 static WRITE16_HANDLER( p2_reset_w )
148 {
149 	cpu_set_reset_line(2, CLEAR_LINE);
150 }
151 
152 
153 
154 /*************************************
155  *
156  *	Main CPU memory handlers
157  *
158  *************************************/
159 
MEMORY_READ16_START(main_readmem)160 static MEMORY_READ16_START( main_readmem )
161 	{ 0x000000, 0x03ffff, MRA16_ROM },
162 	{ 0xfc0000, 0xfc0fff, atarigen_eeprom_r },
163 	{ 0xfc8000, 0xfcffff, atarigen_sound_upper_r },
164 	{ 0xfe0000, 0xfe0fff, special_port0_r },
165 	{ 0xfe1000, 0xfe1fff, input_port_1_word_r },
166 	{ 0xfe8000, 0xfe8fff, cyberbal_paletteram_1_r },
167 	{ 0xfec000, 0xfecfff, cyberbal_paletteram_0_r },
168 	{ 0xff0000, 0xff37ff, MRA16_BANK1 },	/* shared */
169 	{ 0xff3800, 0xff3fff, MRA16_BANK2 },	/* shared */
170 	{ 0xff4000, 0xff77ff, MRA16_BANK3 },	/* shared */
171 	{ 0xff7800, 0xff9fff, MRA16_BANK4 },	/* shared */
172 	{ 0xffa000, 0xffbfff, MRA16_BANK5 },	/* shared */
173 	{ 0xffc000, 0xffffff, MRA16_BANK6 },
174 MEMORY_END
175 
176 
177 static MEMORY_WRITE16_START( main_writemem )
178 	{ 0x000000, 0x03ffff, MWA16_ROM },
179 	{ 0xfc0000, 0xfc0fff, atarigen_eeprom_w, &atarigen_eeprom, &atarigen_eeprom_size },
180 	{ 0xfd0000, 0xfd1fff, atarigen_eeprom_enable_w },
181 	{ 0xfd2000, 0xfd3fff, atarigen_sound_reset_w },
182 	{ 0xfd4000, 0xfd5fff, watchdog_reset16_w },
183 	{ 0xfd6000, 0xfd7fff, p2_reset_w },
184 	{ 0xfd8000, 0xfd9fff, atarigen_sound_upper_w },
185 	{ 0xfe8000, 0xfe8fff, cyberbal_paletteram_1_w, &cyberbal_paletteram_1 },
186 	{ 0xfec000, 0xfecfff, cyberbal_paletteram_0_w, &cyberbal_paletteram_0 },
187 	{ 0xff0000, 0xff1fff, atarigen_playfield2_w, &atarigen_playfield2 },
188 	{ 0xff2000, 0xff2fff, atarigen_alpha2_w, &atarigen_alpha2 },
189 	{ 0xff3000, 0xff37ff, atarimo_1_spriteram_w, &atarimo_1_spriteram },
190 	{ 0xff3800, 0xff3fff, MWA16_BANK2 },
191 	{ 0xff4000, 0xff5fff, atarigen_playfield_w, &atarigen_playfield },
192 	{ 0xff6000, 0xff6fff, atarigen_alpha_w, &atarigen_alpha },
193 	{ 0xff7000, 0xff77ff, atarimo_0_spriteram_w, &atarimo_0_spriteram },
194 	{ 0xff7800, 0xff9fff, MWA16_BANK4 },
195 	{ 0xffa000, 0xffbfff, MWA16_NOP },
196 	{ 0xffc000, 0xffffff, MWA16_BANK6 },
197 MEMORY_END
198 
199 
200 
201 /*************************************
202  *
203  *	Extra CPU memory handlers
204  *
205  *************************************/
206 
207 static MEMORY_READ16_START( extra_readmem )
208 	{ 0x000000, 0x03ffff, MRA16_ROM },
209 	{ 0xfe0000, 0xfe0fff, special_port0_r },
210 	{ 0xfe1000, 0xfe1fff, input_port_1_word_r },
211 	{ 0xfe8000, 0xfe8fff, cyberbal_paletteram_1_r },
212 	{ 0xfec000, 0xfecfff, cyberbal_paletteram_0_r },
213 	{ 0xff0000, 0xff37ff, MRA16_BANK1 },
214 	{ 0xff3800, 0xff3fff, MRA16_BANK2 },
215 	{ 0xff4000, 0xff77ff, MRA16_BANK3 },
216 	{ 0xff7800, 0xff9fff, MRA16_BANK4 },
217 	{ 0xffa000, 0xffbfff, MRA16_BANK5 },
218 	{ 0xffc000, 0xffffff, MRA16_BANK6 },
219 MEMORY_END
220 
221 
222 static MEMORY_WRITE16_START( extra_writemem )
223 	{ 0x000000, 0x03ffff, MWA16_ROM },
224 	{ 0xfc0000, 0xfdffff, atarigen_video_int_ack_w },
225 	{ 0xfe8000, 0xfe8fff, cyberbal_paletteram_1_w },
226 	{ 0xfec000, 0xfecfff, cyberbal_paletteram_0_w },
227 	{ 0xff0000, 0xff1fff, atarigen_playfield2_w },
228 	{ 0xff2000, 0xff2fff, atarigen_alpha2_w },
229 	{ 0xff3000, 0xff37ff, atarimo_1_spriteram_w },
230 	{ 0xff3800, 0xff3fff, MWA16_BANK2 },
231 	{ 0xff4000, 0xff5fff, atarigen_playfield_w },
232 	{ 0xff6000, 0xff6fff, atarigen_alpha_w },
233 	{ 0xff7000, 0xff77ff, atarimo_0_spriteram_w },
234 	{ 0xff7800, 0xff9fff, MWA16_BANK4 },
235 	{ 0xffa000, 0xffbfff, MWA16_BANK5 },
236 	{ 0xffc000, 0xffffff, MWA16_NOP },
237 MEMORY_END
238 
239 
240 
241 /*************************************
242  *
243  *	Sound CPU memory handlers
244  *
245  *************************************/
246 
247 MEMORY_READ_START( sound_readmem )
248 	{ 0x0000, 0x1fff, MRA_RAM },
249 	{ 0x2000, 0x2001, YM2151_status_port_0_r },
250 	{ 0x2802, 0x2803, atarigen_6502_irq_ack_r },
251 	{ 0x2c00, 0x2c01, atarigen_6502_sound_r },
252 	{ 0x2c02, 0x2c03, cyberbal_special_port3_r },
253 	{ 0x2c04, 0x2c05, cyberbal_sound_68k_6502_r },
254 	{ 0x2c06, 0x2c07, cyberbal_sound_6502_stat_r },
255 	{ 0x3000, 0x3fff, MRA_BANK8 },
256 	{ 0x4000, 0xffff, MRA_ROM },
257 MEMORY_END
258 
259 
260 MEMORY_WRITE_START( sound_writemem )
261 	{ 0x0000, 0x1fff, MWA_RAM },
262 	{ 0x2000, 0x2000, YM2151_register_port_0_w },
263 	{ 0x2001, 0x2001, YM2151_data_port_0_w },
264 	{ 0x2800, 0x2801, cyberbal_sound_68k_6502_w },
265 	{ 0x2802, 0x2803, atarigen_6502_irq_ack_w },
266 	{ 0x2804, 0x2805, atarigen_6502_sound_w },
267 	{ 0x2806, 0x2807, cyberbal_sound_bank_select_w },
268 	{ 0x3000, 0xffff, MWA_ROM },
269 MEMORY_END
270 
271 
272 
273 /*************************************
274  *
275  *	68000 Sound CPU memory handlers
276  *
277  *************************************/
278 
279 static MEMORY_READ16_START( sound_68k_readmem )
280 	{ 0x000000, 0x03ffff, MRA16_ROM },
281 	{ 0xff8000, 0xff87ff, cyberbal_sound_68k_r },
282 	{ 0xfff000, 0xffffff, MRA16_RAM },
283 MEMORY_END
284 
285 
286 static MEMORY_WRITE16_START( sound_68k_writemem )
287 	{ 0x000000, 0x03ffff, MWA16_ROM },
288 	{ 0xff8800, 0xff8fff, cyberbal_sound_68k_w },
289 	{ 0xff9000, 0xff97ff, cyberbal_io_68k_irq_ack_w },
290 	{ 0xff9800, 0xff9fff, cyberbal_sound_68k_dac_w },
291 	{ 0xfff000, 0xffffff, MWA16_RAM },
292 MEMORY_END
293 
294 
295 
296 /*************************************
297  *
298  *	2-player main CPU memory handlers
299  *
300  *************************************/
301 
302 static MEMORY_READ16_START( cyberb2p_readmem )
303 	{ 0x000000, 0x07ffff, MRA16_ROM },
304 	{ 0xfc0000, 0xfc0003, input_port_0_word_r },
305 	{ 0xfc2000, 0xfc2003, input_port_1_word_r },
306 	{ 0xfc4000, 0xfc4003, special_port2_r },
307 	{ 0xfc6000, 0xfc6003, atarigen_sound_upper_r },
308 	{ 0xfc8000, 0xfc8fff, atarigen_eeprom_r },
309 	{ 0xfca000, 0xfcafff, MRA16_RAM },
310 	{ 0xfe0000, 0xfe0003, sound_state_r },
311 	{ 0xff0000, 0xffffff, MRA16_RAM },
312 MEMORY_END
313 
314 
315 static MEMORY_WRITE16_START( cyberb2p_writemem )
316 	{ 0x000000, 0x07ffff, MWA16_ROM },
317 	{ 0xfc8000, 0xfc8fff, atarigen_eeprom_w, &atarigen_eeprom, &atarigen_eeprom_size },
318 	{ 0xfca000, 0xfcafff, atarigen_666_paletteram_w, &paletteram16 },
319 	{ 0xfd0000, 0xfd0003, atarigen_eeprom_enable_w },
320 	{ 0xfd2000, 0xfd2003, atarigen_sound_reset_w },
321 	{ 0xfd4000, 0xfd4003, watchdog_reset16_w },
322 	{ 0xfd6000, 0xfd6003, atarigen_video_int_ack_w },
323 	{ 0xfd8000, 0xfd8003, atarigen_sound_upper_w },
324 	{ 0xff0000, 0xff1fff, atarigen_playfield_w, &atarigen_playfield },
325 	{ 0xff2000, 0xff2fff, atarigen_alpha_w, &atarigen_alpha },
326 	{ 0xff3000, 0xff37ff, atarimo_0_spriteram_w, &atarimo_0_spriteram },
327 	{ 0xff3800, 0xffffff, MWA16_RAM },
328 MEMORY_END
329 
330 
331 
332 /*************************************
333  *
334  *	Port definitions
335  *
336  *************************************/
337 
338 INPUT_PORTS_START( cyberbal )
339 	PORT_START      /* fe0000 */
340 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER4 )
341 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER4 )
342 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER4 )
343 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER4 )
344 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
345 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
346 	PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
347 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER3 )
348 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER3 )
349 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER3 )
350 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER3 )
351 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
352 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
353 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
354 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
355 
356 	PORT_START      /* fe1000 */
357 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
358 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
359 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
360 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
361 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
362 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
363 	PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED )
364 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
365 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
366 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
367 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
368 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
369 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
370 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
371 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_VBLANK )
372 
373 	PORT_START		/* fake port for screen switching */
374 #if (CYBERBALL_DUAL_MODE)
375 	PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
376 #else
377 	PORT_BITX(  0x0001, IP_ACTIVE_HIGH, IPT_BUTTON2, "Select Left Screen", KEYCODE_9, IP_JOY_NONE )
378 	PORT_BITX(  0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2, "Select Right Screen", KEYCODE_0, IP_JOY_NONE )
379 	PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNUSED )
380 #endif
381 
382 	PORT_START		/* audio board port */
383 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
384 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
385 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN4 )
386 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN3 )
387 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
388 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* output buffer full */
389 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )	/* input buffer full */
390 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* self test */
391 INPUT_PORTS_END
392 
393 
394 INPUT_PORTS_START( cyberb2p )
395 	PORT_START      /* fc0000 */
396 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
397 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
398 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
399 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
400 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
401 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
402 	PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED )
403 
404 	PORT_START      /* fc2000 */
405 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
406 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
407 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
408 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
409 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
410 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
411 	PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED )
412 
413 	PORT_START		/* fc4000 */
414 	PORT_BIT( 0x1fff, IP_ACTIVE_LOW, IPT_UNUSED )
415 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
416 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_VBLANK )
417 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
418 
419 	JSA_II_PORT		/* audio board port */
420 INPUT_PORTS_END
421 
422 
423 
424 /*************************************
425  *
426  *	Graphics definitions
427  *
428  *************************************/
429 
430 static struct GfxLayout pfanlayout =
431 {
432 	16,8,
433 	RGN_FRAC(1,1),
434 	4,
435 	{ 0, 1, 2, 3 },
436 	{ 0,0, 4,4, 8,8, 12,12, 16,16, 20,20, 24,24, 28,28 },
437 	{ 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8 },
438 	32*8
439 };
440 
441 static struct GfxLayout pfanlayout_interleaved =
442 {
443 	16,8,
444 	RGN_FRAC(1,2),
445 	4,
446 	{ 0, 1, 2, 3 },
447 	{ RGN_FRAC(1,2)+0,RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4,RGN_FRAC(1,2)+4, 0,0, 4,4, RGN_FRAC(1,2)+8,RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+12,RGN_FRAC(1,2)+12, 8,8, 12,12 },
448 	{ 0*8, 2*8, 4*8, 6*8, 8*8, 10*8, 12*8, 14*8 },
449 	16*8
450 };
451 
452 static struct GfxLayout molayout =
453 {
454 	16,8,
455 	RGN_FRAC(1,4),
456 	4,
457 	{ 0, 1, 2, 3 },
458 	{ RGN_FRAC(3,4)+0, RGN_FRAC(3,4)+4, RGN_FRAC(2,4)+0, RGN_FRAC(2,4)+4, RGN_FRAC(1,4)+0, RGN_FRAC(1,4)+4, 0, 4,
459 	  RGN_FRAC(3,4)+8, RGN_FRAC(3,4)+12, RGN_FRAC(2,4)+8, RGN_FRAC(2,4)+12, RGN_FRAC(1,4)+8, RGN_FRAC(1,4)+12, 8, 12 },
460 	{ 0*8, 2*8, 4*8, 6*8, 8*8, 10*8, 12*8, 14*8 },
461 	16*8
462 };
463 
464 static struct GfxDecodeInfo gfxdecodeinfo[] =
465 {
466 	{ REGION_GFX2, 0, &pfanlayout,     0, 128 },
467 	{ REGION_GFX1, 0, &molayout,   0x600, 16 },
468 	{ REGION_GFX3, 0, &pfanlayout, 0x780, 8 },
469 	{ -1 }
470 };
471 
472 static struct GfxDecodeInfo gfxdecodeinfo_interleaved[] =
473 {
474 	{ REGION_GFX2, 0, &pfanlayout_interleaved,     0, 128 },
475 	{ REGION_GFX1, 0, &molayout,               0x600, 16 },
476 	{ REGION_GFX3, 0, &pfanlayout_interleaved, 0x780, 8 },
477 	{ -1 }
478 };
479 
480 
481 
482 /*************************************
483  *
484  *	Sound definitions
485  *
486  *************************************/
487 
488 static struct YM2151interface ym2151_interface =
489 {
490 	1,
491 	ATARI_CLOCK_14MHz/4,
492 #if (CYBERBALL_DUAL_MODE)
493 	{ YM3012_VOL(60,MIXER_PAN_LEFT,60,MIXER_PAN_RIGHT) },
494 #else
495 	{ YM3012_VOL(30,MIXER_PAN_CENTER,30,MIXER_PAN_CENTER) },
496 #endif
497 	{ atarigen_ym2151_irq_gen }
498 };
499 
500 
501 static struct DACinterface dac_interface =
502 {
503 	2,
504 #if (CYBERBALL_DUAL_MODE)
505 	{ MIXER(100,MIXER_PAN_RIGHT), MIXER(100,MIXER_PAN_LEFT) }
506 #else
507 	{ MIXER(50,MIXER_PAN_CENTER), MIXER(50,MIXER_PAN_CENTER) }
508 #endif
509 };
510 
511 
512 
513 /*************************************
514  *
515  *	Machine driver
516  *
517  *************************************/
518 
519 static MACHINE_DRIVER_START( cyberbal )
520 
521 	/* basic machine hardware */
522 	MDRV_CPU_ADD(M68000, ATARI_CLOCK_14MHz/2)
523 	MDRV_CPU_MEMORY(main_readmem,main_writemem)
524 
525 	MDRV_CPU_ADD(M6502, ATARI_CLOCK_14MHz/8)
526 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
527 	MDRV_CPU_PERIODIC_INT(atarigen_6502_irq_gen,(UINT32)(1000000000.0/((double)ATARI_CLOCK_14MHz/4/4/16/16/14)))
528 
529 	MDRV_CPU_ADD(M68000, ATARI_CLOCK_14MHz/2)
530 	MDRV_CPU_MEMORY(extra_readmem,extra_writemem)
531 	MDRV_CPU_VBLANK_INT(atarigen_video_int_gen,1)
532 
533 	MDRV_CPU_ADD(M68000, ATARI_CLOCK_14MHz/2)
534 	MDRV_CPU_MEMORY(sound_68k_readmem,sound_68k_writemem)
535 	MDRV_CPU_PERIODIC_INT(cyberbal_sound_68k_irq_gen,10000)
536 
537 	MDRV_FRAMES_PER_SECOND(60)
538 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
539 	MDRV_INTERLEAVE(10)
540 
541 	MDRV_MACHINE_INIT(cyberbal)
542 	MDRV_NVRAM_HANDLER(atarigen)
543 
544 	/* video hardware */
545 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_PIXEL_ASPECT_RATIO_1_2 | VIDEO_UPDATE_BEFORE_VBLANK)
546 #if (CYBERBALL_DUAL_MODE)
547 	MDRV_SCREEN_SIZE(42*16*2, 30*8)
548 	MDRV_VISIBLE_AREA(0*8, 42*16*2-1, 0*8, 30*8-1)
549 	MDRV_ASPECT_RATIO(8,3)
550 #else
551 	MDRV_SCREEN_SIZE(42*16, 30*8)
552 	MDRV_VISIBLE_AREA(0*8, 42*16-1, 0*8, 30*8-1)
553 #endif
554 	MDRV_GFXDECODE(gfxdecodeinfo_interleaved)
555 	MDRV_PALETTE_LENGTH(4096)
556 
557 	MDRV_VIDEO_START(cyberbal)
558 	MDRV_VIDEO_UPDATE(cyberbal)
559 
560 	/* sound hardware */
561 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
562 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
563 	MDRV_SOUND_ADD(DAC, dac_interface)
564 MACHINE_DRIVER_END
565 
566 
567 static MACHINE_DRIVER_START( cyberb2p )
568 
569 	/* basic machine hardware */
570 	MDRV_CPU_ADD(M68000, ATARI_CLOCK_14MHz/2)
571 	MDRV_CPU_MEMORY(cyberb2p_readmem,cyberb2p_writemem)
572 	MDRV_CPU_VBLANK_INT(atarigen_video_int_gen,1)
573 
574 	MDRV_FRAMES_PER_SECOND(60)
575 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
576 
577 	MDRV_MACHINE_INIT(cyberb2p)
578 	MDRV_NVRAM_HANDLER(atarigen)
579 
580 	/* video hardware */
581 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_PIXEL_ASPECT_RATIO_1_2 | VIDEO_UPDATE_BEFORE_VBLANK)
582 	MDRV_SCREEN_SIZE(42*16, 30*8)
583 	MDRV_VISIBLE_AREA(0*8, 42*16-1, 0*8, 30*8-1)
584 	MDRV_GFXDECODE(gfxdecodeinfo)
585 	MDRV_PALETTE_LENGTH(2048)
586 
587 	MDRV_VIDEO_START(cyberb2p)
588 	MDRV_VIDEO_UPDATE(cyberbal)
589 
590 	/* sound hardware */
591 	MDRV_IMPORT_FROM(jsa_ii_mono)
592 MACHINE_DRIVER_END
593 
594 
595 
596 /*************************************
597  *
598  *	ROM definition(s)
599  *
600  *************************************/
601 
602 ROM_START( cyberbal )
603 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
604 	ROM_LOAD16_BYTE( "4123-1m.064",  0x000000, 0x010000, CRC(fb872740) SHA1(15e6721d466fe56d7c97c6801e214b32803a0a0d) )
605 	ROM_LOAD16_BYTE( "4124-1kl.064", 0x000001, 0x010000, CRC(87babad9) SHA1(acdc6b5976445e203de19eb03697e307fe6da77d) )
606 
607 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
608 	ROM_LOAD( "2131-2f.064",  0x010000, 0x004000, CRC(bd7e3d84) SHA1(f87878042fc79fa3883136b31ac15ddc22c6023c) )
609 	ROM_CONTINUE(             0x004000, 0x00c000 )
610 
611 	ROM_REGION( 0x40000, REGION_CPU3, 0 )	/* 4*64k for 68000 code */
612 	ROM_LOAD16_BYTE( "2127-3cd.064", 0x000000, 0x010000, CRC(3e5feb1f) SHA1(9f92f496adbdf74e394e0d710d6471b9666ba5e5) )
613 	ROM_LOAD16_BYTE( "2128-1b.064",  0x000001, 0x010000, CRC(4e642cc3) SHA1(f708b6dd4360380bb10059d66df66b07966210b4) )
614 	ROM_LOAD16_BYTE( "1129-1cd.064", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
615 	ROM_LOAD16_BYTE( "1130-3b.064",  0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
616 
617 	ROM_REGION16_BE( 0x40000, REGION_CPU4, 0 )	/* 256k for 68000 sound code */
618 	ROM_LOAD16_BYTE( "1132-3cd.064", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
619 	ROM_LOAD16_BYTE( "1133-1b.064",  0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
620 	ROM_LOAD16_BYTE( "1134-1cd.064", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
621 	ROM_LOAD16_BYTE( "1135-3b.064",  0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
622 
623 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
624 	ROM_LOAD( "1105-15a.064", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
625 	ROM_LOAD( "1109-16a.064", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
626 	ROM_LOAD( "2113-18a.064", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
627 	ROM_LOAD( "1117-19a.064", 0x030000, 0x010000, CRC(0a11d877) SHA1(876cbeffd815c084d7cbd937067d65c04aeebce5) )
628 	ROM_LOAD( "1106-11a.064", 0x050000, 0x010000, CRC(6f53c7c1) SHA1(5856d714c3af338be58156b404fb1e5a89c24cf9) )
629 	ROM_LOAD( "1110-12a.064", 0x060000, 0x010000, CRC(5de609e5) SHA1(bbea36a4cbbfeab113925951ef097673eddf26a8) )
630 	ROM_LOAD( "2114-13a.064", 0x070000, 0x010000, CRC(e6f95010) SHA1(42b14cf0dadfab9ce1032385fd21339b46edcfc2) )
631 	ROM_LOAD( "1118-14a.064", 0x080000, 0x010000, CRC(47f56ced) SHA1(62e80191e1879ffb6c736aec004bbc30a366363f) )
632 	ROM_LOAD( "1107-15c.064", 0x0a0000, 0x010000, CRC(c8f1f7ff) SHA1(2e0374901871d66a243f87bc4b9cbdde5505f0ec) )
633 	ROM_LOAD( "1111-16c.064", 0x0b0000, 0x010000, CRC(6bf0bf98) SHA1(7d2b3b61da3749b352a6bf3f1ae1cb736b5b8386) )
634 	ROM_LOAD( "2115-18c.064", 0x0c0000, 0x010000, CRC(c3168603) SHA1(43e00fc739d1b3dd6d925bad63058fe74c1efc74) )
635 	ROM_LOAD( "1119-19c.064", 0x0d0000, 0x010000, CRC(7ff29d09) SHA1(81458b058f0b037778f255b5afe94a44aba74829) )
636 	ROM_LOAD( "1108-11c.064", 0x0f0000, 0x010000, CRC(99629412) SHA1(53a91b2a1ac62259ec9f78421b22c7b22f4233d6) )
637 	ROM_LOAD( "1112-12c.064", 0x100000, 0x010000, CRC(aa198cb7) SHA1(aad4a60210289d2e5a93aac336ba995ed6ac4886) )
638 	ROM_LOAD( "2116-13c.064", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
639 	ROM_LOAD( "1120-14c.064", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
640 
641 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
642 	ROM_LOAD( "1101-9lm.064", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
643 	ROM_LOAD( "1102-8lm.064", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
644 	ROM_LOAD( "110311lm.064", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
645 	ROM_LOAD( "110410lm.064", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
646 
647 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
648 	ROM_LOAD( "1121-15n.064", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
649 	ROM_LOAD( "1122-16n.064", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
650 ROM_END
651 
652 
653 ROM_START( cyberba2 )
654 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
655 	ROM_LOAD16_BYTE( "2123-1m.064",  0x000000, 0x010000, CRC(502676e8) SHA1(c0f1f1ce50d3df21cb81244268faef6c303cdfab) )
656 	ROM_LOAD16_BYTE( "2124-1kl.064", 0x000001, 0x010000, CRC(30f55915) SHA1(ab93ec46f282ab9a0cd47c989537a7e036975e3f) )
657 
658 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
659 	ROM_LOAD( "2131-2f.064",  0x010000, 0x004000, CRC(bd7e3d84) SHA1(f87878042fc79fa3883136b31ac15ddc22c6023c) )
660 	ROM_CONTINUE(             0x004000, 0x00c000 )
661 
662 	ROM_REGION( 0x40000, REGION_CPU3, 0 )	/* 4*64k for 68000 code */
663 	ROM_LOAD16_BYTE( "2127-3cd.064", 0x000000, 0x010000, CRC(3e5feb1f) SHA1(9f92f496adbdf74e394e0d710d6471b9666ba5e5) )
664 	ROM_LOAD16_BYTE( "2128-1b.064",  0x000001, 0x010000, CRC(4e642cc3) SHA1(f708b6dd4360380bb10059d66df66b07966210b4) )
665 	ROM_LOAD16_BYTE( "1129-1cd.064", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
666 	ROM_LOAD16_BYTE( "1130-3b.064",  0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
667 
668 	ROM_REGION16_BE( 0x40000, REGION_CPU4, 0 )	/* 256k for 68000 sound code */
669 	ROM_LOAD16_BYTE( "1132-3cd.064", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
670 	ROM_LOAD16_BYTE( "1133-1b.064",  0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
671 	ROM_LOAD16_BYTE( "1134-1cd.064", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
672 	ROM_LOAD16_BYTE( "1135-3b.064",  0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
673 
674 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
675 	ROM_LOAD( "1105-15a.064", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
676 	ROM_LOAD( "1109-16a.064", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
677 	ROM_LOAD( "2113-18a.064", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
678 	ROM_LOAD( "1117-19a.064", 0x030000, 0x010000, CRC(0a11d877) SHA1(876cbeffd815c084d7cbd937067d65c04aeebce5) )
679 	ROM_LOAD( "1106-11a.064", 0x050000, 0x010000, CRC(6f53c7c1) SHA1(5856d714c3af338be58156b404fb1e5a89c24cf9) )
680 	ROM_LOAD( "1110-12a.064", 0x060000, 0x010000, CRC(5de609e5) SHA1(bbea36a4cbbfeab113925951ef097673eddf26a8) )
681 	ROM_LOAD( "2114-13a.064", 0x070000, 0x010000, CRC(e6f95010) SHA1(42b14cf0dadfab9ce1032385fd21339b46edcfc2) )
682 	ROM_LOAD( "1118-14a.064", 0x080000, 0x010000, CRC(47f56ced) SHA1(62e80191e1879ffb6c736aec004bbc30a366363f) )
683 	ROM_LOAD( "1107-15c.064", 0x0a0000, 0x010000, CRC(c8f1f7ff) SHA1(2e0374901871d66a243f87bc4b9cbdde5505f0ec) )
684 	ROM_LOAD( "1111-16c.064", 0x0b0000, 0x010000, CRC(6bf0bf98) SHA1(7d2b3b61da3749b352a6bf3f1ae1cb736b5b8386) )
685 	ROM_LOAD( "2115-18c.064", 0x0c0000, 0x010000, CRC(c3168603) SHA1(43e00fc739d1b3dd6d925bad63058fe74c1efc74) )
686 	ROM_LOAD( "1119-19c.064", 0x0d0000, 0x010000, CRC(7ff29d09) SHA1(81458b058f0b037778f255b5afe94a44aba74829) )
687 	ROM_LOAD( "1108-11c.064", 0x0f0000, 0x010000, CRC(99629412) SHA1(53a91b2a1ac62259ec9f78421b22c7b22f4233d6) )
688 	ROM_LOAD( "1112-12c.064", 0x100000, 0x010000, CRC(aa198cb7) SHA1(aad4a60210289d2e5a93aac336ba995ed6ac4886) )
689 	ROM_LOAD( "2116-13c.064", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
690 	ROM_LOAD( "1120-14c.064", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
691 
692 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
693 	ROM_LOAD( "1101-9lm.064", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
694 	ROM_LOAD( "1102-8lm.064", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
695 	ROM_LOAD( "110311lm.064", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
696 	ROM_LOAD( "110410lm.064", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
697 
698 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
699 	ROM_LOAD( "1121-15n.064", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
700 	ROM_LOAD( "1122-16n.064", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
701 ROM_END
702 
703 
704 ROM_START( cyberbap )
705 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
706 	ROM_LOAD16_BYTE( "0123-1m.064",  0x000000, 0x010000, CRC(59bac810) SHA1(d4742b2b554c2ad62a2ea7152db3f06a06cddd67) )
707 	ROM_LOAD16_BYTE( "0124-1kl.064", 0x000001, 0x010000, CRC(e48e6dd3) SHA1(4d45bc66c0a3eb1174db7f19c5dee54dabad68f3) )
708 
709 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
710 	ROM_LOAD( "0131-2f.064",  0x010000, 0x004000, CRC(c72b71ce) SHA1(6d3d8f437cf55ccaaa4490daa69f402902944686) )
711 	ROM_CONTINUE(             0x004000, 0x00c000 )
712 
713 	ROM_REGION( 0x40000, REGION_CPU3, 0 )	/* 4*64k for 68000 code */
714 	ROM_LOAD16_BYTE( "0127-3cd.064", 0x000000, 0x010000, CRC(37ad3420) SHA1(e9c1ea59f5f9a133822a49027b4abf02af855ca2) )
715 	ROM_LOAD16_BYTE( "0128-1b.064",  0x000001, 0x010000, CRC(d89aa8af) SHA1(b9faca1a775c1d699335a5ac0e1d25e8370c02a7) )
716 	ROM_LOAD16_BYTE( "1129-1cd.064", 0x020000, 0x010000, CRC(db11d2f0) SHA1(da9f49af533cbc732b17699040c7930070a90644) )
717 	ROM_LOAD16_BYTE( "1130-3b.064",  0x020001, 0x010000, CRC(fd86b8aa) SHA1(46310efed762632ed176a08aaec41e48aad41cc1) )
718 
719 	ROM_REGION16_BE( 0x40000, REGION_CPU4, 0 )	/* 256k for 68000 sound code */
720 	ROM_LOAD16_BYTE( "0132-3cd.064", 0x000000, 0x010000, CRC(392a442c) SHA1(e108456167f433808b452edb3351d283b5cf7a50) )
721 	ROM_LOAD16_BYTE( "0133-1b.064",  0x000001, 0x010000, CRC(a0a11cf9) SHA1(b28a379cb49d051b6ccff877255409e1231d3030) )
722 	ROM_LOAD16_BYTE( "1134-1cd.064", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
723 	ROM_LOAD16_BYTE( "1135-3b.064",  0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
724 
725 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
726 	ROM_LOAD( "1105-15a.064", 0x000000, 0x010000, CRC(e770eb3e) SHA1(e9f9e9e05774005c8be3bbdc19985b59a0081ef4) )
727 	ROM_LOAD( "1109-16a.064", 0x010000, 0x010000, CRC(40db00da) SHA1(d92d856b06f6ba11621ba7aab3d40653b3c70159) )
728 	ROM_LOAD( "2113-18a.064", 0x020000, 0x010000, CRC(52bb08fb) SHA1(08caa156923daf444e0caafb2cdff0704c90ef1f) )
729 	ROM_LOAD( "1117-19a.064", 0x030000, 0x010000, CRC(0a11d877) SHA1(876cbeffd815c084d7cbd937067d65c04aeebce5) )
730 	ROM_LOAD( "1106-11a.064", 0x050000, 0x010000, CRC(6f53c7c1) SHA1(5856d714c3af338be58156b404fb1e5a89c24cf9) )
731 	ROM_LOAD( "1110-12a.064", 0x060000, 0x010000, CRC(5de609e5) SHA1(bbea36a4cbbfeab113925951ef097673eddf26a8) )
732 	ROM_LOAD( "2114-13a.064", 0x070000, 0x010000, CRC(e6f95010) SHA1(42b14cf0dadfab9ce1032385fd21339b46edcfc2) )
733 	ROM_LOAD( "1118-14a.064", 0x080000, 0x010000, CRC(47f56ced) SHA1(62e80191e1879ffb6c736aec004bbc30a366363f) )
734 	ROM_LOAD( "1107-15c.064", 0x0a0000, 0x010000, CRC(c8f1f7ff) SHA1(2e0374901871d66a243f87bc4b9cbdde5505f0ec) )
735 	ROM_LOAD( "1111-16c.064", 0x0b0000, 0x010000, CRC(6bf0bf98) SHA1(7d2b3b61da3749b352a6bf3f1ae1cb736b5b8386) )
736 	ROM_LOAD( "2115-18c.064", 0x0c0000, 0x010000, CRC(c3168603) SHA1(43e00fc739d1b3dd6d925bad63058fe74c1efc74) )
737 	ROM_LOAD( "1119-19c.064", 0x0d0000, 0x010000, CRC(7ff29d09) SHA1(81458b058f0b037778f255b5afe94a44aba74829) )
738 	ROM_LOAD( "1108-11c.064", 0x0f0000, 0x010000, CRC(99629412) SHA1(53a91b2a1ac62259ec9f78421b22c7b22f4233d6) )
739 	ROM_LOAD( "1112-12c.064", 0x100000, 0x010000, CRC(aa198cb7) SHA1(aad4a60210289d2e5a93aac336ba995ed6ac4886) )
740 	ROM_LOAD( "2116-13c.064", 0x110000, 0x010000, CRC(6cf79a67) SHA1(7f3271b575cf0b5033b5b19f0e71fae251040fc6) )
741 	ROM_LOAD( "1120-14c.064", 0x120000, 0x010000, CRC(40bdf767) SHA1(c57aaea838abeaea1a0060c45c2f33c38a51edb3) )
742 
743 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
744 	ROM_LOAD( "1101-9lm.064", 0x000000, 0x010000, CRC(a64b4da8) SHA1(f68778adb56a1eb964acdbc7e9d690a8a83f170b) )
745 	ROM_LOAD( "1102-8lm.064", 0x010000, 0x010000, CRC(ca91ec1b) SHA1(970c64e19893503cae796daee63b2d7d08eaf551) )
746 	ROM_LOAD( "110311lm.064", 0x020000, 0x010000, CRC(ee29d1d1) SHA1(2a7fea25728c66ce482de76299413ef5da01beef) )
747 	ROM_LOAD( "110410lm.064", 0x030000, 0x010000, CRC(882649f8) SHA1(fbaea597b6e318234e41df245023643f448a4938) )
748 
749 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
750 	ROM_LOAD( "1121-15n.064", 0x000000, 0x010000, CRC(0ca1e3b3) SHA1(d934bc9a1def4404fb86175878404cbb18127a11) )
751 	ROM_LOAD( "1122-16n.064", 0x010000, 0x010000, CRC(882f4e1c) SHA1(f7517ff03502ff029fb375260a35e45414567433) )
752 ROM_END
753 
754 
755 ROM_START( cyberb2p )
756 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 8*64k for 68000 code */
757 	ROM_LOAD16_BYTE( "4019-10c.071", 0x000000, 0x010000, CRC(20c6b09c) SHA1(b12f9247621fe0242171140256b7b92c996dcb19) )
758 	ROM_LOAD16_BYTE( "4020-10d.071", 0x000001, 0x010000, CRC(eaa6c524) SHA1(0bc48dca1f10fbb3dec441d06f447637b6c70356) )
759 	ROM_LOAD16_BYTE( "4021-21c.071", 0x020000, 0x010000, CRC(89ffa885) SHA1(d276209fd72c753d23571464e51d701a54cc3e0e) )
760 	ROM_LOAD16_BYTE( "4022-21d.071", 0x020001, 0x010000, CRC(35da3402) SHA1(7b51e0fb202699457a3b8e2bd8a68fef0889435f) )
761 	ROM_LOAD16_BYTE( "2023-15c.071", 0x040000, 0x010000, CRC(e541b08f) SHA1(345843209b02fb50cb08f55f80036046873b834f) )
762 	ROM_LOAD16_BYTE( "2024-15d.071", 0x040001, 0x010000, CRC(5a77ee95) SHA1(441a45a358eb78cc140c96dc4c42b30e1929ad07) )
763 	ROM_LOAD16_BYTE( "1025-27c.071", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
764 	ROM_LOAD16_BYTE( "1026-27d.071", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
765 
766 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
767 	ROM_LOAD( "1042-1b.071",  0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
768 	ROM_CONTINUE(             0x004000, 0x00c000 )
769 
770 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
771 	ROM_LOAD( "1001-55l.071", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
772 	ROM_LOAD( "1005-43l.071", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
773 	ROM_LOAD( "1032-18a.071", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
774 	ROM_LOAD( "1002-55n.071", 0x050000, 0x020000, CRC(0f71f86c) SHA1(783f33ba5cc1b2f0c42b8515b1cf8b6a2270acb9) )
775 	ROM_LOAD( "1006-43n.071", 0x070000, 0x020000, CRC(df0ab373) SHA1(3d511236eb55a773c66643158c6ef2c4dce53b68) )
776 	ROM_LOAD( "1033-13a.071", 0x090000, 0x010000, CRC(b6270943) SHA1(356e58dfd30c6db15264eceacef0eacda99aabae) )
777 	ROM_LOAD( "1003-90l.071", 0x0a0000, 0x020000, CRC(1cf373a2) SHA1(c8538855bb82fc03e26c64fc9008fbd0c66fac09) )
778 	ROM_LOAD( "1007-78l.071", 0x0c0000, 0x020000, CRC(f2ffab24) SHA1(6c5c90a9d9b342414a0d6258dd27b0b84bf0af0b) )
779 	ROM_LOAD( "1034-18c.071", 0x0e0000, 0x010000, CRC(6514f0bd) SHA1(e887dfb9e0334a7d94e7124cea6101d9ac7f0ab6) )
780 	ROM_LOAD( "1004-90n.071", 0x0f0000, 0x020000, CRC(537f6de3) SHA1(d5d385c3ff07aaef7bd3bd4f6c8066948a45ce9c) )
781 	ROM_LOAD( "1008-78n.071", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
782 	ROM_LOAD( "1035-13c.071", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
783 
784 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
785 	ROM_LOAD( "1013-10k.071", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
786 	ROM_LOAD( "1014-16f.071", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
787 	ROM_LOAD( "1015-16k.071", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
788 	ROM_LOAD( "1016-10f.071", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
789 
790 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
791 	ROM_LOAD( "1017-32n.071", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
792 	ROM_LOAD( "1018-32l.071", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
793 
794 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* 256k for ADPCM samples */
795 	ROM_LOAD( "1043-7k.071",  0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
796 	ROM_LOAD( "1044-7j.071",  0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
797 	ROM_LOAD( "1045-7e.071",  0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
798 	ROM_LOAD( "1046-7d.071",  0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
799 ROM_END
800 
801 
802 ROM_START( cyberb23 )
803 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 8*64k for 68000 code */
804 	ROM_LOAD16_BYTE( "3019-10c.071", 0x000000, 0x010000, CRC(029f8cb6) SHA1(528ab6357592313b41964102c14b90862c05f248) )
805 	ROM_LOAD16_BYTE( "3020-10d.071", 0x000001, 0x010000, CRC(1871b344) SHA1(2b6f2f4760af0f0e1e0b6cb34017dcdca7635e60) )
806 	ROM_LOAD16_BYTE( "3021-21c.071", 0x020000, 0x010000, CRC(fd7ebead) SHA1(4118c865897c7a9f73de200ea9766fe190547606) )
807 	ROM_LOAD16_BYTE( "3022-21d.071", 0x020001, 0x010000, CRC(173ccad4) SHA1(4a8d2751b338dbb6dc556dfab13799561fee4836) )
808 	ROM_LOAD16_BYTE( "2023-15c.071", 0x040000, 0x010000, CRC(e541b08f) SHA1(345843209b02fb50cb08f55f80036046873b834f) )
809 	ROM_LOAD16_BYTE( "2024-15d.071", 0x040001, 0x010000, CRC(5a77ee95) SHA1(441a45a358eb78cc140c96dc4c42b30e1929ad07) )
810 	ROM_LOAD16_BYTE( "1025-27c.071", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
811 	ROM_LOAD16_BYTE( "1026-27d.071", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
812 
813 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
814 	ROM_LOAD( "1042-1b.071",  0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
815 	ROM_CONTINUE(             0x004000, 0x00c000 )
816 
817 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
818 	ROM_LOAD( "1001-55l.071", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
819 	ROM_LOAD( "1005-43l.071", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
820 	ROM_LOAD( "1032-18a.071", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
821 	ROM_LOAD( "1002-55n.071", 0x050000, 0x020000, CRC(0f71f86c) SHA1(783f33ba5cc1b2f0c42b8515b1cf8b6a2270acb9) )
822 	ROM_LOAD( "1006-43n.071", 0x070000, 0x020000, CRC(df0ab373) SHA1(3d511236eb55a773c66643158c6ef2c4dce53b68) )
823 	ROM_LOAD( "1033-13a.071", 0x090000, 0x010000, CRC(b6270943) SHA1(356e58dfd30c6db15264eceacef0eacda99aabae) )
824 	ROM_LOAD( "1003-90l.071", 0x0a0000, 0x020000, CRC(1cf373a2) SHA1(c8538855bb82fc03e26c64fc9008fbd0c66fac09) )
825 	ROM_LOAD( "1007-78l.071", 0x0c0000, 0x020000, CRC(f2ffab24) SHA1(6c5c90a9d9b342414a0d6258dd27b0b84bf0af0b) )
826 	ROM_LOAD( "1034-18c.071", 0x0e0000, 0x010000, CRC(6514f0bd) SHA1(e887dfb9e0334a7d94e7124cea6101d9ac7f0ab6) )
827 	ROM_LOAD( "1004-90n.071", 0x0f0000, 0x020000, CRC(537f6de3) SHA1(d5d385c3ff07aaef7bd3bd4f6c8066948a45ce9c) )
828 	ROM_LOAD( "1008-78n.071", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
829 	ROM_LOAD( "1035-13c.071", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
830 
831 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
832 	ROM_LOAD( "1013-10k.071", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
833 	ROM_LOAD( "1014-16f.071", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
834 	ROM_LOAD( "1015-16k.071", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
835 	ROM_LOAD( "1016-10f.071", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
836 
837 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
838 	ROM_LOAD( "1017-32n.071", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
839 	ROM_LOAD( "1018-32l.071", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
840 
841 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* 256k for ADPCM samples */
842 	ROM_LOAD( "1043-7k.071",  0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
843 	ROM_LOAD( "1044-7j.071",  0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
844 	ROM_LOAD( "1045-7e.071",  0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
845 	ROM_LOAD( "1046-7d.071",  0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
846 ROM_END
847 
848 
849 ROM_START( cyberb22 )
850 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 8*64k for 68000 code */
851 	ROM_LOAD16_BYTE( "2019-10c.071", 0x000000, 0x010000, CRC(acb1e18b) SHA1(37a80f0c8d8b46ebb9660c7f038fc874d4817e93) )
852 	ROM_LOAD16_BYTE( "2020-10d.071", 0x000001, 0x010000, CRC(fd6ec2fd) SHA1(8b871e5e66acd26b8301ac35e3f42fba5b9fce2c) )
853 	ROM_LOAD16_BYTE( "1021-21c.071", 0x020000, 0x010000, CRC(9b6cecc3) SHA1(14291302ca6a35fc4c24d9f7d6a4ef7c88a95e5a) )
854 	ROM_LOAD16_BYTE( "1022-21d.071", 0x020001, 0x010000, CRC(24949cfa) SHA1(283c1e2baf6774ebb7f4674b112bdb703fed5aa5) )
855 	ROM_LOAD16_BYTE( "2023-15c.071", 0x040000, 0x010000, CRC(e541b08f) SHA1(345843209b02fb50cb08f55f80036046873b834f) )
856 	ROM_LOAD16_BYTE( "2024-15d.071", 0x040001, 0x010000, CRC(5a77ee95) SHA1(441a45a358eb78cc140c96dc4c42b30e1929ad07) )
857 	ROM_LOAD16_BYTE( "1025-27c.071", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
858 	ROM_LOAD16_BYTE( "1026-27d.071", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
859 
860 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
861 	ROM_LOAD( "1042-1b.071",  0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
862 	ROM_CONTINUE(             0x004000, 0x00c000 )
863 
864 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
865 	ROM_LOAD( "1001-55l.071", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
866 	ROM_LOAD( "1005-43l.071", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
867 	ROM_LOAD( "1032-18a.071", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
868 	ROM_LOAD( "1002-55n.071", 0x050000, 0x020000, CRC(0f71f86c) SHA1(783f33ba5cc1b2f0c42b8515b1cf8b6a2270acb9) )
869 	ROM_LOAD( "1006-43n.071", 0x070000, 0x020000, CRC(df0ab373) SHA1(3d511236eb55a773c66643158c6ef2c4dce53b68) )
870 	ROM_LOAD( "1033-13a.071", 0x090000, 0x010000, CRC(b6270943) SHA1(356e58dfd30c6db15264eceacef0eacda99aabae) )
871 	ROM_LOAD( "1003-90l.071", 0x0a0000, 0x020000, CRC(1cf373a2) SHA1(c8538855bb82fc03e26c64fc9008fbd0c66fac09) )
872 	ROM_LOAD( "1007-78l.071", 0x0c0000, 0x020000, CRC(f2ffab24) SHA1(6c5c90a9d9b342414a0d6258dd27b0b84bf0af0b) )
873 	ROM_LOAD( "1034-18c.071", 0x0e0000, 0x010000, CRC(6514f0bd) SHA1(e887dfb9e0334a7d94e7124cea6101d9ac7f0ab6) )
874 	ROM_LOAD( "1004-90n.071", 0x0f0000, 0x020000, CRC(537f6de3) SHA1(d5d385c3ff07aaef7bd3bd4f6c8066948a45ce9c) )
875 	ROM_LOAD( "1008-78n.071", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
876 	ROM_LOAD( "1035-13c.071", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
877 
878 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
879 	ROM_LOAD( "1013-10k.071", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
880 	ROM_LOAD( "1014-16f.071", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
881 	ROM_LOAD( "1015-16k.071", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
882 	ROM_LOAD( "1016-10f.071", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
883 
884 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
885 	ROM_LOAD( "1017-32n.071", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
886 	ROM_LOAD( "1018-32l.071", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
887 
888 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* 256k for ADPCM samples */
889 	ROM_LOAD( "1043-7k.071",  0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
890 	ROM_LOAD( "1044-7j.071",  0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
891 	ROM_LOAD( "1045-7e.071",  0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
892 	ROM_LOAD( "1046-7d.071",  0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
893 ROM_END
894 
895 
896 ROM_START( cyberb21 )
897 	ROM_REGION( 0x80000, REGION_CPU1, 0 )	/* 8*64k for 68000 code */
898 	ROM_LOAD16_BYTE( "1019-10c.071", 0x000000, 0x010000, CRC(37f5f8ba) SHA1(80552b41d7d1c3044ccd1cbfbac6051447915d41) )
899 	ROM_LOAD16_BYTE( "1020-10d.071", 0x000001, 0x010000, CRC(cae4faa2) SHA1(e3282416b1d0dccd52dd8763a02647470dd37114) )
900 	ROM_LOAD16_BYTE( "1021-21c.071", 0x020000, 0x010000, CRC(9b6cecc3) SHA1(14291302ca6a35fc4c24d9f7d6a4ef7c88a95e5a) )
901 	ROM_LOAD16_BYTE( "1022-21d.071", 0x020001, 0x010000, CRC(24949cfa) SHA1(283c1e2baf6774ebb7f4674b112bdb703fed5aa5) )
902 	ROM_LOAD16_BYTE( "1023-15c.071", 0x040000, 0x010000, CRC(4043649d) SHA1(7fab7f8cc41fb923368db2f9b14e59ae12aa58e1) )
903 	ROM_LOAD16_BYTE( "1024-15d.071", 0x040001, 0x010000, CRC(ed052dd6) SHA1(3755ca476865f7218dc1c837433cfd6068a61797) )
904 	ROM_LOAD16_BYTE( "1025-27c.071", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
905 	ROM_LOAD16_BYTE( "1026-27d.071", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
906 
907 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
908 	ROM_LOAD( "1042-1b.071",  0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
909 	ROM_CONTINUE(             0x004000, 0x00c000 )
910 
911 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
912 	ROM_LOAD( "1001-55l.071", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
913 	ROM_LOAD( "1005-43l.071", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
914 	ROM_LOAD( "1032-18a.071", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
915 	ROM_LOAD( "1002-55n.071", 0x050000, 0x020000, CRC(0f71f86c) SHA1(783f33ba5cc1b2f0c42b8515b1cf8b6a2270acb9) )
916 	ROM_LOAD( "1006-43n.071", 0x070000, 0x020000, CRC(df0ab373) SHA1(3d511236eb55a773c66643158c6ef2c4dce53b68) )
917 	ROM_LOAD( "1033-13a.071", 0x090000, 0x010000, CRC(b6270943) SHA1(356e58dfd30c6db15264eceacef0eacda99aabae) )
918 	ROM_LOAD( "1003-90l.071", 0x0a0000, 0x020000, CRC(1cf373a2) SHA1(c8538855bb82fc03e26c64fc9008fbd0c66fac09) )
919 	ROM_LOAD( "1007-78l.071", 0x0c0000, 0x020000, CRC(f2ffab24) SHA1(6c5c90a9d9b342414a0d6258dd27b0b84bf0af0b) )
920 	ROM_LOAD( "1034-18c.071", 0x0e0000, 0x010000, CRC(6514f0bd) SHA1(e887dfb9e0334a7d94e7124cea6101d9ac7f0ab6) )
921 	ROM_LOAD( "1004-90n.071", 0x0f0000, 0x020000, CRC(537f6de3) SHA1(d5d385c3ff07aaef7bd3bd4f6c8066948a45ce9c) )
922 	ROM_LOAD( "1008-78n.071", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
923 	ROM_LOAD( "1035-13c.071", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
924 
925 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
926 	ROM_LOAD( "1013-10k.071", 0x000000, 0x010000, CRC(cdf6e3d6) SHA1(476644065b82e2ea553dfb51844c0bbf3313c481) )
927 	ROM_LOAD( "1014-16f.071", 0x010000, 0x010000, CRC(ec2fef3e) SHA1(07ed472fa1723ebf82d608667df70511a50dca3e) )
928 	ROM_LOAD( "1015-16k.071", 0x020000, 0x010000, CRC(e866848f) SHA1(35b438dcc1947151a7aafe919b9adf33d7a8fb77) )
929 	ROM_LOAD( "1016-10f.071", 0x030000, 0x010000, CRC(9b9a393c) SHA1(db4ceb33756bab0ac7bea30e6c7345d06a0f4aa2) )
930 
931 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
932 	ROM_LOAD( "1017-32n.071", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
933 	ROM_LOAD( "1018-32l.071", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
934 
935 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* 256k for ADPCM samples */
936 	ROM_LOAD( "1043-7k.071",  0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
937 	ROM_LOAD( "1044-7j.071",  0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
938 	ROM_LOAD( "1045-7e.071",  0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
939 	ROM_LOAD( "1046-7d.071",  0x030000, 0x010000, CRC(d96437ad) SHA1(b0b5cd75de4048e54b9d7d09a75381eb73c22ee1) )
940 ROM_END
941 
942 
943 ROM_START( cyberbt )
944 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
945 	ROM_LOAD16_BYTE( "2007-1m.073",  0x000000, 0x010000, CRC(adfa9e23) SHA1(5462030fa275ce7b261b7283e92df9f7f1383251) )
946 	ROM_LOAD16_BYTE( "2008-1kl.073", 0x000001, 0x010000, CRC(c9191452) SHA1(583c1f916fbd54dbc188be7a181ccd60c7320cc8) )
947 	ROM_LOAD16_BYTE( "2009-3m.073",  0x020000, 0x010000, CRC(88bfc6dd) SHA1(ac2a67c8b4dbae62497236d624d333992195c218) )
948 	ROM_LOAD16_BYTE( "2010-3kl.073", 0x020001, 0x010000, CRC(3a121f29) SHA1(ebd088187abb863f2a632812811479dca7e31802) )
949 
950 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
951 	ROM_LOAD( "1029-2f.073",  0x010000, 0x004000, CRC(afee87e1) SHA1(da5e91167c68eecd2cb4436ac64cda14e5f6eae7) )
952 	ROM_CONTINUE(             0x004000, 0x00c000 )
953 
954 	ROM_REGION( 0x40000, REGION_CPU3, 0 )
955 	ROM_LOAD16_BYTE( "2011-3cd.073", 0x000000, 0x010000, CRC(bb5c5926) SHA1(6f7424418559841053d0c874ac8bb72c793d0d62) )
956 	ROM_LOAD16_BYTE( "2012-1b.073",  0x000001, 0x010000, CRC(a045f5f3) SHA1(c74f62ee0b3640caea818dca2deede83cd39e76a) )
957 	ROM_LOAD16_BYTE( "1013-1cd.073", 0x020000, 0x010000, CRC(11d287c9) SHA1(a25095ab29a7103f2bf02d656414d9dab0b79215) )
958 	ROM_LOAD16_BYTE( "1014-3b.073",  0x020001, 0x010000, CRC(be15db42) SHA1(f3b1a676106e9956f62d3f36fbb1f849695ff771) )
959 
960 	ROM_REGION16_BE( 0x40000, REGION_CPU4, 0 )	/* 256k for 68000 sound code */
961 	ROM_LOAD16_BYTE( "1132-3cd.064", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
962 	ROM_LOAD16_BYTE( "1133-1b.064",  0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
963 	ROM_LOAD16_BYTE( "1134-1cd.064", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
964 	ROM_LOAD16_BYTE( "1135-3b.064",  0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
965 
966 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
967 	ROM_LOAD( "1001-55l.071", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
968 	ROM_LOAD( "1005-43l.071", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
969 	ROM_LOAD( "1032-18a.071", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
970 	ROM_LOAD( "1002-55n.071", 0x050000, 0x020000, CRC(0f71f86c) SHA1(783f33ba5cc1b2f0c42b8515b1cf8b6a2270acb9) )
971 	ROM_LOAD( "1006-43n.071", 0x070000, 0x020000, CRC(df0ab373) SHA1(3d511236eb55a773c66643158c6ef2c4dce53b68) )
972 	ROM_LOAD( "1033-13a.071", 0x090000, 0x010000, CRC(b6270943) SHA1(356e58dfd30c6db15264eceacef0eacda99aabae) )
973 	ROM_LOAD( "1003-90l.071", 0x0a0000, 0x020000, CRC(1cf373a2) SHA1(c8538855bb82fc03e26c64fc9008fbd0c66fac09) )
974 	ROM_LOAD( "1007-78l.071", 0x0c0000, 0x020000, CRC(f2ffab24) SHA1(6c5c90a9d9b342414a0d6258dd27b0b84bf0af0b) )
975 	ROM_LOAD( "1034-18c.071", 0x0e0000, 0x010000, CRC(6514f0bd) SHA1(e887dfb9e0334a7d94e7124cea6101d9ac7f0ab6) )
976 	ROM_LOAD( "1004-90n.071", 0x0f0000, 0x020000, CRC(537f6de3) SHA1(d5d385c3ff07aaef7bd3bd4f6c8066948a45ce9c) )
977 	ROM_LOAD( "1008-78n.071", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
978 	ROM_LOAD( "1035-13c.071", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
979 
980 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
981 	ROM_LOAD( "1001-9lm.073", 0x000000, 0x010000, CRC(dbbad153) SHA1(1004292e320037fc1d5e5e8e7b6a068b1305e872) )
982 	ROM_LOAD( "1002-8lm.073", 0x010000, 0x010000, CRC(76e0d008) SHA1(2af4e48a229d23d85272d3c3203d977d81143a7f) )
983 	ROM_LOAD( "100311lm.073", 0x020000, 0x010000, CRC(ddca9ca2) SHA1(19cb170fe6aeed6c67b68376b5bde07f7f115fb0) )
984 	ROM_LOAD( "100410lm.073", 0x030000, 0x010000, CRC(aa495b6f) SHA1(c7d8e16d3084143928f25f66ee4d037ff7c43bcb) )
985 
986 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
987 	ROM_LOAD( "1005-15n.073", 0x000000, 0x010000, CRC(833b4768) SHA1(754f00089d439fb0aa1f650c1fef73cf7e5f33a1) )
988 	ROM_LOAD( "1006-16n.073", 0x010000, 0x010000, CRC(4976cffd) SHA1(4cac8d9bd30743da6e6e4f013e6101ebc27060b6) )
989 ROM_END
990 
991 
992 ROM_START( cyberbt1 )
993 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
994 	ROM_LOAD16_BYTE( "1007-1m.073",  0x000000, 0x010000, CRC(d434b2d7) SHA1(af6d51399ad4fca01ffbc7afa2bf73d7ee2f89b6) )
995 	ROM_LOAD16_BYTE( "1008-1kl.073", 0x000001, 0x010000, CRC(7d6c4163) SHA1(f1fe9d758f30bd0ebc990d8604ba32cc0d780683) )
996 	ROM_LOAD16_BYTE( "1009-3m.073",  0x020000, 0x010000, CRC(3933e089) SHA1(4bd453bddabeafd07d193a1bc8ac0792e7aa99c3) )
997 	ROM_LOAD16_BYTE( "1010-3kl.073", 0x020001, 0x010000, CRC(e7a7cae8) SHA1(91e0c6a1b0c138a0e6a599011518fe10df44e76e) )
998 
999 	ROM_REGION( 0x14000, REGION_CPU2, 0 )	/* 64k for 6502 code */
1000 	ROM_LOAD( "1029-2f.073",  0x010000, 0x004000, CRC(afee87e1) SHA1(da5e91167c68eecd2cb4436ac64cda14e5f6eae7) )
1001 	ROM_CONTINUE(             0x004000, 0x00c000 )
1002 
1003 	ROM_REGION( 0x40000, REGION_CPU3, 0 )
1004 	ROM_LOAD16_BYTE( "1011-3cd.073", 0x000000, 0x010000, CRC(22d3e09c) SHA1(18298951659badef39f839341c4d66958fcc86aa) )
1005 	ROM_LOAD16_BYTE( "1012-1b.073",  0x000001, 0x010000, CRC(a8eeed8c) SHA1(965765e5762ec09573243983db491a9fc85b37ef) )
1006 	ROM_LOAD16_BYTE( "1013-1cd.073", 0x020000, 0x010000, CRC(11d287c9) SHA1(a25095ab29a7103f2bf02d656414d9dab0b79215) )
1007 	ROM_LOAD16_BYTE( "1014-3b.073",  0x020001, 0x010000, CRC(be15db42) SHA1(f3b1a676106e9956f62d3f36fbb1f849695ff771) )
1008 
1009 	ROM_REGION16_BE( 0x40000, REGION_CPU4, 0 )	/* 256k for 68000 sound code */
1010 	ROM_LOAD16_BYTE( "1132-3cd.064", 0x000000, 0x010000, CRC(ca5ce8d8) SHA1(69dc83d43d8c9dc7ce3207e70f48fcfc5ddda0cc) )
1011 	ROM_LOAD16_BYTE( "1133-1b.064",  0x000001, 0x010000, CRC(ffeb8746) SHA1(0d8d28b2d997ff3cf01b4ef25b75fa5a69754af4) )
1012 	ROM_LOAD16_BYTE( "1134-1cd.064", 0x020000, 0x010000, CRC(bcbd4c00) SHA1(f0bfcdf0b5491e15872b543e99b834ae384cbf18) )
1013 	ROM_LOAD16_BYTE( "1135-3b.064",  0x020001, 0x010000, CRC(d520f560) SHA1(fb0b8d021458379188c424a343622c46ad74edaa) )
1014 
1015 	ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE )
1016 	ROM_LOAD( "1001-55l.071", 0x000000, 0x020000, CRC(586ba107) SHA1(f15d4489f5834ea5fe695f43cb9d1c2401179870) )
1017 	ROM_LOAD( "1005-43l.071", 0x020000, 0x020000, CRC(a53e6248) SHA1(4f2466c6af74a5498468801b1de7adfc34873d5d) )
1018 	ROM_LOAD( "1032-18a.071", 0x040000, 0x010000, CRC(131f52a0) SHA1(fa50ea82d26c36dd6a135e22dee509676d1dfe86) )
1019 	ROM_LOAD( "1002-55n.071", 0x050000, 0x020000, CRC(0f71f86c) SHA1(783f33ba5cc1b2f0c42b8515b1cf8b6a2270acb9) )
1020 	ROM_LOAD( "1006-43n.071", 0x070000, 0x020000, CRC(df0ab373) SHA1(3d511236eb55a773c66643158c6ef2c4dce53b68) )
1021 	ROM_LOAD( "1033-13a.071", 0x090000, 0x010000, CRC(b6270943) SHA1(356e58dfd30c6db15264eceacef0eacda99aabae) )
1022 	ROM_LOAD( "1003-90l.071", 0x0a0000, 0x020000, CRC(1cf373a2) SHA1(c8538855bb82fc03e26c64fc9008fbd0c66fac09) )
1023 	ROM_LOAD( "1007-78l.071", 0x0c0000, 0x020000, CRC(f2ffab24) SHA1(6c5c90a9d9b342414a0d6258dd27b0b84bf0af0b) )
1024 	ROM_LOAD( "1034-18c.071", 0x0e0000, 0x010000, CRC(6514f0bd) SHA1(e887dfb9e0334a7d94e7124cea6101d9ac7f0ab6) )
1025 	ROM_LOAD( "1004-90n.071", 0x0f0000, 0x020000, CRC(537f6de3) SHA1(d5d385c3ff07aaef7bd3bd4f6c8066948a45ce9c) )
1026 	ROM_LOAD( "1008-78n.071", 0x110000, 0x020000, CRC(78525bbb) SHA1(98ece6c0672cb60f818b8005c76cc4ae1d24b104) )
1027 	ROM_LOAD( "1035-13c.071", 0x130000, 0x010000, CRC(1be3e5c8) SHA1(1a4d0e0d53b902c28977c8598e363c7b61c9c1c8) )
1028 
1029 	ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE )
1030 	ROM_LOAD( "1001-9lm.073", 0x000000, 0x010000, CRC(dbbad153) SHA1(1004292e320037fc1d5e5e8e7b6a068b1305e872) )
1031 	ROM_LOAD( "1002-8lm.073", 0x010000, 0x010000, CRC(76e0d008) SHA1(2af4e48a229d23d85272d3c3203d977d81143a7f) )
1032 	ROM_LOAD( "100311lm.073", 0x020000, 0x010000, CRC(ddca9ca2) SHA1(19cb170fe6aeed6c67b68376b5bde07f7f115fb0) )
1033 	ROM_LOAD( "100410lm.073", 0x030000, 0x010000, CRC(aa495b6f) SHA1(c7d8e16d3084143928f25f66ee4d037ff7c43bcb) )
1034 
1035 	ROM_REGION( 0x020000, REGION_GFX3, ROMREGION_DISPOSE )
1036 	ROM_LOAD( "1005-15n.073", 0x000000, 0x010000, CRC(833b4768) SHA1(754f00089d439fb0aa1f650c1fef73cf7e5f33a1) )
1037 	ROM_LOAD( "1006-16n.073", 0x010000, 0x010000, CRC(4976cffd) SHA1(4cac8d9bd30743da6e6e4f013e6101ebc27060b6) )
1038 ROM_END
1039 
1040 
1041 
1042 /*************************************
1043  *
1044  *	Machine initialization
1045  *
1046  *************************************/
1047 
1048 static const data16_t default_eeprom[] =
1049 {
1050 	0x0001,0x01FF,0x0F00,0x011A,0x014A,0x0100,0x01A1,0x0200,
1051 	0x010E,0x01AF,0x0300,0x01FF,0x0114,0x0144,0x01FF,0x0F00,
1052 	0x011A,0x014A,0x0100,0x01A1,0x0200,0x010E,0x01AF,0x0300,
1053 	0x01FF,0x0114,0x0144,0x01FF,0x0E00,0x01FF,0x0E00,0x01FF,
1054 	0x0E00,0x01FF,0x0E00,0x01FF,0x0E00,0x01FF,0x0E00,0x01FF,
1055 	0x0E00,0x01A8,0x0131,0x010B,0x0100,0x014C,0x0A00,0x01FF,
1056 	0x0E00,0x01FF,0x0E00,0x01FF,0x0E00,0xB5FF,0x0E00,0x01FF,
1057 	0x0E00,0x01FF,0x0E00,0x01FF,0x0E00,0x01FF,0x0E00,0x01FF,
1058 	0x0E00,0x01FF,0x0E00,0x0000
1059 };
1060 
1061 
DRIVER_INIT(cyberbal)1062 static DRIVER_INIT( cyberbal )
1063 {
1064 	atarigen_eeprom_default = default_eeprom;
1065 	atarigen_slapstic_init(0, 0x018000, 0);
1066 
1067 	/* make sure the banks are pointing to the correct location */
1068 	cpu_setbank(1, atarigen_playfield2);
1069 	cpu_setbank(3, atarigen_playfield);
1070 }
1071 
1072 
DRIVER_INIT(cyberbt)1073 static DRIVER_INIT( cyberbt )
1074 {
1075 	atarigen_eeprom_default = default_eeprom;
1076 	atarigen_slapstic_init(0, 0x018000, 116);
1077 
1078 	/* make sure the banks are pointing to the correct location */
1079 	cpu_setbank(1, atarigen_playfield2);
1080 	cpu_setbank(3, atarigen_playfield);
1081 }
1082 
1083 
DRIVER_INIT(cyberb2p)1084 static DRIVER_INIT( cyberb2p )
1085 {
1086 	atarigen_eeprom_default = default_eeprom;
1087 	atarijsa_init(1, 3, 2, 0x8000);
1088 }
1089 
1090 
1091 
1092 /*************************************
1093  *
1094  *	Game driver(s)
1095  *
1096  *************************************/
1097 
1098 GAME( 1988, cyberbal, 0,        cyberbal, cyberbal, cyberbal, ROT0, "Atari Games", "Cyberball (rev 4)" )
1099 GAME( 1988, cyberba2, cyberbal, cyberbal, cyberbal, cyberbal, ROT0, "Atari Games", "Cyberball (rev 2)" )
1100 GAME( 1988, cyberbap, cyberbal, cyberbal, cyberbal, cyberbal, ROT0, "Atari Games", "Cyberball (prototype)" )
1101 
1102 GAME( 1989, cyberb2p, cyberbal, cyberb2p, cyberb2p, cyberb2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 4)" )
1103 GAME( 1989, cyberb23, cyberbal, cyberb2p, cyberb2p, cyberb2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 3)" )
1104 GAME( 1989, cyberb22, cyberbal, cyberb2p, cyberb2p, cyberb2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 2)" )
1105 GAME( 1989, cyberb21, cyberbal, cyberb2p, cyberb2p, cyberb2p, ROT0, "Atari Games", "Cyberball 2072 (2 player, rev 1)" )
1106 
1107 GAME( 1989, cyberbt,  cyberbal, cyberbal, cyberbal, cyberbt,  ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 2)" )
1108 GAME( 1989, cyberbt1, cyberbal, cyberbal, cyberbal, cyberbt,  ROT0, "Atari Games", "Tournament Cyberball 2072 (rev 1)" )
1109 
1110