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