1 /*******************************************************************************
2 
3 Equites           (c) 1984 Alpha Denshi Co./Sega
4 Bull Fighter      (c) 1984 Alpha Denshi Co./Sega
5 The Koukouyakyuh  (c) 1985 Alpha Denshi Co.
6 Splendor Blast    (c) 1985 Alpha Denshi Co.
7 High Voltage      (c) 1985 Alpha Denshi Co.
8 
9 drivers by Acho A. Tang
10 
11 Stephh's notes (based on the games M68000 code and some tests) :
12 
13 0) all games
14 
15   - To enter sort of "test mode", bits 0 and 1 need to be ON when the game is reset.
16     Acho said that it could be a switch (but I'm not sure of that), and that's why
17     I've added a EASY_TEST_MODE compilation switch.
18 
19 
20 1) 'equites'
21 
22   - When in "test mode", press START1 to cycle through next sound, and press START2
23     to directly test the inputs and the Dip Switches.
24   - When the number of buttons is set to 2, you need to press BOTH BUTTON1 and
25     BUTTON2 to have the same effect as BUTTON3.
26 
27 
28 2) 'bullfgtr'
29 
30   - When in "test mode", press START1 to cycle through next sound, and press START2
31     to directly test the inputs and the Dip Switches.
32   - I'm not sure I understand how the coinage is handled, and so it's hard to make
33     a good description. Anyway, the values are correct.
34 
35 
36 3) 'kouyakyu'
37 
38   - When in "test mode", press START1 to cycle through next sound, and press START2
39     to directly test the inputs and the Dip Switches.
40   - Bit 1 of Dip Switch is only read in combinaison of bit 0 during P.O.S.T. to
41     enter the "test mode", but it doesn't add any credit ! That's why I've patched
42     the inputs, so you can enter the "test mode" by pressing COIN1 during P.O.S.T.
43 
44 
45 4) 'splndrbt'
46 
47   - When starting a 2 players game, when player 1 game is over, the game enters in
48     an infinite loop on displaying the "GAME OVER" message.
49   - You can test player 2 by putting 0xff instead of 0x00 at 0x040009 ($9,A6).
50   - FYI, what should change the contents of $9,A6 is the routine at 0x000932,
51     but I haven't found where this routine could be called 8( 8303 issue ?
52 
53 
54 5) 'hvoltage'
55 
56   - When starting a 2 players game, when player 1 game is over, the game becomes
57     buggy on displaying the "GAME OVER" message and you can't start a new game
58     anymore.
59   - You can test player 2 by putting 0xff instead of 0x00 at 0x040009 ($9,A6).
60   - FYI, what should change the contents of $9,A6 is the routine at 0x000fc4,
61     but I haven't found where this routine could be called 8( 8404 issue ?
62 
63   - There is sort of "debug mode" that you can access if 0x000038.w returns 0x0000
64     instead of 0xffff. To enable it, turn HVOLTAGE_HACK to 1 then enable the fake
65     Dip Switch.
66   - When you are in "debug mode", the Inputs and Dip Switches have special features.
67     Here is IMO the full list :
68 
69       * pressing IPT_JOYSTICK_DOWN of player 2 freezes the game
70       * pressing IPT_JOYSTICK_UP of player 2 unfreezes the game
71       * pressing IPT_COIN1 gives invulnerability (the collision routine isn't called)
72       * pressing IPT_COIN2 speeds up the game and you don't need to kill the bosses
73       * when bit 2 is On, you are given invulnerability (same effect as IPT_COIN1)
74       * when bit 3 is On, you don't need to kill the bosses (only the last one)
75       * when bit 4 is On ("Lives" Dip Switch set to "5"), some coordonates are displayed
76       * when bit 7 is On ("Coinage" Dip Switch set to "A 1/3C B 1/6C" or "A 2/1C B 3/1C"),
77         a "band" is displayed at the left of the screen
78 
79 TO DO :
80 
81   - support screen flipping in 'equites' and 'splndrbt'.
82 
83 
84 Hardware Deficiencies
85 ---------------------
86 
87 - Lack of 8303/8404 tech info. All MCU results are guessed.
88 
89   equites_8404rule(unsigned pc, int offset, int data) details:
90 
91 	    pc: 68000 code address where the program queries the MCU
92 	offset: 8404 memory offset(in bytes) from where MCU data is read
93 	  data: fake byte-value to return (negative numbers trigger special conditions)
94 
95 The following ROMs need redump:
96 
97 - Bull Fighter's RGB PROMs (the ones in use are fake make-up's)
98 - The Koukouyakyuh's epr-6706.bin (the one in use is patched)
99 
100 
101 Emulation Deficiencies
102 ----------------------
103 
104 - Equites has sprite lag in the post-rotate X direction depends on interrupt timing.
105 - Scale factors in High Voltage and Splendor Blast are inaccurate. Actual values are believed
106   to be in the three unknown ROM s3.8l, 1.9j and 4.7m but the equations are unknown.
107 
108 - MSM5232 clock speed and capacitor values are not known.
109 - There seems to be a rheostat on Equites' soundboard to adjust the MSM5232's music pitch.
110 - It hasn't been confirmed whether music tempos are the same across all games.
111 
112 
113 * Special Thanks to:
114 
115   Jarek Burczynski for a superb MSM5232 emulation
116   The Equites WIP webmasters for the vital screenshots and sound clips
117   Yasuhiro Ogawa for the correct Equites ROM information
118 
119 
120 Other unemulated Alpha Denshi and SNK games that may use similar hardware:
121 -----------------------------------------------------------
122 Maker        Year Genre Name             Japanese Name
123 -----------------------------------------------------------
124 Alpha Denshi 1984 (SPT) Champion Croquet チャンピオンクロッケー
125 Alpha Denshi 1985 (???) Tune Pit(?)      チェーンピット
126 Alpha Denshi 1985 (MAJ) Perfect Janputer パーフェクトジャンピューター
127 SNK/Eastern  1985 (ACT) Gekisoh          激走
128 
129 *******************************************************************************/
130 /* Directives*/
131 
132 #include "driver.h"
133 #include "vidhrdw/generic.h"
134 
135 #define HVOLTAGE_HACK	0
136 #define EASY_TEST_MODE	1
137 
138 /* Equites Hardware*/
139 #define BMPAD 8
140 
141 /******************************************************************************/
142 /* Imports*/
143 
144 /* Common Hardware Start*/
145 #define EQUITES_ADD_SOUNDBOARD7 \
146 	MDRV_CPU_ADD(8085A, 5000000) \
147 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU) \
148 	MDRV_CPU_MEMORY(equites_s_readmem, equites_s_writemem) \
149 	MDRV_CPU_PORTS(0, equites_s_writeport) \
150 	MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000) \
151 	MDRV_SOUND_ADD(MSM5232, equites_5232intf) \
152 	MDRV_SOUND_ADD(AY8910, equites_8910intf) \
153 	MDRV_SOUND_ADD(DAC, equites_dacintf)
154 
155 extern void equites_8404init(void);
156 extern void equites_8404rule(unsigned pc, int offset, int data);
157 
158 extern READ16_HANDLER(equites_8404_r);
159 extern WRITE_HANDLER(equites_5232_w);
160 extern WRITE_HANDLER(equites_8910control_w);
161 extern WRITE_HANDLER(equites_8910data_w);
162 extern WRITE_HANDLER(equites_dac0_w);
163 extern WRITE_HANDLER(equites_dac1_w);
164 
165 extern data16_t *equites_8404ram;
166 extern struct MSM5232interface equites_5232intf;
167 extern struct AY8910interface equites_8910intf;
168 extern struct DACinterface equites_dacintf;
169 
MEMORY_READ_START(equites_s_readmem)170 static MEMORY_READ_START( equites_s_readmem )
171 	{ 0x0000, 0xbfff, MRA_ROM }, /* sound program*/
172 	{ 0xc000, 0xc000, soundlatch_r },
173 	{ 0xe000, 0xe0ff, MRA_RAM }, /* stack and variables*/
174 MEMORY_END
175 
176 static MEMORY_WRITE_START( equites_s_writemem )
177 	{ 0x0000, 0xbfff, MWA_ROM }, /* sound program*/
178 	{ 0xc080, 0xc08d, equites_5232_w },
179 	{ 0xc0a0, 0xc0a0, equites_8910data_w },
180 	{ 0xc0a1, 0xc0a1, equites_8910control_w },
181 	{ 0xc0b0, 0xc0b0, MWA_NOP }, /* INTR: sync with main melody*/
182 	{ 0xc0c0, 0xc0c0, MWA_NOP }, /* INTR: sync with specific beats*/
183 	{ 0xc0d0, 0xc0d0, equites_dac0_w },
184 	{ 0xc0e0, 0xc0e0, equites_dac1_w },
185 	{ 0xc0f8, 0xc0fe, MWA_NOP }, /* soundboard I/O, ignored*/
186 	{ 0xc0ff, 0xc0ff, soundlatch_clear_w },
187 	{ 0xe000, 0xe0ff, MWA_RAM }, /* stack and variables*/
188 MEMORY_END
189 
190 static PORT_WRITE_START( equites_s_writeport )
191 	{ 0x00e0, 0x00e5, MWA_NOP }, /* soundboard I/O, ignored*/
192 PORT_END
193 /* Common Hardware End*/
194 
195 /* Equites Hardware*/
196 extern PALETTE_INIT( equites );
197 extern VIDEO_START( equites );
198 extern VIDEO_UPDATE( equites );
199 extern READ16_HANDLER(equites_spriteram_r);
200 extern WRITE16_HANDLER(equites_charram_w);
201 extern WRITE16_HANDLER(equites_scrollreg_w);
202 extern WRITE16_HANDLER(equites_bgcolor_w);
203 
204 /* Splendor Blast Hareware*/
205 extern MACHINE_INIT( splndrbt );
206 extern PALETTE_INIT( splndrbt );
207 extern VIDEO_START( splndrbt );
208 extern VIDEO_UPDATE( splndrbt );
209 extern READ16_HANDLER(splndrbt_bankedchar_r);
210 extern WRITE16_HANDLER(splndrbt_charram_w);
211 extern WRITE16_HANDLER(splndrbt_bankedchar_w);
212 extern WRITE16_HANDLER(splndrbt_selchar0_w);
213 extern WRITE16_HANDLER(splndrbt_selchar1_w);
214 extern WRITE16_HANDLER(splndrbt_scrollram_w);
215 extern WRITE16_HANDLER(splndrbt_bgcolor_w);
216 extern data16_t *splndrbt_scrollx, *splndrbt_scrolly;
217 
218 /******************************************************************************/
219 /* Locals*/
220 
221 /* Equites Hardware*/
222 static int disablejoyport2 = 0;
223 
224 /******************************************************************************/
225 /* Exports*/
226 
227 /* Common*/
228 data16_t *equites_workram;
229 int equites_id;
230 
231 /* Equites Hardware*/
232 int equites_flip;
233 
234 /* Splendor Blast Hardware*/
235 int splndrbt_flip;
236 
237 /******************************************************************************/
238 /* Local Functions*/
239 
240 /******************************************************************************/
241 /* Interrupt Handlers*/
242 
243 /* Equites Hardware*/
INTERRUPT_GEN(equites_interrupt)244 static INTERRUPT_GEN( equites_interrupt )
245 {
246 	if (cpu_getiloops())
247 		cpu_set_irq_line(0, 2, HOLD_LINE);
248 	else
249 		cpu_set_irq_line(0, 1, HOLD_LINE);
250 }
251 
252 /* Splendor Blast Hareware*/
INTERRUPT_GEN(splndrbt_interrupt)253 static INTERRUPT_GEN( splndrbt_interrupt )
254 {
255 	if (cpu_getiloops())
256 		cpu_set_irq_line(0, 2, HOLD_LINE);
257 	else
258 		cpu_set_irq_line(0, 1, HOLD_LINE);
259 }
260 
261 /******************************************************************************/
262 /* Main CPU Handlers*/
263 
264 /* Equites Hardware*/
READ16_HANDLER(equites_joyport_r)265 static READ16_HANDLER(equites_joyport_r)
266 {
267 	int data;
268 
269 	data = readinputport(0);
270 	if (disablejoyport2) data = (data & 0x80ff) | (data<<8 & 0x7f00);
271 
272 	return (data);
273 }
274 
WRITE16_HANDLER(equites_flip0_w)275 static WRITE16_HANDLER(equites_flip0_w)
276 {
277 	if (ACCESSING_LSB) disablejoyport2 = 1;
278 	if (ACCESSING_MSB) equites_flip = 0;
279 }
280 
WRITE16_HANDLER(equites_flip1_w)281 static WRITE16_HANDLER(equites_flip1_w)
282 {
283 	if (ACCESSING_LSB) disablejoyport2 = 0;
284 	if (ACCESSING_MSB) equites_flip = 1;
285 }
286 
287 /* Splendor Blast Hardware*/
288 #if HVOLTAGE_HACK
READ16_HANDLER(hvoltage_debug_r)289 static READ16_HANDLER(hvoltage_debug_r)
290 {
291 	return(readinputport(2));
292 }
293 #endif
294 
WRITE16_HANDLER(splndrbt_flip0_w)295 static WRITE16_HANDLER(splndrbt_flip0_w)
296 {
297 	if (ACCESSING_LSB) splndrbt_flip = 0;
298 	if (ACCESSING_MSB) equites_bgcolor_w(offset, data, 0x00ff);
299 }
300 
WRITE16_HANDLER(splndrbt_flip1_w)301 static WRITE16_HANDLER(splndrbt_flip1_w)
302 {
303 	if (ACCESSING_LSB) splndrbt_flip = 1;
304 }
305 #if 0
306 static WRITE16_HANDLER(log16_w)
307 {
308 	int pc = activecpu_get_pc();
309 
310 	usrintf_showmessage("%04x: %04x(w)\n", pc, data);
311 	log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: %04x(w)\n", pc, data);
312 }
313 #endif
314 /******************************************************************************/
315 /* Main CPU Memory Map*/
316 
317 /* Equites Hardware*/
MEMORY_READ16_START(equites_readmem)318 static MEMORY_READ16_START( equites_readmem )
319 	{ 0x000000, 0x00ffff, MRA16_ROM }, /* main program*/
320 	{ 0x040000, 0x040fff, MRA16_RAM }, /* work RAM*/
321 	{ 0x080000, 0x080fff, MRA16_RAM }, /* char RAM*/
322 	{ 0x0c0000, 0x0c0fff, MRA16_RAM }, /* scroll RAM*/
323 	{ 0x100000, 0x100fff, equites_spriteram_r }, /* sprite RAM*/
324 	{ 0x140000, 0x1407ff, equites_8404_r }, /* 8404 RAM*/
325 	{ 0x180000, 0x180001, input_port_1_word_r }, /* MSB: DIP switches*/
326 	{ 0x1c0000, 0x1c0001, equites_joyport_r }, /* joyport[2211] (shares the same addr with scrollreg)*/
327 MEMORY_END
328 
329 static MEMORY_WRITE16_START( equites_writemem )
330 	{ 0x000000, 0x00ffff, MWA16_NOP }, /* ROM area is written several times (dev system?)*/
331 	{ 0x040000, 0x040fff, MWA16_RAM, &equites_workram },
332 	{ 0x080000, 0x080fff, equites_charram_w, &videoram16 },
333 	{ 0x0c0000, 0x0c0fff, MWA16_RAM, &spriteram16_2 },
334 	{ 0x100000, 0x100fff, MWA16_RAM, &spriteram16, &spriteram_size },
335 	{ 0x140000, 0x1407ff, MWA16_RAM, &equites_8404ram },
336 	{ 0x180000, 0x180001, soundlatch_word_w }, /* LSB: sound latch*/
337 	{ 0x184000, 0x184001, equites_flip0_w }, /* [MMLL] MM: normal screen, LL: use joystick 1 only*/
338 	{ 0x188000, 0x188001, MWA16_NOP }, /* 8404 control port1*/
339 	{ 0x18c000, 0x18c001, MWA16_NOP }, /* 8404 control port2*/
340 	{ 0x1a4000, 0x1a4001, equites_flip1_w }, /* [MMLL] MM: flip screen, LL: use both joysticks*/
341 	{ 0x1a8000, 0x1a8001, MWA16_NOP }, /* 8404 control port3*/
342 	{ 0x1ac000, 0x1ac001, MWA16_NOP }, /* 8404 control port4*/
343 	{ 0x1c0000, 0x1c0001, equites_scrollreg_w }, /* scroll register[XXYY]*/
344 	{ 0x380000, 0x380001, equites_bgcolor_w }, /* bg color register[CC--]*/
345 	{ 0x780000, 0x780001, MWA16_NOP }, /* watchdog*/
346 MEMORY_END
347 
348 /* Splendor Blast Hardware*/
349 static MEMORY_READ16_START( splndrbt_readmem )
350 	{ 0x000000, 0x00ffff, MRA16_ROM }, /* main program*/
351 	{ 0x040000, 0x040fff, MRA16_RAM }, /* work RAM*/
352 	{ 0x080000, 0x080001, input_port_0_word_r }, /* joyport [2211]*/
353 	{ 0x0c0000, 0x0c0001, input_port_1_word_r }, /* MSB: DIP switches LSB: not used*/
354 	{ 0x100000, 0x100001, MRA16_RAM }, /* no read*/
355 	{ 0x1c0000, 0x1c0001, MRA16_RAM }, /* LSB: watchdog*/
356 	{ 0x180000, 0x1807ff, equites_8404_r }, /* 8404 RAM*/
357 	{ 0x200000, 0x200fff, MRA16_RAM }, /* char page 0*/
358 	{ 0x201000, 0x201fff, splndrbt_bankedchar_r }, /* banked char page 1, 2*/
359 	{ 0x400000, 0x400fff, MRA16_RAM }, /* scroll RAM 0,1*/
360 	{ 0x600000, 0x6001ff, MRA16_RAM }, /* sprite RAM 0,1,2*/
361 MEMORY_END
362 
363 static MEMORY_WRITE16_START( splndrbt_writemem )
364 	{ 0x000000, 0x00ffff, MWA16_NOP },
365 	{ 0x040000, 0x040fff, MWA16_RAM, &equites_workram }, /* work RAM*/
366 	{ 0x0c0000, 0x0c0001, splndrbt_flip0_w }, /* [MMLL] MM: bg color register, LL: normal screen*/
367 	{ 0x0c4000, 0x0c4001, MWA16_NOP }, /* 8404 control port1*/
368 	{ 0x0c8000, 0x0c8001, MWA16_NOP }, /* 8404 control port2*/
369 	{ 0x0cc000, 0x0cc001, splndrbt_selchar0_w }, /* select active char map*/
370 	{ 0x0e0000, 0x0e0001, splndrbt_flip1_w }, /* [MMLL] MM: not used, LL: flip screen*/
371 	{ 0x0e4000, 0x0e4001, MWA16_NOP }, /* 8404 control port3*/
372 	{ 0x0e8000, 0x0e8001, MWA16_NOP }, /* 8404 control port4*/
373 	{ 0x0ec000, 0x0ec001, splndrbt_selchar1_w }, /* select active char map*/
374 	{ 0x100000, 0x100001, MWA16_RAM, &splndrbt_scrollx }, /* scrollx*/
375 	{ 0x140000, 0x140001, soundlatch_word_w }, /* LSB: sound command*/
376 	{ 0x1c0000, 0x1c0001, MWA16_RAM, &splndrbt_scrolly }, /* scrolly*/
377 	{ 0x180000, 0x1807ff, MWA16_RAM, &equites_8404ram }, /* 8404 RAM*/
378 	{ 0x200000, 0x200fff, splndrbt_charram_w, &videoram16, &videoram_size }, /* char RAM page 0*/
379 	{ 0x201000, 0x201fff, splndrbt_bankedchar_w }, /* banked char RAM page 1,2*/
380 	{ 0x400000, 0x400fff, splndrbt_scrollram_w, &spriteram16_2 }, /* scroll RAM 0,1*/
381 	{ 0x600000, 0x6001ff, MWA16_RAM, &spriteram16, &spriteram_size }, /* sprite RAM 0,1,2*/
382 MEMORY_END
383 
384 /******************************************************************************/
385 /* Common Port Map*/
386 
387 #define EQUITES_PLAYER_INPUT_LSB( button1, button2, button3, start ) \
388 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY ) \
389 	PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY ) \
390 	PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
391 	PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY ) \
392 	PORT_BIT( 0x0010, IP_ACTIVE_HIGH, button1 ) \
393 	PORT_BIT( 0x0020, IP_ACTIVE_HIGH, button2 ) \
394 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, button3 ) \
395 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, start )
396 
397 #define EQUITES_PLAYER_INPUT_MSB( button1, button2, button3, start ) \
398 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL ) \
399 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL ) \
400 	PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL ) \
401 	PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL ) \
402 	PORT_BIT( 0x1000, IP_ACTIVE_HIGH, button1 | IPF_COCKTAIL ) \
403 	PORT_BIT( 0x2000, IP_ACTIVE_HIGH, button2 | IPF_COCKTAIL ) \
404 	PORT_BIT( 0x4000, IP_ACTIVE_HIGH, button3 | IPF_COCKTAIL ) \
405 	PORT_BIT( 0x8000, IP_ACTIVE_HIGH, start )
406 
407 /******************************************************************************/
408 /* Equites Port Map*/
409 
410 INPUT_PORTS_START( equites )
411 	PORT_START
412 	EQUITES_PLAYER_INPUT_LSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START1 )
413 	EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START2 )
414 
415 	PORT_START
416 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
417 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_COIN2 )
418 #if EASY_TEST_MODE
419 	PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
420 #endif
421 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Cabinet ) )
422 	PORT_DIPSETTING(      0x0400, DEF_STR( Upright ) )
423 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )
424 	PORT_DIPNAME( 0x0800, 0x0800, "Buttons" )
425 	PORT_DIPSETTING(      0x0000, "2" )
426 	PORT_DIPSETTING(      0x0800, "3" )
427 	PORT_DIPNAME( 0x1000, 0x0000, DEF_STR ( Lives ) )
428 	PORT_DIPSETTING(      0x0000, "3" )
429 	PORT_DIPSETTING(      0x1000, "5" )
430 	PORT_DIPNAME( 0x2000, 0x0000, DEF_STR ( Difficulty ) )
431 	PORT_DIPSETTING(      0x0000, "Normal" )
432 	PORT_DIPSETTING(      0x2000, "Hard" )
433 	PORT_DIPNAME( 0xc000, 0x0000, DEF_STR( Coinage ) )
434 	PORT_DIPSETTING(      0xc000, "A 2C/1C B 3C/1C" )
435 	PORT_DIPSETTING(      0x0000, "A 1C/1C B 2C/1C" )
436 	PORT_DIPSETTING(      0x8000, "A 1C/2C B 1C/4C" )
437 	PORT_DIPSETTING(      0x4000, "A 1C/3C B 1C/6C" )
438 INPUT_PORTS_END
439 
440 /******************************************************************************/
441 /* Bull Fighter Port Map*/
442 
443 INPUT_PORTS_START( bullfgtr )
444 	PORT_START
445 	EQUITES_PLAYER_INPUT_LSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START1 )
446 	EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START2 )
447 
448 	PORT_START
449 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
450 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_COIN2 )
451 #if EASY_TEST_MODE
452 	PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
453 #endif
454 	PORT_DIPNAME( 0x0c00, 0x0000, "Game Time" )
455 	PORT_DIPSETTING(      0x0c00, "3:00" )
456 	PORT_DIPSETTING(      0x0800, "2:00" )
457 	PORT_DIPSETTING(      0x0000, "1:30" )
458 	PORT_DIPSETTING(      0x0400, "1:00" )
459 	PORT_DIPNAME( 0x2000, 0x0000, DEF_STR ( Difficulty ) )
460 	PORT_DIPSETTING(      0x0000, "Normal" )
461 	PORT_DIPSETTING(      0x2000, "Hard" )
462 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) )
463 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
464 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
465 	PORT_DIPNAME( 0x9000, 0x0000, DEF_STR( Coinage ) )
466 /*	PORT_DIPSETTING(      0x9000, "A 1C/1C B 1C/1C" )		*/ /* More than 1 credit per player needed*/
467 	PORT_DIPSETTING(      0x0000, "A 1C/1C B 1C/1C" )
468 	PORT_DIPSETTING(      0x8000, "A 1C/1C B 1C/4C" )
469 	PORT_DIPSETTING(      0x1000, "A 1C/2C B 1C/3C" )
470 INPUT_PORTS_END
471 
472 /******************************************************************************/
473 /* Koukouyakyuh Port Map*/
474 
475 INPUT_PORTS_START( kouyakyu )
476 	PORT_START
477 	EQUITES_PLAYER_INPUT_LSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START1 )
478 	EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_START2 )
479 
480 	PORT_START
481 /*	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )*/
482 /*	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )*/
483 	PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_COIN1 )
484 #if EASY_TEST_MODE
485 	PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
486 #endif
487 	PORT_DIPNAME( 0x0c00, 0x0000, "Game Points" )
488 	PORT_DIPSETTING(      0x0800, "3000" )
489 	PORT_DIPSETTING(      0x0400, "4000" )
490 	PORT_DIPSETTING(      0x0000, "5000" )
491 	PORT_DIPSETTING(      0x0c00, "7000" )
492 	PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unused ) )
493 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
494 	PORT_DIPSETTING(      0x2000, DEF_STR( On ) )
495 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) )
496 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
497 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
498 	PORT_DIPNAME( 0x9000, 0x0000, DEF_STR( Coinage ) )
499 	PORT_DIPSETTING(      0x9000, "1C/1C (2C per player)" )
500 	PORT_DIPSETTING(      0x0000, "1C/1C (1C per player)" )
501 	PORT_DIPSETTING(      0x8000, "1C/1C (1C for 2 players)" )
502 	PORT_DIPSETTING(      0x1000, "1C/3C (1C per player)" )
503 INPUT_PORTS_END
504 
505 /******************************************************************************/
506 /* Splendor Blast Port Map*/
507 
508 INPUT_PORTS_START( splndrbt )
509 	PORT_START
510 	EQUITES_PLAYER_INPUT_LSB( IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN, IPT_START1 )
511 	EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN, IPT_START2 )
512 
513 	PORT_START
514 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
515 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_COIN2 )
516 #if EASY_TEST_MODE
517 	PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
518 #endif
519 	PORT_DIPNAME( 0x0c00, 0x0000, DEF_STR ( Difficulty ) )
520 	PORT_DIPSETTING(      0x0400, "Easy" )
521 	PORT_DIPSETTING(      0x0000, "Normal" )
522 	PORT_DIPSETTING(      0x0800, "Hard" )
523 	PORT_DIPSETTING(      0x0c00, "Hardest" )
524 	PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Demo_Sounds ) )
525 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
526 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
527 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Cabinet ) )
528 	PORT_DIPSETTING(      0x2000, DEF_STR( Upright ) )
529 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )
530 	PORT_DIPNAME( 0xc000, 0x0000, DEF_STR( Coinage ) )
531 	PORT_DIPSETTING(      0xc000, "A 2C/1C B 3C/1C" )
532 	PORT_DIPSETTING(      0x0000, "A 1C/1C B 2C/1C" )
533 	PORT_DIPSETTING(      0x4000, "A 1C/2C B 1C/4C" )
534 	PORT_DIPSETTING(      0x8000, "A 1C/3C B 1C/6C" )
535 INPUT_PORTS_END
536 
537 /******************************************************************************/
538 /* High Voltage Port Map*/
539 
540 INPUT_PORTS_START( hvoltage )
541 	PORT_START
542 	EQUITES_PLAYER_INPUT_LSB( IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN, IPT_START1 )
543 	EQUITES_PLAYER_INPUT_MSB( IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN, IPT_START2 )
544 
545 	PORT_START
546 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_COIN1 )
547 	PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_COIN2 )
548 #if EASY_TEST_MODE
549 	PORT_SERVICE( 0x0300, IP_ACTIVE_HIGH )
550 #endif
551 #if HVOLTAGE_HACK
552 	PORT_DIPNAME( 0x0400, 0x0000, "Invulnerability" )
553 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
554 	PORT_DIPSETTING(      0x0400, DEF_STR( On ) )
555 	PORT_DIPNAME( 0x0800, 0x0000, "Need to kill Bosses" )
556 	PORT_DIPSETTING(      0x0800, DEF_STR( No ) )
557 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
558 #else
559 	PORT_DIPNAME( 0x0c00, 0x0000, DEF_STR ( Difficulty ) )
560 	PORT_DIPSETTING(      0x0400, "Easy" )
561 	PORT_DIPSETTING(      0x0000, "Normal" )
562 	PORT_DIPSETTING(      0x0800, "Hard" )
563 	PORT_DIPSETTING(      0x0c00, "Hardest" )
564 #endif
565 	PORT_DIPNAME( 0x1000, 0x0000, DEF_STR ( Lives ) )			/* See notes*/
566 	PORT_DIPSETTING(      0x0000, "3" )
567 	PORT_DIPSETTING(      0x1000, "5" )
568 	PORT_DIPNAME( 0x2000, 0x0000, DEF_STR ( Bonus_Life ) )
569 	PORT_DIPSETTING(      0x0000, "50k, 100k then every 100k" )
570 	PORT_DIPSETTING(      0x2000, "50k, 200k then every 100k" )
571 	PORT_DIPNAME( 0xc000, 0x0000, DEF_STR( Coinage ) )			/* See notes*/
572 	PORT_DIPSETTING(      0xc000, "A 2C/1C B 3C/1C" )
573 	PORT_DIPSETTING(      0x0000, "A 1C/1C B 2C/1C" )
574 	PORT_DIPSETTING(      0x4000, "A 1C/2C B 1C/4C" )
575 	PORT_DIPSETTING(      0x8000, "A 1C/3C B 1C/6C" )
576 
577 #if HVOLTAGE_HACK
578 	/* Fake port to handle debug mode */
579 	PORT_START
580 	PORT_DIPNAME( 0xffff, 0xffff, "Debug Mode" )
581 	PORT_DIPSETTING(      0xffff, DEF_STR( Off ) )
582 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
583 #endif
584 INPUT_PORTS_END
585 
586 /******************************************************************************/
587 /* Graphics Layouts*/
588 
589 /* Equites Hardware*/
590 static struct GfxLayout eq_charlayout =
591 {
592 	8, 8,
593 	256,
594 	2,
595 	{ 0, 4 },
596 	{ 8*8+3, 8*8+2, 8*8+1, 8*8, 3, 2, 1, 0 },
597 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
598 	16*8
599 };
600 
601 static struct GfxLayout eq_tilelayout =
602 {
603 	16, 16,
604 	256,
605 	3,
606 	{ 0, 0x4000*8, 0x4000*8+4 },
607 	{
608 	  128*1+3, 128*1+2, 128*1+1, 128*1+0,
609 	  128*2+3, 128*2+2, 128*2+1, 128*2+0,
610 	  128*3+3, 128*3+2, 128*3+1, 128*3+0,
611 	        3,       2,       1,       0
612 	},
613 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
614 	64*8
615 };
616 
617 static struct GfxLayout eq_spritelayout =
618 {
619 	16, 14,
620 	256,
621 	3,
622 	{ 0, 0x4000*8, 0x4000*8+4 },
623 	{
624 	        3,       2,       1,       0,
625 	  128*1+3, 128*1+2, 128*1+1, 128*1+0,
626 	  128*2+3, 128*2+2, 128*2+1, 128*2+0,
627 	  128*3+3, 128*3+2, 128*3+1, 128*3+0
628 	},
629 	{ 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8 },
630 	64*8
631 };
632 
633 static struct GfxDecodeInfo equites_gfxdecodeinfo[] =
634 {
635 	{ REGION_GFX1, 0, &eq_charlayout,     0, 32 }, /* chars*/
636 	{ REGION_GFX2, 0, &eq_tilelayout,   128, 16 }, /* tile set0*/
637 	{ REGION_GFX3, 0, &eq_tilelayout,   128, 16 }, /* tile set1*/
638 	{ REGION_GFX4, 0, &eq_spritelayout, 256, 16 }, /* sprite set0*/
639 	{ REGION_GFX5, 0, &eq_spritelayout, 256, 16 }, /* sprite set1*/
640 	{ -1 } /* end of array*/
641 };
642 
643 /* Splendor Blast Hardware*/
644 static struct GfxLayout sp_charlayout =
645 {
646 	8, 8,
647 	512,
648 	2,
649 	{ 0, 4 },
650 	{ 8*8+3, 8*8+2, 8*8+1, 8*8, 3, 2, 1, 0 },
651 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
652 	16*8
653 };
654 
655 static struct GfxLayout sp_tilelayout =
656 {
657 	16,16,
658 	256,
659 	2,
660 	{ 0, 4 },
661 	{
662 	  16*8+3, 16*8+2, 16*8+1, 16*8+0,
663 	  32*8+3, 32*8+2, 32*8+1, 32*8+0,
664 	  48*8+3, 48*8+2, 48*8+1, 48*8+0,
665 	       3,      2,      1,      0
666 	},
667 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
668 	64*8
669 };
670 
671 static struct GfxLayout sp_spritelayout =
672 {
673 	32,32,
674 	128,
675 	3,
676 	{ 0, 0x8000*8, 0x8000*8+4 },
677 	{
678 	  0*8+3, 0*8+2, 0*8+1, 0*8+0, 1*8+3, 1*8+2, 1*8+1, 1*8+0,
679 	  2*8+3, 2*8+2, 2*8+1, 2*8+0, 3*8+3, 3*8+2, 3*8+1, 3*8+0,
680 	  4*8+3, 4*8+2, 4*8+1, 4*8+0, 5*8+3, 5*8+2, 5*8+1, 5*8+0,
681 	  6*8+3, 6*8+2, 6*8+1, 6*8+0, 7*8+3, 7*8+2, 7*8+1, 7*8+0
682 	},
683 	{
684 	  0*8*8, 1*8*8, 2*8*8, 3*8*8, 4*8*8, 5*8*8, 6*8*8, 7*8*8,
685 	  8*8*8, 9*8*8,10*8*8,11*8*8,12*8*8,13*8*8,14*8*8,15*8*8,
686 	 31*8*8,30*8*8,29*8*8,28*8*8,27*8*8,26*8*8,25*8*8,24*8*8,
687 	 23*8*8,22*8*8,21*8*8,20*8*8,19*8*8,18*8*8,17*8*8,16*8*8
688 	},
689 	8*32*8
690 };
691 
692 static struct GfxDecodeInfo splndrbt_gfxdecodeinfo[] =
693 {
694 	{ REGION_GFX1, 0, &sp_charlayout,     0, 256/4 }, /* 512 4-color chars*/
695 	{ REGION_GFX2, 0, &sp_tilelayout,   256, 256/4 }, /* 256 4-color tiles*/
696 	{ REGION_GFX3, 0, &sp_tilelayout,   256, 256/4 }, /* 256 4-color tiles*/
697 	{ REGION_GFX4, 0, &sp_spritelayout, 512, 256/8 }, /* 256 8-color sprites*/
698 	{ -1 } /* end of array*/
699 };
700 
701 /******************************************************************************/
702 /* Hardware Definitions*/
703 
704 static MACHINE_DRIVER_START( equites )
705 
706 	/* basic machine hardware */
707 	MDRV_CPU_ADD(M68000, 12000000/2) /* OSC: 12Mhz*/
MDRV_CPU_MEMORY(equites_readmem,equites_writemem)708 	MDRV_CPU_MEMORY(equites_readmem, equites_writemem)
709 	MDRV_CPU_VBLANK_INT(equites_interrupt, 2)
710 
711 	MDRV_FRAMES_PER_SECOND(60)
712 	MDRV_VBLANK_DURATION(600)
713 
714 	/* video hardware */
715 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK)
716 	MDRV_SCREEN_SIZE(256 +BMPAD*2, 256 +BMPAD*2)
717 	MDRV_VISIBLE_AREA(0 +BMPAD, 256-1 +BMPAD, 24 +BMPAD, 232-1 +BMPAD)
718 	MDRV_PALETTE_LENGTH(256)
719 	MDRV_COLORTABLE_LENGTH(384)
720 	MDRV_GFXDECODE(equites_gfxdecodeinfo)
721 
722 	MDRV_PALETTE_INIT(equites)
723 	MDRV_VIDEO_START(equites)
724 	MDRV_VIDEO_UPDATE(equites)
725 
726 	/* sound hardware */
727 	EQUITES_ADD_SOUNDBOARD7
728 
729 MACHINE_DRIVER_END
730 
731 static MACHINE_DRIVER_START( splndrbt )
732 
733 	/* basic machine hardware */
734 	MDRV_CPU_ADD(M68000, 12000000/2) /* OSC: 12Mhz*/
735 	MDRV_CPU_MEMORY(splndrbt_readmem, splndrbt_writemem)
736 	MDRV_CPU_VBLANK_INT(splndrbt_interrupt, 2)
737 
738 	MDRV_FRAMES_PER_SECOND(60)
739 	MDRV_VBLANK_DURATION(600)
740 	MDRV_MACHINE_INIT(splndrbt)
741 
742 	/* video hardware */
743 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK)
744 	MDRV_SCREEN_SIZE(256, 256)
745 	MDRV_VISIBLE_AREA(0, 256-1, 64, 256-1)
746 	MDRV_PALETTE_LENGTH(256)
747 	MDRV_COLORTABLE_LENGTH(1536)
748 	MDRV_GFXDECODE(splndrbt_gfxdecodeinfo)
749 
750 	MDRV_PALETTE_INIT(splndrbt)
751 	MDRV_VIDEO_START(splndrbt)
752 	MDRV_VIDEO_UPDATE(splndrbt)
753 
754 	/* sound hardware */
755 	EQUITES_ADD_SOUNDBOARD7
756 
757 MACHINE_DRIVER_END
758 
759 /******************************************************************************/
760 /* Equites ROM Map*/
761 
762 ROM_START( equites )
763 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 68000 ROMs*/
764 	ROM_LOAD16_BYTE( "ep1", 0x00001, 0x2000, CRC(6a4fe5f7) SHA1(5ff1594a2cee28cc7d59448eb57473088ac6f14b) )
765 	ROM_LOAD16_BYTE( "ep5", 0x00000, 0x2000, CRC(00faa3eb) SHA1(6b31d041ad4ca81eda36487f659997cc4030f23c) )
766 	ROM_LOAD16_BYTE( "epr-ep2.12d", 0x04001, 0x2000, CRC(0c1bc2e7) SHA1(4c3510dfeee2fb2f295a32e2fe2021c4c7f08e8a) )
767 	ROM_LOAD16_BYTE( "epr-ep6.12b", 0x04000, 0x2000, CRC(bbed3dcc) SHA1(46ef2c60ccfa76a187b19dc0b7e6c594050b183f) )
768 	ROM_LOAD16_BYTE( "epr-ep3.10d", 0x08001, 0x2000, CRC(5f2d059a) SHA1(03fe904a445cce89462788fecfd61ac53f4dd17f) )
769 	ROM_LOAD16_BYTE( "epr-ep7.10b", 0x08000, 0x2000, CRC(a8f6b8aa) SHA1(ee4edb54c147a95944482e998616b025642a268a) )
770 	ROM_LOAD16_BYTE( "ep4",  0x0c001, 0x2000, CRC(b636e086) SHA1(5fc23a86b6051ecf6ff3f95f810f0eb471a203b0) )
771 	ROM_LOAD16_BYTE( "ep8",  0x0c000, 0x2000, CRC(d7ee48b0) SHA1(d0398704d8e89f2b0a9ed05e18f7c644d1e047c0) )
772 
773 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 ROMs*/
774 	ROM_LOAD( "ev1.1m", 0x00000, 0x2000, CRC(43faaf2e) SHA1(c9aaf298d673eb70399366776474f1b242549eb4) )
775 	ROM_LOAD( "ev2.1l", 0x02000, 0x2000, CRC(09e6702d) SHA1(896771f73a486e5035909eeed9ef48103d81d4ae) )
776 	ROM_LOAD( "ev3.1k", 0x04000, 0x2000, CRC(10ff140b) SHA1(7c28f988a9c8b2a702d007096199e67b447a183c) )
777 	ROM_LOAD( "ev4.1h", 0x06000, 0x2000, CRC(b7917264) SHA1(e58345fda088b171fd348959de15082f3cb42514) )
778 
779 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars*/
780 	ROM_LOAD( "ep9",  0x00000, 0x1000, CRC(0325be11) SHA1(d95667b439e3d97b08efeaf08022348546a4f385) )
781 
782 	ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tile set1*/
783 	ROM_LOAD_NIB_HIGH( "eb5.7h",  0x00000, 0x2000, CRC(cbef7da5) SHA1(c5fcd2341ce5b039a15116fbd85796bb5ddc4701) )
784 	ROM_LOAD         ( "eb5.7h",  0x02000, 0x2000, CRC(cbef7da5) SHA1(c5fcd2341ce5b039a15116fbd85796bb5ddc4701) )
785 	ROM_LOAD         ( "eb1.7f",  0x04000, 0x2000, CRC(9a236583) SHA1(fcc4da2efe904f0178bd83fdee25d4752b9cc5ce) )
786 	ROM_LOAD         ( "eb2.8f",  0x06000, 0x2000, CRC(f0fb6355) SHA1(3c4c009f80e648d02767b29bb8d18f4de7b26d4e) )
787 
788 	ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* tile set2*/
789 	ROM_LOAD_NIB_HIGH( "eb6.8h",  0x00000, 0x2000, CRC(1e5e5475) SHA1(80ebe9326c628685faafb259f956a98ac435c809) )
790 	ROM_LOAD         ( "eb6.8h",  0x02000, 0x2000, CRC(1e5e5475) SHA1(80ebe9326c628685faafb259f956a98ac435c809) )
791 	ROM_LOAD         ( "eb3.10f", 0x04000, 0x2000, CRC(dbd0044b) SHA1(5611517bb0f54bfb0585eeca8af21fbfc2f65b2c) )
792 	ROM_LOAD         ( "eb4.11f", 0x06000, 0x2000, CRC(f8f8e600) SHA1(c7c97e4dc1f7a73694c98b2b1a3d7fa9f3317a2a) )
793 
794 	ROM_REGION( 0x8000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite set1*/
795 	ROM_LOAD_NIB_HIGH( "es5.5h",     0x00000, 0x2000, CRC(d5b82e6a) SHA1(956a1413426e53f8a735260e660805b04016ca8d) )
796 	ROM_LOAD         ( "es5.5h",     0x02000, 0x2000, CRC(d5b82e6a) SHA1(956a1413426e53f8a735260e660805b04016ca8d) )
797 	ROM_LOAD         ( "es1.5f",     0x04000, 0x2000, CRC(cf81a2cd) SHA1(a1b45451cafeaceabe3dfe24eb073098a33ab22b) )
798 	ROM_LOAD         ( "es2.4f",     0x06000, 0x2000, CRC(ae3111d8) SHA1(d63633b531339fa04af757f42e956b8eb1debc4e) )
799 
800 	ROM_REGION( 0x8000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprite set2*/
801 	ROM_LOAD_NIB_HIGH( "es6.4h",     0x00000, 0x2000, CRC(cb4f5da9) SHA1(5af8f6aca0a3bb6417430e0179ec97c33d4014e3) )
802 	ROM_LOAD         ( "es6.4h",     0x02000, 0x2000, CRC(cb4f5da9) SHA1(5af8f6aca0a3bb6417430e0179ec97c33d4014e3) )
803 	ROM_LOAD         ( "es3.2f",     0x04000, 0x2000, CRC(3d44f815) SHA1(1835aef280a6915acbf7cad771d65bf1074f0f98) )
804 	ROM_LOAD         ( "es4.1f",     0x06000, 0x2000, CRC(16e6d18a) SHA1(44f9045ad034808070cd6497a3b94c3d8cc93262) )
805 
806 	ROM_REGION( 0x0300, REGION_PROMS, 0 ) /* RGB PROMs*/
807 	ROM_LOAD( "bprom.3a",  0x00000, 0x100, CRC(2fcdf217) SHA1(4acf67d37e844c2773028ecffe72a66754ed5bca) ) /* R*/
808 	ROM_LOAD( "bprom.1a",  0x00100, 0x100, CRC(d7e6cd1f) SHA1(ce330e43ba8a97ab79040c053a25e46e8fe60bdb) ) /* G*/
809 	ROM_LOAD( "bprom.2a",  0x00200, 0x100, CRC(e3d106e8) SHA1(6b153eb8140d36b4d194e26106a5ba5bffd1a851) ) /* B*/
810 
811 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* CLUT(same PROM x 4)*/
812 	ROM_LOAD( "bprom.6b",  0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
813 	ROM_LOAD( "bprom.7b",  0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
814 	ROM_LOAD( "bprom.9b",  0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
815 	ROM_LOAD( "bprom.10b", 0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
816 
817 	ROM_REGION( 0x0020, REGION_USER2, 0 ) /* MSM5232 PROM?*/
818 	ROM_LOAD( "bprom.3h",  0x00000, 0x020, CRC(33b98466) SHA1(017c73cf8c17dc5047c89316ae5b45f8d22092e8) )
819 ROM_END
820 
821 ROM_START( equitess )
822 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 68000 ROMs*/
823 	ROM_LOAD16_BYTE( "epr-ep1.13d", 0x00001, 0x2000, CRC(c6edf1cd) SHA1(21dba62e692f4fdc79155ce169a48ae827bd5994) )
824 	ROM_LOAD16_BYTE( "epr-ep5.13b", 0x00000, 0x2000, CRC(c11f0759) SHA1(5caf2b6b777b2fdabc26ea232225be2d789e87f3) )
825 	ROM_LOAD16_BYTE( "epr-ep2.12d", 0x04001, 0x2000, CRC(0c1bc2e7) SHA1(4c3510dfeee2fb2f295a32e2fe2021c4c7f08e8a) )
826 	ROM_LOAD16_BYTE( "epr-ep6.12b", 0x04000, 0x2000, CRC(bbed3dcc) SHA1(46ef2c60ccfa76a187b19dc0b7e6c594050b183f) )
827 	ROM_LOAD16_BYTE( "epr-ep3.10d", 0x08001, 0x2000, CRC(5f2d059a) SHA1(03fe904a445cce89462788fecfd61ac53f4dd17f) )
828 	ROM_LOAD16_BYTE( "epr-ep7.10b", 0x08000, 0x2000, CRC(a8f6b8aa) SHA1(ee4edb54c147a95944482e998616b025642a268a) )
829 	ROM_LOAD16_BYTE( "epr-ep4.9d",  0x0c001, 0x2000, CRC(956a06bd) SHA1(a716f9aaf0c32c522968f4ff13de904d6e8c7f98) )
830 	ROM_LOAD16_BYTE( "epr-ep8.9b",  0x0c000, 0x2000, CRC(4c78d60d) SHA1(207a82779e2fe3e9082f4fa09b87c713a51167e6) )
831 
832 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 ROMs*/
833 	ROM_LOAD( "ev1.1m", 0x00000, 0x2000, CRC(43faaf2e) SHA1(c9aaf298d673eb70399366776474f1b242549eb4) )
834 	ROM_LOAD( "ev2.1l", 0x02000, 0x2000, CRC(09e6702d) SHA1(896771f73a486e5035909eeed9ef48103d81d4ae) )
835 	ROM_LOAD( "ev3.1k", 0x04000, 0x2000, CRC(10ff140b) SHA1(7c28f988a9c8b2a702d007096199e67b447a183c) )
836 	ROM_LOAD( "ev4.1h", 0x06000, 0x2000, CRC(b7917264) SHA1(e58345fda088b171fd348959de15082f3cb42514) )
837 
838 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars*/
839 	ROM_LOAD( "epr-ep0.3e",  0x00000, 0x1000, CRC(3f5a81c3) SHA1(8fd5bc621f483bfa46be7e40e6480b25243bdf70) )
840 
841 	ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tile set1*/
842 	ROM_LOAD_NIB_HIGH( "eb5.7h",  0x00000, 0x2000, CRC(cbef7da5) SHA1(c5fcd2341ce5b039a15116fbd85796bb5ddc4701) )
843 	ROM_LOAD         ( "eb5.7h",  0x02000, 0x2000, CRC(cbef7da5) SHA1(c5fcd2341ce5b039a15116fbd85796bb5ddc4701) )
844 	ROM_LOAD         ( "eb1.7f",  0x04000, 0x2000, CRC(9a236583) SHA1(fcc4da2efe904f0178bd83fdee25d4752b9cc5ce) )
845 	ROM_LOAD         ( "eb2.8f",  0x06000, 0x2000, CRC(f0fb6355) SHA1(3c4c009f80e648d02767b29bb8d18f4de7b26d4e) )
846 
847 	ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* tile set2*/
848 	ROM_LOAD_NIB_HIGH( "eb6.8h",  0x00000, 0x2000, CRC(1e5e5475) SHA1(80ebe9326c628685faafb259f956a98ac435c809) )
849 	ROM_LOAD         ( "eb6.8h",  0x02000, 0x2000, CRC(1e5e5475) SHA1(80ebe9326c628685faafb259f956a98ac435c809) )
850 	ROM_LOAD         ( "eb3.10f", 0x04000, 0x2000, CRC(dbd0044b) SHA1(5611517bb0f54bfb0585eeca8af21fbfc2f65b2c) )
851 	ROM_LOAD         ( "eb4.11f", 0x06000, 0x2000, CRC(f8f8e600) SHA1(c7c97e4dc1f7a73694c98b2b1a3d7fa9f3317a2a) )
852 
853 	ROM_REGION( 0x8000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite set1*/
854 	ROM_LOAD_NIB_HIGH( "es5.5h",     0x00000, 0x2000, CRC(d5b82e6a) SHA1(956a1413426e53f8a735260e660805b04016ca8d) )
855 	ROM_LOAD         ( "es5.5h",     0x02000, 0x2000, CRC(d5b82e6a) SHA1(956a1413426e53f8a735260e660805b04016ca8d) )
856 	ROM_LOAD         ( "es1.5f",     0x04000, 0x2000, CRC(cf81a2cd) SHA1(a1b45451cafeaceabe3dfe24eb073098a33ab22b) )
857 	ROM_LOAD         ( "es2.4f",     0x06000, 0x2000, CRC(ae3111d8) SHA1(d63633b531339fa04af757f42e956b8eb1debc4e) )
858 
859 	ROM_REGION( 0x8000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprite set2*/
860 	ROM_LOAD_NIB_HIGH( "es6.4h",     0x00000, 0x2000, CRC(cb4f5da9) SHA1(5af8f6aca0a3bb6417430e0179ec97c33d4014e3) )
861 	ROM_LOAD         ( "es6.4h",     0x02000, 0x2000, CRC(cb4f5da9) SHA1(5af8f6aca0a3bb6417430e0179ec97c33d4014e3) )
862 	ROM_LOAD         ( "es3.2f",     0x04000, 0x2000, CRC(3d44f815) SHA1(1835aef280a6915acbf7cad771d65bf1074f0f98) )
863 	ROM_LOAD         ( "es4.1f",     0x06000, 0x2000, CRC(16e6d18a) SHA1(44f9045ad034808070cd6497a3b94c3d8cc93262) )
864 
865 	ROM_REGION( 0x0300, REGION_PROMS, 0 ) /* RGB PROMs*/
866 	ROM_LOAD( "bprom.3a",  0x00000, 0x100, CRC(2fcdf217) SHA1(4acf67d37e844c2773028ecffe72a66754ed5bca) ) /* R*/
867 	ROM_LOAD( "bprom.1a",  0x00100, 0x100, CRC(d7e6cd1f) SHA1(ce330e43ba8a97ab79040c053a25e46e8fe60bdb) ) /* G*/
868 	ROM_LOAD( "bprom.2a",  0x00200, 0x100, CRC(e3d106e8) SHA1(6b153eb8140d36b4d194e26106a5ba5bffd1a851) ) /* B*/
869 
870 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* CLUT(same PROM x 4)*/
871 	ROM_LOAD( "bprom.6b",  0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
872 	ROM_LOAD( "bprom.7b",  0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
873 	ROM_LOAD( "bprom.9b",  0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
874 	ROM_LOAD( "bprom.10b", 0x0000, 0x100, CRC(6294cddf) SHA1(c7a2854f62e31032df2b07fae3fb3b51ac6daac2) )
875 
876 	ROM_REGION( 0x0020, REGION_USER2, 0 ) /* MSM5232 PROM?*/
877 	ROM_LOAD( "bprom.3h",  0x00000, 0x020, CRC(33b98466) SHA1(017c73cf8c17dc5047c89316ae5b45f8d22092e8) )
878 ROM_END
879 
880 /******************************************************************************/
881 /* Koukouyakyuh ROM Map*/
882 
883 ROM_START( kouyakyu )
884 	ROM_REGION( 0x10000, REGION_CPU1, 0 )  /* 68000 ROMs*/
885 	ROM_LOAD16_BYTE( "epr-6704.bin", 0x00001, 0x2000, CRC(c7ac2292) SHA1(614bfb0949620d4c260768f14a116b076dd38438) )
886 	ROM_LOAD16_BYTE( "epr-6707.bin", 0x00000, 0x2000, CRC(9cb2962e) SHA1(bd1bcbc53a3346e22789f24a35ab3aa681317d02) )
887 	ROM_LOAD16_BYTE( "epr-6705.bin", 0x04001, 0x2000, CRC(985327cb) SHA1(86969fe763cbaa527d64de35844773b5ab1d7f83) )
888 	ROM_LOAD16_BYTE( "epr-6708.bin", 0x04000, 0x2000, CRC(f8863dc5) SHA1(bfdd294d51420dd70aa97942909a9b8a95ffc05c) )
889 	ROM_LOAD16_BYTE( "epr-6706.bin", 0x08001, 0x2000, BAD_DUMP CRC(79e94cd2) SHA1(f44c2292614b46116818fad9a7eb48cceeb3b819)  )	/* was bad, manually patched*/
890 	ROM_LOAD16_BYTE( "epr-6709.bin", 0x08000, 0x2000, CRC(f41cb58c) SHA1(f0d1048e949d51432739755f985e4df65b8e918b) )
891 	ROM_FILL(                        0x0c000, 0x4000, 0 )
892 
893 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 ROMs*/
894 	ROM_LOAD( "epr-6703.bin", 0x00000, 0x2000, CRC(fbff3a86) SHA1(4ed2887b1e4509ded853a230f735d4d2aa475886) )
895 	ROM_LOAD( "epr-6702.bin", 0x02000, 0x2000, CRC(27ddf031) SHA1(2f11d3b693e46852762669ed1e35a667990edec7) )
896 	ROM_LOAD( "epr-6701.bin", 0x04000, 0x2000, CRC(3c83588a) SHA1(a84c813ba9d464cffc855397aaacbb9177c86fb4) )
897 	ROM_LOAD( "epr-6700.bin", 0x06000, 0x2000, CRC(ee579266) SHA1(94dfcf506049fc78db00084ff7031d19520d9a85) )
898 	ROM_LOAD( "epr-6699.bin", 0x08000, 0x2000, CRC(9bfa4a72) SHA1(8ac4d308dab0d67a26b4e3550c2e8064aaf36a74) )
899 	ROM_LOAD( "epr-6698.bin", 0x0a000, 0x2000, CRC(7adfd1ff) SHA1(b543dd6734a681a187dabf602bea390de663039c) )
900 
901 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars*/
902 	ROM_LOAD( "epr-6710.bin", 0x00000, 0x1000, CRC(accda190) SHA1(265d2fd92574d65e7890e48d5f305bf903a67bc8) )
903 
904 	ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tile set1*/
905 	ROM_LOAD_NIB_HIGH( "epr-6695.bin", 0x00000, 0x2000, CRC(22bea465) SHA1(4860d7ee3c386cdacc9c608ffe74ec8bfa58edcb) )
906 	ROM_LOAD         ( "epr-6695.bin", 0x02000, 0x2000, CRC(22bea465) SHA1(4860d7ee3c386cdacc9c608ffe74ec8bfa58edcb) )
907 	ROM_LOAD         ( "epr-6689.bin", 0x04000, 0x2000, CRC(53bf7587) SHA1(0046cd04d11ce789ff69e0807700a624af96eb36) )
908 	ROM_LOAD         ( "epr-6688.bin", 0x06000, 0x2000, CRC(ceb76c5b) SHA1(81fa236871f10c77eb201e1c9771bd57406df15b) )
909 
910 	ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* tile set2*/
911 	ROM_LOAD_NIB_HIGH( "epr-6694.bin", 0x00000, 0x2000, CRC(51a7345e) SHA1(184c890559ed633e23cb459c313e6179cc3eb542) )
912 	ROM_LOAD         ( "epr-6694.bin", 0x02000, 0x2000, CRC(51a7345e) SHA1(184c890559ed633e23cb459c313e6179cc3eb542) )
913 	ROM_LOAD         ( "epr-6687.bin", 0x04000, 0x2000, CRC(9c1f49df) SHA1(1a5cf5278777f829d3654e838bd2bb9f4dbb57ba) )
914 	ROM_LOAD         ( "epr-6686.bin", 0x06000, 0x2000, CRC(3d9e516f) SHA1(498614821f87dbcc39edb1756e1af6b536044e6a) )
915 
916 	ROM_REGION( 0x8000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite set1*/
917 	ROM_LOAD_NIB_HIGH( "epr-6696.bin", 0x00000, 0x2000, CRC(0625f48e) SHA1(bea09ccf37f38678fb53c55bd0a79557d6c81b3f) )
918 	ROM_LOAD         ( "epr-6696.bin", 0x02000, 0x2000, CRC(0625f48e) SHA1(bea09ccf37f38678fb53c55bd0a79557d6c81b3f) )
919 	ROM_LOAD         ( "epr-6690.bin", 0x04000, 0x2000, CRC(a142a11d) SHA1(209c7e0591622434ada4445f3f8789059c5f4f77) )
920 	ROM_LOAD         ( "epr-6691.bin", 0x06000, 0x2000, CRC(b640568c) SHA1(8cef1387c469abec8b488621a94cc9575d6c5fcc) )
921 
922 	ROM_REGION( 0x8000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprite set2*/
923 	ROM_LOAD_NIB_HIGH( "epr-6697.bin", 0x00000, 0x2000, CRC(f18afabe) SHA1(abd7f6c0bd0de145c423166a2f4e86ccdb12b1ce) )
924 	ROM_LOAD         ( "epr-6697.bin", 0x02000, 0x2000, CRC(f18afabe) SHA1(abd7f6c0bd0de145c423166a2f4e86ccdb12b1ce) )
925 	ROM_LOAD         ( "epr-6692.bin", 0x04000, 0x2000, CRC(b91d8172) SHA1(8d8f6ea78ebf652f295ce96abf19e628fe777d07) )
926 	ROM_LOAD         ( "epr-6693.bin", 0x06000, 0x2000, CRC(874e3acc) SHA1(29438f196811fc2c8f54b6c47f1c175e4797dd4c) )
927 
928 	ROM_REGION( 0x0300, REGION_PROMS, 0 ) /* RGB PROMS*/
929 	ROM_LOAD( "pr6627.bpr",  0x00000, 0x100, CRC(5ec5480d) SHA1(f966a277539a5d257f32692cdd92ce44b08599e8) ) /* R*/
930 	ROM_LOAD( "pr6629.bpr",  0x00100, 0x100, CRC(29c7a393) SHA1(67cced39c0a80655c420aad668dfe836c1d7c643) ) /* G*/
931 	ROM_LOAD( "pr6628.bpr",  0x00200, 0x100, CRC(8af247a4) SHA1(01702fbce53dd4875e4825f0487e7aed9cf212fa) ) /* B*/
932 
933 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* CLUT(same PROM x 4)*/
934 	ROM_LOAD( "pr6630a.bpr", 0x0000, 0x100, CRC(d6e202da) SHA1(500ebd5c95d2d2c33535d25cf7f8f649897dc224) )
935 	ROM_LOAD( "pr6630b.bpr", 0x0000, 0x100, CRC(d6e202da) SHA1(500ebd5c95d2d2c33535d25cf7f8f649897dc224) )
936 	ROM_LOAD( "pr6630c.bpr", 0x0000, 0x100, CRC(d6e202da) SHA1(500ebd5c95d2d2c33535d25cf7f8f649897dc224) )
937 	ROM_LOAD( "pr6630d.bpr", 0x0000, 0x100, CRC(d6e202da) SHA1(500ebd5c95d2d2c33535d25cf7f8f649897dc224) )
938 
939 	ROM_REGION( 0x0020, REGION_USER2, 0 ) /* MSM5232 PROM?(identical to bprom.3h in Equites)*/
940 	ROM_LOAD( "pr.bpr",      0x00000, 0x020, CRC(33b98466) SHA1(017c73cf8c17dc5047c89316ae5b45f8d22092e8) )
941 ROM_END
942 
943 /******************************************************************************/
944 /* Bull Fighter ROM Map*/
945 
946 ROM_START( bullfgtr )
947 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 68000 ROMs*/
948 	ROM_LOAD16_BYTE( "m_d13.bin",  0x00001, 0x2000, CRC(7c35dd4b) SHA1(6bd604ee32c0c5db17f90e24aa254ec7072d27dd) )
949 	ROM_LOAD16_BYTE( "m_b13.bin",  0x00000, 0x2000, CRC(c4adddce) SHA1(48b6ddbad52a3941d3e651642b26d9adf70f71f5) )
950 	ROM_LOAD16_BYTE( "m_d12.bin",  0x04001, 0x2000, CRC(5d51be2b) SHA1(55d2718479cb71ceefefbaf40c14285e5603e526) )
951 	ROM_LOAD16_BYTE( "m_b12.bin",  0x04000, 0x2000, CRC(d98390ef) SHA1(17006503325627055c8b22052d7ed94e474f4ef7) )
952 	ROM_LOAD16_BYTE( "m_dd10.bin", 0x08001, 0x2000, CRC(21875752) SHA1(016db4125b1a4584ae277af427370780d96a17c5) )
953 	ROM_LOAD16_BYTE( "m_b10.bin",  0x08000, 0x2000, CRC(9d84f678) SHA1(32584d54788cb570bd5210992836f28ba9c87aac) )
954 	ROM_FILL(                      0x0c000, 0x4000, 0 )
955 
956 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 ROMs*/
957 	ROM_LOAD( "s_m1.bin", 0x00000, 0x2000, CRC(2a8e6fcf) SHA1(866903408e05938a982ffef4c9b849203c6cc060) )
958 	ROM_LOAD( "s_l2.bin", 0x02000, 0x2000, CRC(026e1533) SHA1(6271869a3faaafacfac35262746e87a83c158b93) )
959 	ROM_LOAD( "s_k1.bin", 0x04000, 0x2000, CRC(51ee751c) SHA1(60bf848dfdfe313ab05df5a5c05819b0fa87ca50) )
960 	ROM_LOAD( "s_h1.bin", 0x06000, 0x2000, CRC(62c7a25b) SHA1(237d3cbdfbf45b33c2f65d30faba151380866a93) )
961 
962 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars*/
963 	ROM_LOAD( "m_e4.bin", 0x000000, 0x1000, CRC(c6894c9a) SHA1(0d5a55cded4fd833211bdc733a78c6c8423897de) )
964 
965 	ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tile set1*/
966 	ROM_LOAD_NIB_HIGH( "l_h7.bin",  0x00000, 0x2000, CRC(6d05e9f2) SHA1(4b5c92b72bf73a08a2359fe889a327a696a45e8a) )
967 	ROM_LOAD         ( "l_h7.bin",  0x02000, 0x2000, CRC(6d05e9f2) SHA1(4b5c92b72bf73a08a2359fe889a327a696a45e8a) )
968 	ROM_LOAD         ( "l_f7.bin",  0x04000, 0x2000, CRC(4352d069) SHA1(bac687f050837b023da00cb53bb524b2a76310d4) )
969 	ROM_LOAD         ( "l_f9.bin",  0x06000, 0x2000, CRC(24edfd7d) SHA1(be8a40d8d5ccff06f37c1ab67341f56e41a5ea88) )
970 
971 	ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* tile set2*/
972 	ROM_LOAD_NIB_HIGH( "l_h9.bin",  0x00000, 0x2000, CRC(016340ae) SHA1(f980d39337c711a15520388967ca4503e7970e18) )
973 	ROM_LOAD         ( "l_h9.bin",  0x02000, 0x2000, CRC(016340ae) SHA1(f980d39337c711a15520388967ca4503e7970e18) )
974 	ROM_LOAD         ( "l_f10.bin", 0x04000, 0x2000, CRC(4947114e) SHA1(822dc3f14b71dc9e5b69078aefbed6b438aa0690) )
975 	ROM_LOAD         ( "l_f12.bin", 0x06000, 0x2000, CRC(fa296cb3) SHA1(2ba864766655cb3dd2999a6cdf96dcefd6818135) )
976 
977 	ROM_REGION( 0x8000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite set1*/
978 	ROM_LOAD_NIB_HIGH( "l_h6.bin",  0x00000, 0x2000, CRC(48394389) SHA1(a5c6021b60226a775b2052909e8d21b5f79d9ec5) )
979 	ROM_LOAD         ( "l_h6.bin",  0x02000, 0x2000, CRC(48394389) SHA1(a5c6021b60226a775b2052909e8d21b5f79d9ec5) )
980 	ROM_LOAD         ( "l_f6.bin",  0x04000, 0x2000, CRC(7c69b473) SHA1(abc181b4e5b3f48c667a0bb4814c3818dfc6e9e2) )
981 	ROM_LOAD         ( "l_f4.bin",  0x06000, 0x2000, CRC(c3dc713f) SHA1(c2072cc71ea61e0c718c339bda1460d93343469e) )
982 
983 	ROM_REGION( 0x8000, REGION_GFX5, ROMREGION_DISPOSE ) /* sprite set2*/
984 	ROM_LOAD_NIB_HIGH( "l_h4.bin",  0x00000, 0x2000, CRC(141409ec) SHA1(3cc542fa34fdbd71e392c7c22da5d5120642be86) )
985 	ROM_LOAD         ( "l_h4.bin",  0x02000, 0x2000, CRC(141409ec) SHA1(3cc542fa34fdbd71e392c7c22da5d5120642be86) )
986 	ROM_LOAD         ( "l_f3.bin",  0x04000, 0x2000, CRC(883f93fd) SHA1(a96df701f82e62582522953830049d29bcb3d458) )
987 	ROM_LOAD         ( "l_f1.bin",  0x06000, 0x2000, CRC(578ace7b) SHA1(933e85d49db7b27fd85e4713f0984612bc29e134) )
988 
989 	/* all color PROMs of current dump are bad and have wrong sizes*/
990 	ROM_REGION( 0x0300, REGION_PROMS, 0 ) /* RGB PROMs*/
991 	ROM_LOAD( "m_a3.bin", 0x00000, 0x100, BAD_DUMP CRC(8203ee60) SHA1(5bf5e54615c77945365c39d6ae95586ae187ebed)  ) /* R (made up, dump was bad)*/
992 	ROM_LOAD( "m_a1.bin", 0x00100, 0x100, BAD_DUMP CRC(2eb1a3de) SHA1(80b0e0f882210f2119d7ee307deb856dcc288352)  ) /* G (made up, dump was bad)*/
993 	ROM_LOAD( "m_a2.bin", 0x00200, 0x100, BAD_DUMP CRC(2e769d4c) SHA1(4de42319aed5073e88742c006b641efdd52cac80)  ) /* B (made up, dump was bad)*/
994 
995 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* CLUT(same PROM x 4)*/
996 	ROM_LOAD( "l_b6.bin",  0x0000, 0x100, CRC(8835a069) SHA1(bc8d4130d4fa0f16bb2511ac66b84d53218042a3) )
997 	ROM_LOAD( "l_b7.bin",  0x0000, 0x100, CRC(8835a069) SHA1(bc8d4130d4fa0f16bb2511ac66b84d53218042a3) )
998 	ROM_LOAD( "l_b9.bin",  0x0000, 0x100, CRC(8835a069) SHA1(bc8d4130d4fa0f16bb2511ac66b84d53218042a3) )
999 	ROM_LOAD( "l_b10.bin", 0x0000, 0x100, CRC(8835a069) SHA1(bc8d4130d4fa0f16bb2511ac66b84d53218042a3) )
1000 
1001 	ROM_REGION( 0x0020, REGION_USER2, 0 ) /* MSM5232 PROMs?(identical to bprom.3h in Equites)*/
1002 	ROM_LOAD( "s_h3.bin",  0x00000, 0x020, CRC(33b98466) SHA1(017c73cf8c17dc5047c89316ae5b45f8d22092e8) )
1003 ROM_END
1004 
1005 /******************************************************************************/
1006 /* Splendor Blast ROM Map*/
1007 
1008 ROM_START( splndrbt )
1009 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 68000 ROMs(16k x 4)*/
1010 	ROM_LOAD16_BYTE( "1.16a", 0x00001, 0x4000, CRC(4bf4b047) SHA1(ef0efffa2f49905e17e4ed3a03cac419793b26d1) )
1011 	ROM_LOAD16_BYTE( "2.16c", 0x00000, 0x4000, CRC(27acb656) SHA1(5f2f8d05f2f1c6c92c8364e9e6831ca525cbacd0) )
1012 	ROM_LOAD16_BYTE( "3.15a", 0x08001, 0x4000, CRC(5b182189) SHA1(50ebb1fddcb6838442e8a20261f200f3386ce8a8) )
1013 	ROM_LOAD16_BYTE( "4.15c", 0x08000, 0x4000, CRC(cde99613) SHA1(250b59f75eee84442da3cc7c599d1e16f0294df9) )
1014 
1015 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 ROMs(8k x 4)*/
1016 	ROM_LOAD( "1_v.1m", 0x00000, 0x2000, CRC(1b3a6e42) SHA1(41a4f0503c939ec0a739c8bc6bf3c8fc354912ee) )
1017 	ROM_LOAD( "2_v.1l", 0x02000, 0x2000, CRC(2a618c72) SHA1(6ad459d94352c317150ae6344d4db9bb613938dd) )
1018 	ROM_LOAD( "3_v.1k", 0x04000, 0x2000, CRC(bbee5346) SHA1(753cb784b04f081fa1f8590dc28056d9918f313b) )
1019 	ROM_LOAD( "4_v.1h", 0x06000, 0x2000, CRC(10f45af4) SHA1(00fa599bad8bf3ba6deee54165f381403096e8f9) )
1020 
1021 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) /* 512 chars(8k x 1)*/
1022 	ROM_LOAD( "10.8c",  0x00000, 0x2000, CRC(501887d4) SHA1(3cf4401d6fddff1500066219a71ac3b30ecbdd28) )
1023 
1024 	ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) /* 256 tiles(16k x 1)*/
1025 	ROM_LOAD( "8.14m",  0x00000, 0x4000, CRC(c2c86621) SHA1(a715c70ace98502f2c0d4a81539cd79d19e9b6c4) )
1026 
1027 	ROM_REGION( 0x4000, REGION_GFX3, ROMREGION_DISPOSE ) /* 256 tiles(16k x 1)*/
1028 	ROM_LOAD( "9.12m",  0x00000, 0x4000, CRC(4f7da6ff) SHA1(0516271df4a36d6ea38d1b8a5e471e1d2a79e8c1) )
1029 
1030 	ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 256 sprites*/
1031 	ROM_LOAD_NIB_HIGH( "6.18n", 0x00000, 0x2000, CRC(aa72237f) SHA1(0a26746a6c448a7fb853ef708e2bdeb76edd99cf) )
1032 	ROM_CONTINUE     (          0x04000, 0x2000 )
1033 	ROM_LOAD         ( "6.18n", 0x02000, 0x2000, CRC(aa72237f) SHA1(0a26746a6c448a7fb853ef708e2bdeb76edd99cf) )
1034 	ROM_CONTINUE     (          0x06000, 0x2000 )
1035 	ROM_LOAD         ( "5.18m", 0x08000, 0x4000, CRC(5f618b39) SHA1(2891067e71b8e1183ee5741487faa1561316cade) )
1036 	ROM_LOAD         ( "7.17m", 0x0c000, 0x4000, CRC(abdd8483) SHA1(df8c8338c24fa487c49b01ce26db7eb28c8c6b85) )
1037 
1038 	ROM_REGION( 0x0300, REGION_PROMS, 0 ) /* RGB PROMs*/
1039 	ROM_LOAD( "r.3a",   0x00000, 0x100, CRC(ca1f08ce) SHA1(e46e2850d3ee3c8cbb23c10645f07d406c7ff50b) ) /* R*/
1040 	ROM_LOAD( "g.1a",   0x00100, 0x100, CRC(66f89177) SHA1(caa51c1bf071764d5089487342794cbf023136c0) ) /* G*/
1041 	ROM_LOAD( "b.2a",   0x00200, 0x100, CRC(d14318bc) SHA1(e219963b3e40eb246e608fbe10daa85dbb4c1226) ) /* B*/
1042 
1043 	ROM_REGION( 0x0500, REGION_USER1, 0 ) /* CLUT(256bytes x 5)*/
1044 	ROM_LOAD( "2.8k",   0x00000, 0x100, CRC(e1770ad3) SHA1(e408b175b8fff934e07b0ded1ee21d7f91a9523d) )
1045 	ROM_LOAD( "s5.15p", 0x00100, 0x100, CRC(7f6cf709) SHA1(5938faf937b682dcc83e53444cbf5e0bd7741363) )
1046 	ROM_LOAD( "s3.8l",  0x00200, 0x100, CRC(1314b0b5) SHA1(31ef4b916110581390afc1ba90c5dca7c08c619f) ) /* unknown*/
1047 	ROM_LOAD( "1.9j",   0x00300, 0x100, CRC(f5b9b777) SHA1(a4ec731be77306db6baf319391c4fe78517fe43e) ) /* unknown*/
1048 	ROM_LOAD( "4.7m",   0x00400, 0x100, CRC(12cbcd2c) SHA1(a7946820bbf3f7e110a328b673123988af97ce7e) ) /* unknown*/
1049 
1050 	ROM_REGION( 0x2000, REGION_USER2, 0 ) /* unknown(8k x 1)*/
1051 	ROM_LOAD( "0.8h",   0x00000, 0x2000, CRC(12681fb5) SHA1(7a0930819d4cd00475d1897128daa6ac865e07d0) )
1052 
1053 	ROM_REGION( 0x0020, REGION_USER3, 0 ) /* MSM5232 PROMs?(identical to bprom.3h in Equites)*/
1054 	ROM_LOAD( "3h.bpr", 0x00000, 0x020, CRC(33b98466) SHA1(017c73cf8c17dc5047c89316ae5b45f8d22092e8) )
1055 ROM_END
1056 
1057 /******************************************************************************/
1058 /* High Voltage ROM Map*/
1059 
1060 ROM_START( hvoltage )
1061 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 68000 ROMs(16k x 4)*/
1062 	ROM_LOAD16_BYTE( "1.16a", 0x00001, 0x4000, CRC(82606e3b) SHA1(25c3172928d8f1eda2c4c757d505fdfd91f21ea1) )
1063 	ROM_LOAD16_BYTE( "2.16c", 0x00000, 0x4000, CRC(1d74fef2) SHA1(3df3dc98a78a137da8c5cddf6a8519b477824fb9) )
1064 	ROM_LOAD16_BYTE( "3.15a", 0x08001, 0x4000, CRC(677abe14) SHA1(78b343122f9ad187c823bf49e8f001288c762586) )
1065 	ROM_LOAD16_BYTE( "4.15c", 0x08000, 0x4000, CRC(8aab5a20) SHA1(fb90817173ad69c0e00d03814b4e10b18955c07e) )
1066 
1067 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 ROMs(8k x 3)*/
1068 	ROM_LOAD( "5_v.1l", 0x00000, 0x4000, CRC(ed9bb6ea) SHA1(73b0251b86835368ec2a4e98a5f61e28e58fd234) )
1069 	ROM_LOAD( "6_v.1h", 0x04000, 0x4000, CRC(e9542211) SHA1(482f2c90e842fe5cc31cc6a39025adf65ba47ce9) )
1070 	ROM_LOAD( "7_v.1e", 0x08000, 0x4000, CRC(44d38554) SHA1(6765971376eafa218fda1accb1e173a7c1850cc8) )
1071 
1072 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) /* 512 chars(8k x 1)*/
1073 	ROM_LOAD( "5.8c",   0x00000, 0x2000, CRC(656d53cd) SHA1(9971ed7e7da0e8bf46e97e8f75a2c2201b33fc2f) )
1074 
1075 	ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) /* 256 tiles(16k x 1)*/
1076 	ROM_LOAD( "9.14m",  0x00000, 0x4000, CRC(506a0989) SHA1(0e7f2c9bab5e83f06a8148f69d8d0cbfe7d55c5e) )
1077 
1078 	ROM_REGION( 0x4000, REGION_GFX3, ROMREGION_DISPOSE ) /* 256 tiles(16k x 1)*/
1079 	ROM_LOAD( "10.12m", 0x00000, 0x4000, CRC(98f87d4f) SHA1(94a7a14b0905597993595b347102436d97fc1dc9) )
1080 
1081 	ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 256 sprites*/
1082 	ROM_LOAD_NIB_HIGH( "8.18n", 0x00000, 0x2000, CRC(725acae5) SHA1(ba54598a087f8bb5fa7182b0e85d0e038003e622) )
1083 	ROM_CONTINUE     (          0x04000, 0x2000 )
1084 	ROM_LOAD         ( "8.18n", 0x02000, 0x2000, CRC(725acae5) SHA1(ba54598a087f8bb5fa7182b0e85d0e038003e622) )
1085 	ROM_CONTINUE     (          0x06000, 0x2000 )
1086 	ROM_LOAD         ( "6.18m", 0x08000, 0x4000, CRC(9baf2c68) SHA1(208e5ac8eb157d4bf949ab4330827da032a04235) )
1087 	ROM_LOAD         ( "7.17m", 0x0c000, 0x4000, CRC(12d25fb1) SHA1(99f5d68bd6d6ee5f2acb7685aceacfb0894c4961) )
1088 
1089 	ROM_REGION( 0x0300, REGION_PROMS, 0 ) /* RGB PROMs*/
1090 	ROM_LOAD( "r.3a",   0x00000, 0x100, CRC(98eccbf6) SHA1(a55755e8388d3edf3020b1129a638fe1e99362b6) ) /* R*/
1091 	ROM_LOAD( "g.1a",   0x00100, 0x100, CRC(fab2ed23) SHA1(6f63b6a3196dda76eb9a885b17d886a14365f922) ) /* G*/
1092 	ROM_LOAD( "b.2a",   0x00200, 0x100, CRC(7274961b) SHA1(d13070060e216d633675a528cf0dc3de94c95ffb) ) /* B*/
1093 
1094 	ROM_REGION( 0x0500, REGION_USER1, 0 ) /* CLUT(256bytes x 5)*/
1095 	ROM_LOAD( "2.8k",   0x00000, 0x100, CRC(685f4e44) SHA1(110cb8f5a37f22ce9d391bd0cd46dcbb8fcf66b8) )
1096 	ROM_LOAD( "s5.15p", 0x00100, 0x100, CRC(b09bcc73) SHA1(f8139feaa9563324b69aeac5c17beccfdbfa0864) )
1097 	ROM_LOAD( "3.8l",   0x00200, 0x100, CRC(1314b0b5) SHA1(31ef4b916110581390afc1ba90c5dca7c08c619f) ) /* unknown(identical to s3.8l in Splendor Blast)*/
1098 	ROM_LOAD( "1.9j",   0x00300, 0x100, CRC(f5b9b777) SHA1(a4ec731be77306db6baf319391c4fe78517fe43e) ) /* unknown(identical to 1.9j in Splendor Blast)*/
1099 	ROM_LOAD( "4.7m",   0x00400, 0x100, CRC(12cbcd2c) SHA1(a7946820bbf3f7e110a328b673123988af97ce7e) ) /* unknown(identical to 4.7m in Splendor Blast)*/
1100 
1101 	ROM_REGION( 0x2000, REGION_USER2, 0 ) /* unknown(8k x 1, identical to 0.8h in Splendor Blast )*/
1102 	ROM_LOAD( "0.8h",   0x00000, 0x2000, CRC(12681fb5) SHA1(7a0930819d4cd00475d1897128daa6ac865e07d0) )
1103 
1104 	ROM_REGION( 0x0020, REGION_USER3, 0 ) /* MSM5232 PROMs?(identical to bprom.3h in Equites)*/
1105 	ROM_LOAD( "3h.bpr", 0x00000, 0x020, CRC(33b98466) SHA1(017c73cf8c17dc5047c89316ae5b45f8d22092e8) )
1106 ROM_END
1107 
1108 /******************************************************************************/
1109 /* Initializations*/
1110 
1111 static void equites_init_common(void)
1112 {
1113 	equites_flip = 0;
1114 
1115 	equites_8404init();
1116 }
1117 
splndrbt_init_common(void)1118 static void splndrbt_init_common(void)
1119 {
1120 	equites_8404init();
1121 }
1122 
DRIVER_INIT(equites)1123 static DRIVER_INIT( equites )
1124 {
1125 	equites_id = 0x8400;
1126 
1127 	equites_init_common();
1128 
1129 	equites_8404rule(0x094a, 0x007, 0x04); /* 8404 test*/
1130 	equites_8404rule(0x094e, 0x049, 0x00); /* 8404 test*/
1131 
1132 	equites_8404rule(0x0c76, 0x00b, 0x04); /* death*/
1133 	equites_8404rule(0x0c7e, 0x0cf, 0x0c); /* 2nd jmp hi*/
1134 	equites_8404rule(0x0c84, 0x0d1, 0xae); /* 2nd jmp lo*/
1135 	equites_8404rule(0x0c8c, 0x0d3, 0x0c); /* 1st jmp hi*/
1136 	equites_8404rule(0x0c92, 0x0d5, 0x9c); /* 1st jmp lo*/
1137 
1138 	equites_8404rule(0x92a6, 0x00f, 0x04); /* respawn*/
1139 	equites_8404rule(0x92b0, 0x27d,-0x40); /* 2nd jmp hi*/
1140 	equites_8404rule(0x92b6, 0x27f,-0x04); /* 2nd jmp lo*/
1141 	equites_8404rule(0x92b0, 0x281,-0x50); /* 1st jmp hi*/
1142 	equites_8404rule(0x92b6, 0x283,-0x05); /* 1st jmp lo*/
1143 
1144 	equites_8404rule(0x8f06, 0x013, 0x04); /* ENT*/
1145 	equites_8404rule(0x8f0c, 0x481,-0x10); /* ENT jmpaddr hi*/
1146 	equites_8404rule(0x8f12, 0x483,-0x01); /* ENT jmpaddr lo*/
1147 
1148 	equites_8404rule(0x915e, 0x017, 0x04); /* EXT*/
1149 	equites_8404rule(0x9164, 0x47d,-0x20); /* scroll y*/
1150 	equites_8404rule(0x916a, 0x47f,-0x02); /* player y*/
1151 	equites_8404rule(0x9170, 0x481,-0x30); /* exit location hi*/
1152 	equites_8404rule(0x9176, 0x483,-0x03); /* exit location lo*/
1153 }
1154 
DRIVER_INIT(bullfgtr)1155 static DRIVER_INIT( bullfgtr )
1156 {
1157 	equites_id = 0x8401;
1158 
1159 	equites_init_common();
1160 
1161 	equites_8404rule(0x0e7a, 0x601, 0x00); /* boot up*/
1162 	equites_8404rule(0x3da4, 0x201, 0x0c); /* goal in*/
1163 }
1164 
DRIVER_INIT(kouyakyu)1165 static DRIVER_INIT( kouyakyu )
1166 {
1167 	equites_id = 0x8500;
1168 
1169 	equites_init_common();
1170 
1171 	equites_8404rule(0x5582, 0x603, 0x05); /* home run*/
1172 }
1173 
DRIVER_INIT(splndrbt)1174 static DRIVER_INIT( splndrbt )
1175 {
1176 	equites_id = 0x8510;
1177 
1178 	splndrbt_init_common();
1179 
1180 	equites_8404rule(0x06f8, 0x007, 0x04); /* 8404 test*/
1181 	equites_8404rule(0x06fc, 0x049, 0x00); /* 8404 test*/
1182 
1183 	equites_8404rule(0x12dc, 0x01b, 0x04); /* guard point*/
1184 	equites_8404rule(0x12e4, 0x01f, 0x04); /* guard point*/
1185 
1186 	equites_8404rule(0x0dc2, 0x00b, 0x04); /* guard point (start race)*/
1187 	equites_8404rule(0x0dd4, 0x5e1, 0x00); /* no. of addresses to look up - 1*/
1188 	equites_8404rule(0x0dd8, 0x5e3, 0x0c); /* race start/respawn addr hi*/
1189 	equites_8404rule(0x0dde, 0x5e5, 0x32); /* race start/respawn addr lo*/
1190 
1191 	equites_8404rule(0x1268, 0x023, 0x04); /* guard point*/
1192 
1193 	equites_8404rule(0x1298, 0x25f,-0x0c); /* stage number?*/
1194 
1195 	/* game params. (180261-18027f)->(40060-4006f)*/
1196 	equites_8404rule(0x12a0, 0x261, 0x0a); /* max speed hi*/
1197 	equites_8404rule(0x12a0, 0x263, 0x00); /* max speed lo*/
1198 	equites_8404rule(0x12a0, 0x265, 0x00); /* accel hi*/
1199 	equites_8404rule(0x12a0, 0x267, 0x10); /* accel lo*/
1200 	equites_8404rule(0x12a0, 0x269, 0x0c); /* max turbo speed hi*/
1201 	equites_8404rule(0x12a0, 0x26b, 0x00); /* max turbo speed lo*/
1202 	equites_8404rule(0x12a0, 0x26d, 0x00); /* turbo accel hi*/
1203 	equites_8404rule(0x12a0, 0x26f, 0x20); /* turbo accel lo*/
1204 	equites_8404rule(0x12a0, 0x271,-0x09); /* random enemy spwan list*/
1205 	equites_8404rule(0x12a0, 0x273,-0x09); /* .*/
1206 	equites_8404rule(0x12a0, 0x275,-0x09); /* .*/
1207 	equites_8404rule(0x12a0, 0x277,-0x09); /* .*/
1208 	equites_8404rule(0x12a0, 0x279,-0x09); /* .*/
1209 	equites_8404rule(0x12a0, 0x27b,-0x09); /* .*/
1210 	equites_8404rule(0x12a0, 0x27d,-0x09); /* .*/
1211 	equites_8404rule(0x12a0, 0x27f,-0x09); /* .*/
1212 
1213 	equites_8404rule(0x500e, 0x281,-0x08); /* power-up's (random?)*/
1214 	equites_8404rule(0x500e, 0x283,-0x08); /* power-up's (random?)*/
1215 
1216 	equites_8404rule(0x132e, 0x285,-0xa0); /* object spawn table addr hi*/
1217 	equites_8404rule(0x1334, 0x287,-0x0a); /* object spawn table addr lo*/
1218 
1219 	equites_8404rule(0x739a, 0x289,-0xb0); /* level section table addr hi*/
1220 	equites_8404rule(0x73a0, 0x28b,-0x0b); /* level section table addr lo*/
1221 
1222 	equites_8404rule(0x0912, 0x017, 0x04); /* guard point*/
1223 	equites_8404rule(0x0b4c, 0x013, 0x04); /* guard point*/
1224 
1225 	equites_8404rule(0x0bfc, 0x00f, 0x04); /* guard point (miss/no gas/end level)*/
1226 	equites_8404rule(0x0c08, 0x5e1, 0x05); /* no. of addresses to look up - 1*/
1227 	equites_8404rule(0x0c0c, 0x5e3,-0x70); /* game over/respawn addr hi*/
1228 	equites_8404rule(0x0c12, 0x5e5,-0x07); /* game over/respawn addr lo*/
1229 	equites_8404rule(0x0c0c, 0x5e7,-0x70); /* game over/respawn addr hi*/
1230 	equites_8404rule(0x0c12, 0x5e9,-0x07); /* game over/respawn addr lo*/
1231 	equites_8404rule(0x0c0c, 0x5eb,-0x70); /* game over/respawn addr hi*/
1232 	equites_8404rule(0x0c12, 0x5ed,-0x07); /* game over/respawn addr lo*/
1233 	equites_8404rule(0x0c0c, 0x5ef,-0x70); /* game over/respawn addr hi*/
1234 	equites_8404rule(0x0c12, 0x5f1,-0x07); /* game over/respawn addr lo*/
1235 	equites_8404rule(0x0c0c, 0x5f3,-0x70); /* game over/respawn addr hi*/
1236 	equites_8404rule(0x0c12, 0x5f5,-0x07); /* game over/respawn addr lo*/
1237 	equites_8404rule(0x0c0c, 0x5f7,-0x70); /* game over/respawn addr hi*/
1238 	equites_8404rule(0x0c12, 0x5f9,-0x07); /* game over/respawn addr lo*/
1239 }
1240 
DRIVER_INIT(hvoltage)1241 static DRIVER_INIT( hvoltage )
1242 {
1243 	int i;
1244 
1245 #if HVOLTAGE_HACK
1246 	install_mem_read16_handler(0, 0x000038, 0x000039, hvoltage_debug_r);
1247 #endif
1248 
1249 	equites_id = 0x8511;
1250 
1251 	splndrbt_init_common();
1252 
1253 	equites_8404rule(0x0b18, 0x007, 0x04); /* 8404 test*/
1254 	equites_8404rule(0x0b1c, 0x049, 0x00); /* 8404 test*/
1255 
1256 	for(i=0x07; i<0x47; i+=4) equites_8404rule(0x0c64, i, 0xff); /* checksum*/
1257 
1258 	equites_8404rule(0x0df6, 0x00f, 0x04); /* 1st gateway (init)*/
1259 	equites_8404rule(0x0e02, 0x247, 0x01); /* no. of addresses to look up - 1*/
1260 	equites_8404rule(0x0e06, 0x249, 0x10); /* addr hi*/
1261 	equites_8404rule(0x0e0c, 0x24b, 0x12); /* addr lo*/
1262 	equites_8404rule(0x0e06, 0x24d, 0x19); /* addr hi*/
1263 	equites_8404rule(0x0e0c, 0x24f, 0x96); /* addr lo*/
1264 
1265 	equites_8404rule(0x10fc, 0x017, 0x04); /* 2nd gateway (intro)*/
1266 	equites_8404rule(0x111e, 0x6a5, 0x00); /* no. of addresses to look up - 1*/
1267 	equites_8404rule(0x1122, 0x6a7, 0x11); /* addr hi*/
1268 	equites_8404rule(0x1128, 0x6a9, 0xa4); /* addr lo*/
1269 
1270 	equites_8404rule(0x0f86, 0x013, 0x04); /* 3rd gateway (miss)*/
1271 	equites_8404rule(0x0f92, 0x491, 0x03); /* no. of addresses to look up - 1*/
1272 	equites_8404rule(0x0f96, 0x493,-0x60); /* addr hi*/
1273 	equites_8404rule(0x0f9c, 0x495,-0x06); /* addr lo*/
1274 	equites_8404rule(0x0f96, 0x497,-0x60); /* addr hi*/
1275 	equites_8404rule(0x0f9c, 0x499,-0x06); /* addr lo*/
1276 	equites_8404rule(0x0f96, 0x49b,-0x60); /* addr hi*/
1277 	equites_8404rule(0x0f9c, 0x49d,-0x06); /* addr lo*/
1278 	equites_8404rule(0x0f96, 0x49f,-0x60); /* addr hi*/
1279 	equites_8404rule(0x0f9c, 0x4a1,-0x06); /* addr lo*/
1280 }
1281 
1282 /******************************************************************************/
1283 
1284 /* Game Entries*/
1285 
1286 /* Equites Hardware*/
1287 GAMEX( 1984, equites,  0,        equites,  equites,  equites,  ROT90, "Alpha Denshi Co.",                "Equites", GAME_UNEMULATED_PROTECTION | GAME_NO_COCKTAIL )
1288 GAMEX( 1984, equitess, equites,  equites,  equites,  equites,  ROT90, "Alpha Denshi Co. (Sega license)", "Equites (Sega)", GAME_UNEMULATED_PROTECTION | GAME_NO_COCKTAIL )
1289 GAMEX( 1984, bullfgtr, 0,        equites,  bullfgtr, bullfgtr, ROT90, "Alpha Denshi Co. (Sega license)", "Bull Fighter", GAME_UNEMULATED_PROTECTION | GAME_WRONG_COLORS )
1290 GAMEX( 1985, kouyakyu, 0,        equites,  kouyakyu, kouyakyu, ROT0,  "Alpha Denshi Co.",                "The Koukouyakyuh", GAME_UNEMULATED_PROTECTION )
1291 
1292 /* Splendor Blast Hardware*/
1293 GAMEX( 1985, splndrbt, 0,        splndrbt, splndrbt, splndrbt, ROT0,  "Alpha Denshi Co.", "Splendor Blast", GAME_UNEMULATED_PROTECTION | GAME_NO_COCKTAIL )
1294 GAMEX( 1985, hvoltage, 0,        splndrbt, hvoltage, hvoltage, ROT0,  "Alpha Denshi Co.", "High Voltage", GAME_UNEMULATED_PROTECTION )
1295 
1296 /******************************************************************************/
1297