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