1 /***************************************************************************
2
3 Legendary Wings
4 Section Z
5 Trojan
6 Avengers
7
8 Driver provided by Paul Leaman
9
10 To Do:
11 - sectionz does "false contacts" on the coin counters, causing them to
12 increment twice per coin.
13 - clean up Avengers protection; it currently checks against hard-coded program
14 counter rather than behaving as a memory-mapped black box.
15
16
17 Change Log:
18
19 FEB-2003 (AT)
20
21 - bug fixes:
22
23 avengers061gre: missing sound effects in Avengers
24 avengers37b16gre: screen artifacts in Avengers
25 lwingsc37b7gre: incorrect sprite clipping in all games
26
27 Notes:
28
29 avengers061gre2: corrupted graphics in Avengers' ending not fixed.
30 This bug is not in the Japanese set "Buraiken".
31 It might just be a bug in the original: the tiles for the character
32 image are just not present in the US version, replaced by more tiles
33 for the title animation. The tile map ROM is the same between the two
34 versions.
35
36 trojan37b1gre: stage 2-1 boss x flip glitches not fixed.
37 This could be a side effect of sprite RAM buffering. Suggest buffering
38 on-screen content instead of sprite memory.
39
40 Previous clock settings were too low. Sometimes Avengers and Trojan
41 could not finish clearing VRAM before a new frame is drawn and left
42 behind screen artifacts. Avengers' second CPU was forced to pre-empt
43 during soundlatch operations, resulting in double or missing sound
44 effects.
45
46 ***************************************************************************/
47
48 #include "driver.h"
49 #include "vidhrdw/generic.h"
50 #include "lwings.h"
51
52 /* Avengers runs on hardware almost identical to Trojan, but with a protection
53 * device and some small changes to the memory map and videohardware.
54 *
55 * Background colors are fetched 64 bytes at a time and copied to palette RAM.
56 *
57 * Another function takes as input 2 pairs of (x,y) coordinates, and returns
58 * a code reflecting the direction (8 angles) from one point to the other.
59 */
60 static data8_t avengers_param[4];
61 static int avengers_palette_pen;
62 static data8_t *avengers_soundlatch2, avengers_soundstate=0;
63 static data8_t avengers_adpcm;
64
WRITE_HANDLER(avengers_adpcm_w)65 WRITE_HANDLER( avengers_adpcm_w )
66 {
67 avengers_adpcm = data;
68 }
69
READ_HANDLER(avengers_adpcm_r)70 READ_HANDLER( avengers_adpcm_r )
71 {
72 return avengers_adpcm;
73 }
74
WRITE_HANDLER(lwings_bankswitch_w)75 static WRITE_HANDLER( lwings_bankswitch_w )
76 {
77 unsigned char *RAM;
78 int bank;
79
80 /* bit 0 is flip screen */
81 flip_screen_set(~data & 0x01);
82
83 /* bits 1 and 2 select ROM bank */
84 RAM = memory_region(REGION_CPU1);
85 bank = (data & 0x06) >> 1;
86 cpu_setbank(1,&RAM[0x10000 + bank*0x4000]);
87
88 /* bit 3 enables NMI */
89 interrupt_enable_w(0,data & 0x08);
90
91 /* bits 6 and 7 are coin counters */
92 coin_counter_w(1,data & 0x40);
93 coin_counter_w(0,data & 0x80);
94 }
95
INTERRUPT_GEN(lwings_interrupt)96 static INTERRUPT_GEN( lwings_interrupt )
97 {
98 if (interrupt_enable_r(0))
99 cpu_set_irq_line_and_vector(0,0,HOLD_LINE,0xd7); /* RST 10h */
100 }
101
INTERRUPT_GEN(avengers_interrupt)102 static INTERRUPT_GEN( avengers_interrupt )
103 {
104 if( cpu_getiloops()==0 )
105 irq0_line_hold();
106 else
107 nmi_line_pulse();
108 }
109
WRITE_HANDLER(avengers_protection_w)110 static WRITE_HANDLER( avengers_protection_w )
111 {
112 int pc = activecpu_get_pc();
113
114 if( pc == 0x2eeb )
115 {
116 avengers_param[0] = data;
117 }
118 else if( pc == 0x2f09 )
119 {
120 avengers_param[1] = data;
121 }
122 else if( pc == 0x2f26 )
123 {
124 avengers_param[2] = data;
125 }
126 else if( pc == 0x2f43 )
127 {
128 avengers_param[3] = data;
129 }
130 else if( pc == 0x0445 )
131 {
132 avengers_soundstate = 0x80;
133 soundlatch_w( 0, data );
134 }
135 }
136
WRITE_HANDLER(avengers_prot_bank_w)137 static WRITE_HANDLER( avengers_prot_bank_w )
138 {
139 avengers_palette_pen = data*64;
140 }
141
avengers_fetch_paldata(void)142 static int avengers_fetch_paldata( void )
143 {
144 const char pal_data[] =
145 /* page 1: 0x03,0x02,0x01,0x00 */
146 "0000000000000000" "A65486A6364676D6" "C764C777676778A7" "A574E5E5C5756AE5"
147 "0000000000000000" "F51785D505159405" "A637B6A636269636" "F45744E424348824"
148 "0000000000000000" "A33263B303330203" "4454848454440454" "A27242C232523632"
149 "0000000000000000" "1253327202421102" "3386437373631373" "41A331A161715461"
150 "0000000000000000" "1341715000711203" "4442635191622293" "5143D48383D37186"
151 "0000000000000000" "2432423000412305" "6633343302333305" "7234A565A5A4A2A8"
152 "0000000000000000" "46232422A02234A7" "88241624A21454A7" "A3256747A665D3AA"
153 "0000000000000000" "070406020003050B" "0A05090504050508" "05060A090806040C"
154
155 /* page2: 0x07,0x06,0x05,0x04 */
156 "0000000000000000" "2472030503230534" "6392633B23433B53" "0392846454346423"
157 "0000000000000000" "1313052405050423" "3223754805354832" "323346A38686A332"
158 "0000000000000000" "72190723070723D2" "81394776070776D1" "A15929F25959F2F1"
159 "0000000000000000" "650706411A2A1168" "770737C43A3A3466" "87071F013C0C3175"
160 "0000000000000000" "2001402727302020" "4403048F4A484344" "4A050B074E0E4440"
161 "0000000000000000" "3003800C35683130" "5304035C587C5453" "5607080C5B265550"
162 "0000000000000000" "4801D00043854245" "6C020038669A6569" "6604050A69446764"
163 "0000000000000000" "0504000001030504" "0A05090504060307" "04090D0507010403"
164
165 /* page3: 0x0b,0x0a,0x09,0x08 */
166 "0000000000000000" "685A586937F777F7" "988A797A67A7A7A7" "B8CA898DC737F787"
167 "0000000000000000" "4738A61705150505" "8797672835250535" "7777072A25350525"
168 "0000000000000000" "3525642404340404" "6554453554440454" "5544053634540434"
169 "0000000000000000" "2301923203430303" "4333834383630373" "3324034473730363"
170 "0000000000000000" "3130304000762005" "5352525291614193" "6463635483D06581"
171 "0000000000000000" "4241415100483107" "6463631302335304" "76757415A5A077A3"
172 "0000000000000000" "53525282A02A43AA" "76747424A31565A5" "88888536A66089A4"
173 "0000000000000000" "05040304000D050C" "0806050604070707" "0A0A060808000C06"
174
175 /* page4: 0x0f,0x0e,0x0d,0x0c */
176 "0000000000000000" "3470365956342935" "5590578997554958" "73C078A8C573687A"
177 "0000000000000000" "5355650685030604" "2427362686042607" "010A070584010508"
178 "0000000000000000" "0208432454022403" "737A243455733406" "000D050353000307"
179 "0000000000000000" "000A023233003202" "424C134234424204" "000F241132001105"
180 "0000000000000000" "3031113030300030" "5152215252512051" "7273337374723272"
181 "0000000000000000" "4141214041411041" "6263326363623162" "8385448585834383"
182 "0000000000000000" "5153225152512051" "7375437475734273" "9598559697946495"
183 "0000000000000000" "0205020303020102" "0407040606040304" "060A060809060506"
184
185 /* page5: 0x13,0x12,0x11,0x10 */
186 "0000000000000000" "4151D141D3D177F7" "5454C44482C4A7A7" "0404D45491D4F787"
187 "0000000000000000" "0303032374230505" "9696962673560535" "0505054502850525"
188 "0000000000000000" "0303030355030404" "7777770754470454" "0606060603760434"
189 "0000000000000000" "0505053547050303" "4949492945390373" "0808083804580363"
190 "0000000000000000" "0B0C444023442005" "3D3F333433334193" "0000043504046581"
191 "0000000000000000" "0809565085863107" "0B6A352374455304" "00700644050677A3"
192 "0000000000000000" "06073879C8C843AA" "09492739A58765A5" "0050084A060889A4"
193 "0000000000000000" "05060B070B0B050C" "0707090707090707" "00000B08070B0C06"
194
195 /* page6: 0x17,0x16,0x15,0x14 */
196 "0000000000000000" "0034308021620053" "0034417042512542" "0034526064502E31"
197 "0000000000000000" "0106412032733060" "11A6522053628350" "22A6632072620D42"
198 "0000000000000000" "1308223052242080" "2478233071235170" "3578243090230960"
199 "0000000000000000" "2111334333331404" "3353324232324807" "45B5314131310837"
200 "0000000000000000" "3232445444445302" "445443534343B725" "567642524242B745"
201 "0000000000000000" "4343556555550201" "5575546454540524" "6787536353537554"
202 "0000000000000000" "6474667676660100" "7696657575650423" "88A8647474645473"
203 "0000000000000000" "0001070701050004" "0003060603040303" "0005050505040302";
204
205 int bank = avengers_palette_pen/64;
206 int offs = avengers_palette_pen%64;
207 int page = bank/4; /* 0..7 */
208 int base = (3-(bank&3)); /* 0..3 */
209 int row = offs&0xf; /* 0..15 */
210 int col = offs/16 + base*4; /* 0..15 */
211 int digit0 = pal_data[page*256*2 + (31-row*2)*16+col];
212 int digit1 = pal_data[page*256*2 + (30-row*2)*16+col];
213 int result;
214
215 if( digit0>='A' ) digit0 += 10 - 'A'; else digit0 -= '0';
216 if( digit1>='A' ) digit1 += 10 - 'A'; else digit1 -= '0';
217 result = digit0 * 16 + digit1;
218
219 if( (avengers_palette_pen&0x3f)!=0x3f ) avengers_palette_pen++;
220
221 return result;
222 }
223
READ_HANDLER(avengers_protection_r)224 static READ_HANDLER( avengers_protection_r )
225 {
226 const int xpos[8] = { 10, 7, 0, -7, -10, -7, 0, 7 };
227 const int ypos[8] = { 0, 7, 10, 7, 0, -7, -10, -7 };
228 int best_dist = 0;
229 int best_dir = 0;
230 int x,y;
231 int dx,dy,dist,dir;
232
233 if( activecpu_get_pc() == 0x7c7 )
234 {
235 /* palette data */
236 return avengers_fetch_paldata();
237 }
238
239 /* Point to Angle Function
240
241 Input: two cartesian points
242 Output: direction code (north,northeast,east,...)
243 */
244 x = avengers_param[0] - avengers_param[2];
245 y = avengers_param[1] - avengers_param[3];
246 for( dir=0; dir<8; dir++ )
247 {
248 dx = xpos[dir]-x;
249 dy = ypos[dir]-y;
250 dist = dx*dx+dy*dy;
251 if( dist < best_dist || dir==0 )
252 {
253 best_dir = dir;
254 best_dist = dist;
255 }
256 }
257 return best_dir<<5;
258 }
259
READ_HANDLER(avengers_soundlatch2_r)260 static READ_HANDLER( avengers_soundlatch2_r )
261 {
262 data8_t data = *avengers_soundlatch2 | avengers_soundstate;
263 avengers_soundstate = 0;
264 return(data);
265 }
266
WRITE_HANDLER(msm5205_w)267 static WRITE_HANDLER( msm5205_w )
268 {
269 MSM5205_reset_w(offset,(data>>7)&1);
270 MSM5205_data_w(offset,data);
271 MSM5205_vclk_w(offset,1);
272 MSM5205_vclk_w(offset,0);
273 }
274
MEMORY_READ_START(avengers_readmem)275 static MEMORY_READ_START( avengers_readmem )
276 { 0x0000, 0x7fff, MRA_ROM },
277 { 0x8000, 0xbfff, MRA_BANK1 },
278 { 0xc000, 0xf7ff, MRA_RAM },
279 { 0xf808, 0xf808, input_port_0_r },
280 { 0xf809, 0xf809, input_port_1_r },
281 { 0xf80a, 0xf80a, input_port_2_r },
282 { 0xf80b, 0xf80b, input_port_3_r },
283 { 0xf80c, 0xf80c, input_port_4_r },
284 { 0xf80d, 0xf80d, avengers_protection_r },
285 MEMORY_END
286
287 static MEMORY_WRITE_START( avengers_writemem )
288 { 0x0000, 0xbfff, MWA_ROM },
289 { 0xc000, 0xddff, MWA_RAM },
290 { 0xde00, 0xdf7f, MWA_RAM, &spriteram, &spriteram_size },
291 { 0xdf80, 0xdfff, MWA_RAM },
292 { 0xe000, 0xe7ff, lwings_fgvideoram_w, &lwings_fgvideoram },
293 { 0xe800, 0xefff, lwings_bg1videoram_w, &lwings_bg1videoram },
294 { 0xf000, 0xf3ff, paletteram_RRRRGGGGBBBBxxxx_split2_w, &paletteram_2 },
295 { 0xf400, 0xf7ff, paletteram_RRRRGGGGBBBBxxxx_split1_w, &paletteram },
296 { 0xf800, 0xf801, lwings_bg1_scrollx_w },
297 { 0xf802, 0xf803, lwings_bg1_scrolly_w },
298 { 0xf804, 0xf804, trojan_bg2_scrollx_w },
299 { 0xf805, 0xf805, trojan_bg2_image_w },
300 { 0xf808, 0xf808, MWA_NOP }, /* ? */
301 { 0xf809, 0xf809, avengers_protection_w },
302 { 0xf80c, 0xf80c, avengers_prot_bank_w },
303 { 0xf80d, 0xf80d, avengers_adpcm_w },
304 { 0xf80e, 0xf80e, lwings_bankswitch_w },
305 MEMORY_END
306
307 static MEMORY_READ_START( readmem ) /* common to trojan and lwings */
308 { 0x0000, 0x7fff, MRA_ROM },
309 { 0x8000, 0xbfff, MRA_BANK1 },
310 { 0xc000, 0xf7ff, MRA_RAM },
311 { 0xf808, 0xf808, input_port_0_r },
312 { 0xf809, 0xf809, input_port_1_r },
313 { 0xf80a, 0xf80a, input_port_2_r },
314 { 0xf80b, 0xf80b, input_port_3_r },
315 { 0xf80c, 0xf80c, input_port_4_r },
316 MEMORY_END
317
318 static MEMORY_WRITE_START( writemem ) /* lwings */
319 { 0x0000, 0xbfff, MWA_ROM },
320 { 0xc000, 0xddff, MWA_RAM },
321 { 0xde00, 0xdfff, MWA_RAM, &spriteram, &spriteram_size },
322 { 0xe000, 0xe7ff, lwings_fgvideoram_w, &lwings_fgvideoram },
323 { 0xe800, 0xefff, lwings_bg1videoram_w, &lwings_bg1videoram },
324 { 0xf000, 0xf3ff, paletteram_RRRRGGGGBBBBxxxx_split2_w, &paletteram_2 },
325 { 0xf400, 0xf7ff, paletteram_RRRRGGGGBBBBxxxx_split1_w, &paletteram },
326 { 0xf808, 0xf809, lwings_bg1_scrollx_w },
327 { 0xf80a, 0xf80b, lwings_bg1_scrolly_w },
328 { 0xf80c, 0xf80c, soundlatch_w },
329 { 0xf80d, 0xf80d, watchdog_reset_w },
330 { 0xf80e, 0xf80e, lwings_bankswitch_w },
331 MEMORY_END
332
333 static MEMORY_WRITE_START( trojan_writemem )
334 { 0x0000, 0xbfff, MWA_ROM },
335 { 0xc000, 0xddff, MWA_RAM },
336 { 0xde00, 0xdf7f, MWA_RAM, &spriteram, &spriteram_size },
337 { 0xdf80, 0xdfff, MWA_RAM },
338 { 0xe000, 0xe7ff, lwings_fgvideoram_w, &lwings_fgvideoram },
339 { 0xe800, 0xefff, lwings_bg1videoram_w, &lwings_bg1videoram },
340 { 0xf000, 0xf3ff, paletteram_RRRRGGGGBBBBxxxx_split2_w, &paletteram_2 },
341 { 0xf400, 0xf7ff, paletteram_RRRRGGGGBBBBxxxx_split1_w, &paletteram },
342 { 0xf800, 0xf801, lwings_bg1_scrollx_w },
343 { 0xf802, 0xf803, lwings_bg1_scrolly_w },
344 { 0xf804, 0xf804, trojan_bg2_scrollx_w },
345 { 0xf805, 0xf805, trojan_bg2_image_w },
346 { 0xf808, 0xf808, MWA_NOP }, /* watchdog */
347 { 0xf80c, 0xf80c, soundlatch_w },
348 { 0xf80d, 0xf80d, soundlatch2_w },
349 { 0xf80e, 0xf80e, lwings_bankswitch_w },
350 MEMORY_END
351
352 static MEMORY_READ_START( sound_readmem )
353 { 0x0000, 0x7fff, MRA_ROM },
354 { 0xc000, 0xc7ff, MRA_RAM },
355 { 0xc800, 0xc800, soundlatch_r },
356 { 0xe006, 0xe006, avengers_soundlatch2_r }, /*AT: (avengers061gre)*/
357 MEMORY_END
358
359 static MEMORY_WRITE_START( sound_writemem )
360 { 0x0000, 0x7fff, MWA_ROM },
361 { 0xc000, 0xc7ff, MWA_RAM },
362 { 0xe000, 0xe000, YM2203_control_port_0_w },
363 { 0xe001, 0xe001, YM2203_write_port_0_w },
364 { 0xe002, 0xe002, YM2203_control_port_1_w },
365 { 0xe003, 0xe003, YM2203_write_port_1_w },
366 { 0xe006, 0xe006, MWA_RAM, &avengers_soundlatch2 },
367 MEMORY_END
368
369 static MEMORY_READ_START( adpcm_readmem )
370 { 0x0000, 0xffff, MRA_ROM },
371 MEMORY_END
372
373 /* Yes, _no_ ram */
374 static MEMORY_WRITE_START( adpcm_writemem )
375 /* { 0x0000, 0xffff, MWA_ROM }, avoid cluttering up error.log */
376 { 0x0000, 0xffff, MWA_NOP },
377 MEMORY_END
378
379 static PORT_READ_START( avengers_adpcm_readport )
380 { 0x00, 0x00, avengers_adpcm_r },
381 PORT_END
382
383 static PORT_READ_START( adpcm_readport )
384 { 0x00, 0x00, soundlatch_r },
385 PORT_END
386
387 static PORT_READ_START( trojan_adpcm_readport )
388 { 0x00, 0x00, soundlatch2_r },
389 PORT_END
390
391 static PORT_WRITE_START( adpcm_writeport )
392 { 0x01, 0x01, msm5205_w },
393 PORT_END
394
395 INPUT_PORTS_START( sectionz )
396 PORT_START /* IN0 */
397 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
398 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
399 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
400 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
401 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
402 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
403 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
404 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
405
406 PORT_START /* IN1 */
407 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
408 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
409 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
410 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
411 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
412 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
413 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
414 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
415
416 PORT_START /* IN2 */
417 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
418 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
419 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
420 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
421 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
422 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
423 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
424 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
425
426 PORT_START /* DSW0 */
427 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
428 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
429 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
430 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
431 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
432 PORT_DIPSETTING( 0x04, "2" )
433 PORT_DIPSETTING( 0x0c, "3" )
434 PORT_DIPSETTING( 0x08, "4" )
435 PORT_DIPSETTING( 0x00, "5" )
436 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) )
437 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
438 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
439 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
440 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
441 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) )
442 PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
443 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) )
444 PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
445 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) )
446
447 PORT_START /* DSW1 */
448 PORT_DIPNAME( 0x01, 0x01, "Allow Continue" )
449 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
450 PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
451 PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) )
452 PORT_DIPSETTING( 0x02, "Easy" )
453 PORT_DIPSETTING( 0x06, "Normal" )
454 PORT_DIPSETTING( 0x04, "Difficult" )
455 PORT_DIPSETTING( 0x00, "Very Difficult" )
456 PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) )
457 PORT_DIPSETTING( 0x38, "20000 50000" )
458 PORT_DIPSETTING( 0x18, "20000 60000" )
459 PORT_DIPSETTING( 0x28, "20000 70000" )
460 PORT_DIPSETTING( 0x08, "30000 60000" )
461 PORT_DIPSETTING( 0x30, "30000 70000" )
462 PORT_DIPSETTING( 0x10, "30000 80000" )
463 PORT_DIPSETTING( 0x20, "40000 100000" )
464 PORT_DIPSETTING( 0x00, "None" )
465 PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Cabinet ) )
466 PORT_DIPSETTING( 0x00, "Upright One Player" )
467 PORT_DIPSETTING( 0x40, "Upright Two Players" )
468 /* PORT_DIPSETTING( 0x80, "???" ) probably unused */
469 PORT_DIPSETTING( 0xc0, DEF_STR( Cocktail ) )
470 INPUT_PORTS_END
471
472 INPUT_PORTS_START( lwings )
473 PORT_START /* IN0 */
474 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
475 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
476 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
477 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
478 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
479 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
480 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
481 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
482
483 PORT_START /* IN1 */
484 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
485 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
486 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
487 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
488 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
489 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
490 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
491 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
492
493 PORT_START /* IN2 */
494 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
495 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
496 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
497 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
498 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
499 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
500 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
501 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
502
503 PORT_START /* DSW0 */
504 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
505 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
506 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
507 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
508 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
509 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
510 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
511 PORT_DIPSETTING( 0x0c, "3" )
512 PORT_DIPSETTING( 0x04, "4" )
513 PORT_DIPSETTING( 0x08, "5" )
514 PORT_DIPSETTING( 0x00, "6" )
515 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_B ) )
516 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
517 PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
518 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
519 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )
520 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_A ) )
521 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) )
522 PORT_DIPSETTING( 0x00, DEF_STR( 2C_4C ) )
523 PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
524 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) )
525
526 PORT_START /* DSW1 */
527 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
528 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
529 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
530 PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) )
531 PORT_DIPSETTING( 0x02, "Easy" )
532 PORT_DIPSETTING( 0x06, "Medium" )
533 PORT_DIPSETTING( 0x04, "Hard" )
534 PORT_DIPSETTING( 0x00, "Hardest" )
535 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
536 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
537 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
538 PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
539 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
540 PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
541 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Bonus_Life ) )
542 PORT_DIPSETTING( 0xe0, "20000 and every 50000" )
543 PORT_DIPSETTING( 0x60, "20000 and every 60000" )
544 PORT_DIPSETTING( 0xa0, "20000 and every 70000" )
545 PORT_DIPSETTING( 0x20, "30000 and every 60000" )
546 PORT_DIPSETTING( 0xc0, "30000 and every 70000" )
547 PORT_DIPSETTING( 0x40, "30000 and every 80000" )
548 PORT_DIPSETTING( 0x80, "40000 and every 100000" )
549 PORT_DIPSETTING( 0x00, "None" )
550 INPUT_PORTS_END
551
552 INPUT_PORTS_START( trojan )
553 PORT_START /* IN0 */
554 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
555 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
556 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
557 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
558 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
559 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
560 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
561 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
562
563 PORT_START /* IN1 */
564 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
565 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
566 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
567 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
568 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
569 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
570 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
571 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
572
573 PORT_START /* IN2 */
574 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
575 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
576 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
577 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
578 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
579 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
580 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
581 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
582
583 PORT_START /* DSW0 */
584 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Cabinet ) )
585 PORT_DIPSETTING( 0x00, "Upright 1 Player" )
586 PORT_DIPSETTING( 0x02, "Upright 2 Players" )
587 PORT_DIPSETTING( 0x03, DEF_STR( Cocktail ) )
588 /* 0x01 same as 0x02 or 0x03 */
589 PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) )
590 PORT_DIPSETTING( 0x10, "20000 60000" )
591 PORT_DIPSETTING( 0x0c, "20000 70000" )
592 PORT_DIPSETTING( 0x08, "20000 80000" )
593 PORT_DIPSETTING( 0x1c, "30000 60000" )
594 PORT_DIPSETTING( 0x18, "30000 70000" )
595 PORT_DIPSETTING( 0x14, "30000 80000" )
596 PORT_DIPSETTING( 0x04, "40000 80000" )
597 PORT_DIPSETTING( 0x00, "None" )
598 PORT_DIPNAME( 0xe0, 0xe0, "Starting Level" )
599 PORT_DIPSETTING( 0xe0, "1" )
600 PORT_DIPSETTING( 0xc0, "2" )
601 PORT_DIPSETTING( 0xa0, "3" )
602 PORT_DIPSETTING( 0x80, "4" )
603 PORT_DIPSETTING( 0x60, "5" )
604 PORT_DIPSETTING( 0x40, "6" )
605 /* 0x00 and 0x20 start at level 6 */
606
607 PORT_START /* DSW1 */
608 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
609 PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
610 PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
611 PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
612 PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
613 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) )
614 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
615 PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
616 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
617 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
618 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
619 PORT_DIPSETTING( 0x20, "2" )
620 PORT_DIPSETTING( 0x30, "3" )
621 PORT_DIPSETTING( 0x10, "4" )
622 PORT_DIPSETTING( 0x00, "5" )
623 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) )
624 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
625 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
626 PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )
627 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
628 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
629 INPUT_PORTS_END
630
631 /* Trojan with level selection - starting level dip switches not used */
632 INPUT_PORTS_START( trojanls )
633 PORT_START /* IN0 */
634 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
635 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
636 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
637 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
638 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
639 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
640 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
641 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
642
643 PORT_START /* IN1 */
644 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
645 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
646 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
647 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
648 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
649 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
650 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
651 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
652
653 PORT_START /* IN2 */
654 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
655 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
656 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
657 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
658 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
659 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
660 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
661 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
662
663 PORT_START /* DSW0 */
664 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Cabinet ) )
665 PORT_DIPSETTING( 0x00, "Upright 1 Player" )
666 PORT_DIPSETTING( 0x02, "Upright 2 Players" )
667 PORT_DIPSETTING( 0x03, DEF_STR( Cocktail ) )
668 /* 0x01 same as 0x02 or 0x03 */
669 PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) )
670 PORT_DIPSETTING( 0x10, "20000 60000" )
671 PORT_DIPSETTING( 0x0c, "20000 70000" )
672 PORT_DIPSETTING( 0x08, "20000 80000" )
673 PORT_DIPSETTING( 0x1c, "30000 60000" )
674 PORT_DIPSETTING( 0x18, "30000 70000" )
675 PORT_DIPSETTING( 0x14, "30000 80000" )
676 PORT_DIPSETTING( 0x04, "40000 80000" )
677 PORT_DIPSETTING( 0x00, "None" )
678 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
679 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
680 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
681 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
682 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
683 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
684 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
685 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
686 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
687
688 PORT_START /* DSW1 */
689 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
690 PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) )
691 PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
692 PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
693 PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
694 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) )
695 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
696 PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
697 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
698 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
699 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
700 PORT_DIPSETTING( 0x20, "2" )
701 PORT_DIPSETTING( 0x30, "3" )
702 PORT_DIPSETTING( 0x10, "4" )
703 PORT_DIPSETTING( 0x00, "5" )
704 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) )
705 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
706 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
707 PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )
708 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
709 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
710 INPUT_PORTS_END
711
712 INPUT_PORTS_START( avengers )
713 PORT_START /* IN0 */
714 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
715 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
716 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
717 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
718 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
719 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
720 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
721 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
722
723 PORT_START /* IN1 */
724 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
725 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
726 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
727 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
728 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
729 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
730 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
731 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
732
733 PORT_START /* IN2 */
734 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
735 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
736 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
737 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
738 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
739 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
740 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
741 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
742
743 PORT_START /* DSWB */
744 PORT_DIPNAME( 0x01, 0x01, "Allow Continue" )
745 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
746 PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
747 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
748 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
749 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
750 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
751 PORT_DIPSETTING( 0x04, "Easy" )
752 PORT_DIPSETTING( 0x0c, "Normal" )
753 PORT_DIPSETTING( 0x08, "Hard" )
754 PORT_DIPSETTING( 0x00, "Very Hard" )
755 PORT_DIPNAME( 0x30, 0x30, "Bonus" )
756 PORT_DIPSETTING( 0x30, "20k 60k" )
757 PORT_DIPSETTING( 0x10, "20k 70k" )
758 PORT_DIPSETTING( 0x20, "20k 80k" )
759 PORT_DIPSETTING( 0x00, "30k 80k" )
760 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
761 PORT_DIPSETTING( 0xc0, "3" )
762 PORT_DIPSETTING( 0x40, "4" )
763 PORT_DIPSETTING( 0x80, "5" )
764 PORT_DIPSETTING( 0x00, "6" )
765
766 PORT_START /* DSWA */
767 PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
768 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
769 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
770 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
771 PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) )
772 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
773 PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
774 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
775 PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) )
776 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) )
777 PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) )
778 PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
779 PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
780 PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) )
781 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
782 PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) )
783 PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
784 PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
785 PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) )
786 PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
787 PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
788 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) )
789 INPUT_PORTS_END
790
791 static struct GfxLayout charlayout =
792 {
793 8,8,
794 RGN_FRAC(1,1),
795 2,
796 { 0, 4 },
797 { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 },
798 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
799 16*8
800 };
801
802 static struct GfxLayout spritelayout =
803 {
804 16,16,
805 RGN_FRAC(1,2),
806 4,
807 { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 },
808 { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
809 32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 },
810 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
811 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
812 64*8
813 };
814
815 static struct GfxLayout bg1_tilelayout =
816 {
817 16,16,
818 RGN_FRAC(1,4),
819 4,
820 { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
821 { 0, 1, 2, 3, 4, 5, 6, 7,
822 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
823 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
824 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
825 32*8
826 };
827
828 static struct GfxLayout bg2_tilelayout =
829 {
830 16,16,
831 RGN_FRAC(1,2),
832 4,
833 { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 },
834 { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
835 32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 },
836 { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
837 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
838 64*8
839 };
840
841
842 static struct GfxDecodeInfo gfxdecodeinfo[] =
843 {
844 { REGION_GFX1, 0, &charlayout, 512, 16 }, /* colors 512-575 */
845 { REGION_GFX2, 0, &bg1_tilelayout, 0, 8 }, /* colors 0-127 */
846 { REGION_GFX3, 0, &spritelayout, 384, 8 }, /* colors 384-511 */
847 { -1 } /* end of array */
848 };
849
850 static struct GfxDecodeInfo gfxdecodeinfo_trojan[] =
851 {
852 { REGION_GFX1, 0, &charlayout, 768, 16 }, /* colors 768-831 */
853 { REGION_GFX2, 0, &bg1_tilelayout, 256, 8 }, /* colors 256-383 */
854 { REGION_GFX3, 0, &spritelayout, 640, 8 }, /* colors 640-767 */
855 { REGION_GFX4, 0, &bg2_tilelayout, 0, 8 }, /* colors 0-127 */
856 { -1 } /* end of array */
857 };
858
859 static struct YM2203interface ym2203_interface =
860 {
861 2, /* 2 chips */
862 1500000, /* 1.5 MHz (?) */
863 { YM2203_VOL(10,20), YM2203_VOL(10,20) },
864 { 0 },
865 { 0 },
866 { 0 },
867 { 0 }
868 };
869
870 static struct MSM5205interface msm5205_interface =
871 {
872 1, /* 1 chip */
873 384000, /* 384KHz ? */
874 { 0 }, /* interrupt function */
875 { MSM5205_SEX_4B }, /* slave mode */
876 { 50 }
877 };
878
879 static MACHINE_DRIVER_START( lwings )
880
881 /* basic machine hardware */
882 MDRV_CPU_ADD(Z80, 6000000) /* 4 MHz (?) */
883 MDRV_CPU_MEMORY(readmem,writemem)
884 MDRV_CPU_VBLANK_INT(lwings_interrupt,1)
885
886 MDRV_CPU_ADD(Z80, 4000000)
887 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 3 MHz (?) */
888 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
889 MDRV_CPU_VBLANK_INT(irq0_line_hold,4)
890
891 MDRV_FRAMES_PER_SECOND(60)
892 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
893
894 /* video hardware */
895 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
896 MDRV_SCREEN_SIZE(32*8, 32*8)
897 MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
898 MDRV_GFXDECODE(gfxdecodeinfo)
899 MDRV_PALETTE_LENGTH(1024)
900
901 MDRV_VIDEO_START(lwings)
902 MDRV_VIDEO_EOF(lwings)
903 MDRV_VIDEO_UPDATE(lwings)
904
905 /* sound hardware */
906 MDRV_SOUND_ADD(YM2203, ym2203_interface)
907 MACHINE_DRIVER_END
908
909
910 static MACHINE_DRIVER_START( trojan )
911
912 /* basic machine hardware */
913 MDRV_CPU_ADD(Z80, 6000000) /* 4 MHz (?) */
914 MDRV_CPU_MEMORY(readmem,trojan_writemem)
915 MDRV_CPU_VBLANK_INT(lwings_interrupt,1)
916
917 MDRV_CPU_ADD(Z80, 4000000)
918 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 3 MHz (?) */
919 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
920 MDRV_CPU_VBLANK_INT(irq0_line_hold,4)
921
922 MDRV_CPU_ADD(Z80, 4000000) /* 3.579545 Mhz (?)*/
923 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* ? */
924 MDRV_CPU_MEMORY(adpcm_readmem,adpcm_writemem)
925 MDRV_CPU_PORTS(trojan_adpcm_readport,adpcm_writeport)
926 MDRV_CPU_PERIODIC_INT(irq0_line_hold,4000)
927
928 MDRV_FRAMES_PER_SECOND(60)
929 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
930
931 /* video hardware */
932 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
933 MDRV_SCREEN_SIZE(32*8, 32*8)
934 MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
935 MDRV_GFXDECODE(gfxdecodeinfo_trojan)
936 MDRV_PALETTE_LENGTH(1024)
937
938 MDRV_VIDEO_START(trojan)
939 MDRV_VIDEO_EOF(lwings)
940 MDRV_VIDEO_UPDATE(trojan)
941
942 /* sound hardware */
943 MDRV_SOUND_ADD(YM2203, ym2203_interface)
944 MDRV_SOUND_ADD(MSM5205, msm5205_interface)
945 MACHINE_DRIVER_END
946
947
948 static MACHINE_DRIVER_START( avengers )
949
950 /* basic machine hardware */
951 MDRV_CPU_ADD(Z80, 6000000) /*AT: (avengers37b16gre)*/
952 MDRV_CPU_MEMORY(avengers_readmem,avengers_writemem)
953 MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) /* RST 38h triggered by software*/
954
955 MDRV_CPU_ADD(Z80, 4000000)
956 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 3 MHz (?) */
957 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
958 MDRV_CPU_VBLANK_INT(irq0_line_hold,4)
959
960 MDRV_CPU_ADD(Z80, 4000000) /* 3.579545 Mhz (?)*/
961 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* ? */
962 MDRV_CPU_MEMORY(adpcm_readmem,adpcm_writemem)
963 MDRV_CPU_PORTS(avengers_adpcm_readport,adpcm_writeport)
964 MDRV_CPU_PERIODIC_INT(irq0_line_hold,4000)
965
966 MDRV_FRAMES_PER_SECOND(60)
967 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
968
969 /* video hardware */
970 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
971 MDRV_SCREEN_SIZE(32*8, 32*8)
972 MDRV_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
973 MDRV_GFXDECODE(gfxdecodeinfo_trojan)
974 MDRV_PALETTE_LENGTH(1024)
975
976 MDRV_VIDEO_START(avengers)
977 MDRV_VIDEO_EOF(lwings)
978 MDRV_VIDEO_UPDATE(trojan)
979
980 /* sound hardware */
981 MDRV_SOUND_ADD(YM2203, ym2203_interface)
982 MDRV_SOUND_ADD(MSM5205, msm5205_interface)
983 MACHINE_DRIVER_END
984
985 /***************************************************************************
986
987 Game driver(s)
988
989 ***************************************************************************/
990
991 ROM_START( lwings )
992 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
993 ROM_LOAD( "6c_lw01.bin", 0x00000, 0x8000, CRC(b55a7f60) SHA1(e28cc540892a9ad050693900356744f8f5d05237) )
994 ROM_LOAD( "7c_lw02.bin", 0x10000, 0x8000, CRC(a5efbb1b) SHA1(9126efa78fd39a50032826d0b4bd3acffceba508) )
995 ROM_LOAD( "9c_lw03.bin", 0x18000, 0x8000, CRC(ec5cc201) SHA1(1043c6a9678c18fef920be91b0796c93b83e0f73) )
996
997 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
998 ROM_LOAD( "11e_lw04.bin", 0x0000, 0x8000, CRC(a20337a2) SHA1(649e13a69ad9154657894fa7bf7c6e49b029a506) )
999
1000 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1001 ROM_LOAD( "9h_lw05.bin", 0x00000, 0x4000, CRC(091d923c) SHA1(d686c860f147c4749ac1ee23cde5a7b570312622) ) /* characters */
1002
1003 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1004 ROM_LOAD( "3e_lw14.bin", 0x00000, 0x8000, CRC(5436392c) SHA1(c33925c87e61aad278bef57fe9a8148ff2d4377f) ) /* tiles */
1005 ROM_LOAD( "1e_lw08.bin", 0x08000, 0x8000, CRC(b491bbbb) SHA1(474fc84667d978abfd5c9d94cf1e2ce55f70f865) )
1006 ROM_LOAD( "3d_lw13.bin", 0x10000, 0x8000, CRC(fdd1908a) SHA1(0b2de3d2f8e50f11c57822147bec6f2d9c9ff586) )
1007 ROM_LOAD( "1d_lw07.bin", 0x18000, 0x8000, CRC(5c73d406) SHA1(85386f6b387a85d8df7d800ffcecb2590613a42c) )
1008 ROM_LOAD( "3b_lw12.bin", 0x20000, 0x8000, CRC(32e17b3c) SHA1(db5488b7c48cd0df4571104169e42ff4094f1abd) )
1009 ROM_LOAD( "1b_lw06.bin", 0x28000, 0x8000, CRC(52e533c1) SHA1(9f333c9fb6e35db1264286be5b4f7e4dd18150de) )
1010 ROM_LOAD( "3f_lw15.bin", 0x30000, 0x8000, CRC(99e134ba) SHA1(9818a6ad3146ed95b29b9aeba2331a0e8e2a76b5) )
1011 ROM_LOAD( "1f_lw09.bin", 0x38000, 0x8000, CRC(c8f28777) SHA1(d08571d34f96e7d33506e374d047647f131dce71) )
1012
1013 ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )
1014 ROM_LOAD( "3j_lw17.bin", 0x00000, 0x8000, CRC(5ed1bc9b) SHA1(717c80e180bc38cb66ac0135709e8df2cd7375aa) ) /* sprites */
1015 ROM_LOAD( "1j_lw11.bin", 0x08000, 0x8000, CRC(2a0790d6) SHA1(a0a8b5748b562e4c44cdb2e48cefbea0d4e9e6a8) )
1016 ROM_LOAD( "3h_lw16.bin", 0x10000, 0x8000, CRC(e8834006) SHA1(7d7ec16be325cbbaccf5dce101cb7bc719a5bef2) )
1017 ROM_LOAD( "1h_lw10.bin", 0x18000, 0x8000, CRC(b693f5a5) SHA1(134e255e670848f8aec82fcd848d1a4f1aefa636) )
1018
1019 ROM_REGION( 0x0100, REGION_PROMS, 0 )
1020 ROM_LOAD( "63s141.15g", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1021 ROM_END
1022
1023 ROM_START( lwings2 )
1024 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1025 ROM_LOAD( "u13-l", 0x00000, 0x8000, CRC(3069c01c) SHA1(84dfffeb58f7c5a75d2a59c2ce72c6db813af1be) )
1026 ROM_LOAD( "u14-k", 0x10000, 0x8000, CRC(5d91c828) SHA1(e0b9eab5b290203f71de27a78689adb2e7b07cea) )
1027 ROM_LOAD( "9c_lw03.bin", 0x18000, 0x8000, CRC(ec5cc201) SHA1(1043c6a9678c18fef920be91b0796c93b83e0f73) )
1028
1029 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1030 ROM_LOAD( "11e_lw04.bin", 0x0000, 0x8000, CRC(a20337a2) SHA1(649e13a69ad9154657894fa7bf7c6e49b029a506) )
1031
1032 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1033 ROM_LOAD( "9h_lw05.bin", 0x00000, 0x4000, CRC(091d923c) SHA1(d686c860f147c4749ac1ee23cde5a7b570312622) ) /* characters */
1034
1035 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1036 ROM_LOAD( "b_03e.rom", 0x00000, 0x8000, CRC(176e3027) SHA1(31947205c7a28d25b5982a9e6c079112c404d6b4) ) /* tiles */
1037 ROM_LOAD( "b_01e.rom", 0x08000, 0x8000, CRC(f5d25623) SHA1(ff520df50011af5688be7e88712faa8f8436b462) )
1038 ROM_LOAD( "b_03d.rom", 0x10000, 0x8000, CRC(001caa35) SHA1(2042136c592ce124a321fc6d05447b13a612b6b9) )
1039 ROM_LOAD( "b_01d.rom", 0x18000, 0x8000, CRC(0ba008c3) SHA1(ed5c0d7191d021d6445f8f31a61eb99172fd2dc1) )
1040 ROM_LOAD( "b_03b.rom", 0x20000, 0x8000, CRC(4f8182e9) SHA1(d0db174995be3937f5e5fe62ffe2112583dd78d7) )
1041 ROM_LOAD( "b_01b.rom", 0x28000, 0x8000, CRC(f1617374) SHA1(01b77bc16c1e7d669f62adf759f820bc0241d959) )
1042 ROM_LOAD( "b_03f.rom", 0x30000, 0x8000, CRC(9b374dcc) SHA1(3cb4243c304579536880ced86f0118c43413c1b4) )
1043 ROM_LOAD( "b_01f.rom", 0x38000, 0x8000, CRC(23654e0a) SHA1(d97689b348ac4e1b380ad65133ede4bdd5ecaaee) )
1044
1045 ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )
1046 ROM_LOAD( "b_03j.rom", 0x00000, 0x8000, CRC(8f3c763a) SHA1(b34e62ab6652a2e9783351dde6a60af38a6ba084) ) /* sprites */
1047 ROM_LOAD( "b_01j.rom", 0x08000, 0x8000, CRC(7cc90a1d) SHA1(ff194749397f06ad054917664bd4583b0e4e8d92) )
1048 ROM_LOAD( "b_03h.rom", 0x10000, 0x8000, CRC(7d58f532) SHA1(debfb14cd1cefa1f61a8650cbc9f6e0fff3abe8b) )
1049 ROM_LOAD( "b_01h.rom", 0x18000, 0x8000, CRC(3e396eda) SHA1(a736f108e0ed5fab6177f0d8a21feab8b686ee85) )
1050
1051 ROM_REGION( 0x0100, REGION_PROMS, 0 )
1052 ROM_LOAD( "63s141.15g", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1053 ROM_END
1054
1055 ROM_START( lwingsjp )
1056 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1057 ROM_LOAD( "a_06c.rom", 0x00000, 0x8000, CRC(2068a738) SHA1(1bbceee8138cdc3832a9330b967561b78b03933e) )
1058 ROM_LOAD( "a_07c.rom", 0x10000, 0x8000, CRC(d6a2edc4) SHA1(ce7eef643b1570cab241355bfd7c2d7adb1e74b6) )
1059 ROM_LOAD( "9c_lw03.bin", 0x18000, 0x8000, CRC(ec5cc201) SHA1(1043c6a9678c18fef920be91b0796c93b83e0f73) )
1060
1061 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1062 ROM_LOAD( "11e_lw04.bin", 0x0000, 0x8000, CRC(a20337a2) SHA1(649e13a69ad9154657894fa7bf7c6e49b029a506) )
1063
1064 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1065 ROM_LOAD( "9h_lw05.bin", 0x00000, 0x4000, CRC(091d923c) SHA1(d686c860f147c4749ac1ee23cde5a7b570312622) ) /* characters */
1066
1067 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1068 ROM_LOAD( "b_03e.rom", 0x00000, 0x8000, CRC(176e3027) SHA1(31947205c7a28d25b5982a9e6c079112c404d6b4) ) /* tiles */
1069 ROM_LOAD( "b_01e.rom", 0x08000, 0x8000, CRC(f5d25623) SHA1(ff520df50011af5688be7e88712faa8f8436b462) )
1070 ROM_LOAD( "b_03d.rom", 0x10000, 0x8000, CRC(001caa35) SHA1(2042136c592ce124a321fc6d05447b13a612b6b9) )
1071 ROM_LOAD( "b_01d.rom", 0x18000, 0x8000, CRC(0ba008c3) SHA1(ed5c0d7191d021d6445f8f31a61eb99172fd2dc1) )
1072 ROM_LOAD( "b_03b.rom", 0x20000, 0x8000, CRC(4f8182e9) SHA1(d0db174995be3937f5e5fe62ffe2112583dd78d7) )
1073 ROM_LOAD( "b_01b.rom", 0x28000, 0x8000, CRC(f1617374) SHA1(01b77bc16c1e7d669f62adf759f820bc0241d959) )
1074 ROM_LOAD( "b_03f.rom", 0x30000, 0x8000, CRC(9b374dcc) SHA1(3cb4243c304579536880ced86f0118c43413c1b4) )
1075 ROM_LOAD( "b_01f.rom", 0x38000, 0x8000, CRC(23654e0a) SHA1(d97689b348ac4e1b380ad65133ede4bdd5ecaaee) )
1076
1077 ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )
1078 ROM_LOAD( "b_03j.rom", 0x00000, 0x8000, CRC(8f3c763a) SHA1(b34e62ab6652a2e9783351dde6a60af38a6ba084) ) /* sprites */
1079 ROM_LOAD( "b_01j.rom", 0x08000, 0x8000, CRC(7cc90a1d) SHA1(ff194749397f06ad054917664bd4583b0e4e8d92) )
1080 ROM_LOAD( "b_03h.rom", 0x10000, 0x8000, CRC(7d58f532) SHA1(debfb14cd1cefa1f61a8650cbc9f6e0fff3abe8b) )
1081 ROM_LOAD( "b_01h.rom", 0x18000, 0x8000, CRC(3e396eda) SHA1(a736f108e0ed5fab6177f0d8a21feab8b686ee85) )
1082
1083 ROM_REGION( 0x0100, REGION_PROMS, 0 )
1084 ROM_LOAD( "63s141.15g", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1085 ROM_END
1086
1087 ROM_START( sectionz )
1088 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1089 ROM_LOAD( "6c_sz01.bin", 0x00000, 0x8000, CRC(69585125) SHA1(a341e3a5507e961d5763be6acf420695bb32709e) )
1090 ROM_LOAD( "7c_sz02.bin", 0x10000, 0x8000, CRC(22f161b8) SHA1(094ee6b6c8750de682c1ba4e387b31d58f734604) )
1091 ROM_LOAD( "9c_sz03.bin", 0x18000, 0x8000, CRC(4c7111ed) SHA1(57c6ad6a86c64ffb17ec8f584c5e003440390344) )
1092
1093 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1094 ROM_LOAD( "11e_sz04.bin", 0x0000, 0x8000, CRC(a6073566) SHA1(d7dc382ba780cc4f25f7d7e7630cff1090488843) )
1095
1096 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1097 ROM_LOAD( "9h_sz05.bin", 0x00000, 0x4000, CRC(3173ba2e) SHA1(4e0b4fc1efd7b5eb598fe5d5d7f1de01ba52dbdc) ) /* characters */
1098
1099 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1100 ROM_LOAD( "3e_sz14.bin", 0x00000, 0x8000, CRC(63782e30) SHA1(9a23b4849ff210bd4482e4e8c57e578387d19c46) ) /* tiles */
1101 ROM_LOAD( "1e_sz08.bin", 0x08000, 0x8000, CRC(d57d9f13) SHA1(1d07b9eca588985a5e0cec27394ad5b3191c8dc4) )
1102 ROM_LOAD( "3d_sz13.bin", 0x10000, 0x8000, CRC(1b3d4d7f) SHA1(66eed80865b2a480762cc8d9fda9e82c9c463e71) )
1103 ROM_LOAD( "1d_sz07.bin", 0x18000, 0x8000, CRC(f5b3a29f) SHA1(0dbf8caf09e319fb2303e7e865f55effa59c761c) )
1104 ROM_LOAD( "3b_sz12.bin", 0x20000, 0x8000, CRC(11d47dfd) SHA1(bc8a7369ed671ef714472ead2d17228de2567865) )
1105 ROM_LOAD( "1b_sz06.bin", 0x28000, 0x8000, CRC(df703b68) SHA1(ae98a718dab96f3c0e4827e78938c3984a6641d6) )
1106 ROM_LOAD( "3f_sz15.bin", 0x30000, 0x8000, CRC(36bb9bf7) SHA1(53f6d375947f9fb28f295935a0fe27f826234765) )
1107 ROM_LOAD( "1f_sz09.bin", 0x38000, 0x8000, CRC(da8f06c9) SHA1(c0eb4406cdf0d5f25bab28de8222b28da9a97943) )
1108
1109 ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )
1110 ROM_LOAD( "3j_sz17.bin", 0x00000, 0x8000, CRC(8df7b24a) SHA1(078789d0912010fa96b6f267de3ebec9beca6681) ) /* sprites */
1111 ROM_LOAD( "1j_sz11.bin", 0x08000, 0x8000, CRC(685d4c54) SHA1(ef580e04b6dcb0b65f12c519a4085c98ac0bc261) )
1112 ROM_LOAD( "3h_sz16.bin", 0x10000, 0x8000, CRC(500ff2bb) SHA1(eb20148388e5271b1fed23a536035e8490474489) )
1113 ROM_LOAD( "1h_sz10.bin", 0x18000, 0x8000, CRC(00b3d244) SHA1(ed923bd5371f4665744344b94df3547c5db5058c) )
1114
1115 ROM_REGION( 0x0100, REGION_PROMS, 0 )
1116 ROM_LOAD( "mb7114e.15g", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1117 ROM_END
1118
1119 ROM_START( sctionza )
1120 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1121 ROM_LOAD( "sz-01a.bin", 0x00000, 0x8000, CRC(98df49fd) SHA1(80d7d9f83ea2f606e48606dbfe69cf347aadf079) )
1122 ROM_LOAD( "7c_sz02.bin", 0x10000, 0x8000, CRC(22f161b8) SHA1(094ee6b6c8750de682c1ba4e387b31d58f734604) )
1123 ROM_LOAD( "sz-03j.bin", 0x18000, 0x8000, CRC(94547abf) SHA1(9af9e76e6657d7fd742630cfe2f2eb76d231dec4) )
1124
1125 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1126 ROM_LOAD( "11e_sz04.bin", 0x0000, 0x8000, CRC(a6073566) SHA1(d7dc382ba780cc4f25f7d7e7630cff1090488843) )
1127
1128 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1129 ROM_LOAD( "9h_sz05.bin", 0x00000, 0x4000, CRC(3173ba2e) SHA1(4e0b4fc1efd7b5eb598fe5d5d7f1de01ba52dbdc) ) /* characters */
1130
1131 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1132 ROM_LOAD( "3e_sz14.bin", 0x00000, 0x8000, CRC(63782e30) SHA1(9a23b4849ff210bd4482e4e8c57e578387d19c46) ) /* tiles */
1133 ROM_LOAD( "1e_sz08.bin", 0x08000, 0x8000, CRC(d57d9f13) SHA1(1d07b9eca588985a5e0cec27394ad5b3191c8dc4) )
1134 ROM_LOAD( "3d_sz13.bin", 0x10000, 0x8000, CRC(1b3d4d7f) SHA1(66eed80865b2a480762cc8d9fda9e82c9c463e71) )
1135 ROM_LOAD( "1d_sz07.bin", 0x18000, 0x8000, CRC(f5b3a29f) SHA1(0dbf8caf09e319fb2303e7e865f55effa59c761c) )
1136 ROM_LOAD( "3b_sz12.bin", 0x20000, 0x8000, CRC(11d47dfd) SHA1(bc8a7369ed671ef714472ead2d17228de2567865) )
1137 ROM_LOAD( "1b_sz06.bin", 0x28000, 0x8000, CRC(df703b68) SHA1(ae98a718dab96f3c0e4827e78938c3984a6641d6) )
1138 ROM_LOAD( "3f_sz15.bin", 0x30000, 0x8000, CRC(36bb9bf7) SHA1(53f6d375947f9fb28f295935a0fe27f826234765) )
1139 ROM_LOAD( "1f_sz09.bin", 0x38000, 0x8000, CRC(da8f06c9) SHA1(c0eb4406cdf0d5f25bab28de8222b28da9a97943) )
1140
1141 ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE )
1142 ROM_LOAD( "3j_sz17.bin", 0x00000, 0x8000, CRC(8df7b24a) SHA1(078789d0912010fa96b6f267de3ebec9beca6681) ) /* sprites */
1143 ROM_LOAD( "1j_sz11.bin", 0x08000, 0x8000, CRC(685d4c54) SHA1(ef580e04b6dcb0b65f12c519a4085c98ac0bc261) )
1144 ROM_LOAD( "3h_sz16.bin", 0x10000, 0x8000, CRC(500ff2bb) SHA1(eb20148388e5271b1fed23a536035e8490474489) )
1145 ROM_LOAD( "1h_sz10.bin", 0x18000, 0x8000, CRC(00b3d244) SHA1(ed923bd5371f4665744344b94df3547c5db5058c) )
1146
1147 ROM_REGION( 0x0100, REGION_PROMS, 0 )
1148 ROM_LOAD( "mb7114e.15g", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1149 ROM_END
1150
1151 ROM_START( trojan )
1152 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1153 ROM_LOAD( "t4", 0x00000, 0x8000, CRC(c1bbeb4e) SHA1(248ae4184d25b642b282ef44ac729c0f7952834d) )
1154 ROM_LOAD( "t6", 0x10000, 0x8000, CRC(d49592ef) SHA1(b538bac3c73f35474cc6745a4e4dc3ab6217eaac) )
1155 ROM_LOAD( "tb05.bin", 0x18000, 0x8000, CRC(9273b264) SHA1(ab23b16bf53b5baf106ea0cac50754aa967300cf) )
1156
1157 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1158 ROM_LOAD( "tb02.bin", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
1159
1160 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
1161 ROM_LOAD( "tb01.bin", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
1162
1163 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1164 ROM_LOAD( "tb03.bin", 0x00000, 0x4000, CRC(581a2b4c) SHA1(705b499da5d01a946f06234a4bab72a291c79034) ) /* characters */
1165
1166 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1167 ROM_LOAD( "tb13.bin", 0x00000, 0x8000, CRC(285a052b) SHA1(8ce055c7ac9ce1560552fc7f857f60e7a5af0779) ) /* tiles */
1168 ROM_LOAD( "tb09.bin", 0x08000, 0x8000, CRC(aeb693f7) SHA1(a811ea67abdd4adfc68224257973802e2a36fc36) )
1169 ROM_LOAD( "tb12.bin", 0x10000, 0x8000, CRC(dfb0fe5c) SHA1(82542692ab71b9126e6c301ed0803db58734273c) )
1170 ROM_LOAD( "tb08.bin", 0x18000, 0x8000, CRC(d3a4c9d1) SHA1(3d787f6a4583b80f2d254947890f676cda17b242) )
1171 ROM_LOAD( "tb11.bin", 0x20000, 0x8000, CRC(00f0f4fd) SHA1(3a862360a26ae1c3a945949d6d47f88aa4b728a4) )
1172 ROM_LOAD( "tb07.bin", 0x28000, 0x8000, CRC(dff2ee02) SHA1(4877c52f2a0e24a95bcda1d8636ea993c2c3c240) )
1173 ROM_LOAD( "tb14.bin", 0x30000, 0x8000, CRC(14bfac18) SHA1(84266140e9679912dbbb185fd3b9b497297dcb16) )
1174 ROM_LOAD( "tb10.bin", 0x38000, 0x8000, CRC(71ba8a6d) SHA1(53ff6850f9f8a19c57c19ef56fd45975f0ec133e) )
1175
1176 ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
1177 ROM_LOAD( "tb18.bin", 0x00000, 0x8000, CRC(862c4713) SHA1(a3707d950f4f5de5208e64207016ef2256eb8c5b) ) /* sprites */
1178 ROM_LOAD( "tb16.bin", 0x08000, 0x8000, CRC(d86f8cbd) SHA1(8a16130632e20ad3cae8e817da7b661c3ac60f30) )
1179 ROM_LOAD( "tb17.bin", 0x10000, 0x8000, CRC(12a73b3f) SHA1(6bb54d4fdf01fd2cdd76a0b47be4d8cae8a1e19b) )
1180 ROM_LOAD( "tb15.bin", 0x18000, 0x8000, CRC(bb1a2769) SHA1(9884dceb00e6d88908a1c107b83cc1711b0cf1f7) )
1181 ROM_LOAD( "tb22.bin", 0x20000, 0x8000, CRC(39daafd4) SHA1(1e49a273f51cccec3141d540032fd9a3041a3cbd) )
1182 ROM_LOAD( "tb20.bin", 0x28000, 0x8000, CRC(94615d2a) SHA1(112a299ff1bb878cf7e24c2ad337440c3df0a6d5) )
1183 ROM_LOAD( "tb21.bin", 0x30000, 0x8000, CRC(66c642bd) SHA1(b57f0f8d8e21c9f94ffc0e9f9304b5ab5d4ed3fc) )
1184 ROM_LOAD( "tb19.bin", 0x38000, 0x8000, CRC(81d5ab36) SHA1(31103759676a8d1badaf7bde79e7f28d69486106) )
1185
1186 ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE )
1187 ROM_LOAD( "tb25.bin", 0x00000, 0x8000, CRC(6e38c6fa) SHA1(c51228d5d063dcf4361c76fa49dbe18db80c50a0) ) /* Bk Tiles */
1188 ROM_LOAD( "tb24.bin", 0x08000, 0x8000, CRC(14fc6cf2) SHA1(080a2d845cb36c637f76d8e062725bd13dd1aed0) )
1189
1190 ROM_REGION( 0x08000, REGION_GFX5, 0 )
1191 ROM_LOAD( "tb23.bin", 0x00000, 0x08000, CRC(eda13c0e) SHA1(806f0819af8b25c2b46de3d1fd95bc9c0e883bd9) ) /* Tile Map */
1192
1193 ROM_REGION( 0x0200, REGION_PROMS, 0 )
1194 ROM_LOAD( "tbp24s10.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1195 ROM_LOAD( "mb7114e.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
1196 ROM_END
1197
1198 ROM_START( trojanr )
1199 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1200 ROM_LOAD( "tb04.bin", 0x00000, 0x8000, CRC(92670f27) SHA1(d2cb35a9fade971770db1a58e961bc03cc3de6ff) )
1201 ROM_LOAD( "tb06.bin", 0x10000, 0x8000, CRC(a4951173) SHA1(2d3db0ee3a1680f2cce21cf15f8bd434325d8648) )
1202 ROM_LOAD( "tb05.bin", 0x18000, 0x8000, CRC(9273b264) SHA1(ab23b16bf53b5baf106ea0cac50754aa967300cf) )
1203
1204 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1205 ROM_LOAD( "tb02.bin", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
1206
1207 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
1208 ROM_LOAD( "tb01.bin", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
1209
1210 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1211 ROM_LOAD( "tb03.bin", 0x00000, 0x4000, CRC(581a2b4c) SHA1(705b499da5d01a946f06234a4bab72a291c79034) ) /* characters */
1212
1213 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1214 ROM_LOAD( "tb13.bin", 0x00000, 0x8000, CRC(285a052b) SHA1(8ce055c7ac9ce1560552fc7f857f60e7a5af0779) ) /* tiles */
1215 ROM_LOAD( "tb09.bin", 0x08000, 0x8000, CRC(aeb693f7) SHA1(a811ea67abdd4adfc68224257973802e2a36fc36) )
1216 ROM_LOAD( "tb12.bin", 0x10000, 0x8000, CRC(dfb0fe5c) SHA1(82542692ab71b9126e6c301ed0803db58734273c) )
1217 ROM_LOAD( "tb08.bin", 0x18000, 0x8000, CRC(d3a4c9d1) SHA1(3d787f6a4583b80f2d254947890f676cda17b242) )
1218 ROM_LOAD( "tb11.bin", 0x20000, 0x8000, CRC(00f0f4fd) SHA1(3a862360a26ae1c3a945949d6d47f88aa4b728a4) )
1219 ROM_LOAD( "tb07.bin", 0x28000, 0x8000, CRC(dff2ee02) SHA1(4877c52f2a0e24a95bcda1d8636ea993c2c3c240) )
1220 ROM_LOAD( "tb14.bin", 0x30000, 0x8000, CRC(14bfac18) SHA1(84266140e9679912dbbb185fd3b9b497297dcb16) )
1221 ROM_LOAD( "tb10.bin", 0x38000, 0x8000, CRC(71ba8a6d) SHA1(53ff6850f9f8a19c57c19ef56fd45975f0ec133e) )
1222
1223 ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
1224 ROM_LOAD( "tb18.bin", 0x00000, 0x8000, CRC(862c4713) SHA1(a3707d950f4f5de5208e64207016ef2256eb8c5b) ) /* sprites */
1225 ROM_LOAD( "tb16.bin", 0x08000, 0x8000, CRC(d86f8cbd) SHA1(8a16130632e20ad3cae8e817da7b661c3ac60f30) )
1226 ROM_LOAD( "tb17.bin", 0x10000, 0x8000, CRC(12a73b3f) SHA1(6bb54d4fdf01fd2cdd76a0b47be4d8cae8a1e19b) )
1227 ROM_LOAD( "tb15.bin", 0x18000, 0x8000, CRC(bb1a2769) SHA1(9884dceb00e6d88908a1c107b83cc1711b0cf1f7) )
1228 ROM_LOAD( "tb22.bin", 0x20000, 0x8000, CRC(39daafd4) SHA1(1e49a273f51cccec3141d540032fd9a3041a3cbd) )
1229 ROM_LOAD( "tb20.bin", 0x28000, 0x8000, CRC(94615d2a) SHA1(112a299ff1bb878cf7e24c2ad337440c3df0a6d5) )
1230 ROM_LOAD( "tb21.bin", 0x30000, 0x8000, CRC(66c642bd) SHA1(b57f0f8d8e21c9f94ffc0e9f9304b5ab5d4ed3fc) )
1231 ROM_LOAD( "tb19.bin", 0x38000, 0x8000, CRC(81d5ab36) SHA1(31103759676a8d1badaf7bde79e7f28d69486106) )
1232
1233 ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE )
1234 ROM_LOAD( "tb25.bin", 0x00000, 0x8000, CRC(6e38c6fa) SHA1(c51228d5d063dcf4361c76fa49dbe18db80c50a0) ) /* Bk Tiles */
1235 ROM_LOAD( "tb24.bin", 0x08000, 0x8000, CRC(14fc6cf2) SHA1(080a2d845cb36c637f76d8e062725bd13dd1aed0) )
1236
1237 ROM_REGION( 0x08000, REGION_GFX5, 0 )
1238 ROM_LOAD( "tb23.bin", 0x0000, 0x8000, CRC(eda13c0e) SHA1(806f0819af8b25c2b46de3d1fd95bc9c0e883bd9) ) /* Tile Map */
1239
1240 ROM_REGION( 0x0200, REGION_PROMS, 0 )
1241 ROM_LOAD( "tbp24s10.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1242 ROM_LOAD( "mb7114e.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
1243 ROM_END
1244
1245 ROM_START( trojanj )
1246 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1247 ROM_LOAD( "troj-04.rom", 0x00000, 0x8000, CRC(0b5a7f49) SHA1(eebdfaf905a2b7ac8a0f0f9a7ae4a0daf130a5ea) )
1248 ROM_LOAD( "troj-06.rom", 0x10000, 0x8000, CRC(dee6ed92) SHA1(80aa16f2ae23581d00f4d58a2075993e7171ed0c) )
1249 ROM_LOAD( "tb05.bin", 0x18000, 0x8000, CRC(9273b264) SHA1(ab23b16bf53b5baf106ea0cac50754aa967300cf) )
1250
1251 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1252 ROM_LOAD( "tb02.bin", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
1253
1254 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
1255 ROM_LOAD( "tb01.bin", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
1256
1257 ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
1258 ROM_LOAD( "tb03.bin", 0x00000, 0x4000, CRC(581a2b4c) SHA1(705b499da5d01a946f06234a4bab72a291c79034) ) /* characters */
1259
1260 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
1261 ROM_LOAD( "tb13.bin", 0x00000, 0x8000, CRC(285a052b) SHA1(8ce055c7ac9ce1560552fc7f857f60e7a5af0779) ) /* tiles */
1262 ROM_LOAD( "tb09.bin", 0x08000, 0x8000, CRC(aeb693f7) SHA1(a811ea67abdd4adfc68224257973802e2a36fc36) )
1263 ROM_LOAD( "tb12.bin", 0x10000, 0x8000, CRC(dfb0fe5c) SHA1(82542692ab71b9126e6c301ed0803db58734273c) )
1264 ROM_LOAD( "tb08.bin", 0x18000, 0x8000, CRC(d3a4c9d1) SHA1(3d787f6a4583b80f2d254947890f676cda17b242) )
1265 ROM_LOAD( "tb11.bin", 0x20000, 0x8000, CRC(00f0f4fd) SHA1(3a862360a26ae1c3a945949d6d47f88aa4b728a4) )
1266 ROM_LOAD( "tb07.bin", 0x28000, 0x8000, CRC(dff2ee02) SHA1(4877c52f2a0e24a95bcda1d8636ea993c2c3c240) )
1267 ROM_LOAD( "tb14.bin", 0x30000, 0x8000, CRC(14bfac18) SHA1(84266140e9679912dbbb185fd3b9b497297dcb16) )
1268 ROM_LOAD( "tb10.bin", 0x38000, 0x8000, CRC(71ba8a6d) SHA1(53ff6850f9f8a19c57c19ef56fd45975f0ec133e) )
1269
1270 ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
1271 ROM_LOAD( "tb18.bin", 0x00000, 0x8000, CRC(862c4713) SHA1(a3707d950f4f5de5208e64207016ef2256eb8c5b) ) /* sprites */
1272 ROM_LOAD( "tb16.bin", 0x08000, 0x8000, CRC(d86f8cbd) SHA1(8a16130632e20ad3cae8e817da7b661c3ac60f30) )
1273 ROM_LOAD( "tb17.bin", 0x10000, 0x8000, CRC(12a73b3f) SHA1(6bb54d4fdf01fd2cdd76a0b47be4d8cae8a1e19b) )
1274 ROM_LOAD( "tb15.bin", 0x18000, 0x8000, CRC(bb1a2769) SHA1(9884dceb00e6d88908a1c107b83cc1711b0cf1f7) )
1275 ROM_LOAD( "tb22.bin", 0x20000, 0x8000, CRC(39daafd4) SHA1(1e49a273f51cccec3141d540032fd9a3041a3cbd) )
1276 ROM_LOAD( "tb20.bin", 0x28000, 0x8000, CRC(94615d2a) SHA1(112a299ff1bb878cf7e24c2ad337440c3df0a6d5) )
1277 ROM_LOAD( "tb21.bin", 0x30000, 0x8000, CRC(66c642bd) SHA1(b57f0f8d8e21c9f94ffc0e9f9304b5ab5d4ed3fc) )
1278 ROM_LOAD( "tb19.bin", 0x38000, 0x8000, CRC(81d5ab36) SHA1(31103759676a8d1badaf7bde79e7f28d69486106) )
1279
1280 ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE )
1281 ROM_LOAD( "tb25.bin", 0x00000, 0x8000, CRC(6e38c6fa) SHA1(c51228d5d063dcf4361c76fa49dbe18db80c50a0) ) /* Bk Tiles */
1282 ROM_LOAD( "tb24.bin", 0x08000, 0x8000, CRC(14fc6cf2) SHA1(080a2d845cb36c637f76d8e062725bd13dd1aed0) )
1283
1284 ROM_REGION( 0x08000, REGION_GFX5, 0 )
1285 ROM_LOAD( "tb23.bin", 0x0000, 0x8000, CRC(eda13c0e) SHA1(806f0819af8b25c2b46de3d1fd95bc9c0e883bd9) ) /* Tile Map */
1286
1287 ROM_REGION( 0x0200, REGION_PROMS, 0 )
1288 ROM_LOAD( "tbp24s10.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1289 ROM_LOAD( "mb7114e.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
1290 ROM_END
1291
1292 ROM_START( avengers )
1293 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1294 ROM_LOAD( "04.10n", 0x00000, 0x8000, CRC(a94aadcc) SHA1(796545ab5c69c093aaac58f7cff36109dea8df80) )
1295 ROM_LOAD( "06.13n", 0x10000, 0x8000, CRC(39cd80bd) SHA1(3f8df0096f393efae2d76982640ccc4d33bde8ca) )
1296 ROM_LOAD( "05.12n", 0x18000, 0x8000, CRC(06b1cec9) SHA1(db5370f3ff1b4456461698af64962cad028561cd) )
1297
1298 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1299 ROM_LOAD( "02.15h", 0x0000, 0x8000, CRC(107a2e17) SHA1(5aae2f4ac9f15ccb4122f3ba9fba588438d62f4f) ) /* ?? */
1300
1301 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* ADPCM CPU (not emulated) */
1302 ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
1303
1304 ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE )
1305 ROM_LOAD( "03.8k", 0x00000, 0x8000, CRC(efb5883e) SHA1(08aebf579f2c5ff472db66597cde1c6871d7d757) ) /* characters */
1306
1307 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */
1308 ROM_LOAD( "13.6b", 0x00000, 0x8000, CRC(9b5ff305) SHA1(8843c757e040b58efd36299eb3c56d9c51362b20) ) /* plane 1 */
1309 ROM_LOAD( "09.6a", 0x08000, 0x8000, CRC(08323355) SHA1(c5778c6835f2801fba0250cea21796ea201642f7) )
1310 ROM_LOAD( "12.4b", 0x10000, 0x8000, CRC(6d5261ba) SHA1(667e3b8df871c3052bde7a3c79daa7f70eaa0b8b) ) /* plane 2 */
1311 ROM_LOAD( "08.4a", 0x18000, 0x8000, CRC(a13d9f54) SHA1(e1bcb6d12cdfc9ad780f131272d12d9af751f429) )
1312 ROM_LOAD( "11.3b", 0x20000, 0x8000, CRC(a2911d8b) SHA1(f51ef7bb8a275fdd92a9a9ad516218d2f8c3e1fb) ) /* plane 3 */
1313 ROM_LOAD( "07.3a", 0x28000, 0x8000, CRC(cde78d32) SHA1(8cb69b7a25e935073887628565cb4f9787186ea9) )
1314 ROM_LOAD( "14.8b", 0x30000, 0x8000, CRC(44ac2671) SHA1(60baa541debd8aa7d32a512906d0d6c6e9955968) ) /* plane 4 */
1315 ROM_LOAD( "10.8a", 0x38000, 0x8000, CRC(b1a717cb) SHA1(2730764ece0e9231955b9c07de537f1f97729599) )
1316
1317 ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */
1318 ROM_LOAD( "18.7l", 0x00000, 0x8000, CRC(3c876a17) SHA1(1f06b695b78a2e1db151f3c5baa1bb17ccef951e) ) /* planes 0,1 */
1319 ROM_LOAD( "16.3l", 0x08000, 0x8000, CRC(4b1ff3ac) SHA1(5166f2a2c9ba2483a4e340d756303cba46b7de88) )
1320 ROM_LOAD( "17.5l", 0x10000, 0x8000, CRC(4eb543ef) SHA1(5dfdd2568a50b179e724643880d79f79d831be19) )
1321 ROM_LOAD( "15.2l", 0x18000, 0x8000, CRC(8041de7f) SHA1(c301b20edad1981dd20cd6d4f7de703d9dc80b83) )
1322 ROM_LOAD( "22.7n", 0x20000, 0x8000, CRC(bdaa8b22) SHA1(9a03d20cc7010f9b7c602db86808d54fdd7e228d) ) /* planes 2,3 */
1323 ROM_LOAD( "20.3n", 0x28000, 0x8000, CRC(566e3059) SHA1(cf3e5cfcb5ebbff3f9a8e1da9f7242a7a00fee83) )
1324 ROM_LOAD( "21.5n", 0x30000, 0x8000, CRC(301059aa) SHA1(c529ad83d4e4139ce4d4d912c00aef9ece297706) )
1325 ROM_LOAD( "19.2n", 0x38000, 0x8000, CRC(a00485ec) SHA1(cc24e7243f55bdfaedeabb7dddf7e1ef32811c45) )
1326
1327 ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* bg tiles */
1328 ROM_LOAD( "25.15n", 0x00000, 0x8000, CRC(230d9e30) SHA1(05a20bb32ce1299d7645312624de8a1d074bacee) ) /* planes 0,1 */
1329 ROM_LOAD( "24.13n", 0x08000, 0x8000, CRC(a6354024) SHA1(ce2aaec8349c08f58cc469514100bcd3a97d24d7) ) /* planes 2,3 */
1330
1331 ROM_REGION( 0x08000, REGION_GFX5, 0 )
1332 ROM_LOAD( "23.9n", 0x0000, 0x8000, CRC(c0a93ef6) SHA1(2dc9cd4eb142d74aea8d151904cb60a0767c6393) ) /* Tile Map */
1333
1334 ROM_REGION( 0x0200, REGION_PROMS, 0 )
1335 ROM_LOAD( "tbb_2bpr.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1336 ROM_LOAD( "tbb_1bpr.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
1337 ROM_END
1338
1339 ROM_START( avenger2 )
1340 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1341 ROM_LOAD( "avg4.bin", 0x00000, 0x8000, CRC(0fea7ac5) SHA1(b978adf5fc90e1e51a995dbec2246d2776264afd) )
1342 ROM_LOAD( "av_06a.13n", 0x10000, 0x8000, CRC(491a712c) SHA1(67a335b57117ba498d3ae412ac0025477bc79b16) )
1343 ROM_LOAD( "av_05.12n", 0x18000, 0x8000, CRC(9a214b42) SHA1(e13d47dcf9fa055fef467a10751badffcc3b8734) )
1344
1345 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1346 ROM_LOAD( "02.15h", 0x0000, 0x8000, CRC(107a2e17) SHA1(5aae2f4ac9f15ccb4122f3ba9fba588438d62f4f) ) /* MISSING from this set */
1347
1348 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* ADPCM CPU (not emulated) */
1349 ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
1350
1351 ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE )
1352 ROM_LOAD( "03.8k", 0x00000, 0x8000, CRC(efb5883e) SHA1(08aebf579f2c5ff472db66597cde1c6871d7d757) ) /* characters */
1353
1354 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */
1355 ROM_LOAD( "13.6b", 0x00000, 0x8000, CRC(9b5ff305) SHA1(8843c757e040b58efd36299eb3c56d9c51362b20) ) /* plane 1 */
1356 ROM_LOAD( "09.6a", 0x08000, 0x8000, CRC(08323355) SHA1(c5778c6835f2801fba0250cea21796ea201642f7) )
1357 ROM_LOAD( "12.4b", 0x10000, 0x8000, CRC(6d5261ba) SHA1(667e3b8df871c3052bde7a3c79daa7f70eaa0b8b) ) /* plane 2 */
1358 ROM_LOAD( "08.4a", 0x18000, 0x8000, CRC(a13d9f54) SHA1(e1bcb6d12cdfc9ad780f131272d12d9af751f429) )
1359 ROM_LOAD( "11.3b", 0x20000, 0x8000, CRC(a2911d8b) SHA1(f51ef7bb8a275fdd92a9a9ad516218d2f8c3e1fb) ) /* plane 3 */
1360 ROM_LOAD( "07.3a", 0x28000, 0x8000, CRC(cde78d32) SHA1(8cb69b7a25e935073887628565cb4f9787186ea9) )
1361 ROM_LOAD( "14.8b", 0x30000, 0x8000, CRC(44ac2671) SHA1(60baa541debd8aa7d32a512906d0d6c6e9955968) ) /* plane 4 */
1362 ROM_LOAD( "10.8a", 0x38000, 0x8000, CRC(b1a717cb) SHA1(2730764ece0e9231955b9c07de537f1f97729599) )
1363
1364 ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */
1365 ROM_LOAD( "18.7l", 0x00000, 0x8000, CRC(3c876a17) SHA1(1f06b695b78a2e1db151f3c5baa1bb17ccef951e) ) /* planes 0,1 */
1366 ROM_LOAD( "16.3l", 0x08000, 0x8000, CRC(4b1ff3ac) SHA1(5166f2a2c9ba2483a4e340d756303cba46b7de88) )
1367 ROM_LOAD( "17.5l", 0x10000, 0x8000, CRC(4eb543ef) SHA1(5dfdd2568a50b179e724643880d79f79d831be19) )
1368 ROM_LOAD( "15.2l", 0x18000, 0x8000, CRC(8041de7f) SHA1(c301b20edad1981dd20cd6d4f7de703d9dc80b83) )
1369 ROM_LOAD( "22.7n", 0x20000, 0x8000, CRC(bdaa8b22) SHA1(9a03d20cc7010f9b7c602db86808d54fdd7e228d) ) /* planes 2,3 */
1370 ROM_LOAD( "20.3n", 0x28000, 0x8000, CRC(566e3059) SHA1(cf3e5cfcb5ebbff3f9a8e1da9f7242a7a00fee83) )
1371 ROM_LOAD( "21.5n", 0x30000, 0x8000, CRC(301059aa) SHA1(c529ad83d4e4139ce4d4d912c00aef9ece297706) )
1372 ROM_LOAD( "19.2n", 0x38000, 0x8000, CRC(a00485ec) SHA1(cc24e7243f55bdfaedeabb7dddf7e1ef32811c45) )
1373
1374 ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* bg tiles */
1375 ROM_LOAD( "25.15n", 0x00000, 0x8000, CRC(230d9e30) SHA1(05a20bb32ce1299d7645312624de8a1d074bacee) ) /* planes 0,1 */
1376 ROM_LOAD( "24.13n", 0x08000, 0x8000, CRC(a6354024) SHA1(ce2aaec8349c08f58cc469514100bcd3a97d24d7) ) /* planes 2,3 */
1377
1378 ROM_REGION( 0x08000, REGION_GFX5, 0 )
1379 ROM_LOAD( "23.9n", 0x0000, 0x8000, CRC(c0a93ef6) SHA1(2dc9cd4eb142d74aea8d151904cb60a0767c6393) ) /* Tile Map */
1380
1381 ROM_REGION( 0x0200, REGION_PROMS, 0 )
1382 ROM_LOAD( "tbb_2bpr.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1383 ROM_LOAD( "tbb_1bpr.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
1384 ROM_END
1385
1386 ROM_START( buraiken )
1387 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */
1388 ROM_LOAD( "av_04a.10n", 0x00000, 0x8000, CRC(361fc614) SHA1(0ecd9400dfcb03fc94685b33b060a524a5d3c575) )
1389 ROM_LOAD( "av_06a.13n", 0x10000, 0x8000, CRC(491a712c) SHA1(67a335b57117ba498d3ae412ac0025477bc79b16) )
1390 ROM_LOAD( "av_05.12n", 0x18000, 0x8000, CRC(9a214b42) SHA1(e13d47dcf9fa055fef467a10751badffcc3b8734) )
1391
1392 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
1393 ROM_LOAD( "02.15h", 0x0000, 0x8000, CRC(107a2e17) SHA1(5aae2f4ac9f15ccb4122f3ba9fba588438d62f4f) )
1394
1395 ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* ADPCM CPU (not emulated) */
1396 ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
1397
1398 ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE )
1399 ROM_LOAD( "03.8k", 0x00000, 0x8000, CRC(efb5883e) SHA1(08aebf579f2c5ff472db66597cde1c6871d7d757) ) /* characters */
1400
1401 ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */
1402 ROM_LOAD( "13.6b", 0x00000, 0x8000, CRC(9b5ff305) SHA1(8843c757e040b58efd36299eb3c56d9c51362b20) ) /* plane 1 */
1403 ROM_LOAD( "09.6a", 0x08000, 0x8000, CRC(08323355) SHA1(c5778c6835f2801fba0250cea21796ea201642f7) )
1404 ROM_LOAD( "12.4b", 0x10000, 0x8000, CRC(6d5261ba) SHA1(667e3b8df871c3052bde7a3c79daa7f70eaa0b8b) ) /* plane 2 */
1405 ROM_LOAD( "08.4a", 0x18000, 0x8000, CRC(a13d9f54) SHA1(e1bcb6d12cdfc9ad780f131272d12d9af751f429) )
1406 ROM_LOAD( "11.3b", 0x20000, 0x8000, CRC(a2911d8b) SHA1(f51ef7bb8a275fdd92a9a9ad516218d2f8c3e1fb) ) /* plane 3 */
1407 ROM_LOAD( "07.3a", 0x28000, 0x8000, CRC(cde78d32) SHA1(8cb69b7a25e935073887628565cb4f9787186ea9) )
1408 ROM_LOAD( "14.8b", 0x30000, 0x8000, CRC(44ac2671) SHA1(60baa541debd8aa7d32a512906d0d6c6e9955968) ) /* plane 4 */
1409 ROM_LOAD( "10.8a", 0x38000, 0x8000, CRC(b1a717cb) SHA1(2730764ece0e9231955b9c07de537f1f97729599) )
1410
1411 ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */
1412 ROM_LOAD( "18.7l", 0x00000, 0x8000, CRC(3c876a17) SHA1(1f06b695b78a2e1db151f3c5baa1bb17ccef951e) ) /* planes 0,1 */
1413 ROM_LOAD( "16.3l", 0x08000, 0x8000, CRC(4b1ff3ac) SHA1(5166f2a2c9ba2483a4e340d756303cba46b7de88) )
1414 ROM_LOAD( "17.5l", 0x10000, 0x8000, CRC(4eb543ef) SHA1(5dfdd2568a50b179e724643880d79f79d831be19) )
1415 ROM_LOAD( "15.2l", 0x18000, 0x8000, CRC(8041de7f) SHA1(c301b20edad1981dd20cd6d4f7de703d9dc80b83) )
1416 ROM_LOAD( "22.7n", 0x20000, 0x8000, CRC(bdaa8b22) SHA1(9a03d20cc7010f9b7c602db86808d54fdd7e228d) ) /* planes 2,3 */
1417 ROM_LOAD( "20.3n", 0x28000, 0x8000, CRC(566e3059) SHA1(cf3e5cfcb5ebbff3f9a8e1da9f7242a7a00fee83) )
1418 ROM_LOAD( "21.5n", 0x30000, 0x8000, CRC(301059aa) SHA1(c529ad83d4e4139ce4d4d912c00aef9ece297706) )
1419 ROM_LOAD( "19.2n", 0x38000, 0x8000, CRC(a00485ec) SHA1(cc24e7243f55bdfaedeabb7dddf7e1ef32811c45) )
1420
1421 ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE )
1422 ROM_LOAD( "av_25.15n", 0x00000, 0x8000, CRC(88a505a7) SHA1(ef4371e082b2370fcbfc96bfef5a94910acd9eff) ) /* planes 0,1 */
1423 ROM_LOAD( "av_24.13n", 0x08000, 0x8000, CRC(1f4463c8) SHA1(04cdb0187dcbdd4f5f53e60c856d4925ade8d7df) ) /* planes 2,3 */
1424
1425 ROM_REGION( 0x08000, REGION_GFX5, 0 )
1426 ROM_LOAD( "23.9n", 0x0000, 0x8000, CRC(c0a93ef6) SHA1(2dc9cd4eb142d74aea8d151904cb60a0767c6393) ) /* Tile Map */
1427
1428 ROM_REGION( 0x0200, REGION_PROMS, 0 )
1429 ROM_LOAD( "tbb_2bpr.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
1430 ROM_LOAD( "tbb_1bpr.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
1431 ROM_END
1432
1433 GAME( 1985, sectionz, 0, lwings, sectionz, 0, ROT0, "Capcom", "Section Z (set 1)" )
1434 GAME( 1985, sctionza, sectionz, lwings, sectionz, 0, ROT0, "Capcom", "Section Z (set 2)" )
1435 GAME( 1986, lwings, 0, lwings, lwings, 0, ROT90, "Capcom", "Legendary Wings (US set 1)" )
1436 GAME( 1986, lwings2, lwings, lwings, lwings, 0, ROT90, "Capcom", "Legendary Wings (US set 2)" )
1437 GAME( 1986, lwingsjp, lwings, lwings, lwings, 0, ROT90, "Capcom", "Ares no Tsubasa (Japan)" )
1438 GAMEC(1986, trojan, 0, trojan, trojanls, 0, ROT0, "Capcom", "Trojan (US)", &trojan_ctrl, NULL )
1439 GAMEC(1986, trojanr, trojan, trojan, trojan, 0, ROT0, "Capcom (Romstar license)", "Trojan (Romstar)", &trojan_ctrl, NULL )
1440 GAMEC(1986, trojanj, trojan, trojan, trojan, 0, ROT0, "Capcom", "Tatakai no Banka (Japan)", &trojan_ctrl, NULL )
1441 GAME( 1987, avengers, 0, avengers, avengers, 0, ROT90, "Capcom", "Avengers (US set 1)" )
1442 GAME( 1987, avenger2, avengers, avengers, avengers, 0, ROT90, "Capcom", "Avengers (US set 2)" )
1443 GAME( 1987, buraiken, avengers, avengers, avengers, 0, ROT90, "Capcom", "Hissatsu Buraiken (Japan)" )
1444