1 /******************************************************************************
2 
3 	Game Driver for Video System Mahjong series.
4 
5 	Idol-Mahjong Final Romance (Japan)
6 	(c)1991 Video System Co.,Ltd.
7 
8 	Nekketsu Mahjong Sengen! AFTER 5 (Japan)
9 	(c)1991 Video System Co.,Ltd.
10 
11 	Mahjong Daiyogen (Japan)
12 	(c)1990 Video System Co.,Ltd.
13 
14 	Mahjong Fun Club - Idol Saizensen (Japan)
15 	(c)1989 Video System Co.,Ltd.
16 
17 	Mahjong Natsu Monogatari (Mahjong Summer Story) (Japan)
18 	(c)1989 Video System Co.,Ltd.
19 
20 	Natsuiro Mahjong (Mahjong Summer Story) (Japan)
21 	(c)1989 Video System Co.,Ltd.
22 
23 	Idol-Mahjong Housoukyoku (Japan)
24 	(c)1988 System Service Co.,Ltd.
25 
26 	Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)
27 	(c)1988 Video System Co.,Ltd.
28 
29 	Driver by Takahiro Nogi <nogi@kt.rim.or.jp> 2001/02/04 -
30 	and Nicola Salmoria, Aaron Giles
31 
32 ******************************************************************************/
33 /******************************************************************************
34 Memo:
35 
36 - 2player's input is not supported.
37 
38 - Communication between MAIN CPU and SUB CPU can be wrong.
39 
40 ******************************************************************************/
41 
42 #include "driver.h"
43 #include "cpu/z80/z80.h"
44 #include "vidhrdw/generic.h"
45 #include "fromance.h"
46 
47 
48 /* Local variables */
49 static UINT8 fromance_directionflag;
50 static UINT8 fromance_commanddata;
51 static UINT8 fromance_portselect;
52 
53 static UINT8 fromance_adpcm_reset;
54 static UINT8 fromance_adpcm_data;
55 static UINT8 fromance_vclk_left;
56 
57 
58 
59 /*************************************
60  *
61  *	Machine init
62  *
63  *************************************/
64 
MACHINE_INIT(fromance)65 static MACHINE_INIT( fromance )
66 {
67 	fromance_directionflag = 0;
68 	fromance_commanddata = 0;
69 	fromance_portselect = 0;
70 
71 	fromance_adpcm_reset = 0;
72 	fromance_adpcm_data = 0;
73 	fromance_vclk_left = 0;
74 }
75 
76 
77 
78 /*************************************
79  *
80  *	Master/slave communication
81  *
82  *************************************/
83 
READ_HANDLER(fromance_commanddata_r)84 static READ_HANDLER( fromance_commanddata_r )
85 {
86 	return fromance_commanddata;
87 }
88 
89 
deferred_commanddata_w(int data)90 static void deferred_commanddata_w(int data)
91 {
92 	fromance_commanddata = data;
93 	fromance_directionflag = 1;
94 }
95 
96 
WRITE_HANDLER(fromance_commanddata_w)97 static WRITE_HANDLER( fromance_commanddata_w )
98 {
99 	/* do this on a timer to let the slave CPU synchronize */
100 	timer_set(TIME_NOW, data, deferred_commanddata_w);
101 }
102 
103 
READ_HANDLER(fromance_busycheck_main_r)104 static READ_HANDLER( fromance_busycheck_main_r )
105 {
106 	/* set a timer to force synchronization after the read */
107 	timer_set(TIME_NOW, 0, NULL);
108 
109 	if (!fromance_directionflag) return 0x00;		/* standby*/
110 	else return 0xff;								/* busy*/
111 }
112 
113 
READ_HANDLER(fromance_busycheck_sub_r)114 static READ_HANDLER( fromance_busycheck_sub_r )
115 {
116 	if (fromance_directionflag) return 0xff;		/* standby*/
117 	else return 0x00;								/* busy*/
118 }
119 
120 
WRITE_HANDLER(fromance_busycheck_sub_w)121 static WRITE_HANDLER( fromance_busycheck_sub_w )
122 {
123 	fromance_directionflag = 0;
124 }
125 
126 
127 
128 /*************************************
129  *
130  *	Slave CPU ROM banking
131  *
132  *************************************/
133 
WRITE_HANDLER(fromance_rombank_w)134 static WRITE_HANDLER( fromance_rombank_w )
135 {
136 	unsigned char *ROM = memory_region(REGION_CPU2);
137 
138 	cpu_setbank(1, &ROM[0x010000 + (0x4000 * data)]);
139 }
140 
141 
142 
143 /*************************************
144  *
145  *	ADPCM interface
146  *
147  *************************************/
148 
WRITE_HANDLER(fromance_adpcm_reset_w)149 static WRITE_HANDLER( fromance_adpcm_reset_w )
150 {
151 	fromance_adpcm_reset = (data & 0x01);
152 	fromance_vclk_left = 0;
153 
154 	MSM5205_reset_w(0, !(data & 0x01));
155 }
156 
157 
WRITE_HANDLER(fromance_adpcm_w)158 static WRITE_HANDLER( fromance_adpcm_w )
159 {
160 	fromance_adpcm_data = data;
161 	fromance_vclk_left = 2;
162 }
163 
164 
fromance_adpcm_int(int irq)165 static void fromance_adpcm_int(int irq)
166 {
167 	/* skip if we're reset */
168 	if (!fromance_adpcm_reset)
169 		return;
170 
171 	/* clock the data through */
172 	if (fromance_vclk_left)
173 	{
174 		MSM5205_data_w(0, (fromance_adpcm_data >> 4));
175 		fromance_adpcm_data <<= 4;
176 		fromance_vclk_left--;
177 	}
178 
179 	/* generate an NMI if we're out of data */
180 	if (!fromance_vclk_left)
181 		cpu_set_nmi_line(1, PULSE_LINE);
182 }
183 
184 
185 
186 /*************************************
187  *
188  *	Input handlers
189  *
190  *************************************/
191 
WRITE_HANDLER(fromance_portselect_w)192 static WRITE_HANDLER( fromance_portselect_w )
193 {
194 	fromance_portselect = data;
195 }
196 
197 
READ_HANDLER(fromance_keymatrix_r)198 static READ_HANDLER( fromance_keymatrix_r )
199 {
200 	int ret = 0xff;
201 
202 	if (fromance_portselect & 0x01)
203 		ret &= readinputport(4);
204 	if (fromance_portselect & 0x02)
205 		ret &= readinputport(5);
206 	if (fromance_portselect & 0x04)
207 		ret &= readinputport(6);
208 	if (fromance_portselect & 0x08)
209 		ret &= readinputport(7);
210 	if (fromance_portselect & 0x10)
211 		ret &= readinputport(8);
212 
213 	return ret;
214 }
215 
216 
217 
218 /*************************************
219  *
220  *	Coin counters
221  *
222  *************************************/
223 
WRITE_HANDLER(fromance_coinctr_w)224 static WRITE_HANDLER( fromance_coinctr_w )
225 {
226 	/**/
227 }
228 
229 
230 
231 /*************************************
232  *
233  *	Master CPU memory handlers
234  *
235  *************************************/
236 
MEMORY_READ_START(nekkyoku_readmem_main)237 static MEMORY_READ_START( nekkyoku_readmem_main )
238 	{ 0x0000, 0xbfff, MRA_ROM },
239 	{ 0xc000, 0xdfff, MRA_RAM },
240 	{ 0xf000, 0xf000, input_port_0_r },
241 	{ 0xf001, 0xf001, fromance_keymatrix_r },
242 	{ 0xf002, 0xf002, input_port_1_r },
243 	{ 0xf003, 0xf003, fromance_busycheck_main_r },
244 	{ 0xf004, 0xf004, input_port_3_r },
245 	{ 0xf005, 0xf005, input_port_2_r },
246 MEMORY_END
247 
248 static MEMORY_WRITE_START( nekkyoku_writemem_main )
249 	{ 0x0000, 0xbfff, MWA_ROM },
250 	{ 0xc000, 0xdfff, MWA_RAM },
251 	{ 0xf000, 0xf000, fromance_portselect_w },
252 	{ 0xf001, 0xf001, MWA_NOP },
253 	{ 0xf002, 0xf002, fromance_coinctr_w },
254 	{ 0xf003, 0xf003, fromance_commanddata_w },
255 MEMORY_END
256 
257 
258 static MEMORY_READ_START( fromance_readmem_main )
259 	{ 0x0000, 0x7fff, MRA_ROM },
260 	{ 0xc000, 0xdfff, MRA_RAM },
261 	{ 0x9e89, 0x9e89, MRA_NOP },			/* unknown (idolmj)*/
262 	{ 0xe000, 0xe000, input_port_0_r },
263 	{ 0xe001, 0xe001, fromance_keymatrix_r },
264 	{ 0xe002, 0xe002, input_port_1_r },
265 	{ 0xe003, 0xe003, fromance_busycheck_main_r },
266 	{ 0xe004, 0xe004, input_port_3_r },
267 	{ 0xe005, 0xe005, input_port_2_r },
268 MEMORY_END
269 
270 static MEMORY_WRITE_START( fromance_writemem_main )
271 	{ 0x0000, 0x7fff, MWA_ROM },
272 	{ 0xc000, 0xdfff, MWA_RAM },
273 	{ 0xe000, 0xe000, fromance_portselect_w },
274 	{ 0xe002, 0xe002, fromance_coinctr_w },
275 	{ 0xe003, 0xe003, fromance_commanddata_w },
276 MEMORY_END
277 
278 
279 
280 /*************************************
281  *
282  *	Slave CPU memory handlers
283  *
284  *************************************/
285 
286 static MEMORY_READ_START( nekkyoku_readmem_sub )
287 	{ 0x0000, 0x7fff, MRA_ROM },
288 	{ 0x8000, 0xbfff, MRA_BANK1 },
289 	{ 0xc000, 0xefff, fromance_videoram_r },
290 	{ 0xf000, 0xf7ff, MRA_RAM },
291 	{ 0xf800, 0xffff, fromance_paletteram_r },
292 MEMORY_END
293 
294 static MEMORY_WRITE_START( nekkyoku_writemem_sub )
295 	{ 0x0000, 0x7fff, MWA_ROM },
296 	{ 0x8000, 0xbfff, MWA_ROM },
297 	{ 0xc000, 0xefff, fromance_videoram_w },
298 	{ 0xf000, 0xf7ff, MWA_RAM },
299 	{ 0xf800, 0xffff, fromance_paletteram_w },
300 MEMORY_END
301 
302 
303 static MEMORY_READ_START( fromance_readmem_sub )
304 	{ 0x0000, 0x7fff, MRA_ROM },
305 	{ 0x8000, 0xbfff, MRA_BANK1 },
306 	{ 0xc000, 0xc7ff, MRA_RAM },
307 	{ 0xc800, 0xcfff, fromance_paletteram_r },
308 	{ 0xd000, 0xffff, fromance_videoram_r },
309 MEMORY_END
310 
311 static MEMORY_WRITE_START( fromance_writemem_sub )
312 	{ 0x0000, 0x7fff, MWA_ROM },
313 	{ 0x8000, 0xbfff, MWA_ROM },
314 	{ 0xc000, 0xc7ff, MWA_RAM },
315 	{ 0xc800, 0xcfff, fromance_paletteram_w },
316 	{ 0xd000, 0xffff, fromance_videoram_w },
317 MEMORY_END
318 
319 
320 
321 /*************************************
322  *
323  *	Slave CPU port handlers
324  *
325  *************************************/
326 
327 static PORT_READ_START( nekkyoku_readport_sub )
328 	{ 0x12, 0x12, IORP_NOP },				/* unknown*/
329 	{ 0xe1, 0xe1, fromance_busycheck_sub_r },
330 	{ 0xe6, 0xe6, fromance_commanddata_r },
331 PORT_END
332 
333 static PORT_WRITE_START( nekkyoku_writeport_sub )
334 	{ 0x10, 0x10, fromance_crtc_data_w },
335 	{ 0x11, 0x11, fromance_crtc_register_w },
336 	{ 0xe0, 0xe0, fromance_rombank_w },
337 	{ 0xe1, 0xe1, fromance_gfxreg_w },
338 	{ 0xe2, 0xe5, fromance_scroll_w },
339 	{ 0xe6, 0xe6, fromance_busycheck_sub_w },
340 	{ 0xe7, 0xe7, fromance_adpcm_reset_w },
341 	{ 0xe8, 0xe8, fromance_adpcm_w },
342 	{ 0xe9, 0xe9, AY8910_write_port_0_w },
343 	{ 0xea, 0xea, AY8910_control_port_0_w },
344 PORT_END
345 
346 static PORT_READ_START( fromance_readport_sub )
347 	{ 0x12, 0x12, IORP_NOP },				/* unknown*/
348 	{ 0x21, 0x21, fromance_busycheck_sub_r },
349 	{ 0x26, 0x26, fromance_commanddata_r },
350 PORT_END
351 
352 static PORT_WRITE_START( idolmj_writeport_sub )
353 	{ 0x10, 0x10, fromance_crtc_data_w },
354 	{ 0x11, 0x11, fromance_crtc_register_w },
355 	{ 0x20, 0x20, fromance_rombank_w },
356 	{ 0x21, 0x21, fromance_gfxreg_w },
357 	{ 0x22, 0x25, fromance_scroll_w },
358 	{ 0x26, 0x26, fromance_busycheck_sub_w },
359 	{ 0x27, 0x27, fromance_adpcm_reset_w },
360 	{ 0x28, 0x28, fromance_adpcm_w },
361 	{ 0x29, 0x29, AY8910_write_port_0_w },
362 	{ 0x2a, 0x2a, AY8910_control_port_0_w },
363 PORT_END
364 
365 static PORT_WRITE_START( fromance_writeport_sub )
366 	{ 0x10, 0x10, fromance_crtc_data_w },
367 	{ 0x11, 0x11, fromance_crtc_register_w },
368 	{ 0x20, 0x20, fromance_rombank_w },
369 	{ 0x21, 0x21, fromance_gfxreg_w },
370 	{ 0x22, 0x25, fromance_scroll_w },
371 	{ 0x26, 0x26, fromance_busycheck_sub_w },
372 	{ 0x27, 0x27, fromance_adpcm_reset_w },
373 	{ 0x28, 0x28, fromance_adpcm_w },
374 	{ 0x2a, 0x2a, YM2413_register_port_0_w },
375 	{ 0x2b, 0x2b, YM2413_data_port_0_w },
376 PORT_END
377 
378 
379 
380 /*************************************
381  *
382  *	Port definitions
383  *
384  *************************************/
385 
386 #define FROMANCE_KEYMATRIX1 \
387 	PORT_START \
388 	PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "P1 A", KEYCODE_A, IP_JOY_NONE ) \
389 	PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "P1 E", KEYCODE_E, IP_JOY_NONE ) \
390 	PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "P1 I", KEYCODE_I, IP_JOY_NONE ) \
391 	PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "P1 M", KEYCODE_M, IP_JOY_NONE ) \
392 	PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "P1 Kan", KEYCODE_LCONTROL, IP_JOY_NONE ) \
393 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) \
394 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
395 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
396 
397 #define FROMANCE_KEYMATRIX2 \
398 	PORT_START \
399 	PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "P1 B", KEYCODE_B, IP_JOY_NONE ) \
400 	PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "P1 F", KEYCODE_F, IP_JOY_NONE ) \
401 	PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "P1 J", KEYCODE_J, IP_JOY_NONE ) \
402 	PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "P1 N", KEYCODE_N, IP_JOY_NONE ) \
403 	PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "P1 Reach", KEYCODE_LSHIFT, IP_JOY_NONE ) \
404 	PORT_BITX(0x20, IP_ACTIVE_LOW, 0, "P1 Bet", KEYCODE_2, IP_JOY_NONE ) \
405 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
406 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
407 
408 #define FROMANCE_KEYMATRIX3 \
409 	PORT_START \
410 	PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "P1 C", KEYCODE_C, IP_JOY_NONE ) \
411 	PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "P1 G", KEYCODE_G, IP_JOY_NONE ) \
412 	PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "P1 K", KEYCODE_K, IP_JOY_NONE ) \
413 	PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "P1 Chi", KEYCODE_SPACE, IP_JOY_NONE ) \
414 	PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "P1 Ron", KEYCODE_Z, IP_JOY_NONE ) \
415 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
416 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
417 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
418 
419 #define FROMANCE_KEYMATRIX4 \
420 	PORT_START \
421 	PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "P1 D", KEYCODE_D, IP_JOY_NONE ) \
422 	PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "P1 H", KEYCODE_H, IP_JOY_NONE ) \
423 	PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "P1 L", KEYCODE_L, IP_JOY_NONE ) \
424 	PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "P1 Pon", KEYCODE_LALT, IP_JOY_NONE ) \
425 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
426 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
427 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
428 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
429 
430 #define FROMANCE_KEYMATRIX5 \
431 	PORT_START \
432 	PORT_BITX(0x01, IP_ACTIVE_LOW, 0, "P1 Last Chance", KEYCODE_RALT, IP_JOY_NONE ) \
433 	PORT_BITX(0x02, IP_ACTIVE_LOW, 0, "P1 Take Score", KEYCODE_RCONTROL, IP_JOY_NONE ) \
434 	PORT_BITX(0x04, IP_ACTIVE_LOW, 0, "P1 Double Up", KEYCODE_RSHIFT, IP_JOY_NONE ) \
435 	PORT_BITX(0x08, IP_ACTIVE_LOW, 0, "P1 Flip", KEYCODE_X, IP_JOY_NONE ) \
436 	PORT_BITX(0x10, IP_ACTIVE_LOW, 0, "P1 Big", KEYCODE_ENTER, IP_JOY_NONE ) \
437 	PORT_BITX(0x20, IP_ACTIVE_LOW, 0, "P1 Small", KEYCODE_BACKSPACE, IP_JOY_NONE ) \
438 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \
439 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
440 
441 
442 INPUT_PORTS_START( nekkyoku )
443 	PORT_START	/* (0) TEST SW */
444 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
445 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
446 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
447 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
448 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
449 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
450 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
451 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
452 
453 	PORT_START	/* (1) COIN SW */
454 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
455 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
456 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
457 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
458 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
459 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
460 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
461 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
462 
463 	PORT_START	/* (2) DIPSW-1 */
464 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
465 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
466 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
467 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
468 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
469 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
470 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
471 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
472 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
473 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
474 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
475 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
476 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 1-5" )
477 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
478 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
479 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 1-6" )
480 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
481 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
482 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
483 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
484 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
485 	PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" )
486 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
487 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
488 
489 	PORT_START	/* (3) DIPSW-2 */
490 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
491 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
492 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
493 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
494 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
495 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
496 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
497 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
498 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
499 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
500 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
501 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
502 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
503 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
504 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
505 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
506 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
507 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
508 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
509 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
510 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
511 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
512 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
513 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
514 
515 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
516 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
517 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
518 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
519 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
520 INPUT_PORTS_END
521 
522 
523 INPUT_PORTS_START( idolmj )
524 	PORT_START	/* (0) TEST SW */
525 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
526 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )		/* MEMORY RESET*/
527 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
528 	PORT_BITX( 0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )	/* TEST*/
529 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
530 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
531 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
532 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
533 
534 	PORT_START	/* (1) COIN SW */
535 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
536 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
537 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
538 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
539 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
540 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
541 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
542 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
543 
544 	PORT_START	/* (2) DIPSW-1 */
545 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
546 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
547 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
548 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
549 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
550 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
551 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
552 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
553 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
554 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
555 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
556 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
557 	PORT_DIPNAME( 0x10, 0x00, "Voices" )
558 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
559 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
560 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 1-6" )
561 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
562 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
563 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
564 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
565 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
566 	PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" )
567 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
568 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
569 
570 	PORT_START	/* (3) DIPSW-2 */
571 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
572 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
573 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
574 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
575 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
576 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
577 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
578 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
579 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
580 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
581 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
582 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
583 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
584 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
585 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
586 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
587 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
588 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
589 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 2-7" )
590 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
591 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
592 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
593 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
594 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
595 
596 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
597 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
598 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
599 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
600 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
601 INPUT_PORTS_END
602 
603 
604 INPUT_PORTS_START( fromance )
605 	PORT_START	/* (0) TEST SW */
606 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
607 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )		/* MEMORY RESET*/
608 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
609 	PORT_BITX( 0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )	/* TEST*/
610 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
611 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
612 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
613 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
614 
615 	PORT_START	/* (1) COIN SW */
616 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
617 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
618 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
619 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
620 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
621 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
622 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
623 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
624 
625 	PORT_START	/* (2) DIPSW-1 */
626 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
627 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
628 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
629 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
630 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
631 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
632 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
633 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
634 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
635 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
636 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
637 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
638 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 1-5" )
639 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
640 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
641 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
642 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
643 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
644 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
645 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
646 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
647 	PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
648 
649 	PORT_START	/* (3) DIPSW-2 */
650 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
651 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
652 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
653 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
654 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
655 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
656 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
657 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
658 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
659 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
660 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
661 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
662 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
663 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
664 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
665 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
666 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
667 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
668 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 2-7" )
669 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
670 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
671 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
672 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
673 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
674 
675 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
676 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
677 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
678 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
679 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
680 INPUT_PORTS_END
681 
682 
683 INPUT_PORTS_START( nmsengen )
684 	PORT_START	/* (0) TEST SW */
685 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
686 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )		/* MEMORY RESET*/
687 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
688 	PORT_BITX( 0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )	/* TEST*/
689 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
690 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
691 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
692 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
693 
694 	PORT_START	/* (1) COIN SW */
695 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
696 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
697 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
698 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
699 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
700 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
701 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
702 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
703 
704 	PORT_START	/* (2) DIPSW-1 */
705 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
706 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
707 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
708 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
709 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
710 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
711 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
712 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
713 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
714 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
715 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
716 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
717 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 1-5" )
718 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
719 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
720 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
721 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
722 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
723 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
724 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
725 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
726 	PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
727 
728 	PORT_START	/* (3) DIPSW-2 */
729 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
730 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
731 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
732 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
733 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
734 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
735 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
736 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
737 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
738 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
739 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
740 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
741 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
742 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
743 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
744 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
745 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
746 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
747 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 2-7" )
748 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
749 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
750 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
751 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
752 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
753 
754 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
755 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
756 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
757 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
758 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
759 INPUT_PORTS_END
760 
761 
762 INPUT_PORTS_START( daiyogen )
763 	PORT_START	/* (0) TEST SW */
764 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
765 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )		/* MEMORY RESET*/
766 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
767 	PORT_BITX( 0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )	/* TEST*/
768 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
769 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
770 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
771 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
772 
773 	PORT_START	/* (1) COIN SW */
774 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
775 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
776 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
777 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
778 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
779 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
780 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
781 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
782 
783 	PORT_START	/* (2) DIPSW-1 */
784 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
785 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
786 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
787 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
788 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
789 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
790 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
791 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
792 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
793 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
794 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
795 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
796 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 1-5" )
797 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
798 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
799 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
800 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
801 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
802 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
803 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
804 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
805 	PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" )
806 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
807 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
808 
809 	PORT_START	/* (3) DIPSW-2 */
810 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
811 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
812 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
813 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
814 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
815 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
816 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
817 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
818 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
819 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
820 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
821 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
822 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
823 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
824 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
825 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
826 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
827 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
828 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 2-7" )
829 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
830 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
831 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
832 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
833 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
834 
835 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
836 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
837 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
838 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
839 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
840 INPUT_PORTS_END
841 
842 
843 INPUT_PORTS_START( mfunclub )
844 	PORT_START	/* (0) TEST SW */
845 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
846 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )		/* MEMORY RESET*/
847 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
848 	PORT_BITX( 0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )	/* TEST*/
849 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
850 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
851 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
852 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
853 
854 	PORT_START	/* (1) COIN SW */
855 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
856 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
857 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
858 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
859 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
860 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
861 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
862 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
863 
864 	PORT_START	/* (2) DIPSW-1 */
865 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
866 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
867 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
868 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
869 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
870 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
871 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
872 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
873 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
874 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
875 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
876 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
877 	PORT_DIPNAME( 0x10, 0x00, "Voices" )
878 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
879 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
880 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 1-6" )
881 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
882 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
883 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
884 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
885 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
886 	PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" )
887 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
888 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
889 
890 	PORT_START	/* (3) DIPSW-2 */
891 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
892 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
893 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
894 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
895 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
896 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
897 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
898 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
899 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
900 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
901 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
902 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
903 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
904 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
905 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
906 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
907 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
908 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
909 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 2-7" )
910 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
911 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
912 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
913 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
914 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
915 
916 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
917 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
918 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
919 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
920 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
921 INPUT_PORTS_END
922 
923 
924 INPUT_PORTS_START( mjnatsu )
925 	PORT_START	/* (0) TEST SW */
926 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
927 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )		/* MEMORY RESET*/
928 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
929 	PORT_BITX( 0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )	/* TEST*/
930 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
931 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
932 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
933 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
934 
935 	PORT_START	/* (1) COIN SW */
936 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
937 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
938 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
939 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
940 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
941 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
942 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )			/* COIN1*/
943 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
944 
945 	PORT_START	/* (2) DIPSW-1 */
946 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 1-1" )
947 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
948 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
949 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 1-2" )
950 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
951 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
952 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 1-3" )
953 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
954 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
955 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 1-4" )
956 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
957 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
958 	PORT_DIPNAME( 0x10, 0x00, "Voices" )
959 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
960 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
961 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 1-6" )
962 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
963 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
964 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 1-7" )
965 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
966 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
967 	PORT_DIPNAME( 0x80, 0x00, "DIPSW 1-8" )
968 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
969 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
970 
971 	PORT_START	/* (3) DIPSW-2 */
972 	PORT_DIPNAME( 0x01, 0x00, "DIPSW 2-1" )
973 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
974 	PORT_DIPSETTING(    0x01, DEF_STR( On ) )
975 	PORT_DIPNAME( 0x02, 0x00, "DIPSW 2-2" )
976 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
977 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
978 	PORT_DIPNAME( 0x04, 0x00, "DIPSW 2-3" )
979 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
980 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
981 	PORT_DIPNAME( 0x08, 0x00, "DIPSW 2-4" )
982 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
983 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
984 	PORT_DIPNAME( 0x10, 0x00, "DIPSW 2-5" )
985 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
986 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
987 	PORT_DIPNAME( 0x20, 0x00, "DIPSW 2-6" )
988 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
989 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
990 	PORT_DIPNAME( 0x40, 0x00, "DIPSW 2-7" )
991 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
992 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
993 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
994 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
995 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
996 
997 	FROMANCE_KEYMATRIX1	/* (4) PORT 1-0 */
998 	FROMANCE_KEYMATRIX2	/* (5) PORT 1-1 */
999 	FROMANCE_KEYMATRIX3	/* (6) PORT 1-2 */
1000 	FROMANCE_KEYMATRIX4	/* (7) PORT 1-3 */
1001 	FROMANCE_KEYMATRIX5	/* (8) PORT 1-4 */
1002 INPUT_PORTS_END
1003 
1004 
1005 
1006 /*************************************
1007  *
1008  *	Graphics definitions
1009  *
1010  *************************************/
1011 
1012 static struct GfxLayout bglayout =
1013 {
1014 	8,4,
1015 	RGN_FRAC(1,1),
1016 	4,
1017 	{ 0, 1, 2, 3 },
1018 	{ 4, 0, 12, 8, 20, 16, 28, 24 },
1019 	{ 0*32, 1*32, 2*32, 3*32 },
1020 	16*8
1021 };
1022 
1023 
1024 static struct GfxDecodeInfo fromance_gfxdecodeinfo[] =
1025 {
1026 	{ REGION_GFX1, 0, &bglayout,   0, 128 },
1027 	{ REGION_GFX2, 0, &bglayout,   0, 128 },
1028 	{ -1 }
1029 };
1030 
1031 
1032 
1033 /*************************************
1034  *
1035  *	Sound definitions
1036  *
1037  *************************************/
1038 
1039 static struct YM2413interface ym2413_interface=
1040 {
1041 	1,						/* 1 chip */
1042 	3579545,				/* 3.579545 MHz ? */
1043 	{ YM2413_VOL(100,MIXER_PAN_CENTER,100,MIXER_PAN_CENTER) }
1044 };
1045 
1046 
1047 static struct AY8910interface ay8910_interface =
1048 {
1049 	1,						/* 1 chip */
1050 	12000000/6,				/* 1.5 MHz ? */
1051 	{ 15 },					/* volume */
1052 	{ 0 },					/* read port #0 */
1053 	{ 0 },					/* read port #1 */
1054 	{ 0 },					/* write port #0 */
1055 	{ 0 }					/* write port #1 */
1056 };
1057 
1058 
1059 static struct MSM5205interface msm5205_interface =
1060 {
1061 	1,						/* 1 chip */
1062 	384000,					/* 384 KHz */
1063 	{ fromance_adpcm_int },	/* IRQ handler */
1064 	{ MSM5205_S48_4B },		/* 8 KHz */
1065 	{ 80 }					/* volume */
1066 };
1067 
1068 static struct MSM5205interface fromance_msm5205_interface =
1069 {
1070 	1,						/* 1 chip */
1071 	384000,					/* 384 KHz */
1072 	{ fromance_adpcm_int },	/* IRQ handler */
1073 	{ MSM5205_S48_4B },		/* 8 KHz */
1074 	{ 10 }					/* volume */
1075 };
1076 
1077 
1078 /*************************************
1079  *
1080  *	Machine drivers
1081  *
1082  *************************************/
1083 
1084 static MACHINE_DRIVER_START( nekkyoku )
1085 
1086 	/* basic machine hardware */
1087 	MDRV_CPU_ADD(Z80,12000000/2)		/* 6.00 Mhz ? */
1088 	MDRV_CPU_MEMORY(nekkyoku_readmem_main,nekkyoku_writemem_main)
1089 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
1090 
1091 	MDRV_CPU_ADD(Z80,12000000/2)		/* 6.00 Mhz ? */
1092 	MDRV_CPU_MEMORY(nekkyoku_readmem_sub,nekkyoku_writemem_sub)
1093 	MDRV_CPU_PORTS(nekkyoku_readport_sub,nekkyoku_writeport_sub)
1094 
1095 	MDRV_FRAMES_PER_SECOND(60)
1096 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1097 
1098 	MDRV_MACHINE_INIT(fromance)
1099 
1100 	/* video hardware */
1101 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1102 	MDRV_SCREEN_SIZE(512, 256)
1103 	MDRV_VISIBLE_AREA(0, 352-1, 0, 240-1)
1104 	MDRV_GFXDECODE(fromance_gfxdecodeinfo)
1105 	MDRV_PALETTE_LENGTH(1024)
1106 
1107 	MDRV_VIDEO_START(nekkyoku)
1108 	MDRV_VIDEO_UPDATE(fromance)
1109 
1110 	/* sound hardware */
1111 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
1112 	MDRV_SOUND_ADD(MSM5205, msm5205_interface)
1113 MACHINE_DRIVER_END
1114 
1115 
1116 static MACHINE_DRIVER_START( idolmj )
1117 
1118 	/* basic machine hardware */
1119 	MDRV_CPU_ADD(Z80,12000000/2)		/* 6.00 Mhz ? */
1120 	MDRV_CPU_MEMORY(fromance_readmem_main,fromance_writemem_main)
1121 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
1122 
1123 	MDRV_CPU_ADD(Z80,12000000/2)		/* 6.00 Mhz ? */
1124 	MDRV_CPU_MEMORY(fromance_readmem_sub,fromance_writemem_sub)
1125 	MDRV_CPU_PORTS(fromance_readport_sub,idolmj_writeport_sub)
1126 
1127 	MDRV_FRAMES_PER_SECOND(60)
1128 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1129 
1130 	MDRV_MACHINE_INIT(fromance)
1131 
1132 	/* video hardware */
1133 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1134 	MDRV_SCREEN_SIZE(512, 256)
1135 	MDRV_VISIBLE_AREA(0, 352-1, 0, 240-1)
1136 	MDRV_GFXDECODE(fromance_gfxdecodeinfo)
1137 	MDRV_PALETTE_LENGTH(2048)
1138 
1139 	MDRV_VIDEO_START(fromance)
1140 	MDRV_VIDEO_UPDATE(fromance)
1141 
1142 	/* sound hardware */
1143 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
1144 	MDRV_SOUND_ADD(MSM5205, msm5205_interface)
1145 MACHINE_DRIVER_END
1146 
1147 
1148 static MACHINE_DRIVER_START( fromance )
1149 
1150 	/* basic machine hardware */
1151 	MDRV_CPU_ADD(Z80,12000000/2)		/* 6.00 Mhz ? */
1152 	MDRV_CPU_MEMORY(fromance_readmem_main,fromance_writemem_main)
1153 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
1154 
1155 	MDRV_CPU_ADD(Z80,12000000/2)		/* 6.00 Mhz ? */
1156 	MDRV_CPU_MEMORY(fromance_readmem_sub,fromance_writemem_sub)
1157 	MDRV_CPU_PORTS(fromance_readport_sub,fromance_writeport_sub)
1158 
1159 	MDRV_FRAMES_PER_SECOND(60)
1160 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
1161 
1162 	MDRV_MACHINE_INIT(fromance)
1163 
1164 	/* video hardware */
1165 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
1166 	MDRV_SCREEN_SIZE(512, 256)
1167 	MDRV_VISIBLE_AREA(0, 352-1, 0, 240-1)
1168 	MDRV_GFXDECODE(fromance_gfxdecodeinfo)
1169 	MDRV_PALETTE_LENGTH(2048)
1170 
1171 	MDRV_VIDEO_START(fromance)
1172 	MDRV_VIDEO_UPDATE(fromance)
1173 
1174 	/* sound hardware */
1175 	MDRV_SOUND_ADD(YM2413, ym2413_interface)
1176 	MDRV_SOUND_ADD(MSM5205, fromance_msm5205_interface)
1177 MACHINE_DRIVER_END
1178 
1179 
1180 
1181 /*************************************
1182  *
1183  *	ROM definitions
1184  *
1185  *************************************/
1186 
1187 ROM_START( nekkyoku )
1188 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1189 	ROM_LOAD( "1-ic1a.bin",  0x000000, 0x008000, CRC(bb52d959) SHA1(1dfeb108879978dbcc1398e64b26c36505bee6d0) )
1190 	ROM_LOAD( "2-ic2a.bin",  0x008000, 0x008000, CRC(61848d8b) SHA1(72048c53e4364544ca8a79e213db9d02b7b4778f) )
1191 
1192 	ROM_REGION( 0x210000, REGION_CPU2, 0 )
1193 	ROM_LOAD( "3-ic3a.bin",  0x000000, 0x008000, CRC(a13da011) SHA1(601180f65ba42b7b1b6b058c0eccf88af1b430ca) )
1194 	ROM_LOAD( "ic4a.bin",    0x010000, 0x080000, CRC(1cc4d31b) SHA1(6ea8ec3d6b3bbffbbab3460e9c5dae74195eafc6) )
1195 	ROM_LOAD( "ic5a.bin",    0x090000, 0x080000, CRC(8b0945a1) SHA1(c52f77d817c687afa0cd93e7725cdf2021158a11) )
1196 	ROM_LOAD( "ic6a.bin",    0x110000, 0x080000, CRC(d5615e1d) SHA1(ffee1a240045636db5d03345faadb9991b51f2c9) )
1197 	ROM_LOAD( "4-ic7a.bin",  0x190000, 0x008000, CRC(e259cfbb) SHA1(d92a71e5f840b338aa2080a6b5872e23c7b6146f) )
1198 
1199 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1200 	ROM_LOAD( "ic11a.bin",   0x000000, 0x080000, CRC(2bc2b1d0) SHA1(1c516b058a640ca07b065f4c55959b63a11ca015) )
1201 	ROM_LOAD( "ic12a.bin",   0x080000, 0x040000, CRC(cac93dc0) SHA1(e47f547ac83ac005e787a2c9f802101d251d4a66) )
1202 	ROM_LOAD( "6-ic13a.bin", 0x0c0000, 0x008000, CRC(84830e34) SHA1(e3af89938b1e122909b13faf0022b6b60afb1f3f) )
1203 	ROM_FILL(                0x0c8000, 0x038000, 0xff )
1204 	ROM_FILL(                0x100000, 0x100000, 0xff )
1205 
1206 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1207 	ROM_LOAD( "ic8a.bin",    0x000000, 0x080000, CRC(599790d8) SHA1(4e4ade1a89d6cb93b0808867883d70c4c7ed78dd) )
1208 	ROM_LOAD( "ic9a.bin",    0x080000, 0x040000, CRC(78c1906f) SHA1(54459e0120ec58a962d3f4a1287e68d2fbb28be9) )
1209 	ROM_LOAD( "5-ic10a.bin", 0x0c0000, 0x008000, CRC(2e78515f) SHA1(397985c082ffc0df07cd44d54e4fef909c30a4f1) )
1210 	ROM_FILL(                0x0c8000, 0x038000, 0xff )
1211 	ROM_FILL(                0x100000, 0x100000, 0xff )
1212 ROM_END
1213 
1214 
1215 ROM_START( idolmj )
1216 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1217 	ROM_LOAD( "3-13g.bin", 0x000000, 0x008000, CRC(910e9e7a) SHA1(5d577549ca25def14fbc6db682afda105244b7c1) )
1218 
1219 	ROM_REGION( 0x410000, REGION_CPU2, 0 )
1220 	ROM_LOAD( "5-13e.bin", 0x000000, 0x008000, CRC(cda33264) SHA1(88ac345fccce82fafc346675726b1b806ecab1bc) )
1221 	ROM_LOAD( "18e.bin",   0x010000, 0x080000, CRC(7ee5aaf3) SHA1(f1aaa512a475bfb56250ef4350d4b17e6165c5f7) )
1222 	ROM_LOAD( "17e.bin",   0x090000, 0x080000, CRC(38055f94) SHA1(7724e099efda2a255ccc7989f2584fc543e77061) )
1223 	ROM_LOAD( "4-14e.bin", 0x190000, 0x010000, CRC(84d80b43) SHA1(7d6310d313b953ed460a6891316845b64bffdd31) )
1224 
1225 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1226 	ROM_LOAD( "6e.bin",    0x000000, 0x080000, CRC(51dadedd) SHA1(ce0188cce457759130d70b71b2877a7eb98824e4) )
1227 	ROM_LOAD( "2-8e.bin",  0x080000, 0x008000, CRC(a1a62c4c) SHA1(c946ad5dab918e0a7951c7eca88f1b32bf96e895) )
1228 	ROM_FILL(              0x088000, 0x008000, 0xff )
1229 	ROM_FILL(              0x090000, 0x170000, 0xff )
1230 
1231 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1232 	ROM_LOAD( "3e.bin",    0x000000, 0x080000, CRC(eff9b562) SHA1(895d70be5efd746e15393bb138e6c6f7d39b2e54) )
1233 	ROM_LOAD( "1-1e.bin",  0x080000, 0x008000, CRC(abf03c62) SHA1(0ad88ffe3f06f493978f292154894415ed38f797) )
1234 	ROM_FILL(              0x088000, 0x008000, 0xff )
1235 	ROM_FILL(              0x090000, 0x170000, 0xff )
1236 ROM_END
1237 
1238 
1239 ROM_START( mjnatsu )
1240 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1241 	ROM_LOAD( "3-ic70.bin", 0x000000, 0x008000, CRC(543eb9e1) SHA1(cfe1d33bdf6541e2207465a941f342be21b69f7d) )
1242 
1243 	ROM_REGION( 0x410000, REGION_CPU2, 0 )
1244 	ROM_LOAD( "4-ic47.bin", 0x000000, 0x008000, CRC(27a61dc7) SHA1(e12e36eefb7cbce8e1383b7c1b57793cde2cd6cd) )
1245 	ROM_LOAD( "ic87.bin",   0x010000, 0x080000, CRC(caec9310) SHA1(a92be0116d7e682763e387230a51daedbe749c26) )
1246 	ROM_LOAD( "ic78.bin",   0x090000, 0x080000, CRC(2b291006) SHA1(5360158ee9e50bd956f149ce0e58920d4d294b42) )
1247 	ROM_LOAD( "ic72.bin",   0x110000, 0x020000, CRC(42464fba) SHA1(b16da303f3e16f47322d00f7a27d2004be63f611) )
1248 	ROM_LOAD( "5-ic48.bin", 0x210000, 0x010000, CRC(d3c06cd9) SHA1(53c10670557d72a87f2a289f22ea2749d8d35976) )
1249 
1250 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1251 	ROM_LOAD( "ic58.bin",   0x000000, 0x080000, CRC(257a8075) SHA1(c741a4f10cbec8e6d641d4dc2b36749277bc9548) )
1252 	ROM_LOAD( "ic63.bin",   0x080000, 0x020000, CRC(b54c7d3a) SHA1(6be26b7d2cdf884fc140c8ed44865784d107583a) )
1253 	ROM_LOAD( "1-ic74.bin", 0x0a0000, 0x008000, CRC(fbafa46b) SHA1(3867180f8a3cb3becf78023d3bbc2bb66580a13d) )
1254 	ROM_FILL(               0x0a8000, 0x008000, 0xff )
1255 	ROM_FILL(               0x0b0000, 0x150000, 0xff )
1256 
1257 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1258 	ROM_LOAD( "ic59.bin",   0x000000, 0x080000, CRC(03983ac7) SHA1(1e14ec3c614b227a6362f2a3a7582ac7a4f58ee3) )
1259 	ROM_LOAD( "ic64.bin",   0x080000, 0x040000, CRC(9bd8e855) SHA1(a445dd7634958f69e58aed2581513e7a583ff66b) )
1260 	ROM_FILL(               0x0c0000, 0x140000, 0xff )
1261 ROM_END
1262 
1263 
1264 ROM_START( natsuiro )
1265 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1266 	ROM_LOAD( "3-ic70.bin", 0x000000, 0x008000, CRC(543eb9e1) SHA1(cfe1d33bdf6541e2207465a941f342be21b69f7d) )
1267 
1268 	ROM_REGION( 0x410000, REGION_CPU2, 0 )
1269 	ROM_LOAD( "m4.bin",     0x000000, 0x008000, CRC(8d37cc3f) SHA1(90fee63b5864002bec95c61003532e743d351244) )
1270 	ROM_LOAD( "ic87.bin",   0x010000, 0x080000, CRC(caec9310) SHA1(a92be0116d7e682763e387230a51daedbe749c26) )
1271 	ROM_LOAD( "ic78.bin",   0x090000, 0x080000, CRC(2b291006) SHA1(5360158ee9e50bd956f149ce0e58920d4d294b42) )
1272 	ROM_LOAD( "ic72.bin",   0x110000, 0x020000, CRC(42464fba) SHA1(b16da303f3e16f47322d00f7a27d2004be63f611) )
1273 	ROM_LOAD( "m5.bin",     0x210000, 0x010000, CRC(cd1ea5f7) SHA1(26965663485c7311c7a421dba0921fdfb8392df9) )
1274 
1275 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1276 	ROM_LOAD( "ic58.bin",   0x000000, 0x080000, CRC(257a8075) SHA1(c741a4f10cbec8e6d641d4dc2b36749277bc9548) )
1277 	ROM_LOAD( "ic63.bin",   0x080000, 0x020000, CRC(b54c7d3a) SHA1(6be26b7d2cdf884fc140c8ed44865784d107583a) )
1278 	ROM_LOAD( "m1.bin",     0x0a0000, 0x008000, CRC(fbafa46b) SHA1(3867180f8a3cb3becf78023d3bbc2bb66580a13d) )
1279 	ROM_FILL(               0x0a8000, 0x008000, 0xff )
1280 	ROM_FILL(               0x0b0000, 0x150000, 0xff )
1281 
1282 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1283 	ROM_LOAD( "ic59.bin",   0x000000, 0x080000, CRC(03983ac7) SHA1(1e14ec3c614b227a6362f2a3a7582ac7a4f58ee3) )
1284 	ROM_LOAD( "ic64.bin",   0x080000, 0x040000, CRC(9bd8e855) SHA1(a445dd7634958f69e58aed2581513e7a583ff66b) )
1285 	ROM_LOAD( "m2.bin",     0x0c0000, 0x008000, CRC(61129677) SHA1(a1789b4e23b46c61c822eb02fdfa65b7d0a34ce8) )
1286 	ROM_FILL(               0x0c8000, 0x138000, 0xff )
1287 ROM_END
1288 
1289 
1290 ROM_START( mfunclub )
1291 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1292 	ROM_LOAD( "3.70",        0x000000, 0x008000, CRC(e6f76ca3) SHA1(2f4292e50770c3325c1573781cb21940d73e8fb1) )
1293 
1294 	ROM_REGION( 0x410000, REGION_CPU2, 0 )
1295 	ROM_LOAD( "4.47",        0x000000, 0x008000, CRC(d71ee0e3) SHA1(87a5bc53bc2f027fc644427f34141826de9f48a5) )
1296 	ROM_LOAD( "586.87",      0x010000, 0x080000, CRC(e197af4a) SHA1(e68530bf8dbf9cb0913b36879f1ec0756f202b4e) )
1297 	ROM_LOAD( "587.78",      0x090000, 0x080000, CRC(08ff39c3) SHA1(d1f6011c9d08820eef3bb80abcf2fdb9acd9d967) )
1298 	ROM_LOAD( "5.57",        0x290000, 0x010000, CRC(bf988bde) SHA1(6e965f26f7c72b4ede954bd9941db282dfe0e6a9) )
1299 
1300 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1301 	ROM_LOAD( "584.58",      0x000000, 0x080000, CRC(d65af431) SHA1(0006846631619af41bfd4a14563c16966ea1573b) )
1302 	ROM_LOAD( "lh634a14.63", 0x080000, 0x080000, CRC(cdda9b9e) SHA1(ffb2ca1233d5e969abc9da2faa0252ba8e779b42) )
1303 	ROM_FILL(                0x100000, 0x080000, 0xff )
1304 	ROM_LOAD( "1.74",        0x180000, 0x008000, CRC(5b0b2efc) SHA1(4524d9e8b6c059e0cca31d9f0d677cb6bd09561d) )
1305 	ROM_FILL(                0x188000, 0x078000, 0xff )
1306 
1307 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1308 	ROM_LOAD( "585.59",      0x000000, 0x080000, CRC(58ce0937) SHA1(729e1b906454145b3d069717f2e058ab41750db1) )
1309 	ROM_FILL(                0x080000, 0x100000, 0xff )
1310 	ROM_LOAD( "2.75",        0x180000, 0x010000, CRC(4dd4f786) SHA1(06f398cffc54ac9e7c42eddc1d46e00c0a64d9c7) )
1311 	ROM_FILL(                0x190000, 0x070000, 0xff )
1312 ROM_END
1313 
1314 
1315 ROM_START( daiyogen )
1316 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1317 	ROM_LOAD( "n1-ic70.bin", 0x000000, 0x008000, CRC(29af632b) SHA1(9a55cc7a82dc2735be6310de27521ff0f5c352bd) )
1318 
1319 	ROM_REGION( 0x130000, REGION_CPU2, 0 )
1320 	ROM_LOAD( "n2-ic47.bin", 0x000000, 0x008000, CRC(8896604c) SHA1(305a42c6c770645d6dcb5297325dbb3c7e337443) )
1321 	ROM_LOAD( "ic87.bin",    0x010000, 0x080000, CRC(4f86ffe2) SHA1(159952b6be9800b117b70d992ef86d72fdac1802) )
1322 	ROM_LOAD( "ic78.bin",    0x090000, 0x080000, CRC(ae52bccd) SHA1(591bf4736807b004a2576c220066985d3218e0a1) )
1323 	ROM_LOAD( "7-ic72.bin",  0x110000, 0x020000, CRC(30279296) SHA1(6943fd16c1b87f5000c89c380091dc922866e5ac) )
1324 
1325 	ROM_REGION( 0x0c0000, REGION_GFX1, ROMREGION_DISPOSE )
1326 	ROM_LOAD( "ic58.bin",    0x000000, 0x080000, CRC(8cf3d5f5) SHA1(26470a9b02fd5017cbb64ceee00abb51c58b97d3) )
1327 	ROM_LOAD( "ic63.bin",    0x080000, 0x040000, CRC(64611070) SHA1(203aa055c318a9bc6cd6f56a6fbd2ff12e4e4d5a) )
1328 
1329 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
1330 	ROM_LOAD( "ic59.bin",    0x000000, 0x080000, CRC(715f2f8c) SHA1(a1206bc21556c2644688f6332b9a57c7188ea7fa) )
1331 	ROM_LOAD( "ic64.bin",    0x080000, 0x080000, CRC(e5a41864) SHA1(73b25fe87e347feabe7256ced80a696c377d690c) )
1332 ROM_END
1333 
1334 
1335 ROM_START( nmsengen )
1336 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1337 	ROM_LOAD( "3-ic70.bin",   0x000000, 0x008000, CRC(4e6edbbb) SHA1(890f93569a6dec6bf7c917a3db4f268c6ec64564) )
1338 
1339 	ROM_REGION( 0x410000, REGION_CPU2, 0 )
1340 	ROM_LOAD( "4-ic47.bin",   0x000000, 0x008000, CRC(d31c596e) SHA1(6063805b93c39054ad4804d6d476b8370c4249ca) )
1341 	ROM_LOAD( "vsj-ic87.bin", 0x010000, 0x100000, CRC(d3e8bd73) SHA1(a8c8f3c589e561cb79ac586209369ae192507212) )
1342 	ROM_LOAD( "j5-ic72.bin",  0x210000, 0x020000, CRC(db937253) SHA1(35fe382393e05911e7d801fff49b5427c6337ba3) )
1343 
1344 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1345 	ROM_LOAD( "vsk-ic63.bin", 0x000000, 0x100000, CRC(f95f9c67) SHA1(1826b52ad404ca44d79fa869aa5a974299861f40) )
1346 	ROM_LOAD( "ic58.bin",     0x100000, 0x040000, CRC(c66dcf18) SHA1(a64f2fb478a8b3d08d0157059c9d4ab30d43c9bf) )
1347 	ROM_FILL(                 0x140000, 0x080000, 0xff )
1348 	ROM_LOAD( "1-ic68.bin",   0x1c0000, 0x020000, CRC(a944a8d6) SHA1(1dfaa34c6c406c7216aa989268a0d8e680f419e2) )
1349 	ROM_FILL(                 0x1e0000, 0x020000, 0xff )
1350 
1351 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1352 	ROM_LOAD( "vsh-ic64.bin", 0x000000, 0x100000, CRC(f546ffaf) SHA1(bb4babc2dffc36fb321d64cd4a28c3089f3ee366) )
1353 	ROM_LOAD( "vsg-ic59.bin", 0x100000, 0x080000, CRC(25bae018) SHA1(ba00718d473d1fbaec8d18cc481ed146657ef14f) )
1354 	ROM_LOAD( "ic69.bin",     0x180000, 0x040000, CRC(dc867ccd) SHA1(69745b9f6aecb92fea8e70b0cec4895dea444c04) )
1355 	ROM_LOAD( "2-ic75.bin",   0x1c0000, 0x020000, CRC(e2fad82e) SHA1(3ab41e8e7674f8d12b0a0f518c5a54af8afa1231) )
1356 	ROM_FILL(                 0x1e0000, 0x020000, 0xff )
1357 ROM_END
1358 
1359 
1360 ROM_START( fromance )
1361 	ROM_REGION( 0x010000, REGION_CPU1, 0 )
1362 	ROM_LOAD( "2-ic70.bin", 0x000000, 0x008000, CRC(a0866e26) SHA1(019a8dfaa54dd397f642622d7ed847b7147a61f7) )
1363 
1364 	ROM_REGION( 0x410000, REGION_CPU2, 0 )
1365 	ROM_LOAD( "1-ic47.bin", 0x000000, 0x008000, CRC(ac859917) SHA1(86808c06fba4a3320298d38815e8e5d32ad29182) )
1366 	ROM_LOAD( "ic87.bin",   0x010000, 0x100000, CRC(bb0d224e) SHA1(020a5b09f58f1c18cae89c8da019562ebed16710) )
1367 	ROM_LOAD( "ic78.bin",   0x110000, 0x040000, CRC(ba2dba83) SHA1(ca744b4ddd2200d29a5d4efe6a3378d7cfe28a36) )
1368 	ROM_LOAD( "5-ic72.bin", 0x210000, 0x020000, CRC(377cd57c) SHA1(7e81ca5b898f5ffe24068be1e7cd0a57a3ca68b8) )
1369 
1370 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
1371 	ROM_LOAD( "ic63.bin",   0x000000, 0x100000, CRC(faa9cdf3) SHA1(194dfaf04dc960fa1d575ad494a333cc7e7d221a) )
1372 	ROM_FILL(               0x100000, 0x0c0000, 0xff )
1373 	ROM_LOAD( "4-ic68.bin", 0x1c0000, 0x020000, CRC(9b35cea3) SHA1(e99df84c57e6d473681b7622ad6a28fce63f1128) )
1374 	ROM_FILL(               0x1e0000, 0x020000, 0xff )
1375 
1376 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
1377 	ROM_LOAD( "ic64.bin",   0x000000, 0x100000, CRC(23b9a484) SHA1(4299b689eb1da3d7e69c604eb28651ebfd4dad09) )
1378 	ROM_FILL(               0x100000, 0x080000, 0xff )
1379 	ROM_LOAD( "ic69.bin",   0x180000, 0x040000, CRC(d06a0fc0) SHA1(ea645b77f671ad71049e4db547b2c4a22e12d6c3) )
1380 	ROM_LOAD( "3-ic75.bin", 0x1c0000, 0x020000, CRC(bb314e78) SHA1(58ce4f9c94e45b05543289643b848fbdcb9ab473) )
1381 	ROM_FILL(               0x1e0000, 0x020000, 0xff )
1382 ROM_END
1383 
1384 
1385 
1386 /*************************************
1387  *
1388  *	Game drivers
1389  *
1390  *************************************/
1391 
1392 GAMEX(1988, nekkyoku,        0, nekkyoku, nekkyoku, 0, ROT0, "Video System Co.", "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)", GAME_IMPERFECT_GRAPHICS )
1393 GAME( 1988, idolmj,          0, idolmj,   idolmj,   0, ROT0, "System Service", "Idol-Mahjong Housoukyoku (Japan)" )
1394 GAME( 1989, mjnatsu,         0, fromance, mjnatsu,  0, ROT0, "Video System Co.", "Mahjong Natsu Monogatari (Japan)" )
1395 GAME( 1989, natsuiro,  mjnatsu, fromance, mjnatsu,  0, ROT0, "Video System Co.", "Natsuiro Mahjong (Japan)" )
1396 GAME( 1989, mfunclub,        0, fromance, mfunclub, 0, ROT0, "Video System Co.", "Mahjong Fun Club - Idol Saizensen (Japan)" )
1397 GAME( 1990, daiyogen,        0, fromance, daiyogen, 0, ROT0, "Video System Co.", "Mahjong Daiyogen (Japan)" )
1398 GAME( 1991, nmsengen,        0, fromance, nmsengen, 0, ROT0, "Video System Co.", "Nekketsu Mahjong Sengen! AFTER 5 (Japan)" )
1399 GAME( 1991, fromance,        0, fromance, fromance, 0, ROT0, "Video System Co.", "Idol-Mahjong Final Romance (Japan)" )
1400