1 // license:BSD-3-Clause
2 // copyright-holders:Luca Elia
3 /***************************************************************************
4 
5                     -= Seta, Sammy, Visco (SSV) System =-
6 
7                     driver by   Luca Elia (l.elia@tin.it)
8 
9 
10 CPU          :      NEC V60
11 
12 Sound Chip   :      Ensoniq ES5506 (OTTOR2)
13 
14 Custom Chips :      ST-0004     (Video DAC)
15                     ST-0005     (Parallel I/O)
16                     ST-0006     (Video controller)
17                     ST-0007     (System controller)
18 
19 Others       :      Battery + MB3790 + LH5168D-10L (NVRAM)
20                     DX-102              (I/O)
21                     M62X42B             (RTC)
22                     ST010
23                     TA8210              (Audio AMP)
24                     uPD71051/7001C      (UART)
25 
26 -----------------------------------------------------------------------------------
27 Main Board  ROM Board   Year + Game                                 By
28 -----------------------------------------------------------------------------------
29 STA-0001    STS-0001    93  Super Real Mahjong PIV                  Seta
30 STA-0001    STS-0001    93  Dramatic Adventure Quiz Keith & Lucy    Visco
31 STA-0001    STS-0001    93  Pastel Island                           Visco
32 STA-0001    SAM-5127    93  Survival Arts                           Sammy
33 STA-0001    SAM-5127    93  Dyna Gears                              Sammy
34 STA-0001B   VISCO-001B  94  Drift Out '94                           Visco
35 STA-0001B   GOLF ROM    94  Eagle Shot Golf                         Sammy
36 STA-0001B   STS0003     94  Twin Eagle II - The Rescue Mission (1)  Seta
37 STA-0001B   VISCO       95  Mobil Suit Gundam Final Shooting (2)    Banpresto
38 STA-0001B   P1-102A     95  Mahjong Hyper Reaction                  Sammy
39 ?           ?           95  Ultra X Weapons / Ultra Keibitai        Banpresto / Tsuburaya Prod.
40 STA-0001B   VISCO-JJ1   96  Lovely Pop Mahjong JangJang Shimasho    Visco
41 STA-0001B   VISCO-001B  96  Storm Blade                             Visco
42 STA-0001B   P1-105A     96? Meosis Magic                            Sammy
43 STA-0001B   ?           97  Joryuu Syougi Kyoushitsu (3)            Visco
44 STA-0001B   VISCO-JJ1   97  Koi Koi Shimasho 2                      Visco
45 STA-0001B   P1-112A     97  Mahjong Hyper Reaction 2                Sammy
46 STA-0001B   STS-0001    97  Monster Slider                          Visco / Datt
47 STA-0001    dedicated   97  Super Real Mahjong P7                   Seta
48 STA-0001B   VISCO-JJ1   98  Gourmet Battle Quiz Ryorioh CooKing     Visco
49 STA-0001B   P1-112C     98  Pachinko Sexy Reaction                  Sammy
50 STA-0001B   B1-001A     99  Pachinko Sexy Reaction 2                Sammy
51 STA-0001B   P1-112C     99  Change Air Blade                        Visco
52 STA-0001B   VISCO-JJ1   00  Lovely Pop Mahjong JangJang Shimasho 2  Visco
53 STA-0001B   SSV_SUB     00  Vasara                                  Visco
54 STA-0001B   SSV_SUB     01  Vasara 2                                Visco
55 -----------------------------------------------------------------------------------
56 
57 (1) Uses ST010 MCU / Math chip
58 (2) Uses ST-0009 & ST-0020 & Light Gun
59 (3) Uses NEC V810 CPU as sub cpu for the AI (basically the same as the majinsen games on st0016)
60 
61 SSV Hardware Overview
62 Sammy/Seta/Visco, 1993-2001
63 
64 SSV was a joint venture between "S"ammy, "S"eta and "V"isco to produce a high quality 32-bit
65 RISC-based hardware platform.
66 
67 The SSV main board contains all of the CPUs, RAM, custom ICs and sound chips. The lower PCB plugs
68 into 4x 64-pin connectors and contains the game software and any additional game-specific connectors
69 for controllers etc. The SSV games can be swapped by simply exchanging the lower (game) PCB onto any
70 SSV main board. There is an older main board STA-0001 which is not compatible with _some_ of the
71 newer games. The actual PCB will plug in, but the games will not boot up, instead displaying some
72 kind of debug screen full of numbers. This is known to occur on Vasara and Vasara 2 but may occur
73 with other games also. AFAIK, the actual PCBs look identical!
74 
75 PCB Layouts
76 -----------
77 
78 Main Board (common to all SSV-based games)
79 
80 STA-0001B SYSTEM SSV
81 |---------------------------------------------------------|
82 | 2066   VOL                                              |
83 |TA8210                    |--------|      74ALS245 x6    |
84 |      TL072 |--------|    |        |                     |
85 |H           |ENSONIQ |    | ST0007 |                 JP1 |
86 |      TL072 |ES5506  |    |        |   |--------|JP2     |
87 |            |OTTOR2  |    |--------|   |        |74ALS74 |
88 |S           |--------|                 |  V60   |        |
89 |      D6376                74ALS08     |        |74F32   |
90 |   74LS07                              |--------|        |
91 |          TC4050                                 JP3     |
92 |J TD62064                                                |
93 |A              74ALS245                                  |
94 |M      LM358      74ALS245                               |
95 |M        |------|     74ALS245                           |
96 |A        |ST0004|                 681000  681000         |
97 |         |      |                                        |
98 ||------| |------| 43256  43256 43256       43256  43256  |
99 ||ST0005|                         |--------|      JP4     |
100 ||      |      48MHz              |        |       MB3771 |
101 ||------|42.9545MHz   74AC245     | ST0006 | 74ALS273     |
102 |                         74F245  |        |       74F04  |
103 | DSW1(8)   DSW2(8)               |--------|              |
104 |---------------------------------------------------------|
105 (Note All IC's Shown)
106 
107 Notes:
108       H       - 3 pin connector for additional sound output
109       S       - 5 pin connector for additional sound output
110       D6376   - NEC D6376 2-channel 16-bit D/A converter (SOIC16)
111       V60     - NEC D70615GD-16 V60 CPU, clock 16.000MHz [48/3] (QFP120)
112       ES5506  - Ensoniq ES5506 sound IC, clock 16.000MHz [48/3] (PLCC68)
113       LM358   - National Semiconductor LM358 Low Power Dual Operational Amplifier (DIP8)
114       2066    - New Japan Radio NJM2066 Dual Operational Amplifier (DIP16)
115       TL072   - Texas Instruments TL072 Low Noise JFET-Input Operational Amplifier (DIP8)
116       TA8210  - Toshiba TA8210 20W 2-channel Audio Power Amplifier
117       43256   - Sharp LH52B256-70LL 32K x8 SRAM (DIP28)
118                 Note all sockets with 43256 can accept DIP32 128K x8 SRAM instead depending on
119                 game requirements
120       681000  - Samsung KM681000ALP-7L 128K x8 SRAM (DIP32)
121       JP1     - 3 pin jumper, hardwired on PCB to 2-3
122       JP2     - 3 pin jumper, hardwired on PCB to 2-3
123       JP3     - 3 pin jumper, hardwired on PCB to 1-3
124       JP4     - 3 pin jumper, hardwired on PCB to 1-3
125 
126       SETA custom IC's -
127                          ST-0004 Video DAC (QFP64)
128                          ST-0005 Parallel I/O (QFP100)
129                          ST-0006 Video controller (QFP208, covered with large heatsink)
130                          ST-0007 System controller (QFP160)
131 
132 To Do:
133 
134 - hypreac2  :   communication with other units
135 
136 - janjans2  :   Coin inputs don't register in the input test
137 
138 - jsk       :   Coin inputs don't register in the input test
139 
140 - mslider   :   Coin inputs don't register in the input test
141 
142 - srmp4     :   Coin inputs don't register in the input test
143 
144 - srmp7     :   Needs interrupts by the sound chip (not properly hooked up yet). Kludged to work.
145 
146 Notes:
147 
148 - gdfs      :   Hold 1P Start on startup to enter test mode
149 
150 - jsk       :   Push 1P Start and 2P Start to advance to sound test
151 
152 
153     code @ $e75cdc
154 
155      W:
156             0x482000 - 0x482007 - values taken from obj table
157             0x482040 - 0x482043 - write latch ?
158 
159      R:
160             0x482022 - 0x482023 - result = direction, probably : 00 = down, 40 = left, 80 = up, c0 = right
161             0x482042 - 0x482043 - protection status bits ?
162 
163 ***************************************************************************/
164 
165 #include "emu.h"
166 #include "includes/ssv.h"
167 
168 #include "cpu/v810/v810.h"
169 #include "cpu/v60/v60.h"
170 #include "machine/nvram.h"
171 #include "machine/watchdog.h"
172 #include "speaker.h"
173 
174 
175 /***************************************************************************
176 
177 
178                                 Interrupts
179 
180 
181 ***************************************************************************/
182 
183 /* Update the IRQ state based on all possible causes */
update_irq_state()184 void ssv_state::update_irq_state()
185 {
186 	m_maincpu->set_input_line(0, (m_requested_int & m_irq_enable)? ASSERT_LINE : CLEAR_LINE);
187 }
188 
IRQ_CALLBACK_MEMBER(ssv_state::irq_callback)189 IRQ_CALLBACK_MEMBER(ssv_state::irq_callback)
190 {
191 	for (int i = 0; i <= 7; i++)
192 	{
193 		if (m_requested_int & (1 << i))
194 		{
195 			uint16_t vector = m_irq_vectors[i * (16/2)] & 7;
196 			return vector;
197 		}
198 	}
199 	return 0;
200 }
201 
irq_ack_w(offs_t offset,uint16_t data)202 void ssv_state::irq_ack_w(offs_t offset, uint16_t data)
203 {
204 	int level = ((offset * 2) & 0x70) >> 4;
205 
206 	m_requested_int &= ~(1 << level);
207 
208 	update_irq_state();
209 }
210 
211 /*
212     IRQ Enable Register:
213 
214     drifto94:   c at the start
215     hypreact:   ff at the start
216     hypreac2:   ff at the start
217     janjans1:   0,6c,60
218     keithlcy:   c at the start
219     meosism:    ff at the start
220     mslider:    c at the start
221     ryorioh:    0,c at the start
222     srmp4:      8 at the start
223     srmp7:      8 at the start, 28, 40 (seems related to 21000e writes)
224     survarts:   0,8 at the start
225     sxyreact:   ff at the start
226     ultrax:     40,00 at the start then 42,4a
227     twineag2:   40,00 at the start then 42,4a
228 */
irq_enable_w(offs_t offset,uint16_t data,uint16_t mem_mask)229 void ssv_state::irq_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask)
230 {
231 	COMBINE_DATA(&m_irq_enable);
232 }
233 
TIMER_DEVICE_CALLBACK_MEMBER(ssv_state::interrupt)234 TIMER_DEVICE_CALLBACK_MEMBER(ssv_state::interrupt)
235 {
236 	int scanline = param;
237 
238 	if (scanline == 0)
239 	{
240 		if (m_interrupt_ultrax)
241 		{
242 			m_requested_int |= 1 << 1;  // needed by ultrax to coin up, breaks cairblad
243 			update_irq_state();
244 		}
245 	}
246 	else if ((scanline == 120) && m_raster_interrupt_enabled)
247 	{
248 		/* scanline can almost certainly be programmed, where is the register? (unless it's really just a 'half screen' interrupt)
249 		   this split position seems to be correct for pastelis 2 player mode, the end credits aren't quite right, but like the 'for japan' warning it seems to be
250 		   more based on polling vblank_read than the raster interrupt.
251 		   note, janjans1 and keithlcy and ryorioh might be using it too (they enable this IRQ level at least) */
252 		m_requested_int |= 1 << 2;
253 		update_irq_state();
254 		//m_screen->update_partial(m_screen->vpos() - 1);
255 	}
256 	else if(scanline == 240)
257 	{
258 		m_requested_int |= 1 << 3;  // vblank
259 		update_irq_state();
260 	}
261 }
262 
WRITE_LINE_MEMBER(gdfs_state::adc_int_w)263 WRITE_LINE_MEMBER(gdfs_state::adc_int_w)
264 {
265 	if (state)
266 	{
267 		m_requested_int |= 1 << 6;  // reads lightgun (4 times for 4 axis)
268 		update_irq_state();
269 	}
270 }
271 
272 /***************************************************************************
273 
274 
275                             Coins Lockout / Counter
276 
277 
278 ***************************************************************************/
279 
280 /*
281     drifto94:   c3
282     janjans1:   c3
283     keithlcy:   c3
284     mslider:    c3, 83 in test mode
285     ryorioh:    c3
286 
287     hypreac2:   80
288     hypreact:   80
289     meosism:    83
290     srmp4:      83, c0 in test mode (where only tilemap sprites are used)
291     srmp7:      80
292     survarts:   83
293     sxyreact:   80
294 */
lockout_w(offs_t offset,uint16_t data,uint16_t mem_mask)295 void ssv_state::lockout_w(offs_t offset, uint16_t data, uint16_t mem_mask)
296 {
297 //  popmessage("%02X",data & 0xff);
298 	if (ACCESSING_BITS_0_7)
299 	{
300 		machine().bookkeeping().coin_lockout_w(1,~data & 0x01);
301 		machine().bookkeeping().coin_lockout_w(0,~data & 0x02);
302 		machine().bookkeeping().coin_counter_w(1, data & 0x04);
303 		machine().bookkeeping().coin_counter_w(0, data & 0x08);
304 //                        data & 0x40?
305 		enable_video(data & 0x80);
306 	}
307 }
308 
309 /* Same as above but with inverted lockout lines */
lockout_inv_w(offs_t offset,uint16_t data,uint16_t mem_mask)310 void ssv_state::lockout_inv_w(offs_t offset, uint16_t data, uint16_t mem_mask)
311 {
312 //  popmessage("%02X",data & 0xff);
313 	if (ACCESSING_BITS_0_7)
314 	{
315 		machine().bookkeeping().coin_lockout_w(1, data & 0x01);
316 		machine().bookkeeping().coin_lockout_w(0, data & 0x02);
317 		machine().bookkeeping().coin_counter_w(1, data & 0x04);
318 		machine().bookkeeping().coin_counter_w(0, data & 0x08);
319 //                        data & 0x40?
320 		enable_video(data & 0x80);
321 	}
322 }
323 
machine_reset()324 void ssv_state::machine_reset()
325 {
326 	m_requested_int = 0;
327 }
328 
329 
330 /***************************************************************************
331 
332 
333                                 DSP
334 
335 
336 ***************************************************************************/
337 
dsp_prg_map(address_map & map)338 void ssv_state::dsp_prg_map(address_map &map)
339 {
340 	map(0x0000, 0x3fff).rom().region("dspprg", 0);
341 }
342 
dsp_data_map(address_map & map)343 void ssv_state::dsp_data_map(address_map &map)
344 {
345 	map(0x0000, 0x07ff).rom().region("dspdata", 0);
346 }
347 
dsp_dr_r()348 uint16_t ssv_state::dsp_dr_r()
349 {
350 	return m_dsp->snesdsp_read(true);
351 }
352 
dsp_dr_w(uint16_t data)353 void ssv_state::dsp_dr_w(uint16_t data)
354 {
355 	m_dsp->snesdsp_write(true, data);
356 }
357 
dsp_r(offs_t offset)358 uint16_t ssv_state::dsp_r(offs_t offset)
359 {
360 	uint16_t temp = m_dsp->dataram_r(offset/2);
361 	uint16_t res;
362 
363 	if (offset & 1)
364 	{
365 		res = temp>>8;
366 	}
367 	else
368 	{
369 		res = temp & 0xff;
370 	}
371 
372 	return res;
373 }
374 
dsp_w(offs_t offset,uint16_t data)375 void ssv_state::dsp_w(offs_t offset, uint16_t data)
376 {
377 	uint16_t temp = m_dsp->dataram_r(offset/2);
378 
379 	if (offset & 1)
380 	{
381 		temp &= 0xff;
382 		temp |= data<<8;
383 	}
384 	else
385 	{
386 		temp &= 0xff00;
387 		temp |= data;
388 	}
389 
390 	m_dsp->dataram_w(offset/2, temp);
391 }
392 
393 /***************************************************************************
394 
395 
396                                 Memory Maps
397 
398 
399 ***************************************************************************/
400 
401 #ifdef UNUSED_FUNCTION
fake_r(offs_t offset)402 uint16_t ssv_state::fake_r(offs_t offset){   return ssv_scroll[offset];  }
403 #endif
404 
ssv_map(address_map & map,u32 rom)405 void ssv_state::ssv_map(address_map &map, u32 rom)
406 {
407 	map(0x000000, 0x00ffff).ram().share("mainram");                                                                  /*  RAM     */
408 	map(0x100000, 0x13ffff).ram().share("spriteram");                                                                /*  Sprites */
409 	map(0x140000, 0x15ffff).ram().w("palette", FUNC(palette_device::write16)).share("palette");                      /*  Palette */
410 	map(0x160000, 0x17ffff).ram();                                                                                   /*          */
411 	map(0x1c0000, 0x1c007f).ram().w(FUNC(ssv_state::scroll_w)).share("scroll");                                      /*  Scroll  */
412 	map(0x1c0000, 0x1c0001).r(FUNC(ssv_state::vblank_r));                                                      /*  Vblank? */
413 	map(0x210002, 0x210003).portr("DSW1");
414 	map(0x210004, 0x210005).portr("DSW2");
415 	map(0x210008, 0x210009).portr("P1");
416 	map(0x21000a, 0x21000b).portr("P2");
417 	map(0x21000c, 0x21000d).portr("SYSTEM");
418 	map(0x21000e, 0x21000f).nopr().w(FUNC(ssv_state::lockout_w));                                              /*  Lockout */
419 	map(0x210010, 0x210011).nopw();
420 	map(0x230000, 0x230071).writeonly().share("irq_vectors");                                                        /*  IRQ Vec */
421 	map(0x240000, 0x240071).w(FUNC(ssv_state::irq_ack_w));                                                     /*  IRQ Ack */
422 	map(0x260000, 0x260001).w(FUNC(ssv_state::irq_enable_w));                                                  /*  IRQ En  */
423 	map(0x300000, 0x30007f).rw("ensoniq", FUNC(es5506_device::read), FUNC(es5506_device::write)).umask16(0x00ff);    /*  Sound   */
424 	map(rom, 0xffffff).rom().region("maincpu", 0);                                                                   /*  ROM     */
425 }
426 
427 /***************************************************************************
428                                 Drift Out '94
429 ***************************************************************************/
430 
drifto94_unknown_r()431 uint16_t ssv_state::drifto94_unknown_r()
432 {
433 	return machine().rand() & 0xffff;
434 }
435 
drifto94_map(address_map & map)436 void ssv_state::drifto94_map(address_map &map)
437 {
438 	ssv_map(map, 0xc00000);
439 //  map(0x210002, 0x210003).nopw();                                      // ? 1 at the start
440 	map(0x400000, 0x47ffff).writeonly();                                       // ?
441 	map(0x480000, 0x480001).rw(FUNC(ssv_state::dsp_dr_r), FUNC(ssv_state::dsp_dr_w));
442 	map(0x482000, 0x482fff).rw(FUNC(ssv_state::dsp_r), FUNC(ssv_state::dsp_w));
443 	map(0x483000, 0x485fff).nopw();                                        // ?
444 	map(0x500000, 0x500001).nopw();                                        // ??
445 	map(0x510000, 0x510001).r(FUNC(ssv_state::drifto94_unknown_r));                       // ??
446 	map(0x520000, 0x520001).r(FUNC(ssv_state::drifto94_unknown_r));                       // ??
447 	map(0x580000, 0x5807ff).ram().share("nvram");   // NVRAM
448 }
449 
450 
451 /***************************************************************************
452                      Mobil Suit Gundam Final Shooting
453 ***************************************************************************/
454 
eeprom_r()455 uint16_t gdfs_state::eeprom_r()
456 {
457 	return m_adc->data_r() | (m_eeprom->do_read() << 8);
458 }
459 
eeprom_w(offs_t offset,uint16_t data,uint16_t mem_mask)460 void gdfs_state::eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask)
461 {
462 	if (data & ~0x7b00)
463 		logerror("%s - Unknown EEPROM bit written %04X\n",machine().describe_context(),data);
464 
465 	if ( ACCESSING_BITS_8_15 )
466 	{
467 //      data & 0x8000 ? (near palette writes)
468 //      data & 0x0001 ?
469 
470 		// latch the bit
471 		m_eeprom->di_write(BIT(data, 14));
472 
473 		// reset line asserted: reset.
474 		m_eeprom->cs_write(BIT(data, 12) ? ASSERT_LINE : CLEAR_LINE);
475 
476 		// clock line asserted: write latch or select next bit to read
477 		m_eeprom->clk_write(BIT(data, 13) ? ASSERT_LINE : CLEAR_LINE);
478 
479 		m_adc->address_w((data & 0x0700) >> 8);
480 		m_adc->start_w(BIT(data, 11));
481 	}
482 }
483 
484 
gdfs_map(address_map & map)485 void gdfs_state::gdfs_map(address_map &map)
486 {
487 	ssv_map(map, 0xc00000);
488 	map(0x400000, 0x41ffff).ram().w(FUNC(gdfs_state::tmapram_w)).share("gdfs_tmapram");
489 	map(0x420000, 0x43ffff).ram();
490 	map(0x440000, 0x44003f).ram().share("gdfs_tmapscroll");
491 	map(0x500000, 0x500001).w(FUNC(gdfs_state::eeprom_w));
492 	map(0x540000, 0x540001).r(FUNC(gdfs_state::eeprom_r));
493 	map(0x600000, 0x600fff).ram();
494 	map(0x800000, 0x87ffff).rw(m_st0020, FUNC(st0020_device::sprram_r), FUNC(st0020_device::sprram_w));
495 	map(0x8c0000, 0x8c00ff).rw(m_st0020, FUNC(st0020_device::regs_r), FUNC(st0020_device::regs_w));
496 	map(0x900000, 0x9fffff).rw(m_st0020, FUNC(st0020_device::gfxram_r), FUNC(st0020_device::gfxram_w));
497 }
498 
499 
500 /***************************************************************************
501                                 Hyper Reaction
502 ***************************************************************************/
503 
504 /*
505     The game prints "backup ram ok" and there is code to test some ram
506     at 0x580000-0x5bffff. The test is skipped and this ram isn't used
507     though. I guess it's either a left-over or there are different
508     version with some battery backed RAM (which would indeed be on the
509     ROM board, AFAIK)
510 */
511 
hypreact_input_r()512 uint16_t ssv_state::hypreact_input_r()
513 {
514 	uint16_t input_sel = *m_input_sel;
515 
516 	if (input_sel & 0x0001) return m_io_key[0]->read();
517 	if (input_sel & 0x0002) return m_io_key[1]->read();
518 	if (input_sel & 0x0004) return m_io_key[2]->read();
519 	if (input_sel & 0x0008) return m_io_key[3]->read();
520 	logerror("CPU #0 PC %06X: unknown input read: %04X\n",m_maincpu->pc(),input_sel);
521 	return 0xffff;
522 }
523 
hypreact_map(address_map & map)524 void ssv_state::hypreact_map(address_map &map)
525 {
526 	ssv_map(map, 0xf00000);
527 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
528 //  map(0x210002, 0x210003).nopw();                      // ? 5 at the start
529 	map(0x21000e, 0x21000f).w(FUNC(ssv_state::lockout_inv_w));            // Inverted lockout lines
530 //  map(0x280000, 0x280001).nopr();                       // ? read at the start, value not used
531 	map(0xc00000, 0xc00001).r(FUNC(ssv_state::hypreact_input_r));              // Inputs
532 	map(0xc00006, 0xc00007).ram().share("input_sel");           //
533 	map(0xc00008, 0xc00009).noprw();                                 //
534 }
535 
536 
537 /***************************************************************************
538                                 Hyper Reaction 2
539 ***************************************************************************/
540 
hypreac2_map(address_map & map)541 void ssv_state::hypreac2_map(address_map &map)
542 {
543 	ssv_map(map, 0xe00000);
544 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
545 //  map(0x210002, 0x210003).nopw();                          // ? 5 at the start
546 	map(0x21000e, 0x21000f).w(FUNC(ssv_state::lockout_inv_w));                // Inverted lockout lines
547 //  map(0x280000, 0x280001).nopr();                           // ? read at the start, value not used
548 	map(0x500000, 0x500001).r(FUNC(ssv_state::hypreact_input_r));                  // Inputs
549 	map(0x500002, 0x500003).r(FUNC(ssv_state::hypreact_input_r));                  // (again?)
550 	map(0x520000, 0x520001).writeonly().share("input_sel"); // Inputs
551 //  0x540000, 0x540003  communication with other units
552 }
553 
554 
555 /***************************************************************************
556                                 Jan Jan Simasyo
557 ***************************************************************************/
558 
559 
560 
janjans1_map(address_map & map)561 void ssv_state::janjans1_map(address_map &map)
562 {
563 	ssv_map(map, 0xc00000);
564 	map(0x210000, 0x210001).nopw();                            // koikois2 but not janjans1
565 //  map(0x210002, 0x210003).nopw();                          // ? 1 at the start
566 	map(0x210006, 0x210007).nopr();
567 	map(0x800000, 0x800001).writeonly().share("input_sel"); // Inputs
568 	map(0x800002, 0x800003).r(FUNC(ssv_state::srmp4_input_r));                     // Inputs
569 }
570 
571 
572 /***************************************************************************
573                                 Keith & Lucy
574 ***************************************************************************/
575 
keithlcy_map(address_map & map)576 void ssv_state::keithlcy_map(address_map &map)
577 {
578 	ssv_map(map, 0xe00000);
579 //  map(0x210002, 0x210003).nopw();  // ? 1 at the start
580 	map(0x210010, 0x210011).nopw();    //
581 	map(0x21000e, 0x21000f).nopr(); //
582 	map(0x400000, 0x47ffff).writeonly();   // ?
583 }
584 
585 
586 /***************************************************************************
587                                 Meosis Magic
588 ***************************************************************************/
589 
meosism_map(address_map & map)590 void ssv_state::meosism_map(address_map &map)
591 {
592 	ssv_map(map, 0xf00000);
593 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
594 //  map(0x210002, 0x210003).nopw();                                      // ? 5 at the start
595 //  map(0x280000, 0x280001).nopr();                                       // ? read once, value not used
596 //  map(0x500004, 0x500005).nopw();                                      // ? 0,58,18
597 	map(0x580000, 0x58ffff).ram().share("nvram");   // NVRAM
598 }
599 
600 /***************************************************************************
601                                 Monster Slider
602 ***************************************************************************/
603 
604 /* Monster Slider needs the RAM mirrored for the gameplay logic to work correctly */
605 
mainram_r(offs_t offset)606 uint16_t ssv_state::mainram_r(offs_t offset)
607 {
608 	return m_mainram[offset];
609 }
610 
mainram_w(offs_t offset,uint16_t data,uint16_t mem_mask)611 void ssv_state::mainram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
612 {
613 	COMBINE_DATA(&m_mainram[offset]);
614 }
615 
mslider_map(address_map & map)616 void ssv_state::mslider_map(address_map &map)
617 {
618 	ssv_map(map, 0xf00000);
619 	map(0x010000, 0x01ffff).rw(FUNC(ssv_state::mainram_r), FUNC(ssv_state::mainram_w)); // RAM Mirror
620 //  map(0x210002, 0x210003).nopw();                          // ? 1 at the start
621 	map(0x400000, 0x47ffff).writeonly();                           // ?
622 //  map(0x500000, 0x500001).nopw();                          // ? ff at the start
623 }
624 
625 
626 /***************************************************************************
627                     Gourmet Battle Quiz Ryohrioh CooKing
628 ***************************************************************************/
629 
ryorioh_map(address_map & map)630 void ssv_state::ryorioh_map(address_map &map)
631 {
632 	ssv_map(map, 0xc00000);
633 	map(0x210000, 0x210001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
634 //  map(0x210002, 0x210003).nopw();              // ? 1 at the start
635 }
636 
637 
638 /***************************************************************************
639                             Super Real Mahjong PIV
640 ***************************************************************************/
641 
srmp4_input_r()642 uint16_t ssv_state::srmp4_input_r()
643 {
644 	uint16_t input_sel = *m_input_sel;
645 
646 	if (input_sel & 0x0002) return m_io_key[0]->read();
647 	if (input_sel & 0x0004) return m_io_key[1]->read();
648 	if (input_sel & 0x0008) return m_io_key[2]->read();
649 	if (input_sel & 0x0010) return m_io_key[3]->read();
650 	logerror("CPU #0 PC %06X: unknown input read: %04X\n",m_maincpu->pc(),input_sel);
651 	return 0xffff;
652 }
653 
srmp4_map(address_map & map)654 void ssv_state::srmp4_map(address_map &map)
655 {
656 	ssv_map(map, 0xf00000);
657 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
658 //  map(0x210002, 0x210003).nopw();                          // ? 1,5 at the start
659 	map(0xc0000a, 0xc0000b).r(FUNC(ssv_state::srmp4_input_r));                     // Inputs
660 	map(0xc0000e, 0xc0000f).writeonly().share("input_sel"); // Inputs
661 	map(0xc00010, 0xc00011).nopw();                            //
662 }
663 
664 
665 /***************************************************************************
666                             Super Real Mahjong P7
667 ***************************************************************************/
668 
669 /*
670     Interrupts aren't supported by the chip emulator yet
671     (lev 5 in this case, I guess)
672 */
srmp7_irqv_r()673 uint16_t ssv_state::srmp7_irqv_r()
674 {
675 	return 0x0080;
676 }
677 
srmp7_sound_bank_w(offs_t offset,uint16_t data,uint16_t mem_mask)678 void ssv_state::srmp7_sound_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
679 {
680 	if (ACCESSING_BITS_0_7)
681 	{
682 		m_srmp7_esbank[0]->set_entry(data & 1);
683 		m_srmp7_esbank[1]->set_entry(data & 1);
684 	}
685 //  popmessage("%04X",data);
686 }
687 
srmp7_input_r()688 uint16_t ssv_state::srmp7_input_r()
689 {
690 	uint16_t input_sel = *m_input_sel;
691 
692 	if (input_sel & 0x0002) return m_io_key[0]->read();
693 	if (input_sel & 0x0004) return m_io_key[1]->read();
694 	if (input_sel & 0x0008) return m_io_key[2]->read();
695 	if (input_sel & 0x0010) return m_io_key[3]->read();
696 	logerror("CPU #0 PC %06X: unknown input read: %04X\n",m_maincpu->pc(),input_sel);
697 	return 0xffff;
698 }
699 
srmp7_map(address_map & map)700 void ssv_state::srmp7_map(address_map &map)
701 {
702 	ssv_map(map, 0xc00000);
703 	map(0x010000, 0x050faf).ram();                                     // More RAM
704 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
705 //  map(0x210002, 0x210003).nopw();                          // ? 0,4 at the start
706 	map(0x21000e, 0x21000f).w(FUNC(ssv_state::lockout_inv_w));                // Coin Counters / Lockouts
707 	map(0x300076, 0x300077).r(FUNC(ssv_state::srmp7_irqv_r));                      // Sound
708 //  0x540000, 0x540003, related to lev 5 irq?
709 	map(0x580000, 0x580001).w(FUNC(ssv_state::srmp7_sound_bank_w));               // Sound Bank
710 	map(0x600000, 0x600001).r(FUNC(ssv_state::srmp7_input_r));                     // Inputs
711 	map(0x680000, 0x680001).writeonly().share("input_sel"); // Inputs
712 }
713 
srmp7_es5506_bank2_map(address_map & map)714 void ssv_state::srmp7_es5506_bank2_map(address_map &map)
715 {
716 	map(0x000000, 0x1fffff).bankr(m_srmp7_esbank[0]);
717 }
718 
srmp7_es5506_bank3_map(address_map & map)719 void ssv_state::srmp7_es5506_bank3_map(address_map &map)
720 {
721 	map(0x000000, 0x1fffff).bankr(m_srmp7_esbank[1]);
722 }
723 
724 
725 /***************************************************************************
726                                 Survival Arts
727 ***************************************************************************/
728 
survarts_map(address_map & map)729 void ssv_state::survarts_map(address_map &map)
730 {
731 	ssv_map(map, 0xf00000);
732 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
733 //  map(0x210002, 0x210003).nopw();              // ? 0,4 at the start
734 //  map(0x290000, 0x290001).nopr();               // ?
735 //  map(0x2a0000, 0x2a0001).nopr();               // ?
736 
737 	map(0x400000, 0x43ffff).ram();                         // dyna
738 
739 	map(0x500008, 0x500009).portr("ADD_BUTTONS");    // Extra Buttons
740 }
741 
742 
743 /***************************************************************************
744                             Pachinko Sexy Reaction
745 ***************************************************************************/
746 
747 
ballswitch_r()748 uint16_t sxyreact_state::ballswitch_r()
749 {
750 	return m_io_service->read();
751 }
752 
dial_r()753 uint8_t sxyreact_state::dial_r()
754 {
755 	return m_sxyreact_adc->eoc_so_r() ? 0x80 : 0;
756 }
757 
dial_w(uint8_t data)758 void sxyreact_state::dial_w(uint8_t data)
759 {
760 	m_sxyreact_adc->cs_w(BIT(data, 5));
761 	m_sxyreact_adc->sck_w(BIT(data, 6));
762 }
763 
motor_w(uint16_t data)764 void sxyreact_state::motor_w(uint16_t data)
765 {
766 //  popmessage("%04X",data);   // 8 = motor on; 0 = motor off
767 }
768 
cairblad_map(address_map & map)769 void ssv_state::cairblad_map(address_map &map)
770 {
771 	ssv_map(map, 0xe00000);
772 //  map(0x020000, 0x03ffff).rw(FUNC(ssv_state::mainram_r), FUNC(ssv_state::mainram_w));             // sxyreac2 reads / writes here, why?
773 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r));
774 //  map(0x210002, 0x210003).nopw();                                      // ? 1 at the start
775 	map(0x21000e, 0x21000f).w(FUNC(ssv_state::lockout_inv_w));                            // Inverted lockout lines
776 	map(0x580000, 0x58ffff).ram().share("nvram");   // NVRAM
777 }
778 
sxyreact_map(address_map & map)779 void sxyreact_state::sxyreact_map(address_map &map)
780 {
781 	cairblad_map(map);
782 	map(0x500002, 0x500003).r(FUNC(sxyreact_state::ballswitch_r));                         // ?
783 	map(0x500004, 0x500004).r(FUNC(sxyreact_state::dial_r));                               // Dial Value (serial)
784 	map(0x500004, 0x500005).w(FUNC(sxyreact_state::motor_w));
785 	map(0x520000, 0x520000).w(FUNC(sxyreact_state::dial_w));                              // Dial Value (advance 1 bit)
786 }
787 
788 
789 /***************************************************************************
790                                 Twin Eagle II
791 ***************************************************************************/
792 
793 /* comes as either a standalone board or a standard SSV ROM board (verified) */
794 
twineag2_map(address_map & map)795 void ssv_state::twineag2_map(address_map &map)
796 {
797 	ssv_map(map, 0xe00000);
798 	map(0x010000, 0x03ffff).ram();                         // More RAM
799 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r)); // Watchdog (also value is cmp.b with mem 8)
800 	map(0x480000, 0x480001).rw(FUNC(ssv_state::dsp_dr_r), FUNC(ssv_state::dsp_dr_w));
801 	map(0x482000, 0x482fff).rw(FUNC(ssv_state::dsp_r), FUNC(ssv_state::dsp_w));
802 }
803 
804 
805 /***************************************************************************
806                                     Ultra X
807 ***************************************************************************/
808 
809 /* standalone board based on SSV hardware */
810 
ultrax_map(address_map & map)811 void ssv_state::ultrax_map(address_map &map)
812 {
813 	ssv_map(map, 0xe00000);
814 	map(0x010000, 0x03ffff).ram();                         // More RAM
815 	map(0x210000, 0x210001).r("watchdog", FUNC(watchdog_timer_device::reset16_r)); // Watchdog (also value is cmp.b with memory address 8)
816 //  map(0x210002, 0x210003).nopw();              // ? 2,6 at the start
817 }
818 
819 /***************************************************************************
820             Joryuu Syougi Kyoushitsu
821 ***************************************************************************/
822 
823 /* from simple_st0016.cpp */
824 
latch32_r(offs_t offset)825 uint32_t ssv_state::latch32_r(offs_t offset)
826 {
827 	if(!offset)
828 		m_latches[2]&=~2;
829 	return m_latches[offset];
830 }
831 
latch32_w(offs_t offset,uint32_t data,uint32_t mem_mask)832 void ssv_state::latch32_w(offs_t offset, uint32_t data, uint32_t mem_mask)
833 {
834 	if(!offset)
835 		m_latches[2]|=1;
836 	COMBINE_DATA(&m_latches[offset]);
837 	machine().scheduler().synchronize();
838 }
839 
latch16_r(offs_t offset)840 uint16_t ssv_state::latch16_r(offs_t offset)
841 {
842 	if(!offset)
843 		m_latches[2]&=~1;
844 	return m_latches[offset];
845 }
846 
latch16_w(offs_t offset,uint16_t data)847 void ssv_state::latch16_w(offs_t offset, uint16_t data)
848 {
849 	if(!offset)
850 		m_latches[2]|=2;
851 	m_latches[offset]=data;
852 	machine().scheduler().synchronize();
853 }
854 
jsk_map(address_map & map)855 void ssv_state::jsk_map(address_map &map)
856 {
857 	ssv_map(map, 0xf00000);
858 	map(0x050000, 0x05ffff).rw(FUNC(ssv_state::mainram_r), FUNC(ssv_state::mainram_w)); // RAM Mirror?
859 	map(0x210000, 0x210001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
860 	map(0x400000, 0x47ffff).ram();                                     // RAM?
861 	map(0x900000, 0x900007).rw(FUNC(ssv_state::latch16_r), FUNC(ssv_state::latch16_w));
862 }
863 
864 
jsk_v810_mem(address_map & map)865 void ssv_state::jsk_v810_mem(address_map &map)
866 {
867 	map(0x00000000, 0x0001ffff).ram();
868 	map(0x80000000, 0x8001ffff).ram();
869 	map(0xc0000000, 0xc001ffff).ram();
870 	map(0x40000000, 0x4000000f).rw(FUNC(ssv_state::latch32_r), FUNC(ssv_state::latch32_w));
871 	map(0xfff80000, 0xffffffff).rom().region("sub", 0);
872 }
873 
874 
875 /***************************************************************************
876   Eagle Shot Golf
877 ***************************************************************************/
878 
gfxrom_bank_w(uint8_t data)879 void eaglshot_state::gfxrom_bank_w(uint8_t data)
880 {
881 	membank("gfxrom")->set_entry(data < 6 ? data : 6);
882 }
883 
trackball_w(uint8_t data)884 void eaglshot_state::trackball_w(uint8_t data)
885 {
886 	// All these get toggled during trackball reads; the precise arrangement is uncertain
887 	m_upd4701->cs_w(!BIT(data, 6));
888 	m_upd4701->ul_w(BIT(data, 5));
889 	m_upd4701->xy_w(BIT(data, 4));
890 	m_upd4701->resetx_w(BIT(data, 3));
891 	m_upd4701->resety_w(BIT(data, 2));
892 }
893 
894 
895 
gfxram_r(offs_t offset,uint16_t mem_mask)896 uint16_t eaglshot_state::gfxram_r(offs_t offset, uint16_t mem_mask)
897 {
898 	return m_gfxram[offset + (m_scroll[0x76/2] & 0xf) * 0x40000/2];
899 }
900 
gfxram_w(offs_t offset,uint16_t data,uint16_t mem_mask)901 void eaglshot_state::gfxram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
902 {
903 	offset += (m_scroll[0x76/2] & 0xf) * 0x40000/2;
904 	COMBINE_DATA(&m_gfxram[offset]);
905 	m_gfxdecode->gfx(0)->mark_dirty(offset / (16*8/2));
906 }
907 
908 
eaglshot_map(address_map & map)909 void eaglshot_state::eaglshot_map(address_map &map)
910 {
911 	ssv_map(map, 0xf00000);
912 	map(0x180000, 0x1bffff).rw(FUNC(eaglshot_state::gfxram_r), FUNC(eaglshot_state::gfxram_w));
913 	map(0x210000, 0x210001).nopr(); // .r("watchdog", FUNC(watchdog_timer_device::reset16_r));                 // Watchdog
914 //  map(0x210002, 0x210003).nopw();                                      // ? 0,4 at the start
915 	map(0x21000e, 0x21000f).w(FUNC(eaglshot_state::lockout_inv_w));                            // Inverted lockout lines
916 	map(0x800000, 0x800000).w(FUNC(eaglshot_state::gfxrom_bank_w));
917 	map(0x900000, 0x900000).w(FUNC(eaglshot_state::trackball_w));
918 	map(0xa00000, 0xbfffff).bankr("gfxrom");
919 	map(0xc00000, 0xc007ff).ram().share("nvram");   // NVRAM
920 	map(0xd00000, 0xd00000).r(m_upd4701, FUNC(upd4701_device::d_r));
921 }
922 
923 
924 
925 /***************************************************************************
926 
927 
928                                 Input Ports
929 
930 
931 ***************************************************************************/
932 
933 
934 /***************************************************************************
935                         Basic Coinage Settings
936 ***************************************************************************/
937 
938 #define SSV_COINAGE_BASIC( shift, default, name, diploc )                                           \
939 	PORT_DIPNAME( 0x0003 << (shift), (default) << (shift), (name) ) PORT_DIPLOCATION( (diploc) )    \
940 	PORT_DIPSETTING(                 0x0001 << (shift), DEF_STR( 2C_1C ) )                          \
941 	PORT_DIPSETTING(                 0x0003 << (shift), DEF_STR( 1C_1C ) )                          \
942 	PORT_DIPSETTING(                 0x0000 << (shift), DEF_STR( 2C_3C ) )                          \
943 	PORT_DIPSETTING(                 0x0002 << (shift), DEF_STR( 1C_2C ) )
944 
945 #define SSV_COINAGE_STANDARD( shift, default, name, diploc )                                        \
946 	PORT_DIPNAME( 0x0007 << (shift), (default) << (shift), (name) ) PORT_DIPLOCATION( (diploc) )    \
947 	PORT_DIPSETTING(                 0x0005 << (shift), DEF_STR( 3C_1C ) )                          \
948 	PORT_DIPSETTING(                 0x0006 << (shift), DEF_STR( 2C_1C ) )                          \
949 	PORT_DIPSETTING(                 0x0007 << (shift), DEF_STR( 1C_1C ) )                          \
950 	PORT_DIPSETTING(                 0x0004 << (shift), DEF_STR( 1C_2C ) )                          \
951 	PORT_DIPSETTING(                 0x0003 << (shift), DEF_STR( 1C_3C ) )                          \
952 	PORT_DIPSETTING(                 0x0002 << (shift), DEF_STR( 1C_4C ) )                          \
953 	PORT_DIPSETTING(                 0x0001 << (shift), DEF_STR( 1C_5C ) )                          \
954 	PORT_DIPSETTING(                 0x0000 << (shift), DEF_STR( 1C_6C ) )
955 
956 #define SSV_COINAGE_EXTENDED( shift, default, name, diploc )                                        \
957 	PORT_DIPNAME( 0x000f << (shift), (default) << (shift), (name) ) PORT_DIPLOCATION( (diploc) )    \
958 	PORT_DIPSETTING(                 0x0007 << (shift), DEF_STR( 4C_1C ) )                          \
959 	PORT_DIPSETTING(                 0x0008 << (shift), DEF_STR( 3C_1C ) )                          \
960 	PORT_DIPSETTING(                 0x0009 << (shift), DEF_STR( 2C_1C ) )                          \
961 	PORT_DIPSETTING(                 0x000f << (shift), DEF_STR( 1C_1C ) )                          \
962 	PORT_DIPSETTING(                 0x0006 << (shift), DEF_STR( 2C_3C ) )                          \
963 	PORT_DIPSETTING(                 0x000e << (shift), DEF_STR( 1C_2C ) )                          \
964 	PORT_DIPSETTING(                 0x000d << (shift), DEF_STR( 1C_3C ) )                          \
965 	PORT_DIPSETTING(                 0x000c << (shift), DEF_STR( 1C_4C ) )                          \
966 	PORT_DIPSETTING(                 0x000b << (shift), DEF_STR( 1C_5C ) )                          \
967 	PORT_DIPSETTING(                 0x000a << (shift), DEF_STR( 1C_6C ) )                          \
968 /* "** ADDED MULTIPLE COIN FEATURE **" */                                                           \
969 	PORT_DIPSETTING(                 0x0005 << (shift), "Multiple Coin Feature A" )                 \
970 /* 2c-1c, 4c-2c, 5c-3c & 6c-4c */                                                                   \
971 	PORT_DIPSETTING(                 0x0004 << (shift), "Multiple Coin Feature B" )                 \
972 /* 2c-1c, 4c-3c */                                                                                  \
973 	PORT_DIPSETTING(                 0x0003 << (shift), "Multiple Coin Feature C" )                 \
974 /* 1c-1c, 2c-2c, 3c-3c, 4c-4c, 5c-6c */                                                             \
975 	PORT_DIPSETTING(                 0x0002 << (shift), "Multiple Coin Feature D" )                 \
976 /* 1c-1c, 2c-2c, 3c-3c & 4c-5c */                                                                   \
977 	PORT_DIPSETTING(                 0x0001 << (shift), "Multiple Coin Feature E" )                 \
978 /* 1c-1c, 2c-3c */                                                                                  \
979 /* Meaning of all "ON" varies between games so it's not included here */
980 
981 
982 /***************************************************************************
983                         Common Joystick Inputs
984 ***************************************************************************/
985 
986 static INPUT_PORTS_START( ssv_joystick )
987 	PORT_START("DSW1")  // IN0 - $210002
988 	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Modified below */
989 
990 	PORT_START("DSW2")  // IN1 - $210004
991 	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Modified below */
992 
993 	PORT_START("P1")    // IN2 - $210008
994 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
995 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
996 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
997 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
998 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
999 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1000 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1001 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1002 
1003 	PORT_START("P2")    // IN3 - $21000a
1004 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )
1005 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1006 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1007 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1008 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
1009 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
1010 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
1011 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
1012 
1013 	PORT_START("SYSTEM")    // IN4 - $21000c
1014 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
1015 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
1016 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1017 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
1018 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1)
1019 	PORT_BIT( 0x00e0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
1020 INPUT_PORTS_END
1021 
1022 
1023 /***************************************************************************
1024                         Common Mahjong Inputs
1025 ***************************************************************************/
1026 
1027 static INPUT_PORTS_START( ssv_mahjong )
1028 	PORT_INCLUDE(ssv_joystick)
1029 
1030 	PORT_START("KEY0")  // IN5 - $800002(0)
1031 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
1032 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1033 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
1034 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_L )
1035 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_H )
1036 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_D )
1037 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1038 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1039 
1040 	PORT_START("KEY1")  // IN6 - $800002(1)
1041 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
1042 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
1043 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
1044 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_K )
1045 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_G )
1046 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_C )
1047 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1048 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1049 
1050 	PORT_START("KEY2")  // IN7 - $800002(2)
1051 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
1052 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
1053 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_N )
1054 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_J )
1055 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_F )
1056 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_B )
1057 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1058 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1059 
1060 	PORT_START("KEY3")  // IN8 - $800002(3)
1061 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
1062 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
1063 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_M )
1064 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_I )
1065 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_E )
1066 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_A )
1067 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
1068 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
1069 INPUT_PORTS_END
1070 
1071 
1072 /***************************************************************************
1073                          Common Quiz Inputs
1074 ***************************************************************************/
1075 
1076 static INPUT_PORTS_START( ssv_quiz )
1077 	PORT_START("DSW1")  // IN0 - $210002
1078 	PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "DSW1:1" ) /* Manual states this dip is "Unused" */
1079 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:2" )
1080 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1081 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1082 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
1083 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
1084 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1085 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1086 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
1087 	PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* Modified below */
1088 
1089 	PORT_START("DSW2")  // IN1 - $210004
1090 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
1091 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )     /* 15 sec */
1092 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )   /* 12 sec */
1093 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )     /* 10 sec */
1094 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )  /* 8 sec */
1095 	PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* Modified below */
1096 
1097 	PORT_START("P1")    // IN2 - $210008
1098 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1  )
1099 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1100 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
1101 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
1102 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
1103 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1104 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1105 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1106 
1107 	PORT_START("P2")    // IN3 - $21000a
1108 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2  )
1109 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
1110 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
1111 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
1112 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
1113 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1114 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1115 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1116 
1117 	PORT_START("SYSTEM")    // IN4 - $21000c
1118 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
1119 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
1120 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1121 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
1122 	PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
1123 INPUT_PORTS_END
1124 
1125 
1126 /***************************************************************************
1127                            Change Air Blade
1128 ***************************************************************************/
1129 
1130 static INPUT_PORTS_START( cairblad )
1131 	PORT_INCLUDE(ssv_joystick)
1132 
1133 	PORT_MODIFY("DSW1") // IN0
1134 	SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
1135 	SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
1136 	PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW1:7" ) /* Manual lists this dip as "Unused" */
1137 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW1:8" ) /* Manual lists this dip as "Unused" */
1138 
1139 	PORT_MODIFY("DSW2") // IN1
1140 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
1141 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1142 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1143 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
1144 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1145 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
1146 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
1147 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
1148 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
1149 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
1150 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1151 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) )    PORT_DIPLOCATION( "DSW2:5" )
1152 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1153 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1154 	PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION( "DSW2:6,7" )
1155 	PORT_DIPSETTING(      0x0040, "Every 2 Mil" )
1156 	PORT_DIPSETTING(      0x0060, "2 Mil/6 Mil" )
1157 	PORT_DIPSETTING(      0x0020, "4 Million" )
1158 	PORT_DIPSETTING(      0x0000, DEF_STR( None ) )
1159 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
1160 INPUT_PORTS_END
1161 
1162 
1163 /***************************************************************************
1164                                 Drift Out '94
1165 ***************************************************************************/
1166 
1167 static INPUT_PORTS_START( drifto94 )
1168 	PORT_INCLUDE(ssv_joystick)
1169 
1170 	PORT_MODIFY("DSW1") // IN0 - $210002
1171 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:1" )
1172 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1173 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1174 	PORT_SERVICE_DIPLOC( 0x0002, IP_ACTIVE_LOW, "DSW1:2" )
1175 	PORT_DIPNAME( 0x0004, 0x0004, "Sound Test" )            PORT_DIPLOCATION( "DSW1:3" )
1176 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1177 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1178 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
1179 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1180 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1181 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
1182 	SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
1183 
1184 	PORT_MODIFY("DSW2") // IN1 - $210004
1185 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
1186 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
1187 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
1188 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
1189 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1190 	PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "DSW2:3" ) /* Manual lists these dips as "Unused" */
1191 	PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
1192 	PORT_DIPNAME( 0x0010, 0x0010, "Music Volume" )          PORT_DIPLOCATION( "DSW2:5" )
1193 	PORT_DIPSETTING(      0x0000, "Quiet" )
1194 	PORT_DIPSETTING(      0x0010, "Loud" )
1195 	PORT_DIPNAME( 0x0020, 0x0020, "Sound Volume" )          PORT_DIPLOCATION( "DSW2:6" )
1196 	PORT_DIPSETTING(      0x0000, "Quiet" )
1197 	PORT_DIPSETTING(      0x0020, "Loud" )
1198 	PORT_DIPNAME( 0x0040, 0x0040, "Save Best Time" )        PORT_DIPLOCATION( "DSW2:7" )
1199 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
1200 	PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
1201 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" ) /* Manual lists this dip as "Unused" */
1202 INPUT_PORTS_END
1203 
1204 
1205 /***************************************************************************
1206                 Dyna Gears
1207 ***************************************************************************/
1208 
1209 static INPUT_PORTS_START( dynagear )
1210 	PORT_INCLUDE(ssv_joystick)
1211 
1212 	PORT_MODIFY("DSW1") // IN0 - $210002
1213 	SSV_COINAGE_EXTENDED( 0, 0x0f, DEF_STR( Coin_A ), "DSW1:1,2,3,4" )
1214 	//PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
1215 	SSV_COINAGE_EXTENDED( 4, 0x0f, DEF_STR( Coin_B ), "DSW1:5,6,7,8" )
1216 	//PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
1217 
1218 	PORT_MODIFY("DSW2") // IN0 - $210004
1219 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
1220 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1221 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1222 	PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
1223 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1224 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1225 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
1226 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
1227 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
1228 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
1229 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1230 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:5,6" )
1231 	PORT_DIPSETTING(      0x0010, "1" )
1232 	PORT_DIPSETTING(      0x0030, "2" )
1233 	PORT_DIPSETTING(      0x0020, "3" )
1234 	PORT_DIPSETTING(      0x0000, "4" )
1235 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) )    PORT_DIPLOCATION( "DSW2:7" )
1236 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1237 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1238 	PORT_DIPNAME( 0x0080, 0x0080, "Health" )                PORT_DIPLOCATION( "DSW2:8" )
1239 	PORT_DIPSETTING(      0x0000, "3 Hearts" )
1240 	PORT_DIPSETTING(      0x0080, "4 Hearts" )
1241 
1242 	PORT_START("ADD_BUTTONS")   // IN5 - $500008
1243 	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1244 INPUT_PORTS_END
1245 
1246 /***************************************************************************
1247                                 Pastel Island
1248 ***************************************************************************/
1249 
1250 static INPUT_PORTS_START( pastelis )
1251 	PORT_INCLUDE(ssv_joystick)
1252 
1253 	PORT_MODIFY("DSW1") // IN0 - $210002
1254 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) PORT_DIPLOCATION( "DSW1:1" )
1255 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1256 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1257 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION( "DSW1:2" )
1258 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1259 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1260 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
1261 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION( "DSW1:4" )
1262 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1263 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1264 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) PORT_DIPLOCATION( "DSW1:5,6" )
1265 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
1266 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
1267 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
1268 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
1269 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION( "DSW1:7,8" )
1270 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
1271 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
1272 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
1273 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
1274 
1275 	PORT_MODIFY("DSW2") // IN0 - $210004
1276 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )  PORT_DIPLOCATION( "DSW2:1,2" )
1277 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy) )
1278 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
1279 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
1280 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1281 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) PORT_DIPLOCATION( "DSW2:3" )
1282 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1283 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1284 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) PORT_DIPLOCATION( "DSW2:4" )
1285 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1286 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1287 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) ) PORT_DIPLOCATION( "DSW2:5,6" )
1288 	PORT_DIPSETTING(      0x0020, "1" )
1289 	PORT_DIPSETTING(      0x0030, "2" )
1290 	PORT_DIPSETTING(      0x0010, "3" )
1291 	PORT_DIPSETTING(      0x0000, "4" )
1292 	PORT_DIPNAME( 0x00c0, 0x00c0, "Extend" ) PORT_DIPLOCATION( "DSW2:7,8" )
1293 	PORT_DIPSETTING(      0x0000, "70000, every 90000" )
1294 	PORT_DIPSETTING(      0x0040, "every 70000" )
1295 	PORT_DIPSETTING(      0x0080, "50000, every 70000" )
1296 	PORT_DIPSETTING(      0x00c0, "every 50000" )
1297 
1298 	PORT_START("ADD_BUTTONS")   // IN5 - $500008
1299 	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1300 INPUT_PORTS_END
1301 
1302 /***************************************************************************
1303                                 Eagle Shot Golf
1304 ***************************************************************************/
1305 
1306 static INPUT_PORTS_START( eaglshot )
1307 	PORT_INCLUDE(ssv_joystick)
1308 
1309 	PORT_MODIFY("DSW1") // IN0 - $210002
1310 	SSV_COINAGE_EXTENDED( 0, 0x0f, DEF_STR( Coinage ), "DSW1:1,2,3,4" )
1311 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1312 	PORT_DIPNAME( 0x0010, 0x0010, "Credits To Start" )          PORT_DIPLOCATION( "DSW1:5" )
1313 	PORT_DIPSETTING(      0x0010, "1" )
1314 	PORT_DIPSETTING(      0x0000, "2" )
1315 	PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSW1:6" )
1316 	PORT_DIPSETTING(      0x0020, DEF_STR( Trackball ) )    // trackball dosn't work yet
1317 	PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
1318 	PORT_DIPNAME( 0x0040, 0x0040, "Trackball Type" )            PORT_DIPLOCATION( "DSW1:7" )
1319 	PORT_DIPSETTING(      0x0040, "24 Counts (USA)" )
1320 	PORT_DIPSETTING(      0x0000, "12 Counts (Japan)" )
1321 	PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
1322 
1323 	PORT_MODIFY("DSW2") // IN1 - $210004
1324 	PORT_DIPNAME( 0x0003, 0x0003, "Number Of Holes" )           PORT_DIPLOCATION( "DSW2:1,2" )
1325 	PORT_DIPSETTING(      0x0002, "2" )
1326 	PORT_DIPSETTING(      0x0003, "3" )
1327 	PORT_DIPSETTING(      0x0001, "4" )
1328 	PORT_DIPSETTING(      0x0000, "5" )
1329 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:3,4" )
1330 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
1331 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
1332 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
1333 	/*PORT_DIPSETTING(      0x0000, "???" ) - No listed value for ON & ON */
1334 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:5" )
1335 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1336 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
1337 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION( "DSW2:6" )
1338 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1339 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
1340 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:7" )
1341 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1342 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1343 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
1344 
1345 	PORT_START("TRACKX")    // IN5 - trackball x ($d00000)
1346 	PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_RESET PORT_PLAYER(1)
1347 
1348 	PORT_START("TRACKY")    // IN6 - trackball y ($d00000)
1349 	PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_RESET PORT_PLAYER(1)
1350 INPUT_PORTS_END
1351 
1352 
1353 /***************************************************************************
1354                      Mobil Suit Gundam Final Shooting
1355 ***************************************************************************/
1356 
1357 static INPUT_PORTS_START( gdfs )
1358 	PORT_INCLUDE(ssv_joystick)
1359 
1360 	PORT_MODIFY("DSW1") // IN0 - $210002
1361 	PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Controls ) ) PORT_DIPLOCATION( "DSW1:1" )
1362 	PORT_DIPSETTING(      0x0001, DEF_STR( Joystick ) )
1363 	PORT_DIPSETTING(      0x0000, DEF_STR( Light_Gun ) )
1364 	PORT_DIPNAME( 0x0002, 0x0002, "Light Gun Calibration" ) PORT_DIPLOCATION( "DSW1:2" )
1365 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1366 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1367 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Level_Select ) ) PORT_DIPLOCATION( "DSW1:3" ) /* Manual lists this dip as "Unused" */
1368 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1369 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1370 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Coinage ) )  PORT_DIPLOCATION( "DSW1:4,5" )
1371 //  PORT_DIPSETTING(      0x0000, DEF_STR( 2C_1C ) ) /* 2 Coins to Start, 1 Coin to Continue??? */
1372 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
1373 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_1C ) )
1374 	PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
1375 	PORT_DIPNAME( 0x0020, 0x0020, "Save Scores" )       PORT_DIPLOCATION( "DSW1:6" )
1376 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )       // Clear NVRAM on boot
1377 	PORT_DIPSETTING(      0x0020, DEF_STR( Yes ) )
1378 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:7" )
1379 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1380 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1381 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW1:8" )   /* Manual lists this dip as "Unused" */
1382 
1383 	PORT_MODIFY("DSW2") // IN1 - $210004
1384 	PORT_DIPNAME( 0x0001, 0x0001, "Invert X Axis" )     PORT_DIPLOCATION( "DSW2:1" )
1385 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1386 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1387 	PORT_DIPUNUSED_DIPLOC( 0x0002, 0x0002, "DSW2:2" )   /* Manual lists this dip as "Unused" */
1388 	PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "DSW2:3" )   /* Manual lists this dip as "Unused" */
1389 	PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Language ) ) PORT_DIPLOCATION( "DSW2:4" )
1390 	PORT_DIPSETTING(      0x0000, DEF_STR( English ) )
1391 	PORT_DIPSETTING(      0x0008, DEF_STR( Japanese ) )
1392 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:5" )
1393 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1394 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
1395 	PORT_DIPNAME( 0x0020, 0x0020, "Damage From Machine Gun" )   PORT_DIPLOCATION( "DSW2:6" )    // F76E34
1396 	PORT_DIPSETTING(      0x0020, "Light" )
1397 	PORT_DIPSETTING(      0x0000, "Heavy" )
1398 	PORT_DIPNAME( 0x0040, 0x0040, "Damage From Beam Cannon" )   PORT_DIPLOCATION( "DSW2:7" )    // F77487
1399 	PORT_DIPSETTING(      0x0040, "Light" )
1400 	PORT_DIPSETTING(      0x0000, "Heavy" )
1401 	PORT_DIPNAME( 0x0080, 0x0080, "Damage From Missle" )    PORT_DIPLOCATION( "DSW2:8" )    // F77255
1402 	PORT_DIPSETTING(      0x0080, "Light" )
1403 	PORT_DIPSETTING(      0x0000, "Heavy" )
1404 
1405 	PORT_START("GUNX1") // IN5 - $540000(0)
1406 	PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(1) PORT_INVERT
1407 
1408 	PORT_START("GUNY1") // IN6 - $540000(1)
1409 	PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(1)
1410 
1411 	PORT_START("GUNX2") // IN7 - $540000(2)
1412 	PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(2) PORT_INVERT
1413 
1414 	PORT_START("GUNY2") // IN8 - $540000(3)
1415 	PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(35) PORT_KEYDELTA(10) PORT_PLAYER(2)
1416 INPUT_PORTS_END
1417 
1418 
1419 /***************************************************************************
1420                                 Hyper Reaction
1421 ***************************************************************************/
1422 
1423 static INPUT_PORTS_START( hypreact )
1424 	PORT_START("DSW1")  // IN0 - $210002
1425 	SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSWA:1,2,3" )
1426 	SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSWA:4,5,6" )
1427 	PORT_DIPNAME( 0x0040, 0x0040, "Half Coins To Continue" )    PORT_DIPLOCATION( "DSWA:7" )
1428 	PORT_DIPSETTING(      0x0040, DEF_STR( No ) )
1429 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
1430 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSWA:8" )
1431 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1432 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1433 
1434 	PORT_START("DSW2")  // IN1 - $210004
1435 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSWB:1" )
1436 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1437 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1438 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSWB:2" )
1439 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1440 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
1441 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSWB:3,4" )
1442 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy )    )
1443 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal )  )
1444 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard )    )
1445 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1446 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSWB:5" )
1447 	PORT_DIPSETTING(      0x0010, "Keyboard" )
1448 	PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
1449 	PORT_DIPNAME( 0x0020, 0x0020, "Multiple coins" )            PORT_DIPLOCATION( "DSWB:6" )
1450 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1451 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
1452 	PORT_DIPNAME( 0x0040, 0x0040, "Keep Status On Continue" )   PORT_DIPLOCATION( "DSWB:7" )
1453 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
1454 	PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
1455 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSWB:8" )
1456 
1457 	PORT_START("P1")    // IN2 - $210008 (used in joystick mode)
1458 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
1459 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_NAME("P1 Mahjong Chi (Joy Mode)")
1460 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_NAME("P1 Mahjong Pon (Joy Mode)")
1461 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_NAME("P1 Mahjong Kan (Joy Mode)")
1462 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN       )
1463 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN       )
1464 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
1465 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP   )
1466 
1467 	PORT_START("P2")    // IN3 - $21000a (used in joystick mode)
1468 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 )
1469 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_NAME("P1 Mahjong Reach (Joy Mode)")
1470 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_NAME("P1 Mahjong Ron (Joy Mode)")
1471 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_NAME("Tsumo")// Is this correct?
1472 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
1473 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  )
1474 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN        )
1475 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN        )
1476 
1477 	PORT_START("SYSTEM")    // IN4 - $21000c
1478 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
1479 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
1480 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin & bet
1481 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
1482 	PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
1483 
1484 	PORT_START("KEY0")  // IN5 - $c00000(0)
1485 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A )
1486 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E )
1487 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I )
1488 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M )
1489 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
1490 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1  )
1491 	PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1492 
1493 	PORT_START("KEY1")  // IN6 - $c00000(1)
1494 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B )
1495 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F )
1496 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J )
1497 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N )
1498 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
1499 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
1500 	PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1501 
1502 	PORT_START("KEY2")  // IN7 - $c00000(2)
1503 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C )
1504 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G )
1505 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K )
1506 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
1507 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
1508 	PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1509 
1510 	PORT_START("KEY3")  // IN8 - $c00000(3)
1511 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D )
1512 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H )
1513 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L )
1514 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
1515 	PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1516 INPUT_PORTS_END
1517 
1518 
1519 /***************************************************************************
1520                                 Hyper Reaction 2
1521 ***************************************************************************/
1522 
1523 static INPUT_PORTS_START( hypreac2 )
1524 	PORT_INCLUDE(ssv_joystick)
1525 
1526 	PORT_MODIFY("DSW1") // IN0 - $210002
1527 	SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSWA:1,2,3" )
1528 	SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSWA:4,5,6" )
1529 	PORT_DIPNAME( 0x0040, 0x0040, "Half Coins To Continue" )    PORT_DIPLOCATION( "DSWA:7" )
1530 	PORT_DIPSETTING(      0x0040, DEF_STR( No ) )
1531 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
1532 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSWA:8" )
1533 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1534 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1535 
1536 	PORT_MODIFY("DSW2") // IN1 - $210004
1537 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSWB:1" )
1538 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1539 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1540 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSWB:2" )
1541 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1542 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
1543 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSWB:3,4" )
1544 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
1545 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
1546 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
1547 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1548 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSWB:5" )
1549 	PORT_DIPSETTING(      0x0010, "Keyboard" )
1550 	PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
1551 	PORT_DIPNAME( 0x0020, 0x0020, "Communication" )           PORT_DIPLOCATION( "DSWB:6" )
1552 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1553 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1554 	PORT_DIPNAME( 0x0040, 0x0040, "Communication Mode" )           PORT_DIPLOCATION( "DSWB:7" )
1555 	PORT_DIPSETTING(      0x0040, "SLAVE" )
1556 	PORT_DIPSETTING(      0x0000, "MASTER" )
1557 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSWB:8" )
1558 
1559 	PORT_START("KEY0")  // IN5 - $500000(0)
1560 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A )
1561 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E )
1562 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I )
1563 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M )
1564 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
1565 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1  )
1566 	PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1567 
1568 	PORT_START("KEY1")  // IN6 - $500000(1)
1569 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B )
1570 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F )
1571 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J )
1572 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N )
1573 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
1574 	PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1575 
1576 	PORT_START("KEY2")  // IN7 - $500000(2)
1577 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C )
1578 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G )
1579 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K )
1580 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
1581 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
1582 	PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1583 
1584 	PORT_START("KEY3")  // IN8 - $500000(3)
1585 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D )
1586 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H )
1587 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L )
1588 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
1589 	PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
1590 INPUT_PORTS_END
1591 
1592 
1593 /***************************************************************************
1594                                 JangJang Shimasho
1595 ***************************************************************************/
1596 
1597 static INPUT_PORTS_START( janjans1 )
1598 	PORT_INCLUDE(ssv_mahjong)
1599 
1600 	PORT_MODIFY("DSW1") // IN0 - $210002
1601 	PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "DSW1:1" )
1602 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:2" )
1603 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1604 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1605 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
1606 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
1607 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1608 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1609 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coinage ), "DSW1:5,6" )
1610 	PORT_DIPNAME( 0x0040, 0x0040, "Voice" )                 PORT_DIPLOCATION( "DSW1:7" )
1611 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1612 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
1613 	PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
1614 
1615 	PORT_MODIFY("DSW2") // IN1 - $210004
1616 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
1617 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
1618 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
1619 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
1620 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1621 	PORT_DIPNAME( 0x0004, 0x0004, "Nudity" )                PORT_DIPLOCATION( "DSW2:3" )
1622 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1623 	PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
1624 	PORT_DIPNAME( 0x0008, 0x0008, "Mini Game" )             PORT_DIPLOCATION( "DSW2:4" )
1625 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1626 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1627 	PORT_DIPNAME( 0x0030, 0x0030, "Initial Score" )         PORT_DIPLOCATION( "DSW2:5,6" )
1628 	PORT_DIPSETTING(      0x0020, "1000" )
1629 	PORT_DIPSETTING(      0x0030, "1500" )
1630 	PORT_DIPSETTING(      0x0010, "2000" )
1631 	PORT_DIPSETTING(      0x0000, "3000" )
1632 	PORT_DIPNAME( 0x00c0, 0x00c0, "Communication" )         PORT_DIPLOCATION( "DSW2:7,8" )
1633 //  PORT_DIPSETTING(      0x0080, "unused" )
1634 	PORT_DIPSETTING(      0x00c0, DEF_STR( None ) )
1635 	PORT_DIPSETTING(      0x0040, "Board 1 (Main)" )
1636 	PORT_DIPSETTING(      0x0000, "Board 2 (Sub)" )
1637 INPUT_PORTS_END
1638 
1639 
1640 /***************************************************************************
1641                                 JangJang Shimasho 2
1642 ***************************************************************************/
1643 
1644 static INPUT_PORTS_START( janjans2 )
1645 	PORT_INCLUDE(ssv_mahjong)
1646 
1647 	PORT_MODIFY("DSW1") // IN0 - $210002
1648 	PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "DSW1:1" )
1649 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW1:2" )
1650 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1651 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1652 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
1653 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW1:4" )
1654 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1655 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1656 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coinage ), "DSW1:5,6" )
1657 	PORT_DIPNAME( 0x0040, 0x0040, "Nudity" )                    PORT_DIPLOCATION( "DSW1:7" )
1658 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1659 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
1660 	PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
1661 
1662 	PORT_MODIFY("DSW2") // IN1 - $210004
1663 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:1,2" )
1664 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
1665 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
1666 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
1667 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1668 	PORT_DIPNAME( 0x000c, 0x000c, "Initial Score (vs player)")  PORT_DIPLOCATION( "DSW2:3,4" )
1669 	PORT_DIPSETTING(      0x0008, "10000" )
1670 	PORT_DIPSETTING(      0x0004, "15000" )
1671 	PORT_DIPSETTING(      0x000c, "20000" )
1672 	PORT_DIPSETTING(      0x0000, "25000" )
1673 	PORT_DIPNAME( 0x0030, 0x0030, "Initial Score (vs CPU)" )    PORT_DIPLOCATION( "DSW2:5,6" )
1674 	PORT_DIPSETTING(      0x0020, "1000" )
1675 	PORT_DIPSETTING(      0x0030, "1500" )
1676 	PORT_DIPSETTING(      0x0010, "2000" )
1677 	PORT_DIPSETTING(      0x0000, "3000" )
1678 	PORT_DIPNAME( 0x00c0, 0x00c0, "Communication" )             PORT_DIPLOCATION( "DSW2:7,8" )
1679 //  PORT_DIPSETTING(      0x0080, "unused" )
1680 	PORT_DIPSETTING(      0x00c0, DEF_STR( None ) )
1681 	PORT_DIPSETTING(      0x0040, "Transmitter" )
1682 	PORT_DIPSETTING(      0x0000, "Receiver" )
1683 INPUT_PORTS_END
1684 
1685 
1686 /***************************************************************************
1687                            Joryuu Syougi Kyoushitsu
1688 ***************************************************************************/
1689 
1690 static INPUT_PORTS_START( jsk )
1691 	PORT_INCLUDE(ssv_joystick)
1692 
1693 	PORT_MODIFY("DSW1") // IN0 - $210002
1694 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )      PORT_DIPLOCATION("DSW1:1,2,3")
1695 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1696 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
1697 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
1698 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
1699 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
1700 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
1701 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
1702 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
1703 	PORT_SERVICE_DIPLOC( 0x0008, IP_ACTIVE_LOW, "DSW1:4" )
1704 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW1:5")
1705 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1706 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1707 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW1:6")
1708 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1709 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
1710 	PORT_DIPNAME( 0x00c0, 0x00c0, "Minutes" )               PORT_DIPLOCATION("DSW1:7,8")
1711 	PORT_DIPSETTING(      0x0080, "3" )
1712 	PORT_DIPSETTING(      0x00c0, "4" )
1713 	PORT_DIPSETTING(      0x0040, "5" )
1714 	PORT_DIPSETTING(      0x0000, "6" )
1715 
1716 	PORT_MODIFY("DSW2") // IN1 - $210004
1717 	PORT_DIPNAME( 0x0007, 0x0007, "Difficulty A" )          PORT_DIPLOCATION("DSW2:1,2,3")
1718 	PORT_DIPSETTING(      0x0000, "1 (Novice)" )        // 8 fixed levels
1719 	PORT_DIPSETTING(      0x0001, "2" )
1720 	PORT_DIPSETTING(      0x0002, "3" )
1721 	PORT_DIPSETTING(      0x0003, "4" )
1722 	PORT_DIPSETTING(      0x0007, "5 (Medium)" )
1723 	PORT_DIPSETTING(      0x0006, "6" )
1724 	PORT_DIPSETTING(      0x0005, "7" )
1725 	PORT_DIPSETTING(      0x0004, "8 (expert)"    )
1726 	PORT_DIPNAME( 0x0008, 0x0008, "Difficulty Switch" )     PORT_DIPLOCATION("DSW2:4")
1727 	PORT_DIPSETTING(      0x0008, "A (8 Levels)" )
1728 	PORT_DIPSETTING(      0x0000, "B (4 Levels)" )
1729 	PORT_DIPNAME( 0x0030, 0x0030, "Difficulty B" )          PORT_DIPLOCATION("DSW2:5,6")
1730 	PORT_DIPSETTING(      0x0020, DEF_STR( Easy )    )  // 4 levels, and player can select 3 levels during game
1731 	PORT_DIPSETTING(      0x0030, DEF_STR( Normal )  )
1732 	PORT_DIPSETTING(      0x0010, DEF_STR( Hard )    )
1733 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1734 	PORT_DIPNAME( 0x0040, 0x0040, "Campaign" )              PORT_DIPLOCATION("DSW2:7")
1735 	PORT_DIPSETTING(      0x0040, "Available" )
1736 	PORT_DIPSETTING(      0x0000, "Finished" )
1737 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )      PORT_DIPLOCATION("DSW2:8")
1738 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1739 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1740 INPUT_PORTS_END
1741 
1742 
1743 /***************************************************************************
1744                                 Keith & Lucy
1745 ***************************************************************************/
1746 
1747 static INPUT_PORTS_START( keithlcy )
1748 	PORT_INCLUDE(ssv_quiz)
1749 
1750 	PORT_MODIFY("DSW1") // IN0 - $210002
1751 	SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
1752 
1753 	PORT_MODIFY("DSW2") // IN1 - $210004
1754 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:3,4" )
1755 	PORT_DIPSETTING(      0x0008, "2" )
1756 	PORT_DIPSETTING(      0x000c, "3" )
1757 	PORT_DIPSETTING(      0x0004, "4" )
1758 	PORT_DIPSETTING(      0x0000, "5" )
1759 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION( "DSW2:5,6" )
1760 	PORT_DIPSETTING(      0x0030, "Every 100k" )        //100
1761 	PORT_DIPSETTING(      0x0020, "Every 150k" )        //150
1762 	PORT_DIPSETTING(      0x0010, "100k & Every 200K" ) //100
1763 	PORT_DIPSETTING(      0x0000, "Every 200k" )        //200
1764 	PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW2:7" ) /* Manual lists these dips as "Unused" */
1765 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" ) /* Manual lists these dips as "Unused" */
1766 INPUT_PORTS_END
1767 
1768 
1769 /***************************************************************************
1770                             Koi Koi Simasho 2
1771 ***************************************************************************/
1772 
1773 static INPUT_PORTS_START( koikois2 )
1774 	PORT_INCLUDE(ssv_mahjong)
1775 
1776 	PORT_MODIFY("DSW1") // IN0 - $210002
1777 	PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "DSW1:1" )
1778 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW1:2" )
1779 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1780 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1781 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
1782 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:4" )
1783 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1784 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
1785 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coinage ), "DSW1:5,6" )
1786 	PORT_DIPNAME( 0x0040, 0x0040, "Voice" )                 PORT_DIPLOCATION( "DSW1:7" )
1787 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1788 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
1789 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Controls ) )     PORT_DIPLOCATION( "DSW1:8" )
1790 	PORT_DIPSETTING(      0x0080, DEF_STR( Joystick ) )
1791 	PORT_DIPSETTING(      0x0000, "Keyboard" )
1792 
1793 	PORT_MODIFY("DSW2") // IN1 - $210004
1794 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2" )
1795 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
1796 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
1797 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
1798 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1799 	PORT_DIPNAME( 0x0004, 0x0004, "Nudity" )                PORT_DIPLOCATION( "DSW2:3" )
1800 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
1801 	PORT_DIPSETTING(      0x0004, DEF_STR( Yes ) )
1802 	PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
1803 	PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "DSW2:5" )
1804 	PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "DSW2:6" )
1805 	PORT_DIPNAME( 0x00c0, 0x00c0, "Communication" )         PORT_DIPLOCATION( "DSW2:7,8" )
1806 //  PORT_DIPSETTING(      0x0080, "unused" )
1807 	PORT_DIPSETTING(      0x00c0, DEF_STR( None ) )
1808 	PORT_DIPSETTING(      0x0040, "Board 1 (Main)" )
1809 	PORT_DIPSETTING(      0x0000, "Board 2 (Sub)" )
1810 INPUT_PORTS_END
1811 
1812 
1813 /***************************************************************************
1814                                 Meosis Magic
1815 ***************************************************************************/
1816 
1817 static INPUT_PORTS_START( meosism )
1818 	PORT_START("DSW1")  // IN0 - $210002
1819 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) )      PORT_DIPLOCATION( "DSW1:1,2" )
1820 	PORT_DIPSETTING(      0x0003, "1 Medal/1 Credit" )
1821 	PORT_DIPSETTING(      0x0001, "1 Medal/5 Credits" )
1822 	PORT_DIPSETTING(      0x0002, "1 Medal/10 Credits" )
1823 	PORT_DIPSETTING(      0x0000, "1 Medal/20 Credits" )
1824 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW1:3" )
1825 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1826 	PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
1827 	PORT_DIPNAME( 0x0008, 0x0008, "Attendant Pay" )         PORT_DIPLOCATION( "DSW1:4" )
1828 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
1829 	PORT_DIPSETTING(      0x0008, DEF_STR( Yes ) )
1830 	PORT_DIPNAME( 0x0010, 0x0010, "Medals Payout" )         PORT_DIPLOCATION( "DSW1:5" )
1831 	PORT_DIPSETTING(      0x0010, "400" )
1832 	PORT_DIPSETTING(      0x0000, "800" )
1833 	PORT_DIPNAME( 0x0020, 0x0020, "Max Credits" )           PORT_DIPLOCATION( "DSW1:6" )
1834 	PORT_DIPSETTING(      0x0020, "5000" )
1835 	PORT_DIPSETTING(      0x0000, "9999" )
1836 	PORT_DIPNAME( 0x0040, 0x0040, "Hopper" )                PORT_DIPLOCATION( "DSW1:7" )
1837 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
1838 	PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
1839 	PORT_DIPNAME( 0x0080, 0x0080, "Reel Speed" )            PORT_DIPLOCATION( "DSW1:8" )
1840 	PORT_DIPSETTING(      0x0080, DEF_STR( Low ) )
1841 	PORT_DIPSETTING(      0x0000, DEF_STR( High ) )
1842 
1843 	PORT_START("DSW2")  // IN1 - $210004
1844 	PORT_DIPNAME( 0x0003, 0x0003, "Game Rate" )             PORT_DIPLOCATION( "DSW2:1,2" )
1845 	PORT_DIPSETTING(      0x0000, "80%" )
1846 	PORT_DIPSETTING(      0x0002, "85%" )
1847 	PORT_DIPSETTING(      0x0003, "90%" )
1848 	PORT_DIPSETTING(      0x0001, "95%" )
1849 	PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "DSW2:3" )
1850 	PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
1851 	PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "DSW2:5" )
1852 	PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Controls ) )     PORT_DIPLOCATION( "DSW2:6" )
1853 	PORT_DIPSETTING(      0x0020, "Simple" )
1854 	PORT_DIPSETTING(      0x0000, "Complex" )
1855 	PORT_DIPNAME( 0x0040, 0x0000, "Coin Sensor" )           PORT_DIPLOCATION( "DSW2:7" )
1856 	PORT_DIPSETTING(      0x0040, "Active High" )
1857 	PORT_DIPSETTING(      0x0000, "Active Low" )
1858 	PORT_DIPNAME( 0x0080, 0x0080, "Hopper Sensor" )         PORT_DIPLOCATION( "DSW2:8" )
1859 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1860 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1861 
1862 	PORT_START("P1")    // IN2 - $210008
1863 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4        )   //bet
1864 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3        )   //stop/r
1865 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2        )   //stop/c
1866 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1        )   //stop/l
1867 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )   //no
1868 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  )   //yes
1869 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START1         )   //start
1870 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN        )   //-
1871 
1872 	PORT_START("P2")    // IN3 - $21000a
1873 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
1874 	PORT_SERVICE_NO_TOGGLE( 0x0002, IP_ACTIVE_LOW )
1875 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
1876 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Payout") //payout
1877 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
1878 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT     ) //reset
1879 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
1880 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  ) //-
1881 
1882 	PORT_START("SYSTEM")    // IN4 - $21000c
1883 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
1884 //  PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)  // Should work but doesn't
1885 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) //service coin
1886 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Analyzer") //analyzer
1887 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5  ) //max bet
1888 	PORT_BIT( 0x00e2, IP_ACTIVE_LOW, IPT_UNKNOWN  )
1889 INPUT_PORTS_END
1890 
1891 
1892 /***************************************************************************
1893                                 Monster Slider
1894 ***************************************************************************/
1895 
1896 static INPUT_PORTS_START( mslider )
1897 	PORT_INCLUDE(ssv_joystick)
1898 
1899 	PORT_MODIFY("DSW1") // IN0 - $210002
1900 	SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
1901 	SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
1902 	PORT_SERVICE_DIPLOC( 0x0040, IP_ACTIVE_LOW, "DSW1:7" )
1903 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW1:8" ) /* Manual lists this dip as "Unused" */
1904 
1905 	PORT_MODIFY("DSW2") // IN1 - $210004
1906 	PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
1907 	PORT_DIPSETTING(      0x0001, DEF_STR( On ) ) // service mode calls this OFF
1908 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) ) // and this ON, TODO: check if it's an error in the video code, or a mistake in the game
1909 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
1910 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1911 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
1912 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
1913 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
1914 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
1915 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
1916 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1917 	PORT_DIPNAME( 0x0030, 0x0030, "Rounds (Vs Mode)" )      PORT_DIPLOCATION( "DSW2:5,6" )
1918 	PORT_DIPSETTING(      0x0000, "1" )
1919 	PORT_DIPSETTING(      0x0030, "2" )
1920 	PORT_DIPSETTING(      0x0020, "3" )
1921 	PORT_DIPSETTING(      0x0010, "4" )
1922 	PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW2:7" ) /* Manual lists these dips as "Unused" */
1923 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
1924 INPUT_PORTS_END
1925 
1926 
1927 /***************************************************************************
1928                     Gourmet Battle Quiz Ryohrioh CooKing
1929 ***************************************************************************/
1930 
1931 static INPUT_PORTS_START( ryorioh )
1932 	PORT_INCLUDE(ssv_quiz)
1933 
1934 	PORT_MODIFY("DSW1") // IN0 - $210002
1935 	PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW1:7" ) /* Manual states this dip is "Unused" */
1936 	PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
1937 
1938 	PORT_MODIFY("DSW2") // IN1 - $210004
1939 	PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "DSW2:3" ) /* Manual states dips 3-8 are "Unused" */
1940 	PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "DSW2:4" )
1941 	PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "DSW2:5" )
1942 	PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "DSW2:6" )
1943 	PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW2:7" )
1944 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
1945 INPUT_PORTS_END
1946 
1947 
1948 /***************************************************************************
1949                             Super Real Mahjong PIV
1950 ***************************************************************************/
1951 
1952 static INPUT_PORTS_START( srmp4 )
1953 	PORT_INCLUDE(ssv_mahjong)
1954 
1955 	PORT_MODIFY("DSW1") // IN0 - $210002
1956 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )           PORT_DIPLOCATION( "DSW1:1,2,3" )
1957 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1958 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
1959 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
1960 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
1961 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
1962 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
1963 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
1964 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
1965 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )           PORT_DIPLOCATION( "DSW1:4,5,6" )
1966 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
1967 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
1968 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
1969 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_1C ) )
1970 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
1971 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
1972 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
1973 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
1974 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSW1:7" )
1975 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1976 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1977 	PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW1:8" )
1978 
1979 	PORT_MODIFY("DSW2") // IN1 - $210004
1980 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:1,2,3" )
1981 	PORT_DIPSETTING(      0x0006, DEF_STR( Easiest ) )
1982 	PORT_DIPSETTING(      0x0005, DEF_STR( Easier ) )
1983 	PORT_DIPSETTING(      0x0004, DEF_STR( Easy ) )
1984 	PORT_DIPSETTING(      0x0007, DEF_STR( Normal ) )
1985 	PORT_DIPSETTING(      0x0003, DEF_STR( Medium ) )
1986 	PORT_DIPSETTING(      0x0002, DEF_STR( Hard ) )
1987 	PORT_DIPSETTING(      0x0001, DEF_STR( Harder ) )
1988 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
1989 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:4" )
1990 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1991 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1992 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:5" )
1993 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
1994 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
1995 	PORT_SERVICE_DIPLOC( 0x0020, IP_ACTIVE_LOW, "DSW2:6" )
1996 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION( "DSW2:7" )
1997 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
1998 	PORT_DIPSETTING(      0x0040, DEF_STR( Yes ) )
1999 	PORT_DIPUNKNOWN_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
2000 INPUT_PORTS_END
2001 
2002 
2003 /***************************************************************************
2004                             Super Real Mahjong P7
2005 ***************************************************************************/
2006 
2007 static INPUT_PORTS_START( srmp7 )
2008 	PORT_START("DSW1")  // IN0 - $210002
2009 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )          PORT_DIPLOCATION( "DSW1:1,2,3" )
2010 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
2011 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
2012 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
2013 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
2014 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
2015 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
2016 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
2017 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
2018 	PORT_DIPUNKNOWN_DIPLOC( 0x0008, 0x0008, "DSW1:4" )
2019 	PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "DSW1:5" )
2020 	PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "DSW1:6" )
2021 	PORT_DIPNAME( 0x0040, 0x0040, "Re-cloth" )                  PORT_DIPLOCATION( "DSW1:7" )
2022 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2023 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
2024 	PORT_DIPNAME( 0x0080, 0x0080, "Nudity" )                    PORT_DIPLOCATION( "DSW1:8" )
2025 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2026 	PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
2027 
2028 	PORT_START("DSW2")  // IN1 - $210004
2029 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:1,2,3" )
2030 	PORT_DIPSETTING(      0x0006, DEF_STR( Easiest ) )
2031 	PORT_DIPSETTING(      0x0005, DEF_STR( Easier ) )
2032 	PORT_DIPSETTING(      0x0004, DEF_STR( Easy ) )
2033 	PORT_DIPSETTING(      0x0007, DEF_STR( Normal ) )
2034 	PORT_DIPSETTING(      0x0003, DEF_STR( Medium ) )
2035 	PORT_DIPSETTING(      0x0002, DEF_STR( Hard ) )
2036 	PORT_DIPSETTING(      0x0001, DEF_STR( Harder ) )
2037 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
2038 	PORT_DIPNAME( 0x0008, 0x0008, "Kuitan" )                    PORT_DIPLOCATION( "DSW2:4" )
2039 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2040 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
2041 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION( "DSW2:5" )
2042 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2043 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
2044 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:6" )
2045 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2046 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
2047 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:7" )
2048 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
2049 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2050 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
2051 
2052 	PORT_START("P1")    // IN2 - $210008
2053 	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
2054 
2055 	PORT_START("P2")    // IN3 - $21000a
2056 	PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
2057 
2058 	PORT_START("SYSTEM")    // IN4 - $21000c
2059 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10)
2060 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10)
2061 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
2062 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT     )
2063 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  ) // tested
2064 	PORT_BIT( 0x00e0, IP_ACTIVE_LOW, IPT_UNKNOWN  )
2065 
2066 	PORT_START("KEY0")  // IN6 - $600000(0)
2067 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
2068 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
2069 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
2070 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_K )
2071 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_G )
2072 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_C )
2073 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2074 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2075 
2076 	PORT_START("KEY1")  // IN7 - $600000(1)
2077 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
2078 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
2079 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_N )
2080 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_J )
2081 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_F )
2082 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_B )
2083 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2084 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2085 
2086 	PORT_START("KEY2")  // IN8 - $600000(2)
2087 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
2088 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
2089 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_M )
2090 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_I )
2091 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_E )
2092 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_A )
2093 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2094 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2095 
2096 	PORT_START("KEY3")  // IN5 - $600000(3)
2097 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
2098 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
2099 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
2100 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_L )
2101 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_H )
2102 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_D )
2103 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2104 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2105 INPUT_PORTS_END
2106 
2107 
2108 /***************************************************************************
2109                                 Storm Blade
2110 ***************************************************************************/
2111 
2112 static INPUT_PORTS_START( stmblade )
2113 	PORT_INCLUDE(ssv_joystick)
2114 
2115 	PORT_MODIFY("DSW1") // IN0 - $210002
2116 	SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
2117 	SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
2118 	PORT_DIPUNUSED_DIPLOC( 0x0040, 0x0040, "DSW1:7" )
2119 	PORT_DIPNAME( 0x0080, 0x0080, "Rapid Fire" )            PORT_DIPLOCATION( "DSW1:8" )
2120 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
2121 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2122 
2123 	PORT_MODIFY("DSW2") // IN1 - $210004
2124 	PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" ) /* works opposite of expected, emulation issue?? */
2125 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
2126 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2127 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
2128 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2129 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
2130 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:3,4" )
2131 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
2132 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
2133 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
2134 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
2135 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:5,6" )
2136 	PORT_DIPSETTING(      0x0020, "1" )
2137 	PORT_DIPSETTING(      0x0010, "2" )
2138 	PORT_DIPSETTING(      0x0030, "3" )
2139 	PORT_DIPSETTING(      0x0000, "4" )
2140 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION( "DSW2:7" )
2141 	PORT_DIPSETTING(      0x0040, "600000" )
2142 	PORT_DIPSETTING(      0x0000, "800000" )
2143 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
2144 INPUT_PORTS_END
2145 
2146 
2147 /***************************************************************************
2148                                 Survival Arts
2149 ***************************************************************************/
2150 
2151 static INPUT_PORTS_START( survarts )
2152 	PORT_INCLUDE(ssv_joystick)
2153 
2154 	PORT_MODIFY("DSW1") // IN0 - $210002
2155 	SSV_COINAGE_EXTENDED( 0, 0x09, DEF_STR( Coin_A ), "DSW1:1,2,3,4" )
2156 	PORT_DIPSETTING(      0x0000, "2 Credits Start, 1 to continue" )
2157 	SSV_COINAGE_EXTENDED( 4, 0x09, DEF_STR( Coin_B ), "DSW1:5,6,7,8" )
2158 	PORT_DIPSETTING(      0x0000, "2 Credits Start, 1 to continue" )
2159 
2160 	PORT_MODIFY("DSW2") // IN1 - $210004
2161 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:1" )
2162 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
2163 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2164 	PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION( "DSW2:2" )
2165 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
2166 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2167 	PORT_DIPNAME( 0x0004, 0x0004, "Timer Speed" )           PORT_DIPLOCATION( "DSW2:3" )
2168 	PORT_DIPSETTING(      0x0004, DEF_STR( Normal ) )
2169 	PORT_DIPSETTING(      0x0000, "Fast" )
2170 	PORT_DIPNAME( 0x0008, 0x0008, "Damage Level" )          PORT_DIPLOCATION( "DSW2:4" )
2171 	PORT_DIPSETTING(      0x0008, DEF_STR( Normal ) )
2172 	PORT_DIPSETTING(      0x0000, DEF_STR( High ) )
2173 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:5,6" )
2174 	PORT_DIPSETTING(      0x0010, DEF_STR( Easy ) )
2175 	PORT_DIPSETTING(      0x0030, DEF_STR( Normal ) )
2176 	PORT_DIPSETTING(      0x0020, DEF_STR( Hard ) )
2177 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
2178 	PORT_DIPNAME( 0x00c0, 0x00c0, "Fatal Damage" )          PORT_DIPLOCATION( "DSW2:7,8" )
2179 	PORT_DIPSETTING(      0x0040, "Light" )
2180 	PORT_DIPSETTING(      0x00c0, DEF_STR( Normal ) )
2181 	PORT_DIPSETTING(      0x0080, "Heavy" )
2182 	PORT_DIPSETTING(      0x0000, "Heaviest" )
2183 
2184 	PORT_START("ADD_BUTTONS")   // IN5 - $500008
2185 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
2186 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
2187 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
2188 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
2189 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
2190 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
2191 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
2192 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
2193 INPUT_PORTS_END
2194 
2195 
2196 /***************************************************************************
2197                             Pachinko Sexy Reaction
2198 ***************************************************************************/
2199 
2200 static INPUT_PORTS_START( sxyreact )
2201 	PORT_INCLUDE(ssv_joystick)
2202 
2203 	PORT_MODIFY("DSW1") // IN0 - $210002
2204 	SSV_COINAGE_STANDARD( 0, 0x07, DEF_STR( Coin_A ), "DSW1:1,2,3" )
2205 	PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "DSW1:4" )
2206 	PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "DSW1:5" )
2207 	PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "DSW1:6" )
2208 	//SSV_COINAGE_STANDARD( 3, 0x07, DEF_STR( Coin_B ), "DSW1:4,5,6" )
2209 	PORT_DIPNAME( 0x0040, 0x0040, "Credits To Play" )           PORT_DIPLOCATION( "DSW1:7" )
2210 	PORT_DIPSETTING(      0x0040, "1" )
2211 	PORT_DIPSETTING(      0x0000, "2" )
2212 	PORT_DIPNAME( 0x0080, 0x0080, "Buy Balls With Credits" )    PORT_DIPLOCATION( "DSW1:8" )    // press start
2213 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2214 	PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
2215 
2216 	PORT_MODIFY("DSW2") // IN1 - $210004
2217 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION( "DSW2:1" )
2218 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
2219 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2220 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION( "DSW2:2" )
2221 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2222 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
2223 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )       PORT_DIPLOCATION( "DSW2:3,4" )
2224 	PORT_DIPSETTING(      0x0008, DEF_STR( Easy ) )
2225 	PORT_DIPSETTING(      0x000c, DEF_STR( Normal ) )
2226 	PORT_DIPSETTING(      0x0004, DEF_STR( Hard ) )
2227 	PORT_DIPSETTING(      0x0000, DEF_STR( Very_Hard ) )
2228 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Controls ) )         PORT_DIPLOCATION( "DSW2:5" )
2229 	PORT_DIPSETTING(      0x0010, "Dial" )
2230 	PORT_DIPSETTING(      0x0000, DEF_STR( Joystick ) )
2231 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Free_Play ) )        PORT_DIPLOCATION( "DSW2:6" )
2232 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
2233 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2234 	PORT_SERVICE_DIPLOC( 0x0040, IP_ACTIVE_LOW, "DSW2:7" )
2235 	PORT_DIPUNUSED_DIPLOC( 0x0080, 0x0080, "DSW2:8" )
2236 
2237 	PORT_START("SERVICE")   // IN5 - $500002
2238 	PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SERVICE2 )    // ball switch on -> handle motor off
2239 
2240 	PORT_START("PADDLE")    // IN6 - $500004
2241 	PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,0xcf) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M)
2242 INPUT_PORTS_END
2243 
2244 
2245 /***************************************************************************
2246                                 Twin Eagle II
2247 ***************************************************************************/
2248 
2249 static INPUT_PORTS_START( twineag2 )
2250 	PORT_INCLUDE(ssv_joystick)
2251 
2252 	PORT_MODIFY("DSW1") // IN0 - $210002
2253 	SSV_COINAGE_EXTENDED( 0, 0x0f, DEF_STR( Coin_A ), "DSW1:1,2,3,4" )
2254 	//PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
2255 	SSV_COINAGE_EXTENDED( 4, 0x0f, DEF_STR( Coin_B ), "DSW1:5,6,7,8" )
2256 	//PORT_DIPSETTING(      0x0000, "???" ) - No values listed for all "ON"
2257 
2258 	PORT_MODIFY("DSW2") // IN1 - $210004
2259 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Difficulty ) )   PORT_DIPLOCATION( "DSW2:1,2,3" )
2260 	PORT_DIPSETTING(      0x0006, DEF_STR( Easiest ) )
2261 	PORT_DIPSETTING(      0x0005, DEF_STR( Easier ) )
2262 	PORT_DIPSETTING(      0x0004, DEF_STR( Easy ) )
2263 	PORT_DIPSETTING(      0x0007, DEF_STR( Normal ) )
2264 	PORT_DIPSETTING(      0x0003, DEF_STR( Medium ) )
2265 	PORT_DIPSETTING(      0x0002, DEF_STR( Hard ) )
2266 	PORT_DIPSETTING(      0x0001, DEF_STR( Harder ) )
2267 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
2268 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Free_Play ) )    PORT_DIPLOCATION( "DSW2:4" )
2269 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
2270 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2271 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Lives ) )        PORT_DIPLOCATION( "DSW2:5" )
2272 	PORT_DIPSETTING(      0x0000, "2" )
2273 	PORT_DIPSETTING(      0x0010, "3" )
2274 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Pause ) )        PORT_DIPLOCATION( "DSW2:6" )
2275 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
2276 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2277 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION( "DSW2:7" )
2278 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
2279 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2280 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
2281 
2282 // Not shown in service mode I/O or show any function in game.  Valid?
2283 //  PORT_MODIFY("SYSTEM")   // IN4 - $21000c
2284 //  PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 )
2285 //  PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE4 )
2286 //  PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START3 )
2287 //  PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 )
2288 
2289 INPUT_PORTS_END
2290 
2291 
2292 /***************************************************************************
2293                                 Ultra X
2294 ***************************************************************************/
2295 
2296 static INPUT_PORTS_START( ultrax )
2297 	PORT_INCLUDE(ssv_joystick)
2298 
2299 	PORT_MODIFY("DSW1") // IN0 - $210002
2300 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )       PORT_DIPLOCATION("DSW1:1,2,3,4")
2301 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
2302 	PORT_DIPSETTING(      0x0009, DEF_STR( 2C_1C ) )
2303 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
2304 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
2305 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
2306 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
2307 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
2308 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
2309 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )       PORT_DIPLOCATION("DSW1:5,6,7,8")
2310 	PORT_DIPSETTING(      0x0080, DEF_STR( 3C_1C ) )
2311 	PORT_DIPSETTING(      0x0090, DEF_STR( 2C_1C ) )
2312 	PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
2313 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_2C ) )
2314 	PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_3C ) )
2315 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
2316 	PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_5C ) )
2317 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_6C ) )
2318 
2319 	PORT_MODIFY("DSW2") // IN1 - $210004
2320 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("DSW2:1,2")
2321 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )     //$140
2322 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )   //$190
2323 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )     //$200
2324 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )  //$300
2325 	PORT_DIPNAME( 0x0014, 0x0004, DEF_STR( Region ) )               PORT_DIPLOCATION("DSW2:3,5")
2326 	PORT_DIPSETTING(      0x0000, DEF_STR( China ) )
2327 	PORT_DIPSETTING(      0x0014, DEF_STR( Japan ) )
2328 //PORT_DIPSETTING(      0x0010, DEF_STR( Japan ) )
2329 	PORT_DIPSETTING(      0x0004, DEF_STR( World ) )
2330 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Free_Play ) )    PORT_DIPLOCATION("DSW2:4")
2331 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
2332 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2333 	// country            0x0010
2334 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW2:6")
2335 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2336 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
2337 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW2:7")
2338 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
2339 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2340 	PORT_SERVICE_DIPLOC( 0x0080, IP_ACTIVE_LOW, "DSW2:8" )
2341 INPUT_PORTS_END
2342 
2343 
2344 /***************************************************************************
2345                                Vasara
2346 ***************************************************************************/
2347 
2348 static INPUT_PORTS_START( vasara )
2349 	PORT_INCLUDE(ssv_joystick)
2350 
2351 	PORT_MODIFY("SYSTEM")   // IN4 - $21000c
2352 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
2353 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
2354 
2355 	PORT_MODIFY("DSW1") // IN0 - $210002
2356 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Free_Play )  )   PORT_DIPLOCATION("DSW1:1")
2357 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
2358 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2359 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW1:2")
2360 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
2361 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2362 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
2363 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW1:4")
2364 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2365 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
2366 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
2367 	SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
2368 
2369 	PORT_MODIFY("DSW2") // IN1
2370 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("DSW2:1,2")
2371 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
2372 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
2373 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
2374 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
2375 	PORT_DIPNAME( 0x000c, 0x000c, "Bomber Stock" )          PORT_DIPLOCATION("DSW2:3,4")
2376 	PORT_DIPSETTING(      0x0000, "0" )
2377 	PORT_DIPSETTING(      0x0004, "1" )
2378 	PORT_DIPSETTING(      0x000c, "2" )
2379 	PORT_DIPSETTING(      0x0008, "3" )
2380 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ))         PORT_DIPLOCATION("DSW2:5,6")
2381 	PORT_DIPSETTING(      0x0000, "1" )
2382 	PORT_DIPSETTING(      0x0010, "2" )
2383 	PORT_DIPSETTING(      0x0030, "3" )
2384 	PORT_DIPSETTING(      0x0020, "5" )
2385 	PORT_DIPNAME( 0x0040, 0x0040, "Game Voice" )            PORT_DIPLOCATION("DSW2:7")
2386 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2387 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
2388 	PORT_DIPNAME( 0x0080, 0x0000, "English Subtitles" )     PORT_DIPLOCATION("DSW2:8")
2389 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
2390 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2391 INPUT_PORTS_END
2392 
2393 /***************************************************************************
2394                                Vasara 2
2395 ***************************************************************************/
2396 
2397 static INPUT_PORTS_START( vasara2 )
2398 	PORT_INCLUDE(ssv_joystick)
2399 
2400 	PORT_MODIFY("SYSTEM")   // IN4 - $21000c
2401 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
2402 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
2403 
2404 	PORT_MODIFY("DSW1") // IN0 - $210002
2405 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Free_Play )  )   PORT_DIPLOCATION("DSW1:1")
2406 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
2407 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2408 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )  PORT_DIPLOCATION("DSW1:2")
2409 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
2410 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2411 	PORT_SERVICE_DIPLOC( 0x0004, IP_ACTIVE_LOW, "DSW1:3" )
2412 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("DSW1:4")
2413 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2414 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
2415 	SSV_COINAGE_BASIC( 4, 0x03, DEF_STR( Coin_A ), "DSW1:5,6" )
2416 	SSV_COINAGE_BASIC( 6, 0x03, DEF_STR( Coin_B ), "DSW1:7,8" )
2417 
2418 	PORT_MODIFY("DSW2") // IN1
2419 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("DSW2:1,2")
2420 	PORT_DIPSETTING(      0x0002, DEF_STR( Easy ) )
2421 	PORT_DIPSETTING(      0x0003, DEF_STR( Normal ) )
2422 	PORT_DIPSETTING(      0x0001, DEF_STR( Hard ) )
2423 	PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
2424 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )        PORT_DIPLOCATION("DSW2:3,4")
2425 	PORT_DIPSETTING(      0x0000, "1" )
2426 	PORT_DIPSETTING(      0x0004, "2" )
2427 	PORT_DIPSETTING(      0x000c, "3" )
2428 	PORT_DIPSETTING(      0x0008, "5" )
2429 	PORT_DIPNAME( 0x0010, 0x0010, "Game Voice" )            PORT_DIPLOCATION("DSW2:5")
2430 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2431 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
2432 	PORT_DIPNAME( 0x0020, 0x0020, "Vasara Stock" )          PORT_DIPLOCATION("DSW2:6")
2433 	PORT_DIPSETTING(      0x0020, "2" )
2434 	PORT_DIPSETTING(      0x0000, "3" )
2435 	PORT_DIPNAME( 0x0040, 0x0040, "English Subtitles" )     PORT_DIPLOCATION("DSW2:7")
2436 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
2437 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
2438 	PORT_DIPNAME( 0x0080, 0x0080, "Secret Character" )      PORT_DIPLOCATION("DSW2:8")
2439 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
2440 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2441 INPUT_PORTS_END
2442 
2443 
2444 
2445 /***************************************************************************
2446 
2447 
2448                             Graphics Layouts
2449 
2450 
2451 ***************************************************************************/
2452 
2453 /*  16 x 8 tiles. Depth is 8 bits, but can be decreased to 6 (and maybe
2454     less) at runtime.   */
2455 
2456 static const gfx_layout layout_16x8x8 =
2457 {
2458 	16,8,
2459 	RGN_FRAC(1,4),
2460 	8,
2461 	{   RGN_FRAC(3,4)+8, RGN_FRAC(3,4)+0,
2462 		RGN_FRAC(2,4)+8, RGN_FRAC(2,4)+0,
2463 		RGN_FRAC(1,4)+8, RGN_FRAC(1,4)+0,
2464 		RGN_FRAC(0,4)+8, RGN_FRAC(0,4)+0    },
2465 	{   STEP8(0,1), STEP8(16,1) },
2466 	{   STEP8(0,16*2)   },
2467 	16*8*2
2468 };
2469 
2470 static GFXDECODE_START( gfx_ssv )
2471 	GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x8, 0, 0x8000/64 ) // [0] Sprites (256 colors)
2472 GFXDECODE_END
2473 
2474 static const gfx_layout layout_16x8x8_ram =
2475 {
2476 	16,8,
2477 	0x40000 * 16 / (16 * 8),
2478 	8,
2479 	{   STEP8(0,1)      },
2480 	{   STEP16(0,8)     },
2481 	{   STEP8(0,16*8)   },
2482 	16*8*8
2483 };
2484 
2485 static GFXDECODE_START( gfx_eaglshot )
2486 	GFXDECODE_ENTRY( nullptr, 0, layout_16x8x8_ram, 0, 0x8000/64 ) // [0] Sprites (256 colors, decoded from RAM)
2487 GFXDECODE_END
2488 
2489 static const gfx_layout layout_16x16x8 =
2490 {
2491 	16,16,
2492 	RGN_FRAC(1,1),
2493 	8,
2494 	{   STEP8(0,1)      },
2495 	{   STEP16(0,8)     },
2496 	{   STEP16(0,16*8)  },
2497 	16*16*8
2498 };
2499 
2500 static GFXDECODE_START( gfx_gdfs )
2501 	GFXDECODE_ENTRY( "gfx1", 0, layout_16x8x8,   0, 0x8000/64  ) // [0] Sprites (256 colors)
2502 	GFXDECODE_ENTRY( "gfx3", 0, layout_16x16x8,  0, 0x8000/256 ) // [3] Tilemap
2503 GFXDECODE_END
2504 
2505 /***************************************************************************
2506 
2507 
2508                                 Machine Drivers
2509 
2510 
2511 ***************************************************************************/
2512 
2513 /***************************************************************************
2514 
2515     Some games (e.g. hypreac2) oddly map the high bits of the tile code
2516     to the gfx ROMs: arranging the ROMs accordingly would waste tens of
2517     megabytes. So we use a look-up table.
2518 
2519     We also need to set up game specific offsets for sprites and layers
2520     (at least until the CRT controlled will be emulated).
2521 
2522 ***************************************************************************/
2523 
init_ssv()2524 void ssv_state::init_ssv()
2525 {
2526 	for (int i = 0; i < 16; i++)
2527 		m_tile_code[i] = bitswap<4>(i,0,1,2,3) << 16;
2528 
2529 	enable_video(1);
2530 	m_interrupt_ultrax = 0;
2531 
2532 	save_item(NAME(m_requested_int));
2533 	save_item(NAME(m_irq_enable));
2534 }
2535 
init_ssv_tilescram()2536 void ssv_state::init_ssv_tilescram()
2537 {
2538 	init_ssv();
2539 
2540 	for (int i = 0; i < 16; i++)
2541 		m_tile_code[i] = i << 16;
2542 }
2543 
2544 
2545 // srmp4
2546 //  ((uint16_t *)memregion("maincpu")->base())[0x2b38/2] = 0x037a;   /* patch to see gal test mode */
2547 
init_sexy()2548 void sxyreact_state::init_sexy()
2549 {
2550 	init_ssv_tilescram();
2551 }
2552 
init_eaglshot()2553 void eaglshot_state::init_eaglshot()
2554 {
2555 	init_ssv_tilescram();
2556 	membank("gfxrom")->configure_entries(0, 6+1, memregion("gfxdata")->base(), 0x200000);
2557 }
2558 
init_jsk()2559 void ssv_state::init_jsk()
2560 {
2561 	init_ssv();
2562 	save_item(NAME(m_latches));
2563 }
2564 
init_pastelis()2565 void ssv_state::init_pastelis()
2566 {
2567 	init_ssv();
2568 	m_raster_interrupt_enabled = true;
2569 }
2570 
init_ssv_irq1()2571 void ssv_state::init_ssv_irq1()
2572 {
2573 	init_ssv();
2574 	m_interrupt_ultrax = 1;
2575 }
2576 
init_srmp7()2577 void ssv_state::init_srmp7()
2578 {
2579 	init_ssv();
2580 	m_srmp7_esbank[0]->configure_entries(0, 2, memregion("ensoniq.2")->base(), 0x400000);
2581 	m_srmp7_esbank[1]->configure_entries(0, 2, memregion("ensoniq.3")->base(), 0x400000);
2582 	m_srmp7_esbank[0]->set_entry(0);
2583 	m_srmp7_esbank[1]->set_entry(0);
2584 }
2585 
2586 
2587 #define SSV_MASTER_CLOCK XTAL(48'000'000)/3
2588 
2589 #define SSV_PIXEL_CLOCK XTAL(42'954'545)/6
2590 #define SSV_HTOTAL 0x1c6
2591 #define SSV_HBEND 0
2592 #define SSV_HBSTART 0x150
2593 #define SSV_VTOTAL 0x106
2594 #define SSV_VBEND 0
2595 #define SSV_VBSTART 0xf0
2596 
ssv(machine_config & config)2597 void ssv_state::ssv(machine_config &config)
2598 {
2599 	/* basic machine hardware */
2600 	V60(config, m_maincpu, SSV_MASTER_CLOCK); /* Based on STA-0001 & STA-0001B System boards */
2601 	m_maincpu->set_irq_acknowledge_callback(FUNC(ssv_state::irq_callback));
2602 
2603 	TIMER(config, "scantimer").configure_scanline(FUNC(ssv_state::interrupt), "screen", 0, 1);
2604 
2605 	/* video hardware */
2606 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
2607 	m_screen->set_raw(SSV_PIXEL_CLOCK,SSV_HTOTAL,SSV_HBEND,SSV_HBSTART,SSV_VTOTAL,SSV_VBEND,SSV_VBSTART);
2608 	m_screen->set_screen_update(FUNC(ssv_state::screen_update));
2609 	m_screen->set_palette(m_palette);
2610 	//m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
2611 
2612 	GFXDECODE(config, m_gfxdecode, m_palette, gfx_ssv);
2613 	PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 0x8000);
2614 
2615 	/* sound hardware */
2616 	SPEAKER(config, "lspeaker").front_left();
2617 	SPEAKER(config, "rspeaker").front_right();
2618 
2619 	ES5506(config, m_ensoniq, SSV_MASTER_CLOCK);
2620 	m_ensoniq->set_region0("ensoniq.0");
2621 	m_ensoniq->set_region1("ensoniq.1");
2622 	m_ensoniq->set_region2("ensoniq.2");
2623 	m_ensoniq->set_region3("ensoniq.3");
2624 	m_ensoniq->set_channels(1);
2625 	m_ensoniq->add_route(0, "lspeaker", 0.1);
2626 	m_ensoniq->add_route(1, "rspeaker", 0.1);
2627 }
2628 
drifto94(machine_config & config)2629 void ssv_state::drifto94(machine_config &config)
2630 {
2631 	ssv(config);
2632 
2633 	/* basic machine hardware */
2634 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::drifto94_map);
2635 
2636 	UPD96050(config, m_dsp, 10000000); /* TODO: correct? */
2637 	m_dsp->set_addrmap(AS_PROGRAM, &ssv_state::dsp_prg_map);
2638 	m_dsp->set_addrmap(AS_DATA, &ssv_state::dsp_data_map);
2639 
2640 	config.set_perfect_quantum(m_maincpu);
2641 
2642 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2643 
2644 	/* video hardware */
2645 	m_screen->set_visarea(0, (0xcd-0x25)*2-1, 0, (0x101-0x13)-1);
2646 }
2647 
gdfs(machine_config & config)2648 void gdfs_state::gdfs(machine_config &config)
2649 {
2650 	ssv(config);
2651 
2652 	/* basic machine hardware */
2653 	m_maincpu->set_addrmap(AS_PROGRAM, &gdfs_state::gdfs_map);
2654 
2655 	EEPROM_93C46_16BIT(config, m_eeprom);
2656 
2657 	ADC0809(config, m_adc, 1000000); // unknown clock
2658 	m_adc->in_callback<0>().set_ioport("GUNX1");
2659 	m_adc->in_callback<1>().set_ioport("GUNY1");
2660 	m_adc->in_callback<2>().set_ioport("GUNX2");
2661 	m_adc->in_callback<3>().set_ioport("GUNY2");
2662 	m_adc->eoc_callback().set(FUNC(gdfs_state::adc_int_w));
2663 
2664 	/* video hardware */
2665 	m_screen->set_visarea(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1);
2666 	m_screen->set_screen_update(FUNC(gdfs_state::screen_update));
2667 
2668 	ST0020_SPRITES(config, m_st0020, 0);
2669 	m_st0020->set_palette(m_palette);
2670 
2671 	m_gfxdecode->set_info(gfx_gdfs);
2672 }
2673 
hypreact(machine_config & config)2674 void ssv_state::hypreact(machine_config &config)
2675 {
2676 	ssv(config);
2677 
2678 	/* basic machine hardware */
2679 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::hypreact_map);
2680 
2681 	WATCHDOG_TIMER(config, "watchdog");
2682 
2683 	/* video hardware */
2684 	m_screen->set_visarea(0, (0xcb-0x22)*2-1, 0, (0xfe - 0x0e)-1);
2685 }
2686 
hypreac2(machine_config & config)2687 void ssv_state::hypreac2(machine_config &config)
2688 {
2689 	ssv(config);
2690 
2691 	/* basic machine hardware */
2692 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::hypreac2_map);
2693 
2694 	WATCHDOG_TIMER(config, "watchdog");
2695 
2696 	/* video hardware */
2697 	m_screen->set_visarea(0, (0xcb-0x22)*2-1, 0, (0xfe - 0x0e)-1);
2698 }
2699 
janjans1(machine_config & config)2700 void ssv_state::janjans1(machine_config &config)
2701 {
2702 	ssv(config);
2703 
2704 	/* basic machine hardware */
2705 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::janjans1_map);
2706 
2707 	/* video hardware */
2708 	m_screen->set_visarea(0, (0xcb-0x23)*2-1, 0, (0xfe - 0x0e)-1);
2709 }
2710 
keithlcy(machine_config & config)2711 void ssv_state::keithlcy(machine_config &config)
2712 {
2713 	ssv(config);
2714 
2715 	/* basic machine hardware */
2716 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::keithlcy_map);
2717 
2718 	/* video hardware */
2719 	m_screen->set_visarea(0, (0xcd-0x25)*2-1, 0, (0x101 - 0x13)-1);
2720 }
2721 
meosism(machine_config & config)2722 void ssv_state::meosism(machine_config &config)
2723 {
2724 	ssv(config);
2725 
2726 	/* basic machine hardware */
2727 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::meosism_map);
2728 
2729 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2730 
2731 	WATCHDOG_TIMER(config, "watchdog");
2732 
2733 	/* video hardware */
2734 	m_screen->set_visarea(0, (0xd5-0x2c)*2-1, 0, (0xfe - 0x12)-1);
2735 }
2736 
mslider(machine_config & config)2737 void ssv_state::mslider(machine_config &config)
2738 {
2739 	ssv(config);
2740 
2741 	/* basic machine hardware */
2742 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::mslider_map);
2743 
2744 	/* video hardware */
2745 	m_screen->set_visarea(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1);
2746 }
2747 
ryorioh(machine_config & config)2748 void ssv_state::ryorioh(machine_config &config)
2749 {
2750 	ssv(config);
2751 
2752 	/* basic machine hardware */
2753 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::ryorioh_map);
2754 
2755 	WATCHDOG_TIMER(config, "watchdog");
2756 
2757 	/* video hardware */
2758 	m_screen->set_visarea(0, (0xcb-0x23)*2-1, 0, (0xfe - 0x0e)-1);
2759 }
2760 
vasara(machine_config & config)2761 void ssv_state::vasara(machine_config &config)
2762 {
2763 	ssv(config);
2764 
2765 	/* basic machine hardware */
2766 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::ryorioh_map);
2767 
2768 	WATCHDOG_TIMER(config, "watchdog");
2769 
2770 	/* video hardware */
2771 	m_screen->set_visarea(0, (0xcc-0x24)*2-1, 0,(0xfe - 0x0e)-1);
2772 }
2773 
srmp4(machine_config & config)2774 void ssv_state::srmp4(machine_config &config)
2775 {
2776 	ssv(config);
2777 
2778 	/* basic machine hardware */
2779 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::srmp4_map);
2780 
2781 	WATCHDOG_TIMER(config, "watchdog");
2782 
2783 	/* video hardware */
2784 	m_screen->set_visarea(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1);
2785 }
2786 
srmp7(machine_config & config)2787 void ssv_state::srmp7(machine_config &config)
2788 {
2789 	ssv(config);
2790 
2791 	/* basic machine hardware */
2792 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::srmp7_map);
2793 
2794 	WATCHDOG_TIMER(config, "watchdog");
2795 
2796 	/* video hardware */
2797 	m_screen->set_visarea(0, (0xd4-0x2c)*2-1, 0, (0xfd - 0x0e)-1);
2798 
2799 	m_ensoniq->set_addrmap(2, &ssv_state::srmp7_es5506_bank2_map);
2800 	m_ensoniq->set_addrmap(3, &ssv_state::srmp7_es5506_bank3_map);
2801 }
2802 
stmblade(machine_config & config)2803 void ssv_state::stmblade(machine_config &config)
2804 {
2805 	ssv(config);
2806 
2807 	/* basic machine hardware */
2808 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::drifto94_map);
2809 
2810 	UPD96050(config, m_dsp, 10000000);
2811 	m_dsp->set_addrmap(AS_PROGRAM, &ssv_state::dsp_prg_map);
2812 	m_dsp->set_addrmap(AS_DATA, &ssv_state::dsp_data_map);
2813 
2814 	/* don't need this, game just does a simple check at boot then the DSP stalls into a tight loop. */
2815 	//config.set_perfect_quantum(m_maincpu);
2816 
2817 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2818 
2819 	/* video hardware */
2820 	m_screen->set_visarea(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1);
2821 }
2822 
survarts(machine_config & config)2823 void ssv_state::survarts(machine_config &config)
2824 {
2825 	ssv(config);
2826 
2827 	/* basic machine hardware */
2828 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::survarts_map);
2829 
2830 	WATCHDOG_TIMER(config, "watchdog");
2831 
2832 	/* video hardware */
2833 	m_screen->set_visarea(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1);
2834 }
2835 
dynagear(machine_config & config)2836 void ssv_state::dynagear(machine_config &config)
2837 {
2838 	survarts(config);
2839 
2840 	/* video hardware */
2841 	m_screen->set_visarea(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1);
2842 }
2843 
eaglshot(machine_config & config)2844 void eaglshot_state::eaglshot(machine_config &config)
2845 {
2846 	ssv(config);
2847 
2848 	/* basic machine hardware */
2849 	m_maincpu->set_addrmap(AS_PROGRAM, &eaglshot_state::eaglshot_map);
2850 
2851 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2852 
2853 	UPD4701A(config, m_upd4701);
2854 	m_upd4701->set_portx_tag("TRACKX");
2855 	m_upd4701->set_porty_tag("TRACKY");
2856 
2857 	WATCHDOG_TIMER(config, "watchdog");
2858 
2859 	/* video hardware */
2860 	m_screen->set_visarea(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1);
2861 	m_screen->set_screen_update(FUNC(eaglshot_state::screen_update));
2862 
2863 	m_gfxdecode->set_info(gfx_eaglshot);
2864 }
2865 
sxyreact(machine_config & config)2866 void sxyreact_state::sxyreact(machine_config &config)
2867 {
2868 	ssv(config);
2869 
2870 	/* basic machine hardware */
2871 	m_maincpu->set_addrmap(AS_PROGRAM, &sxyreact_state::sxyreact_map);
2872 
2873 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2874 
2875 	WATCHDOG_TIMER(config, "watchdog");
2876 
2877 	UPD7001(config, m_sxyreact_adc, 1'500'000); // FIXME: runs too fast because CPU doesn't wait long enough
2878 	m_sxyreact_adc->a0_callback().set_ioport("PADDLE");
2879 	m_sxyreact_adc->dl_w(1);
2880 	m_sxyreact_adc->si_w(0);
2881 
2882 	/* video hardware */
2883 	m_screen->set_visarea(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1);
2884 }
2885 
sxyreac2(machine_config & config)2886 void sxyreact_state::sxyreac2(machine_config &config)
2887 {
2888 	ssv(config);
2889 
2890 	/* basic machine hardware */
2891 	m_maincpu->set_addrmap(AS_PROGRAM, &sxyreact_state::sxyreact_map);
2892 
2893 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2894 
2895 	WATCHDOG_TIMER(config, "watchdog");
2896 
2897 	UPD7001(config, m_sxyreact_adc, 1'500'000); // FIXME: runs too fast because CPU doesn't wait long enough
2898 	m_sxyreact_adc->a0_callback().set_ioport("PADDLE");
2899 
2900 	/* video hardware */
2901 	m_screen->set_visarea(0, (0xcb - 0x23)*2-1, 0, (0xfe - 0x0e)-1);
2902 }
2903 
cairblad(machine_config & config)2904 void ssv_state::cairblad(machine_config &config)
2905 {
2906 	ssv(config);
2907 
2908 	/* basic machine hardware */
2909 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::cairblad_map);
2910 
2911 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2912 
2913 	WATCHDOG_TIMER(config, "watchdog");
2914 
2915 	/* video hardware */
2916 	m_screen->set_visarea(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1);
2917 }
2918 
twineag2(machine_config & config)2919 void ssv_state::twineag2(machine_config &config)
2920 {
2921 	ssv(config);
2922 
2923 	/* basic machine hardware */
2924 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::twineag2_map);
2925 
2926 	UPD96050(config, m_dsp, 10000000);
2927 	m_dsp->set_addrmap(AS_PROGRAM, &ssv_state::dsp_prg_map);
2928 	m_dsp->set_addrmap(AS_DATA, &ssv_state::dsp_data_map);
2929 
2930 	config.set_perfect_quantum(m_maincpu);
2931 
2932 	WATCHDOG_TIMER(config, "watchdog");
2933 
2934 	/* video hardware */
2935 	m_screen->set_visarea(0, (0xd4 - 0x2c)*2-1, 0, (0x102 - 0x12)-1);
2936 }
2937 
ultrax(machine_config & config)2938 void ssv_state::ultrax(machine_config &config)
2939 {
2940 	ssv(config);
2941 
2942 	/* basic machine hardware */
2943 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::ultrax_map);
2944 
2945 	WATCHDOG_TIMER(config, "watchdog");
2946 
2947 	/* video hardware */
2948 	m_screen->set_visarea(0, (0xd4 - 0x2c)*2-1, 0, (0x102 - 0x12)-1);
2949 }
2950 
jsk(machine_config & config)2951 void ssv_state::jsk(machine_config &config)
2952 {
2953 	ssv(config);
2954 
2955 	/* basic machine hardware */
2956 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::jsk_map);
2957 
2958 	V810(config, "sub", 25000000).set_addrmap(AS_PROGRAM, &ssv_state::jsk_v810_mem);
2959 
2960 	WATCHDOG_TIMER(config, "watchdog");
2961 
2962 	/* video hardware */
2963 	m_screen->set_visarea(0, (0xca - 0x22)*2-1, 0, (0xfe - 0x0e)-1);
2964 }
2965 
pastelis(machine_config & config)2966 void ssv_state::pastelis(machine_config &config)
2967 {
2968 	ssv(config);
2969 
2970 	/* basic machine hardware */
2971 	m_maincpu->set_addrmap(AS_PROGRAM, &ssv_state::keithlcy_map);
2972 
2973 	/* video hardware */
2974 	m_screen->set_visarea(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1);
2975 }
2976 
2977 /***************************************************************************
2978 
2979 
2980                                 ROMs Loading
2981 
2982 
2983 ***************************************************************************/
2984 
2985 
2986 /***************************************************************************
2987 
2988                         Change Air Blade (Japan)
2989 
2990 Change Air Blade
2991 Sammy, 1999
2992 
2993 ROM board for use with System SSV Main Board
2994 PCB No: P1-112C
2995 
2996 Fairly sparsely populated board containing not much except....
2997 
2998 RAM   : 6262 (x1)
2999 OTHER : 3.6V Ni-Cd Battery
3000 PALs  : (x1, labelled AC412G00)
3001 
3002 ROMs  : (Filename  = ROM Label)
3003         (Extension = PCB Location)
3004 ------------------------------
3005 AC1801M01.U6    32M Mask
3006 AC1802M01.U9    32M Mask
3007 
3008 AC1805M01.U8    32M Mask
3009 AC1806M01.U11   32M Mask
3010 
3011 AC1803M01.U7    32M Mask
3012 AC1804M01.U10   32M Mask
3013 
3014 AC1807M01.U41   32M Mask
3015 AC1810E01.U32   27C160
3016 
3017 
3018 ***************************************************************************/
3019 
3020 ROM_START( cairblad )
3021 	ROM_REGION( 0x200000, "maincpu", 0 )     /* V60 Code */
3022 	ROM_LOAD16_WORD( "ac1810e0.u32",  0x000000, 0x200000, CRC(13a0b4c2) SHA1(3498303e9b186ab329ee761cee9d4cb8ed552455) ) // AC1810E01.U32    27C160
3023 
3024 	ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
3025 	ROM_LOAD( "ac1801m0.u6",  0x0000000, 0x400000, CRC(1b2b6943) SHA1(95c5dc0ed1d533b2285452c8546346d96a90d097) ) // AC1801M01.U6    32M Mask
3026 	ROM_LOAD( "ac1802m0.u9",  0x0400000, 0x400000, CRC(e053b087) SHA1(9569e79c6363e8f97c27aacaa29d25cf32c4b4c1) ) // AC1802M01.U9    32M Mask
3027 
3028 	ROM_LOAD( "ac1803m0.u7",  0x0800000, 0x400000, CRC(45484866) SHA1(5e2f06743906be298202eafc233b76762d60d8aa) ) // AC1803M01.U7    32M Mask
3029 	ROM_LOAD( "ac1804m0.u10", 0x0c00000, 0x400000, CRC(5e0b2285) SHA1(b3b8f249c1b1b2e9438ebc3a669f3ebfb5aa5feb) ) // AC1804M01.U10   32M Mask
3030 
3031 	ROM_LOAD( "ac1805m0.u8",  0x1000000, 0x400000, CRC(19771f43) SHA1(d6a05392c58d3f60d666e08b3a82f06fa2c8e3a3) ) // AC1805M01.U8    32M Mask
3032 	ROM_LOAD( "ac1806m0.u11", 0x1400000, 0x400000, CRC(816b97dc) SHA1(3737cb37a4db720901661fa9b4e30c44181efb94) ) // AC1806M01.U11   32M Mask
3033 
3034 	ROM_FILL(                 0x1800000, 0x800000, 0x000000)
3035 
3036 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3037 	ROM_LOAD16_WORD_SWAP( "ac1410m0.u41", 0x000000, 0x400000, CRC(ecf1f255) SHA1(984b1529b8f0c7d94ea713c85d71df00f54eba79) ) // AC1807M01.U41   32M Mask
3038 ROM_END
3039 
3040 
3041 /***************************************************************************
3042 
3043                         Drift Out '94 - The hard order
3044 
3045 ----------------------
3046 System SSV (STA-0001B)
3047 ----------------------
3048 CPU  : NEC D70615GD-16-S (V60)
3049 Sound: Ensoniq ES5506 (OTTOR2)
3050 OSC  : 42.9545MHz(X2) 48.0000MHz(X3)
3051 
3052 Custom chips:
3053 ST-0004 (Video DAC?)
3054 ST-0005 (Parallel I/O?)
3055 ST-0006 (Video controller)
3056 ST-0007 (System controller)
3057 
3058 Program Work RAM  : 256Kbitx2 (expandable to 1Mx2)
3059 Object Work RAM   : 1Mbitx2
3060 Color Palette RAM : 256Kbitx3 (expandable to 1Mx3)
3061 
3062 -------------------------
3063 SSV Subboard (VISCO-001B)
3064 -------------------------
3065 ROMs:
3066 visco-33.bin - Main programs (27c4000)
3067 visco-37.bin /
3068 
3069 vg003-19.u26 - Data? (mask, read as 27c160)
3070 
3071 vg003-17.u22 - Samples (mask, read as 27c160)
3072 vg003-18.u15 /
3073 
3074 vg003-01.a0 - Graphics (mask, read as 27c160)
3075 vg003-05.a1 |
3076 vg003-09.a2 |
3077 vg009-13.a3 |
3078 vg009-02.b0 |
3079 vg003-06.b1 |
3080 vg003-10.b2 |
3081 vg003-14.b3 |
3082 vg003-03.c0 |
3083 vg003-07.c1 |
3084 vg003-11.c2 |
3085 vg003-15.c3 |
3086 vg003-04.d0 |
3087 vg003-08.d1 |
3088 vg003-12.d2 |
3089 vg003-16.d3 /
3090 
3091 VISCO-001B
3092 |-----------------------|CN1|-|
3093 |                             |
3094 |              VG003-16.D3  L |
3095 |              VG003-12.D2  o |
3096 | VG003-18.U15 VG003-08.D1  g |
3097 | VG003-17.U22 VG003-04.D0  i |
3098 |              VG003-15.C3  c |
3099 |              VG003-11.C2    |
3100 |              VG003-07.C1  c |
3101 | uPD4701AC    VG003-03.C0  h |
3102 | ADC0809      VG003-14.B3  i |
3103 | VG003-19.U26 VG003-10.B2  p |
3104 | VISCO-33.U33 VG003-06.B1  s |
3105 | VISCO-37.U37 VG003-02.B0    |
3106 |6264 VG003-22 VG003-13.A3  x |
3107 |    ST010     VG003-09.A2    |
3108 |              VG003-05.A1  1 |
3109 |3790 BT2* BT1 VG003-01.A0  7 |
3110 |                             |
3111 |-----------------------------|
3112 
3113   VG003-22: GAL16V8B (undumped) at U29
3114 SETA ST010: Custom programmed uPD96050 MCU used for math caculations
3115 ADC0809CCN: 8bit microprocessor compatible A/D converters with 8-Channel Multiplexer
3116  uPD4701AC: X, Y 2-axis Incremental Encoder Counter
3117        CN1: 5-pin male header/connector
3118       3790: MB3790 Bi-CMOS Battery Backup IC
3119       6264: Sharp LH5168D-10L 8K x 8bit CMOS SRAM
3120        BT1: CR2032 3v battery
3121 
3122 ***************************************************************************/
3123 
3124 ROM_START( drifto94 )
3125 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
3126 	ROM_LOAD16_WORD( "vg003-19.u26", 0x000000, 0x200000, CRC(238e5e2b) SHA1(fe58f571857804263642d7d089df962327a007b6) ) // "SoundDriverV1.1a"
3127 	ROM_LOAD16_BYTE( "visco-37.u37", 0x200000, 0x080000, CRC(78fa3ccb) SHA1(0c79ff1aa31e7ca1eeb14fbef7774278fa83ba44) )
3128 	ROM_RELOAD(                      0x300000, 0x080000)
3129 	ROM_LOAD16_BYTE( "visco-33.u33", 0x200001, 0x080000, CRC(88351146) SHA1(1decce44b5d244b57676177f417e4937d7088124) )
3130 	ROM_RELOAD(                      0x300001, 0x080000)
3131 
3132 	ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
3133 	ROM_LOAD( "vg003-01.a0", 0x0000000, 0x200000, CRC(2812aa1a) SHA1(5046fe51a4ea50051a19cfeeb091c87f0f217fb8) )
3134 	ROM_LOAD( "vg003-05.a1", 0x0200000, 0x200000, CRC(1a1dd910) SHA1(f2252e4cd1b6269036ed02cec9d5a224736c1bce) )
3135 	ROM_LOAD( "vg003-09.a2", 0x0400000, 0x200000, CRC(198f1c06) SHA1(7df5d51aa62f0b609cd1d296a3cfeeb38fbcd9d0) )
3136 	ROM_LOAD( "vg003-13.a3", 0x0600000, 0x200000, CRC(b45b2267) SHA1(66828efcca2050bc1cdca6bbf2e8cf015ff937a8) )
3137 
3138 	ROM_LOAD( "vg003-02.b0", 0x0800000, 0x200000, CRC(d7402027) SHA1(32af6d611ea277a860ee10e98f4eee5c4458ef7a) )
3139 	ROM_LOAD( "vg003-06.b1", 0x0a00000, 0x200000, CRC(518c509f) SHA1(e4bcbe1d8644490a58670add40d2908c7acdf989) )
3140 	ROM_LOAD( "vg003-10.b2", 0x0c00000, 0x200000, CRC(c1ee9d8b) SHA1(7425cf92225cd1c8d764aa47db6219a6d8b090a5) )
3141 	ROM_LOAD( "vg003-14.b3", 0x0e00000, 0x200000, CRC(645b672b) SHA1(26dfde289679cd780bc65f4f6783a6a0f8b87818) )
3142 
3143 	ROM_LOAD( "vg003-03.c0", 0x1000000, 0x200000, CRC(1ca7163d) SHA1(d8c5fd0054a1bc1fbad5866216f6d83c42436ecd) )
3144 	ROM_LOAD( "vg003-07.c1", 0x1200000, 0x200000, CRC(2ff113bb) SHA1(a482ddd3c86633a79d18a03193d70fc8f0f157d8) )
3145 	ROM_LOAD( "vg003-11.c2", 0x1400000, 0x200000, CRC(f924b105) SHA1(079ad0fc3b34c31a67dd88a442088237a2c03fdd) )
3146 	ROM_LOAD( "vg003-15.c3", 0x1600000, 0x200000, CRC(83623b01) SHA1(026654303fb58958bc7f7be86aeb4fdd08e8be7b) )
3147 
3148 	ROM_LOAD( "vg003-04.d0", 0x1800000, 0x200000, CRC(6be9bc62) SHA1(c0b49a558786b50f04c1cd87a11e111ad31b85d9) )
3149 	ROM_LOAD( "vg003-08.d1", 0x1a00000, 0x200000, CRC(a7113cdb) SHA1(74d8bfee7e816d53e60d4e54a2584643562a1ee5) )
3150 	ROM_LOAD( "vg003-12.d2", 0x1c00000, 0x200000, CRC(ac0fd855) SHA1(992ae0d02bcefaa2fad7462b211a49fbd1338b62) )
3151 	ROM_LOAD( "vg003-16.d3", 0x1e00000, 0x200000, CRC(1a5fd312) SHA1(1e67ffa51408de107be75c9c63df6fd1bb6ce6b1) )
3152 
3153 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
3154 	ROM_LOAD16_BYTE( "vg003-17.u22", 0x000000, 0x200000, CRC(6f9294ce) SHA1(b097defd95eb1d8f00e107d7669f9d33148e75c1) )
3155 
3156 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
3157 	ROM_LOAD16_BYTE( "vg003-18.u15", 0x000000, 0x200000, CRC(511b3e93) SHA1(09eda175c8f1b21c18645519cc6e89c6ca1fc5de) )
3158 
3159 	ROM_REGION( 0x11000, "st010", 0)
3160 	ROM_LOAD( "st010.bin",    0x00000, 0x11000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) ) // BPMicro-compatible dump
3161 	ROM_REGION32_BE( 0x10000, "dspprg", 0)
3162 	ROM_COPY( "st010", 0x00000, 0x00000, 0x10000 )
3163 	ROM_REGION16_BE( 0x01000, "dspdata", 0)
3164 	ROM_COPY( "st010", 0x10000, 0x00000, 0x01000 )
3165 ROM_END
3166 
3167 
3168 /***************************************************************************
3169 
3170 Eagle Shot Golf
3171 Sammy, 1994
3172 
3173 GOLF ROM
3174 |----------------------------------------|
3175 | 514400                    GAL SI3-11   |
3176 |                           GAL SI3-12   |
3177 | 514400                                 |
3178 |          SI003-06.u31    SI003-09.u18  |
3179 | 514400                                 |
3180 |                                        |
3181 | 514400   SI003-05.u30    SI003-10.u20  |
3182 |                                        |
3183 | 514400                                 |
3184 |          SI003-04.u10                  |
3185 | 514400                                 |
3186 |                                        |
3187 | 514400   SI003-03.u11                  |
3188 |                                        |
3189 | 514400                                 |
3190 |          SI003-02.u12                  |
3191 |                                        |
3192 |                                        |
3193 |          SI003-01.u13    SI003-07.U23  |
3194 |                                        |
3195 |                                        |
3196 |                          SI003-08.U24  |
3197 |                                        |
3198 |                             uPD4701    |
3199 |                                        |
3200 |                             mc14584b   |
3201 |                                        |
3202 |                                 P1     |
3203 |-------------------------------||||||---|
3204 
3205  mc14584b - Motorola HEX Schmitt Trigger
3206   uPD4701 - Mouse/Trackball interface by NEC
3207    514400 - Hatachi HM514400BS7 1M x 4 DRAM (4 Megs of RAM)
3208       GAL - GAL16V8B
3209        P1 - 6 Pin trackball connector (same pinout as Golden Tee 9x series)
3210 
3211 Lower PCB
3212 PCB Number: GOLF ROM PCB
3213 RAM       : HM514400 (x8)
3214 PALs      : GAL16V8 (x2) labelled SI3-11 & SI3-12
3215 OTHER     : NEC D4701AC
3216             Controls probably trackball, has 6 pin connector hooked up to a
3217             mc14584b Logic IC. Joystick appears to be used also for selecting
3218             stance, club and direction.
3219 
3220 ROMs      : U18 & U20 are used for main program.
3221             All rest are 16M Mask
3222             U23 & U24 are sound related, all others for GFX.
3223 
3224 Loc  ROMs           Use & EPROM type
3225 -----------------------------------------
3226 U18  si003-09.prl - V60 Program (27C4001)
3227 U20  si003-10.prh /
3228 
3229 U23  si003-07.s0 - Samples (16M-Mask)
3230 U24  si003-08.s1 /
3231 
3232 U13  si003-01.d0 - Graphics (16M-Mask)
3233 U12  si003-02.d1 |
3234 U11  si003-03.d2 |
3235 U10  si003-04.d3 |
3236 U30  si003-05.d4 |
3237 U31  si003-06.d5 /
3238 
3239 NOTE: The "s" and "d" designations above are silk-screened on the ROM PCB.
3240 
3241 Chips of note:  mc14584b - Motorola HEX Schmitt Trigger
3242 
3243 This chip is used for the trackball trigger / reading / converting values
3244 
3245 ***************************************************************************/
3246 
3247 ROM_START( eaglshot )
3248 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3249 	ROM_LOAD16_BYTE( "si003-09.u18",  0x000000, 0x080000, CRC(219c71ce) SHA1(4f8996b4c5b267a90073d67857358147732f8c0d) )
3250 	ROM_LOAD16_BYTE( "si003-10.u20",  0x000001, 0x080000, CRC(c8872e48) SHA1(c8e1e712d5fa380f8fc1447502f21d2ae592811a) )
3251 
3252 	ROM_REGION16_LE( 0xe00000, "gfxdata", ROMREGION_ERASEFF ) /* Sprites - Read by the CPU */
3253 	ROM_LOAD( "si003-01.u13", 0x0000000, 0x200000, CRC(d7df0d52) SHA1(d7b79a186f4272334c2297666c52f32c05787c29) )
3254 	ROM_LOAD( "si003-02.u12", 0x0200000, 0x200000, CRC(92b4d50d) SHA1(9dc2f2961b088824d8370ac83dff796345fe4158) )
3255 	ROM_LOAD( "si003-03.u11", 0x0400000, 0x200000, CRC(6ede4012) SHA1(6663990c6ee8e500cb8c51ad2102761ee0b3351d) )
3256 	ROM_LOAD( "si003-04.u10", 0x0600000, 0x200000, CRC(4c65d1a1) SHA1(165f16d08813d2c989ddce4bb23b3a3652003bd5) )
3257 	ROM_LOAD( "si003-05.u30", 0x0800000, 0x200000, CRC(daf52d56) SHA1(108419ef7d3716a3890b0d8bcbfddc1585daaae8) )
3258 	ROM_LOAD( "si003-06.u31", 0x0a00000, 0x200000, CRC(449f9ae5) SHA1(b3e664eb88d14d1e25a0cfc8dcccc8270ca778c9) )
3259 
3260 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3261 	ROM_LOAD16_WORD_SWAP( "si003-07.u23", 0x000000, 0x200000, CRC(81679fd6) SHA1(ca3b07a87781278b5c7c85951728bbe5dfcbe042) )
3262 	ROM_LOAD16_WORD_SWAP( "si003-08.u24", 0x200000, 0x200000, CRC(d0122ba2) SHA1(96230fb690cf144cd873f7d51c0304736a698316) )
3263 
3264 	ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
3265 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3266 
3267 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3268 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3269 
3270 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
3271 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3272 ROM_END
3273 
3274 ROM_START( eaglshotj )
3275 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3276 	ROM_LOAD16_BYTE( "sammygolf.u18",  0x000000, 0x080000, CRC(b6d6869c) SHA1(7528751fad783e9b0fd217d2fac2ab408814a583) ) // handwritten labels on prg ROMs, other ROMS had no labels.
3277 	ROM_LOAD16_BYTE( "sammygolf.u20",  0x000001, 0x080000, CRC(c8872e48) SHA1(c8e1e712d5fa380f8fc1447502f21d2ae592811a) )
3278 
3279 	ROM_REGION16_LE( 0xe00000, "gfxdata", ROMREGION_ERASEFF ) /* Sprites - Read by the CPU */
3280 	ROM_LOAD( "si003-01.u13", 0x0000000, 0x200000, CRC(d7df0d52) SHA1(d7b79a186f4272334c2297666c52f32c05787c29) )
3281 	ROM_LOAD( "si003-02.u12", 0x0200000, 0x200000, CRC(92b4d50d) SHA1(9dc2f2961b088824d8370ac83dff796345fe4158) )
3282 	ROM_LOAD( "si003-03.u11", 0x0400000, 0x200000, CRC(6ede4012) SHA1(6663990c6ee8e500cb8c51ad2102761ee0b3351d) )
3283 	ROM_LOAD( "si003-04.u10", 0x0600000, 0x200000, CRC(4c65d1a1) SHA1(165f16d08813d2c989ddce4bb23b3a3652003bd5) )
3284 	ROM_LOAD( "si003-05.u30", 0x0800000, 0x200000, CRC(daf52d56) SHA1(108419ef7d3716a3890b0d8bcbfddc1585daaae8) )
3285 	ROM_LOAD( "si003-06.u31", 0x0a00000, 0x200000, CRC(449f9ae5) SHA1(b3e664eb88d14d1e25a0cfc8dcccc8270ca778c9) )
3286 
3287 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3288 	ROM_LOAD16_WORD_SWAP( "si003-07.u23", 0x000000, 0x200000, CRC(81679fd6) SHA1(ca3b07a87781278b5c7c85951728bbe5dfcbe042) )
3289 	ROM_LOAD16_WORD_SWAP( "si003-08.u24", 0x200000, 0x200000, CRC(d0122ba2) SHA1(96230fb690cf144cd873f7d51c0304736a698316) )
3290 
3291 	ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
3292 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3293 
3294 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3295 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3296 
3297 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
3298 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3299 ROM_END
3300 
3301 
3302 
3303 /***************************************************************************
3304 
3305                     (Mahjong) Hyper Reaction (Japan)
3306 
3307 (c)1995 Sammy, SSV system
3308 
3309 P1-102A (ROM board)
3310 
3311 ***************************************************************************/
3312 
3313 ROM_START( hypreact )
3314 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3315 	ROM_LOAD16_BYTE( "s14-1-02.u2", 0x000000, 0x080000, CRC(d90a383c) SHA1(9945f60ce6e1f50c24c2ae3c2c5d0df9ec3b8926) )
3316 	ROM_LOAD16_BYTE( "s14-1-01.u1", 0x000001, 0x080000, CRC(80481401) SHA1(4b1b7050893b6659762297d0f6496c7193ea6c4e) )
3317 
3318 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
3319 	ROM_LOAD( "s14-1-07.u7",  0x0000000, 0x200000, CRC(6c429fd0) SHA1(de1bbcd4a20410328d88a3b246afa8e1a6a6f232) )
3320 	ROM_LOAD( "s14-1-05.u13", 0x0200000, 0x200000, CRC(2ff72f98) SHA1(92bd5042e19e1dae1252305413684f9cff4bd0ac) )
3321 	ROM_LOAD( "s14-1-06.u10", 0x0400000, 0x200000, CRC(f470ec42) SHA1(f31e9c3f3daa212226b9eea14aa1d01367fa348f) )
3322 
3323 	ROM_LOAD( "s14-1-10.u6",  0x0600000, 0x200000, CRC(fdd706ba) SHA1(893ead529c1ef62002dcff97092ff9fa51ced938) )
3324 	ROM_LOAD( "s14-1-08.u12", 0x0800000, 0x200000, CRC(5bb9bb0d) SHA1(1874375cbe79663ff1b5181a1c16fa597a6b55f7) )
3325 	ROM_LOAD( "s14-1-09.u9",  0x0a00000, 0x200000, CRC(d1dda65f) SHA1(b4bbd5c9da08b4d4fedb48cfe2dea4f27895c2fd) )
3326 
3327 	ROM_LOAD( "s14-1-13.u8",  0x0c00000, 0x200000, CRC(971caf11) SHA1(7cfc8bed4431467da53e19056402aa2409be5d88) )
3328 	ROM_LOAD( "s14-1-11.u14", 0x0e00000, 0x200000, CRC(6d8e7bae) SHA1(93258663ceb6174917560bb66d72a42ba0f96c0e) )
3329 	ROM_LOAD( "s14-1-12.u11", 0x1000000, 0x200000, CRC(233a8e23) SHA1(0c813ec80ac63aa342c8ea57d9e38cada74456d9) )
3330 
3331 	ROM_FILL(                 0x1200000, 0x600000, 0x000000          )
3332 
3333 //  The chip seems to use REGION1 too, but produces no sound from there.
3334 
3335 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3336 	ROM_LOAD16_WORD_SWAP( "s14-1-04.u4", 0x000000, 0x200000, CRC(a5955336) SHA1(1ac0f5d27224e93acfe449d8ca5c3ab3b7f5dd8c) )
3337 	ROM_LOAD16_WORD_SWAP( "s14-1-03.u5", 0x200000, 0x200000, CRC(283a6ec2) SHA1(766c685384ea8d801c53a2ae36b4980318aff06b) )
3338 ROM_END
3339 
3340 
3341 /***************************************************************************
3342 
3343                     (Mahjong) Hyper Reaction 2 (Japan)
3344 
3345 (c)1997 Sammy,SSV system
3346 
3347 P1-112A (ROM board)
3348 
3349 ***************************************************************************/
3350 
3351 ROM_START( hypreac2 )
3352 	ROM_REGION( 0x200000, "maincpu", 0 )     /* V60 Code */
3353 	ROM_LOAD16_BYTE( "u2.bin",  0x000000, 0x080000, CRC(05c93266) SHA1(0833e80f67ccb4ac17e771fa04dc6f433554a34f) )
3354 	ROM_LOAD16_BYTE( "u1.bin",  0x000001, 0x080000, CRC(80cf9e59) SHA1(7025321539891e1a3354ca233255f5395d716933) )
3355 	ROM_LOAD16_BYTE( "u47.bin", 0x100000, 0x080000, CRC(a3e9bfee) SHA1(1e897646bafd07ab48eda2883926506c6bedab87) )
3356 	ROM_LOAD16_BYTE( "u46.bin", 0x100001, 0x080000, CRC(68c41235) SHA1(6ec32aa6ab6074a8db63a76a3d1a0ec2dc8f8aae) )
3357 
3358 	ROM_REGION( 0x2800000, "gfx1", 0 )  /* Sprites */
3359 	ROM_LOAD( "s16-1-16.u6",  0x0000000, 0x400000, CRC(b308ac34) SHA1(409652bc5a537650cab1f3709a2c2be206f72a78) )
3360 	ROM_LOAD( "s16-1-15.u9",  0x0400000, 0x400000, CRC(2c8e381e) SHA1(a8681620809d3d9dc62b443232b6e4c4c4209248) )
3361 	ROM_LOAD( "s16-1-14.u12", 0x0800000, 0x200000, CRC(afe9d187) SHA1(802df8b1bbb94e4451a6b97c852fa555a6cf5837) )
3362 
3363 	ROM_LOAD( "s16-1-10.u7",  0x0a00000, 0x400000, CRC(86a10cbd) SHA1(7c15da7c3ffebff058e78439c64f6c0386e4d55b) )
3364 	ROM_LOAD( "s16-1-09.u10", 0x0e00000, 0x400000, CRC(6b8e4d92) SHA1(a58c02d3fe595ab654b267cebcb1c6e8ec0b20c4) )
3365 	ROM_LOAD( "s16-1-08.u13", 0x1200000, 0x200000, CRC(b355f45d) SHA1(7e0fe81825745555b9627716bfdf1132f20e88f0) )
3366 
3367 	ROM_LOAD( "s16-1-13.u8",  0x1400000, 0x400000, CRC(89869af2) SHA1(46a8eec18327b515a33c6e01d35fb9b947fcab1f) )
3368 	ROM_LOAD( "s16-1-12.u11", 0x1800000, 0x400000, CRC(87d9c748) SHA1(1332db901e50e2fd25d3323920f99e0ef0b0533d) )
3369 	ROM_LOAD( "s16-1-11.u14", 0x1c00000, 0x200000, CRC(70b3c0a0) SHA1(009e2f2f292ed6f10a9d54557861294156664e72) )
3370 
3371 	ROM_FILL(                 0x1e00000,0x0a00000, 0x000000)
3372 
3373 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3374 	ROM_LOAD16_WORD_SWAP( "s16-1-06.u41", 0x000000, 0x400000, CRC(626e8a81) SHA1(45ef5b630aed575acd160ede1413e0370f4f9761) )
3375 
3376 	ROM_REGION16_BE( 0x600000, "ensoniq.1", 0 ) /* Samples */
3377 	ROM_LOAD16_WORD_SWAP( "s16-1-07.u42", 0x200000, 0x400000, CRC(42bcb41b) SHA1(060312b19bd52770410cec1f77e5d8d6478d80eb) )
3378 
3379 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3380 	ROM_LOAD16_WORD_SWAP( "s16-1-07.u42", 0x000000, 0x400000, CRC(42bcb41b) SHA1(060312b19bd52770410cec1f77e5d8d6478d80eb) )
3381 ROM_END
3382 
3383 
3384 /***************************************************************************
3385 
3386              Lovely Pop Mahjong Jangjang Shimasho (Japan)
3387 
3388 (c)1996 Visco, SSV System
3389 
3390 ***************************************************************************/
3391 
3392 ROM_START( janjans1 )
3393 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
3394 	ROM_LOAD16_WORD( "jj1-data.bin", 0x000000, 0x200000, CRC(6734537e) SHA1(a40f84479141a6f33ce465e66ba9313b54915002) )
3395 	ROM_LOAD16_BYTE( "jj1-prol.bin", 0x200000, 0x080000, CRC(4231d928) SHA1(820d1233cd1a8d0c4ece15b94bd9be976b383fe2) )
3396 	ROM_RELOAD(                      0x300000, 0x080000)
3397 	ROM_LOAD16_BYTE( "jj1-proh.bin", 0x200001, 0x080000, CRC(651383c6) SHA1(8291f86b230eee3a2ebcc926a8370777ee21ec47) )
3398 	ROM_RELOAD(                      0x300001, 0x080000)
3399 
3400 	ROM_REGION( 0x2800000, "gfx1", 0 )  /* Sprites */
3401 	ROM_LOAD( "jj1-a0.bin", 0x0000000, 0x400000, CRC(39bbbc46) SHA1(77c6b5e9d4315671ea79ec838baa7ae043bcd8c4) )
3402 	ROM_LOAD( "jj1-a1.bin", 0x0400000, 0x400000, CRC(26020133) SHA1(32c834655d885431d466f25a729aee2d589ade1b) )
3403 	ROM_LOAD( "jj1-a2.bin", 0x0800000, 0x200000, CRC(e993251e) SHA1(6cea12bbfc170ad4ecdc09c1728f88ec7534270a) )
3404 
3405 	ROM_LOAD( "jj1-b0.bin", 0x0a00000, 0x400000, CRC(8ee66b0a) SHA1(f5a641d54a3040b67d9b6e9533c4e1ed3dbc9e12) )
3406 	ROM_LOAD( "jj1-b1.bin", 0x0e00000, 0x400000, CRC(048719b3) SHA1(b81198d58afbc7ef2f7dc71cfef11d269bc1608f) )
3407 	ROM_LOAD( "jj1-b2.bin", 0x1200000, 0x200000, CRC(6e95af3f) SHA1(c4336a3f169143d5ab828ea527c08dcac27654c3) )
3408 
3409 	ROM_LOAD( "jj1-c0.bin", 0x1400000, 0x400000, CRC(9df28afc) SHA1(98ee75b028257614c3354d5ec7b3d4b27be75595) )
3410 	ROM_LOAD( "jj1-c1.bin", 0x1800000, 0x400000, CRC(eb470ed3) SHA1(ac0601eb57283c3ebb2daf20d07a2c350804b8e6) )
3411 	ROM_LOAD( "jj1-c2.bin", 0x1c00000, 0x200000, CRC(aaf72c2d) SHA1(774e713bbc4c2ed7ff7c9fb49a06246d97c33bad) )
3412 
3413 	ROM_LOAD( "jj1-d0.bin", 0x1e00000, 0x400000, CRC(2b3bd591) SHA1(0619b2779bd4bc19a5259040ccce0fdbefecf1d0) )
3414 	ROM_LOAD( "jj1-d1.bin", 0x2200000, 0x400000, CRC(f24c0d36) SHA1(212969b456bfd7cc00081f65c03c1e167186891a) )
3415 	ROM_LOAD( "jj1-d2.bin", 0x2600000, 0x200000, CRC(481b3be8) SHA1(cd1bcaca8c236cebba72d315e759b2e9d243aca8) )
3416 
3417 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
3418 	ROM_LOAD16_BYTE( "jj1-snd0.bin", 0x000000, 0x200000, CRC(4f7d620a) SHA1(edded130ce7bb0f37e1f59b2771ae6a10a061f9e) )
3419 
3420 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
3421 	ROM_LOAD16_BYTE( "jj1-snd1.bin", 0x000000, 0x200000, CRC(9b3a7ae5) SHA1(193743fcce779c4a8a73a44c54b5391d08116331) )
3422 ROM_END
3423 
3424 /***************************************************************************
3425 
3426             Lovely Pop Mahjong JangJang Shimasho 2 (Japan)
3427 
3428 (c)1996-2000 Visco
3429 
3430 This game runs on SSV hardware. The game PCB is VISCO-JJ1
3431 The game PCB contains mostly just ROMs and logic, plus....
3432 NEC D71051 (DIP28)
3433 8MHz OSC TI 75175 (DIP8)
3434 2x PALs (near program ROMs)
3435 2x 8-pin connectors for extra controls
3436 
3437 ***************************************************************************/
3438 
3439 ROM_START( janjans2 )
3440 	ROM_REGION( 0x400000, "maincpu", 0 )        /* V60 Code */
3441 	ROM_LOAD16_WORD( "jan2-dat.u28",  0x000000, 0x200000, CRC(0c9c62bf) SHA1(17c6eea7cec05860c238cc22706fec1a8e3d9263) )
3442 	ROM_LOAD16_BYTE( "jan2-prol.u26", 0x200000, 0x080000, CRC(758a7249) SHA1(1126e8527bad000bdfbd59da46d72ed256cb0fa9) )
3443 	ROM_RELOAD(                       0x300000, 0x080000)
3444 	ROM_LOAD16_BYTE( "jan2-proh.u27", 0x200001, 0x080000, CRC(fcd5da62) SHA1(e0243e41e4ec25e82b0316f1189ed069c369e7b1) )
3445 	ROM_RELOAD(                       0x300001, 0x080000)
3446 
3447 	ROM_REGION( 0x2000000, "gfx1", 0 )    /* Sprites */
3448 	ROM_LOAD( "jan2-a0.u13", 0x0000000, 0x400000, CRC(37869bea) SHA1(6259e8584775ca702ef4e9e460c6d874980ffecb) )
3449 	ROM_LOAD( "jan2-a1.u14", 0x0400000, 0x400000, CRC(8189e74f) SHA1(ea083a7ef0858dac59e14a77f10a9900b20447f3) )
3450 
3451 	ROM_LOAD( "jan2-b0.u16", 0x0800000, 0x400000, CRC(19877c5c) SHA1(5faaf3b862ca544589b46cf52d5fdb73287ceb6f) )
3452 	ROM_LOAD( "jan2-b1.u17", 0x0c00000, 0x400000, CRC(8d0f7190) SHA1(d06b53d627f7629bda4de7e130eae2be14c18a5a) )
3453 
3454 	ROM_LOAD( "jan2-c0.u21", 0x1000000, 0x400000, CRC(8bdff3d5) SHA1(be3d2f72abae620f8855d5443dae62880f58f7c6) )
3455 	ROM_LOAD( "jan2-c1.u22", 0x1400000, 0x400000, CRC(f7ea5934) SHA1(1767a0206fc35dc2800c9b5b061f704828571452) )
3456 
3457 	ROM_LOAD( "jan2-d0.u34", 0x1800000, 0x400000, CRC(479fdb54) SHA1(667d89518877a3b501a87c9c765b85b9a0b23517) )
3458 	ROM_LOAD( "jan2-d1.u35", 0x1c00000, 0x400000, CRC(c0148895) SHA1(f89482a6ef475ca44d570332d05201b34887afbb) )
3459 
3460 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )    /* Samples */
3461 	ROM_LOAD16_BYTE( "jan2-snd0.u29", 0x000000, 0x200000, CRC(22cc054e) SHA1(4926dd9f8f85880d6c1d14f93d68f330898b473a) )
3462 
3463 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )    /* Samples */
3464 	ROM_LOAD16_BYTE( "jan2-snd1.u33", 0x000000, 0x200000, CRC(cbcac4a6) SHA1(f0c57fa6784e910bdb94f046d09e58e26921773b) )
3465 ROM_END
3466 
3467 
3468 /***************************************************************************
3469 
3470 Joryuu Syougi Kyoushitsu
3471 (c)1997 Visco, System SSV ROM board
3472 
3473 CPU : NEC JAPAN D70732GD-25 (C)NEC1991 V810 9651MK007
3474 OSC : 48.0000MHz
3475 
3476 ROMs:
3477 JSK-U4 .BIN [ec22fb41] - (27c1001)
3478 JSK-U24.BIN [1fa6e156]  |
3479 JSK-U38.BIN [8e5c0de3]  |
3480 JSK-U52.BIN [b11aef0c] /
3481 
3482 JSK-U71.BIN [f6774fba] - (27c040)
3483 JSK-U72.BIN [db6b2554] /
3484 
3485 JSK-S0.U65  [8d1a9aeb] - (16M mask)
3486 
3487 JSK-A0.BIN  [4bac3196] - (16M mask)
3488 JSK-B0.BIN  [40664e5a]  |
3489 JSK-C0.BIN  [2a230e64]  |
3490 JSK-D0.BIN  [911e53a6] /
3491 
3492 GAL (not dumped):
3493 U53.BIN     [--------] - GAL16V8B
3494 U70.BIN     [--------] /
3495 
3496 dumped by sayu
3497 
3498 Note, in the old bad dump u52 had a few different bytes:
3499 
3500 ROM_LOAD32_BYTE( "jsk-u52.bin", 0x00000, 0x20000, CRC(19cc585f) SHA1(b53138e93d40c0cf03aee838d7653f5665d9cf35) )
3501 
3502 addr   old  this
3503 1FF8F: FF   00
3504 1FF97: FF   00
3505 1FFB7: FF   00
3506 1FFCF: FF   00
3507 1FFD7: FF   00
3508 1FFF7: FF   00
3509 
3510 ***************************************************************************/
3511 
3512 ROM_START( jsk )
3513 	ROM_REGION( 0x100000, "maincpu", 0 )
3514 	ROM_LOAD16_BYTE( "jsk-u72.bin", 0x00000, 0x80000, CRC(db6b2554) SHA1(c4c6617461e1d3f8660a2b97fd2c38ef245f0d4a) )
3515 	ROM_LOAD16_BYTE( "jsk-u71.bin", 0x00001, 0x80000, CRC(f6774fba) SHA1(3a74e5091d9d72e4f92c7c637cfe5c0dcc60bbe1) )
3516 
3517 	ROM_REGION( 0x20000*4, "sub", 0 )
3518 	ROM_LOAD32_BYTE( "jsk-u52.bin", 0x00000, 0x20000, CRC(b11aef0c) SHA1(37c0fedd6454a05b647513600f1b0998c572c7a5) )
3519 	ROM_LOAD32_BYTE( "jsk-u38.bin", 0x00001, 0x20000, CRC(8e5c0de3) SHA1(54c5dfd858086b0eb7ffa82c19fb1dfd7752d50e) )
3520 	ROM_LOAD32_BYTE( "jsk-u24.bin", 0x00002, 0x20000, CRC(1fa6e156) SHA1(4daedf660d89c185c945d4a526312f6528fe7b17) )
3521 	ROM_LOAD32_BYTE( "jsk-u4.bin",  0x00003, 0x20000, CRC(ec22fb41) SHA1(c0d6b0a92075214a91da78be52d273771cb9f646) )
3522 
3523 	ROM_REGION( 0x1000000, "gfx1", 0 )  /* Sprites */
3524 	ROM_LOAD( "jsk-a0.bin", 0x0000000, 0x400000, CRC(18981a19) SHA1(b4bf93f38099963350b9e5e64890ce7adc1bc983) )
3525 	ROM_LOAD( "jsk-b0.bin", 0x0400000, 0x400000, CRC(f6df0ff9) SHA1(d7736e4ae6e099aef320a59668d7f17590c346b9) )
3526 	ROM_LOAD( "jsk-c0.bin", 0x0800000, 0x400000, CRC(b8282939) SHA1(d041fb013e5011bf6b9d9bc2c816b2f3969723b7) )
3527 	ROM_LOAD( "jsk-d0.bin", 0x0c00000, 0x400000, CRC(fc733e0c) SHA1(951060f6600b8b677ad2f41f59071c375ea9d4cf) )
3528 
3529 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE )   /* Samples */
3530 	ROM_LOAD16_BYTE( "jsk-s0.u65", 0x000000, 0x200000, CRC(8d1a9aeb) SHA1(37316bd3e8cbe2a84239e1a11a56d4fe4723ae1a) )
3531 
3532 	ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
3533 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3534 
3535 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3536 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3537 
3538 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
3539 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3540 ROM_END
3541 
3542 
3543 /***************************************************************************
3544 
3545                 Dramatic Adventure Quiz Keith & Lucy (Japan)
3546 
3547 (c)1993 Visco, SSV system
3548 
3549 STS-0001 (ROM board)
3550 
3551 ***************************************************************************/
3552 
3553 ROM_START( keithlcy )
3554 	ROM_REGION( 0x200000, "maincpu", 0 )     /* V60 Code */
3555 	ROM_LOAD16_WORD( "vg002-07.u28", 0x000000, 0x100000, CRC(57f80ff5) SHA1(9dcc35a79d3799407190d113e0f1b57864d6c56a) ) // "SETA SoundDriver"
3556 	ROM_LOAD16_BYTE( "kl-p0l.u26",   0x100000, 0x080000, CRC(d7b177fb) SHA1(2a3533b952a7b2404720916662743c144e870c0b) )
3557 	ROM_LOAD16_BYTE( "kl-p0h.u27",   0x100001, 0x080000, CRC(9de7add4) SHA1(16f4405b12734cb6a83cff8be21d03bb3c2e2266) )
3558 
3559 	ROM_REGION( 0x800000, "gfx1", 0 )   /* Sprites */
3560 	ROM_LOAD( "vg002-01.u13", 0x000000, 0x200000, CRC(b44d85b2) SHA1(cf78d46f9f2594a23af08a898afbf5dd609abcec) )
3561 	ROM_LOAD( "vg002-02.u16", 0x200000, 0x200000, CRC(aa05fd14) SHA1(9144e9668788fcd45bd6c8464f9b4f865397f783) )
3562 	ROM_LOAD( "vg002-03.u21", 0x400000, 0x200000, CRC(299a8a7d) SHA1(b24d8ffba01d345f48f47f92e58e9b2a9ec62526) )
3563 	ROM_LOAD( "vg002-04.u34", 0x600000, 0x200000, CRC(d3633f9b) SHA1(250a25b75a4810a676a02c390bb597b6f1cd7494) )
3564 
3565 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3566 	ROM_LOAD16_WORD_SWAP( "vg002-05.u29", 0x000000, 0x200000, CRC(66aecd79) SHA1(7735034b8fb35ad5e7916acd0c2e224a7c62e195) )
3567 	ROM_LOAD16_WORD_SWAP( "vg002-06.u33", 0x200000, 0x200000, CRC(75d8c8ea) SHA1(545768ac6d8953cd3044680953476276337a94b9) )
3568 ROM_END
3569 
3570 /***************************************************************************
3571 
3572                 Pastel Island
3573 
3574 STS-0001 (ROM board)
3575 
3576 ***************************************************************************/
3577 
3578 ROM_START( pastelis )
3579 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
3580 	ROM_LOAD( "data.u28",  0x000000, 0x200000, CRC(e71dcc02) SHA1(38a66255c8fbf8f1a49a2180719bfaf26fd37ccf) ) // 27c160 - 1ST AND 2ND HALF IDENTICAL (but correct, 2nd half unused)
3581 	ROM_LOAD16_BYTE( "prg_l.u26", 0x100000, 0x080000, CRC(96c9d4d7) SHA1(27ba8218f667ae12f8d1b14db259c0797220126f) ) // 27c040
3582 	ROM_LOAD16_BYTE( "prg_h.u27", 0x100001, 0x080000, CRC(a513733b) SHA1(c3caeb0d1b9c56a61552865815cddf67b649d435) ) // 27c040
3583 
3584 	ROM_REGION( 0x0a00000, "gfx1", ROMREGION_ERASEFF )  /* Sprites */
3585 	ROM_LOAD( "a0.u13", 0x0000000, 0x200000, CRC(61688d29) SHA1(e5cb96ea9190bc20ad9c10e9d0773350f7defc3f) ) // 27c160
3586 	ROM_LOAD( "a1.u14", 0x0200000, 0x080000, CRC(d38b9805) SHA1(3b573f7e6b70ce68389001c1e119d4d8dd1cde3d) ) // 27c4100
3587 	ROM_LOAD( "b0.u16", 0x0280000, 0x200000, CRC(fc93f7bb) SHA1(86baddd1809adc9b4a48919db58ddd008af3aa99) ) // 27c160
3588 	ROM_LOAD( "b1.u17", 0x0480000, 0x080000, CRC(b85f4933) SHA1(00b13a8ffd4d5fa6e9c399ff4e369e2563761a42) ) // 27c4100
3589 	ROM_LOAD( "c0.u21", 0x0500000, 0x200000, CRC(7128bc51) SHA1(a858d4de3a2acedf7e1257a607a482781ac490e8) ) // 27c160
3590 	ROM_LOAD( "c1.u22", 0x0700000, 0x080000, CRC(2462206b) SHA1(35071e629877b77d23c865b407fd3dd824fbb8be) ) // 27c4100
3591 	ROM_LOAD( "d0.u34", 0x0780000, 0x200000, CRC(4f79415a) SHA1(af70656f5a0f46f773a238260e53f646efb2d238) ) // 27c160
3592 	ROM_LOAD( "d1.u35", 0x0980000, 0x080000, CRC(d3c75994) SHA1(08ff739181e4316f55f3ba50513f8fdb16db7116) ) // 27c4100 - FIXED BITS (xxxxxxxx00000000) (but correct, just lower bpp) (used for startup logo animation only)
3593 
3594 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3595 	ROM_LOAD16_WORD_SWAP( "snd_0.u29", 0x000000, 0x200000, CRC(8bc0dde9) SHA1(4dffef4d709da02d6dfd15b5266ed529e148c024) ) // 27c160
3596 	ROM_LOAD16_WORD_SWAP( "snd_1.u33", 0x200000, 0x200000, CRC(f958e0ea) SHA1(699ea44a0ef9f9a969e4eb692592b07d629923d1) ) // 27c160
3597 
3598 	ROM_REGION( 0x117, "pals", 0 )
3599 	ROM_LOAD( "u25.bin", 0x000, 0x117, CRC(e9d28bdf) SHA1(b83b798ce5a46bcda05e82fa1dd0d24260c9b5cc) )
3600 	ROM_LOAD( "u36.bin", 0x000, 0x117, CRC(6b5d083e) SHA1(1f127944c7b1f1e3c3e53f1091f8641f8d454445) )
3601 ROM_END
3602 
3603 
3604 /***************************************************************************
3605 
3606                             Koi Koi Shimasho 2 (Japan)
3607 
3608 (c)1997 Visco, SSV System
3609 
3610 VISCO-JJ1 (same board as janjans1)
3611 
3612 OSC  :8.00000MHz
3613 
3614 KK2_A0.BIN   [0c89a9ae] GFX (32M mask)
3615 KK2_A1.BIN   [3f85ff19]  |
3616 KK2_B0.BIN   [4d028972]  |
3617 KK2_B1.BIN   [16e085f7]  |
3618 KK2_C0.BIN   [34b699d9]  |
3619 KK2_C1.BIN   [896fbb6f]  |
3620 KK2_D0.BIN   [0e3005a4]  |
3621 KK2_D1.BIN   [0116a5fb] /
3622 
3623 U26.BIN      [4be937a1] Programs (27c4001) (PROL)
3624 U27.BIN      [25f39d93] /                  (PROH)
3625 
3626 KK2_SND0.BIN [b27eaa94] Sound (16M mask)
3627 KK2_SND1.BIN [e5a963e1] /
3628 
3629 (socket for DATA ROM is empty)
3630 
3631 ***************************************************************************/
3632 
3633 ROM_START( koikois2 )
3634 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
3635 //  socket for DATA ROM is empty
3636 	ROM_LOAD16_BYTE( "u26.bin", 0x200000, 0x080000, CRC(4be937a1) SHA1(b2c22ec12fc110984bd1914f8e3e16a8cb866816) )
3637 	ROM_RELOAD(                 0x300000, 0x080000)
3638 	ROM_LOAD16_BYTE( "u27.bin", 0x200001, 0x080000, CRC(25f39d93) SHA1(a36bc2fe5657f6ceada724fd42843e19408b39b8) )
3639 	ROM_RELOAD(                 0x300001, 0x080000)
3640 
3641 	ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
3642 	ROM_LOAD( "kk2-a0.bin", 0x0000000, 0x400000, CRC(b94b76c2) SHA1(07ce3e3946669c1bd2f022da9861164625be9c1b) )
3643 	ROM_LOAD( "kk2-a1.bin", 0x0400000, 0x200000, CRC(a7c99f56) SHA1(de341e99f76446fab4d7f09c2d8a6f18554b5d2f) )
3644 
3645 	ROM_LOAD( "kk2-b0.bin", 0x0800000, 0x400000, CRC(4d028972) SHA1(732c874d3511c7bce006436d557ec24e54df0166) )
3646 	ROM_LOAD( "kk2-b1.bin", 0x0c00000, 0x200000, CRC(778ec9fb) SHA1(5983f0292e274e3da098b461355e2c001f4881b3) )
3647 
3648 	ROM_LOAD( "kk2-c0.bin", 0x1000000, 0x400000, CRC(34b699d9) SHA1(b5208d5f70f21725e54c9dc59de73f1a5646a72c) )
3649 	ROM_LOAD( "kk2-c1.bin", 0x1400000, 0x200000, CRC(ab451e88) SHA1(0c4d6c0c758f2ab4210c201605dd573661b6c553) )
3650 
3651 	ROM_LOAD( "kk2-d0.bin", 0x1800000, 0x400000, CRC(0e3005a4) SHA1(fa8da58308d58bb6b2e8beb8ee8f7ea08b18f4d9) )
3652 	ROM_LOAD( "kk2-d1.bin", 0x1c00000, 0x200000, CRC(17a02252) SHA1(c7aa61e27f197b3c497a65a9369e3a6a20c9f82a) )
3653 
3654 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
3655 	ROM_LOAD16_BYTE( "kk2_snd0.bin", 0x000000, 0x200000, CRC(b27eaa94) SHA1(05baaef683a1fcd9eb8a7cfd5b280c05108e832f) )
3656 
3657 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
3658 	ROM_LOAD16_BYTE( "kk2_snd1.bin", 0x000000, 0x200000, CRC(e5a963e1) SHA1(464ffd53ac2e6db62225b18d12bfea93160771ec) )
3659 
3660 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3661 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
3662 
3663 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
3664 	ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
3665 ROM_END
3666 
3667 
3668 /***************************************************************************
3669 
3670                         Meosis Magic (Japan, BET?)
3671 
3672 (c)1996 Sammy, SSV System
3673 
3674 P1-105A
3675 
3676 Custom:     DX-102 (I/O)
3677 Others:     M62X42B (RTC?)
3678             64k SRAM (Back up)
3679             Ni-Cd Battery
3680 
3681 ***************************************************************************/
3682 
3683 ROM_START( meosism )
3684 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3685 	ROM_LOAD16_BYTE( "s15-2-2.u47", 0x000000, 0x080000, CRC(2ab0373f) SHA1(826aec3b9698ec5db5d7a72c3a24b1ef779fb227) )
3686 	ROM_LOAD16_BYTE( "s15-2-1.u46", 0x000001, 0x080000, CRC(a4bce148) SHA1(17ec4d91e215bd38258329b1a71e7f135c5733ad) )
3687 
3688 	ROM_REGION( 0x800000, "gfx1", 0 )   /* Sprites */
3689 	ROM_LOAD( "s15-1-7.u7", 0x000000, 0x200000, CRC(ec5023cb) SHA1(3406f5143a40c8dcd2d45b44ea91c737810ab05b) )
3690 	ROM_LOAD( "s15-1-8.u6", 0x200000, 0x200000, CRC(f04b0836) SHA1(83678427cd0ed0d68ff770baa2693226b391f6c8) )
3691 	ROM_LOAD( "s15-1-5.u9", 0x400000, 0x200000, CRC(c0414b97) SHA1(3ca8423e04f606981d158065e38431f2509e1daa) )
3692 	ROM_LOAD( "s15-1-6.u8", 0x600000, 0x200000, CRC(d721aeb6) SHA1(3bef7e027a0e14fbf589aee32a6d9cab779da7d4) )
3693 
3694 //  The chip seems to use REGION1 too, but produces no sound from there.
3695 
3696 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
3697 	ROM_LOAD16_WORD_SWAP( "s15-1-4.u45", 0x000000, 0x200000, CRC(0c6738a7) SHA1(acf9056bb052db7a11cf903d77ab16425d813835) )
3698 	ROM_LOAD16_WORD_SWAP( "s15-1-3.u43", 0x200000, 0x200000, CRC(d7e83178) SHA1(74e5c09f6d3b2c8e1c1cc2b0eab0490b5bbc9099) )
3699 ROM_END
3700 
3701 
3702 /***************************************************************************
3703 
3704                             Monster Slider (Japan)
3705 
3706 (c)1997 Visco/PATT, System SSV
3707 
3708 ms-pl.bin - V60 main program (27c4000, low)
3709 ms-ph.bin - V60 main program (27c4000, high)
3710 
3711 ms-snd0.bin \
3712             |- sound data (read as 27c160)
3713 ms-snd1.bin /
3714 
3715 ms-a0.bin \
3716 ms-b0.bin |- Graphics (read as 27c160)
3717 ms-c0.bin /
3718 
3719 ms-a1.bin \
3720 ms-b1.bin |- Graphics (27c4100)
3721 ms-c1.bin /
3722 
3723 vg001-14 \
3724          |- (GAL16V8. not dumped)
3725 vg001-15 /
3726 
3727 Other parts:    uPD71051
3728                 OSC 8.0000MHz
3729 
3730 ***************************************************************************/
3731 
3732 ROM_START( mslider )
3733 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3734 	ROM_LOAD16_BYTE( "ms-pl.bin", 0x000000, 0x080000, CRC(70b2a05d) SHA1(387cf67e3e505c4cc1b5cd0b6c9fb3bc27d07e24) )
3735 	ROM_LOAD16_BYTE( "ms-ph.bin", 0x000001, 0x080000, CRC(34a64e9f) SHA1(acf3d8490f3ec99b6171e71328a991fcc9c5a8b1) )
3736 
3737 	ROM_REGION( 0xa00000, "gfx1", 0 )   /* Sprites */
3738 	ROM_LOAD( "ms-a0.bin", 0x000000, 0x200000, CRC(7ed38ccc) SHA1(9c584a5f6b3aad8646d155a56e4070cfed4af540) )
3739 	ROM_LOAD( "ms-a1.bin", 0x200000, 0x080000, CRC(83f5995f) SHA1(33ae99a96702d4aba422eaf454b86c96aaf88426) )
3740 
3741 	ROM_LOAD( "ms-b0.bin", 0x280000, 0x200000, CRC(faa076e1) SHA1(cca583c617e5d4ab995605dd16280931893991c7) )
3742 	ROM_LOAD( "ms-b1.bin", 0x480000, 0x080000, CRC(ef9748db) SHA1(34ab4524ec81b81ae2540f7d69e0f8254fd1b8f4) )
3743 
3744 	ROM_LOAD( "ms-c0.bin", 0x500000, 0x200000, CRC(f9d3e052) SHA1(4cdde756b24ee980f3c79a35a1fe071861fdeef9) )
3745 	ROM_LOAD( "ms-c1.bin", 0x700000, 0x080000, CRC(7f910c5a) SHA1(23ea13b6c07d3d31a25c21704d6a3e506578b199) )
3746 
3747 	ROM_FILL(              0x780000, 0x280000, 0x000000)
3748 
3749 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3750 	ROM_LOAD16_WORD_SWAP( "ms-snd0.bin", 0x000000, 0x200000, CRC(cda6e3a5) SHA1(28ad8f34bc4f907654582f3522b377b97234eba8) )
3751 	ROM_LOAD16_WORD_SWAP( "ms-snd1.bin", 0x200000, 0x200000, CRC(8f484b35) SHA1(cbf3ee7ec6337915f9d90a5b43d2de1eaa5537d0) )
3752 ROM_END
3753 
3754 
3755 /***************************************************************************
3756 
3757                     Gourmet Battle Quiz Ryohrioh CooKing (Japan)
3758 
3759 (c)1998 Visco, SSV System
3760 
3761 ***************************************************************************/
3762 
3763 ROM_START( ryorioh )
3764 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
3765 	ROM_LOAD( "ryorioh.dat",      0x000000, 0x200000, CRC(d1335a6a) SHA1(a5670ab3c399736232baaabc59573bdb3bf762da) )
3766 	ROM_LOAD16_BYTE( "ryorioh.l", 0x200000, 0x080000, CRC(9ad60e7d) SHA1(572b84bab08eb8293d93e03182d9871d8973b7dd) )
3767 	ROM_RELOAD(                   0x300000, 0x080000)
3768 	ROM_LOAD16_BYTE( "ryorioh.h", 0x200001, 0x080000, CRC(0655fcff) SHA1(2c088e42323f87e01b65f9f523e258f881d4e773) )
3769 	ROM_RELOAD(                   0x300001, 0x080000)
3770 
3771 	ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
3772 	ROM_LOAD( "ryorioh.a0", 0x0000000, 0x400000, CRC(f76ee003) SHA1(04022238dcfd5cf0e4f97c3c3b24df574ec6b609) )
3773 	ROM_LOAD( "ryorioh.a1", 0x0400000, 0x400000, CRC(ca44d66d) SHA1(d5ed2bbc9831182b212533bd67bb3831f655110a) )
3774 
3775 	ROM_LOAD( "ryorioh.b0", 0x0800000, 0x400000, CRC(daa134f4) SHA1(c3dce66b2c67061ae980374f7559b2bb8ef2502d) )
3776 	ROM_LOAD( "ryorioh.b1", 0x0c00000, 0x400000, CRC(7611697c) SHA1(febb0bc5f3bc8766be4377092c8443a489379bca) )
3777 
3778 	ROM_LOAD( "ryorioh.c0", 0x1000000, 0x400000, CRC(20eb49cf) SHA1(13c201e28be17cdfc7e6266a6d1fb41cfbe04b53) )
3779 	ROM_LOAD( "ryorioh.c1", 0x1400000, 0x400000, CRC(1370c75e) SHA1(30dfe37f3fab0e3e94df4a6d45f1291ad41e0147) )
3780 
3781 	ROM_LOAD( "ryorioh.d0", 0x1800000, 0x400000, CRC(ffa14ef1) SHA1(22a6992f6217d8ef2140e72063290fa34cb45683) )
3782 	ROM_LOAD( "ryorioh.d1", 0x1c00000, 0x400000, CRC(ae6055e8) SHA1(ee20a7b3c4f899404ca259991509728d3a0f96b9) )
3783 
3784 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
3785 	ROM_LOAD16_BYTE( "ryorioh.snd", 0x000000, 0x200000, CRC(7bd38b76) SHA1(d8490b4af839ef0802b8b2a47277fcd4091e4d37) )
3786 
3787 	ROM_REGION( 0x400, "plds", 0 )
3788 	ROM_LOAD( "gal16v8b.u25", 0x000, 0x117, CRC(9f9066be) SHA1(5640418e0235b409262aa5f20407e2d44722073d) )
3789 	ROM_LOAD( "gal16v8b.u36", 0x200, 0x117, CRC(971d6f4d) SHA1(35d9adf8cb2ea6097b670b189077d9850d33baf0) )
3790 ROM_END
3791 
3792 
3793 /***************************************************************************
3794 
3795                             Super Real Mahjong PIV
3796 
3797 (c)SETA 1993, System SSV
3798 
3799 CPU        : V60 (12MHz)
3800 Sound      : Ensoniq OTTO
3801 Work RAM   : 256Kbit (expandable to 1Mbitx2. SRMP7 requires this)
3802 Object RAM : 1Mbitx2
3803 Palette RAM: 256Kbitx3 (expandable to 1Mbitx3)
3804 
3805 sx001-01.a0 \
3806 sx001-02.b0 |
3807 sx001-03.c0 |
3808 sx001-04.a1 |
3809 sx001-05.b1 |- Graphics (16M Mask)
3810 sx001-06.c1 |
3811 sx001-07.a2 |
3812 sx001-08.b2 |
3813 sx001-09.c2 /
3814 
3815 sx001-10.sd0 - Sound - 16M Mask
3816 
3817 sx001-11.prl - Main program (low)  - 27c040
3818 sx001-12.prh - Main program (high) - 27c040
3819 
3820 Custom chips
3821 ST-0004 (Video DAC)
3822 ST-0005 (Parallel I/O)
3823 ST-0006 (Video controller - 32768 palettes from 24bit color)
3824 ST-0007 (System controller)
3825 
3826 ***************************************************************************/
3827 
3828 ROM_START( srmp4 )
3829 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3830 	ROM_LOAD16_BYTE( "sx001-14.prl", 0x000000, 0x080000, CRC(19aaf46e) SHA1(0c0f5acc1880971c56e7e2c2e3ad7c2932b82d4b) )
3831 	ROM_LOAD16_BYTE( "sx001-15.prh", 0x000001, 0x080000, CRC(dbd31399) SHA1(a77dc85f481454b10223d7f4e0395e07d2f8d4f3) )
3832 
3833 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
3834 	ROM_LOAD( "sx001-01.a0", 0x0000000, 0x200000, CRC(94ee9203) SHA1(a0e944a375f94e9dd668b06f15580384902d0fe1) )
3835 	ROM_LOAD( "sx001-04.a1", 0x0200000, 0x200000, CRC(38c9c49a) SHA1(c392d1cf5d16a348bdaa7222f2420a61a831a50a) )
3836 	ROM_LOAD( "sx001-07.a2", 0x0400000, 0x200000, CRC(ee66021e) SHA1(f4df2bdf8100a3bd39bb61f9bb4807ca9e13537a) )
3837 
3838 	ROM_LOAD( "sx001-02.b0", 0x0600000, 0x200000, CRC(adffb598) SHA1(fab372aebfbb12feaf7a7716a780cf2e5cc60731) )
3839 	ROM_LOAD( "sx001-05.b1", 0x0800000, 0x200000, CRC(4c400a38) SHA1(42623d6134fb6d8ce9059f7774c6bf4d2ea5d2d9) )
3840 	ROM_LOAD( "sx001-08.b2", 0x0a00000, 0x200000, CRC(36efd52c) SHA1(f51c6d9ceff02b9ee3f8e4ffa17f6c00ee9de905) )
3841 
3842 	ROM_LOAD( "sx001-03.c0", 0x0c00000, 0x200000, CRC(4336b037) SHA1(f42c5622e141e384efb52955f7f6a58a8ba8fc2c) )
3843 	ROM_LOAD( "sx001-06.c1", 0x0e00000, 0x200000, CRC(6fe7229e) SHA1(e1432aa500460f79b5b78ee4b249d8fc9f566ce1) )
3844 	ROM_LOAD( "sx001-09.c2", 0x1000000, 0x200000, CRC(91dd8218) SHA1(a500dca9eefbf93187b1dfde7ddff1d22b886d44) )
3845 
3846 	ROM_FILL(                0x1200000, 0x600000, 0x000000)
3847 
3848 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3849 	ROM_LOAD16_WORD_SWAP( "sx001-10.sd0", 0x000000, 0x200000, CRC(45409ef1) SHA1(327d0a63deac6f0f8b9a408a321c03dd4e965569) )
3850 	ROM_RELOAD(                           0x200000, 0x200000)
3851 ROM_END
3852 
3853 ROM_START( srmp4o )
3854 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
3855 	ROM_LOAD16_BYTE( "sx001-11.prl", 0x000000, 0x080000, CRC(dede3e64) SHA1(6fe998babfd2ad8f268c59bd365115a2d7cfc8f9) )
3856 	ROM_LOAD16_BYTE( "sx001-12.prh", 0x000001, 0x080000, CRC(739c53c3) SHA1(68f12cf42177df208ff6499ccc7ccc1423e3ad5f) )
3857 
3858 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
3859 	ROM_LOAD( "sx001-01.a0", 0x0000000, 0x200000, CRC(94ee9203) SHA1(a0e944a375f94e9dd668b06f15580384902d0fe1) )
3860 	ROM_LOAD( "sx001-04.a1", 0x0200000, 0x200000, CRC(38c9c49a) SHA1(c392d1cf5d16a348bdaa7222f2420a61a831a50a) )
3861 	ROM_LOAD( "sx001-07.a2", 0x0400000, 0x200000, CRC(ee66021e) SHA1(f4df2bdf8100a3bd39bb61f9bb4807ca9e13537a) )
3862 
3863 	ROM_LOAD( "sx001-02.b0", 0x0600000, 0x200000, CRC(adffb598) SHA1(fab372aebfbb12feaf7a7716a780cf2e5cc60731) )
3864 	ROM_LOAD( "sx001-05.b1", 0x0800000, 0x200000, CRC(4c400a38) SHA1(42623d6134fb6d8ce9059f7774c6bf4d2ea5d2d9) )
3865 	ROM_LOAD( "sx001-08.b2", 0x0a00000, 0x200000, CRC(36efd52c) SHA1(f51c6d9ceff02b9ee3f8e4ffa17f6c00ee9de905) )
3866 
3867 	ROM_LOAD( "sx001-03.c0", 0x0c00000, 0x200000, CRC(4336b037) SHA1(f42c5622e141e384efb52955f7f6a58a8ba8fc2c) )
3868 	ROM_LOAD( "sx001-06.c1", 0x0e00000, 0x200000, CRC(6fe7229e) SHA1(e1432aa500460f79b5b78ee4b249d8fc9f566ce1) )
3869 	ROM_LOAD( "sx001-09.c2", 0x1000000, 0x200000, CRC(91dd8218) SHA1(a500dca9eefbf93187b1dfde7ddff1d22b886d44) )
3870 
3871 	ROM_FILL(                0x1200000, 0x600000, 0x000000)
3872 
3873 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
3874 	ROM_LOAD16_WORD_SWAP( "sx001-10.sd0", 0x000000, 0x200000, CRC(45409ef1) SHA1(327d0a63deac6f0f8b9a408a321c03dd4e965569) )
3875 	ROM_RELOAD(                           0x200000, 0x200000)
3876 ROM_END
3877 
3878 
3879 /***************************************************************************
3880 
3881                             Super Real Mahjong P7 (Japan)
3882 
3883 (c)1997 Seta, SSV system
3884 
3885 ***************************************************************************/
3886 
3887 ROM_START( srmp7 )
3888 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
3889 	ROM_LOAD16_WORD( "sx015-10.dat", 0x000000, 0x200000, CRC(fad3ac6a) SHA1(9a4695c06bc74ca4de0c1a83bdf38f6651c0e2a1) )
3890 	ROM_LOAD16_BYTE( "sx015-07.pr0", 0x200000, 0x080000, CRC(08d7f841) SHA1(67567acff0ce278576290a896005de0397605eef) )
3891 	ROM_RELOAD(                      0x300000, 0x080000)
3892 	ROM_LOAD16_BYTE( "sx015-08.pr1", 0x200001, 0x080000, CRC(90307825) SHA1(13b3f82c8854808684bd41deb0bbd442efe7b685) )
3893 	ROM_RELOAD(                      0x300001, 0x080000)
3894 
3895 	ROM_REGION( 0x4000000, "gfx1", 0 )  /* Sprites */
3896 	ROM_LOAD( "sx015-26.a0", 0x0000000, 0x400000, CRC(a997be9d) SHA1(37470af24531557113f953f727f6b8cab602a7d3) )
3897 	ROM_LOAD( "sx015-25.a1", 0x0400000, 0x400000, CRC(29ac4211) SHA1(32edf3982b0e27077cc17cd38b67a27d36dc3ad8) )
3898 	ROM_LOAD( "sx015-24.a2", 0x0800000, 0x400000, CRC(b8fea3da) SHA1(9c3a53348f72f39d84d078068c62b10920854cd0) )
3899 	ROM_LOAD( "sx015-23.a3", 0x0c00000, 0x400000, CRC(9ec0b81e) SHA1(fe9550592852db8a0fc38f8af444c4c137b803eb) )
3900 
3901 	ROM_LOAD( "sx015-22.b0", 0x1000000, 0x400000, CRC(62c3df07) SHA1(2c2b7ccc53d0ccc78f599d0789d38296935c0316) )
3902 	ROM_LOAD( "sx015-21.b1", 0x1400000, 0x400000, CRC(55b8a431) SHA1(ccdc70b27c7fc9efe2c20df23f01b96f3b542d72) )
3903 	ROM_LOAD( "sx015-20.b2", 0x1800000, 0x400000, CRC(e84a64d7) SHA1(af7a04cebb1ccbbd76812f7b6f7bb79023aff291) )
3904 	ROM_LOAD( "sx015-19.b3", 0x1c00000, 0x400000, CRC(994b5063) SHA1(0c44e94773160e75ef03f7ceb95ab1b123ae3ecf) )
3905 
3906 	ROM_LOAD( "sx015-18.c0", 0x2000000, 0x400000, CRC(72d43fd4) SHA1(96582adae0bf1cc8359dd1ecc0d00a42d306c565) )
3907 	ROM_LOAD( "sx015-17.c1", 0x2400000, 0x400000, CRC(fdfd82f1) SHA1(005b60fd7bf9f61ecd16daa6e6bb213ed6a9875b) )
3908 	ROM_LOAD( "sx015-16.c2", 0x2800000, 0x400000, CRC(86aa314b) SHA1(5cd238785f683d3a33f36c5a326d350805ef21ff) )
3909 	ROM_LOAD( "sx015-15.c3", 0x2c00000, 0x400000, CRC(11f50e16) SHA1(4e26aa84bea8b7e73056b0cc70661332fa7d9473) )
3910 
3911 	ROM_LOAD( "sx015-14.d0", 0x3000000, 0x400000, CRC(186f83fa) SHA1(6f03056b766c223fef639627706c2476f9af378d) )
3912 	ROM_LOAD( "sx015-13.d1", 0x3400000, 0x400000, CRC(ea6e5329) SHA1(614dd8d36d94a4c8b2b0c30ec96c6d183065561e) )
3913 	ROM_LOAD( "sx015-12.d2", 0x3800000, 0x400000, CRC(80336523) SHA1(ec66e21fe1401fdb438e03657542a7b6b0cbc5ce) )
3914 	ROM_LOAD( "sx015-11.d3", 0x3c00000, 0x400000, CRC(134c8e28) SHA1(669118b58f27d5e2e08052debe904f95d9ab32a3) )
3915 
3916 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
3917 	ROM_LOAD16_BYTE( "sx015-06.s0", 0x000000, 0x200000, CRC(0d5a206c) SHA1(2fdaf2a56b6608f20a788eb79a8426102ff33e14) )
3918 
3919 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
3920 	ROM_LOAD16_BYTE( "sx015-05.s1", 0x000000, 0x200000, CRC(bb8cebe2) SHA1(3691e5fb4e963f69c1fe01cb5d968433029c4833) )
3921 
3922 	ROM_REGION16_BE( 0x800000, "ensoniq.2", ROMREGION_ERASE00 )   /* Samples */
3923 	ROM_LOAD16_BYTE( "sx015-04.s2", 0x000000, 0x200000, CRC(f6e933df) SHA1(7cb69515a0ffc62fbac2be3a5fb322538560bd38) )
3924 	ROM_LOAD16_BYTE( "sx015-02.s4", 0x400000, 0x200000, CRC(6567bc3e) SHA1(e902f22f1499edc6a0e2c8b6cc26460d66a3bdbe) )
3925 
3926 	ROM_REGION16_BE( 0x800000, "ensoniq.3", ROMREGION_ERASE00 )   /* Samples */
3927 	ROM_LOAD16_BYTE( "sx015-03.s3", 0x000000, 0x200000, CRC(5b51ab21) SHA1(cf3e86e41f7984208984d6486b04cec117dadc18) )
3928 	ROM_LOAD16_BYTE( "sx015-01.s5", 0x400000, 0x200000, CRC(481b00ed) SHA1(2c3d158dd5be9af0ee57fd5dd94d2ec75e28b182) )
3929 ROM_END
3930 
3931 
3932 /***************************************************************************
3933 
3934          Survival Arts
3935 
3936 Sammy USA, 1994
3937 
3938 This game runs on SSV hardware.
3939 
3940 Game PCB Layout
3941 ---------------
3942 
3943 SAM-5127
3944 |----------------------------------------|
3945 | SI001-13.U6               4P     3P    |
3946 |                                        |
3947 | SI001-12.U7                            |
3948 |                                        |
3949 | SI001-11.U8                            |
3950 |                                        |
3951 | SI001-10.U9                            |
3952 |                                        |
3953 |                                        |
3954 |                                        |
3955 |                                        |
3956 |                                        |
3957 |                                        |
3958 |                           SI001-08.U21 |
3959 |                                        |
3960 |                           SI001-05.U22 |
3961 |                                        |
3962 |                           SI001-02.U23 |
3963 |                                        |
3964 |                                        |
3965 |USA-PR-H.U3                             |
3966 |                                        |
3967 |USA-PR-L.U4  SI001-09.U15  SI001-07.U25 |
3968 |                                        |
3969 |             SI001-06.U16  SI001-04.U26 |
3970 |PAL                                     |
3971 |(SI001-14)   SI001-03.U17  SI001-01.U27 |
3972 |                                        |
3973 |----------------------------------------|
3974 
3975  Manufacturer: Sammy USA
3976  System Type: System SSV
3977 
3978  ----------------------
3979  System SSV (STA-0001)
3980  ----------------------
3981  CPU  : NEC D70615GD-16 (V60)
3982  Sound: Ensoniq ES5506 (OTTOR2)
3983  OSC  : 42.9545MHz(X2) 48.0000MHz(X3)
3984 
3985  Custom chips:
3986  ST-0004 (Video DAC)
3987  ST-0005 (Parallel I/O)
3988  ST-0006 (Video controller)
3989  ST-0007 (System controller)
3990 
3991  Program Work RAM  : 256Kbitx2 (expandable to 1Mx2)
3992  Object Work RAM   : 1Mbitx2
3993  Color Palette RAM : 256Kbitx3 (expandable to 1Mx3)
3994 
3995  -------------------------
3996  SSV Subboard (SAM-5127)
3997  -------------------------
3998  ROMs:
3999  USA-PR-H.u3 - V60 Program (27C4001)
4000  USA-PR-L.u4 /
4001 
4002  si001-10.s0 - Samples (16M-Mask)
4003  si001-12.s2 /
4004 
4005  si001-11.s1 - Samples (8M-Mask)
4006  si001-13.s3 /
4007 
4008  si001-01.a0 - Graphics (16M-Mask)
4009  si001-04.a1 |
4010  si001-05.a2 |
4011  si001-02.b0 |
4012  si001-05.b1 |
4013  si001-07.b2 |
4014  si001-03.c0 |
4015  si001-06.c1 |
4016  si001-09.c2 /
4017 
4018  Empty Sockets:
4019  DATA --- 16M-Mask
4020  A3     |
4021  B3     |
4022  C3     |
4023  D0-D3 /
4024 
4025  GAL:
4026  si003-14.u5 (16V8B)
4027 
4028  MISC:
4029  P3 10 Pin Header for Buttons 4-6 (Kick) for each player
4030  P4 10 Pin Header (unused)
4031 
4032 ***************************************************************************/
4033 
4034 ROM_START( survarts )
4035 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
4036 	ROM_LOAD16_BYTE( "prl-r6.u4", 0x000000, 0x080000, CRC(ef5f6e17) SHA1(1857beb15d2214c7ecb60b59e696ba24b2791734) )
4037 	ROM_LOAD16_BYTE( "prh-r5.u3", 0x000001, 0x080000, CRC(d446f010) SHA1(fb6c349edb2e6d1fcf8ed360dbe82be6d74f91d2) )
4038 
4039 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
4040 	ROM_LOAD( "si001-01.u27", 0x0000000, 0x200000, CRC(8b38fbab) SHA1(c4a67b24b33d4eef7b0f885bd69cae6c67bd3981) ) /* A0 */
4041 	ROM_LOAD( "si001-04.u26", 0x0200000, 0x200000, CRC(34248b54) SHA1(077198f8de1622b71c580e34d5ad1b6bf3229fe9) ) /* A1 */
4042 	ROM_LOAD( "si001-07.u25", 0x0400000, 0x200000, CRC(497d6151) SHA1(a9860c75943c0fd2991660ce2a9505edc6c2fa46) ) /* A2 */
4043 
4044 	ROM_LOAD( "si001-02.u23", 0x0600000, 0x200000, CRC(cb4a2dbd) SHA1(26cdd1b54a3fa1dc3c3a8945d1a3562e9c62ace6) ) /* B0 */
4045 	ROM_LOAD( "si001-05.u22", 0x0800000, 0x200000, CRC(8f092381) SHA1(6c49f1f5b3c31bd7c6a93ba0450d9f64fd512633) ) /* B1 */
4046 	ROM_LOAD( "si001-08.u21", 0x0a00000, 0x200000, CRC(182b88c4) SHA1(a5b6a3e1fd67f036b1255385e81b6a3eb69f9f3f) ) /* B2 */
4047 
4048 	ROM_LOAD( "si001-03.u17", 0x0c00000, 0x200000, CRC(92fdf652) SHA1(cf7aeb3a1e8ffe34cf24cb919a0ab3cc90202fa9) ) /* C0 */
4049 	ROM_LOAD( "si001-06.u16", 0x0e00000, 0x200000, CRC(9a62f532) SHA1(7e7ba1224e52b33a9bd14058230efc871178c4f8) ) /* C1 */
4050 	ROM_LOAD( "si001-09.u15", 0x1000000, 0x200000, CRC(0955e393) SHA1(0be9134190706eaee49177034b0536b05c4bc7ac) ) /* C2 */
4051 
4052 	ROM_FILL(                0x1200000, 0x600000, 0x000000)
4053 
4054 //  The chip seems to use REGION1 too, but produces no sound from there.
4055 
4056 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4057 	ROM_LOAD16_WORD_SWAP( "si001-10.u9", 0x000000, 0x100000, CRC(5642b333) SHA1(84936af8b3882e116b279e422075f35aabdd232f) ) /* S0 */
4058 	ROM_LOAD16_WORD_SWAP( "si001-11.u8", 0x100000, 0x100000, CRC(a81e6ea6) SHA1(499f070500895ed7b6785b42fb6bbf973fc6dc04) ) /* S1 */
4059 	ROM_LOAD16_WORD_SWAP( "si001-12.u7", 0x200000, 0x100000, CRC(e9b2b45b) SHA1(17fd27cdb8a0b9932cb1e71e0547c0d9d6fc7d06) ) /* S2 */
4060 	ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) ) /* S3 */
4061 
4062 	ROM_REGION( 0x0200, "plds", 0 )
4063 	ROM_LOAD( "gal16v8b.u5",   0x0000, 0x0117, CRC(378ce368) SHA1(cc068c9b63e6f91165f9caec581645ad45b2d3d0) )
4064 ROM_END
4065 
4066 ROM_START( survartsu )
4067 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
4068 	ROM_LOAD16_BYTE( "usa-pr-l.u4", 0x000000, 0x080000, CRC(fa328673) SHA1(f7217eaa2a8d3fb7f706fa1aecaaa5b1b8d5e32c) )
4069 	ROM_LOAD16_BYTE( "usa-pr-h.u3", 0x000001, 0x080000, CRC(6bee2635) SHA1(a2d0517bf599331ef47beb8a902589039e4502e0) )
4070 
4071 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
4072 	ROM_LOAD( "si001-01.u27", 0x0000000, 0x200000, CRC(8b38fbab) SHA1(c4a67b24b33d4eef7b0f885bd69cae6c67bd3981) ) /* A0 */
4073 	ROM_LOAD( "si001-04.u26", 0x0200000, 0x200000, CRC(34248b54) SHA1(077198f8de1622b71c580e34d5ad1b6bf3229fe9) ) /* A1 */
4074 	ROM_LOAD( "si001-07.u25", 0x0400000, 0x200000, CRC(497d6151) SHA1(a9860c75943c0fd2991660ce2a9505edc6c2fa46) ) /* A2 */
4075 
4076 	ROM_LOAD( "si001-02.u23", 0x0600000, 0x200000, CRC(cb4a2dbd) SHA1(26cdd1b54a3fa1dc3c3a8945d1a3562e9c62ace6) ) /* B0 */
4077 	ROM_LOAD( "si001-05.u22", 0x0800000, 0x200000, CRC(8f092381) SHA1(6c49f1f5b3c31bd7c6a93ba0450d9f64fd512633) ) /* B1 */
4078 	ROM_LOAD( "si001-08.u21", 0x0a00000, 0x200000, CRC(182b88c4) SHA1(a5b6a3e1fd67f036b1255385e81b6a3eb69f9f3f) ) /* B2 */
4079 
4080 	ROM_LOAD( "si001-03.u17", 0x0c00000, 0x200000, CRC(92fdf652) SHA1(cf7aeb3a1e8ffe34cf24cb919a0ab3cc90202fa9) ) /* C0 */
4081 	ROM_LOAD( "si001-06.u16", 0x0e00000, 0x200000, CRC(9a62f532) SHA1(7e7ba1224e52b33a9bd14058230efc871178c4f8) ) /* C1 */
4082 	ROM_LOAD( "si001-09.u15", 0x1000000, 0x200000, CRC(0955e393) SHA1(0be9134190706eaee49177034b0536b05c4bc7ac) ) /* C2 */
4083 
4084 	ROM_FILL(                0x1200000, 0x600000, 0x000000)
4085 
4086 //  The chip seems to use REGION1 too, but produces no sound from there.
4087 
4088 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4089 	ROM_LOAD16_WORD_SWAP( "si001-10.u9", 0x000000, 0x100000, CRC(5642b333) SHA1(84936af8b3882e116b279e422075f35aabdd232f) ) /* S0 */
4090 	ROM_LOAD16_WORD_SWAP( "si001-11.u8", 0x100000, 0x100000, CRC(a81e6ea6) SHA1(499f070500895ed7b6785b42fb6bbf973fc6dc04) ) /* S1 */
4091 	ROM_LOAD16_WORD_SWAP( "si001-12.u7", 0x200000, 0x100000, CRC(e9b2b45b) SHA1(17fd27cdb8a0b9932cb1e71e0547c0d9d6fc7d06) ) /* S2 */
4092 	ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) ) /* S3 */
4093 ROM_END
4094 
4095 ROM_START( survartsj )
4096 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
4097 	ROM_LOAD16_BYTE( "jpn-pr-l.u4", 0x000000, 0x080000, CRC(e5a52e8c) SHA1(0a51c16d23d99c3e6a12f8a96c62fe8c72179a22) )
4098 	ROM_LOAD16_BYTE( "jan-pr-h.u3", 0x000001, 0x080000, CRC(051c9bca) SHA1(b8a7c5e4cb12cb0f05b5ba15394bd1fcf0476bf0) )  // jan typo on sticker
4099 
4100 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
4101 	ROM_LOAD( "si001-01.u27", 0x0000000, 0x200000, CRC(8b38fbab) SHA1(c4a67b24b33d4eef7b0f885bd69cae6c67bd3981) ) /* A0 */
4102 	ROM_LOAD( "si001-04.u26", 0x0200000, 0x200000, CRC(34248b54) SHA1(077198f8de1622b71c580e34d5ad1b6bf3229fe9) ) /* A1 */
4103 	ROM_LOAD( "si001-07.u25", 0x0400000, 0x200000, CRC(497d6151) SHA1(a9860c75943c0fd2991660ce2a9505edc6c2fa46) ) /* A2 */
4104 
4105 	ROM_LOAD( "si001-02.u23", 0x0600000, 0x200000, CRC(cb4a2dbd) SHA1(26cdd1b54a3fa1dc3c3a8945d1a3562e9c62ace6) ) /* B0 */
4106 	ROM_LOAD( "si001-05.u22", 0x0800000, 0x200000, CRC(8f092381) SHA1(6c49f1f5b3c31bd7c6a93ba0450d9f64fd512633) ) /* B1 */
4107 	ROM_LOAD( "si001-08.u21", 0x0a00000, 0x200000, CRC(182b88c4) SHA1(a5b6a3e1fd67f036b1255385e81b6a3eb69f9f3f) ) /* B2 */
4108 
4109 	ROM_LOAD( "si001-03.u17", 0x0c00000, 0x200000, CRC(92fdf652) SHA1(cf7aeb3a1e8ffe34cf24cb919a0ab3cc90202fa9) ) /* C0 */
4110 	ROM_LOAD( "si001-06.u16", 0x0e00000, 0x200000, CRC(9a62f532) SHA1(7e7ba1224e52b33a9bd14058230efc871178c4f8) ) /* C1 */
4111 	ROM_LOAD( "si001-09.u15", 0x1000000, 0x200000, CRC(0955e393) SHA1(0be9134190706eaee49177034b0536b05c4bc7ac) ) /* C2 */
4112 
4113 	ROM_FILL(                0x1200000, 0x600000, 0x000000)
4114 
4115 //  The chip seems to use REGION1 too, but produces no sound from there.
4116 
4117 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4118 	ROM_LOAD16_WORD_SWAP( "si001-10.u9", 0x000000, 0x100000, CRC(5642b333) SHA1(84936af8b3882e116b279e422075f35aabdd232f) ) /* S0 */
4119 	ROM_LOAD16_WORD_SWAP( "si001-11.u8", 0x100000, 0x100000, CRC(a81e6ea6) SHA1(499f070500895ed7b6785b42fb6bbf973fc6dc04) ) /* S1 */
4120 	ROM_LOAD16_WORD_SWAP( "si001-12.u7", 0x200000, 0x100000, CRC(e9b2b45b) SHA1(17fd27cdb8a0b9932cb1e71e0547c0d9d6fc7d06) ) /* S2 */
4121 	ROM_LOAD16_WORD_SWAP( "si001-13.u6", 0x300000, 0x100000, CRC(d66a7e26) SHA1(57b659daef00421b6742963f792bd5e020f625c9) ) /* S3 */
4122 ROM_END
4123 
4124 /***************************************************************************
4125 
4126                         Dynagears
4127 Sammy, 1993
4128 
4129 This game runs on SSV hardware.
4130 
4131 Game PCB Layout
4132 ---------------
4133 
4134 SAM-5127
4135 |----------------------------------------|
4136 | SI002-10.U6                            |
4137 |                                        |
4138 | SI002-09.U7                            |
4139 |                                        |
4140 | SI002-08.U8                            |
4141 |                                        |
4142 | SI002-07.U9                            |
4143 |                                        |
4144 |                                        |
4145 |                                        |
4146 |                                        |
4147 |                                        |
4148 |                                        |
4149 |                                        |
4150 |                                        |
4151 |                           SI002-05.U22 |
4152 |                                        |
4153 |                           SI002-02.U23 |
4154 |                                        |
4155 |                                        |
4156 |SI002-PRH.U3                            |
4157 |                                        |
4158 |SI002-PRL.U4                            |
4159 |                                        |
4160 |             SI002-06.U16  SI002-04.U26 |
4161 |PAL                                     |
4162 |(SI002-14)   SI002-03.U17  SI002-01.U27 |
4163 |                                        |
4164 |----------------------------------------|
4165 
4166 ***************************************************************************/
4167 
4168 ROM_START( dynagear )
4169 	ROM_REGION( 0x100000, "maincpu", 0 )     /* V60 Code */
4170 	ROM_LOAD16_BYTE( "si002-prl.u4", 0x000000, 0x080000, CRC(71ba29c6) SHA1(ef43ab665daa4fc9ee01996d03f2f0b4c74c8435) )
4171 	ROM_LOAD16_BYTE( "si002-prh.u3", 0x000001, 0x080000, CRC(d0947a12) SHA1(95b54ed9dc51c952ad123103b8633a821cde05e9) )
4172 
4173 	ROM_REGION( 0x1000000, "gfx1", 0 )  /* Sprites */
4174 	ROM_LOAD( "si002-01.u27", 0x0000000, 0x200000, CRC(0060a521) SHA1(10cdb967e6cb4fc7c23c1ac40b24e35262060f5c) )
4175 	ROM_LOAD( "si002-04.u26", 0x0200000, 0x200000, CRC(6140f47d) SHA1(49dcebe724990acdac76746886efe88b68ce956f) )
4176 
4177 	ROM_LOAD( "si002-02.u23", 0x0400000, 0x200000, CRC(c22f2a41) SHA1(969affc8bac9a6024e7e5103384a40a6a2acf653) )
4178 	ROM_LOAD( "si002-05.u22", 0x0600000, 0x200000, CRC(482412fd) SHA1(dfb896631b6999ce8ac6aeef84ff44150d67739a) )
4179 
4180 	ROM_LOAD( "si002-03.u17", 0x0800000, 0x200000, CRC(4261a6b8) SHA1(df163faa84a86f126d5d405aef316ff9dd3c05eb) )
4181 	ROM_LOAD( "si002-06.u16", 0x0a00000, 0x200000, CRC(0e1f23f6) SHA1(ea35c75776b75131ef9133a16a36d95132dc6776) )
4182 
4183 	ROM_FILL(                0xc00000, 0x400000, 0x000000)
4184 
4185 //  The chip seems to use REGION1 too, but produces no sound from there.
4186 
4187 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4188 	ROM_LOAD16_WORD_SWAP( "si002-07.u9", 0x000000, 0x100000, CRC(30d2bf11) SHA1(263e9a4e6a77aa451daf6d1225071cc1147a6541) )
4189 	ROM_LOAD16_WORD_SWAP( "si002-08.u8", 0x100000, 0x100000, CRC(253704ee) SHA1(887ebca2af497fc59b274838cdf284223cc92c97) )
4190 	ROM_LOAD16_WORD_SWAP( "si002-09.u7", 0x200000, 0x100000, CRC(1ea86db7) SHA1(e887ea5be99f753e73355a45e37dfddb2a1d6cf6) )
4191 	ROM_LOAD16_WORD_SWAP( "si002-10.u6", 0x300000, 0x100000, CRC(e369c177) SHA1(646aad00a8f9eda847e9a51fb0a511bf49eb9fe2) )
4192 ROM_END
4193 
4194 
4195 /***************************************************************************
4196 
4197                         Pachinko Sexy Reaction (Japan)
4198 
4199 (c)1998 Sammy, SSV system
4200 
4201 P1-112C (ROM board)
4202 
4203 Chips:  DX-102 x2
4204         uPD7001C (ADC?)
4205         64k NVRAM
4206 
4207 ***************************************************************************/
4208 
4209 ROM_START( sxyreact )
4210 	ROM_REGION( 0x200000, "maincpu", 0 )     /* V60 Code */
4211 	ROM_LOAD16_BYTE( "ac414e00.u2",  0x000000, 0x080000, CRC(d5dd7593) SHA1(ad1c7c2f27e0423ab346172a5c91316c9c0b3620) )
4212 	ROM_LOAD16_BYTE( "ac413e00.u1",  0x000001, 0x080000, CRC(f46aee4a) SHA1(8336304797987321903977373dec027cfca2e211) )
4213 	ROM_LOAD16_BYTE( "ac416e00.u47", 0x100000, 0x080000, CRC(e0f7bba9) SHA1(5eafd72c9fa4588f18fa02113a93abdcaf8d8693) )
4214 	ROM_LOAD16_BYTE( "ac415e00.u46", 0x100001, 0x080000, CRC(92de1b5f) SHA1(69e30ffc0c59e7dafe3f9c76bfee782028dab042) )
4215 
4216 	ROM_REGION( 0x2800000, "gfx1", 0 )  /* Sprites */
4217 	ROM_LOAD( "ac1401m0.u6",  0x0000000, 0x400000, CRC(0b7b693c) SHA1(1e65c3f55cf3aa63d4229d30b5894c89b83cdf3e) )
4218 	ROM_LOAD( "ac1402m0.u9",  0x0400000, 0x400000, CRC(9d593303) SHA1(c02037fabe8a74f01a25357ffdd3ce01b930008b) )
4219 	ROM_LOAD( "ac1403m0.u12", 0x0800000, 0x200000, CRC(af433eca) SHA1(dfd83eba390171d93bc6888cc1d24a9a38d900bd) )
4220 
4221 	ROM_LOAD( "ac1404m0.u7",  0x0a00000, 0x400000, CRC(cdda2ccb) SHA1(c22ff59e1cf621e0288537be567e0b42bf8e9bcf) )
4222 	ROM_LOAD( "ac1405m0.u10", 0x0e00000, 0x400000, CRC(e5e7a5df) SHA1(9ab32f2a1ef055825b6cd3f643af1bd62c53f46a) )
4223 	ROM_LOAD( "ac1406m0.u13", 0x1200000, 0x200000, CRC(c7053409) SHA1(468527a24ea592dbd884431ca57d43790cbc2456) )
4224 
4225 	ROM_LOAD( "ac1407m0.u8",  0x1400000, 0x400000, CRC(28c83d5e) SHA1(abf4f0c1e2caa5cfa5a18fc95c025d73d6a8bc95) )
4226 	ROM_LOAD( "ac1408m0.u11", 0x1800000, 0x400000, CRC(c45bab47) SHA1(d00802005e091088eabeb672a6428417db43cb66) )
4227 	ROM_LOAD( "ac1409m0.u14", 0x1c00000, 0x200000, CRC(be1c66c2) SHA1(6d7b60d3b4286a768eac122c3d163e6e5287adc3) )
4228 
4229 	ROM_FILL(                 0x1e00000, 0xa00000, 0x000000)
4230 
4231 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
4232 	ROM_LOAD16_WORD_SWAP( "ac1410m0.u41", 0x000000, 0x400000, CRC(2a880afc) SHA1(193235bccde28a7d693a1a1f0159260a3a63a7d5) )
4233 
4234 	ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
4235 	ROM_LOAD16_WORD_SWAP( "ac1411m0.u42", 0x200000, 0x200000, CRC(2ba4ca43) SHA1(9cddf57094e68d3840a37f44fbdf2f43f539ba11) )
4236 	ROM_CONTINUE( 0x000000, 0x200000 )  // this will go in region 3
4237 
4238 	// a few sparse samples are played from here
4239 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4240 	ROM_COPY( "ensoniq.1", 0x000000,    0x200000, 0x200000 )
4241 ROM_END
4242 
4243 /***************************************************************************
4244 
4245                         Pachinko Sexy Reaction 2 (Japan)
4246 
4247 Pachinko Sexy Reaction 2
4248 Sammy, 1999
4249 
4250 SAMMY B1-001A
4251 |---------------------------------------------------------|
4252 |                                                         |
4253 |                                                         |
4254 |                                                         |
4255 |                                                         |
4256 |               U12   AC1702T00.U9                        |
4257 |                         AC1701T00.U6                    |
4258 |                                                         |
4259 |                                                         |
4260 |                                                         |
4261 |CN8                  AC1704T00.U10       AC1706T00.U11   |
4262 |               U13      AC1703T00.U7   U14   AC1705T00.U8|
4263 |                                                         |
4264 |                                                         |
4265 |                                                         |
4266 |                                                         |
4267 |         AC1708T00.U42                                   |
4268 |CN3             AC1707T00.U41                            |
4269 |                                                  BATT   |
4270 |                      AC1714E00.U32            U55       |
4271 |        CN5                   U47  U46  U2 U1  U35       |
4272 |     D7001C                                8464  GAL16V8 |
4273 |                                                         |
4274 |---------------------------------------------------------|
4275 Notes:
4276       6264     - Fujitsu MB8464A-10LL-SK 8K x8 SRAM (DIP28)
4277       D7001C   - NEC D7001C UART (DIP16)
4278       BATT     - 3.6V NICD Battery
4279       CN5      - 3 pin connector
4280       CN3      - 10 pin connector
4281       CN8      - 9 pin connector
4282       U12,U13, \
4283       U14      / Locations for SOP44 surface mounted ROMs, unpopulated
4284       U47,U46, \
4285       U2,U1    / Locations for DIP32 ROMs, unpopulated
4286       U35      - Location for NEC D71051GU, unpopulated
4287       U55      - Location for MSM62X42B Real Time Clock, unpopulated
4288       GAL16V8  - Lattice GAL16V8D stamped 'AC1709G00' (DIP20)
4289       U41,U42, \
4290       U7,U8,   \
4291       U10,U11  / OKI M27C3252CZ 32MBit SOP44 surface mounted maskROMs
4292 
4293       U32      - ST Microelectronics M27C160 16MBit EPROM (DIP42)
4294 
4295 ***************************************************************************/
4296 
4297 ROM_START( sxyreac2 )
4298 	ROM_REGION( 0x200000, "maincpu", 0 )     /* V60 Code */
4299 	ROM_LOAD16_WORD( "ac1714e00.u32",  0x000000, 0x200000, CRC(78075d70) SHA1(05c84bb32c6f97fceb5436d192c14cac79d9ab07) )
4300 
4301 	ROM_REGION( 0x2000000, "gfx1", 0 )  /* Sprites */
4302 	ROM_LOAD( "ac1701t00.u6",  0x0000000, 0x400000, CRC(e14611c2) SHA1(0eaf28b27b879b6ce99bea03b286717a2d6f60f4) )
4303 	ROM_LOAD( "ac1702t00.u9",  0x0400000, 0x400000, CRC(2c8b07f8) SHA1(e4128075c207d03206085f58b5aa8ebd28d3c2a9) )
4304 
4305 	ROM_LOAD( "ac1703t00.u7",  0x0800000, 0x400000, CRC(d6c7e861) SHA1(b4c17829222f5b9430e96183f77fa49ec040061e) )
4306 	ROM_LOAD( "ac1704t00.u10", 0x0c00000, 0x400000, CRC(5fa7ccf0) SHA1(9972e3e689024505739eeaefcc12670918e2cbd8) )
4307 
4308 	ROM_LOAD( "ac1705t00.u8",  0x1000000, 0x400000, CRC(2dff0652) SHA1(3c68ec3b233f248208ea80e4799a9504318b4e7c) )
4309 	ROM_LOAD( "ac1706t00.u11", 0x1400000, 0x400000, CRC(e7a168e0) SHA1(b4e19cc3a1fd0f18db7476ebe7cbb397c60e01b3) )
4310 
4311 	ROM_FILL(                 0x1800000, 0x800000, 0x000000)
4312 
4313 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
4314 	ROM_LOAD16_WORD_SWAP( "ac1707t00.u41", 0x000000, 0x400000, CRC(28999bc4) SHA1(4cddaa4a155cc03d456e6edb20dd207f7ff3d9c4) )
4315 
4316 	ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
4317 	ROM_LOAD16_WORD_SWAP( "ac1708t00.u42", 0x200000, 0x200000, CRC(7001eec0) SHA1(cc568ef90ec7201a73e9dc217d72cfbc3860e6b8) )
4318 	ROM_CONTINUE( 0x000000, 0x200000 )
4319 
4320 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4321 	ROM_COPY( "ensoniq.1", 0x000000,    0x200000, 0x200000 )
4322 
4323 	ROM_REGION( 0x200, "plds", 0 )
4324 	ROM_LOAD( "gal16v8d.ac1709g00.u34", 0x000, 0x117, CRC(65c4db12) SHA1(4931775ab5bcb9716db5a8e71e50b202d09c468b) )
4325 ROM_END
4326 
4327 
4328 /***************************************************************************
4329 
4330                                 Storm Blade
4331 
4332 ----------------------
4333 System SSV (STA-0001B)
4334 ----------------------
4335 CPU  : NEC D70615GD-16-S (V60)
4336 Sound: Ensoniq ES5506 (OTTOR2)
4337 OSC  : 42.9545MHz(X2) 48.0000MHz(X3)
4338 
4339 Custom chips:
4340 ST-0004 (Video DAC?)
4341 ST-0005 (Parallel I/O?)
4342 ST-0006 (Video controller)
4343 ST-0007 (System controller)
4344 
4345 Program Work RAM  : 256Kbitx2 (expandable to 1Mx2)
4346 Object Work RAM   : 1Mbitx2
4347 Color Palette RAM : 256Kbitx3 (expandable to 1Mx3)
4348 
4349 -------------------------
4350 SSV Subboard (VISCO-001B)
4351 -------------------------
4352 
4353 VISCO-001B
4354 |-----------------------|CN1|-|
4355 |                             |
4356 |                 D3.U2*   L  |
4357 |                 D2.U5*   o  |
4358 |         U15*    D1.U8*   g  |
4359 | SB-SND0.U22     D0.U12*  i  |
4360 |                 C3.U1*   c  |
4361 |              SB-C2.U4       |
4362 |              SB-C1.U7    c  |
4363 | uPD4701AC    SB-C0.U11   h  |
4364 | ADC0809         B3.U14*  i  |
4365 | SB-PD0.U26   SB-B2.U18   p  |
4366 | U33J.U33     SB-B1.U21   s  |
4367 | U37J.U37     SB-B0.U25      |
4368 |6264 VG003-22    A3.U28*  x  |
4369 |    ST010     SB-A2.U32      |
4370 |              SB-A1.U35   1  |
4371 |3790 BT2* BT1 SB-A0.U41   7  |
4372 |                             |
4373 |-----------------------------|
4374 
4375   VG003-22: GAL16V8B (undumped) at U29 (same GAL as Drift Out '94 - The Hard Order)
4376 SETA ST010: Custom programmed uPD96050 MCU used for math caculations
4377 ADC0809CCN: 8bit microprocessor compatible A/D converters with 8-Channel Multiplexer
4378  uPD4701AC: X, Y 2-axis Incremental Encoder Counter
4379        CN1: 5-pin male header/connector
4380       3790: MB3790 Bi-CMOS Battery Backup IC
4381       6264: Sharp LH5168D-10L 8K x 8bit CMOS SRAM
4382        BT1: CR2032 3v battery
4383 
4384 * Denotes unpopulated component
4385 
4386 U37, U33 = 27c040
4387 U22, U41, U35, U25, U21, U11, U7  = 16 meg mask ROMS
4388 U32, U18, U4 = 4 meg mask ROMS
4389 U26 = 8 meg mask ROM
4390 
4391 ***************************************************************************/
4392 
4393 ROM_START( stmblade )
4394 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
4395 	ROM_LOAD16_WORD( "sb-pd0.u26",  0x000000, 0x100000, CRC(91c4fbf7) SHA1(68e57ea2a9756a95a81c6688905352d631e9f2de) )
4396 	ROM_LOAD16_BYTE( "s-blade.u37", 0x200000, 0x080000, CRC(a6a42cc7) SHA1(4bff79ff03b81a7ed96d3ad285242580146976be) )
4397 	ROM_RELOAD(                     0x300000, 0x080000)
4398 	ROM_LOAD16_BYTE( "s-blade.u33", 0x200001, 0x080000, CRC(16104ca6) SHA1(63835051c358dce33d92974d1de911b98835a3d9) )
4399 	ROM_RELOAD(                     0x300001, 0x080000)
4400 
4401 	ROM_REGION( 0x1800000, "gfx1", 0 ) /* Sprites */
4402 	ROM_LOAD( "sb-a0.u41", 0x0000000, 0x200000, CRC(2a327b51) SHA1(fb1e92b7f740a80cb0c977e106d0c4bfee092dad) )
4403 	ROM_LOAD( "sb-a1.u35", 0x0200000, 0x200000, CRC(246f6f28) SHA1(09171f04452fbcf9e3333c135288fd6e5b8244f7) )
4404 	ROM_LOAD( "sb-a2.u32", 0x0400000, 0x080000, CRC(2049acf3) SHA1(3982b4650921da0563336060887767627f8679ab) )
4405 	ROM_LOAD( "sb-b0.u25", 0x0600000, 0x200000, CRC(b3aa3e68) SHA1(990be5925b6c8c0d0e83ca9064425d93853fe206) )
4406 	ROM_LOAD( "sb-b1.u21", 0x0800000, 0x200000, CRC(e95b38e7) SHA1(9256f027e4c496e3bf96ecb65c0f3e69791e2755) )
4407 	ROM_LOAD( "sb-b2.u18", 0x0a00000, 0x080000, CRC(d080e620) SHA1(a262b42214c09fccb8f4878d8566e2acd87dbd23) )
4408 	ROM_LOAD( "sb-c0.u11", 0x0c00000, 0x200000, CRC(825dd8f1) SHA1(39d32f54c97e21f92598442f05fd91ae2403a0d2) )
4409 	ROM_LOAD( "sb-c1.u7",  0x0e00000, 0x200000, CRC(744afcd7) SHA1(db716a1a2ad5864ebdb4865430cb637fb94ed34f) )
4410 	ROM_LOAD( "sb-c2.u4",  0x1000000, 0x080000, CRC(fd1d2a92) SHA1(957a8a52b79e252c7f1a4b6383107ae609dce5ef) )
4411 	ROM_FILL(              0x1200000, 0x600000, 0x000000)
4412 
4413 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
4414 	ROM_LOAD16_BYTE( "sb-snd0.u22", 0x000000, 0x200000, CRC(4efd605b) SHA1(9c97be105c923c7db847d9b9aea37025edb685a0) )
4415 
4416 	ROM_REGION( 0x11000, "st010", 0)
4417 	ROM_LOAD( "st010.bin",    0x00000, 0x11000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) ) // BPMicro-compatible dump
4418 	ROM_REGION32_BE( 0x10000, "dspprg", 0)
4419 	ROM_COPY( "st010", 0x00000, 0x00000, 0x10000 )
4420 	ROM_REGION16_BE( 0x01000, "dspdata", 0)
4421 	ROM_COPY( "st010", 0x10000, 0x00000, 0x01000 )
4422 ROM_END
4423 
4424 ROM_START( stmbladej )
4425 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
4426 	ROM_LOAD16_WORD( "sb-pd0.u26",  0x000000, 0x100000, CRC(91c4fbf7) SHA1(68e57ea2a9756a95a81c6688905352d631e9f2de) )
4427 	ROM_LOAD16_BYTE( "u37j.u37", 0x200000, 0x080000, CRC(dce20df8) SHA1(d589bf7bebbf6b3c76ddb4b1f8d0c7d6bee34561) )
4428 	ROM_RELOAD(                  0x300000, 0x080000)
4429 	ROM_LOAD16_BYTE( "u33j.u33", 0x200001, 0x080000, CRC(12f68940) SHA1(c50caee87cdcbb3a4af3a139234ed12942cfab72) )
4430 	ROM_RELOAD(                  0x300001, 0x080000)
4431 
4432 	ROM_REGION( 0x1800000, "gfx1", 0 ) /* Sprites */
4433 	ROM_LOAD( "sb-a0.u41", 0x0000000, 0x200000, CRC(2a327b51) SHA1(fb1e92b7f740a80cb0c977e106d0c4bfee092dad) )
4434 	ROM_LOAD( "sb-a1.u35", 0x0200000, 0x200000, CRC(246f6f28) SHA1(09171f04452fbcf9e3333c135288fd6e5b8244f7) )
4435 	ROM_LOAD( "sb-a2.u32", 0x0400000, 0x080000, CRC(2049acf3) SHA1(3982b4650921da0563336060887767627f8679ab) )
4436 	ROM_LOAD( "sb-b0.u25", 0x0600000, 0x200000, CRC(b3aa3e68) SHA1(990be5925b6c8c0d0e83ca9064425d93853fe206) )
4437 	ROM_LOAD( "sb-b1.u21", 0x0800000, 0x200000, CRC(e95b38e7) SHA1(9256f027e4c496e3bf96ecb65c0f3e69791e2755) )
4438 	ROM_LOAD( "sb-b2.u18", 0x0a00000, 0x080000, CRC(d080e620) SHA1(a262b42214c09fccb8f4878d8566e2acd87dbd23) )
4439 	ROM_LOAD( "sb-c0.u11", 0x0c00000, 0x200000, CRC(825dd8f1) SHA1(39d32f54c97e21f92598442f05fd91ae2403a0d2) )
4440 	ROM_LOAD( "sb-c1.u7",  0x0e00000, 0x200000, CRC(744afcd7) SHA1(db716a1a2ad5864ebdb4865430cb637fb94ed34f) )
4441 	ROM_LOAD( "sb-c2.u4",  0x1000000, 0x080000, CRC(fd1d2a92) SHA1(957a8a52b79e252c7f1a4b6383107ae609dce5ef) )
4442 	ROM_FILL(              0x1200000, 0x600000, 0x000000)
4443 
4444 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
4445 	ROM_LOAD16_BYTE( "sb-snd0.u22", 0x000000, 0x200000, CRC(4efd605b) SHA1(9c97be105c923c7db847d9b9aea37025edb685a0) )
4446 
4447 	ROM_REGION( 0x11000, "st010", 0)
4448 	ROM_LOAD( "st010.bin",    0x00000, 0x11000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) ) // BPMicro-compatible dump
4449 	ROM_REGION32_BE( 0x10000, "dspprg", 0)
4450 	ROM_COPY( "st010", 0x00000, 0x00000, 0x10000 )
4451 	ROM_REGION16_BE( 0x01000, "dspdata", 0)
4452 	ROM_COPY( "st010", 0x10000, 0x00000, 0x01000 )
4453 ROM_END
4454 
4455 
4456 /***************************************************************************
4457 
4458                                 Twin Eagle II
4459 SETA, 1994
4460 
4461 STS0003 TWIN EAGLE
4462 |-------------------------------------|
4463 |                                     |
4464 |                                     |
4465 |                 SX002-09.u2         |
4466 |                                     |
4467 |                 SX002-08.u3         |
4468 |                                     |
4469 | SX002-11.u7     SX002-07.u6         |
4470 |                                     |
4471 |                                     |
4472 | SX002-10.u14    SX002-06.u13        |
4473 |                                     |
4474 |                 SX002-05.u16        |
4475 |                                     |
4476 | SX002-12.u22    SX002-04.u19        |
4477 |                                     |
4478 | SX002-13                            |
4479 |                 SX002-03.u22        |
4480 |                                     |
4481 |                 SX002-02.u28        |
4482 |                                     |
4483 |                 SX002-01.u32        |
4484 | SETA ST010                          |
4485 |-------------------------------------|
4486 
4487   SX002-13: GAL16V8B (undumped)
4488 SETA ST010: Custom programmed uPD96050 MCU used for math caculations
4489 All ROMs are 16M mask ROMs
4490 
4491 ***************************************************************************/
4492 
4493 ROM_START( twineag2 )
4494 	ROM_REGION( 0x200000, "maincpu", 0 )     /* V60 Code */
4495 	ROM_LOAD16_WORD( "sx002-12.u22", 0x000000, 0x200000, CRC(846044dc) SHA1(c1c85de1c466fb7c3580824baa1571cd0fed6ec6) )
4496 
4497 	ROM_REGION( 0x1800000, "gfx1", 0 )  /* Sprites */
4498 	ROM_LOAD( "sx002-01.u32", 0x0000000, 0x200000, CRC(6d6896b5) SHA1(e8efd29b9f951bff6664e47cb5fd67f1d8f40608) ) /* A0 */
4499 	ROM_LOAD( "sx002-02.u28", 0x0200000, 0x200000, CRC(3f47e97a) SHA1(5b0fdc762cf704c8bd92c4a4a42dba4a127b3d49) ) /* A1 */
4500 	ROM_LOAD( "sx002-03.u25", 0x0400000, 0x200000, CRC(544f18bf) SHA1(539e6df1ded4e9ac8974c697215cc1e5c5a40cda) ) /* A2, A3 is unpopulated */
4501 
4502 	ROM_LOAD( "sx002-04.u19", 0x0600000, 0x200000, CRC(58c270e2) SHA1(7629ba978b18252f375bdc16ed62388d64a35ca1) ) /* B0 */
4503 	ROM_LOAD( "sx002-05.u16", 0x0800000, 0x200000, CRC(3c310229) SHA1(9a8b81d5f17ce3078627a697aaf07f1b3ba6e08c) ) /* B1 */
4504 	ROM_LOAD( "sx002-06.u13", 0x0a00000, 0x200000, CRC(46d5b1f3) SHA1(3ec03eddb159eb391ccdce5a0a867a54b3350150) ) /* B2, B3 is unpopulated */
4505 
4506 	ROM_LOAD( "sx002-07.u6",  0x0c00000, 0x200000, CRC(c30fa397) SHA1(d4575868c1b63f9e94bf24539a3fd8a85df93d0b) ) /* C0 */
4507 	ROM_LOAD( "sx002-08.u3",  0x0e00000, 0x200000, CRC(64edcefa) SHA1(55a71afe87da93e35c5ba291e970bdcd91b52a7a) ) /* C1 */
4508 	ROM_LOAD( "sx002-09.u2",  0x1000000, 0x200000, CRC(51527c56) SHA1(378155a585e5b847bd8ae1f17cb651138d844e33) ) /* C2, C3 is unpopulated */
4509 
4510 	ROM_FILL(             0x1200000, 0x600000, 0x000000          )
4511 
4512 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */
4513 	ROM_LOAD16_BYTE( "sx002-10.u14", 0x000000, 0x200000, CRC(b0669dfa) SHA1(ff805f59864ac4ccee3e249c06804d844d3df59c) )
4514 
4515 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */
4516 	ROM_LOAD16_BYTE( "sx002-11.u7",  0x000000, 0x200000, CRC(b8dd621a) SHA1(f9b43e018f2bb121e4f4e9554419cd32b870556b) )
4517 
4518 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4519 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
4520 
4521 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
4522 	ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
4523 
4524 	ROM_REGION( 0x11000, "st010", 0)
4525 	ROM_LOAD( "st010.bin",    0x00000, 0x11000, CRC(aa11ee2d) SHA1(cc1984e989cb94e3dcbb5f99e085b5414e18a017) ) // BPMicro-compatible dump
4526 	ROM_REGION32_BE( 0x10000, "dspprg", 0)
4527 	ROM_COPY( "st010", 0x00000, 0x00000, 0x10000 )
4528 	ROM_REGION16_BE( 0x01000, "dspdata", 0)
4529 	ROM_COPY( "st010", 0x10000, 0x00000, 0x01000 )
4530 ROM_END
4531 
4532 
4533 /***************************************************************************
4534 
4535                 Ultra Keibitai / Ultra X Weapon
4536 
4537 (c)1995 Banpresto (developed by Seta)
4538 Hardware is almost identical to SSV system
4539 
4540 ****************************************************************************/
4541 
4542 ROM_START( ultrax )
4543 	ROM_REGION( 0x200000, "maincpu", 0 )  /* V60 Code */
4544 	ROM_LOAD16_BYTE( "71047-11.u64", 0x000000, 0x080000, CRC(593b2678) SHA1(3b24b59a21386a4688502c5f0a2dd4eb0ec92544) )
4545 	ROM_LOAD16_BYTE( "71047-09.u65", 0x000001, 0x080000, CRC(08ea8d91) SHA1(5d2672f6c96fbbe9d80bd6539c1400b62745892a) )
4546 	ROM_LOAD16_BYTE( "71047-12.u62", 0x100000, 0x080000, CRC(76a77ab2) SHA1(0cf2f293defc23c807556ff92ea99f963fafed40) )
4547 	ROM_LOAD16_BYTE( "71047-10.u63", 0x100001, 0x080000, CRC(7c79faf9) SHA1(40c1420eeae355efa628bbcfd69e0dd18d343fd9) )
4548 
4549 	ROM_REGION( 0xc00000, "gfx1", 0 ) /* Sprites */
4550 	ROM_LOAD( "71047-01.u73", 0x0000000, 0x200000, CRC(66662b08) SHA1(0cb683e5f85ffe21bd3367af4d3e48a484dbd4c3) )
4551 	ROM_LOAD( "71047-02.u74", 0x0200000, 0x100000, CRC(6b00dc0c) SHA1(6af8ceed72d13f9979175c0d907a4a8c127ca1ad) )
4552 	ROM_LOAD( "71047-03.u76", 0x0300000, 0x200000, CRC(00fcd6c2) SHA1(61d13cbafbc0fd6ff62cd08aa88591ed0fd0b182) )
4553 	ROM_LOAD( "71047-04.u77", 0x0500000, 0x100000, CRC(d9e710d1) SHA1(063459a247f9ff81cb558802e9943b3ea8a2ea3a) )
4554 	ROM_LOAD( "71047-05.u75", 0x0600000, 0x200000, CRC(10848193) SHA1(40b7ebb6011dc703bbf620cd22cd678c10ec67a4) )
4555 	ROM_LOAD( "71047-06.u88", 0x0800000, 0x100000, CRC(b8ac2942) SHA1(3e85e8f5669d469dd3114455248546d32a642315) )
4556 	ROM_FILL(                 0x0900000, 0x300000, 0x000000 )
4557 
4558 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */
4559 	ROM_LOAD16_BYTE( "71047-07.u59", 0x000000, 0x200000, CRC(d9828b62) SHA1(f66a388d7a00b3a45d386671c061f5b840453451) )
4560 
4561 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */
4562 	ROM_LOAD16_BYTE( "71047-08.u60", 0x000000, 0x200000, CRC(30ebff6d) SHA1(53824c1fc37e22b545fd68b59722f7968f0ca1e2) )
4563 
4564 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4565 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
4566 
4567 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
4568 	ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
4569 ROM_END
4570 
4571 
4572 ROM_START( ultraxg )
4573 	ROM_REGION( 0x200000, "maincpu", 0 )  /* V60 Code */
4574 	ROM_LOAD16_BYTE( "sx010-11.5h", 0x000000, 0x080000, CRC(58554bdd) SHA1(4b35fbaca0cb458e3b21c43e4b4dfd708a7b9397) ) /* hand written label with date 2/27 & checksum "44B4" */
4575 	ROM_LOAD16_BYTE( "sx010-09.5c", 0x000001, 0x080000, CRC(153e79b2) SHA1(e0278267e345ebd81f66fbb9d262cbd78df2d01b) ) /* hand written label with date 2/27 & checksum "449B" */
4576 	ROM_LOAD16_BYTE( "sx010-12.5k", 0x100000, 0x080000, CRC(14ad58c9) SHA1(d6be82044a22eb21cac8f7e961a198e369743962) ) /* hand written label with date 2/27 & checksum "3CCF" */
4577 	ROM_LOAD16_BYTE( "sx010-10.5d", 0x100001, 0x080000, CRC(7e64473e) SHA1(2444ac4d95563b18c8aec077e742b0f84fd38f43) ) /* hand written label with date 2/27 & checksum "0CC5" */
4578 
4579 	ROM_REGION( 0xc00000, "gfx1", 0 ) /* Sprites */
4580 	ROM_LOAD( "71047-01.u73", 0x0000000, 0x200000, CRC(66662b08) SHA1(0cb683e5f85ffe21bd3367af4d3e48a484dbd4c3) )
4581 	ROM_LOAD( "71047-02.u74", 0x0200000, 0x100000, CRC(6b00dc0c) SHA1(6af8ceed72d13f9979175c0d907a4a8c127ca1ad) )
4582 	ROM_LOAD( "71047-03.u76", 0x0300000, 0x200000, CRC(00fcd6c2) SHA1(61d13cbafbc0fd6ff62cd08aa88591ed0fd0b182) )
4583 	ROM_LOAD( "71047-04.u77", 0x0500000, 0x100000, CRC(d9e710d1) SHA1(063459a247f9ff81cb558802e9943b3ea8a2ea3a) )
4584 	ROM_LOAD( "71047-05.u75", 0x0600000, 0x200000, CRC(10848193) SHA1(40b7ebb6011dc703bbf620cd22cd678c10ec67a4) )
4585 	ROM_LOAD( "71047-06.u88", 0x0800000, 0x100000, CRC(b8ac2942) SHA1(3e85e8f5669d469dd3114455248546d32a642315) )
4586 	ROM_FILL(                 0x0900000, 0x300000, 0x000000 )
4587 
4588 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 ) /* Samples */
4589 	ROM_LOAD16_BYTE( "71047-07.u59", 0x000000, 0x200000, CRC(d9828b62) SHA1(f66a388d7a00b3a45d386671c061f5b840453451) )
4590 
4591 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 ) /* Samples */
4592 	ROM_LOAD16_BYTE( "71047-08.u60", 0x000000, 0x200000, CRC(30ebff6d) SHA1(53824c1fc37e22b545fd68b59722f7968f0ca1e2) )
4593 
4594 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4595 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
4596 
4597 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
4598 	ROM_COPY( "ensoniq.1", 0x000000, 0x000000, 0x400000 )
4599 ROM_END
4600 
4601 /***************************************************************************
4602 
4603                             Vasara / Vasara 2
4604 
4605 Visco Games, 2000 / 2001
4606 (info from the vasara 2 board but vasara should be the same)
4607 
4608 This is a sub board that fits any standard SSV main board.
4609 
4610 There's very little on the ROM board. Just 2x 27C040 EPROMs,
4611 4x 64Mbit SOP44 mask ROMs, 3x 16Mbit SOP44 mask ROMs,
4612 some logic and 2 PALs near the PROG & DATA ROMs.
4613 
4614 The actual ROM PCB has the capability to accept SOP44 and
4615 TSOP48 type 1 SMT ROMs though many of the positions are unpopulated.
4616 It's likely this same ROM board could be used for other Visco games.
4617 
4618 ROM PCB (PCB Number: SSV_SUB)
4619 
4620 SSV-SUB
4621 |-------------------------------------------|
4622 |                                           |
4623 |            logic chips (x14)              |
4624 |                                           |
4625 |                                           |
4626 |                                           |
4627 |  U4   U8   U3   U7   U2   U6   U1   U5    |
4628 |                                           |
4629 |                                           |
4630 |                                           |
4631 |                                           |
4632 |   U12    U11   logic (x3)   U10     U9    |
4633 |                                           |
4634 |                                           |
4635 |                                           |
4636 |                                           |
4637 |                                           |
4638 |                                           |
4639 |             U38             U34           |
4640 | U37  U36         U30  U31        PAL PAL  |
4641 |             U39             U35           |
4642 |                                           |
4643 |                                           |
4644 |-------------------------------------------|
4645 Notes:
4646 LOC      Vasara                  Vasara 2           Device
4647 ----------------------------------------------------------------------
4648 U4       VASARA-1-D0             VASARA-2-D0        64M SOP44 MaskROM
4649 U3       VASARA-1-C0             VASARA-2-C0        64M SOP44 MaskROM
4650 U2       VASARA-1-B0             VASARA-2-B0        64M SOP44 MaskROM
4651 U1       VASARA-1-A0             VASARA-2-A0        64M SOP44 MaskROM
4652 U37      VASARA-1 SND1           VASARA-1 SND1      Macronix MX29F1610 SOP44 MaskROM
4653 U36      VASARA-1 SND0           VASARA-1 SND0      Macronix MX29F1610 SOP44 MaskROM
4654 U30      PRG-L U30               PRG-L U30          TMS 27C040 EPROM
4655 U31      PRG-H U31               PRG-H U31          TMS 27C040 EPROM
4656 U34      VASARA-1 DAT            VASARA-1 DAT       Macronix MX29F1610 MaskROM
4657 
4658 Locations U5, U6, U7 &U8 wired for Macronix MX29F1610 SOP44 but not populated.
4659 Locations U9, U10, U11, U12, U35, U38 & U39 wired for Macronix MX29F1610 TSOP48 but not populated.
4660 
4661 
4662 File Name     Labeled as        Loc. Printed*      ROM Type
4663 -----------------------------------------------------------------------
4664 prg-h.u31     PRG-H U31         U31  PRG H       | 27C040
4665 prg-l.u30     PRG-L U20         U30  PRG L      /
4666 s1.u37        C DAT VASARA-1    U37  S1         \
4667 s0.u36        B DAT VASARA-1    U36  S0          | Surface Mounted 16Mbit SOP44 mask ROMs
4668 data.u34      A SND 1 VASARA-1  U34  DATA ROM   /
4669 d0.u4         VASARA-2-D0       U4   D0.D1      \
4670 c0.u3         VASARA-2-C0       U3   C0.C1       | Surface Mounted 64Mbit SOP44 mask ROMs
4671 b0.u2         VASARA-2-B0       U2   B0.B1       |
4672 a0.u1         VASARA-2-A0       U1   A0.A1      /
4673 
4674 2x GAL16V8D
4675 
4676 Printed = Info silk-screened/printed on the actual PCB
4677 
4678 Vasara 2 has a secret character code like the Raizing games:
4679 
4680     Insert Coin, UP UP UP DOWN DOWN DOWN UP UP UP UP UP UP UP  (Up x3, Down x3, Up x7)
4681 
4682     Using this code will add a fifth selectable character called Saiga Magoichi
4683     To enable this character full time, set dip 8 of switch 2
4684 
4685 ****************************************************************************/
4686 
4687 ROM_START( vasara )
4688 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
4689 	ROM_LOAD16_WORD( "data.u34",  0x000000, 0x200000, CRC(7704cc7e) SHA1(62bb018b7f0c7ee67fee37de17bb22a73bb9e420) )
4690 	ROM_LOAD16_BYTE( "prg-l.u30", 0x200000, 0x080000, CRC(f0547886) SHA1(6a3717f8b89575d3cb4c7d56dd9df5052faa3c7f) )
4691 	ROM_RELOAD(                   0x300000, 0x080000)
4692 	ROM_LOAD16_BYTE( "prg-h.u31", 0x200001, 0x080000, CRC(6a39bba9) SHA1(05ede167150307d7bf59037f264b1d140f6646da) )
4693 	ROM_RELOAD(                   0x300001, 0x080000)
4694 
4695 	ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
4696 	ROM_LOAD( "a0.u1", 0x0000000, 0x800000, CRC(673230a6) SHA1(a9d1a108c0737b709854bae199499577f5ae359e) )
4697 	ROM_LOAD( "b0.u2", 0x0800000, 0x800000, CRC(31a2da7f) SHA1(5efec60affb2ed2b73a6694ac794d41375220609) )
4698 	ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(d110dacf) SHA1(6f33bf6ce8c06f0b823b5478a56dc95095385181) )
4699 	ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(82d0ca55) SHA1(5ac07df713504329fbc8e8b5374c04e53745230e) )
4700 
4701 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
4702 	ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(754fca02) SHA1(5b2810a36183e0d4f42f0fb4a09be033ad0db40d) )
4703 
4704 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
4705 	ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(5f303698) SHA1(bd6495f912aa9d761d245ef0a1566d9d7bdbb2ad) )
4706 ROM_END
4707 
4708 ROM_START( vasara2 )
4709 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
4710 	ROM_LOAD16_WORD( "data.u34",  0x000000, 0x200000, CRC(493d0103) SHA1(fda68fb089328cabb3bbd52f8703b445a9509bf1) )
4711 	ROM_LOAD16_BYTE( "prg-l.u30", 0x200000, 0x080000, CRC(40e6f5f6) SHA1(05fee4535ffe8403e86ba92a58e5f2d040489c8e) )
4712 	ROM_RELOAD(                   0x300000, 0x080000)
4713 	ROM_LOAD16_BYTE( "prg-h.u31", 0x200001, 0x080000, CRC(c958e146) SHA1(568878526cef76ac0ce4feeaa46e7039291e5f77) )
4714 	ROM_RELOAD(                   0x300001, 0x080000)
4715 
4716 	ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
4717 	ROM_LOAD( "a0.u1", 0x0000000, 0x800000, CRC(a6306c75) SHA1(bad715e53426a295d3571c025e0539d5f81ce5ab) )
4718 	ROM_LOAD( "b0.u2", 0x0800000, 0x800000, CRC(227cbd9f) SHA1(a02787943b659508ce1589cdc7a372cc02826a10) )
4719 	ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(54ede017) SHA1(4a7ff7ff8ec5843837016f35a588983b5ace06ff) )
4720 	ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(4be8479d) SHA1(cbb5943dfae86f4d571459263199a63399dedc20) )
4721 
4722 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
4723 	ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(2b381b33) SHA1(b9dd13651e4b8d0b9e3bc4c592022f31ea634d19) )
4724 
4725 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
4726 	ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(11cd7098) SHA1(f75288b5c89df039dfb41d66bd275cda8605e75a) )
4727 ROM_END
4728 
4729 ROM_START( vasara2a )
4730 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
4731 	ROM_LOAD16_WORD( "data.u34",     0x000000, 0x200000, CRC(493d0103) SHA1(fda68fb089328cabb3bbd52f8703b445a9509bf1) )
4732 	ROM_LOAD16_BYTE( "basara-l.u30", 0x200000, 0x080000, CRC(fd88b068) SHA1(a86e3ffc870e6f6f7f18273428b24d938d6b9c3d) )
4733 	ROM_RELOAD(                      0x300000, 0x080000)
4734 	ROM_LOAD16_BYTE( "basara-h.u31", 0x200001, 0x080000, CRC(91d641e6) SHA1(4987d1771a90c9f1ce45c2dd2de5b2922d5d19c5) )
4735 	ROM_RELOAD(                      0x300001, 0x080000)
4736 
4737 	ROM_REGION( 0x2000000, "gfx1", 0 ) /* Sprites */
4738 	ROM_LOAD( "a0.u1", 0x0000000, 0x800000, CRC(a6306c75) SHA1(bad715e53426a295d3571c025e0539d5f81ce5ab) )
4739 	ROM_LOAD( "b0.u2", 0x0800000, 0x800000, CRC(227cbd9f) SHA1(a02787943b659508ce1589cdc7a372cc02826a10) )
4740 	ROM_LOAD( "c0.u3", 0x1000000, 0x800000, CRC(54ede017) SHA1(4a7ff7ff8ec5843837016f35a588983b5ace06ff) )
4741 	ROM_LOAD( "d0.u4", 0x1800000, 0x800000, CRC(4be8479d) SHA1(cbb5943dfae86f4d571459263199a63399dedc20) )
4742 
4743 	ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )   /* Samples */
4744 	ROM_LOAD16_BYTE( "s0.u36", 0x000000, 0x200000, CRC(2b381b33) SHA1(b9dd13651e4b8d0b9e3bc4c592022f31ea634d19) )
4745 
4746 	ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )   /* Samples */
4747 	ROM_LOAD16_BYTE( "s1.u37", 0x000000, 0x200000, CRC(11cd7098) SHA1(f75288b5c89df039dfb41d66bd275cda8605e75a) )
4748 ROM_END
4749 
4750 /***************************************************************************
4751 
4752 Mobile Suit Gundam Final Shooting
4753 Banpresto, 1995
4754 
4755 Uses main board STA-0001B SYSTEM SSV
4756 
4757 Game Board Layout
4758 -----------------
4759 
4760 VISCO (no other PCB numbers)
4761 |---------------------------------------------------------|
4762 |                 GAL16V8(2)                              |
4763 |   VG004-01.U33            VG004-07.U39                  |
4764 |      VG004-02.U34           VG004-08.U40                |
4765 |        VG004-03.U35           VG004-10.U45      TC514400|
4766 |          VG004-04.U36           VG004-09.U43            |
4767 |            VG004-05.U37           VG004-11.U48  TC514400|
4768 |D1            VG004-06.U38                               |
4769 |                                       100MHz    TC514400|
4770 |                                                         |
4771 |                                |--------------| TC514400|
4772 |      TC551001                  |              |         |
4773 |P           |-------| GAL20V8   |              | TC514400|
4774 | S2914      | SETA  | GAL20V8   |     SETA     |         |
4775 |            |ST-0009| GAL20V8   |              | TC514400|
4776 |            |       |           |   ST-0020    |         |
4777 |            |-------|           |              | TC514400|
4778 |      TC551001                  |              |         |
4779 |           SSVV7.U16            |--------------| TC514400|
4780 |               VG004-12.U4                               |
4781 |C1                 VG004-13.U5  TC514260      VG004-14.U3|
4782 | ADC0809             TC55257    GAL16V8(1) SSV2SET0.U1   |
4783 |                     TC55257           SSVSET1.U2        |
4784 |---------------------------------------------------------|
4785 Notes:
4786       D1         - 4 pin connector for power
4787       P          - 10 pin connector
4788       C1         - 10 pin connector for analog controls
4789       ADC0809    - National Semiconductor ADC0809 8-Bit Microprocessor Compatible A/D Converter with 8-Channel Multiplexer (DIP28)
4790       S2914      - Seiko S2914 EEPROM (DIP8)
4791       TC551001   - Toshiba TC551001BFL-70L 128K x8 SRAM (SOP32)
4792       TC55257    - Toshiba TC55257N-70L 32K x8 SRAM (SOP28)
4793       TC514260   - Toshiba TC514260BJ-70 256K x16 DRAM (SOJ40)
4794       GAL16V8(1) - Lattice GAL16V8B stamped 'VG004-18' (DIP20)
4795       GAL16V8(2) - Lattice GAL16V8B stamped 'VG004-19' (DIP20)
4796       GAL20V8    - Lattice GAL20V8B all 3 stamped 'VG004-20' and have identical contents (DIP24)
4797       U16,U2,U1  - 4M MaskROM (DIP32)
4798       All other ROMs are 8M/16M MaskROM (DIP42)
4799       Custom Seta ICs -
4800                        ST-0009 (QFP176)
4801                        ST-0020 (QFP304, heatsinked)
4802 
4803 ****************************************************************************/
4804 
4805 ROM_START( gdfs )
4806 	ROM_REGION( 0x400000, "maincpu", 0 )     /* V60 Code */
4807 	ROM_LOAD16_WORD( "vg004-14.u3",   0x000000, 0x100000, CRC(d88254df) SHA1(ccdfd42e4ce3941018f83e300da8bf7a5950f65c) )
4808 	ROM_RELOAD(                       0x100000, 0x100000)
4809 	ROM_LOAD16_BYTE( "ssv2set0.u1",   0x200000, 0x080000, CRC(c23b9e2c) SHA1(9026e065252981fb403255ddc5782359c0088e8a) )
4810 	ROM_RELOAD(                       0x300000, 0x80000)
4811 	ROM_LOAD16_BYTE( "ssv2set1.u2",   0x200001, 0x080000, CRC(d7d52570) SHA1(12e7531519a0a4331e409991265908fb518286ef) )
4812 	ROM_RELOAD(                       0x300001, 0x80000)
4813 
4814 	ROM_REGION( 0x800000, "gfx1", 0 )
4815 	ROM_LOAD( "vg004-09.u43", 0x000000, 0x200000, CRC(b7382cfa) SHA1(df735470181c16f8aac0e3be76e1ed53a32dbb9c) )
4816 	ROM_LOAD( "vg004-10.u45", 0x200000, 0x200000, CRC(b3c6b1cb) SHA1(c601213e35d8dfd1244921da5c093f82145706d2) )
4817 	ROM_LOAD( "vg004-11.u48", 0x400000, 0x200000, CRC(1491def1) SHA1(344043302c81b4118cac4f692375b8af7ea68570) )
4818 
4819 	ROM_REGION( 0x1000000, "st0020_spr", /*0*/0 )   // Zooming Sprites, read by a blitter
4820 	ROM_LOAD( "vg004-01.u33", 0x0000000, 0x200000, CRC(aa9a81c2) SHA1(a7d005f9be199e317aa4c6aed8a2ab322fe82119) )
4821 	ROM_LOAD( "vg004-02.u34", 0x0200000, 0x200000, CRC(fa40ecb4) SHA1(0513f3b6879dc7d207646d949d6ddb7251f77bcc) )
4822 	ROM_LOAD( "vg004-03.u35", 0x0400000, 0x200000, CRC(90004023) SHA1(041edb77b34e6677ac5b85ce542d87a9bb1baf31) )
4823 	ROM_LOAD( "vg004-04.u36", 0x0600000, 0x200000, CRC(fdafd289) SHA1(3ff1969a176d13bfa68a48c9ed582f5789b1047f) )
4824 	ROM_LOAD( "vg004-06.u38", 0x0a00000, 0x200000, CRC(3402325f) SHA1(7ea169c1f8b01a37bd7dbb4d486d38bdac62be5b) )
4825 	ROM_LOAD( "vg004-05.u37", 0x0800000, 0x200000, CRC(9ae488b0) SHA1(7823cc689c588f3dbcafe9bdc94c094d6e9cd605) )
4826 	ROM_LOAD( "vg004-07.u39", 0x0c00000, 0x200000, CRC(5e89fcf9) SHA1(db727ec8117e84c98037c756715e28fd5e39972a) )
4827 	ROM_LOAD( "vg004-08.u40", 0x0e00000, 0x200000, CRC(6b1746dc) SHA1(35e5ee02975474985a4a611dcc439fc3050b7f94) )
4828 
4829 	ROM_REGION( 0x80000, "gfx3", 0 )    // Tilemap
4830 	ROM_LOAD( "ssvv7.u16",    0x0000000, 0x080000, CRC(f1c3ab6f) SHA1(b7f54f7ae60650fee7570aa4dd4266c629149673) )
4831 
4832 	ROM_REGION16_BE( 0x400000, "ensoniq.0", 0 ) /* Samples */
4833 	ROM_LOAD16_BYTE( "vg004-12.u4", 0x000000, 0x200000, CRC(eb41a4ef) SHA1(f4d0844a3c00cf90faa59ae982744b7f0bcbe218) )
4834 	ROM_LOAD16_BYTE( "vg004-13.u5", 0x000001, 0x200000, CRC(a4ed3977) SHA1(5843d56f69789e70ce0201a693ffae322b628459) )
4835 
4836 	ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 ) /* Samples */
4837 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
4838 
4839 	ROM_REGION16_BE( 0x400000, "ensoniq.2", 0 ) /* Samples */
4840 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
4841 
4842 	ROM_REGION16_BE( 0x400000, "ensoniq.3", 0 ) /* Samples */
4843 	ROM_COPY( "ensoniq.0", 0x000000, 0x000000, 0x400000 )
4844 ROM_END
4845 
4846 /***************************************************************************
4847 
4848 
4849                                 Game Drivers
4850 
4851 
4852 ***************************************************************************/
4853 
4854 //    year   rom        clone     machine   inputs    init                           monitor manufacturer          title                                                                     flags
4855 
4856 GAME( 1993,  dynagear,  0,        dynagear, dynagear, ssv_state, init_ssv,           ROT0,   "Sammy",              "Dyna Gear",                                                              MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
4857 
4858 GAME( 1993,  keithlcy,  0,        keithlcy, keithlcy, ssv_state, init_ssv,           ROT0,   "Visco",              "Dramatic Adventure Quiz Keith & Lucy (Japan)",                           MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4859 
4860 GAME( 1993,  pastelis,  0,        pastelis, pastelis, ssv_state, init_pastelis,      ROT0,   "Visco",              "Pastel Island (Japan, prototype)",                                       MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // imperfect raster effects in ending credits and shadows
4861 
4862 GAME( 1993,  srmp4,     0,        srmp4,    srmp4,    ssv_state, init_ssv,           ROT0,   "Seta",               "Super Real Mahjong PIV (Japan)",                                         MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4863 GAME( 1993,  srmp4o,    srmp4,    srmp4,    srmp4,    ssv_state, init_ssv,           ROT0,   "Seta",               "Super Real Mahjong PIV (Japan, older set)",                              MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // by the numbering of the program ROMs this should be older
4864 
4865 GAME( 1993,  survarts,  0,        survarts, survarts, ssv_state, init_ssv,           ROT0,   "Sammy",              "Survival Arts (World)",                                                  MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4866 GAME( 1993,  survartsu, survarts, survarts, survarts, ssv_state, init_ssv,           ROT0,   "American Sammy",     "Survival Arts (USA)",                                                    MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4867 GAME( 1993,  survartsj, survarts, survarts, survarts, ssv_state, init_ssv,           ROT0,   "Sammy",              "Survival Arts (Japan)",                                                  MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4868 
4869 GAME( 1994,  drifto94,  0,        drifto94, drifto94, ssv_state, init_ssv,           ROT0,   "Visco",              "Drift Out '94 - The Hard Order (Japan)",                                 MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4870 
4871 GAME( 1994,  eaglshot,  0,        eaglshot, eaglshot, eaglshot_state, init_eaglshot, ROT0,   "Sammy",              "Eagle Shot Golf (US)",                                                   MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
4872 GAME( 1994,  eaglshotj, eaglshot, eaglshot, eaglshot, eaglshot_state, init_eaglshot, ROT0,   "Sammy",              "Eagle Shot Golf (Japan, bootleg?)",                                      MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // from a bootleg ROM board with no proper Seta / Sammy markings, possibly original ROM tho?
4873 
4874 GAME( 1995,  hypreact,  0,        hypreact, hypreact, ssv_state, init_ssv,           ROT0,   "Sammy",              "Mahjong Hyper Reaction (Japan)",                                         MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4875 
4876 GAME( 1994,  twineag2,  0,        twineag2, twineag2, ssv_state, init_ssv_irq1,      ROT270, "Seta",               "Twin Eagle II - The Rescue Mission",                                     MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4877 
4878 GAME( 1995,  gdfs,      0,        gdfs,     gdfs,     gdfs_state, init_ssv,          ROT0,   "Banpresto",          "Mobile Suit Gundam Final Shooting (Japan)",                              MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // title screen spells the title "Mobil" but standardized spelling is "Mobile" it also lists the company name as "Banprest" instead of "Banpresto"
4879 
4880 // Ultra X Weapon: "developed by Seta" in ending screen
4881 GAME( 1995,  ultrax,    0,        ultrax,   ultrax,   ssv_state, init_ssv_irq1,      ROT270, "Banpresto / Tsuburaya Productions / Seta", "Ultra X Weapons / Ultra Keibitai",                        MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 95-01-30 13:27:15 on startup
4882 GAME( 1995,  ultraxg,   ultrax,   ultrax,   ultrax,   ssv_state, init_ssv_irq1,      ROT270, "Banpresto / Tsuburaya Productions / Seta", "Ultra X Weapons / Ultra Keibitai (Gamest review build)",  MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 95-02-16 15:30:24 on startup (newer, but could have pause functionality due to being a review build so left as clone)
4883 
4884 GAME( 1996,  janjans1,  0,        janjans1, janjans1, ssv_state, init_ssv,           ROT0,   "Visco",              "Lovely Pop Mahjong JangJang Shimasho (Japan)",                           MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
4885 
4886 GAME( 1996?, meosism,   0,        meosism,  meosism,  ssv_state, init_ssv,           ROT0,   "Sammy",              "Meosis Magic (Japan)",                                                   MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4887 
4888 GAME( 1996,  stmblade,  0,        stmblade, stmblade, ssv_state, init_ssv,           ROT270, "Visco",              "Storm Blade (US)",                                                       MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
4889 GAME( 1996,  stmbladej, stmblade, stmblade, stmblade, ssv_state, init_ssv,           ROT270, "Visco",              "Storm Blade (Japan)",                                                    MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
4890 
4891 GAME( 1997,  hypreac2,  0,        hypreac2, hypreac2, ssv_state, init_ssv_tilescram, ROT0,   "Sammy",              "Mahjong Hyper Reaction 2 (Japan)",                                       MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4892 
4893 GAME( 1997,  jsk,       0,        jsk,      jsk,      ssv_state, init_jsk,           ROT0,   "Visco",              "Joryuu Syougi Kyoushitsu (Japan)",                                       MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4894 
4895 GAME( 1997,  koikois2,  0,        janjans1, koikois2, ssv_state, init_ssv,           ROT0,   "Visco",              "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)",                       MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4896 
4897 GAME( 1997,  mslider,   0,        mslider,  mslider,  ssv_state, init_ssv,           ROT0,   "Visco / Datt Japan", "Monster Slider (Japan)",                                                 MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4898 
4899 GAME( 1997,  srmp7,     0,        srmp7,    srmp7,    ssv_state, init_srmp7,         ROT0,   "Seta",               "Super Real Mahjong P7 (Japan)",                                          MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
4900 
4901 GAME( 1998,  ryorioh,   0,        ryorioh,  ryorioh,  ssv_state, init_ssv,           ROT0,   "Visco",              "Gourmet Battle Quiz Ryohrioh CooKing (Japan)",                           MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4902 
4903 GAME( 1998,  sxyreact,  0,        sxyreact, sxyreact, sxyreact_state, init_sexy,     ROT0,   "Sammy",              "Pachinko Sexy Reaction (Japan)",                                         MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4904 
4905 GAME( 1999,  sxyreac2,  0,        sxyreac2, sxyreact, sxyreact_state, init_sexy,     ROT0,   "Sammy",              "Pachinko Sexy Reaction 2 (Japan)",                                       MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4906 
4907 GAME( 1999,  cairblad,  0,        cairblad, cairblad, ssv_state, init_ssv_tilescram, ROT270, "Sammy",              "Change Air Blade (Japan)",                                               MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4908 
4909 GAME( 2000,  janjans2,  0,        janjans1, janjans2, ssv_state, init_ssv,           ROT0,   "Visco",              "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)",                         MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
4910 
4911 GAME( 2000,  vasara,    0,        vasara,   vasara,   ssv_state, init_ssv,           ROT270, "Visco",              "Vasara",                                                                 MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4912 
4913 GAME( 2001,  vasara2,   0,        vasara,   vasara2,  ssv_state, init_ssv,           ROT270, "Visco",              "Vasara 2 (set 1)",                                                       MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4914 GAME( 2001,  vasara2a,  vasara2,  vasara,   vasara2,  ssv_state, init_ssv,           ROT270, "Visco",              "Vasara 2 (set 2)",                                                       MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
4915