1 #include "../vidhrdw/amidar.c"
2 
3 /***************************************************************************
4 
5 Amidar memory map (preliminary)
6 
7 0000-3fff ROM (Amidar US version and Turtles: 0000-4fff)
8 8000-87ff RAM
9 9000-93ff Video RAM
10 9800-983f Screen attributes
11 9840-985f sprites
12 
13 read:
14 a800      watchdog reset
15 b000      IN0
16 b010      IN1
17 b020      IN2
18 b820      DSW (not Turtles)
19 see the input_ports definition below for details on the input bits
20 
21 write:
22 a008      interrupt enable
23 a010/a018 flip screen X & Y (I don't know which is which)
24 a030      coin counter A
25 a038      coin counter B
26 b800      To AY-3-8910 port A (commands for the audio CPU)
27 b810      bit 3 = interrupt trigger on audio CPU
28 
29 
30 SOUND BOARD:
31 0000-1fff ROM
32 8000-83ff RAM
33 
34 write:
35 9000      ?
36 9080      ?
37 
38 I/0 ports:
39 read:
40 20      8910 #2  read
41 80      8910 #1  read
42 
43 write
44 10      8910 #2  control
45 20      8910 #2  write
46 40      8910 #1  control
47 80      8910 #1  write
48 
49 interrupts:
50 interrupt mode 1 triggered by the main CPU
51 
52 ***************************************************************************/
53 
54 #include "driver.h"
55 #include "vidhrdw/generic.h"
56 
57 
58 
59 extern unsigned char *amidar_attributesram;
60 void amidar_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
61 WRITE_HANDLER( amidar_attributes_w );
62 void amidar_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
63 
64 READ_HANDLER( scramble_portB_r );
65 WRITE_HANDLER( scramble_sh_irqtrigger_w );
66 
WRITE_HANDLER(amidar_coina_w)67 WRITE_HANDLER( amidar_coina_w )
68 {
69 	coin_counter_w (0, data);
70 	coin_counter_w (0, 0);
71 }
72 
WRITE_HANDLER(amidar_coinb_w)73 WRITE_HANDLER( amidar_coinb_w )
74 {
75 	coin_counter_w (1, data);
76 	coin_counter_w (1, 0);
77 }
78 
79 static struct MemoryReadAddress amidar_readmem[] =
80 {
81 	{ 0x0000, 0x4fff, MRA_ROM },
82 	{ 0x8000, 0x87ff, MRA_RAM },
83 	{ 0x9000, 0x93ff, MRA_RAM },
84 	{ 0x9800, 0x985f, MRA_RAM },
85 	{ 0xa800, 0xa800, watchdog_reset_r },
86 	{ 0xb000, 0xb000, input_port_0_r },	/* IN0 */
87 	{ 0xb010, 0xb010, input_port_1_r },	/* IN1 */
88 	{ 0xb020, 0xb020, input_port_2_r },	/* IN2 */
89 	{ 0xb820, 0xb820, input_port_3_r },	/* DSW */
90 	{ -1 }	/* end of table */
91 };
92 
93 static struct MemoryWriteAddress writemem[] =
94 {
95 	{ 0x0000, 0x4fff, MWA_ROM },
96 	{ 0x8000, 0x87ff, MWA_RAM },
97 	{ 0x9000, 0x93ff, videoram_w, &videoram, &videoram_size },
98 	{ 0x9800, 0x983f, amidar_attributes_w, &amidar_attributesram },
99 	{ 0x9840, 0x985f, MWA_RAM, &spriteram, &spriteram_size },
100 	{ 0x9860, 0x987f, MWA_NOP },
101 	{ 0xa008, 0xa008, interrupt_enable_w },
102 	{ 0xa010, 0xa010, flip_screen_x_w },
103 	{ 0xa018, 0xa018, flip_screen_y_w },
104 	{ 0xa030, 0xa030, amidar_coina_w },
105 	{ 0xa038, 0xa038, amidar_coinb_w },
106 	{ 0xb800, 0xb800, soundlatch_w },
107 	{ 0xb810, 0xb810, scramble_sh_irqtrigger_w },
108 	{ -1 }	/* end of table */
109 };
110 
111 
112 
113 static struct MemoryReadAddress sound_readmem[] =
114 {
115 	{ 0x0000, 0x1fff, MRA_ROM },
116 	{ 0x8000, 0x83ff, MRA_RAM },
117 	{ -1 }	/* end of table */
118 };
119 
120 static struct MemoryWriteAddress sound_writemem[] =
121 {
122 	{ 0x0000, 0x1fff, MWA_ROM },
123 	{ 0x8000, 0x83ff, MWA_RAM },
124 //	{ 0x9000, 0x9000, MWA_NOP },
125 //	{ 0x9080, 0x9080, MWA_NOP },
126 	{ -1 }	/* end of table */
127 };
128 
129 
130 
131 static struct IOReadPort sound_readport[] =
132 {
133 	{ 0x80, 0x80, AY8910_read_port_0_r },
134 	{ 0x20, 0x20, AY8910_read_port_1_r },
135 	{ -1 }	/* end of table */
136 };
137 
138 static struct IOWritePort sound_writeport[] =
139 {
140 	{ 0x40, 0x40, AY8910_control_port_0_w },
141 	{ 0x80, 0x80, AY8910_write_port_0_w },
142 	{ 0x10, 0x10, AY8910_control_port_1_w },
143 	{ 0x20, 0x20, AY8910_write_port_1_w },
144 	{ -1 }	/* end of table */
145 };
146 
147 
148 
149 INPUT_PORTS_START( amidar )
150 	PORT_START	/* IN0 */
151 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
152 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for button 2 */
153 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
154 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
155 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
156 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
157 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
158 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
159 
160 	PORT_START	/* IN1 */
161 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
162 	PORT_DIPSETTING(    0x03, "3" )
163 	PORT_DIPSETTING(    0x02, "4" )
164 	PORT_DIPSETTING(    0x01, "5" )
165 	PORT_BITX (0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "255", IP_KEY_NONE, IP_JOY_NONE )
166 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for player 2 button 2 */
167 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
168 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
169 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
170 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
171 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
172 
173 	PORT_START	/* IN2 */
174 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
175 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
176 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
177 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
178 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) )
179 	PORT_DIPSETTING(    0x00, "30000 70000" )
180 	PORT_DIPSETTING(    0x04, "50000 80000" )
181 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
182 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
183 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
184 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
185 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
186 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
187 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
188 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
189 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
190 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
191 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
192 
193 	PORT_START	/* DSW */
194 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
195 	PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
196 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_1C ) )
197 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
198 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_2C ) )
199 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_3C ) )
200 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
201 	PORT_DIPSETTING(    0x0c, DEF_STR( 3C_4C ) )
202 	PORT_DIPSETTING(    0x0e, DEF_STR( 2C_3C ) )
203 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_2C ) )
204 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
205 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_3C ) )
206 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
207 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_5C ) )
208 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
209 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
210 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
211 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
212 	PORT_DIPSETTING(    0x40, DEF_STR( 4C_1C ) )
213 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
214 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
215 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_2C ) )
216 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_3C ) )
217 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
218 	PORT_DIPSETTING(    0xc0, DEF_STR( 3C_4C ) )
219 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_3C ) )
220 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) )
221 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
222 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_3C ) )
223 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
224 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
225 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
226 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
227 	PORT_DIPSETTING(    0x00, "Disable All Coins" )
228 INPUT_PORTS_END
229 
230 INPUT_PORTS_START( amidaro )
231 	PORT_START	/* IN0 */
232 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
233 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for button 2 */
234 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
235 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
236 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
237 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
238 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
239 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
240 
241 	PORT_START	/* IN1 */
242 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
243 	PORT_DIPSETTING(    0x03, "1" )
244 	PORT_DIPSETTING(    0x02, "2" )
245 	PORT_DIPSETTING(    0x01, "3" )
246 	PORT_DIPSETTING(    0x00, "4" )
247 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for player 2 button 2 */
248 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
249 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
250 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
251 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
252 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
253 
254 	PORT_START	/* IN2 */
255 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
256 	PORT_DIPNAME( 0x02, 0x00, "Level Progression" )
257 	PORT_DIPSETTING(    0x00, "Slow" )
258 	PORT_DIPSETTING(    0x02, "Fast" )
259 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) )
260 	PORT_DIPSETTING(    0x00, "30000 70000" )
261 	PORT_DIPSETTING(    0x04, "50000 80000" )
262 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
263 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
264 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
265 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
266 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
267 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
268 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
269 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
270 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
271 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
272 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
273 
274 	PORT_START	/* DSW */
275 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
276 	PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
277 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_1C ) )
278 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
279 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_2C ) )
280 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_3C ) )
281 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
282 	PORT_DIPSETTING(    0x0c, DEF_STR( 3C_4C ) )
283 	PORT_DIPSETTING(    0x0e, DEF_STR( 2C_3C ) )
284 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_2C ) )
285 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
286 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_3C ) )
287 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
288 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_5C ) )
289 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
290 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
291 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
292 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
293 	PORT_DIPSETTING(    0x40, DEF_STR( 4C_1C ) )
294 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
295 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
296 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_2C ) )
297 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_3C ) )
298 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
299 	PORT_DIPSETTING(    0xc0, DEF_STR( 3C_4C ) )
300 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_3C ) )
301 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) )
302 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
303 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_3C ) )
304 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
305 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
306 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
307 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
308 	PORT_DIPSETTING(    0x00, "Disable All Coins" )
309 INPUT_PORTS_END
310 
311 /* absolutely identical to amidar, the only difference is the BONUS dip switch */
312 INPUT_PORTS_START( amidarjp )
313 	PORT_START	/* IN0 */
314 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
315 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for button 2 */
316 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
317 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
318 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
319 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
320 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
321 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
322 
323 	PORT_START	/* IN1 */
324 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
325 	PORT_DIPSETTING(    0x03, "3" )
326 	PORT_DIPSETTING(    0x02, "4" )
327 	PORT_DIPSETTING(    0x01, "5" )
328 	PORT_BITX (0,       0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "255", IP_KEY_NONE, IP_JOY_NONE )
329 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for player 2 button 2 */
330 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
331 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
332 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
333 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
334 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
335 
336 	PORT_START	/* IN2 */
337 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
338 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )
339 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
340 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
341 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) )
342 	PORT_DIPSETTING(    0x00, "30000 50000" )
343 	PORT_DIPSETTING(    0x04, "50000 50000" )
344 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
345 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
346 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
347 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
348 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
349 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
350 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
351 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
352 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
353 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
354 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
355 
356 	PORT_START	/* DSW */
357 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
358 	PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
359 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_1C ) )
360 	PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
361 	PORT_DIPSETTING(    0x02, DEF_STR( 3C_2C ) )
362 	PORT_DIPSETTING(    0x08, DEF_STR( 4C_3C ) )
363 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
364 	PORT_DIPSETTING(    0x0c, DEF_STR( 3C_4C ) )
365 	PORT_DIPSETTING(    0x0e, DEF_STR( 2C_3C ) )
366 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_2C ) )
367 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
368 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_3C ) )
369 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
370 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_5C ) )
371 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_6C ) )
372 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
373 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
374 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
375 	PORT_DIPSETTING(    0x40, DEF_STR( 4C_1C ) )
376 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_1C ) )
377 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
378 	PORT_DIPSETTING(    0x20, DEF_STR( 3C_2C ) )
379 	PORT_DIPSETTING(    0x80, DEF_STR( 4C_3C ) )
380 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
381 	PORT_DIPSETTING(    0xc0, DEF_STR( 3C_4C ) )
382 	PORT_DIPSETTING(    0xe0, DEF_STR( 2C_3C ) )
383 	PORT_DIPSETTING(    0x70, DEF_STR( 1C_2C ) )
384 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
385 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_3C ) )
386 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
387 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
388 	PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
389 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
390 	PORT_DIPSETTING(    0x00, "Disable All Coins" )
391 INPUT_PORTS_END
392 
393 /* similar to Amidar, dip switches are different and port 3, which in Amidar */
394 /* selects coins per credit, is not used. */
395 INPUT_PORTS_START( turtles )
396 	PORT_START	/* IN0 */
397 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
398 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for button 2 */
399 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
400 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
401 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
402 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
403 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
404 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
405 
406 	PORT_START	/* IN1 */
407 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
408 	PORT_DIPSETTING(    0x00, "2" )
409 	PORT_DIPSETTING(    0x01, "3" )
410 	PORT_DIPSETTING(    0x02, "4" )
411 	PORT_BITX (0,       0x03, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "126", IP_KEY_NONE, IP_JOY_NONE )
412 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for player 2 button 2 */
413 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
414 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
415 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
416 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
417 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
418 
419 	PORT_START	/* IN2 */
420 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
421 	PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
422 	PORT_DIPSETTING(    0x00, "A 1/1 B 2/1 C 1/1" )
423 	PORT_DIPSETTING(    0x02, "A 1/2 B 1/1 C 1/2" )
424 	PORT_DIPSETTING(    0x04, "A 1/3 B 3/1 C 1/3" )
425 	PORT_DIPSETTING(    0x06, "A 1/4 B 4/1 C 1/4" )
426 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
427 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
428 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
429 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
430 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
431 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
432 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
433 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
434 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
435 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
436 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
437 INPUT_PORTS_END
438 
439 /* same as Turtles, but dip switches are different. */
440 INPUT_PORTS_START( turpin )
441 	PORT_START	/* IN0 */
442 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
443 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for button 2 */
444 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
445 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
446 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
447 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
448 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
449 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
450 
451 	PORT_START	/* IN1 */
452 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
453 	PORT_DIPSETTING(    0x00, "2" )
454 	PORT_DIPSETTING(    0x01, "4" )
455 	PORT_DIPSETTING(    0x02, "6" )
456 	PORT_BITX (0,       0x03, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "126", IP_KEY_NONE, IP_JOY_NONE )
457 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for player 2 button 2 */
458 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
459 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
460 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
461 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
462 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
463 
464 	PORT_START	/* IN2 */
465 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
466 	PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
467 	PORT_DIPSETTING(    0x06, DEF_STR( 4C_1C ) )
468 	PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
469 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
470 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ) )
471 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
472 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
473 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
474 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
475 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
476 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
477 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
478 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
479 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
480 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
481 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
482 INPUT_PORTS_END
483 
484 /* similar to Turtles, lives are different */
485 INPUT_PORTS_START( 600 )
486 	PORT_START	/* IN0 */
487 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
488 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for button 2 */
489 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
490 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 )
491 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
492 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
493 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
494 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
495 
496 	PORT_START	/* IN1 */
497 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
498 	PORT_DIPSETTING(    0x00, "3" )
499 	PORT_DIPSETTING(    0x01, "4" )
500 	PORT_DIPSETTING(    0x02, "5" )
501 	PORT_BITX (0,       0x03, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "126", IP_KEY_NONE, IP_JOY_NONE )
502 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* probably space for player 2 button 2 */
503 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
504 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
505 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
506 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
507 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
508 
509 	PORT_START	/* IN2 */
510 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
511 	PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
512 	PORT_DIPSETTING(    0x00, "A 1/1 B 2/1 C 1/1" )
513 	PORT_DIPSETTING(    0x02, "A 1/2 B 1/1 C 1/2" )
514 	PORT_DIPSETTING(    0x04, "A 1/3 B 3/1 C 1/3" )
515 	PORT_DIPSETTING(    0x06, "A 1/4 B 4/1 C 1/4" )
516 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
517 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
518 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
519 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
520 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
521 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
522 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
523 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
524 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
525 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
526 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
527 INPUT_PORTS_END
528 
529 
530 
531 static struct GfxLayout charlayout =
532 {
533 	8,8,	/* 8*8 characters */
534 	256,	/* 256 characters */
535 	2,	/* 2 bits per pixel */
536 	{ 0, 256*8*8 },	/* the two bitplanes are separated */
537 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
538 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
539 	8*8	/* every char takes 8 consecutive bytes */
540 };
541 static struct GfxLayout spritelayout =
542 {
543 	16,16,	/* 16*16 sprites */
544 	64,	/* 64 sprites */
545 	2,	/* 2 bits per pixel */
546 	{ 0, 64*16*16 },	/* the two bitplanes are separated */
547 	{ 0, 1, 2, 3, 4, 5, 6, 7,
548 			8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
549 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
550 			16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
551 	32*8	/* every sprite takes 32 consecutive bytes */
552 };
553 
554 static struct GfxDecodeInfo gfxdecodeinfo[] =
555 {
556 	{ REGION_GFX1, 0x0000, &charlayout,     0, 8 },
557 	{ REGION_GFX1, 0x0000, &spritelayout,   0, 8 },
558 	{ -1 } /* end of array */
559 };
560 
561 
562 
563 static struct AY8910interface ay8910_interface =
564 {
565 	2,	/* 2 chips */
566 	14318000/8,	/* 1.78975 Mhz */
567 	{ MIXERG(30,MIXER_GAIN_2x,MIXER_PAN_CENTER), MIXERG(30,MIXER_GAIN_2x,MIXER_PAN_CENTER) },
568 	{ soundlatch_r },
569 	{ scramble_portB_r },
570 	{ 0 },
571 	{ 0 }
572 };
573 
574 
575 
576 static struct MachineDriver machine_driver_amidar =
577 {
578 	/* basic machine hardware */
579 	{
580 		{
581 			CPU_Z80,
582 			18432000/6,	/* 3.072 Mhz */
583 			amidar_readmem,writemem,0,0,
584 			nmi_interrupt,1
585 		},
586 		{
587 			CPU_Z80 | CPU_AUDIO_CPU,
588 			14318000/8,	/* 1.78975 Mhz */
589 			sound_readmem,sound_writemem,sound_readport,sound_writeport,
590 			ignore_interrupt,1	/* interrupts are triggered by the main CPU */
591 		}
592 	},
593 	60, 2500,	/* frames per second, vblank duration */
594 	1,	/* 1 CPU slice per frame - interleaving is forced when a sound command is written */
595 	0,
596 
597 	/* video hardware */
598 	32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
599 	gfxdecodeinfo,
600 	32,32,
601 	amidar_vh_convert_color_prom,
602 
603 	VIDEO_TYPE_RASTER|VIDEO_SUPPORTS_DIRTY,
604 	0,
605 	generic_vh_start,
606 	generic_vh_stop,
607 	amidar_vh_screenrefresh,
608 
609 	/* sound hardware */
610 	0,0,0,0,
611 	{
612 		{
613 			SOUND_AY8910,
614 			&ay8910_interface
615 		}
616 	}
617 };
618 
619 
620 
621 /***************************************************************************
622 
623   Game driver(s)
624 
625 ***************************************************************************/
626 
627 ROM_START( amidar )
628 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
629 	ROM_LOAD( "amidar.2c",    0x0000, 0x1000, 0xc294bf27 )
630 	ROM_LOAD( "amidar.2e",    0x1000, 0x1000, 0xe6e96826 )
631 	ROM_LOAD( "amidar.2f",    0x2000, 0x1000, 0x3656be6f )
632 	ROM_LOAD( "amidar.2h",    0x3000, 0x1000, 0x1be170bd )
633 
634 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
635 	ROM_LOAD( "amidar.5c",    0x0000, 0x1000, 0xc4b66ae4 )
636 	ROM_LOAD( "amidar.5d",    0x1000, 0x1000, 0x806785af )
637 
638 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
639 	ROM_LOAD( "amidar.5f",    0x0000, 0x0800, 0x5e51e84d )
640 	ROM_LOAD( "amidar.5h",    0x0800, 0x0800, 0x2f7f1c30 )
641 
642 	ROM_REGION( 0x0020, REGION_PROMS )
643 	ROM_LOAD( "amidar.clr",   0x0000, 0x0020, 0xf940dcc3 )
644 ROM_END
645 
646 ROM_START( amidaru )
647 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
648 	ROM_LOAD( "amidarus.2c",  0x0000, 0x1000, 0x951e0792 )
649 	ROM_LOAD( "amidarus.2e",  0x1000, 0x1000, 0xa1a3a136 )
650 	ROM_LOAD( "amidarus.2f",  0x2000, 0x1000, 0xa5121bf5 )
651 	ROM_LOAD( "amidarus.2h",  0x3000, 0x1000, 0x051d1c7f )
652 	ROM_LOAD( "amidarus.2j",  0x4000, 0x1000, 0x351f00d5 )
653 
654 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
655 	ROM_LOAD( "amidarus.5c",  0x0000, 0x1000, 0x8ca7b750 )
656 	ROM_LOAD( "amidarus.5d",  0x1000, 0x1000, 0x9b5bdc0a )
657 
658 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
659 	ROM_LOAD( "amidarus.5f",  0x0000, 0x0800, 0x2cfe5ede )
660 	ROM_LOAD( "amidarus.5h",  0x0800, 0x0800, 0x57c4fd0d )
661 
662 	ROM_REGION( 0x0020, REGION_PROMS )
663 	ROM_LOAD( "amidar.clr",   0x0000, 0x0020, 0xf940dcc3 )
664 ROM_END
665 
666 ROM_START( amidaro )
667 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
668 	ROM_LOAD( "107.2cd",      0x0000, 0x1000, 0xc52536be )
669 	ROM_LOAD( "108.2fg",      0x1000, 0x1000, 0x38538b98 )
670 	ROM_LOAD( "109.2fg",      0x2000, 0x1000, 0x69907f0f )
671 	ROM_LOAD( "110.2h",       0x3000, 0x1000, 0xba149a93 )
672 	ROM_LOAD( "111.2j",       0x4000, 0x1000, 0x20d01c2e )
673 
674 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
675 	ROM_LOAD( "amidarus.5c",  0x0000, 0x1000, 0x8ca7b750 )
676 	ROM_LOAD( "amidarus.5d",  0x1000, 0x1000, 0x9b5bdc0a )
677 
678 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
679 	ROM_LOAD( "amidarus.5f",  0x0000, 0x0800, 0x2cfe5ede )
680 	ROM_LOAD( "113.5h",       0x0800, 0x0800, 0xbcdce168 )  /* The letter 'S' is slightly different */
681 
682 	ROM_REGION( 0x0020, REGION_PROMS )
683 	ROM_LOAD( "amidar.clr",   0x0000, 0x0020, 0xf940dcc3 )
684 ROM_END
685 
686 ROM_START( amigo )
687 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
688 	ROM_LOAD( "2732.a1",      0x0000, 0x1000, 0x930dc856 )
689 	ROM_LOAD( "2732.a2",      0x1000, 0x1000, 0x66282ff5 )
690 	ROM_LOAD( "2732.a3",      0x2000, 0x1000, 0xe9d3dc76 )
691 	ROM_LOAD( "2732.a4",      0x3000, 0x1000, 0x4a4086c9 )
692 
693 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
694 	ROM_LOAD( "amidarus.5c",  0x0000, 0x1000, 0x8ca7b750 )
695 	ROM_LOAD( "amidarus.5d",  0x1000, 0x1000, 0x9b5bdc0a )
696 
697 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
698 	ROM_LOAD( "2716.a6",      0x0000, 0x0800, 0x2082ad0a )
699 	ROM_LOAD( "2716.a5",      0x0800, 0x0800, 0x3029f94f )
700 
701 	ROM_REGION( 0x0020, REGION_PROMS )
702 	ROM_LOAD( "amidar.clr",   0x0000, 0x0020, 0xf940dcc3 )
703 ROM_END
704 
705 ROM_START( turtles )
706 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
707 	ROM_LOAD( "turt_vid.2c",  0x0000, 0x1000, 0xec5e61fb )
708 	ROM_LOAD( "turt_vid.2e",  0x1000, 0x1000, 0xfd10821e )
709 	ROM_LOAD( "turt_vid.2f",  0x2000, 0x1000, 0xddcfc5fa )
710 	ROM_LOAD( "turt_vid.2h",  0x3000, 0x1000, 0x9e71696c )
711 	ROM_LOAD( "turt_vid.2j",  0x4000, 0x1000, 0xfcd49fef )
712 
713 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
714 	ROM_LOAD( "turt_snd.5c",  0x0000, 0x1000, 0xf0c30f9a )
715 	ROM_LOAD( "turt_snd.5d",  0x1000, 0x1000, 0xaf5fc43c )
716 
717 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
718 	ROM_LOAD( "turt_vid.5h",  0x0000, 0x0800, 0xe5999d52 )
719 	ROM_LOAD( "turt_vid.5f",  0x0800, 0x0800, 0xc3ffd655 )
720 
721 	ROM_REGION( 0x0020, REGION_PROMS )
722 	ROM_LOAD( "turtles.clr",  0x0000, 0x0020, 0xf3ef02dd )
723 ROM_END
724 
725 ROM_START( turpin )
726 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
727 	ROM_LOAD( "m1",           0x0000, 0x1000, 0x89177473 )
728 	ROM_LOAD( "m2",           0x1000, 0x1000, 0x4c6ca5c6 )
729 	ROM_LOAD( "m3",           0x2000, 0x1000, 0x62291652 )
730 	ROM_LOAD( "turt_vid.2h",  0x3000, 0x1000, 0x9e71696c )
731 	ROM_LOAD( "m5",           0x4000, 0x1000, 0x7d2600f2 )
732 
733 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
734 	ROM_LOAD( "turt_snd.5c",  0x0000, 0x1000, 0xf0c30f9a )
735 	ROM_LOAD( "turt_snd.5d",  0x1000, 0x1000, 0xaf5fc43c )
736 
737 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
738 	ROM_LOAD( "turt_vid.5h",  0x0000, 0x0800, 0xe5999d52 )
739 	ROM_LOAD( "turt_vid.5f",  0x0800, 0x0800, 0xc3ffd655 )
740 
741 	ROM_REGION( 0x0020, REGION_PROMS )
742 	ROM_LOAD( "turtles.clr",  0x0000, 0x0020, 0xf3ef02dd )
743 ROM_END
744 
745 ROM_START( 600 )
746 	ROM_REGION( 0x10000, REGION_CPU1 )	/* 64k for code */
747 	ROM_LOAD( "600_vid.2c",   0x0000, 0x1000, 0x8ee090ae )
748 	ROM_LOAD( "600_vid.2e",   0x1000, 0x1000, 0x45bfaff2 )
749 	ROM_LOAD( "600_vid.2f",   0x2000, 0x1000, 0x9f4c8ed7 )
750 	ROM_LOAD( "600_vid.2h",   0x3000, 0x1000, 0xa92ef056 )
751 	ROM_LOAD( "600_vid.2j",   0x4000, 0x1000, 0x6dadd72d )
752 
753 	ROM_REGION( 0x10000, REGION_CPU2 )	/* 64k for the audio CPU */
754 	ROM_LOAD( "600_snd.5c",   0x0000, 0x1000, 0x1773c68e )
755 	ROM_LOAD( "600_snd.5d",   0x1000, 0x1000, 0xa311b998 )
756 
757 	ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
758 	ROM_LOAD( "600_vid.5h",   0x0000, 0x0800, 0x006c3d56 )
759 	ROM_LOAD( "600_vid.5f",   0x0800, 0x0800, 0x7dbc0426 )
760 
761 	ROM_REGION( 0x0020, REGION_PROMS )
762 	ROM_LOAD( "turtles.clr",  0x0000, 0x0020, 0xf3ef02dd )
763 ROM_END
764 
765 
766 
767 GAME( 1981, amidar,  0,       amidar, amidarjp, 0, ROT90, "Konami", "Amidar" )
768 GAME( 1982, amidaru, amidar,  amidar, amidar,   0, ROT90, "Konami (Stern license)", "Amidar (Stern)" )
769 GAME( 1982, amidaro, amidar,  amidar, amidaro,  0, ROT90, "Konami (Olympia license)", "Amidar (Olympia)" )
770 GAME( 1982, amigo,   amidar,  amidar, amidar,   0, ROT90, "bootleg", "Amigo" )
771 GAME( 1981, turtles, 0,       amidar, turtles,  0, ROT90, "[Konami] (Stern license)", "Turtles" )
772 GAME( 1981, turpin,  turtles, amidar, turpin,   0, ROT90, "[Konami] (Sega license)", "Turpin" )
773 GAME( 1981, 600,     turtles, amidar, 600,      0, ROT90, "Konami", "600" )
774