1 /***************************************************************************
2
3 Espial hardware games
4
5 ***************************************************************************/
6
7 #include "driver.h"
8 #include "espial.h"
9 #include "cpu/z80/z80.h"
10
11
MACHINE_INIT(espial)12 MACHINE_INIT( espial )
13 {
14 /* we must start with NMI interrupts disabled */
15 //interrupt_enable = 0;
16 cpu_interrupt_enable(0,0);
17 }
18
19
WRITE_HANDLER(zodiac_master_interrupt_enable_w)20 WRITE_HANDLER( zodiac_master_interrupt_enable_w )
21 {
22 interrupt_enable_w(offset,~data & 1);
23 }
24
25
INTERRUPT_GEN(zodiac_master_interrupt)26 INTERRUPT_GEN( zodiac_master_interrupt )
27 {
28 if (cpu_getiloops() == 0)
29 nmi_line_pulse();
30 else
31 irq0_line_hold();
32 }
33
34
WRITE_HANDLER(zodiac_master_soundlatch_w)35 WRITE_HANDLER( zodiac_master_soundlatch_w )
36 {
37 soundlatch_w(offset, data);
38 cpu_set_irq_line(1, 0, HOLD_LINE);
39 }
40
41
42
MEMORY_READ_START(espial_readmem)43 static MEMORY_READ_START( espial_readmem )
44 { 0x0000, 0x4fff, MRA_ROM },
45 { 0x5800, 0x5fff, MRA_RAM },
46 { 0x6081, 0x6081, input_port_0_r },
47 { 0x6082, 0x6082, input_port_1_r },
48 { 0x6083, 0x6083, input_port_2_r },
49 { 0x6084, 0x6084, input_port_3_r },
50 { 0x6090, 0x6090, soundlatch_r }, /* the main CPU reads the command back from the slave */
51 { 0x7000, 0x7000, watchdog_reset_r },
52 { 0x8000, 0x803f, MRA_RAM },
53 { 0x8400, 0x87ff, MRA_RAM },
54 { 0x8c00, 0x903f, MRA_RAM },
55 { 0x9400, 0x97ff, MRA_RAM },
56 { 0xc000, 0xcfff, MRA_ROM },
57 MEMORY_END
58
59 static MEMORY_WRITE_START( espial_writemem )
60 { 0x0000, 0x4fff, MWA_ROM },
61 { 0x5800, 0x5fff, MWA_RAM },
62 { 0x6090, 0x6090, zodiac_master_soundlatch_w },
63 { 0x7000, 0x7000, watchdog_reset_w },
64 { 0x7100, 0x7100, zodiac_master_interrupt_enable_w },
65 { 0x7200, 0x7200, espial_flipscreen_w },
66 { 0x8000, 0x801f, MWA_RAM, &espial_spriteram_1 },
67 { 0x8400, 0x87ff, espial_videoram_w, &espial_videoram },
68 { 0x8800, 0x880f, MWA_RAM, &espial_spriteram_3 },
69 { 0x8c00, 0x8fff, espial_attributeram_w, &espial_attributeram },
70 { 0x9000, 0x901f, MWA_RAM, &espial_spriteram_2 },
71 { 0x9020, 0x903f, espial_scrollram_w, &espial_scrollram },
72 { 0x9400, 0x97ff, espial_colorram_w, &espial_colorram },
73 { 0xc000, 0xcfff, MWA_ROM },
74 MEMORY_END
75
76
77 /* there are a lot of unmapped reads from all over memory as the
78 code uses POP instructions in a delay loop */
79 static MEMORY_READ_START( netwars_readmem )
80 { 0x0000, 0x3fff, MRA_ROM },
81 { 0x5800, 0x5fff, MRA_RAM },
82 { 0x6081, 0x6081, input_port_0_r },
83 { 0x6082, 0x6082, input_port_1_r },
84 { 0x6083, 0x6083, input_port_2_r },
85 { 0x6084, 0x6084, input_port_3_r },
86 { 0x6090, 0x6090, soundlatch_r }, /* the main CPU reads the command back from the slave */
87 { 0x7000, 0x7000, watchdog_reset_r },
88 { 0x8000, 0x97ff, MRA_RAM },
89 MEMORY_END
90
91 static MEMORY_WRITE_START( netwars_writemem )
92 { 0x0000, 0x3fff, MWA_ROM },
93 { 0x5800, 0x5fff, MWA_RAM },
94 { 0x6090, 0x6090, zodiac_master_soundlatch_w },
95 { 0x7000, 0x7000, watchdog_reset_w },
96 { 0x7100, 0x7100, zodiac_master_interrupt_enable_w },
97 { 0x7200, 0x7200, espial_flipscreen_w },
98 { 0x8000, 0x801f, MWA_RAM, &espial_spriteram_1 },
99 { 0x8000, 0x87ff, espial_videoram_w, &espial_videoram },
100 { 0x8800, 0x880f, MWA_RAM, &espial_spriteram_3 },
101 { 0x8800, 0x8fff, espial_attributeram_w, &espial_attributeram },
102 { 0x9000, 0x901f, MWA_RAM, &espial_spriteram_2 },
103 { 0x9020, 0x903f, espial_scrollram_w, &espial_scrollram },
104 { 0x9000, 0x97ff, espial_colorram_w, &espial_colorram },
105 MEMORY_END
106
107
108 static MEMORY_READ_START( sound_readmem )
109 { 0x0000, 0x1fff, MRA_ROM },
110 { 0x2000, 0x23ff, MRA_RAM },
111 { 0x6000, 0x6000, soundlatch_r },
112 MEMORY_END
113
114 static MEMORY_WRITE_START( sound_writemem )
115 { 0x0000, 0x1fff, MWA_ROM },
116 { 0x2000, 0x23ff, MWA_RAM },
117 { 0x4000, 0x4000, interrupt_enable_w },
118 { 0x6000, 0x6000, soundlatch_w },
119 MEMORY_END
120
121 static PORT_WRITE_START( sound_writeport )
122 { 0x00, 0x00, AY8910_control_port_0_w },
123 { 0x01, 0x01, AY8910_write_port_0_w },
124 PORT_END
125
126
127 INPUT_PORTS_START( espial )
128 PORT_START /* IN0 */
129 PORT_DIPNAME( 0x01, 0x00, "Number of Buttons" )
130 PORT_DIPSETTING( 0x01, "1" )
131 PORT_DIPSETTING( 0x00, "2" )
132 PORT_DIPNAME( 0x02, 0x02, "Enemy Bullets Vulnerable" ) /* you can shoot bullets */
133 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
134 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
135 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
136 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
137 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
138 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
139 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
140 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
141
142 PORT_START /* IN1 */
143 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
144 PORT_DIPSETTING( 0x00, "3" )
145 PORT_DIPSETTING( 0x01, "4" )
146 PORT_DIPSETTING( 0x02, "5" )
147 PORT_DIPSETTING( 0x03, "6" )
148 PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coinage ) )
149 PORT_DIPSETTING( 0x14, DEF_STR( 2C_1C ) )
150 PORT_DIPSETTING( 0x18, DEF_STR( 3C_2C ) )
151 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
152 PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
153 PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
154 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
155 PORT_DIPSETTING( 0x10, DEF_STR( 1C_6C ) )
156 PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) )
157 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )
158 PORT_DIPSETTING( 0x00, "20k and every 70k" )
159 PORT_DIPSETTING( 0x20, "50k and every 100k" )
160 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
161 PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
162 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
163 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
164 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
165 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
166
167 PORT_START /* IN2 */
168 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
169 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
170 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
171 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
172 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
173 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
174 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
175 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
176
177 PORT_START /* IN3 */
178 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
179 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
180 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
181 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
182 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
183 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
184 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
185 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
186 INPUT_PORTS_END
187
188
189 INPUT_PORTS_START( netwars )
190 PORT_START /* IN0 */
191 PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) /* probably unused */
192 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
193 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
194 PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) /* used */
195 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
196 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
197 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* probably unused */
198 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
199 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
200 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) /* used */
201 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
202 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
203 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
204 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
205 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
206 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
207
208 PORT_START /* IN1 */
209 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
210 PORT_DIPSETTING( 0x00, "3" )
211 PORT_DIPSETTING( 0x01, "4" )
212 PORT_DIPSETTING( 0x02, "5" )
213 PORT_DIPSETTING( 0x03, "6" )
214 PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coinage ) )
215 PORT_DIPSETTING( 0x14, DEF_STR( 2C_1C ) )
216 PORT_DIPSETTING( 0x18, DEF_STR( 3C_2C ) )
217 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
218 PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
219 PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
220 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
221 PORT_DIPSETTING( 0x10, DEF_STR( 1C_6C ) )
222 PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) )
223 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )
224 PORT_DIPSETTING( 0x00, "20k and every 70k" )
225 PORT_DIPSETTING( 0x20, "50k and every 100k" )
226 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
227 PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
228 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
229 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
230 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
231 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
232
233 PORT_START /* IN2 */
234 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
235 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
236 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
237 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
238 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
239 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_4WAY )
240 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
241 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
242
243 PORT_START /* IN3 */
244 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
245 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
246 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
247 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY )
248 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_4WAY )
249 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
250 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
251 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_4WAY )
252 INPUT_PORTS_END
253
254
255 static struct GfxLayout charlayout =
256 {
257 8,8,
258 RGN_FRAC(2,2),
259 2,
260 { 0, 4 },
261 { STEP4(0,1), STEP4(8*8,1) },
262 { STEP8(0,8) },
263 16*8
264 };
265
266 static struct GfxLayout spritelayout =
267 {
268 16,16,
269 RGN_FRAC(1,2),
270 2,
271 { RGN_FRAC(0,2), RGN_FRAC(1,2) },
272 { STEP8(0,1), STEP8(8*8,1) },
273 { STEP8(0,8), STEP8(16*8,8) },
274 32*8
275 };
276
277
278 static struct GfxDecodeInfo gfxdecodeinfo[] =
279 {
280 { REGION_GFX1, 0, &charlayout, 0, 64 },
281 { REGION_GFX2, 0, &spritelayout, 0, 64 },
282 { -1 } /* end of array */
283 };
284
285
286
287 static struct AY8910interface ay8910_interface =
288 {
289 1, /* 1 chip */
290 1500000, /* 1.5 MHz?????? */
291 { 50 },
292 { 0 },
293 { 0 },
294 { 0 },
295 { 0 }
296 };
297
298
299
300 static MACHINE_DRIVER_START( espial )
301
302 /* basic machine hardware */
303 MDRV_CPU_ADD_TAG("main", Z80, 3072000) /* 3.072 MHz */
304 MDRV_CPU_MEMORY(espial_readmem,espial_writemem)
305 MDRV_CPU_VBLANK_INT(zodiac_master_interrupt,2)
306
307 MDRV_CPU_ADD(Z80, 3072000) /* 2 MHz?????? */
308 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
309 MDRV_CPU_PORTS(0,sound_writeport)
310 MDRV_CPU_VBLANK_INT(nmi_line_pulse,4)
311
312 MDRV_FRAMES_PER_SECOND(60)
313 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
314
315 MDRV_MACHINE_INIT(espial)
316
317 /* video hardware */
318 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
319 MDRV_SCREEN_SIZE(32*8, 32*8)
320 MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
321 MDRV_GFXDECODE(gfxdecodeinfo)
322 MDRV_PALETTE_LENGTH(256)
323
324 MDRV_PALETTE_INIT(espial)
325 MDRV_VIDEO_START(espial)
326 MDRV_VIDEO_UPDATE(espial)
327
328 /* sound hardware */
329 MDRV_SOUND_ADD(AY8910, ay8910_interface)
330 MACHINE_DRIVER_END
331
332 static MACHINE_DRIVER_START( netwars )
333
334 /* basic machine hardware */
335 MDRV_IMPORT_FROM(espial)
336
337 MDRV_CPU_MODIFY("main")
338 MDRV_CPU_MEMORY(netwars_readmem,netwars_writemem)
339
340 /* video hardware */
341 MDRV_SCREEN_SIZE(32*8, 64*8)
342
343 MDRV_VIDEO_START(netwars)
344 MACHINE_DRIVER_END
345
346
347
348 /***************************************************************************
349
350 Game driver(s)
351
352 ***************************************************************************/
353
354 ROM_START( espial )
355 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
356 ROM_LOAD( "espial.3", 0x0000, 0x2000, CRC(10f1da30) SHA1(8954ca3c7fccb8dd8433015ee303bb75a98f3474) )
357 ROM_LOAD( "espial.4", 0x2000, 0x2000, CRC(d2adbe39) SHA1(13c6041fd0e7c49988af89e3bab1b20999336928) )
358 ROM_LOAD( "espial.6", 0x4000, 0x1000, CRC(baa60bc1) SHA1(fc3d3f2e0316efb31161b28984fc8bd94473b783) )
359 ROM_LOAD( "espial.5", 0xc000, 0x1000, CRC(6d7bbfc1) SHA1(d886a76ce4a23c1310135bf1e4ffeda6d44625e7) )
360
361 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
362 ROM_LOAD( "espial.1", 0x0000, 0x1000, CRC(1e5ec20b) SHA1(f3bee38737321edf2d1ea753124421416441666e) )
363 ROM_LOAD( "espial.2", 0x1000, 0x1000, CRC(3431bb97) SHA1(97343bfb5e49cd1d26799723d8c5a31eff7b1170) )
364
365 ROM_REGION( 0x3000, REGION_GFX1, ROMREGION_DISPOSE )
366 ROM_LOAD( "espial.8", 0x0000, 0x2000, CRC(2f43036f) SHA1(316e9fab778d6c0abb0b6673aba33dfbe44b1262) )
367 ROM_LOAD( "espial.7", 0x2000, 0x1000, CRC(ebfef046) SHA1(5aa6efb7254fb42e814c1a29c5363f2d0727452f) )
368
369 ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE )
370 ROM_LOAD( "espial.10", 0x0000, 0x1000, CRC(de80fbc1) SHA1(f5601eac8cb35a92c51bf81e5ac5a2b79bcde28f) )
371 ROM_LOAD( "espial.9", 0x1000, 0x1000, CRC(48c258a0) SHA1(55e72b9072ddc05f848e5a6fae159c554102010b) )
372
373 ROM_REGION( 0x0200, REGION_PROMS, 0 )
374 ROM_LOAD( "espial.1f", 0x0000, 0x0100, CRC(d12de557) SHA1(53e8a57dfab677cc5b9cdd83d2fbeb93169bcefd) ) /* palette low 4 bits */
375 ROM_LOAD( "espial.1h", 0x0100, 0x0100, CRC(4c84fe70) SHA1(7ac52bd5b19663b9526ecb678e61db9939d2285d) ) /* palette high 4 bits */
376 ROM_END
377
378 ROM_START( espiale )
379 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
380 ROM_LOAD( "2764.3", 0x0000, 0x2000, CRC(0973c8a4) SHA1(d1fc6775870710b3dfea4e58a937ab996021adb1) )
381 ROM_LOAD( "2764.4", 0x2000, 0x2000, CRC(6034d7e5) SHA1(62c9699088f4ee1c69ec10a2f82feddd4083efef) )
382 ROM_LOAD( "2732.6", 0x4000, 0x1000, CRC(357025b4) SHA1(8bc62f564fcbe37bd490452b2d569d1981f76db1) )
383 ROM_LOAD( "2732.5", 0xc000, 0x1000, CRC(d03a2fc4) SHA1(791d70e4354350507f4c39d6115c046254168895) )
384
385 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
386 ROM_LOAD( "2732.1", 0x0000, 0x1000, CRC(fc7729e9) SHA1(96dfec574521fa4fe2588fbac2ef1caba6c1b884) )
387 ROM_LOAD( "2732.2", 0x1000, 0x1000, CRC(e4e256da) SHA1(8007471405bdcf90e29657a3ac2c2f84c9db7c9b) )
388
389 ROM_REGION( 0x3000, REGION_GFX1, ROMREGION_DISPOSE )
390 ROM_LOAD( "espial.8", 0x0000, 0x2000, CRC(2f43036f) SHA1(316e9fab778d6c0abb0b6673aba33dfbe44b1262) )
391 ROM_LOAD( "espial.7", 0x2000, 0x1000, CRC(ebfef046) SHA1(5aa6efb7254fb42e814c1a29c5363f2d0727452f) )
392
393 ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE )
394 ROM_LOAD( "espial.10", 0x0000, 0x1000, CRC(de80fbc1) SHA1(f5601eac8cb35a92c51bf81e5ac5a2b79bcde28f) )
395 ROM_LOAD( "espial.9", 0x1000, 0x1000, CRC(48c258a0) SHA1(55e72b9072ddc05f848e5a6fae159c554102010b) )
396
397 ROM_REGION( 0x0200, REGION_PROMS, 0 )
398 ROM_LOAD( "espial.1f", 0x0000, 0x0100, CRC(d12de557) SHA1(53e8a57dfab677cc5b9cdd83d2fbeb93169bcefd) ) /* palette low 4 bits */
399 ROM_LOAD( "espial.1h", 0x0100, 0x0100, CRC(4c84fe70) SHA1(7ac52bd5b19663b9526ecb678e61db9939d2285d) ) /* palette high 4 bits */
400 ROM_END
401
402 ROM_START( netwars )
403 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
404 ROM_LOAD( "netw3.4f", 0x0000, 0x2000, CRC(8e782991) SHA1(4fd533035b61b7006ef94300bb63474fb9e1c9f0) )
405 ROM_LOAD( "netw4.4h", 0x2000, 0x2000, CRC(6e219f61) SHA1(a27304017251777be501861e106a670fff078d54) )
406
407 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
408 ROM_LOAD( "netw1.4n", 0x0000, 0x1000, CRC(53939e16) SHA1(938f505db0cfcfafb751378ae0c139b7f32404cb) )
409 ROM_LOAD( "netw2.4r", 0x1000, 0x1000, CRC(c096317a) SHA1(e61a3e9107481fd80309172a1a9a431903e02489) )
410
411 ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
412 ROM_LOAD( "netw8.4b", 0x0000, 0x2000, CRC(2320277e) SHA1(4e05f6833de89f8f7cc0a0d1cbec03656f8b54a1) )
413 ROM_LOAD( "netw7.4a", 0x2000, 0x2000, CRC(25cc5b7f) SHA1(2e089c3d5f8ebba676a959ba71bc9c1750312721) )
414
415 ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE )
416 ROM_LOAD( "netw10.4e", 0x0000, 0x1000, CRC(87b65625) SHA1(a702726c0fbe7669604f48bf2c19a54031645731) )
417 ROM_LOAD( "netw9.4d", 0x1000, 0x1000, CRC(830d0218) SHA1(c726a4a9dd1f10279f79cbe5fdd693a62d9d3ac5) )
418
419 ROM_REGION( 0x0200, REGION_PROMS, 0 )
420 ROM_LOAD( "netw5.1f", 0x0000, 0x0100, CRC(f3ae1fe2) SHA1(4f259f8da3c9ecdc6010f83b6abc1371366bd0ab) ) /* palette low 4 bits */
421 ROM_LOAD( "netw6.1h", 0x0100, 0x0100, CRC(c44c3771) SHA1(c86125fac28fafc744957258bf3bb5a6dc664b54) ) /* palette high 4 bits */
422 ROM_END
423
424
425
426 GAME( 1983, espial, 0, espial, espial, 0, ROT0, "[Orca] Thunderbolt", "Espial (US?)" )
427 GAME( 1983, espiale, espial, espial, espial, 0, ROT0, "[Orca] Thunderbolt", "Espial (Europe)" )
428 GAME( 1983, netwars, 0, netwars, netwars, 0, ROT90, "Orca (Esco Trading Co license)", "Net Wars" )
429