1 /***************************************************************************
2 
3   Speed Rumbler
4 
5   Driver provided by Paul Leaman
6 
7   M6809 for game, Z80 and YM-2203 for sound.
8 
9 ***************************************************************************/
10 
11 #include "driver.h"
12 #include "vidhrdw/generic.h"
13 #include "cpu/m6809/m6809.h"
14 
15 extern unsigned char *srumbler_backgroundram,*srumbler_foregroundram;
16 
17 WRITE_HANDLER( srumbler_background_w );
18 WRITE_HANDLER( srumbler_foreground_w );
19 WRITE_HANDLER( srumbler_scroll_w );
20 WRITE_HANDLER( srumbler_4009_w );
21 
22 VIDEO_START( srumbler );
23 VIDEO_UPDATE( srumbler );
24 VIDEO_EOF( srumbler );
25 
26 
27 
WRITE_HANDLER(srumbler_bankswitch_w)28 static WRITE_HANDLER( srumbler_bankswitch_w )
29 {
30 	/*
31 	  banking is controlled by two PROMs. 0000-4fff is mapped to the same
32 	  address (RAM and I/O) for all banks, so we don't handle it here.
33 	  e000-ffff is all mapped to the same ROMs, however we do handle it
34 	  here anyway.
35 	  Note that 5000-8fff can be either ROM or RAM, so we should handle
36 	  that as well to be 100% accurate.
37 	 */
38 	int i;
39 	unsigned char *ROM = memory_region(REGION_USER1);
40 	unsigned char *prom1 = memory_region(REGION_PROMS) + (data & 0xf0);
41 	unsigned char *prom2 = memory_region(REGION_PROMS) + 0x100 + ((data & 0x0f) << 4);
42 
43 	for (i = 0x05;i < 0x10;i++)
44 	{
45 		int bank = ((prom1[i] & 0x03) << 4) | (prom2[i] & 0x0f);
46 		/* bit 2 of prom1 selects ROM or RAM - not supported */
47 
48 		cpu_setbank(i+1,&ROM[bank*0x1000]);
49 	}
50 }
51 
MACHINE_INIT(srumbler)52 static MACHINE_INIT( srumbler )
53 {
54 	/* initialize banked ROM pointers */
55 	srumbler_bankswitch_w(0,0);
56 }
57 
INTERRUPT_GEN(srumbler_interrupt)58 static INTERRUPT_GEN( srumbler_interrupt )
59 {
60 	if (cpu_getiloops()==0)
61 	{
62 		cpu_set_irq_line(0,0,HOLD_LINE);
63 	}
64 	else
65 	{
66 		cpu_set_irq_line(0,M6809_FIRQ_LINE,HOLD_LINE);
67 	}
68 }
69 
70 
71 
MEMORY_READ_START(readmem)72 static MEMORY_READ_START( readmem )
73 	{ 0x0000, 0x3fff, MRA_RAM },   /* RAM (of 1 sort or another) */
74 	{ 0x4008, 0x4008, input_port_0_r },
75 	{ 0x4009, 0x4009, input_port_1_r },
76 	{ 0x400a, 0x400a, input_port_2_r },
77 	{ 0x400b, 0x400b, input_port_3_r },
78 	{ 0x400c, 0x400c, input_port_4_r },
79 	{ 0x5000, 0x5fff, MRA_BANK6 },	/* Banked ROM */
80 	{ 0x6000, 0x6fff, MRA_BANK7 },	/* Banked ROM */
81 	{ 0x7000, 0x7fff, MRA_BANK8 },	/* Banked ROM */
82 	{ 0x8000, 0x8fff, MRA_BANK9 },	/* Banked ROM */
83 	{ 0x9000, 0x9fff, MRA_BANK10 },	/* Banked ROM */
84 	{ 0xa000, 0xafff, MRA_BANK11 },	/* Banked ROM */
85 	{ 0xb000, 0xbfff, MRA_BANK12 },	/* Banked ROM */
86 	{ 0xc000, 0xcfff, MRA_BANK13 },	/* Banked ROM */
87 	{ 0xd000, 0xdfff, MRA_BANK14 },	/* Banked ROM */
88 	{ 0xe000, 0xefff, MRA_BANK15 },	/* Banked ROM */
89 	{ 0xf000, 0xffff, MRA_BANK16 },	/* Banked ROM */
90 MEMORY_END
91 
92 /*
93 The "scroll test" routine on the test screen appears to overflow and write
94 over the control registers (0x4000-0x4080) when it clears the screen.
95 
96 This doesn't affect anything since it happens to write the correct value
97 to the page register.
98 
99 Ignore the warnings about writing to unmapped memory.
100 */
101 
102 static MEMORY_WRITE_START( writemem )
103 	{ 0x0000, 0x1dff, MWA_RAM },
104 	{ 0x1e00, 0x1fff, MWA_RAM, &spriteram, &spriteram_size },
105 	{ 0x2000, 0x3fff, srumbler_background_w, &srumbler_backgroundram },
106 	{ 0x4008, 0x4008, srumbler_bankswitch_w },
107 	{ 0x4009, 0x4009, srumbler_4009_w },
108 	{ 0x400a, 0x400d, srumbler_scroll_w },
109 	{ 0x400e, 0x400e, soundlatch_w },
110 	{ 0x5000, 0x5fff, srumbler_foreground_w, &srumbler_foregroundram },
111 	{ 0x6000, 0x6fff, MWA_RAM }, /* Video RAM 2 ??? (not used) */
112 	{ 0x7000, 0x73ff, paletteram_RRRRGGGGBBBBxxxx_swap_w, &paletteram },
113 	{ 0x7400, 0xffff, MWA_ROM },
114 MEMORY_END
115 
116 static MEMORY_READ_START( sound_readmem )
117 	{ 0xe000, 0xe000, soundlatch_r },
118 	{ 0xc000, 0xc7ff, MRA_RAM },
119 	{ 0x0000, 0x7fff, MRA_ROM },
120 MEMORY_END
121 
122 static MEMORY_WRITE_START( sound_writemem )
123 	{ 0xc000, 0xc7ff, MWA_RAM },
124 	{ 0x8000, 0x8000, YM2203_control_port_0_w },
125 	{ 0x8001, 0x8001, YM2203_write_port_0_w },
126 	{ 0xa000, 0xa000, YM2203_control_port_1_w },
127 	{ 0xa001, 0xa001, YM2203_write_port_1_w },
128 	{ 0x0000, 0x7fff, MWA_ROM },
129 MEMORY_END
130 
131 
132 INPUT_PORTS_START( srumbler )
133 	PORT_START      /* IN0 */
134 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
135 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
136 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
137 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
138 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
139 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
140 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
141 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
142 
143 	PORT_START      /* IN1 */
144 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
145 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
146 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
147 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
148 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
149 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
150 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
151 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
152 
153 	PORT_START      /* IN2 */
154 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
155 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
156 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
157 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
158 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
159 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
160 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
161 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
162 
163 	PORT_START      /* DSW0 */
164 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) )
165 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
166 	PORT_DIPSETTING(    0x01, DEF_STR( 3C_1C ) )
167 	PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
168 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
169 	PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
170 	PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
171 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
172 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_6C ) )
173 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_A ) )
174 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
175 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
176 	PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
177 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
178 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
179 	PORT_DIPSETTING(    0x28, DEF_STR( 1C_3C ) )
180 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
181 	PORT_DIPSETTING(    0x18, DEF_STR( 1C_6C ) )
182 	PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
183 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )
184 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
185 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
186 
187 	PORT_START      /* DSW1 */
188 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
189 	PORT_DIPSETTING(    0x03, "3" )
190 	PORT_DIPSETTING(    0x02, "4" )
191 	PORT_DIPSETTING(    0x01, "5" )
192 	PORT_DIPSETTING(    0x00, "7" )
193 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
194 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
195 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
196 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
197 	PORT_DIPSETTING(    0x18, "20k 70k and every 70k" )
198 	PORT_DIPSETTING(    0x10, "30k 80k and every 80k" )
199 	PORT_DIPSETTING(    0x08, "20k 80k" )
200 	PORT_DIPSETTING(    0x00, "30k 80k" )
201 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
202 	PORT_DIPSETTING(    0x40, "Easy" )
203 	PORT_DIPSETTING(    0x60, "Normal" )
204 	PORT_DIPSETTING(    0x20, "Hard" )
205 	PORT_DIPSETTING(    0x00, "Very Hard" )
206 	PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )
207 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
208 	PORT_DIPSETTING(    0x80, DEF_STR( Yes ) )
209 INPUT_PORTS_END
210 
211 
212 
213 static struct GfxLayout charlayout =
214 {
215 	8,8,
216 	RGN_FRAC(1,1),
217 	2,
218 	{ 4, 0 },
219 	{ 0, 1, 2, 3, 8+0,8+1, 8+2, 8+3 },
220 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
221 	16*8
222 };
223 
224 static struct GfxLayout tilelayout =
225 {
226 	16,16,
227 	RGN_FRAC(1,2),
228 	4,
229 	{ RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 },
230 	{ 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
231 			32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 },
232 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
233 			8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
234 	64*8
235 };
236 
237 static struct GfxLayout spritelayout =
238 {
239 	16,16,
240 	RGN_FRAC(1,4),
241 	4,
242 	{ RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
243 	{ 0, 1, 2, 3, 4, 5, 6, 7,
244 			2*64+0, 2*64+1, 2*64+2, 2*64+3, 2*64+4, 2*64+5, 2*64+6, 2*64+7, 2*64+8 },
245 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
246 			8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
247 	32*8
248 };
249 
250 
251 static struct GfxDecodeInfo gfxdecodeinfo[] =
252 {
253 	{ REGION_GFX1, 0, &charlayout,   448, 16 }, /* colors 448 - 511 */
254 	{ REGION_GFX2, 0, &tilelayout,   128,  8 }, /* colors 128 - 255 */
255 	{ REGION_GFX3, 0, &spritelayout, 256,  8 }, /* colors 256 - 383 */
256 	{ -1 } /* end of array */
257 };
258 
259 
260 static struct YM2203interface ym2203_interface =
261 {
262 	2,                      /* 2 chips */
263 	4000000,        /* 4.0 MHz (? hand tuned to match the real board) */
264 	{ YM2203_VOL(60,20), YM2203_VOL(60,20) },
265 	{ 0 },
266 	{ 0 },
267 	{ 0 },
268 	{ 0 }
269 };
270 
271 
272 
273 static MACHINE_DRIVER_START( srumbler )
274 
275 	/* basic machine hardware */
276 	MDRV_CPU_ADD(M6809, 1500000)        /* 1.5 MHz (?) */
277 	MDRV_CPU_MEMORY(readmem,writemem)
278 	MDRV_CPU_VBLANK_INT(srumbler_interrupt,2)
279 
280 	MDRV_CPU_ADD(Z80, 3000000)
281 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)        /* 3 MHz ??? */
282 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
283 	MDRV_CPU_VBLANK_INT(irq0_line_hold,4)
284 
285 	MDRV_FRAMES_PER_SECOND(60)
286 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
287 
288 	MDRV_MACHINE_INIT(srumbler)
289 
290 	/* video hardware */
291 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
292 	MDRV_SCREEN_SIZE(64*8, 32*8)
293 	MDRV_VISIBLE_AREA(10*8, (64-10)*8-1, 1*8, 31*8-1 )
294 	MDRV_GFXDECODE(gfxdecodeinfo)
295 	MDRV_PALETTE_LENGTH(512)
296 
297 	MDRV_VIDEO_START(srumbler)
298 	MDRV_VIDEO_EOF(srumbler)
299 	MDRV_VIDEO_UPDATE(srumbler)
300 
301 	/* sound hardware */
302 	MDRV_SOUND_ADD(YM2203, ym2203_interface)
303 MACHINE_DRIVER_END
304 
305 
306 
307 /***************************************************************************
308 
309   Game driver(s)
310 
311 ***************************************************************************/
312 
313 ROM_START( srumbler )
314 	ROM_REGION( 0x10000, REGION_CPU1, 0 )  /* 64k for code */
315 	/* empty, will be filled later */
316 
317 	ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Paged ROMs */
318 	ROM_LOAD( "14e_sr04.bin", 0x00000, 0x08000, CRC(a68ce89c) SHA1(cb5dd8c47c24f9d8ac9a6135c0b7942d16002d25) )  /* RC4 */
319 	ROM_LOAD( "13e_sr03.bin", 0x08000, 0x08000, CRC(87bda812) SHA1(f46dcce21d78c8525a2578b73e05b7cd8a2d8745) )  /* RC3 */
320 	ROM_LOAD( "12e_sr02.bin", 0x10000, 0x08000, CRC(d8609cca) SHA1(893f1f1ac0aef5d31e75228252c14c4b522bff16) )  /* RC2 */
321 	ROM_LOAD( "11e_sr01.bin", 0x18000, 0x08000, CRC(27ec4776) SHA1(09a53fd6472888664c21f49ab78b2c5d77d2caa1) )  /* RC1 */
322 	ROM_LOAD( "14f_sr09.bin", 0x20000, 0x08000, CRC(2146101d) SHA1(cacd7a13d67f43a0fc624d1c5e29d9816bd6b1c7) )  /* RC9 */
323 	ROM_LOAD( "13f_sr08.bin", 0x28000, 0x08000, CRC(838369a6) SHA1(6fdcbe2db488d4d99453b5537cf05ed18112368e) )  /* RC8 */
324 	ROM_LOAD( "12f_sr07.bin", 0x30000, 0x08000, CRC(de785076) SHA1(bdb104c6c875f5362c0d1ba9a8c5dd450c9c014b) )  /* RC7 */
325 	ROM_LOAD( "11f_sr06.bin", 0x38000, 0x08000, CRC(a70f4fd4) SHA1(21be3865b9f7fa265f265a565bab896357d7464f) )  /* RC6 */
326 
327 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
328 	ROM_LOAD( "2f_sr05.bin",  0x0000, 0x8000, CRC(0177cebe) SHA1(0fa94d2057f509a6fe1de210bf513efc82f1ffe7) )
329 
330 	ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
331 	ROM_LOAD( "6g_sr10.bin",  0x00000, 0x4000, CRC(adabe271) SHA1(256d6823dcda404375825103272213e1442c3320) ) /* characters */
332 
333 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
334 	ROM_LOAD( "11a_sr11.bin", 0x00000, 0x8000, CRC(5fa042ba) SHA1(9e03eaf22286330826501619a7b74181dc42a5fa) ) /* tiles */
335 	ROM_LOAD( "13a_sr12.bin", 0x08000, 0x8000, CRC(a2db64af) SHA1(35ab93397ee8172813e69edd085b36a5b98ba082) )
336 	ROM_LOAD( "14a_sr13.bin", 0x10000, 0x8000, CRC(f1df5499) SHA1(b1c47b35c00bc05825353474ad2b33d9669b879e) )
337 	ROM_LOAD( "15a_sr14.bin", 0x18000, 0x8000, CRC(b22b31b3) SHA1(7aa1a042bccf6a1117c983bb36e88ace7712e867) )
338 	ROM_LOAD( "11c_sr15.bin", 0x20000, 0x8000, CRC(ca3a3af3) SHA1(bcb43fc66be852acb2f93513d6b7b089b1bdd9fc) )
339 	ROM_LOAD( "13c_sr16.bin", 0x28000, 0x8000, CRC(c49a4a11) SHA1(4e1432e6d6a7ffc73e695c1db245ea54beee0507) )
340 	ROM_LOAD( "14c_sr17.bin", 0x30000, 0x8000, CRC(aa80aaab) SHA1(37a8e57e4d8ed8372bc1d7c94cf5a087a01d79ad) )
341 	ROM_LOAD( "15c_sr18.bin", 0x38000, 0x8000, CRC(ce67868e) SHA1(867d6bc65119fdb7a9788f7d92e6be0326756776) )
342 
343 	ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
344 	ROM_LOAD( "15e_sr20.bin", 0x00000, 0x8000, CRC(3924c861) SHA1(e31e0ea50823a910f87eefc969de53f1ad738629) ) /* sprites */
345 	ROM_LOAD( "14e_sr19.bin", 0x08000, 0x8000, CRC(ff8f9129) SHA1(8402236e297c3b03984a22b727198cc54e0c8117) )
346 	ROM_LOAD( "15f_sr22.bin", 0x10000, 0x8000, CRC(ab64161c) SHA1(4d8b01ba4c85a732df38db7663bd765a49c671de) )
347 	ROM_LOAD( "14f_sr21.bin", 0x18000, 0x8000, CRC(fd64bcd1) SHA1(4bb6c0e0027387284de1dc1320887de3231252e9) )
348 	ROM_LOAD( "15h_sr24.bin", 0x20000, 0x8000, CRC(c972af3e) SHA1(3aaf5fdd07f675bd29a068035f252c0136e7881e) )
349 	ROM_LOAD( "14h_sr23.bin", 0x28000, 0x8000, CRC(8c9abf57) SHA1(044d5c9904e89b67bd92396a7215b73d96d3965a) )
350 	ROM_LOAD( "15j_sr26.bin", 0x30000, 0x8000, CRC(d4f1732f) SHA1(d16b6456c73395964c9868078e378e0d5cc48ae7) )
351 	ROM_LOAD( "14j_sr25.bin", 0x38000, 0x8000, CRC(d2a4ea4f) SHA1(365e534bf56e08b1e727ea7bfdfb537fa274448b) )
352 
353 	ROM_REGION( 0x0300, REGION_PROMS, 0 )
354 	ROM_LOAD( "63s141.12a",   0x0000, 0x0100, CRC(8421786f) SHA1(7ffe9f3cd081842d9ee38bd67421cb8836e3f7ed) )	/* ROM banking */
355 	ROM_LOAD( "63s141.13a",   0x0100, 0x0100, CRC(6048583f) SHA1(a0b0f560e7f52978a1bf59417da13cc852617eff) )	/* ROM banking */
356 	ROM_LOAD( "63s141.8j",    0x0200, 0x0100, CRC(1a89a7ff) SHA1(437160ad5d61a257b7deaf5f5e8b3d4cf56a9663) )	/* priority (not used) */
357 ROM_END
358 
359 ROM_START( srumblr2 )
360 	ROM_REGION( 0x10000, REGION_CPU1, 0 )  /* 64k for code */
361 	/* empty, will be filled later */
362 
363 	ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Paged ROMs */
364 	ROM_LOAD( "14e_sr04.bin", 0x00000, 0x08000, CRC(a68ce89c) SHA1(cb5dd8c47c24f9d8ac9a6135c0b7942d16002d25) )  /* RC4 */
365 	ROM_LOAD( "rc03.13e",     0x08000, 0x08000, CRC(e82f78d4) SHA1(39cb5d9c18e7635d48aa29221ae99e6a500e2841) )  /* RC3 (different) */
366 	ROM_LOAD( "rc02.12e",     0x10000, 0x08000, CRC(009a62d8) SHA1(72b52b34186304d70214f56acdb0f3af5bed9503) )  /* RC2 (different) */
367 	ROM_LOAD( "rc01.11e",     0x18000, 0x08000, CRC(2ac48d1d) SHA1(9e41cddb8f8f96e55f915ae5c244c123cc4f8c9a) )  /* RC1 (different) */
368 	ROM_LOAD( "rc09.14f",     0x20000, 0x08000, CRC(64f23e72) SHA1(2de892f8753df0ac85389328342089bd5cc57f38) )  /* RC9 (different) */
369 	ROM_LOAD( "rc08.13f",     0x28000, 0x08000, CRC(74c71007) SHA1(9b7f159dc1e3add85a3aaeb697aa800a37d09f52) )  /* RC8 (different) */
370 	ROM_LOAD( "12f_sr07.bin", 0x30000, 0x08000, CRC(de785076) SHA1(bdb104c6c875f5362c0d1ba9a8c5dd450c9c014b) )  /* RC7 */
371 	ROM_LOAD( "11f_sr06.bin", 0x38000, 0x08000, CRC(a70f4fd4) SHA1(21be3865b9f7fa265f265a565bab896357d7464f) )  /* RC6 */
372 
373 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
374 	ROM_LOAD( "rc05.2f",      0x0000, 0x8000, CRC(ea04fa07) SHA1(e29bfc3ed9e6606206ee41c90aaaeddffa26c1b4) )  /* AUDIO (different) */
375 
376 	ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
377 	ROM_LOAD( "6g_sr10.bin",  0x00000, 0x4000, CRC(adabe271) SHA1(256d6823dcda404375825103272213e1442c3320) ) /* characters */
378 
379 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
380 	ROM_LOAD( "11a_sr11.bin", 0x00000, 0x8000, CRC(5fa042ba) SHA1(9e03eaf22286330826501619a7b74181dc42a5fa) ) /* tiles */
381 	ROM_LOAD( "13a_sr12.bin", 0x08000, 0x8000, CRC(a2db64af) SHA1(35ab93397ee8172813e69edd085b36a5b98ba082) )
382 	ROM_LOAD( "14a_sr13.bin", 0x10000, 0x8000, CRC(f1df5499) SHA1(b1c47b35c00bc05825353474ad2b33d9669b879e) )
383 	ROM_LOAD( "15a_sr14.bin", 0x18000, 0x8000, CRC(b22b31b3) SHA1(7aa1a042bccf6a1117c983bb36e88ace7712e867) )
384 	ROM_LOAD( "11c_sr15.bin", 0x20000, 0x8000, CRC(ca3a3af3) SHA1(bcb43fc66be852acb2f93513d6b7b089b1bdd9fc) )
385 	ROM_LOAD( "13c_sr16.bin", 0x28000, 0x8000, CRC(c49a4a11) SHA1(4e1432e6d6a7ffc73e695c1db245ea54beee0507) )
386 	ROM_LOAD( "14c_sr17.bin", 0x30000, 0x8000, CRC(aa80aaab) SHA1(37a8e57e4d8ed8372bc1d7c94cf5a087a01d79ad) )
387 	ROM_LOAD( "15c_sr18.bin", 0x38000, 0x8000, CRC(ce67868e) SHA1(867d6bc65119fdb7a9788f7d92e6be0326756776) )
388 
389 	ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
390 	ROM_LOAD( "15e_sr20.bin", 0x00000, 0x8000, CRC(3924c861) SHA1(e31e0ea50823a910f87eefc969de53f1ad738629) ) /* sprites */
391 	ROM_LOAD( "14e_sr19.bin", 0x08000, 0x8000, CRC(ff8f9129) SHA1(8402236e297c3b03984a22b727198cc54e0c8117) )
392 	ROM_LOAD( "15f_sr22.bin", 0x10000, 0x8000, CRC(ab64161c) SHA1(4d8b01ba4c85a732df38db7663bd765a49c671de) )
393 	ROM_LOAD( "14f_sr21.bin", 0x18000, 0x8000, CRC(fd64bcd1) SHA1(4bb6c0e0027387284de1dc1320887de3231252e9) )
394 	ROM_LOAD( "15h_sr24.bin", 0x20000, 0x8000, CRC(c972af3e) SHA1(3aaf5fdd07f675bd29a068035f252c0136e7881e) )
395 	ROM_LOAD( "14h_sr23.bin", 0x28000, 0x8000, CRC(8c9abf57) SHA1(044d5c9904e89b67bd92396a7215b73d96d3965a) )
396 	ROM_LOAD( "15j_sr26.bin", 0x30000, 0x8000, CRC(d4f1732f) SHA1(d16b6456c73395964c9868078e378e0d5cc48ae7) )
397 	ROM_LOAD( "14j_sr25.bin", 0x38000, 0x8000, CRC(d2a4ea4f) SHA1(365e534bf56e08b1e727ea7bfdfb537fa274448b) )
398 
399 	ROM_REGION( 0x0300, REGION_PROMS, 0 )
400 	ROM_LOAD( "63s141.12a",   0x0000, 0x0100, CRC(8421786f) SHA1(7ffe9f3cd081842d9ee38bd67421cb8836e3f7ed) )	/* ROM banking */
401 	ROM_LOAD( "63s141.13a",   0x0100, 0x0100, CRC(6048583f) SHA1(a0b0f560e7f52978a1bf59417da13cc852617eff) )	/* ROM banking */
402 	ROM_LOAD( "63s141.8j",    0x0200, 0x0100, CRC(1a89a7ff) SHA1(437160ad5d61a257b7deaf5f5e8b3d4cf56a9663) )	/* priority (not used) */
403 ROM_END
404 
405 ROM_START( rushcrsh )
406 	ROM_REGION( 0x10000, REGION_CPU1, 0 )  /* 64k for code */
407 	/* empty, will be filled later */
408 
409 	ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Paged ROMs */
410 	ROM_LOAD( "14e_sr04.bin", 0x00000, 0x08000, CRC(a68ce89c) SHA1(cb5dd8c47c24f9d8ac9a6135c0b7942d16002d25) )  /* RC4 */
411 	ROM_LOAD( "rc03.bin",     0x08000, 0x08000, CRC(a49c9be0) SHA1(9aa385063a289e71fef4c2846c8c960a8adafcc0) )  /* RC3 (different) */
412 	ROM_LOAD( "rc02.12e",     0x10000, 0x08000, CRC(009a62d8) SHA1(72b52b34186304d70214f56acdb0f3af5bed9503) )  /* RC2 (different) */
413 	ROM_LOAD( "rc01.11e",     0x18000, 0x08000, CRC(2ac48d1d) SHA1(9e41cddb8f8f96e55f915ae5c244c123cc4f8c9a) )  /* RC1 (different) */
414 	ROM_LOAD( "rc09.14f",     0x20000, 0x08000, CRC(64f23e72) SHA1(2de892f8753df0ac85389328342089bd5cc57f38) )  /* RC9 (different) */
415 	ROM_LOAD( "rc08.bin",     0x28000, 0x08000, CRC(2c25874b) SHA1(7862f0af14c508f598a2f05330a61b77b86d624e) )  /* RC8 (different) */
416 	ROM_LOAD( "12f_sr07.bin", 0x30000, 0x08000, CRC(de785076) SHA1(bdb104c6c875f5362c0d1ba9a8c5dd450c9c014b) )  /* RC7 */
417 	ROM_LOAD( "11f_sr06.bin", 0x38000, 0x08000, CRC(a70f4fd4) SHA1(21be3865b9f7fa265f265a565bab896357d7464f) )  /* RC6 */
418 
419 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
420 	ROM_LOAD( "rc05.2f",      0x0000, 0x8000, CRC(ea04fa07) SHA1(e29bfc3ed9e6606206ee41c90aaaeddffa26c1b4) )  /* AUDIO (different) */
421 
422 	ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE )
423 	ROM_LOAD( "rc10.bin",     0x00000, 0x4000, CRC(0a3c0b0d) SHA1(63f4daaea852c077f0ddd04d4bb4cd6333a8de7c) ) /* characters */
424 
425 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )
426 	ROM_LOAD( "11a_sr11.bin", 0x00000, 0x8000, CRC(5fa042ba) SHA1(9e03eaf22286330826501619a7b74181dc42a5fa) ) /* tiles */
427 	ROM_LOAD( "13a_sr12.bin", 0x08000, 0x8000, CRC(a2db64af) SHA1(35ab93397ee8172813e69edd085b36a5b98ba082) )
428 	ROM_LOAD( "14a_sr13.bin", 0x10000, 0x8000, CRC(f1df5499) SHA1(b1c47b35c00bc05825353474ad2b33d9669b879e) )
429 	ROM_LOAD( "15a_sr14.bin", 0x18000, 0x8000, CRC(b22b31b3) SHA1(7aa1a042bccf6a1117c983bb36e88ace7712e867) )
430 	ROM_LOAD( "11c_sr15.bin", 0x20000, 0x8000, CRC(ca3a3af3) SHA1(bcb43fc66be852acb2f93513d6b7b089b1bdd9fc) )
431 	ROM_LOAD( "13c_sr16.bin", 0x28000, 0x8000, CRC(c49a4a11) SHA1(4e1432e6d6a7ffc73e695c1db245ea54beee0507) )
432 	ROM_LOAD( "14c_sr17.bin", 0x30000, 0x8000, CRC(aa80aaab) SHA1(37a8e57e4d8ed8372bc1d7c94cf5a087a01d79ad) )
433 	ROM_LOAD( "15c_sr18.bin", 0x38000, 0x8000, CRC(ce67868e) SHA1(867d6bc65119fdb7a9788f7d92e6be0326756776) )
434 
435 	ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )
436 	ROM_LOAD( "15e_sr20.bin", 0x00000, 0x8000, CRC(3924c861) SHA1(e31e0ea50823a910f87eefc969de53f1ad738629) ) /* sprites */
437 	ROM_LOAD( "14e_sr19.bin", 0x08000, 0x8000, CRC(ff8f9129) SHA1(8402236e297c3b03984a22b727198cc54e0c8117) )
438 	ROM_LOAD( "15f_sr22.bin", 0x10000, 0x8000, CRC(ab64161c) SHA1(4d8b01ba4c85a732df38db7663bd765a49c671de) )
439 	ROM_LOAD( "14f_sr21.bin", 0x18000, 0x8000, CRC(fd64bcd1) SHA1(4bb6c0e0027387284de1dc1320887de3231252e9) )
440 	ROM_LOAD( "15h_sr24.bin", 0x20000, 0x8000, CRC(c972af3e) SHA1(3aaf5fdd07f675bd29a068035f252c0136e7881e) )
441 	ROM_LOAD( "14h_sr23.bin", 0x28000, 0x8000, CRC(8c9abf57) SHA1(044d5c9904e89b67bd92396a7215b73d96d3965a) )
442 	ROM_LOAD( "15j_sr26.bin", 0x30000, 0x8000, CRC(d4f1732f) SHA1(d16b6456c73395964c9868078e378e0d5cc48ae7) )
443 	ROM_LOAD( "14j_sr25.bin", 0x38000, 0x8000, CRC(d2a4ea4f) SHA1(365e534bf56e08b1e727ea7bfdfb537fa274448b) )
444 
445 	ROM_REGION( 0x0300, REGION_PROMS, 0 )
446 	ROM_LOAD( "63s141.12a",   0x0000, 0x0100, CRC(8421786f) SHA1(7ffe9f3cd081842d9ee38bd67421cb8836e3f7ed) )	/* ROM banking */
447 	ROM_LOAD( "63s141.13a",   0x0100, 0x0100, CRC(6048583f) SHA1(a0b0f560e7f52978a1bf59417da13cc852617eff) )	/* ROM banking */
448 	ROM_LOAD( "63s141.8j",    0x0200, 0x0100, CRC(1a89a7ff) SHA1(437160ad5d61a257b7deaf5f5e8b3d4cf56a9663) )	/* priority (not used) */
449 ROM_END
450 
451 
452 
453 GAME( 1986, srumbler, 0,        srumbler, srumbler, 0, ROT270, "Capcom", "The Speed Rumbler (set 1)" )
454 GAME( 1986, srumblr2, srumbler, srumbler, srumbler, 0, ROT270, "Capcom", "The Speed Rumbler (set 2)" )
455 GAME( 1986, rushcrsh, srumbler, srumbler, srumbler, 0, ROT270, "Capcom", "Rush and Crash (Japan)" )
456