1 /***************************************************************************
2
3 Exciting Soccer - (c) 1983 Alpha Denshi Co.
4
5 Supported sets:
6 Exciting Soccer - Alpha Denshi
7 Exciting Soccer (bootleg) - Kazutomi
8
9
10 Preliminary driver by:
11 Ernesto Corvi
12 ernesto@imagina.com
13
14 Jarek Parchanski
15 jpdev@friko6.onet.pl
16
17
18 NOTES:
19 The game supports Coin 2, but the dip switches used for it are the same
20 as Coin 1. Basically, this allowed to select an alternative coin table
21 based on wich Coin input was connected.
22
23 ***************************************************************************/
24
25 #include "driver.h"
26 #include "vidhrdw/generic.h"
27
28 /* from vidhrdw */
29 extern WRITE_HANDLER( exctsccr_videoram_w );
30 extern WRITE_HANDLER( exctsccr_colorram_w );
31 extern WRITE_HANDLER( exctsccr_gfx_bank_w );
32 extern WRITE_HANDLER( exctsccr_flipscreen_w );
33
34 extern PALETTE_INIT( exctsccr );
35 extern VIDEO_START( exctsccr );
36 extern VIDEO_UPDATE( exctsccr );
37
38 /* from machine */
39 extern UINT8 *exctsccr_mcu_ram;
40 extern WRITE_HANDLER( exctsccr_mcu_w );
41 extern WRITE_HANDLER( exctsccr_mcu_control_w );
42
43
WRITE_HANDLER(exctsccr_DAC_data_w)44 WRITE_HANDLER( exctsccr_DAC_data_w )
45 {
46 DAC_signed_data_w(offset,data << 2);
47 }
48
49
50 /***************************************************************************
51
52 Memory definition(s)
53
54 ***************************************************************************/
55
MEMORY_READ_START(readmem)56 static MEMORY_READ_START( readmem )
57 { 0x0000, 0x5fff, MRA_ROM },
58 { 0x6000, 0x63ff, MRA_RAM }, /* Alpha mcu (protection) */
59 { 0x7c00, 0x7fff, MRA_RAM }, /* work ram */
60 { 0x8000, 0x83ff, MRA_RAM },
61 { 0x8400, 0x87ff, MRA_RAM },
62 { 0x8800, 0x8bff, MRA_RAM }, /* ??? */
63 { 0xa000, 0xa000, input_port_0_r },
64 { 0xa040, 0xa040, input_port_1_r },
65 { 0xa080, 0xa080, input_port_3_r },
66 { 0xa0c0, 0xa0c0, input_port_2_r },
67 MEMORY_END
68
69 static MEMORY_WRITE_START( writemem )
70 { 0x0000, 0x5fff, MWA_ROM },
71 { 0x6000, 0x63ff, exctsccr_mcu_w, &exctsccr_mcu_ram }, /* Alpha mcu (protection) */
72 { 0x7c00, 0x7fff, MWA_RAM }, /* work ram */
73 { 0x8000, 0x83ff, exctsccr_videoram_w, &videoram },
74 { 0x8400, 0x87ff, exctsccr_colorram_w, &colorram },
75 { 0x8800, 0x8bff, MWA_RAM }, /* ??? */
76 { 0xa000, 0xa000, MWA_NOP }, /* ??? */
77 { 0xa001, 0xa001, MWA_NOP }, /* ??? */
78 { 0xa002, 0xa002, exctsccr_gfx_bank_w },
79 { 0xa003, 0xa003, exctsccr_flipscreen_w }, /* Cocktail mode ( 0xff = flip screen, 0x00 = normal ) */
80 { 0xa006, 0xa006, exctsccr_mcu_control_w }, /* MCU control */
81 { 0xa007, 0xa007, MWA_NOP }, /* This is also MCU control, but i dont need it */
82 { 0xa040, 0xa06f, MWA_RAM, &spriteram }, /* Sprite pos */
83 { 0xa080, 0xa080, soundlatch_w },
84 { 0xa0c0, 0xa0c0, watchdog_reset_w },
85 MEMORY_END
86
87 static MEMORY_READ_START( sound_readmem )
88 { 0x0000, 0x8fff, MRA_ROM },
89 { 0xa000, 0xa7ff, MRA_RAM },
90 { 0xc00d, 0xc00d, soundlatch_r },
91 MEMORY_END
92
93 static MEMORY_WRITE_START( sound_writemem )
94 { 0x0000, 0x8fff, MWA_ROM },
95 { 0xa000, 0xa7ff, MWA_RAM },
96 { 0xc008, 0xc009, exctsccr_DAC_data_w },
97 { 0xc00c, 0xc00c, soundlatch_w }, /* used to clear the latch */
98 { 0xc00f, 0xc00f, MWA_NOP }, /* ??? */
99 MEMORY_END
100
101 static PORT_WRITE_START( sound_writeport )
102 { 0x82, 0x82, AY8910_write_port_0_w },
103 { 0x83, 0x83, AY8910_control_port_0_w },
104 { 0x86, 0x86, AY8910_write_port_1_w },
105 { 0x87, 0x87, AY8910_control_port_1_w },
106 { 0x8a, 0x8a, AY8910_write_port_2_w },
107 { 0x8b, 0x8b, AY8910_control_port_2_w },
108 { 0x8e, 0x8e, AY8910_write_port_3_w },
109 { 0x8f, 0x8f, AY8910_control_port_3_w },
110 PORT_END
111
112 /* Bootleg */
113 static MEMORY_READ_START( bl_readmem )
114 { 0x0000, 0x5fff, MRA_ROM },
115 { 0x8000, 0x83ff, MRA_RAM },
116 { 0x8400, 0x87ff, MRA_RAM },
117 { 0x8800, 0x8fff, MRA_RAM }, /* ??? */
118 { 0xa000, 0xa000, input_port_0_r },
119 { 0xa040, 0xa040, input_port_1_r },
120 { 0xa080, 0xa080, input_port_3_r },
121 { 0xa0c0, 0xa0c0, input_port_2_r },
122 MEMORY_END
123
124 static MEMORY_WRITE_START( bl_writemem )
125 { 0x0000, 0x5fff, MWA_ROM },
126 { 0x7000, 0x7000, AY8910_write_port_0_w },
127 { 0x7001, 0x7001, AY8910_control_port_0_w },
128 { 0x8000, 0x83ff, exctsccr_videoram_w, &videoram },
129 { 0x8400, 0x87ff, exctsccr_colorram_w, &colorram },
130 { 0x8800, 0x8fff, MWA_RAM }, /* ??? */
131 { 0xa000, 0xa000, MWA_NOP }, /* ??? */
132 { 0xa001, 0xa001, MWA_NOP }, /* ??? */
133 { 0xa002, 0xa002, exctsccr_gfx_bank_w }, /* ??? */
134 { 0xa003, 0xa003, exctsccr_flipscreen_w }, /* Cocktail mode ( 0xff = flip screen, 0x00 = normal ) */
135 { 0xa006, 0xa006, MWA_NOP }, /* no MCU, but some leftover code still writes here */
136 { 0xa007, 0xa007, MWA_NOP }, /* no MCU, but some leftover code still writes here */
137 { 0xa040, 0xa06f, MWA_RAM, &spriteram }, /* Sprite Pos */
138 { 0xa080, 0xa080, soundlatch_w },
139 { 0xa0c0, 0xa0c0, watchdog_reset_w },
140 MEMORY_END
141
142 static MEMORY_READ_START( bl_sound_readmem )
143 { 0x0000, 0x5fff, MRA_ROM },
144 { 0x6000, 0x6000, soundlatch_r },
145 { 0xe000, 0xe3ff, MRA_RAM },
146 MEMORY_END
147
148 static MEMORY_WRITE_START( bl_sound_writemem )
149 { 0x0000, 0x5fff, MWA_ROM },
150 { 0x8000, 0x8000, MWA_NOP }, /* 0 = DAC sound off, 1 = DAC sound on */
151 { 0xa000, 0xa000, soundlatch_w }, /* used to clear the latch */
152 { 0xc000, 0xc000, exctsccr_DAC_data_w },
153 { 0xe000, 0xe3ff, MWA_RAM },
154 MEMORY_END
155
156 /***************************************************************************
157
158 Input port(s)
159
160 ***************************************************************************/
161
162 INPUT_PORTS_START( exctsccr )
163 PORT_START /* IN0 */
164 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
165 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
166 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
167 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
168 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
169 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
170 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
171 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
172
173 PORT_START /* IN1 */
174 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
175 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
176 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
177 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
178 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
179 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
180 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT| IPF_8WAY | IPF_COCKTAIL )
181 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
182
183 PORT_START /* IN2 */
184 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
185 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
186 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
187 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
188 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
189 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
190 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
191 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
192
193 PORT_START /* DSW0 */
194 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
195 PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
196 PORT_DIPSETTING( 0x03, "A 1C/1C B 3C/1C" )
197 PORT_DIPSETTING( 0x01, "A 1C/2C B 1C/4C" )
198 PORT_DIPSETTING( 0x00, "A 1C/3C B 1C/6C" )
199 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
200 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
201 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
202 PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
203 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
204 PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
205 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) )
206 PORT_DIPSETTING( 0x10, "Easy" )
207 PORT_DIPSETTING( 0x00, "Hard" )
208 PORT_DIPNAME( 0x60, 0x00, "Game Time" )
209 PORT_DIPSETTING( 0x20, "1 Min." )
210 PORT_DIPSETTING( 0x00, "2 Min." )
211 PORT_DIPSETTING( 0x60, "3 Min." )
212 PORT_DIPSETTING( 0x40, "4 Min." )
213 PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Has to be 0 */
214 INPUT_PORTS_END
215
216 /***************************************************************************
217
218 Graphic(s) decoding
219
220 ***************************************************************************/
221
222 static struct GfxLayout charlayout1 =
223 {
224 8,8, /* 8*8 characters */
225 256, /* 256 characters */
226 3, /* 3 bits per pixel */
227 { 0x4000*8+4, 0, 4 }, /* plane offset */
228 { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 },
229 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
230 16*8 /* every char takes 16 consecutive bytes */
231 };
232
233 static struct GfxLayout charlayout2 =
234 {
235 8,8, /* 8*8 characters */
236 256, /* 256 characters */
237 3, /* 3 bits per pixel */
238 { 0x2000*8, 0, 4 }, /* plane offset */
239 { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 },
240 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
241 16*8 /* every char takes 16 consecutive bytes */
242 };
243
244 static struct GfxLayout spritelayout1 =
245 {
246 16,16, /* 16*16 sprites */
247 64, /* 64 sprites */
248 3, /* 3 bits per pixel */
249 { 0x4000*8+4, 0, 4 }, /* plane offset */
250 { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
251 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
252 { 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8,
253 32 * 8, 33 * 8, 34 * 8, 35 * 8, 36 * 8, 37 * 8, 38 * 8, 39 * 8 },
254 64*8 /* every sprite takes 64 bytes */
255 };
256
257 static struct GfxLayout spritelayout2 =
258 {
259 16,16, /* 16*16 sprites */
260 64, /* 64 sprites */
261 3, /* 3 bits per pixel */
262 { 0x2000*8, 0, 4 }, /* plane offset */
263 { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
264 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
265 { 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8,
266 32 * 8, 33 * 8, 34 * 8, 35 * 8, 36 * 8, 37 * 8, 38 * 8, 39 * 8 },
267 64*8 /* every sprite takes 64 bytes */
268 };
269
270 static struct GfxLayout spritelayout =
271 {
272 16,16, /* 16*16 sprites */
273 64, /* 64 sprites */
274 3, /* 2 bits per pixel */
275 { 0x1000*8+4, 0, 4 }, /* plane offset */
276 { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
277 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
278 { 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8,
279 32 * 8, 33 * 8, 34 * 8, 35 * 8, 36 * 8, 37 * 8, 38 * 8, 39 * 8 },
280 64*8 /* every sprite takes 64 bytes */
281 };
282
283 static struct GfxDecodeInfo gfxdecodeinfo[] =
284 {
285 { REGION_GFX1, 0x0000, &charlayout1, 0, 32 }, /* chars */
286 { REGION_GFX1, 0x2000, &charlayout2, 0, 32 }, /* chars */
287 { REGION_GFX1, 0x1000, &spritelayout1, 16*8, 32 }, /* sprites */
288 { REGION_GFX1, 0x3000, &spritelayout2, 16*8, 32 }, /* sprites */
289 { REGION_GFX2, 0x0000, &spritelayout, 16*8, 32 }, /* sprites */
290 { -1 } /* end of array */
291 };
292
293 /***************************************************************************
294
295 Sound interface(s)
296
297 ***************************************************************************/
298
299 static struct AY8910interface ay8910_interface =
300 {
301 4, /* 4 chips */
302 1500000, /* 1.5 MHz ? */
303 { 15, 15, 15, 15 }, /* volume */
304 { 0, 0, 0, 0 },
305 { 0, 0, 0, 0 },
306 { 0, 0, 0, 0 }, /* it writes 0s thru port A, no clue what for */
307 { 0, 0, 0, 0 }
308 };
309
310 static struct DACinterface dac_interface =
311 {
312 2,
313 { 50, 50 }
314 };
315
316 /* Bootleg */
317 static struct AY8910interface bl_ay8910_interface =
318 {
319 1, /* 1 chip */
320 1500000, /* 1.5 MHz ? */
321 { 50 }, /* volume */
322 { 0 },
323 { 0 },
324 { 0 },
325 { 0 }
326 };
327
328 static struct DACinterface bl_dac_interface =
329 {
330 1,
331 { 100 }
332 };
333
334 /***************************************************************************
335
336 Machine driver(s)
337
338 ***************************************************************************/
339
340 static MACHINE_DRIVER_START( exctsccr )
341
342 /* basic machine hardware */
343 MDRV_CPU_ADD(Z80, 4000000) /* 4.0 MHz (?) */
344 MDRV_CPU_MEMORY(readmem,writemem)
345 MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
346
347 MDRV_CPU_ADD(Z80, 4123456) /* ??? with 4 MHz, nested NMIs might happen */
348 MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
349 MDRV_CPU_PORTS(0,sound_writeport)
350 MDRV_CPU_PERIODIC_INT(nmi_line_pulse,4000) /* 4 kHz, updates the dac */
351
352 MDRV_FRAMES_PER_SECOND(60)
353 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
354
355 /* video hardware */
356 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
357 MDRV_SCREEN_SIZE(32*8, 32*8)
358 MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
359 MDRV_GFXDECODE(gfxdecodeinfo)
360 MDRV_PALETTE_LENGTH(32)
361 MDRV_COLORTABLE_LENGTH(64*8)
362
363 MDRV_PALETTE_INIT(exctsccr)
364 MDRV_VIDEO_START(exctsccr)
365 MDRV_VIDEO_UPDATE(exctsccr)
366
367 /* sound hardware */
368 MDRV_SOUND_ADD(AY8910, ay8910_interface)
369 MDRV_SOUND_ADD(DAC, dac_interface)
370 MACHINE_DRIVER_END
371
372 /* Bootleg */
373 static MACHINE_DRIVER_START( exctsccb )
374
375 /* basic machine hardware */
376 MDRV_CPU_ADD(Z80, 4000000) /* 4.0 MHz (?) */
377 MDRV_CPU_MEMORY(bl_readmem,bl_writemem)
378 MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
379
380 MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz ? */
381 MDRV_CPU_MEMORY(bl_sound_readmem,bl_sound_writemem)
382
383 MDRV_FRAMES_PER_SECOND(60)
384 MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
385
386 /* video hardware */
387 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
388 MDRV_SCREEN_SIZE(32*8, 32*8)
389 MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
390 MDRV_GFXDECODE(gfxdecodeinfo)
391 MDRV_PALETTE_LENGTH(32)
392 MDRV_COLORTABLE_LENGTH(64*8)
393
394 MDRV_PALETTE_INIT(exctsccr)
395 MDRV_VIDEO_START(exctsccr)
396 MDRV_VIDEO_UPDATE(exctsccr)
397
398 /* sound hardware */
399 MDRV_SOUND_ADD(AY8910, bl_ay8910_interface)
400 MDRV_SOUND_ADD(DAC, bl_dac_interface)
401 MACHINE_DRIVER_END
402
403 /***************************************************************************
404
405 Game driver(s)
406
407 ***************************************************************************/
408
409 ROM_START( exctsccr )
410 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
411 ROM_LOAD( "1_g10.bin", 0x0000, 0x2000, CRC(aa68df66) SHA1(f10cac5a4c5aad1e1eb8835174dc8d517bb2921a) )
412 ROM_LOAD( "2_h10.bin", 0x2000, 0x2000, CRC(2d8f8326) SHA1(8809e7b081fa2a1966cb51ac969fd7b468d35be0) )
413 ROM_LOAD( "3_j10.bin", 0x4000, 0x2000, CRC(dce4a04d) SHA1(9c015e4597ec8921bea213d9841fc69c776a4e6d) )
414
415 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */
416 ROM_LOAD( "0_h6.bin", 0x0000, 0x2000, CRC(3babbd6b) SHA1(b81bd47c4449f4f21f2d55d01eb9cb6db10664c7) )
417 ROM_LOAD( "9_f6.bin", 0x2000, 0x2000, CRC(639998f5) SHA1(c4ff5e5e75d53dea38449f323186d08d5b57bf90) )
418 ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) )
419 ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) )
420 ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) )
421
422 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
423 ROM_LOAD( "4_a5.bin", 0x0000, 0x2000, CRC(c342229b) SHA1(a989d6c12521c77882a7e17d4d80afe7eae05906) )
424 ROM_LOAD( "5_b5.bin", 0x2000, 0x2000, CRC(35f4f8c9) SHA1(cdf5bbfea9abdd338938e5f4499d2d71ce3c6237) )
425 ROM_LOAD( "6_c5.bin", 0x4000, 0x2000, CRC(eda40e32) SHA1(6c08fd4f4fb35fd354d02e04548e960c545f6a88) )
426
427 ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE )
428 ROM_LOAD( "2_k5.bin", 0x0000, 0x1000, CRC(7f9cace2) SHA1(bf05a31716f3ca1c2fd1034cd1f39e2d21cdaed3) )
429 ROM_LOAD( "3_l5.bin", 0x1000, 0x1000, CRC(db2d9e0d) SHA1(6ec09a47f7aea6bf31eb0ee78f44012f4d92de8a) )
430
431 ROM_REGION( 0x0220, REGION_PROMS, 0 )
432 ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */
433 ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */
434 ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */
435 ROM_END
436
437 ROM_START( exctscca )
438 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
439 ROM_LOAD( "1_g10.bin", 0x0000, 0x2000, CRC(aa68df66) SHA1(f10cac5a4c5aad1e1eb8835174dc8d517bb2921a) )
440 ROM_LOAD( "2_h10.bin", 0x2000, 0x2000, CRC(2d8f8326) SHA1(8809e7b081fa2a1966cb51ac969fd7b468d35be0) )
441 ROM_LOAD( "3_j10.bin", 0x4000, 0x2000, CRC(dce4a04d) SHA1(9c015e4597ec8921bea213d9841fc69c776a4e6d) )
442
443 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */
444 ROM_LOAD( "exctsccc.000", 0x0000, 0x2000, CRC(642fc42f) SHA1(cfc849d18e347e3e23fc31c1ce7f2580d5d9b2b0) )
445 ROM_LOAD( "exctsccc.009", 0x2000, 0x2000, CRC(d88b3236) SHA1(80f083fb15243e9e68978677caed8aee8e3109a0) )
446 ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) )
447 ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) )
448 ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) )
449
450 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
451 ROM_LOAD( "4_a5.bin", 0x0000, 0x2000, CRC(c342229b) SHA1(a989d6c12521c77882a7e17d4d80afe7eae05906) )
452 ROM_LOAD( "5_b5.bin", 0x2000, 0x2000, CRC(35f4f8c9) SHA1(cdf5bbfea9abdd338938e5f4499d2d71ce3c6237) )
453 ROM_LOAD( "6_c5.bin", 0x4000, 0x2000, CRC(eda40e32) SHA1(6c08fd4f4fb35fd354d02e04548e960c545f6a88) )
454
455 ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE )
456 ROM_LOAD( "2_k5.bin", 0x0000, 0x1000, CRC(7f9cace2) SHA1(bf05a31716f3ca1c2fd1034cd1f39e2d21cdaed3) )
457 ROM_LOAD( "3_l5.bin", 0x1000, 0x1000, CRC(db2d9e0d) SHA1(6ec09a47f7aea6bf31eb0ee78f44012f4d92de8a) )
458
459 ROM_REGION( 0x0220, REGION_PROMS, 0 )
460 ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */
461 ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */
462 ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */
463 ROM_END
464
465 /* Bootleg */
466 ROM_START( exctsccb )
467 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
468 ROM_LOAD( "es-1.e2", 0x0000, 0x2000, CRC(997c6a82) SHA1(60fe27a12eedd22c775b7e65c5ba692cfcf5ac74) )
469 ROM_LOAD( "es-2.g2", 0x2000, 0x2000, CRC(5c66e792) SHA1(f7a7f32806965fa926261217cee3159ccd198d49) )
470 ROM_LOAD( "es-3.h2", 0x4000, 0x2000, CRC(e0d504c0) SHA1(d9a9f37b3a44a05a3f3389aa9617c419a2cee661) )
471
472 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound */
473 ROM_LOAD( "es-a.k2", 0x0000, 0x2000, CRC(99e87b78) SHA1(f12006ff3f6f3c706e06288c97a1446141373432) )
474 ROM_LOAD( "es-b.l2", 0x2000, 0x2000, CRC(8b3db794) SHA1(dbfed2357c7631bfca6bbd63a23617bc3abf6ca3) )
475 ROM_LOAD( "es-c.m2", 0x4000, 0x2000, CRC(7bed2f81) SHA1(cbbb0480519cc04a99e8983228b18c9e49a9985d) )
476
477 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
478 /* I'm using the ROMs from exctscc2, national flags are wrong (ITA replaces USA) */
479 ROM_LOAD( "vr.5a", 0x0000, 0x2000, BAD_DUMP CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) )
480 ROM_LOAD( "vr.5b", 0x2000, 0x2000, BAD_DUMP CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) )
481 ROM_LOAD( "vr.5c", 0x4000, 0x2000, BAD_DUMP CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) )
482
483 ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE )
484 ROM_LOAD( "vr.5k", 0x0000, 0x1000, BAD_DUMP CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) )
485 ROM_LOAD( "vr.5l", 0x1000, 0x1000, BAD_DUMP CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) )
486
487 ROM_REGION( 0x0220, REGION_PROMS, 0 )
488 ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */
489 ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */
490 ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */
491 ROM_END
492
493 ROM_START( exctscc2 )
494 ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */
495 ROM_LOAD( "vr.3j", 0x0000, 0x2000, CRC(c6115362) SHA1(6a258631abd72ef6b8d7968bb4b2bc88e89e597d) )
496 ROM_LOAD( "vr.3k", 0x2000, 0x2000, CRC(de36ba00) SHA1(0a0d92e710b8c749f145571bc8a204609456d19d) )
497 ROM_LOAD( "vr.3l", 0x4000, 0x2000, CRC(1ddfdf65) SHA1(313d0a7f13fc2de15aa32492c38a59fbafad9f01) )
498
499 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */
500 ROM_LOAD( "vr.7d", 0x0000, 0x2000, CRC(2c675a43) SHA1(aa0a8dbcae955e3da92c435202f2a1ed238c377e) )
501 ROM_LOAD( "vr.7e", 0x2000, 0x2000, CRC(e571873d) SHA1(2dfff24f5dac86e92612f40cf3642005c7f36ad3) )
502 ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) ) /* vr.7f */
503 ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) ) /* vr.7h */
504 ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) ) /* vr.7k */
505
506 ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE )
507 ROM_LOAD( "vr.5a", 0x0000, 0x2000, CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) )
508 ROM_LOAD( "vr.5b", 0x2000, 0x2000, CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) )
509 ROM_LOAD( "vr.5c", 0x4000, 0x2000, CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) )
510
511 ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE )
512 ROM_LOAD( "vr.5k", 0x0000, 0x1000, CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) )
513 ROM_LOAD( "vr.5l", 0x1000, 0x1000, CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) )
514
515 ROM_REGION( 0x0220, REGION_PROMS, 0 )
516 ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */
517 ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */
518 ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */
519 ROM_END
520
521
522
523 GAME( 1983, exctsccr, 0, exctsccr, exctsccr, 0, ROT90, "Alpha Denshi Co.", "Exciting Soccer" )
524 GAME( 1983, exctscca, exctsccr, exctsccr, exctsccr, 0, ROT90, "Alpha Denshi Co.", "Exciting Soccer (alternate music)" )
525 GAME( 1983, exctsccb, exctsccr, exctsccb, exctsccr, 0, ROT90, "bootleg", "Exciting Soccer (bootleg)" )
526 GAMEX(1984, exctscc2, exctsccr, exctsccr, exctsccr, 0, ROT90, "Alpha Denshi Co.", "Exciting Soccer II", GAME_NOT_WORKING )
527