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