1 /***************************************************************************
2 
3 	POW - Prisoners Of War (US) 		A7008	SNK 1988
4 	POW - Prisoners Of War (Japan)		A7008	SNK 1988
5 	SAR - Search And Rescue (World) 	A8007	SNK 1989
6 	SAR - Search And Rescue (US)		A8007	SNK 1989
7 	Street Smart (US version 1) 		A8007	SNK 1989
8 	Street Smart (US version 2) 		A7008	SNK 1989
9 	Street Smart (World version 1) 		A8007	SNK 1989
10 	Street Smart (Japan version 1)		A8007	SNK 1989
11 	Ikari III - The Rescue (US, Rotary Joystick) 		A7007	SNK 1989
12 	Ikari III - The Rescue (World, 8-Way Joystick) 		A7007	SNK 1989
13 
14 	For some strange reason version 2 of Street Smart runs on Pow hardware!
15 
16 	Emulation by Bryan McPhail, mish@tendril.co.uk
17 
18 
19 Change Log:
20 
21 FEB-2003 (AT)
22 
23 - bug fixes:
24 
25     pow37b5yel: incorrect sprite priority
26   powj36rc2gre: scrambled Japanese text in cut scenes
27 
28 Notes:
29 
30   Sprite flickerings and pop-up's not fixed. They look more like
31   sloppy programming than emulation issues. Also suggest redumping
32   sound ROM "dg7", it might be the cause of pow060gre.
33 
34 ***************************************************************************/
35 
36 #include "driver.h"
37 #include "vidhrdw/generic.h"
38 #include "cpu/z80/z80.h"
39 
40 VIDEO_START( pow );
41 VIDEO_START( searchar );
42 VIDEO_START( ikari3 );
43 VIDEO_UPDATE( pow );
44 VIDEO_UPDATE( searchar );
45 WRITE16_HANDLER( pow_paletteram16_word_w );
46 WRITE16_HANDLER( pow_flipscreen16_w );
47 WRITE16_HANDLER( pow_video16_w );
48 
49 static int invert_controls;
50 
51 /******************************************************************************/
52 
READ16_HANDLER(sound_cpu_r)53 static READ16_HANDLER( sound_cpu_r )
54 {
55 	return 0x0100;
56 }
57 
READ16_HANDLER(pow_video16_r)58 static READ16_HANDLER( pow_video16_r )
59 {
60 	data16_t data = videoram16[offset];
61 	return data;
62 }
63 
WRITE16_HANDLER(pow_spriteram16_w)64 static WRITE16_HANDLER( pow_spriteram16_w )
65 {
66 	/* DWORD aligned bytes should be $ff */
67 	if (!(offset & 1))
68 		data |= 0xff00;
69 	COMBINE_DATA(&spriteram16[offset]);
70 }
71 
READ16_HANDLER(pow_spriteram16_r)72 static READ16_HANDLER( pow_spriteram16_r )
73 {
74 	return spriteram16[offset];
75 }
76 
READ16_HANDLER(control_1_r)77 static READ16_HANDLER( control_1_r )
78 {
79 	return (readinputport(0) + (readinputport(1) << 8));
80 }
81 
READ16_HANDLER(control_2_r)82 static READ16_HANDLER( control_2_r )
83 {
84 	return readinputport(2);
85 }
86 
READ16_HANDLER(dip_1_r)87 static READ16_HANDLER( dip_1_r )
88 {
89 	return readinputport(3) << 8;
90 }
91 
READ16_HANDLER(dip_2_r)92 static READ16_HANDLER( dip_2_r )
93 {
94 	return readinputport(4) << 8;
95 }
96 
READ16_HANDLER(rotary_1_r)97 static READ16_HANDLER( rotary_1_r )
98 {
99 	return (( ~(1 << (readinputport(5) * 12 / 256)) )<<8)&0xff00;
100 }
101 
READ16_HANDLER(rotary_2_r)102 static READ16_HANDLER( rotary_2_r )
103 {
104 	return (( ~(1 << (readinputport(6) * 12 / 256)) )<<8)&0xff00;
105 }
106 
READ16_HANDLER(rotary_lsb_r)107 static READ16_HANDLER( rotary_lsb_r )
108 {
109 	return ((( ~(1 << (readinputport(6) * 12 / 256))  ) <<4)&0xf000)
110 		 + ((( ~(1 << (readinputport(5) * 12 / 256))  )    )&0x0f00);
111 }
112 
READ16_HANDLER(protcontrols_r)113 static READ16_HANDLER( protcontrols_r )
114 {
115 	return readinputport(offset) ^ invert_controls;
116 }
117 
WRITE16_HANDLER(protection_w)118 static WRITE16_HANDLER( protection_w )
119 {
120 	/* top byte is used, meaning unknown */
121 	/* bottom byte is protection in ikari 3 and streetsm */
122 	if (ACCESSING_LSB)
123 		invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00;
124 }
125 
WRITE16_HANDLER(sound_w)126 static WRITE16_HANDLER( sound_w )
127 {
128 	soundlatch_w(0,(data>>8)&0xff);
129 	cpu_set_irq_line(1,IRQ_LINE_NMI,PULSE_LINE);
130 }
131 
132 /*******************************************************************************/
133 
MEMORY_READ16_START(pow_readmem)134 static MEMORY_READ16_START( pow_readmem )
135 	{ 0x000000, 0x03ffff, MRA16_ROM },
136 	{ 0x040000, 0x043fff, MRA16_RAM },
137 	{ 0x080000, 0x080001, control_1_r },
138 	{ 0x0c0000, 0x0c0001, control_2_r },
139 	{ 0x0e0000, 0x0e0001, MRA16_NOP }, /* Watchdog or IRQ ack */
140 	{ 0x0e8000, 0x0e8001, MRA16_NOP }, /* Watchdog or IRQ ack */
141 	{ 0x0f0000, 0x0f0001, dip_1_r },
142 	{ 0x0f0008, 0x0f0009, dip_2_r },
143 	{ 0x100000, 0x100fff, pow_video16_r },
144 	{ 0x200000, 0x207fff, pow_spriteram16_r },
145 	{ 0x400000, 0x400fff, MRA16_RAM },
146 MEMORY_END
147 
148 static MEMORY_WRITE16_START( pow_writemem )
149 	{ 0x000000, 0x03ffff, MWA16_ROM },
150 	{ 0x040000, 0x043fff, MWA16_RAM },
151 	{ 0x080000, 0x080001, sound_w },
152 	{ 0x0c0000, 0x0c0001, pow_flipscreen16_w },
153 	{ 0x0f0008, 0x0f0009, MWA16_NOP },
154 	{ 0x100000, 0x100fff, pow_video16_w, &videoram16 },
155 	{ 0x101000, 0x101fff, MWA16_NOP }, /* unknown register writes*/
156 	{ 0x200000, 0x207fff, pow_spriteram16_w, &spriteram16 },
157 	{ 0x400000, 0x400fff, pow_paletteram16_word_w, &paletteram16 },
158 MEMORY_END
159 
160 static MEMORY_READ16_START( searchar_readmem )
161 	{ 0x000000, 0x03ffff, MRA16_ROM },
162 	{ 0x040000, 0x043fff, MRA16_RAM },
163 	{ 0x080000, 0x080005, protcontrols_r }, /* Player 1 & 2 */
164 	{ 0x0c0000, 0x0c0001, rotary_1_r }, /* Player 1 rotary */
165 	{ 0x0c8000, 0x0c8001, rotary_2_r }, /* Player 2 rotary */
166 	{ 0x0d0000, 0x0d0001, rotary_lsb_r }, /* Extra rotary bits */
167 	{ 0x0e0000, 0x0e0001, MRA16_NOP },	/* Watchdog or IRQ ack */
168 	{ 0x0e8000, 0x0e8001, MRA16_NOP },	/* Watchdog or IRQ ack */
169 	{ 0x0f0000, 0x0f0001, dip_1_r },
170 	{ 0x0f0008, 0x0f0009, dip_2_r },
171 	{ 0x0f8000, 0x0f8001, sound_cpu_r },
172 	{ 0x100000, 0x107fff, pow_spriteram16_r },
173 	{ 0x200000, 0x200fff, pow_video16_r },
174 	{ 0x300000, 0x33ffff, MRA16_BANK1 }, /* Extra code bank */
175 	{ 0x400000, 0x400fff, MRA16_RAM },
176 MEMORY_END
177 
178 static MEMORY_WRITE16_START( searchar_writemem )
179 	{ 0x000000, 0x03ffff, MWA16_ROM },
180 	{ 0x040000, 0x043fff, MWA16_RAM },
181 	{ 0x080000, 0x080001, sound_w },
182 	{ 0x080006, 0x080007, protection_w }, /* top byte unknown, bottom is protection in ikari3 and streetsm */
183 	{ 0x0c0000, 0x0c0001, pow_flipscreen16_w },
184 	{ 0x0f0000, 0x0f0001, MWA16_NOP },
185 	{ 0x100000, 0x107fff, pow_spriteram16_w, &spriteram16 },
186 	{ 0x200000, 0x200fff, pow_video16_w, &videoram16 },
187 	{ 0x201000, 0x201fff, pow_video16_w }, /* Mirror used by Ikari 3 */
188 	{ 0x400000, 0x400fff, pow_paletteram16_word_w, &paletteram16 },
189 MEMORY_END
190 
191 /******************************************************************************/
192 
193 static MEMORY_READ_START( sound_readmem )
194 	{ 0x0000, 0xefff, MRA_ROM },
195 	{ 0xf000, 0xf7ff, MRA_RAM },
196 	{ 0xf800, 0xf800, soundlatch_r },
197 MEMORY_END
198 
199 static MEMORY_WRITE_START( sound_writemem )
200 	{ 0x0000, 0xefff, MWA_ROM },
201 	{ 0xf000, 0xf7ff, MWA_RAM },
202 MEMORY_END
203 
204 static WRITE_HANDLER( D7759_write_port_0_w )
205 {
206 	UPD7759_port_w(offset,data);
207 	UPD7759_start_w (0,0);
208 	UPD7759_start_w (0,1);
209 }
210 
PORT_READ_START(sound_readport)211 static PORT_READ_START( sound_readport )
212 	{ 0x00, 0x00, YM3812_status_port_0_r },
213 PORT_END
214 
215 static PORT_WRITE_START( sound_writeport )
216 	{ 0x00, 0x00, YM3812_control_port_0_w },
217 	{ 0x20, 0x20, YM3812_write_port_0_w },
218 	{ 0x40, 0x40, D7759_write_port_0_w },
219 	{ 0x80, 0x80, UPD7759_0_reset_w },
220 PORT_END
221 
222 /******************************************************************************/
223 
224 INPUT_PORTS_START( pow )
225 	PORT_START	/* Player 1 controls */
226 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY )
227 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
228 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
229 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
230 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
231 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
232 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
233 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
234 
235 	PORT_START	/* Player 2 controls */
236 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY | IPF_PLAYER2 )
237 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
238 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
239 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
240 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
241 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
242 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
243 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
244 
245 	PORT_START
246 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
247 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE )	/* same as the service mode dsw */
248 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
249 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
250 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
251 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
252 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
253 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
254 
255 	PORT_START	/* Dip switch bank 1, all active high */
256 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) )
257 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
258 	PORT_DIPSETTING(	0x02, DEF_STR( 1C_2C ) )
259 	PORT_DIPSETTING(	0x01, DEF_STR( 1C_3C ) )
260 	PORT_DIPSETTING(	0x03, DEF_STR( 1C_4C ) )
261 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) )
262 	PORT_DIPSETTING(	0x0c, DEF_STR( 4C_1C ) )
263 	PORT_DIPSETTING(	0x04, DEF_STR( 3C_1C ) )
264 	PORT_DIPSETTING(	0x08, DEF_STR( 2C_1C ) )
265 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
266 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) )
267 	PORT_DIPSETTING(	0x00, "2" )
268 	PORT_DIPSETTING(	0x10, "3" )
269 	PORT_DIPNAME( 0x20, 0x00, "Bonus Occurrence" )
270 	PORT_DIPSETTING(	0x00, "1st & 2nd only" )
271 	PORT_DIPSETTING(	0x20, "1st & every 2nd" )
272 	PORT_DIPNAME( 0x40, 0x00, "Language" )
273 	PORT_DIPSETTING(	0x00, "English" )
274 	PORT_DIPSETTING(	0x40, "Japanese" )
275 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
276 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
277 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
278 
279 	PORT_START	/* Dip switch bank 2, all active high */
280 	PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
281 	PORT_DIPNAME( 0x02, 0x00, "Allow Continue" )
282 	PORT_DIPSETTING(	0x02, DEF_STR( No ) )
283 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
284 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
285 	PORT_DIPSETTING(	0x00, "20k 50k" )
286 	PORT_DIPSETTING(	0x08, "40k 100k" )
287 	PORT_DIPSETTING(	0x04, "60k 150k" )
288 	PORT_DIPSETTING(	0x0c, "None" )
289 	PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
290 	PORT_DIPSETTING(	0x00, "Demo Sounds On" )
291 	PORT_DIPSETTING(	0x20, "Demo Sounds Off" )
292 	PORT_DIPSETTING(	0x30, "Freeze" )
293 	PORT_BITX( 0,		0x10, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
294 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) )
295 	PORT_DIPSETTING(	0x80, "Easy" )
296 	PORT_DIPSETTING(	0x00, "Normal" )
297 	PORT_DIPSETTING(	0x40, "Hard" )
298 	PORT_DIPSETTING(	0xc0, "Hardest" )
299 INPUT_PORTS_END
300 
301 /* Identical to pow, but the Language dip switch has no effect */
302 INPUT_PORTS_START( powj )
303 	PORT_START	/* Player 1 controls */
304 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY )
305 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
306 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
307 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
308 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
309 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
310 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
311 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
312 
313 	PORT_START	/* Player 2 controls */
314 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY | IPF_PLAYER2 )
315 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
316 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
317 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
318 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
319 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
320 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
321 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
322 
323 	PORT_START
324 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
325 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE )	/* same as the service mode dsw */
326 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
327 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
328 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
329 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
330 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
331 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
332 
333 	PORT_START	/* Dip switch bank 1, all active high */
334 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) )
335 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
336 	PORT_DIPSETTING(	0x02, DEF_STR( 1C_2C ) )
337 	PORT_DIPSETTING(	0x01, DEF_STR( 1C_3C ) )
338 	PORT_DIPSETTING(	0x03, DEF_STR( 1C_4C ) )
339 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) )
340 	PORT_DIPSETTING(	0x0c, DEF_STR( 4C_1C ) )
341 	PORT_DIPSETTING(	0x04, DEF_STR( 3C_1C ) )
342 	PORT_DIPSETTING(	0x08, DEF_STR( 2C_1C ) )
343 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
344 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) )
345 	PORT_DIPSETTING(	0x00, "2" )
346 	PORT_DIPSETTING(	0x10, "3" )
347 	PORT_DIPNAME( 0x20, 0x00, "Bonus Occurrence" )
348 	PORT_DIPSETTING(	0x00, "1st & 2nd only" )
349 	PORT_DIPSETTING(	0x20, "1st & every 2nd" )
350 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
351 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
352 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
353 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
354 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
355 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
356 
357 	PORT_START	/* Dip switch bank 2, all active high */
358 	PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
359 	PORT_DIPNAME( 0x02, 0x00, "Allow Continue" )
360 	PORT_DIPSETTING(	0x02, DEF_STR( No ) )
361 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
362 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
363 	PORT_DIPSETTING(	0x00, "20k 50k" )
364 	PORT_DIPSETTING(	0x08, "40k 100k" )
365 	PORT_DIPSETTING(	0x04, "60k 150k" )
366 	PORT_DIPSETTING(	0x0c, "None" )
367 	PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
368 	PORT_DIPSETTING(	0x00, "Demo Sounds On" )
369 	PORT_DIPSETTING(	0x20, "Demo Sounds Off" )
370 	PORT_DIPSETTING(	0x30, "Freeze" )
371 	PORT_BITX( 0,		0x10, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
372 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) )
373 	PORT_DIPSETTING(	0x80, "Easy" )
374 	PORT_DIPSETTING(	0x00, "Normal" )
375 	PORT_DIPSETTING(	0x40, "Hard" )
376 	PORT_DIPSETTING(	0xc0, "Hardest" )
377 INPUT_PORTS_END
378 
379 INPUT_PORTS_START( searchar )
380 	PORT_START	/* Player 1 controls */
381 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY )
382 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
383 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
384 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
385 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
386 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
387 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
388 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
389 
390 	PORT_START	/* Player 2 controls */
391 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY | IPF_PLAYER2 )
392 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
393 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
394 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
395 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
396 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
397 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
398 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
399 
400 	PORT_START	/* coin */
401 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
402 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE )	/* same as the service mode dsw */
403 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
404 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
405 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
406 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
407 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
408 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
409 
410 	PORT_START	/* Dip switches (Active high) */
411 	PORT_DIPNAME( 0x01, 0x00, "Joystick" )
412 	PORT_DIPSETTING(    0x00, "Rotary Joystick" )
413 	PORT_DIPSETTING(    0x01, "Standard Joystick" )
414 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
415 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
416 	PORT_DIPSETTING(	0x02, DEF_STR( On ) )
417 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) )
418 	PORT_DIPSETTING(	0x08, "2" )
419 	PORT_DIPSETTING(	0x00, "3" )
420 	PORT_DIPSETTING(	0x04, "4" )
421 	PORT_DIPSETTING(	0x0c, "5" )
422 	PORT_DIPNAME( 0x30, 0x00, "Coin A & B" )
423 	PORT_DIPSETTING(	0x20, DEF_STR( 2C_1C ) )
424 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
425 	PORT_DIPSETTING(	0x10, DEF_STR( 1C_2C ) )
426 	PORT_DIPSETTING(	0x30, DEF_STR( Free_Play ) )
427 	PORT_DIPNAME( 0x40, 0x00, "Bonus Occurrence" )
428 	PORT_DIPSETTING(	0x00, "1st & 2nd only" )
429 	PORT_DIPSETTING(	0x40, "1st & every 2nd" )
430 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
431 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
432 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
433 
434 	PORT_START /* Dip switches (Active high) */
435 	PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
436 	PORT_DIPNAME( 0x02, 0x00, "Allow Continue" )
437 	PORT_DIPSETTING(	0x02, DEF_STR( No ) )
438 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
439 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
440 	PORT_DIPSETTING(	0x00, "50k 200k" )
441 	PORT_DIPSETTING(	0x08, "70k 270k" )
442 	PORT_DIPSETTING(	0x04, "90k 350k" )
443 	PORT_DIPSETTING(	0x0c, "None" )
444 	PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
445 	PORT_DIPSETTING(	0x20, "Demo Sounds Off" )
446 	PORT_DIPSETTING(	0x00, "Demo Sounds On" )
447 	PORT_DIPSETTING(	0x30, "Freeze" )
448 	PORT_BITX( 0,		0x10, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
449 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) )
450 	PORT_DIPSETTING(	0x80, "Easy" )
451 	PORT_DIPSETTING(	0x00, "Normal" )
452 	PORT_DIPSETTING(	0x40, "Hard" )
453 	PORT_DIPSETTING(	0xc0, "Hardest" )
454 
455 	PORT_START	/* player 1 12-way rotary control - converted in controls_r() */
456 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE, 25, 10, 0, 0, KEYCODE_Z, KEYCODE_X, IP_JOY_NONE, IP_JOY_NONE )
457 
458 	PORT_START	/* player 2 12-way rotary control - converted in controls_r() */
459 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE | IPF_PLAYER2, 25, 10, 0, 0, KEYCODE_N, KEYCODE_M, IP_JOY_NONE, IP_JOY_NONE )
460 INPUT_PORTS_END
461 
462 INPUT_PORTS_START( streetsm )
463 	PORT_START	/* Player 1 controls */
464 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY )
465 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
466 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
467 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
468 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
469 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
470 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
471 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
472 
473 	PORT_START	/* Player 2 controls */
474 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY | IPF_PLAYER2 )
475 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
476 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
477 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
478 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
479 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
480 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
481 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
482 
483 	PORT_START	/* coin */
484 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
485 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE )	/* same as the service mode dsw */
486 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
487 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
488 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
489 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
490 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
491 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
492 
493 	PORT_START	/* Dip switches (Active high) */
494 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
495 	PORT_DIPSETTING(	0x02, "1" )
496 	PORT_DIPSETTING(	0x00, "2" )
497 	PORT_DIPSETTING(	0x01, "3" )
498 	PORT_DIPSETTING(	0x03, "4" )
499 	PORT_DIPNAME( 0x0c, 0x00, "Coin A & B" )
500 	PORT_DIPSETTING(	0x08, DEF_STR( 2C_1C ) )
501 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
502 	PORT_DIPSETTING(	0x04, DEF_STR( 1C_2C ) )
503 	PORT_DIPSETTING(	0x0c, DEF_STR( Free_Play ) )
504 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
505 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
506 	PORT_DIPSETTING(	0x10, DEF_STR( On ) )
507 	PORT_DIPNAME( 0x20, 0x00, "Bonus Occurrence" )
508 	PORT_DIPSETTING(	0x00, "1st & 2nd only" )
509 	PORT_DIPSETTING(	0x20, "1st & every 2nd" )
510 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
511 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
512 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
513 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
514 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
515 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
516 
517 	PORT_START /* Dip switches (Active high) */
518 	PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
519 	PORT_DIPNAME( 0x02, 0x00, "Allow Continue" )
520 	PORT_DIPSETTING(	0x02, DEF_STR( No ) )
521 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
522 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
523 	PORT_DIPSETTING(	0x00, "200k 400k" )
524 	PORT_DIPSETTING(	0x08, "400k 600k" )
525 	PORT_DIPSETTING(	0x04, "600k 800k" )
526 	PORT_DIPSETTING(	0x0c, "None" )
527 	PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
528 	PORT_DIPSETTING(	0x20, "Demo Sounds Off" )
529 	PORT_DIPSETTING(	0x00, "Demo Sounds On" )
530 	PORT_DIPSETTING(	0x30, "Freeze" )
531 	PORT_BITX( 0,		0x10, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
532 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) )
533 	PORT_DIPSETTING(	0x80, "Easy" )
534 	PORT_DIPSETTING(	0x00, "Normal" )
535 	PORT_DIPSETTING(	0x40, "Hard" )
536 	PORT_DIPSETTING(	0xc0, "Hardest" )
537 
538 	PORT_START	/* player 1 12-way rotary control - not used in this game */
539 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
540 
541 	PORT_START	/* player 2 12-way rotary control - not used in this game */
542 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
543 INPUT_PORTS_END
544 
545 /* Same as streetsm, but Coinage is different */
546 INPUT_PORTS_START( streetsj )
547 	PORT_START	/* Player 1 controls */
548 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY )
549 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
550 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
551 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
552 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
553 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
554 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
555 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
556 
557 	PORT_START	/* Player 2 controls */
558 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY | IPF_PLAYER2 )
559 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
560 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
561 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
562 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
563 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
564 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
565 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
566 
567 	PORT_START	/* coin */
568 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
569 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE )	/* same as the service mode dsw */
570 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
571 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
572 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
573 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
574 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
575 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
576 
577 	PORT_START	/* Dip switches (Active high) */
578 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
579 	PORT_DIPSETTING(	0x02, "1" )
580 	PORT_DIPSETTING(	0x00, "2" )
581 	PORT_DIPSETTING(	0x01, "3" )
582 	PORT_DIPSETTING(	0x03, "4" )
583 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
584 	PORT_DIPSETTING(	0x0c, "A 4/1 B 1/4" )
585 	PORT_DIPSETTING(	0x04, "A 3/1 B 1/3" )
586 	PORT_DIPSETTING(	0x08, "A 2/1 B 1/2" )
587 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
588 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
589 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
590 	PORT_DIPSETTING(	0x10, DEF_STR( On ) )
591 	PORT_DIPNAME( 0x20, 0x00, "Bonus Occurrence" )
592 	PORT_DIPSETTING(	0x00, "1st & 2nd only" )
593 	PORT_DIPSETTING(	0x20, "1st & every 2nd" )
594 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
595 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
596 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
597 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
598 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
599 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
600 
601 	PORT_START /* Dip switches (Active high) */
602 	PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
603 	PORT_DIPNAME( 0x02, 0x00, "Allow Continue" )
604 	PORT_DIPSETTING(	0x02, DEF_STR( No ) )
605 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
606 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
607 	PORT_DIPSETTING(	0x00, "200k 400k" )
608 	PORT_DIPSETTING(	0x08, "400k 600k" )
609 	PORT_DIPSETTING(	0x04, "600k 800k" )
610 	PORT_DIPSETTING(	0x0c, "None" )
611 	PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
612 	PORT_DIPSETTING(	0x20, "Demo Sounds Off" )
613 	PORT_DIPSETTING(	0x00, "Demo Sounds On" )
614 	PORT_DIPSETTING(	0x30, "Freeze" )
615 	PORT_BITX( 0,		0x10, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
616 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) )
617 	PORT_DIPSETTING(	0x80, "Easy" )
618 	PORT_DIPSETTING(	0x00, "Normal" )
619 	PORT_DIPSETTING(	0x40, "Hard" )
620 	PORT_DIPSETTING(	0xc0, "Hardest" )
621 
622 	PORT_START	/* player 1 12-way rotary control - not used in this game */
623 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
624 
625 	PORT_START	/* player 2 12-way rotary control - not used in this game */
626 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
627 INPUT_PORTS_END
628 
629 INPUT_PORTS_START( ikari3 )
630 	PORT_START	/* Player 1 controls, maybe all are active_high? */
631 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY )
632 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
633 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
634 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
635 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
636 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
637 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
638 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
639 
640 	PORT_START	/* Player 2 controls */
641 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	  | IPF_8WAY | IPF_PLAYER2 )
642 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
643 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
644 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
645 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
646 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
647 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
648 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2  )
649 
650 	PORT_START	/* coin */
651 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
652 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE )	/* same as the service mode dsw */
653 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
654 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
655 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 )
656 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
657 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
658 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
659 
660 	PORT_START	/* Dip switches (Active high) */
661 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
662 	PORT_DIPSETTING(	0x02, "2" )
663 	PORT_DIPSETTING(	0x00, "3" )
664 	PORT_DIPSETTING(	0x01, "4" )
665 	PORT_DIPSETTING(	0x03, "5" )
666 	PORT_DIPNAME( 0x0c, 0x00, "Coin A & B" )
667 	PORT_DIPSETTING(	0x08, "First 2 Coins/1 Credit then 1/1" )
668 	PORT_DIPSETTING(	0x00, DEF_STR( 1C_1C ) )
669 	PORT_DIPSETTING(	0x04, "First 1 Coin/2 Credits then 1/1" )
670 	PORT_DIPSETTING(	0x0c, DEF_STR( Free_Play ) )
671 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
672 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
673 	PORT_DIPSETTING(	0x10, DEF_STR( On ) )
674 	PORT_DIPNAME( 0x20, 0x00, "Bonus Occurrence" )
675 	PORT_DIPSETTING(	0x00, "1st & 2nd only" )
676 	PORT_DIPSETTING(	0x20, "1st & every 2nd" )
677 	PORT_DIPNAME( 0x40, 0x00, "Blood" )
678 	PORT_DIPSETTING(	0x40, DEF_STR( Off ) )
679 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
680 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
681 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
682 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
683 
684 	PORT_START /* Dip switches (Active high) */
685 	PORT_SERVICE( 0x01, IP_ACTIVE_HIGH )
686 	PORT_DIPNAME( 0x02, 0x00, "Allow Continue" )
687 	PORT_DIPSETTING(	0x02, DEF_STR( No ) )
688 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
689 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) )
690 	PORT_DIPSETTING(	0x00, "20k 50k" )
691 	PORT_DIPSETTING(	0x08, "40k 100k" )
692 	PORT_DIPSETTING(	0x04, "60k 150k" )
693 	PORT_DIPSETTING(	0x0c, "None" )
694 	PORT_DIPNAME( 0x30, 0x00, "Game Mode" )
695 	PORT_DIPSETTING(	0x20, "Demo Sounds Off" )
696 	PORT_DIPSETTING(	0x00, "Demo Sounds On" )
697 	PORT_DIPSETTING(	0x30, "Freeze" )
698 	PORT_BITX( 0,		0x10, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "Infinite Lives", IP_KEY_NONE, IP_JOY_NONE )
699 	PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Difficulty ) )
700 	PORT_DIPSETTING(	0x00, "Easy" )
701 	PORT_DIPSETTING(	0x80, "Normal" )
702 	PORT_DIPSETTING(	0x40, "Hard" )
703 	PORT_DIPSETTING(	0xc0, "Hardest" )
704 
705 	PORT_START	/* player 1 12-way rotary control - converted in controls_r() */
706 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE, 25, 10, 0, 0, KEYCODE_Z, KEYCODE_X, IP_JOY_NONE, IP_JOY_NONE )
707 
708 	PORT_START	/* player 2 12-way rotary control - converted in controls_r() */
709 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_REVERSE | IPF_PLAYER2, 25, 10, 0, 0, KEYCODE_N, KEYCODE_M, IP_JOY_NONE, IP_JOY_NONE )
710 INPUT_PORTS_END
711 
712 /******************************************************************************/
713 
714 static struct GfxLayout charlayout =
715 {
716 	8,8,	/* 8*8 chars */
717 	2048,
718 	4,		/* 4 bits per pixel  */
719 	{ 0, 4, 0x8000*8, (0x8000*8)+4 },
720 	{ 8*8+3, 8*8+2, 8*8+1, 8*8+0, 3, 2, 1, 0 },
721 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
722 	16*8	/* every char takes 8 consecutive bytes */
723 };
724 
725 static struct GfxLayout pow_spritelayout =
726 {
727 	16,16,	/* 16*16 sprites */
728 	4096*4,
729 	4,		/* 4 bits per pixel */
730 	{ 0, 0x80000*8, 0x100000*8, 0x180000*8 },
731 	{ 16*8+7, 16*8+6, 16*8+5, 16*8+4, 16*8+3, 16*8+2, 16*8+1, 16*8+0,
732 	  7, 6, 5, 4, 3, 2, 1, 0 },
733 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
734 	  8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
735 	8*32	/* every sprite takes 32 consecutive bytes */
736 };
737 
738 static struct GfxLayout searchar_spritelayout =
739 {
740 	16,16,
741 	0x6000,
742 	4,
743 	{ 0, 8,0x180000*8, 0x180000*8+8 },
744 	{ 32*8+7, 32*8+6, 32*8+5, 32*8+4, 32*8+3, 32*8+2, 32*8+1, 32*8+0,
745 		7, 6, 5, 4, 3, 2, 1, 0
746 	},
747 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
748 		8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16
749 	},
750 	64*8
751 };
752 
753 static struct GfxLayout ikari3_spritelayout =
754 {
755 	16,16,	/* 16*16 sprites */
756 	4096*5,
757 	4,		/* 4 bits per pixel */
758 	{ 0x140000*8, 0, 0xa0000*8, 0x1e0000*8 },
759 	{ 16*8+7, 16*8+6, 16*8+5, 16*8+4, 16*8+3, 16*8+2, 16*8+1, 16*8+0,
760 	  7, 6, 5, 4, 3, 2, 1, 0 },
761 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
762 	  8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
763 	8*32	/* every sprite takes 32 consecutive bytes */
764 };
765 
766 static struct GfxDecodeInfo pow_gfxdecodeinfo[] =
767 {
768 	{ REGION_GFX1, 0, &charlayout,		 0, 128 },
769 	{ REGION_GFX2, 0, &pow_spritelayout, 0, 128 },
770 	{ -1 } /* end of array */
771 };
772 
773 static struct GfxDecodeInfo searchar_gfxdecodeinfo[] =
774 {
775 	{ REGION_GFX1, 0, &charlayout,			  0,  16 },
776 	{ REGION_GFX2, 0, &searchar_spritelayout, 0, 128 },
777 	{ -1 } /* end of array */
778 };
779 
780 static struct GfxDecodeInfo ikari3_gfxdecodeinfo[] =
781 {
782 	{ REGION_GFX1, 0, &charlayout,			0,	16 },
783 	{ REGION_GFX2, 0, &ikari3_spritelayout, 0, 128 },
784 	{ -1 } /* end of array */
785 };
786 
787 /******************************************************************************/
788 
irqhandler(int irq)789 static void irqhandler(int irq)
790 {
791 	cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
792 }
793 
794 static struct YM3812interface ym3812_interface =
795 {
796 	1,			/* 1 chip */
797 	4000000,	/* 4 MHz - accurate for POW, should be accurate for others */
798 	{ 100 },
799 	{ irqhandler },
800 };
801 
802 static struct UPD7759_interface upd7759_interface =
803 {
804 	1,		/* number of chips */
805 	{ 50 }, /* volume */
806 	{ REGION_SOUND1 },		/* memory region */
807 	UPD7759_STANDALONE_MODE,		/* chip mode */
808 	{0}
809 };
810 
811 /******************************************************************************/
812 
813 static MACHINE_DRIVER_START( ikari3 )
814 
815 	/* basic machine hardware */
816 	MDRV_CPU_ADD(M68000, 10000000)	/* Accurate */
MDRV_CPU_MEMORY(searchar_readmem,searchar_writemem)817 	MDRV_CPU_MEMORY(searchar_readmem,searchar_writemem)
818 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
819 
820 	MDRV_CPU_ADD(Z80, 4000000)
821 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* Accurate */
822 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
823 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
824 
825 	MDRV_FRAMES_PER_SECOND(60)
826 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
827 
828 	/* video hardware */
829 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
830 	MDRV_SCREEN_SIZE(32*8, 32*8)
831 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
832 	MDRV_GFXDECODE(ikari3_gfxdecodeinfo)
833 	MDRV_PALETTE_LENGTH(2048)
834 
835 	MDRV_VIDEO_START(ikari3)
836 	MDRV_VIDEO_UPDATE(searchar)
837 
838 	/* sound hardware */
839 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
840 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
841 MACHINE_DRIVER_END
842 
843 
844 static MACHINE_DRIVER_START( pow )
845 
846 	/* basic machine hardware */
847 	MDRV_CPU_ADD(M68000, 10000000)	/* Accurate */
848 	MDRV_CPU_MEMORY(pow_readmem,pow_writemem)
849 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
850 
851 	MDRV_CPU_ADD(Z80, 4000000)
852 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* Accurate */
853 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
854 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
855 
856 	MDRV_FRAMES_PER_SECOND(60)
857 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
858 
859 	/* video hardware */
860 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
861 	MDRV_SCREEN_SIZE(32*8, 32*8)
862 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
863 	MDRV_GFXDECODE(pow_gfxdecodeinfo)
864 	MDRV_PALETTE_LENGTH(2048)
865 
866 	MDRV_VIDEO_START(pow)
867 	MDRV_VIDEO_UPDATE(pow)
868 
869 	/* sound hardware */
870 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
871 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
872 MACHINE_DRIVER_END
873 
874 
875 static MACHINE_DRIVER_START( searchar )
876 
877 	/* basic machine hardware */
878 	MDRV_CPU_ADD(M68000, 12000000)
879 	MDRV_CPU_MEMORY(searchar_readmem,searchar_writemem)
880 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
881 
882 	MDRV_CPU_ADD(Z80, 4000000)
883 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
884 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
885 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
886 
887 	MDRV_FRAMES_PER_SECOND(60)
888 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
889 
890 	/* video hardware */
891 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
892 	MDRV_SCREEN_SIZE(32*8, 32*8)
893 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
894 	MDRV_GFXDECODE(searchar_gfxdecodeinfo)
895 	MDRV_PALETTE_LENGTH(2048)
896 
897 	MDRV_VIDEO_START(searchar)
898 	MDRV_VIDEO_UPDATE(searchar)
899 
900 	/* sound hardware */
901 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
902 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
903 MACHINE_DRIVER_END
904 
905 
906 static MACHINE_DRIVER_START( streetsm )
907 
908 	/* basic machine hardware */
909 	MDRV_CPU_ADD(M68000, 10000000)	/* Accurate */
910 	MDRV_CPU_MEMORY(pow_readmem,pow_writemem)
911 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)
912 
913 	MDRV_CPU_ADD(Z80, 4000000)
914 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* Accurate */
915 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
916 	MDRV_CPU_PORTS(sound_readport,sound_writeport)
917 
918 	MDRV_FRAMES_PER_SECOND(60)
919 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
920 
921 	/* video hardware */
922 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
923 	MDRV_SCREEN_SIZE(32*8, 32*8)
924 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
925 	MDRV_GFXDECODE(searchar_gfxdecodeinfo)
926 	MDRV_PALETTE_LENGTH(2048)
927 
928 	MDRV_VIDEO_START(pow)
929 	MDRV_VIDEO_UPDATE(searchar)
930 
931 	/* sound hardware */
932 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
933 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
934 MACHINE_DRIVER_END
935 
936 /******************************************************************************/
937 
938 ROM_START( pow )
939 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
940 	ROM_LOAD16_BYTE( "dg1",   0x000000, 0x20000, CRC(8e71a8af) SHA1(72c2eb2316c2684491331e8adabcb2be084aa6a2) )
941 	ROM_LOAD16_BYTE( "dg2",   0x000001, 0x20000, CRC(4287affc) SHA1(59dfb37296edd3b42231319a9f4df819d384db38) )
942 
943 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
944 	ROM_LOAD( "dg8",        0x000000, 0x10000, CRC(d1d61da3) SHA1(4e78643f8a7d44db3ff091acb0a5da1cc836e3cb) )
945 
946 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
947 	ROM_LOAD( "dg9",        0x000000, 0x08000, CRC(df864a08) SHA1(dd996070077efbbf9d784299b6563cab258e4a8e) )
948 	ROM_LOAD( "dg10",       0x008000, 0x08000, CRC(9e470d53) SHA1(f7dc6ac39ade573480e87170a2781f0f72930580) )
949 
950 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
951 	ROM_LOAD( "snk880.11a", 0x000000, 0x20000, CRC(e70fd906) SHA1(b9e734c074ee1c8ae73e6041d739ab30d2df7d62) )
952 	ROM_LOAD( "snk880.12a", 0x020000, 0x20000, CRC(628b1aed) SHA1(1065ef835da03f7d9776e81c225c3ecdd2affae2) )
953 	ROM_LOAD( "snk880.13a", 0x040000, 0x20000, CRC(19dc8868) SHA1(82aaf93fc8f4b3bf947d373d0f41cc0044207c34) )
954 	ROM_LOAD( "snk880.14a", 0x060000, 0x20000, CRC(47cd498b) SHA1(7fbc007f2d817c26af02fef233f5e0681a17052a) )
955 	ROM_LOAD( "snk880.15a", 0x080000, 0x20000, CRC(7a90e957) SHA1(9650d7cdbcbbbcdd7f75a1c3c08a195aa456e169) )
956 	ROM_LOAD( "snk880.16a", 0x0a0000, 0x20000, CRC(e40a6c13) SHA1(7ad9dfc65f8c8b316933f0fdd3bc7a243d6eff65) )
957 	ROM_LOAD( "snk880.17a", 0x0c0000, 0x20000, CRC(c7931cc2) SHA1(908313d9b7fa4395b5fb79925d068e4f5d354b21) )
958 	ROM_LOAD( "snk880.18a", 0x0e0000, 0x20000, CRC(eed72232) SHA1(ad614e752cf1d3eac9a04cbc90435f988e90ace7) )
959 	ROM_LOAD( "snk880.19a", 0x100000, 0x20000, CRC(1775b8dd) SHA1(c01154749379be6e18baa99f4d94d97942f3dd85) )
960 	ROM_LOAD( "snk880.20a", 0x120000, 0x20000, CRC(f8e752ec) SHA1(1e1e178303f9af84cbb15249c49a870193ef805f) )
961 	ROM_LOAD( "snk880.21a", 0x140000, 0x20000, CRC(27e9fffe) SHA1(e8058db40832b986c5addd22dd69b0308d10ec71) )
962 	ROM_LOAD( "snk880.22a", 0x160000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) )
963 	ROM_LOAD( "snk880.23a", 0x180000, 0x20000, CRC(adb6ad68) SHA1(ed4323d2dfa3efaa496b17f4719f9566d56725e5) )
964 	ROM_LOAD( "snk880.24a", 0x1a0000, 0x20000, CRC(dd41865a) SHA1(c86f14342beca896784b88920d9e0879af4179ab) )
965 	ROM_LOAD( "snk880.25a", 0x1c0000, 0x20000, CRC(055759ad) SHA1(f9b12320f142075d49d447fb107af99272567d58) )
966 	ROM_LOAD( "snk880.26a", 0x1e0000, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) )
967 
968 	ROM_REGION( 0x10000, REGION_SOUND1, 0 )	/* UPD7759 samples */
969 	ROM_LOAD( "dg7",        0x000000, 0x10000, CRC(aba9a9d3) SHA1(5098cd3a064b8ede24797de8879a277d79e79d75) )
970 ROM_END
971 
972 ROM_START( powj )
973 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
974 	ROM_LOAD16_BYTE( "1-2",   0x000000, 0x20000, CRC(2f17bfb0) SHA1(8be18990829eb2586c00b9e8b35e8779bc48296a) )
975 	ROM_LOAD16_BYTE( "2-2",   0x000001, 0x20000, CRC(baa32354) SHA1(a235b82527dc025e699ba2e8e9797dac15ea9440) )
976 
977 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
978 	ROM_LOAD( "dg8",        0x000000, 0x10000, CRC(d1d61da3) SHA1(4e78643f8a7d44db3ff091acb0a5da1cc836e3cb) )
979 
980 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
981 	ROM_LOAD( "dg9",        0x000000, 0x08000, CRC(df864a08) SHA1(dd996070077efbbf9d784299b6563cab258e4a8e) )
982 	ROM_LOAD( "dg10",       0x008000, 0x08000, CRC(9e470d53) SHA1(f7dc6ac39ade573480e87170a2781f0f72930580) )
983 
984 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
985 	ROM_LOAD( "snk880.11a", 0x000000, 0x20000, CRC(e70fd906) SHA1(b9e734c074ee1c8ae73e6041d739ab30d2df7d62) )
986 	ROM_LOAD( "snk880.12a", 0x020000, 0x20000, CRC(628b1aed) SHA1(1065ef835da03f7d9776e81c225c3ecdd2affae2) )
987 	ROM_LOAD( "snk880.13a", 0x040000, 0x20000, CRC(19dc8868) SHA1(82aaf93fc8f4b3bf947d373d0f41cc0044207c34) )
988 	ROM_LOAD( "snk880.14a", 0x060000, 0x20000, CRC(47cd498b) SHA1(7fbc007f2d817c26af02fef233f5e0681a17052a) )
989 	ROM_LOAD( "snk880.15a", 0x080000, 0x20000, CRC(7a90e957) SHA1(9650d7cdbcbbbcdd7f75a1c3c08a195aa456e169) )
990 	ROM_LOAD( "snk880.16a", 0x0a0000, 0x20000, CRC(e40a6c13) SHA1(7ad9dfc65f8c8b316933f0fdd3bc7a243d6eff65) )
991 	ROM_LOAD( "snk880.17a", 0x0c0000, 0x20000, CRC(c7931cc2) SHA1(908313d9b7fa4395b5fb79925d068e4f5d354b21) )
992 	ROM_LOAD( "snk880.18a", 0x0e0000, 0x20000, CRC(eed72232) SHA1(ad614e752cf1d3eac9a04cbc90435f988e90ace7) )
993 	ROM_LOAD( "snk880.19a", 0x100000, 0x20000, CRC(1775b8dd) SHA1(c01154749379be6e18baa99f4d94d97942f3dd85) )
994 	ROM_LOAD( "snk880.20a", 0x120000, 0x20000, CRC(f8e752ec) SHA1(1e1e178303f9af84cbb15249c49a870193ef805f) )
995 	ROM_LOAD( "snk880.21a", 0x140000, 0x20000, CRC(27e9fffe) SHA1(e8058db40832b986c5addd22dd69b0308d10ec71) )
996 	ROM_LOAD( "snk880.22a", 0x160000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) )
997 	ROM_LOAD( "snk880.23a", 0x180000, 0x20000, CRC(adb6ad68) SHA1(ed4323d2dfa3efaa496b17f4719f9566d56725e5) )
998 	ROM_LOAD( "snk880.24a", 0x1a0000, 0x20000, CRC(dd41865a) SHA1(c86f14342beca896784b88920d9e0879af4179ab) )
999 	ROM_LOAD( "snk880.25a", 0x1c0000, 0x20000, CRC(055759ad) SHA1(f9b12320f142075d49d447fb107af99272567d58) )
1000 	ROM_LOAD( "snk880.26a", 0x1e0000, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) )
1001 
1002 	ROM_REGION( 0x10000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1003 	ROM_LOAD( "dg7",        0x000000, 0x10000, CRC(aba9a9d3) SHA1(5098cd3a064b8ede24797de8879a277d79e79d75) )
1004 ROM_END
1005 
1006 ROM_START( searchar )
1007 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1008 	ROM_LOAD16_BYTE( "bhw.2", 0x000000, 0x20000, CRC(e1430138) SHA1(eddc192524a13b2c09bd2bddcd5f8e8b771ceb21) )
1009 	ROM_LOAD16_BYTE( "bhw.3", 0x000001, 0x20000, CRC(ee1f9374) SHA1(fd41c74fd69d65713d8e1a9b8078328381119379) )
1010 
1011 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1012 	ROM_LOAD( "bh.5",       0x000000, 0x10000, CRC(53e2fa76) SHA1(cf25b1def82545a1fd013822ab3cf02483074623) )
1013 
1014 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1015 	ROM_LOAD( "bh.7",       0x000000, 0x08000, CRC(b0f1b049) SHA1(ec276984d91b5759a5e2b6815d1db2abc37b99f8) )
1016 	ROM_LOAD( "bh.8",       0x008000, 0x08000, CRC(174ddba7) SHA1(7b19087cd2ccc409878aefe7fa08bb2e9953d352) )
1017 
1018 	ROM_REGION( 0x300000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1019 	ROM_LOAD( "bh.c1",      0x000000, 0x80000, CRC(1fb8f0ae) SHA1(d63c7376aa5f01bc009176b23324e720bada4286) )
1020 	ROM_LOAD( "bh.c3",      0x080000, 0x80000, CRC(fd8bc407) SHA1(88d750293808bf6ea23864b22070314b14fbee3c) )
1021 	ROM_LOAD( "bh.c5",      0x100000, 0x80000, CRC(1d30acc3) SHA1(e5ca39853779475b83fe37304e7bed2c293bd587) )
1022 	ROM_LOAD( "bh.c2",      0x180000, 0x80000, CRC(7c803767) SHA1(992516fbb28d00feabbed5769fa3a5748199a7d8) )
1023 	ROM_LOAD( "bh.c4",      0x200000, 0x80000, CRC(eede7c43) SHA1(7645acf0beb4fff9ec92205dcf34124360cd52f6) )
1024 	ROM_LOAD( "bh.c6",      0x280000, 0x80000, CRC(9f785cd9) SHA1(e5c7797ae7a3139e1814b068c5ecfe5c6bf30d0f) )
1025 
1026 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1027 	ROM_LOAD( "bh.v1",      0x000000, 0x20000, CRC(07a6114b) SHA1(224df4616b77a56f33974d3b1793473d48ad52ca) )
1028 
1029 	ROM_REGION16_BE( 0x40000, REGION_USER1, 0 ) /* Extra code bank */
1030 	ROM_LOAD16_BYTE( "bhw.1", 0x000000, 0x20000, CRC(62b60066) SHA1(f7e7985c8f5f8191c580e777e1b7ed29d944d23f) )
1031 	ROM_LOAD16_BYTE( "bhw.4", 0x000001, 0x20000, CRC(16d8525c) SHA1(0098b0a7fcb23de2661bbec9a05254aa46579bb2) )
1032 ROM_END
1033 
1034 ROM_START( sercharu )
1035 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1036 	ROM_LOAD16_BYTE( "bh.2",  0x000000, 0x20000, CRC(c852e2e2) SHA1(c4b1b366f452122549046a3dec9b6b375bc273af) )
1037 	ROM_LOAD16_BYTE( "bh.3",  0x000001, 0x20000, CRC(bc04a4a1) SHA1(aa91583b987248a3e99813ab5e8ee03c02dac9b9) )
1038 
1039 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1040 	ROM_LOAD( "bh.5",       0x000000, 0x10000, CRC(53e2fa76) SHA1(cf25b1def82545a1fd013822ab3cf02483074623) )
1041 
1042 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1043 	ROM_LOAD( "bh.7",       0x000000, 0x08000, CRC(b0f1b049) SHA1(ec276984d91b5759a5e2b6815d1db2abc37b99f8) )
1044 	ROM_LOAD( "bh.8",       0x008000, 0x08000, CRC(174ddba7) SHA1(7b19087cd2ccc409878aefe7fa08bb2e9953d352) )
1045 
1046 	ROM_REGION( 0x300000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1047 	ROM_LOAD( "bh.c1",      0x000000, 0x80000, CRC(1fb8f0ae) SHA1(d63c7376aa5f01bc009176b23324e720bada4286) )
1048 	ROM_LOAD( "bh.c3",      0x080000, 0x80000, CRC(fd8bc407) SHA1(88d750293808bf6ea23864b22070314b14fbee3c) )
1049 	ROM_LOAD( "bh.c5",      0x100000, 0x80000, CRC(1d30acc3) SHA1(e5ca39853779475b83fe37304e7bed2c293bd587) )
1050 	ROM_LOAD( "bh.c2",      0x180000, 0x80000, CRC(7c803767) SHA1(992516fbb28d00feabbed5769fa3a5748199a7d8) )
1051 	ROM_LOAD( "bh.c4",      0x200000, 0x80000, CRC(eede7c43) SHA1(7645acf0beb4fff9ec92205dcf34124360cd52f6) )
1052 	ROM_LOAD( "bh.c6",      0x280000, 0x80000, CRC(9f785cd9) SHA1(e5c7797ae7a3139e1814b068c5ecfe5c6bf30d0f) )
1053 
1054 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1055 	ROM_LOAD( "bh.v1",      0x000000, 0x20000, CRC(07a6114b) SHA1(224df4616b77a56f33974d3b1793473d48ad52ca) )
1056 
1057 	ROM_REGION16_BE( 0x40000, REGION_USER1, 0 ) /* Extra code bank */
1058 	ROM_LOAD16_BYTE( "bh.1",  0x000000, 0x20000, CRC(ba9ca70b) SHA1(c46727473673554cbe4bbbc0288d66357f99a80e) )
1059 	ROM_LOAD16_BYTE( "bh.4",  0x000001, 0x20000, CRC(eabc5ddf) SHA1(08a2a8fcdf6a08a2694e00f4232a5bfbec98fd27) )
1060 ROM_END
1061 
1062 ROM_START( streetsm )
1063 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1064 	ROM_LOAD16_BYTE( "s2-1ver2.14h", 0x00000, 0x20000, CRC(655f4773) SHA1(5374a6cf0b895c5ff839b0f52402df4cc53241cf) )
1065 	ROM_LOAD16_BYTE( "s2-2ver2.14k", 0x00001, 0x20000, CRC(efae4823) SHA1(f3be25b76cf13feeaaaf0e9640c30a6a7371f108) )
1066 
1067 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1068 	ROM_LOAD( "s2-5.16c",    0x000000, 0x10000, CRC(ca4b171e) SHA1(a05fd81f68759a09be3ec09f38d7c9364dfb6c14) )
1069 
1070 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1071 	ROM_LOAD( "s2-9.25l",    0x000000, 0x08000, CRC(09b6ac67) SHA1(0b1ef51d9cd755eacc25b33360811cc86c32c0b7) )
1072 	ROM_LOAD( "s2-10.25m",   0x008000, 0x08000, CRC(89e4ee6f) SHA1(21797286836ad71d2497e3e6d4df1fbe545562ab) )
1073 
1074 	ROM_REGION( 0x300000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1075 	ROM_LOAD( "stsmart.900", 0x000000, 0x80000, CRC(a8279a7e) SHA1(244bdacb29b00f71da93ed8ddddbcffcce110be8) )
1076 	ROM_LOAD( "stsmart.902", 0x080000, 0x80000, CRC(2f021aa1) SHA1(699d0b5ac79e34e4fc4cef70eb448f21f1c3e9e2) )
1077 	ROM_LOAD( "stsmart.904", 0x100000, 0x80000, CRC(167346f7) SHA1(fb4ea412622245db49ec15449ee4fa0d90922f06) )
1078 	ROM_LOAD( "stsmart.901", 0x180000, 0x80000, CRC(c305af12) SHA1(18b5d448fe9608efcd2e5bb8faa24808d1489ec8) )
1079 	ROM_LOAD( "stsmart.903", 0x200000, 0x80000, CRC(73c16d35) SHA1(40cf7a58926c649f89b08917afb35b08918d1a0f) )
1080 	ROM_LOAD( "stsmart.905", 0x280000, 0x80000, CRC(a5beb4e2) SHA1(c26b7eee2ca32bd73fb7a09c6ef52c2ae1c7fc1c) )
1081 
1082 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1083 	ROM_LOAD( "s2-6.18d",    0x000000, 0x20000, CRC(47db1605) SHA1(ae00e633eb98567f04ff97e3d63e04e049d955ec) )
1084 ROM_END
1085 
1086 ROM_START( streets1 )
1087 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1088 	ROM_LOAD16_BYTE( "s2-1ver1.9c",  0x00000, 0x20000, CRC(b59354c5) SHA1(086c87541d422f90bdaad8d63b14d0d520c12564) )
1089 	ROM_LOAD16_BYTE( "s2-2ver1.10c", 0x00001, 0x20000, CRC(e448b68b) SHA1(08d674ab3d9bd3d3b1d50967a56fa6a002ce0b8d) )
1090 
1091 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1092 	ROM_LOAD( "s2-5.16c",    0x000000, 0x10000, CRC(ca4b171e) SHA1(a05fd81f68759a09be3ec09f38d7c9364dfb6c14) )
1093 
1094 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1095 	ROM_LOAD( "s2-7.15l",    0x000000, 0x08000, CRC(22bedfe5) SHA1(64efb2281c32afe5a06f35cce939e6a53226c6ed) )
1096 	ROM_LOAD( "s2-8.15m",    0x008000, 0x08000, CRC(6a1c70ab) SHA1(019538ddcb713d0810b26b6aa65f6e4596931621) )
1097 
1098 	ROM_REGION( 0x300000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1099 	ROM_LOAD( "stsmart.900", 0x000000, 0x80000, CRC(a8279a7e) SHA1(244bdacb29b00f71da93ed8ddddbcffcce110be8) )
1100 	ROM_LOAD( "stsmart.902", 0x080000, 0x80000, CRC(2f021aa1) SHA1(699d0b5ac79e34e4fc4cef70eb448f21f1c3e9e2) )
1101 	ROM_LOAD( "stsmart.904", 0x100000, 0x80000, CRC(167346f7) SHA1(fb4ea412622245db49ec15449ee4fa0d90922f06) )
1102 	ROM_LOAD( "stsmart.901", 0x180000, 0x80000, CRC(c305af12) SHA1(18b5d448fe9608efcd2e5bb8faa24808d1489ec8) )
1103 	ROM_LOAD( "stsmart.903", 0x200000, 0x80000, CRC(73c16d35) SHA1(40cf7a58926c649f89b08917afb35b08918d1a0f) )
1104 	ROM_LOAD( "stsmart.905", 0x280000, 0x80000, CRC(a5beb4e2) SHA1(c26b7eee2ca32bd73fb7a09c6ef52c2ae1c7fc1c) )
1105 
1106 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1107 	ROM_LOAD( "s2-6.18d",    0x000000, 0x20000, CRC(47db1605) SHA1(ae00e633eb98567f04ff97e3d63e04e049d955ec) )
1108 ROM_END
1109 
1110 ROM_START( streetsw )
1111 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1112 	ROM_LOAD16_BYTE( "s-smart1.bin", 0x00000, 0x20000, CRC(a1f5ceab) SHA1(74f5a4288618fbce6ed3dc75b6ccfa695396193c) )
1113 	ROM_LOAD16_BYTE( "s-smart2.bin", 0x00001, 0x20000, CRC(263f615d) SHA1(4576f9d2abb31ecf747a5075716579e75613d57c) )
1114 
1115 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1116 	ROM_LOAD( "s2-5.16c",    0x000000, 0x10000, CRC(ca4b171e) SHA1(a05fd81f68759a09be3ec09f38d7c9364dfb6c14) )
1117 
1118 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1119 	ROM_LOAD( "s2-7.15l",    0x000000, 0x08000, CRC(22bedfe5) SHA1(64efb2281c32afe5a06f35cce939e6a53226c6ed) )
1120 	ROM_LOAD( "s2-8.15m",    0x008000, 0x08000, CRC(6a1c70ab) SHA1(019538ddcb713d0810b26b6aa65f6e4596931621) )
1121 
1122 	ROM_REGION( 0x300000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1123 	ROM_LOAD( "stsmart.900", 0x000000, 0x80000, CRC(a8279a7e) SHA1(244bdacb29b00f71da93ed8ddddbcffcce110be8) )
1124 	ROM_LOAD( "stsmart.902", 0x080000, 0x80000, CRC(2f021aa1) SHA1(699d0b5ac79e34e4fc4cef70eb448f21f1c3e9e2) )
1125 	ROM_LOAD( "stsmart.904", 0x100000, 0x80000, CRC(167346f7) SHA1(fb4ea412622245db49ec15449ee4fa0d90922f06) )
1126 	ROM_LOAD( "stsmart.901", 0x180000, 0x80000, CRC(c305af12) SHA1(18b5d448fe9608efcd2e5bb8faa24808d1489ec8) )
1127 	ROM_LOAD( "stsmart.903", 0x200000, 0x80000, CRC(73c16d35) SHA1(40cf7a58926c649f89b08917afb35b08918d1a0f) )
1128 	ROM_LOAD( "stsmart.905", 0x280000, 0x80000, CRC(a5beb4e2) SHA1(c26b7eee2ca32bd73fb7a09c6ef52c2ae1c7fc1c) )
1129 
1130 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1131 	ROM_LOAD( "s2-6.18d",    0x000000, 0x20000, CRC(47db1605) SHA1(ae00e633eb98567f04ff97e3d63e04e049d955ec) )
1132 ROM_END
1133 
1134 ROM_START( streetsj )
1135 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1136 	ROM_LOAD16_BYTE( "s2v1j_01.bin", 0x00000, 0x20000, CRC(f031413c) SHA1(5d7dfeac03f786736914f047c28a7a0488175176) )
1137 	ROM_LOAD16_BYTE( "s2v1j_02.bin", 0x00001, 0x20000, CRC(e403a40b) SHA1(e740848d716586737eff6e3c201fb3e3da048a09) )
1138 
1139 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1140 	ROM_LOAD( "s2-5.16c",    0x000000, 0x10000, CRC(ca4b171e) SHA1(a05fd81f68759a09be3ec09f38d7c9364dfb6c14) )
1141 
1142 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1143 	ROM_LOAD( "s2-7.15l",    0x000000, 0x08000, CRC(22bedfe5) SHA1(64efb2281c32afe5a06f35cce939e6a53226c6ed) )
1144 	ROM_LOAD( "s2-8.15m",    0x008000, 0x08000, CRC(6a1c70ab) SHA1(019538ddcb713d0810b26b6aa65f6e4596931621) )
1145 
1146 	ROM_REGION( 0x300000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1147 	ROM_LOAD( "stsmart.900", 0x000000, 0x80000, CRC(a8279a7e) SHA1(244bdacb29b00f71da93ed8ddddbcffcce110be8) )
1148 	ROM_LOAD( "stsmart.902", 0x080000, 0x80000, CRC(2f021aa1) SHA1(699d0b5ac79e34e4fc4cef70eb448f21f1c3e9e2) )
1149 	ROM_LOAD( "stsmart.904", 0x100000, 0x80000, CRC(167346f7) SHA1(fb4ea412622245db49ec15449ee4fa0d90922f06) )
1150 	ROM_LOAD( "stsmart.901", 0x180000, 0x80000, CRC(c305af12) SHA1(18b5d448fe9608efcd2e5bb8faa24808d1489ec8) )
1151 	ROM_LOAD( "stsmart.903", 0x200000, 0x80000, CRC(73c16d35) SHA1(40cf7a58926c649f89b08917afb35b08918d1a0f) )
1152 	ROM_LOAD( "stsmart.905", 0x280000, 0x80000, CRC(a5beb4e2) SHA1(c26b7eee2ca32bd73fb7a09c6ef52c2ae1c7fc1c) )
1153 
1154 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1155 	ROM_LOAD( "s2-6.18d",    0x000000, 0x20000, CRC(47db1605) SHA1(ae00e633eb98567f04ff97e3d63e04e049d955ec) )
1156 ROM_END
1157 
1158 ROM_START( ikari3 )
1159 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1160 	ROM_LOAD16_BYTE( "ik3-2.bin", 0x000000, 0x20000, CRC(a7b34dcd) SHA1(7c2f20ae4f7dbebd3dfa3ec5408ed714e6535b6a) )
1161 	ROM_LOAD16_BYTE( "ik3-3.bin", 0x000001, 0x20000, CRC(50f2b83d) SHA1(b1f0c554b262614dd2cff7a3857cb974d361937f) )
1162 
1163 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1164 	ROM_LOAD( "ik3-5.bin",  0x000000, 0x10000, CRC(ce6706fc) SHA1(95505b90a9524abf0c8c1ec6b2c40d8f25cb1d92) )
1165 
1166 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1167 	ROM_LOAD( "ik3-7.bin",  0x000000, 0x08000, CRC(0b4804df) SHA1(66d16d245bfc404366164823faaea0bfec83e487) )
1168 	ROM_LOAD( "ik3-8.bin",  0x008000, 0x08000, CRC(10ab4e50) SHA1(dee8416eb720848cf6471e568dadc1cfc6c2e67f) )
1169 
1170 	ROM_REGION( 0x280000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1171 	ROM_LOAD( "ik3-13.bin", 0x000000, 0x20000, CRC(9a56bd32) SHA1(9301b48f970b71a909fb44514b2e93c3f1516b38) )
1172 	ROM_LOAD( "ik3-12.bin", 0x020000, 0x20000, CRC(0ce6a10a) SHA1(13a231aa0002b2c5a0d9404ba05a879e212d638e) )
1173 	ROM_LOAD( "ik3-11.bin", 0x040000, 0x20000, CRC(e4e2be43) SHA1(959d2799708ddae909b017c0696694c46a52697e) )
1174 	ROM_LOAD( "ik3-10.bin", 0x060000, 0x20000, CRC(ac222372) SHA1(8a17e37699d691b962a6d0256a18550cc73ddfef) )
1175 	ROM_LOAD( "ik3-9.bin",  0x080000, 0x20000, CRC(c33971c2) SHA1(91f3eb301803f5a7027da1ff7dd2a28bc97e5125) )
1176 	ROM_LOAD( "ik3-14.bin", 0x0a0000, 0x20000, CRC(453bea77) SHA1(f8f8d0c048fcf32ad99e1de622d9ab635bb86eae) )
1177 	ROM_LOAD( "ik3-15.bin", 0x0c0000, 0x20000, CRC(781a81fc) SHA1(e08a6cf9c632d1002176afe618605bc06168e8aa) )
1178 	ROM_LOAD( "ik3-16.bin", 0x0e0000, 0x20000, CRC(80ba400b) SHA1(2cc3e53c45f239516a60c461ad9cfa5955164262) )
1179 	ROM_LOAD( "ik3-17.bin", 0x100000, 0x20000, CRC(0cc3ce4a) SHA1(7b34435d0bbb089055a183b821ab255170db6bec) )
1180 	ROM_LOAD( "ik3-18.bin", 0x120000, 0x20000, CRC(ba106245) SHA1(ac609ec3046c21fe6058f91dd4528c5c6448dc15) )
1181 	ROM_LOAD( "ik3-23.bin", 0x140000, 0x20000, CRC(d0fd5c77) SHA1(c171c64ad252f0ba5b0bbdf37808102fca37b488) )
1182 	ROM_LOAD( "ik3-22.bin", 0x160000, 0x20000, CRC(4878d883) SHA1(8cdb541bad00e707fb65399d637b7cc9288ada77) )
1183 	ROM_LOAD( "ik3-21.bin", 0x180000, 0x20000, CRC(50d0fbf0) SHA1(9ff5fbea8d35d0f9a38ddd7eb093edcd91d9f874) )
1184 	ROM_LOAD( "ik3-20.bin", 0x1a0000, 0x20000, CRC(9a851efc) SHA1(bc7be338ee4da7fbfe6fe44a9c7889817416bc44) )
1185 	ROM_LOAD( "ik3-19.bin", 0x1c0000, 0x20000, CRC(4ebdba89) SHA1(f3ecfef4c9d2aba58dc3e6aa3cf5813d68686909) )
1186 	ROM_LOAD( "ik3-24.bin", 0x1e0000, 0x20000, CRC(e9b26d68) SHA1(067d582d33157ed4b7980bd87f2f260ab74c347b) )
1187 	ROM_LOAD( "ik3-25.bin", 0x200000, 0x20000, CRC(073b03f1) SHA1(b8053139799fa06c7324cee928154c89d4425ab1) )
1188 	ROM_LOAD( "ik3-26.bin", 0x220000, 0x20000, CRC(9c613561) SHA1(fc7c9a642b18faa94e6a2ba53f35a4d756a25da3) )
1189 	ROM_LOAD( "ik3-27.bin", 0x240000, 0x20000, CRC(16dd227e) SHA1(db3b1718dea65bc9a1a736aa62aa2be389313baf) )
1190 	ROM_LOAD( "ik3-28.bin", 0x260000, 0x20000, CRC(711715ae) SHA1(90978c86884ca3d23c138d95b654e2fb3afc6f9a) )
1191 
1192 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1193 	ROM_LOAD( "ik3-6.bin",  0x000000, 0x20000, CRC(59d256a4) SHA1(1e7b33329f761c695bc9a817bbc0c5e13386d073) )
1194 
1195 	ROM_REGION16_BE( 0x40000, REGION_USER1, 0 ) /* Extra code bank */
1196 	ROM_LOAD16_BYTE( "ik3-1.bin",  0x000000, 0x10000, CRC(47e4d256) SHA1(7c6921cf2f1b8c3dae867eb1fc14e3da218cc1e0) )
1197 	ROM_LOAD16_BYTE( "ik3-4.bin",  0x000001, 0x10000, CRC(a43af6b5) SHA1(1ad3acadbadd21642932028ecd7c282f7fd02856) )
1198 ROM_END
1199 
1200 ROM_START( ikari3nr ) /* 8-Way Joystick */
1201 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
1202 	ROM_LOAD16_BYTE( "ik3-2-ver1.c10", 0x000000, 0x20000, CRC(1bae8023) SHA1(42d590a545cbabc596f2e0d9a3d56b1bc270ec9a) )
1203 	ROM_LOAD16_BYTE( "ik3-3-ver1.c9",  0x000001, 0x20000, CRC(10e38b66) SHA1(28cc82d868f59cd6dde1c4e4c890627012e5e978) )
1204 
1205 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* Sound CPU */
1206 	ROM_LOAD( "ik3-5.bin",  0x000000, 0x10000, CRC(ce6706fc) SHA1(95505b90a9524abf0c8c1ec6b2c40d8f25cb1d92) )
1207 
1208 	ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE )	/* characters */
1209 	ROM_LOAD( "ik3-7.bin",  0x000000, 0x08000, CRC(0b4804df) SHA1(66d16d245bfc404366164823faaea0bfec83e487) )
1210 	ROM_LOAD( "ik3-8.bin",  0x008000, 0x08000, CRC(10ab4e50) SHA1(dee8416eb720848cf6471e568dadc1cfc6c2e67f) )
1211 
1212 	ROM_REGION( 0x280000, REGION_GFX2, ROMREGION_DISPOSE )	/* sprites */
1213 	ROM_LOAD( "ik3-13.bin", 0x000000, 0x20000, CRC(9a56bd32) SHA1(9301b48f970b71a909fb44514b2e93c3f1516b38) )
1214 	ROM_LOAD( "ik3-12.bin", 0x020000, 0x20000, CRC(0ce6a10a) SHA1(13a231aa0002b2c5a0d9404ba05a879e212d638e) )
1215 	ROM_LOAD( "ik3-11.bin", 0x040000, 0x20000, CRC(e4e2be43) SHA1(959d2799708ddae909b017c0696694c46a52697e) )
1216 	ROM_LOAD( "ik3-10.bin", 0x060000, 0x20000, CRC(ac222372) SHA1(8a17e37699d691b962a6d0256a18550cc73ddfef) )
1217 	ROM_LOAD( "ik3-9.bin",  0x080000, 0x20000, CRC(c33971c2) SHA1(91f3eb301803f5a7027da1ff7dd2a28bc97e5125) )
1218 	ROM_LOAD( "ik3-14.bin", 0x0a0000, 0x20000, CRC(453bea77) SHA1(f8f8d0c048fcf32ad99e1de622d9ab635bb86eae) )
1219 	ROM_LOAD( "ik3-15.bin", 0x0c0000, 0x20000, CRC(781a81fc) SHA1(e08a6cf9c632d1002176afe618605bc06168e8aa) )
1220 	ROM_LOAD( "ik3-16.bin", 0x0e0000, 0x20000, CRC(80ba400b) SHA1(2cc3e53c45f239516a60c461ad9cfa5955164262) )
1221 	ROM_LOAD( "ik3-17.bin", 0x100000, 0x20000, CRC(0cc3ce4a) SHA1(7b34435d0bbb089055a183b821ab255170db6bec) )
1222 	ROM_LOAD( "ik3-18.bin", 0x120000, 0x20000, CRC(ba106245) SHA1(ac609ec3046c21fe6058f91dd4528c5c6448dc15) )
1223 	ROM_LOAD( "ik3-23.bin", 0x140000, 0x20000, CRC(d0fd5c77) SHA1(c171c64ad252f0ba5b0bbdf37808102fca37b488) )
1224 	ROM_LOAD( "ik3-22.bin", 0x160000, 0x20000, CRC(4878d883) SHA1(8cdb541bad00e707fb65399d637b7cc9288ada77) )
1225 	ROM_LOAD( "ik3-21.bin", 0x180000, 0x20000, CRC(50d0fbf0) SHA1(9ff5fbea8d35d0f9a38ddd7eb093edcd91d9f874) )
1226 	ROM_LOAD( "ik3-20.bin", 0x1a0000, 0x20000, CRC(9a851efc) SHA1(bc7be338ee4da7fbfe6fe44a9c7889817416bc44) )
1227 	ROM_LOAD( "ik3-19.bin", 0x1c0000, 0x20000, CRC(4ebdba89) SHA1(f3ecfef4c9d2aba58dc3e6aa3cf5813d68686909) )
1228 	ROM_LOAD( "ik3-24.bin", 0x1e0000, 0x20000, CRC(e9b26d68) SHA1(067d582d33157ed4b7980bd87f2f260ab74c347b) )
1229 	ROM_LOAD( "ik3-25.bin", 0x200000, 0x20000, CRC(073b03f1) SHA1(b8053139799fa06c7324cee928154c89d4425ab1) )
1230 	ROM_LOAD( "ik3-26.bin", 0x220000, 0x20000, CRC(9c613561) SHA1(fc7c9a642b18faa94e6a2ba53f35a4d756a25da3) )
1231 	ROM_LOAD( "ik3-27.bin", 0x240000, 0x20000, CRC(16dd227e) SHA1(db3b1718dea65bc9a1a736aa62aa2be389313baf) )
1232 	ROM_LOAD( "ik3-28.bin", 0x260000, 0x20000, CRC(711715ae) SHA1(90978c86884ca3d23c138d95b654e2fb3afc6f9a) )
1233 
1234 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* UPD7759 samples */
1235 	ROM_LOAD( "ik3-6.bin",  0x000000, 0x20000, CRC(59d256a4) SHA1(1e7b33329f761c695bc9a817bbc0c5e13386d073) )
1236 
1237 	ROM_REGION16_BE( 0x40000, REGION_USER1, 0 ) /* Extra code bank */
1238 	ROM_LOAD16_BYTE( "ik3-1.c8",   0x000000, 0x10000, CRC(47e4d256) SHA1(7c6921cf2f1b8c3dae867eb1fc14e3da218cc1e0) )
1239 	ROM_LOAD16_BYTE( "ik3-4.c12",  0x000001, 0x10000, CRC(a43af6b5) SHA1(1ad3acadbadd21642932028ecd7c282f7fd02856) )
1240 ROM_END
1241 
1242 /******************************************************************************/
1243 
1244 static DRIVER_INIT( searchar )
1245 {
1246 	cpu_setbank(1, memory_region(REGION_USER1));
1247 }
1248 
1249 /******************************************************************************/
1250 
1251 GAME( 1988, pow,      0,	pow,	  pow,	    0,		  ROT0,  "SNK", "P.O.W. - Prisoners of War (US)" )
1252 GAME( 1988, powj,     pow,	pow,	  powj,     0,		  ROT0,  "SNK", "Datsugoku - Prisoners of War (Japan)" )
1253 GAME( 1989, searchar, 0,	searchar, searchar, searchar,     ROT90, "SNK", "SAR - Search And Rescue (World)" )
1254 GAME( 1989, sercharu, searchar, searchar, searchar, searchar,     ROT90, "SNK", "SAR - Search And Rescue (US)" )
1255 GAME( 1989, streetsm, 0,	streetsm, streetsm, 0,		  ROT0,  "SNK", "Street Smart (US version 2)" )
1256 GAME( 1989, streets1, streetsm, searchar, streetsm, 0,		  ROT0,  "SNK", "Street Smart (US version 1)" )
1257 GAME( 1989, streetsw, streetsm, searchar, streetsj, 0,		  ROT0,  "SNK", "Street Smart (World version 1)" )
1258 GAME( 1989, streetsj, streetsm, searchar, streetsj, 0,		  ROT0,  "SNK", "Street Smart (Japan version 1)" )
1259 GAME( 1989, ikari3,   0,	ikari3,   ikari3,   searchar,     ROT0,  "SNK", "Ikari III - The Rescue (US, Rotary Joystick)" )
1260 GAME( 1989, ikari3nr, ikari3,   ikari3,   ikari3,   searchar,     ROT0,  "SNK", "Ikari III - The Rescue (World, 8-Way Joystick)" )
1261