1 // license:BSD-3-Clause
2 // copyright-holders:Luca Elia, David Haywood, Angelo Salese, Roberto Fresca
3 /***************************************************************************
4
5 -= Subsino's Gambling Games =-
6
7 Driver by Luca Elia (l.elia@tin.it)
8 Additional work by David Haywood, Angelo Salese and Roberto Fresca.
9
10
11 CPU: Black epoxy box containing:
12 1x CXK58257M (32768 x 8-Bit) High Speed CMOS SRAM.
13 1x HD647180X0P6, HD643180X0P6 or HD641180X0P6 Z180-CPU.
14 1x X-TAL (unknown frequency).
15 1x Battery.
16
17 GFX: 1 Tilemap (8x8 tiles, no scrolling)
18 CUSTOM: 2 x SUBSINO SS9100, SUBSINO SS9101
19 SOUND: M6295, YM2413 or YM3812
20 OTHER: Battery
21
22 To Do:
23
24 - Remove ROM patches from smoto, stbsub and tesorone, emulate the protection instead.
25 - Hopper emulation currently hooked up in stbsub, tesorone and smoto. Add to others.
26
27 ****************************************************************************
28
29 Game Notes:
30 ----------
31
32
33 * Victor5, Victor 21, Shark Party.
34
35 To enter the bookkeeping mode press STATS (key 9).
36 Press START/DEAL (key 2) to exit.
37
38
39 * Treasure Island.
40
41 To enter test mode, keep STATS/TEST (key 9) pressed during boot.
42 HOLD3 (key C) to increase the tune/sound number, START (key 2) to decrease it.
43
44 To enter the bookkeeping mode press STATS/TEST (key 9).
45 Press START/TAKE (key 2) to exit.
46
47
48 * Poker Carnival (crsbingo)
49
50 To adjust the game rate, press SETTINGS (key 0) and then use HOLD4 (key V)
51 to choose the individual game to set. Press HOLD5 (key B) to change value.
52 Press START/DEAL (key 2) to exit.
53
54 To enter the bookkeeping mode press STATS (key 9).
55 Press START/DEAL (key 2) to exit.
56
57
58 * Super Rider, Super Moto
59
60 To enter test mode, keep STATS/TEST (key 9) pressed during boot.
61 HOLD5 (key B) to select between VOICE <-> MUSIC.
62 HOLD4 (key V) to increase the tune/sound number, START (key 2) to decrease it.
63
64 To enter the bookkeeping mode press STATS/TEST (key 9).
65 Press START/DEAL (key 2) to exit.
66
67
68 ****************************************************************************
69
70 Updates:
71
72 2010-01-01 / 2010-01-16
73 -----------------------
74
75 (general):
76
77 - Lowered CPU clock to 1.5 MHz.
78 - Reworked former inputs.
79 - Added specific game and technical notes.
80 - Added lamps support.
81 - Cleaned-up a bit the driver.
82
83 Victor 5:
84
85 - Mapped the M6295 but commented out due to missing sample roms.
86 - Added keyin, keyout, payout, stats and settings inputs.
87 - Added coin/keyin/keyout counters.
88 - Limited the bet and coin pulses to avoid repeats and coin jams.
89 - Added complete coinage and keyin DIP switches.
90 - Added main game and double-up rates DIP switches.
91 - Added minimum bet DIP switches.
92 - Added maximum bet DIP switches.
93 - Added attract music DIP switch.
94 - Added button-lamps layout.
95
96 Victor 21:
97
98 - Mapped the M6295 but commented out due to missing sample roms.
99 - Added bet x10, keyin, keyout, stats and settings inputs.
100 - Added coin/keyin/keyout/payout counters.
101 - Limited the bet and coin pulses to avoid repeats and coin jams.
102 - Added complete coinage and keyin DIP switches.
103 - Added main game rate DIP switches.
104 - Added minimum bet DIP switches.
105 - Added attract music DIP switch.
106 - Added button-lamps layout.
107
108 Poker Carnival (crsbingo):
109
110 - Added change card, keyin, keyout, stats and settings inputs.
111 - Added coin/keyin/keyout/payout counters.
112 - Limited the bet and coin pulses to avoid repeats and coin jams.
113 - Added complete coinage and keyin DIP switches.
114 - Added double-up rate DIP switches.
115 - Added minimum bet DIP switches.
116 - Added maximum bet DIP switches.
117 - Added cards graphics DIP switches.
118 - Added double-up type DIP switches.
119 - Added button-lamps layout.
120
121 Super Rider, Super Moto:
122
123 - Added stats and settings inputs.
124 - Added coin counters.
125 - Added main game and double-up rates DIP switches.
126 - Added double-up and control type DIP switches.
127 - Added coinage and demo sounds DIP switches.
128 - Added button-lamps layout.
129
130 Shark Party:
131
132 - Added stats and settings inputs.
133 - Added coin counters.
134 - Added main game and double-up rates DIP switches.
135 - Added double-up, coinage and demo sounds DIP switches.
136 - Added button-lamps layout.
137
138
139 2010-02-03
140 ----------
141
142 Treasure Island:
143
144 - Added proper inputs.
145 - Added coin/keyin/keyout/payout counters.
146 - Limited the bet and coin pulses to avoid repeats and coin jams.
147 - Added complete coinage and keyin DIP switches.
148 - Added main game and double-up rates DIP switches.
149 - Added minimum bet DIP switches.
150 - Added maximum bet DIP switches.
151 - Added main game and double-up limit DIP switches.
152 - Added payout mode and auto take DIP switches.
153 - Added DIP locations as seen in the settings mode.
154 - Added demo sounds DIP switch.
155 - Created proper button-lamps layout.
156 - Added technical notes.
157 - Some clean-ups...
158
159
160 2010-04-20
161 ----------
162
163 Shark Party (English, Alpha license):
164
165 - Created complete inputs from the scratch.
166 - Added coin/keyin/keyout counters.
167 - Added main game and double-up rates DIP switches.
168 - Added minimum bet DIP switches.
169 - Added maximum bet DIP switches.
170 - Added complete coinage and remote credits DIP switches.
171 - Added jokers and demo sounds DIP switches.
172 - Figured out and documented all the game outputs.
173 - Created proper button-lamps layout.
174
175 Now the game is in full-working state.
176
177
178 2010-04-22
179 ----------
180
181 Treasure Bonus (Subsino)
182
183 - Reworked and cleaned-up the inputs.
184 Most buttons have more than one single function.
185 - Added DIP locations.
186 - Figured out the following DIP Switches:
187 Complete Coinage (1/2/5/10/20/25/50/100).
188 Remote Credits (1/2/5/10/20/25/50/100).
189 Minimum Bet (1/8/16/32).
190 Max Bet (16/32/64/80).
191 Demo Sounds (Off/On).
192 Game Limit (10000/20000/30000/60000).
193 Double-Up (No/Yes).
194 Win Rate (84/86/88/90/92/94/96%).
195 Double-Up Level (0/1/2/3/4/5/6/7).
196 Double-Up Game (Dancers / Panties Colors / Cards / Seven-Bingo).
197
198 - Fixed inverted functions and buggy inputs.
199 - Added lamps support.
200 - Created button-lamps layout.
201 - Remapped inputs to reflect the controls layout. This way is more
202 user-friendly since controls are straight with button-lamps.
203 - Added coin/keyin/keyout/payout counters.
204 - Removed the pulse limitation in the BET input. This allow it to work
205 as BET and STOP2 properly.
206 - Added technical notes.
207
208
209 2010-10-12
210 ----------
211
212 - Added Victor 6 (3 sets).
213 - Created proper inputs for all sets.
214
215
216 2019-07-31
217 ----------
218
219 - Added Victor 5 (otiginal set, now parent).
220 - Dumped the samples ROMs of Victor 5 and Victor 21, and hooked the OKI6295.
221
222
223 ***************************************************************************/
224
225 #include "emu.h"
226 #include "cpu/z180/hd647180x.h"
227 #include "machine/i8255.h"
228 #include "machine/nvram.h"
229 #include "machine/subsino.h"
230 #include "machine/ticket.h"
231 #include "sound/okim6295.h"
232 #include "sound/ym2413.h"
233 #include "sound/3812intf.h"
234 #include "video/ramdac.h"
235 #include "emupal.h"
236 #include "screen.h"
237 #include "speaker.h"
238 #include "tilemap.h"
239
240 #include "victor5.lh"
241 #include "victor21.lh"
242 #include "crsbingo.lh"
243 #include "sharkpy.lh"
244 #include "sharkpye.lh"
245 #include "smoto.lh"
246 #include "tisub.lh"
247 #include "stisub.lh"
248
249 class subsino_state : public driver_device
250 {
251 public:
subsino_state(const machine_config & mconfig,device_type type,const char * tag)252 subsino_state(const machine_config &mconfig, device_type type, const char *tag) :
253 driver_device(mconfig, type, tag),
254 m_colorram(*this, "colorram"),
255 m_videoram(*this, "videoram"),
256 m_reel_scroll(*this, "reel_scroll.%u", 0U),
257 m_reel_ram(*this, "reel_ram.%u", 0U),
258 m_stbsub_out_c(*this, "stbsub_out_c"),
259 m_maincpu(*this, "maincpu"),
260 m_gfxdecode(*this, "gfxdecode"),
261 m_palette(*this, "palette"),
262 m_hopper(*this, "hopper"),
263 m_lamps(*this, "lamp%u", 0U) {
264 }
265
266 void mtrainnv(machine_config &config);
267 void stbsub(machine_config &config);
268 void tisub(machine_config &config);
269 void crsbingo(machine_config &config);
270 void srider(machine_config &config);
271 void victor21(machine_config &config);
272 void sharkpy(machine_config &config);
273 void victor5(machine_config &config);
274
275 void init_stbsub();
276 void init_stisub();
277 void init_tesorone();
278 void init_tesorone230();
279 void init_smoto20();
280 void init_sharkpy();
281 void init_smoto16();
282 void init_crsbingo();
283 void init_victor21();
284 void init_victor5();
285 void init_tisuba();
286 void init_sharkpye();
287 void init_tisub();
288 void init_mtrainnv();
289
290 protected:
291 virtual void machine_start() override;
292
293 private:
294 required_shared_ptr<uint8_t> m_colorram;
295 required_shared_ptr<uint8_t> m_videoram;
296 optional_shared_ptr_array<uint8_t, 3> m_reel_scroll;
297 optional_shared_ptr_array<uint8_t, 3> m_reel_ram;
298 optional_shared_ptr<uint8_t> m_stbsub_out_c;
299 required_device<cpu_device> m_maincpu;
300 required_device<gfxdecode_device> m_gfxdecode;
301 required_device<palette_device> m_palette;
302 required_device<ticket_dispenser_device> m_hopper;
303 output_finder<16> m_lamps;
304
305 tilemap_t *m_tmap;
306 tilemap_t *m_reel_tilemap[3];
307 int m_tiles_offset;
308 uint8_t m_out_c;
309 std::unique_ptr<uint8_t[]> m_reel_attr[3];
310 uint8_t m_flash_val;
311 uint8_t m_flash_packet;
312 uint8_t m_flash_packet_start;
313
314 void tiles_offset_w(offs_t offset, uint8_t data);
315 void videoram_w(offs_t offset, uint8_t data);
316 void colorram_w(offs_t offset, uint8_t data);
317 template<uint8_t Reel> void reel_ram_w(offs_t offset, uint8_t data);
318 void out_a_w(uint8_t data);
319 void out_b_w(uint8_t data);
320 uint8_t flash_r();
321 void flash_w(uint8_t data);
322 uint8_t hwcheck_r();
323 void out_c_w(uint8_t data);
324 void reel_scrollattr_w(offs_t offset, uint8_t data);
325 uint8_t reel_scrollattr_r(offs_t offset);
326
327 TILE_GET_INFO_MEMBER(get_tile_info);
328 TILE_GET_INFO_MEMBER(get_stbsub_tile_info);
329 template<uint8_t Reel> TILE_GET_INFO_MEMBER(get_reel_tile_info);
330 template<uint8_t Reel> TILE_GET_INFO_MEMBER(get_stbsub_reel_tile_info);
331 DECLARE_VIDEO_START(subsino);
332 void _2proms_palette(palette_device &palette) const;
333 void _3proms_palette(palette_device &palette) const;
334 DECLARE_VIDEO_START(reels);
335 DECLARE_VIDEO_START(stbsub);
336 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
337 uint32_t screen_update_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
338 uint32_t screen_update_stbsub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
339
340 void crsbingo_map(address_map &map);
341 void mtrainnv_map(address_map &map);
342 void ramdac_map(address_map &map);
343 void sharkpy_map(address_map &map);
344 void srider_map(address_map &map);
345 void stbsub_map(address_map &map);
346 void subsino_iomap(address_map &map);
347 void tisub_map(address_map &map);
348 void victor21_map(address_map &map);
349 void victor5_map(address_map &map);
350 };
351
machine_start()352 void subsino_state::machine_start()
353 {
354 m_lamps.resolve();
355
356 save_item(NAME(m_tiles_offset));
357 save_item(NAME(m_out_c));
358 }
359
360 /***************************************************************************
361 * Video Hardware *
362 ***************************************************************************/
363
364
tiles_offset_w(offs_t offset,uint8_t data)365 void subsino_state::tiles_offset_w(offs_t offset, uint8_t data)
366 {
367 m_tiles_offset = (data & 1) ? 0x1000: 0;
368 m_tmap->mark_tile_dirty(offset);
369 // popmessage("gfx %02x",data);
370 }
371
videoram_w(offs_t offset,uint8_t data)372 void subsino_state::videoram_w(offs_t offset, uint8_t data)
373 {
374 m_videoram[offset] = data;
375 m_tmap->mark_tile_dirty(offset);
376 }
377
colorram_w(offs_t offset,uint8_t data)378 void subsino_state::colorram_w(offs_t offset, uint8_t data)
379 {
380 m_colorram[offset] = data;
381 m_tmap->mark_tile_dirty(offset);
382 }
383
TILE_GET_INFO_MEMBER(subsino_state::get_tile_info)384 TILE_GET_INFO_MEMBER(subsino_state::get_tile_info)
385 {
386 uint16_t code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8);
387 uint16_t color = (code >> 8) & 0x0f;
388 code = ((code & 0xf000) >> 4) + ((code & 0xff) >> 0);
389 code += m_tiles_offset;
390 tileinfo.set(0, code, color, 0);
391 }
392
TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_tile_info)393 TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_tile_info)
394 {
395 uint16_t code = m_videoram[ tile_index ] + (m_colorram[ tile_index ] << 8);
396 code&= 0x3fff;
397 tileinfo.set(0, code, 0, 0);
398 }
399
400
VIDEO_START_MEMBER(subsino_state,subsino)401 VIDEO_START_MEMBER(subsino_state,subsino)
402 {
403 m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 0x40,0x20);
404 m_tmap->set_transparent_pen(0 );
405 m_tiles_offset = 0;
406 }
407
408
409 template<uint8_t Reel>
reel_ram_w(offs_t offset,uint8_t data)410 void subsino_state::reel_ram_w(offs_t offset, uint8_t data)
411 {
412 m_reel_ram[Reel][offset] = data;
413 m_reel_tilemap[Reel]->mark_tile_dirty(offset);
414 }
415
416 template<uint8_t Reel>
TILE_GET_INFO_MEMBER(subsino_state::get_reel_tile_info)417 TILE_GET_INFO_MEMBER(subsino_state::get_reel_tile_info)
418 {
419 int code = m_reel_ram[Reel][tile_index];
420 int colour = (m_out_c&0x7) + 8;
421
422 tileinfo.set(1,
423 code,
424 colour,
425 0);
426 }
427
428 template<uint8_t Reel>
TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_reel_tile_info)429 TILE_GET_INFO_MEMBER(subsino_state::get_stbsub_reel_tile_info)
430 {
431 int code = m_reel_ram[Reel][tile_index];
432 int attr = m_reel_attr[Reel][tile_index];
433
434 tileinfo.set(1,
435 code | (attr << 8),
436 0,
437 0);
438 }
439
440
VIDEO_START_MEMBER(subsino_state,reels)441 VIDEO_START_MEMBER(subsino_state, reels)
442 {
443 VIDEO_START_CALL_MEMBER( subsino );
444
445 m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
446 m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
447 m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
448
449 m_reel_tilemap[0]->set_scroll_cols(64);
450 m_reel_tilemap[1]->set_scroll_cols(64);
451 m_reel_tilemap[2]->set_scroll_cols(64);
452
453 }
454
VIDEO_START_MEMBER(subsino_state,stbsub)455 VIDEO_START_MEMBER(subsino_state,stbsub)
456 {
457 m_tmap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
458 m_tmap->set_transparent_pen(0 );
459
460 m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
461 m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
462 m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(subsino_state::get_stbsub_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
463
464 m_reel_tilemap[0]->set_scroll_cols(64);
465 m_reel_tilemap[1]->set_scroll_cols(64);
466 m_reel_tilemap[2]->set_scroll_cols(64);
467
468 m_out_c = 0x08;
469 }
470
471
screen_update(screen_device & screen,bitmap_ind16 & bitmap,const rectangle & cliprect)472 uint32_t subsino_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
473 {
474 bitmap.fill(0, cliprect);
475 m_tmap->draw(screen, bitmap, cliprect, 0, 0);
476 return 0;
477 }
478
screen_update_reels(screen_device & screen,bitmap_ind16 & bitmap,const rectangle & cliprect)479 uint32_t subsino_state::screen_update_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
480 {
481 bitmap.fill(0, cliprect);
482
483 for (uint8_t reel = 0; reel < 3; reel++)
484 {
485 for (int i = 0; i < 64; i++)
486 {
487 m_reel_tilemap[reel]->set_scrolly(i, m_reel_scroll[reel][i]);
488 }
489 }
490
491 if (m_out_c&0x08)
492 {
493 // are these hardcoded, or registers?
494 const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1);
495 const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
496 const rectangle visible3(0*8, (14+48)*8-1, 18*8, (18+7)*8-1);
497
498 m_reel_tilemap[0]->draw(screen, bitmap, visible1, 0, 0);
499 m_reel_tilemap[1]->draw(screen, bitmap, visible2, 0, 0);
500 m_reel_tilemap[2]->draw(screen, bitmap, visible3, 0, 0);
501 }
502
503 m_tmap->draw(screen, bitmap, cliprect, 0, 0);
504 return 0;
505 }
506
507
screen_update_stbsub_reels(screen_device & screen,bitmap_ind16 & bitmap,const rectangle & cliprect)508 uint32_t subsino_state::screen_update_stbsub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
509 {
510 bitmap.fill(0, cliprect);
511
512 if (m_reel_attr[0])
513 {
514 for (uint8_t reel = 0; reel < 3; reel++)
515 m_reel_tilemap[reel]->mark_all_dirty();
516 }
517
518 for (uint8_t reel = 0; reel < 3; reel++)
519 {
520 for (int i = 0; i < 64; i++)
521 {
522 m_reel_tilemap[reel]->set_scrolly(i, m_reel_scroll[reel][i]);
523 }
524 }
525
526 if (m_out_c & 0x08)
527 {
528 // areas based on d-up game in attract mode
529 const rectangle visible1(0, 511, 0, 87);
530 const rectangle visible2(0, 511, 88, 143);
531 const rectangle visible3(0, 511, 144, 223);
532
533 m_reel_tilemap[0]->draw(screen, bitmap, visible1, 0, 0);
534 m_reel_tilemap[1]->draw(screen, bitmap, visible2, 0, 0);
535 m_reel_tilemap[2]->draw(screen, bitmap, visible3, 0, 0);
536 }
537
538 m_tmap->draw(screen, bitmap, cliprect, 0, 0);
539 return 0;
540 }
541
542
_2proms_palette(palette_device & palette) const543 void subsino_state::_2proms_palette(palette_device &palette) const
544 {
545 uint8_t const *const color_prom = memregion("proms")->base();
546 for (int i = 0; i < 256; i++)
547 {
548 int bit0, bit1, bit2;
549 int const val = color_prom[i | 0x100] | (color_prom[i | 0x000] << 4);
550
551 bit0 = 0;
552 bit1 = BIT(val, 6);
553 bit2 = BIT(val, 7);
554 int const b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
555
556 bit0 = BIT(val, 3);
557 bit1 = BIT(val, 4);
558 bit2 = BIT(val, 5);
559 int const g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
560
561 bit0 = BIT(val, 0);
562 bit1 = BIT(val, 1);
563 bit2 = BIT(val, 2);
564 int const r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
565
566 palette.set_pen_color(i, rgb_t(r, g, b));
567 }
568 }
569
_3proms_palette(palette_device & palette) const570 void subsino_state::_3proms_palette(palette_device &palette) const
571 {
572 uint8_t const *const color_prom = memregion("proms")->base();
573 for (int i = 0; i < 256; i++)
574 {
575 int bit0, bit1, bit2;
576 int const val = color_prom[i | 0x000] | (color_prom[i | 0x100] << 3) | (color_prom[i | 0x200] << 6);
577
578 bit0 = 0;
579 bit1 = BIT(val, 7);
580 bit2 = BIT(val, 6);
581 int const b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
582
583 bit0 = BIT(val, 5);
584 bit1 = BIT(val, 4);
585 bit2 = BIT(val, 3);
586 int const g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
587
588 bit0 = BIT(val, 2);
589 bit1 = BIT(val, 1);
590 bit2 = BIT(val, 0);
591 int const r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
592
593 palette.set_pen_color(i, rgb_t(r, g, b));
594 }
595 }
596
597
598 /***************************************************************************
599 * Lamps & other outputs. *
600 ***************************************************************************/
601
out_a_w(uint8_t data)602 void subsino_state::out_a_w(uint8_t data)
603 {
604 /***** COIN PULSE: *****
605
606
607 * Victor 5, Victor 21, Poker Carnival (crsbingo),
608 Shark Party (English, Alpha license), Treasure Bonus (Subsino).
609
610 7654 3210
611 ---- ---x Coin pulse.
612 ---- --x- Key In pulse.
613 ---x ---- Key Out pulse.
614 --x- ---- Payout pulse.
615
616
617 * Treasure Island.
618
619 7654 3210
620 ---- ---x Key In pulse.
621 ---- --x- Coin pulse.
622 ---x ---- Key Out pulse.
623 --x- ---- Payout pulse.
624
625
626 * Super Rider, Super Moto, Shark Party.
627
628 7654 3210
629 ---- --x- Coin pulse.
630
631 */
632
633 for (int i = 0; i < 8; i++) // Lamps 8 - 15
634 m_lamps[i + 8] = BIT(data, i);
635
636 machine().bookkeeping().coin_counter_w(0, data & 0x01 ); /* coin / keyin */
637 machine().bookkeeping().coin_counter_w(1, data & 0x02 ); /* keyin / coin */
638 machine().bookkeeping().coin_counter_w(2, data & 0x10 ); /* keyout */
639 machine().bookkeeping().coin_counter_w(3, data & 0x20 ); /* payout */
640
641 m_hopper->motor_w(BIT(data, 5)); // hopper motor
642
643 // popmessage("Out A %02x",data);
644 }
645
out_b_w(uint8_t data)646 void subsino_state::out_b_w(uint8_t data)
647 {
648 /***** LAMPS: *****
649
650 * Victor 5.
651
652 7654 3210
653 ---- ---x HOLD2.
654 ---- --x- BET.
655 ---- -x-- ???.
656 ---- x--- START / TAKE.
657 ---x ---- HOLD1.
658 --x- ---- HOLD5 / SMALL.
659 -x-- ---- HOLD3 / HALF TAKE.
660 x--- ---- HOLD4 / BIG.
661
662
663 * Victor 21.
664
665 7654 3210
666 ---- ---x DOUBLE (or SPLIT?).
667 ---- --x- BET.
668 ---- -x-- SPLIT (or DOUBLE?).
669 ---- x--- STAND.
670 ---x ---- ???.
671 --x- ---- DEAL / HIT.
672 -x-- ---- ???.
673 x--- ---- GAME OVER?.
674
675
676 * Treasure Island.
677
678 7654 3210
679 ---- ---x HOLD1.
680 ---- --x- HOLD2 / BIG.
681 ---- -x-- ???.
682 ---- x--- BET.
683 ---x ---- DOUBLE / INFO.
684 --x- ---- START / TAKE.
685 -x-- ---- HOLD3 / SMALL.
686 x--- ---- ???.
687
688
689 * Poker Carnival (crsbingo).
690
691 7654 3210
692 ---- ---x HOLD2 / DOUBLE.
693 ---- --x- BET.
694 ---- -x-- ???.
695 ---- x--- START / TAKE.
696 ---x ---- HOLD1.
697 --x- ---- HOLD5 / SMALL.
698 -x-- ---- HOLD3 / CHANGE.
699 x--- ---- HOLD4 / BIG.
700
701
702 * Super Rider, Super Moto.
703
704 7654 3210
705 ---- ---x HOLD1 / SELECT.
706 ---- --x- HOLD2.
707 ---- -x-- ???.
708 ---- x--- BET.
709 ---x ---- HOLD3.
710 --x- ---- START / TAKE.
711 -x-- ---- HOLD4.
712 x--- ---- HOLD5. Also TEST button (bookkeeping) lamp is routed here.
713
714
715 * Shark Party.
716
717 7654 3210
718 ---- ---x HOLD3.
719 ---- --x- HOLD4 / BIG.
720 ---- -x-- ???.
721 ---- x--- BET.
722 ---x ---- HOLD1 / DOUBLE.
723 --x- ---- START / TAKE.
724 -x-- ---- HOLD2.
725 x--- ---- HOLD5 / SMALL.
726
727
728 * Shark Party (English, Alpha license).
729
730 7654 3210
731 ---- ---x ???.
732 ---- --x- HOLD3 / D-UP.
733 ---- -x-- START.
734 ---- x--- HOLD1 / BET.
735 ---x ---- ???.
736 --x- ---- HOLD2 / TAKE.
737 -x-- ---- ???.
738 x--- ---- HOLD4 & HOLD5.
739
740
741 * Treasure Bonus (Subsino).
742
743 7654 3210
744 ---- ---x SMALL / RED / STOP3.
745 ---- --x- D-UP / INFO.
746 ---- -x-- START / STOP ALL.
747 ---- x--- BET / STOP2.
748 ---x ---- ???.
749 --x- ---- TAKE / STOP1.
750 -x-- ---- ???.
751 x--- ---- BIG / BLACK.
752
753
754 After seeing the button/lamps functions, I think that controls layout should be
755 arranged the following way:
756
757 ________ ________ ________ ________ ________ __________
758 | | | | | | | | | | | |
759 | D-UP | | TAKE | | BET | | SMALL | | BIG | | START |
760 | INFO | | STOP 1 | | STOP 2 | | STOP 3 | | | | STOP ALL |
761 |________| |________| |________| |________| |________| |__________|
762
763 Key 'Z' Key 'X' Key 'C' Key 'V' Key 'B' Key 'N'
764
765 Mapped to the above keys to be more user-friendly.
766
767 */
768
769 // Lamps 0 - 7
770 for (int i = 0; i < 8; i++)
771 m_lamps[i] = BIT(data, i);
772
773 // popmessage("Out B %02x",data);
774 }
775
776
777 /***************************************************************************
778 * Memory Maps *
779 ***************************************************************************/
780
srider_map(address_map & map)781 void subsino_state::srider_map(address_map &map)
782 {
783 map(0x00000, 0x0bfff).rom();
784 map(0x0c000, 0x0cfff).ram();
785 map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
786 map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
787 map(0x0d009, 0x0d009).w(FUNC(subsino_state::out_b_w));
788 map(0x0d00a, 0x0d00a).w(FUNC(subsino_state::out_a_w));
789 map(0x0d00c, 0x0d00c).portr("INC");
790 map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
791 map(0x0d018, 0x0d018).w("oki", FUNC(okim6295_device::write));
792 map(0x0d01b, 0x0d01b).w(FUNC(subsino_state::tiles_offset_w));
793 map(0x0e000, 0x0e7ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
794 map(0x0e800, 0x0efff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
795 }
796
sharkpy_map(address_map & map)797 void subsino_state::sharkpy_map(address_map &map)
798 {
799 map(0x00000, 0x13fff).rom(); //overlap unmapped regions
800 map(0x09800, 0x09fff).ram();
801 map(0x09000, 0x09002).r("ppi1", FUNC(i8255_device::read));
802 map(0x09004, 0x09006).r("ppi2", FUNC(i8255_device::read));
803 map(0x09009, 0x09009).w(FUNC(subsino_state::out_b_w));
804 map(0x0900a, 0x0900a).w(FUNC(subsino_state::out_a_w));
805 map(0x0900c, 0x0900c).portr("INC");
806 map(0x09016, 0x09017).w("ymsnd", FUNC(ym3812_device::write));
807 map(0x09018, 0x09018).w("oki", FUNC(okim6295_device::write));
808 map(0x0901b, 0x0901b).w(FUNC(subsino_state::tiles_offset_w));
809 map(0x07800, 0x07fff).ram();
810 map(0x08000, 0x087ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
811 map(0x08800, 0x08fff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
812 }
813
814 /*
815 Victor 21 protection is absolutely trivial. At every number of presetted hands, there's an animation
816 that announces to the player that the card deck changes. If the protection check fails (at start-up),
817 this event makes the game to reset without any money in the bank.
818 */
819
victor21_map(address_map & map)820 void subsino_state::victor21_map(address_map &map)
821 {
822 map(0x00000, 0x08fff).rom(); //overlap unmapped regions
823 map(0x09800, 0x09fff).ram();
824 map(0x09000, 0x09003).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
825 map(0x09004, 0x09004).portr("INA");
826 map(0x09005, 0x09005).portr("INB");
827 map(0x09006, 0x09006).portr("SW1");
828 map(0x09007, 0x09007).portr("SW2");
829 map(0x09008, 0x09008).portr("SW3");
830 map(0x0900b, 0x0900b).ram(); //protection
831 map(0x0900c, 0x0900c).w("oki", FUNC(okim6295_device::write));
832 map(0x0900e, 0x0900f).w("ymsnd", FUNC(ym2413_device::write));
833 map(0x0900d, 0x0900d).w(FUNC(subsino_state::tiles_offset_w));
834 map(0x07800, 0x07fff).ram();
835 map(0x08000, 0x087ff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
836 map(0x08800, 0x08fff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
837 map(0x10000, 0x13fff).rom();
838 }
839
840
841 /*
842 Victor 5 has a protection device that calculates the combinations of the screen.
843 0x00 = you lose
844 0x01 = royal flush
845 0x02 = 5 of a kind
846 ...
847 0x0a = jacks of better
848
849 0xd9 is asked at the POST, game refuses to run otherwise.
850
851 The fun thing is that the main CPU actually calculates the combinations then it routes to this port
852 thru packet writes, 0xd* starts the packet, 0xe* ends the packet.
853 I'm fairly sure that this thing can do a lot more, the POST check makes me think that 0xd9 is actually a result of a RNG.
854 For now we'll emulate the bare minimum to let this game to work, obviously we need tests/tracing on the real board to understand
855 what it is exactly and what it can possibly do.
856 */
857
858
flash_r()859 uint8_t subsino_state::flash_r()
860 {
861 // printf("R %02x\n",m_flash_val);
862
863 if(m_flash_val == 0xff)
864 return 0xd9;
865 else if(m_flash_val <= 0xa)
866 return m_flash_val;
867 else if(m_flash_val == 0x92)
868 return 0xeb; //protected GFXs in Cross Bingo
869 else
870 return 0xd9;
871 }
872
flash_w(uint8_t data)873 void subsino_state::flash_w(uint8_t data)
874 {
875 switch(m_flash_packet_start)
876 {
877 case 0:
878 m_flash_packet = data;
879 if((m_flash_packet & 0xf8) == 0xd0)
880 m_flash_packet_start = 1; //start of packet
881 break;
882 case 1:
883 m_flash_packet = data;
884 if((m_flash_packet & 0xf8) == 0xe0)
885 m_flash_packet_start = 0; //end of packet
886 else
887 m_flash_val = data;
888 break;
889 }
890 }
891
victor5_map(address_map & map)892 void subsino_state::victor5_map(address_map &map)
893 {
894 victor21_map(map);
895 map(0x0900a, 0x0900a).rw(FUNC(subsino_state::flash_r), FUNC(subsino_state::flash_w));
896 map(0x0900b, 0x0900b).nopr(); //"flash" status, bit 0
897 map(0x0900c, 0x0900c).w("oki", FUNC(okim6295_device::write));
898 }
899
900
hwcheck_r()901 uint8_t subsino_state::hwcheck_r()
902 {
903 /* Wants this at POST otherwise an "Hardware Error" occurs. */
904 return 0x55;
905 }
906
crsbingo_map(address_map & map)907 void subsino_state::crsbingo_map(address_map &map)
908 {
909 map(0x00000, 0x8fff).rom(); //overlap unmapped regions
910
911 map(0x09800, 0x09fff).ram();
912
913 map(0x09000, 0x09000).portr("SW1");
914 map(0x09001, 0x09001).portr("SW2");
915 map(0x09002, 0x09002).portr("INA");
916 map(0x09003, 0x09003).portr("INB");
917 map(0x09004, 0x09004).portr("INC");
918 map(0x09005, 0x09005).w(FUNC(subsino_state::out_a_w));
919
920 map(0x09008, 0x09008).portr("SW4");
921 map(0x09009, 0x09009).portr("SW3"); // .w(FUNC(subsino_state::out_a_w));
922 map(0x0900a, 0x0900a).rw(FUNC(subsino_state::hwcheck_r), FUNC(subsino_state::out_b_w));
923
924 map(0x09010, 0x09010).rw(FUNC(subsino_state::flash_r), FUNC(subsino_state::flash_w));
925 // map(0x09011, 0x09011) //"flash" status, bit 0
926 // map(0x0900c, 0x0900c).portr("INC");
927 map(0x0900c, 0x0900d).w("ymsnd", FUNC(ym2413_device::write));
928
929 // map(0x09018, 0x09018).w("oki", FUNC(okim6295_device::write));
930
931 // map(0x0900d, 0x0900d).w(FUNC(subsino_state::tiles_offset_w));
932
933 map(0x07800, 0x07fff).ram();
934 map(0x08000, 0x087ff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
935 map(0x08800, 0x08fff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
936
937 map(0x10000, 0x13fff).rom(); //overlap unmapped regions
938
939 }
940
out_c_w(uint8_t data)941 void subsino_state::out_c_w(uint8_t data)
942 {
943 // not 100% sure on this
944
945 // ???? eccc
946 // e = enable reels?
947 // c = reel colour bank?
948 m_out_c = data;
949
950 for (uint8_t reel = 0; reel < 3; reel++)
951 m_reel_tilemap[reel]->mark_all_dirty();
952 // popmessage("data %02x\n",data);
953 }
954
tisub_map(address_map & map)955 void subsino_state::tisub_map(address_map &map)
956 {
957 map(0x00000, 0x0bfff).rom(); // overlap unmapped regions
958 map(0x09800, 0x09fff).ram();
959
960 map(0x09000, 0x09002).r("ppi1", FUNC(i8255_device::read));
961 map(0x09004, 0x09006).r("ppi2", FUNC(i8255_device::read));
962
963 /* 0x09008: is marked as OUTPUT C in the test mode. */
964 map(0x09008, 0x09008).w(FUNC(subsino_state::out_c_w));
965 map(0x09009, 0x09009).w(FUNC(subsino_state::out_b_w));
966 map(0x0900a, 0x0900a).w(FUNC(subsino_state::out_a_w));
967
968 map(0x0900c, 0x0900c).portr("INC");
969
970 map(0x09016, 0x09017).w("ymsnd", FUNC(ym3812_device::write));
971
972 // map(0x0900c, 0x0900c).w("oki", FUNC(okim6295_device::write));
973
974 map(0x0901b, 0x0901b).w(FUNC(subsino_state::tiles_offset_w));
975
976 map(0x07800, 0x07fff).ram();
977 map(0x08800, 0x08fff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
978 map(0x08000, 0x087ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
979
980 map(0x10000, 0x13fff).rom();
981 map(0x14000, 0x14fff).rom(); // reads the card face data here (see rom copy in rom loading)
982
983 map(0x150c0, 0x150ff).ram().share("reel_scroll.2");
984 map(0x15140, 0x1517f).ram().share("reel_scroll.1");
985 map(0x15180, 0x151bf).ram().share("reel_scroll.0");
986
987 map(0x15800, 0x159ff).ram().w(FUNC(subsino_state::reel_ram_w<0>)).share("reel_ram.0");
988 map(0x15a00, 0x15bff).ram().w(FUNC(subsino_state::reel_ram_w<1>)).share("reel_ram.1");
989 map(0x15c00, 0x15dff).ram().w(FUNC(subsino_state::reel_ram_w<2>)).share("reel_ram.2");
990 }
991
ramdac_map(address_map & map)992 void subsino_state::ramdac_map(address_map &map)
993 {
994 map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w));
995 }
996
997 // this stuff is banked..
998 // not 100% sure on the bank bits.. other bits are also set
reel_scrollattr_w(offs_t offset,uint8_t data)999 void subsino_state::reel_scrollattr_w(offs_t offset, uint8_t data)
1000 {
1001 if (*m_stbsub_out_c & 0x20)
1002 {
1003 if (offset<0x200)
1004 {
1005 m_reel_attr[0][offset&0x1ff] = data;
1006 }
1007 else if (offset<0x400)
1008 {
1009 m_reel_attr[1][offset&0x1ff] = data;
1010 }
1011 else if (offset<0x600)
1012 {
1013 m_reel_attr[2][offset&0x1ff] = data;
1014 }
1015 else
1016 {
1017 // ??
1018 }
1019 }
1020 else
1021 {
1022 offset &=0xff;
1023
1024 if (offset<0x40)
1025 {
1026 // ??
1027 }
1028 else if (offset<0x80)
1029 {
1030 m_reel_scroll[1][offset&0x3f] = data;
1031 }
1032 else if (offset<0xc0)
1033 {
1034 m_reel_scroll[0][offset&0x3f] = data;
1035 }
1036 else
1037 {
1038 m_reel_scroll[2][offset&0x3f] = data;
1039 }
1040 }
1041 }
1042
reel_scrollattr_r(offs_t offset)1043 uint8_t subsino_state::reel_scrollattr_r(offs_t offset)
1044 {
1045 return m_reel_attr[0][offset];
1046 }
1047
stbsub_map(address_map & map)1048 void subsino_state::stbsub_map(address_map &map)
1049 {
1050 map(0x00000, 0x0bfff).rom();
1051
1052 map(0x0c000, 0x0cfff).ram().share("nvram");
1053
1054 map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
1055 map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
1056
1057 map(0x0d008, 0x0d008).ram().share("stbsub_out_c");
1058
1059 map(0x0d009, 0x0d009).w(FUNC(subsino_state::out_b_w));
1060 map(0x0d00a, 0x0d00a).w(FUNC(subsino_state::out_a_w));
1061
1062 map(0x0d00c, 0x0d00c).portr("INC");
1063
1064 map(0x0d010, 0x0d010).w("ramdac", FUNC(ramdac_device::index_w));
1065 map(0x0d011, 0x0d011).w("ramdac", FUNC(ramdac_device::pal_w));
1066 map(0x0d012, 0x0d012).w("ramdac", FUNC(ramdac_device::mask_w));
1067
1068 map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
1069
1070 // map(0x0d01b, 0x0d01b).w(FUNC(subsino_state::tiles_offset_w));
1071
1072 map(0x0e000, 0x0e7ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
1073 map(0x0e800, 0x0efff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
1074
1075 map(0xf000, 0xf7ff).rw(FUNC(subsino_state::reel_scrollattr_r), FUNC(subsino_state::reel_scrollattr_w));
1076
1077 map(0xf800, 0xf9ff).ram().w(FUNC(subsino_state::reel_ram_w<0>)).share("reel_ram.0");
1078 map(0xfa00, 0xfbff).ram().w(FUNC(subsino_state::reel_ram_w<1>)).share("reel_ram.1");
1079 map(0xfc00, 0xfdff).ram().w(FUNC(subsino_state::reel_ram_w<2>)).share("reel_ram.2");
1080 }
1081
1082
1083 /***************************************************************************
1084 Magic Train (Clear NVRAM ROM?)
1085 ***************************************************************************/
1086
mtrainnv_map(address_map & map)1087 void subsino_state::mtrainnv_map(address_map &map)
1088 {
1089 map(0x00000, 0x0bfff).rom();
1090
1091 map(0x0c000, 0x0cfff).ram().share("nvram");
1092
1093 map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
1094 map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
1095
1096 map(0x0d008, 0x0d008).ram().share("stbsub_out_c");
1097 // map(0x0d009, 0x0d009).w(FUNC(subsino_state::));
1098 // map(0x0d00a, 0x0d00a).w(FUNC(subsino_state::));
1099 // map(0x0d00b, 0x0d00b).w(FUNC(subsino_state::));
1100 map(0x0d00c, 0x0d00c).portr("INC");
1101
1102 map(0x0d010, 0x0d010).w("ramdac", FUNC(ramdac_device::index_w));
1103 map(0x0d011, 0x0d011).w("ramdac", FUNC(ramdac_device::pal_w));
1104 map(0x0d012, 0x0d012).w("ramdac", FUNC(ramdac_device::mask_w));
1105
1106 // map(0x0d012, 0x0d012).w(FUNC(subsino_state::));
1107
1108 map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
1109
1110 // map(0x0d018, 0x0d018).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
1111
1112 map(0x0e000, 0x0e7ff).ram().w(FUNC(subsino_state::colorram_w)).share("colorram");
1113 map(0x0e800, 0x0efff).ram().w(FUNC(subsino_state::videoram_w)).share("videoram");
1114
1115 map(0xf000, 0xf7ff).rw(FUNC(subsino_state::reel_scrollattr_r), FUNC(subsino_state::reel_scrollattr_w));
1116
1117 map(0xf800, 0xf9ff).ram().w(FUNC(subsino_state::reel_ram_w<0>)).share("reel_ram.0");
1118 map(0xfa00, 0xfbff).ram().w(FUNC(subsino_state::reel_ram_w<1>)).share("reel_ram.1");
1119 map(0xfc00, 0xfdff).ram().w(FUNC(subsino_state::reel_ram_w<2>)).share("reel_ram.2");
1120 }
1121
1122
subsino_iomap(address_map & map)1123 void subsino_state::subsino_iomap(address_map &map)
1124 {
1125 map(0x0000, 0x003f).ram(); // internal regs
1126 }
1127
1128
1129 /***************************************************************************
1130 * Input Ports *
1131 ***************************************************************************/
1132
1133 static INPUT_PORTS_START( victor21 )
1134
1135 PORT_START( "SW1" )
1136 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
1137 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
1138 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
1139 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1140 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
1141 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
1142 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
1143 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
1144 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
1145 PORT_DIPNAME( 0x08, 0x08, "Key In" )
1146 PORT_DIPSETTING( 0x08, "100 Points/Pulse" )
1147 PORT_DIPSETTING( 0x00, "200 Points/Pulse" )
1148 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1149 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1150 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1151 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1152 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1153 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1154 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1155 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1156 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1157 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1158 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1159 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1160
1161 PORT_START( "SW2" )
1162 PORT_DIPNAME( 0x03, 0x03, "Main Game Rate" )
1163 PORT_DIPSETTING( 0x00, "75%" )
1164 PORT_DIPSETTING( 0x01, "80%" )
1165 PORT_DIPSETTING( 0x03, "85%" )
1166 PORT_DIPSETTING( 0x02, "90%" )
1167 PORT_DIPNAME( 0x04, 0x04, "Max Rate" )
1168 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1169 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1170 PORT_DIPNAME( 0x18, 0x18, "Minimum Bet" )
1171 PORT_DIPSETTING( 0x10, "1" )
1172 PORT_DIPSETTING( 0x08, "5" )
1173 PORT_DIPSETTING( 0x18, "10" )
1174 PORT_DIPSETTING( 0x00, "20" )
1175 PORT_DIPNAME( 0x20, 0x20, "Attract Music" )
1176 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1177 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1178 PORT_DIPNAME( 0x40, 0x40, "SW2 - 40" )
1179 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1180 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1181 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1182 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1183 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1184
1185 PORT_START( "SW3" )
1186 PORT_DIPNAME( 0x01, 0x01, "SW3" )
1187 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1188 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1189 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1190 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1191 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1192 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1193 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1194 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1195 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1196 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1197 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1198 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1199 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1200 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1201 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1202 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1203 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1204 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1205 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1206 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1207 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1208 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1209 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1210
1211 PORT_START( "INA" )
1212 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1213 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_V) PORT_NAME("Split")
1214 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1215 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_CODE(KEYCODE_Z) PORT_NAME("Deal / Hit")
1216 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_IMPULSE(3)
1217 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) PORT_CODE(KEYCODE_X)
1218 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_A) PORT_NAME("Bet x10") // multibet
1219 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_C)
1220
1221 PORT_START( "INB" )
1222 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin 1
1223 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
1224 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(3) // coin 2
1225 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(3) // coin 3
1226 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") // Bookkeeping.
1227 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate.
1228 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // no payout?
1229 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out
1230
1231 PORT_START( "INC" )
1232 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1233 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1234 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1235 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1236 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1237 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1238 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1239 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1240 INPUT_PORTS_END
1241
1242
1243 static INPUT_PORTS_START( victor5 )
1244
1245 PORT_START( "SW1" )
1246 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
1247 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
1248 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
1249 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1250 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
1251 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
1252 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
1253 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
1254 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
1255 PORT_DIPNAME( 0x08, 0x08, "Key In" )
1256 PORT_DIPSETTING( 0x08, "100 Points/Pulse" )
1257 PORT_DIPSETTING( 0x00, "500 Points/Pulse" )
1258 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1259 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1260 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1261 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1262 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1263 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1264 PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
1265 PORT_DIPSETTING( 0x80, "20" )
1266 PORT_DIPSETTING( 0x40, "40" )
1267 PORT_DIPSETTING( 0xc0, "50" )
1268 PORT_DIPSETTING( 0x00, "80" )
1269
1270 PORT_START( "SW2" )
1271 PORT_DIPNAME( 0x03, 0x03, "Main Game Rate" )
1272 PORT_DIPSETTING( 0x00, "68%" )
1273 PORT_DIPSETTING( 0x01, "76%" )
1274 PORT_DIPSETTING( 0x03, "84%" )
1275 PORT_DIPSETTING( 0x02, "92%" )
1276 PORT_DIPNAME( 0x0c, 0x0c, "Double-Up Rate" )
1277 PORT_DIPSETTING( 0x00, "74%" )
1278 PORT_DIPSETTING( 0x04, "80%" )
1279 PORT_DIPSETTING( 0x0c, "86%" )
1280 PORT_DIPSETTING( 0x08, "92%" )
1281 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1282 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1283 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1284 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1285 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1286 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1287 PORT_DIPNAME( 0xc0, 0xc0, "Minimum Bet" )
1288 PORT_DIPSETTING( 0x80, "1" )
1289 PORT_DIPSETTING( 0x40, "5" )
1290 PORT_DIPSETTING( 0xc0, "10" )
1291 PORT_DIPSETTING( 0x00, "20" )
1292
1293 PORT_START( "SW3" )
1294 PORT_DIPNAME( 0x01, 0x01, "SW3" )
1295 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1296 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1297 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1298 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1299 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1300 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1301 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1302 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1303 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1304 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1305 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1306 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1307 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1308 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1309 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1310 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1311 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1312 PORT_DIPNAME( 0x40, 0x00, "Attract Music" )
1313 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1314 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1315 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1316 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1317 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1318
1319 PORT_START( "INA" )
1320 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
1321 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
1322 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Half Take")
1323 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Big")
1324 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Small")
1325 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Take")
1326 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_IMPULSE(3)
1327 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1328
1329 PORT_START( "INB" )
1330 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
1331 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
1332 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1333 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1334 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") // Bookkeeping.
1335 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
1336 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
1337 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out
1338
1339 PORT_START( "INC" )
1340 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1341 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1342 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1343 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1344 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1345 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1346 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1347 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1348 INPUT_PORTS_END
1349
1350
1351 static INPUT_PORTS_START( tisub )
1352
1353 PORT_START( "SW1" )
1354 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") // SW1-123
1355 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
1356 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
1357 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1358 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
1359 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
1360 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
1361 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
1362 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
1363 PORT_DIPNAME( 0x38, 0x38, "Key In" ) PORT_DIPLOCATION("SW1:4,5,6") // SW1-456
1364 PORT_DIPSETTING( 0x30, "4 Points/Pulse" )
1365 PORT_DIPSETTING( 0x28, "8 Points/Pulse" )
1366 PORT_DIPSETTING( 0x20, "20 Points/Pulse" )
1367 PORT_DIPSETTING( 0x38, "40 Points/Pulse" )
1368 PORT_DIPSETTING( 0x18, "80 Points/Pulse" )
1369 PORT_DIPSETTING( 0x10, "100 Points/Pulse" )
1370 PORT_DIPSETTING( 0x08, "200 Points/Pulse" )
1371 PORT_DIPSETTING( 0x00, "400 Points/Pulse" )
1372 PORT_DIPNAME( 0x40, 0x40, "Payout Mode" ) PORT_DIPLOCATION("SW1:7") // SW1-7
1373 PORT_DIPSETTING( 0x40, "Coin Value" )
1374 PORT_DIPSETTING( 0x00, "Key In Value" )
1375 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
1376 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1377 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1378
1379 PORT_START( "SW2" )
1380 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" ) PORT_DIPLOCATION("SW2:1,2") // SW2-12
1381 PORT_DIPSETTING( 0x03, "1" )
1382 PORT_DIPSETTING( 0x02, "8" )
1383 PORT_DIPSETTING( 0x01, "16" )
1384 PORT_DIPSETTING( 0x00, "32" )
1385 PORT_DIPNAME( 0x0c, 0x08, "Max Bet" ) PORT_DIPLOCATION("SW2:3,4") // SW2-34
1386 PORT_DIPSETTING( 0x0c, "2" )
1387 PORT_DIPSETTING( 0x00, "8" )
1388 PORT_DIPSETTING( 0x04, "16" )
1389 PORT_DIPSETTING( 0x08, "32" )
1390 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:5") // Not in test mode.
1391 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1392 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1393 PORT_DIPNAME( 0x20, 0x20, "Game Limit" ) PORT_DIPLOCATION("SW2:6") // SW2-6
1394 PORT_DIPSETTING( 0x20, "20000" )
1395 PORT_DIPSETTING( 0x00, "30000" )
1396 PORT_DIPNAME( 0x40, 0x40, "Auto Take" ) PORT_DIPLOCATION("SW2:7") // SW2-7
1397 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1398 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1399 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
1400 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1401 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1402
1403 PORT_START( "SW3" )
1404 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" ) PORT_DIPLOCATION("SW3:1,2,3") // SW3-123
1405 PORT_DIPSETTING( 0x00, "77%" )
1406 PORT_DIPSETTING( 0x01, "80%" )
1407 PORT_DIPSETTING( 0x02, "83%" )
1408 PORT_DIPSETTING( 0x03, "86%" )
1409 PORT_DIPSETTING( 0x04, "89%" )
1410 PORT_DIPSETTING( 0x07, "92%" )
1411 PORT_DIPSETTING( 0x05, "95%" )
1412 PORT_DIPSETTING( 0x06, "98%" )
1413 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4")
1414 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1415 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1416 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:5")
1417 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1418 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1419 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:6")
1420 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1421 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1422 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:7")
1423 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1424 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1425 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:8")
1426 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1427 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1428
1429 PORT_START( "SW4" )
1430 PORT_DIPNAME( 0x07, 0x07, "Double-Up Rate" ) PORT_DIPLOCATION("SW4:1,2,3") // SW4-123
1431 PORT_DIPSETTING( 0x00, "70%" )
1432 PORT_DIPSETTING( 0x01, "74%" )
1433 PORT_DIPSETTING( 0x02, "78%" )
1434 PORT_DIPSETTING( 0x03, "82%" )
1435 PORT_DIPSETTING( 0x04, "86%" )
1436 PORT_DIPSETTING( 0x07, "90%" )
1437 PORT_DIPSETTING( 0x05, "94%" )
1438 PORT_DIPSETTING( 0x06, "98%" )
1439 PORT_DIPNAME( 0x08, 0x08, "Double-Up Limit" ) PORT_DIPLOCATION("SW4:4") // SW4-4
1440 PORT_DIPSETTING( 0x08, "5000" )
1441 PORT_DIPSETTING( 0x00, "10000" )
1442 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:5")
1443 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1444 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1445 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:6")
1446 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1447 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1448 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:7")
1449 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1450 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1451 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:8")
1452 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1453 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1454
1455 PORT_START( "INA" )
1456 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_NAME("Double / Info")
1457 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop 1")
1458 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop 2 / Big")
1459 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop 3 / Small")
1460 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1461 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Take")
1462 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_IMPULSE(3)
1463 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1464
1465 PORT_START( "INB" )
1466 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
1467 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
1468 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1469 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1470 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
1471 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Current settings.
1472 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
1473 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out
1474
1475 PORT_START( "INC" )
1476 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1477 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1478 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1479 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1480 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1481 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1482 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1483 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1484 INPUT_PORTS_END
1485
1486
1487 static INPUT_PORTS_START( stbsub )
1488 PORT_START("SW1")
1489 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3")
1490 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
1491 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
1492 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1493 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
1494 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
1495 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
1496 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
1497 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
1498 PORT_DIPNAME( 0x38, 0x00, "Remote Credits" ) PORT_DIPLOCATION("SW1:4,5,6")
1499 PORT_DIPSETTING( 0x30, "1 Pulse / 1 Credits" )
1500 PORT_DIPSETTING( 0x28, "1 Pulse / 2 Credits" )
1501 PORT_DIPSETTING( 0x20, "1 Pulse / 5 Credits" )
1502 PORT_DIPSETTING( 0x38, "1 Pulse / 10 Credits" )
1503 PORT_DIPSETTING( 0x18, "1 Pulse / 20 Credits" )
1504 PORT_DIPSETTING( 0x10, "1 Pulse / 25 Credits" )
1505 PORT_DIPSETTING( 0x08, "1 Pulse / 50 Credits" )
1506 PORT_DIPSETTING( 0x00, "1 Pulse / 100 Credits" )
1507 PORT_DIPNAME( 0x40, 0x40, "Pay-out" ) PORT_DIPLOCATION("SW1:7")
1508 PORT_DIPSETTING( 0x40, "Coin" )
1509 PORT_DIPSETTING( 0x00, "Key" )
1510 PORT_DIPNAME( 0x80, 0x80, "Hold Function" ) PORT_DIPLOCATION("SW1:8")
1511 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
1512 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
1513
1514 PORT_START("SW2")
1515 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" ) PORT_DIPLOCATION("SW2:1,2")
1516 PORT_DIPSETTING( 0x02, "1" )
1517 PORT_DIPSETTING( 0x03, "8" )
1518 PORT_DIPSETTING( 0x01, "16" )
1519 PORT_DIPSETTING( 0x00, "32" )
1520 PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" ) PORT_DIPLOCATION("SW2:3,4")
1521 PORT_DIPSETTING( 0x04, "16" )
1522 PORT_DIPSETTING( 0x08, "32" )
1523 PORT_DIPSETTING( 0x0c, "64" )
1524 PORT_DIPSETTING( 0x00, "80" )
1525 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:5")
1526 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1527 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1528 PORT_DIPNAME( 0x60, 0x60, "Game Limit" ) PORT_DIPLOCATION("SW2:6,7")
1529 PORT_DIPSETTING( 0x40, "10000" )
1530 PORT_DIPSETTING( 0x60, "20000" )
1531 PORT_DIPSETTING( 0x20, "30000" )
1532 PORT_DIPSETTING( 0x00, "60000" )
1533 PORT_DIPNAME( 0x80, 0x80, "Double Up" ) PORT_DIPLOCATION("SW2:8")
1534 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
1535 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
1536
1537 PORT_START( "SW3" )
1538 PORT_DIPNAME( 0x07, 0x07, "Win Rate" ) PORT_DIPLOCATION("SW3:1,2,3")
1539 PORT_DIPSETTING( 0x00, "84%" )
1540 PORT_DIPSETTING( 0x01, "84%" ) // yes, again!
1541 PORT_DIPSETTING( 0x02, "86%" )
1542 PORT_DIPSETTING( 0x03, "88%" )
1543 PORT_DIPSETTING( 0x04, "90%" )
1544 PORT_DIPSETTING( 0x07, "92%" )
1545 PORT_DIPSETTING( 0x05, "94%" )
1546 PORT_DIPSETTING( 0x06, "96%" )
1547 PORT_DIPNAME( 0x08, 0x08, "Control Panel" ) PORT_DIPLOCATION("SW3:4")
1548 PORT_DIPSETTING( 0x08, "Type A (No Hold)" )
1549 PORT_DIPSETTING( 0x00, "Type B" )
1550 PORT_DIPNAME( 0x30, 0x30, "Max Bonus" ) PORT_DIPLOCATION("SW3:5,6")
1551 PORT_DIPSETTING( 0x30, "1000" )
1552 PORT_DIPSETTING( 0x20, "2000" )
1553 PORT_DIPSETTING( 0x10, "3000" )
1554 PORT_DIPSETTING( 0x00, "5000" )
1555 PORT_DIPNAME( 0x40, 0x40, "Gather Rate of Bonus" ) PORT_DIPLOCATION("SW3:7")
1556 PORT_DIPSETTING( 0x40, "1.0%" )
1557 PORT_DIPSETTING( 0x00, "0.5%" )
1558 PORT_DIPNAME( 0x80, 0x80, "Reel Speed" ) PORT_DIPLOCATION("SW3:8")
1559 PORT_DIPSETTING( 0x80, "Slow" )
1560 PORT_DIPSETTING( 0x00, "Fast" )
1561
1562 PORT_START( "SW4" )
1563 PORT_DIPNAME( 0x07, 0x07, "Double-Up Level" ) PORT_DIPLOCATION("SW4:1,2,3")
1564 PORT_DIPSETTING( 0x07, "7 (Easy)" )
1565 PORT_DIPSETTING( 0x06, "6" )
1566 PORT_DIPSETTING( 0x05, "5" )
1567 PORT_DIPSETTING( 0x04, "4" )
1568 PORT_DIPSETTING( 0x03, "3" )
1569 PORT_DIPSETTING( 0x02, "2" )
1570 PORT_DIPSETTING( 0x01, "1" )
1571 PORT_DIPSETTING( 0x00, "0 (Hard)" )
1572 PORT_DIPNAME( 0x08, 0x08, "Double-Up Limit" ) PORT_DIPLOCATION("SW4:4")
1573 PORT_DIPSETTING( 0x08, "5000" )
1574 PORT_DIPSETTING( 0x00, "10000" )
1575 PORT_DIPNAME( 0x10, 0x10, "Double-Up Game" ) PORT_DIPLOCATION("SW4:5")
1576 PORT_DIPSETTING( 0x10, "Dancers / Panties Colors" )
1577 PORT_DIPSETTING( 0x00, "Cards / Seven-Bingo" )
1578 PORT_DIPNAME( 0xe0, 0xe0, "Clear Ticket Unit" ) PORT_DIPLOCATION("SW4:6,7,8")
1579 PORT_DIPSETTING( 0x00, "500" )
1580 PORT_DIPSETTING( 0x20, "100" )
1581 PORT_DIPSETTING( 0x40, "50" )
1582 PORT_DIPSETTING( 0x60, "25" )
1583 PORT_DIPSETTING( 0x80, "20" )
1584 PORT_DIPSETTING( 0xa0, "10" )
1585 PORT_DIPSETTING( 0xc0, "5" )
1586 PORT_DIPSETTING( 0xe0, "1" )
1587
1588 PORT_START("INA")
1589 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1590 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1591 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1592 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Stop All")
1593 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Bet / Stop 2")
1594 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_Z) PORT_NAME("Double / Info")
1595 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1596 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1597
1598 PORT_START( "INB" )
1599 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
1600 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
1601 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1602 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1603 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
1604 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Current settings.
1605 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
1606 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out
1607
1608 PORT_START("INC")
1609 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Small / Black / Stop 3")
1610 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
1611 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1612 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_CODE(KEYCODE_B) PORT_NAME("Big / Red")
1613 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1614 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1615 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Take / Stop 1")
1616 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1617 INPUT_PORTS_END
1618
1619
1620 static INPUT_PORTS_START( tesorone )
1621 PORT_START("SW1")
1622 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1")
1623 PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) // 5
1624 PORT_DIPSETTING( 0x01, "1 Coin / 10 Credits" ) // 16
1625 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") // ?
1626 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1627 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1628 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") // ?
1629 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1630 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1631 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
1632 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1633 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1634 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
1635 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1636 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1637 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
1638 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1639 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1640 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") // ?
1641 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1642 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1643 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") // ?
1644 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1645 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1646
1647 PORT_START("SW2")
1648 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1") // ?
1649 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1650 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1651 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2") // ?
1652 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1653 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1654 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3") // ?
1655 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1656 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1657 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
1658 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1659 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1660 PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:5")
1661 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1662 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1663 PORT_DIPNAME( 0x60, 0x60, "Game Limit" ) PORT_DIPLOCATION("SW2:6,7")
1664 PORT_DIPSETTING( 0x40, "5000" )
1665 PORT_DIPSETTING( 0x60, "10000" )
1666 PORT_DIPSETTING( 0x20, "20000" )
1667 PORT_DIPSETTING( 0x00, "30000" )
1668 PORT_DIPNAME( 0x80, 0x80, "Double Up" ) PORT_DIPLOCATION("SW2:8")
1669 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
1670 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
1671
1672 PORT_START( "SW3" )
1673 PORT_DIPNAME( 0x07, 0x07, "Win Rate" ) PORT_DIPLOCATION("SW3:1,2,3")
1674 PORT_DIPSETTING( 0x00, "59%" )
1675 PORT_DIPSETTING( 0x01, "64%" )
1676 PORT_DIPSETTING( 0x02, "69%" )
1677 PORT_DIPSETTING( 0x03, "74%" )
1678 PORT_DIPSETTING( 0x04, "79%" )
1679 PORT_DIPSETTING( 0x07, "84%" )
1680 PORT_DIPSETTING( 0x05, "89%" )
1681 PORT_DIPSETTING( 0x06, "94%" )
1682 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4") // ?
1683 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1684 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1685 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:5")
1686 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1687 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1688 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:6")
1689 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1690 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1691 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:7")
1692 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1693 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1694 PORT_DIPNAME( 0x80, 0x80, "Reel Speed" ) PORT_DIPLOCATION("SW3:8")
1695 PORT_DIPSETTING( 0x80, "Slow" )
1696 PORT_DIPSETTING( 0x00, "Fast" )
1697
1698 PORT_START( "SW4" )
1699 PORT_DIPNAME( 0x07, 0x07, "Double-Up Level" ) PORT_DIPLOCATION("SW4:1,2,3")
1700 PORT_DIPSETTING( 0x07, "7 (Easy)" )
1701 PORT_DIPSETTING( 0x06, "6" )
1702 PORT_DIPSETTING( 0x05, "5" )
1703 PORT_DIPSETTING( 0x04, "4" )
1704 PORT_DIPSETTING( 0x03, "3" )
1705 PORT_DIPSETTING( 0x02, "2" )
1706 PORT_DIPSETTING( 0x01, "1" )
1707 PORT_DIPSETTING( 0x00, "0 (Hard)" )
1708 PORT_DIPNAME( 0x08, 0x08, "Double-Up Limit" ) PORT_DIPLOCATION("SW4:4")
1709 PORT_DIPSETTING( 0x08, "5000" )
1710 PORT_DIPSETTING( 0x00, "10000" )
1711 PORT_DIPNAME( 0x70, 0x70, "Remote Credits" ) PORT_DIPLOCATION("SW4:5,6,7")
1712 // PORT_DIPSETTING( 0x00, "50" )
1713 // PORT_DIPSETTING( 0x10, "50" )
1714 // PORT_DIPSETTING( 0x20, "50" )
1715 PORT_DIPSETTING( 0x30, "50" )
1716 PORT_DIPSETTING( 0x70, "100" )
1717 PORT_DIPSETTING( 0x60, "200" )
1718 PORT_DIPSETTING( 0x50, "400" )
1719 PORT_DIPSETTING( 0x40, "800" )
1720 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW4:8") // ?
1721 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1722 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1723
1724 PORT_START("INA")
1725 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1726 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1727 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1728 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Stop All")
1729 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Bet / Stop 2")
1730 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_CODE(KEYCODE_Z) PORT_NAME("Double / Info")
1731 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1732 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1733
1734 PORT_START( "INB" )
1735 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
1736 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
1737 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1738 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1739 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
1740 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Current settings.
1741 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
1742 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out
1743
1744 PORT_START("INC")
1745 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Small / Black / Stop 3")
1746 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
1747 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1748 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_CODE(KEYCODE_B) PORT_NAME("Big / Red")
1749 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1750 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1751 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Take / Stop 1")
1752 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1753 INPUT_PORTS_END
1754
1755
1756 static INPUT_PORTS_START( crsbingo )
1757
1758 PORT_START( "SW1" )
1759 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
1760 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
1761 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
1762 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1763 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
1764 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
1765 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
1766 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
1767 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
1768 PORT_DIPNAME( 0x38, 0x38, "Key In" )
1769 PORT_DIPSETTING( 0x30, "4 Points/Pulse" )
1770 PORT_DIPSETTING( 0x28, "8 Points/Pulse" )
1771 PORT_DIPSETTING( 0x20, "20 Points/Pulse" )
1772 PORT_DIPSETTING( 0x10, "40 Points/Pulse" )
1773 PORT_DIPSETTING( 0x18, "80 Points/Pulse" )
1774 PORT_DIPSETTING( 0x38, "100 Points/Pulse" )
1775 PORT_DIPSETTING( 0x08, "200 Points/Pulse" )
1776 PORT_DIPSETTING( 0x00, "400 Points/Pulse" )
1777 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1778 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1779 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1780 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1781 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1782 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1783
1784 PORT_START( "SW2" )
1785 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" )
1786 PORT_DIPSETTING( 0x02, "1" )
1787 PORT_DIPSETTING( 0x01, "5" )
1788 PORT_DIPSETTING( 0x03, "10" )
1789 PORT_DIPSETTING( 0x00, "20" )
1790 PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" )
1791 PORT_DIPSETTING( 0x04, "5" )
1792 PORT_DIPSETTING( 0x00, "10" )
1793 PORT_DIPSETTING( 0x08, "20" )
1794 PORT_DIPSETTING( 0x0c, "50" )
1795 PORT_DIPNAME( 0x30, 0x30, "Cards Graphics" )
1796 PORT_DIPSETTING( 0x00, "Classic Cards" )
1797 PORT_DIPSETTING( 0x10, "Alternate Set" )
1798 PORT_DIPSETTING( 0x20, "Fruits" )
1799 PORT_DIPSETTING( 0x30, "Classic Cards" )
1800 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1801 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1802 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1803 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1804 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1805 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1806
1807 PORT_START( "SW3" )
1808 PORT_DIPNAME( 0x01, 0x01, "SW3" )
1809 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
1810 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1811 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1812 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1813 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1814 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1815 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
1816 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1817 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1818 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
1819 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1820 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1821 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1822 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1823 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1824 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1825 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1826 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1827 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1828 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1829 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1830 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1831 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1832
1833 PORT_START( "SW4" )
1834 PORT_DIPNAME( 0x07, 0x07, "Double-Up Rate" )
1835 PORT_DIPSETTING( 0x00, "70%" )
1836 PORT_DIPSETTING( 0x01, "74%" )
1837 PORT_DIPSETTING( 0x02, "78%" )
1838 PORT_DIPSETTING( 0x03, "82%" )
1839 PORT_DIPSETTING( 0x04, "86%" )
1840 PORT_DIPSETTING( 0x07, "90%" )
1841 PORT_DIPSETTING( 0x05, "94%" )
1842 PORT_DIPSETTING( 0x06, "98%" )
1843 PORT_DIPNAME( 0x08, 0x08, "Double-Up Type" )
1844 PORT_DIPSETTING( 0x08, "Type 1 (no change card)" )
1845 PORT_DIPSETTING( 0x00, "Type 2 (with change card)" )
1846 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1847 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
1848 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1849 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1850 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1851 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1852 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1853 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1854 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1855 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1856 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1857 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1858
1859 PORT_START( "INA" )
1860 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
1861 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Double")
1862 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Change")
1863 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Big")
1864 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Small")
1865 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Take")
1866 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_IMPULSE(3)
1867 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1868
1869 PORT_START( "INB" )
1870 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
1871 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key in
1872 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1873 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1874 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") // Bookkeeping.
1875 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
1876 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
1877 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out
1878
1879 PORT_START( "INC" )
1880 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1881 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1882 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1883 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1884 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1885 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1886 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1887 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1888 INPUT_PORTS_END
1889
1890
1891 static INPUT_PORTS_START( sharkpy )
1892
1893 PORT_START( "SW1" )
1894 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) )
1895 PORT_DIPSETTING( 0x01, "1 Coin / 10 Credits" )
1896 PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
1897 PORT_DIPUNKNOWN( 0x02, 0x02 )
1898 PORT_DIPUNKNOWN( 0x04, 0x04 )
1899 PORT_DIPUNKNOWN( 0x08, 0x08 )
1900 PORT_DIPUNKNOWN( 0x10, 0x10 )
1901 PORT_DIPUNKNOWN( 0x20, 0x20 )
1902 PORT_DIPUNKNOWN( 0x40, 0x40 )
1903 PORT_DIPUNKNOWN( 0x80, 0x80 )
1904
1905 PORT_START( "SW2" )
1906 PORT_DIPUNKNOWN( 0x01, 0x01 )
1907 PORT_DIPUNKNOWN( 0x02, 0x02 )
1908 PORT_DIPUNKNOWN( 0x04, 0x04 )
1909 PORT_DIPUNKNOWN( 0x08, 0x08 )
1910 PORT_DIPUNKNOWN( 0x10, 0x10 )
1911 PORT_DIPUNKNOWN( 0x20, 0x20 )
1912 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
1913 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1914 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1915 PORT_DIPNAME( 0x80, 0x80, "Double-Up" )
1916 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
1917 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
1918
1919 PORT_START( "SW3" )
1920 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
1921 PORT_DIPSETTING( 0x00, "55%" )
1922 PORT_DIPSETTING( 0x01, "60%" )
1923 PORT_DIPSETTING( 0x02, "65%" )
1924 PORT_DIPSETTING( 0x03, "70%" )
1925 PORT_DIPSETTING( 0x04, "75%" )
1926 PORT_DIPSETTING( 0x07, "80%" )
1927 PORT_DIPSETTING( 0x05, "85%" )
1928 PORT_DIPSETTING( 0x06, "90%" )
1929 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
1930 PORT_DIPSETTING( 0x30, "0" )
1931 PORT_DIPSETTING( 0x28, "1" )
1932 PORT_DIPSETTING( 0x38, "2" )
1933 PORT_DIPSETTING( 0x20, "3" )
1934 PORT_DIPSETTING( 0x18, "4" )
1935 PORT_DIPSETTING( 0x10, "5" )
1936 PORT_DIPSETTING( 0x08, "6" )
1937 PORT_DIPSETTING( 0x00, "7" )
1938 PORT_DIPUNKNOWN( 0x40, 0x40 )
1939 PORT_DIPUNKNOWN( 0x80, 0x80 )
1940
1941 PORT_START( "SW4" )
1942 PORT_DIPUNKNOWN( 0x01, 0x01 )
1943 PORT_DIPUNKNOWN( 0x02, 0x02 )
1944 PORT_DIPUNKNOWN( 0x04, 0x04 )
1945 PORT_DIPUNKNOWN( 0x08, 0x08 )
1946 PORT_DIPUNKNOWN( 0x10, 0x10 )
1947 PORT_DIPUNKNOWN( 0x20, 0x20 )
1948 PORT_DIPUNKNOWN( 0x40, 0x40 )
1949 PORT_DIPUNKNOWN( 0x80, 0x80 )
1950
1951 PORT_START( "INA" )
1952 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Double (Select)")
1953 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
1954 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
1955 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Big")
1956 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Small")
1957 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Take")
1958 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet") PORT_IMPULSE(3)
1959 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1960
1961 PORT_START( "INB" )
1962 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
1963 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1964 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1965 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1966 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
1967 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
1968 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout?
1969 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out?
1970
1971 PORT_START( "INC" )
1972 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1973 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1974 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
1975 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1976 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
1977 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1978 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1979 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1980 INPUT_PORTS_END
1981
1982
1983 static INPUT_PORTS_START( sharkpye )
1984
1985 PORT_START( "SW1" )
1986 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
1987 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
1988 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
1989 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
1990 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
1991 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
1992 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
1993 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
1994 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
1995 PORT_DIPNAME( 0x38, 0x38, "Remote Credits" )
1996 PORT_DIPSETTING( 0x30, "1 Pulse / 1 Credits" )
1997 PORT_DIPSETTING( 0x28, "1 Pulse / 2 Credits" )
1998 PORT_DIPSETTING( 0x20, "1 Pulse / 5 Credits" )
1999 PORT_DIPSETTING( 0x18, "1 Pulse / 10 Credits" )
2000 PORT_DIPSETTING( 0x10, "1 Pulse / 50 Credits" )
2001 PORT_DIPSETTING( 0x38, "1 Pulse / 100 Credits" )
2002 PORT_DIPSETTING( 0x08, "1 Pulse / 200 Credits" )
2003 PORT_DIPSETTING( 0x00, "1 Pulse / 500 Credits" )
2004 PORT_DIPUNKNOWN( 0x40, 0x40 )
2005 PORT_DIPUNKNOWN( 0x80, 0x80 )
2006
2007 PORT_START( "SW2" )
2008 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" )
2009 PORT_DIPSETTING( 0x03, "1" )
2010 PORT_DIPSETTING( 0x02, "5" )
2011 PORT_DIPSETTING( 0x01, "10" )
2012 PORT_DIPSETTING( 0x00, "20" )
2013 PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" )
2014 PORT_DIPSETTING( 0x08, "10" )
2015 PORT_DIPSETTING( 0x04, "40" )
2016 PORT_DIPSETTING( 0x0c, "50" )
2017 PORT_DIPSETTING( 0x00, "80" )
2018 PORT_DIPNAME( 0x10, 0x10, "Jokers" )
2019 PORT_DIPSETTING( 0x10, DEF_STR( No ) )
2020 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
2021 PORT_DIPUNKNOWN( 0x20, 0x20 )
2022 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
2023 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2024 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2025 PORT_DIPUNKNOWN( 0x80, 0x80 )
2026
2027 PORT_START( "SW3" )
2028 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
2029 PORT_DIPSETTING( 0x00, "92%" )
2030 PORT_DIPSETTING( 0x01, "93%" )
2031 PORT_DIPSETTING( 0x02, "94%" )
2032 PORT_DIPSETTING( 0x03, "95%" )
2033 PORT_DIPSETTING( 0x04, "96%" )
2034 PORT_DIPSETTING( 0x07, "97%" )
2035 PORT_DIPSETTING( 0x05, "98%" )
2036 PORT_DIPSETTING( 0x06, "99%" )
2037 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
2038 PORT_DIPSETTING( 0x00, "82" )
2039 PORT_DIPSETTING( 0x08, "84" )
2040 PORT_DIPSETTING( 0x10, "86" )
2041 PORT_DIPSETTING( 0x18, "88" )
2042 PORT_DIPSETTING( 0x20, "90" )
2043 PORT_DIPSETTING( 0x38, "92" )
2044 PORT_DIPSETTING( 0x28, "94" )
2045 PORT_DIPSETTING( 0x30, "96" )
2046 PORT_DIPUNKNOWN( 0x40, 0x40 )
2047 PORT_DIPUNKNOWN( 0x80, 0x80 )
2048
2049 PORT_START( "SW4" )
2050 PORT_DIPUNKNOWN( 0x01, 0x01 )
2051 PORT_DIPUNKNOWN( 0x02, 0x02 )
2052 PORT_DIPUNKNOWN( 0x04, 0x04 )
2053 PORT_DIPUNKNOWN( 0x08, 0x08 )
2054 PORT_DIPUNKNOWN( 0x10, 0x10 )
2055 PORT_DIPUNKNOWN( 0x20, 0x20 )
2056 PORT_DIPUNKNOWN( 0x40, 0x40 )
2057 PORT_DIPUNKNOWN( 0x80, 0x80 )
2058
2059 PORT_START( "INA" )
2060 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2061 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2062 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2063 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Start")
2064 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Bet")
2065 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Double-Up")
2066 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2067 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2068
2069 PORT_START( "INB" )
2070 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
2071 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
2072 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2073 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2074 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
2075 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
2076 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2077 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
2078
2079 PORT_START( "INC" )
2080 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Small")
2081 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2082 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset Switch") // hard reset
2083 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Big")
2084 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2085 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2086 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Take")
2087 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2088 INPUT_PORTS_END
2089
2090
2091 static INPUT_PORTS_START( smoto16 )
2092
2093 PORT_START( "SW1" )
2094 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) )
2095 PORT_DIPSETTING( 0x01, "1 Coin / 10 Credits" )
2096 PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
2097 PORT_DIPUNKNOWN( 0x02, 0x02 )
2098 PORT_DIPNAME( 0x04, 0x04, "Hopper" )
2099 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2100 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2101 PORT_DIPUNKNOWN( 0x08, 0x08 )
2102 PORT_DIPUNKNOWN( 0x10, 0x10 )
2103 PORT_DIPUNKNOWN( 0x20, 0x20 )
2104 PORT_DIPUNKNOWN( 0x40, 0x40 )
2105 PORT_DIPUNKNOWN( 0x80, 0x80 )
2106
2107 PORT_START( "SW2" )
2108 PORT_DIPUNKNOWN( 0x01, 0x01 )
2109 PORT_DIPUNKNOWN( 0x02, 0x02 )
2110 PORT_DIPUNKNOWN( 0x04, 0x04 )
2111 PORT_DIPUNKNOWN( 0x08, 0x08 )
2112 PORT_DIPUNKNOWN( 0x10, 0x10 )
2113 PORT_DIPUNKNOWN( 0x20, 0x20 )
2114 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
2115 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2116 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2117 PORT_DIPNAME( 0x80, 0x80, "Double-Up" )
2118 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
2119 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
2120
2121 PORT_START( "SW3" )
2122 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
2123 PORT_DIPSETTING( 0x00, "55%" )
2124 PORT_DIPSETTING( 0x01, "60%" )
2125 PORT_DIPSETTING( 0x02, "65%" )
2126 PORT_DIPSETTING( 0x03, "70%" )
2127 PORT_DIPSETTING( 0x04, "75%" )
2128 PORT_DIPSETTING( 0x07, "80%" )
2129 PORT_DIPSETTING( 0x05, "85%" )
2130 PORT_DIPSETTING( 0x06, "90%" )
2131 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
2132 PORT_DIPSETTING( 0x00, "0" )
2133 PORT_DIPSETTING( 0x08, "1" )
2134 PORT_DIPSETTING( 0x10, "2" )
2135 PORT_DIPSETTING( 0x18, "3" )
2136 PORT_DIPSETTING( 0x20, "4" )
2137 PORT_DIPSETTING( 0x28, "5" )
2138 PORT_DIPSETTING( 0x30, "6" )
2139 PORT_DIPSETTING( 0x38, "7" )
2140 PORT_DIPUNKNOWN( 0x40, 0x40 )
2141 PORT_DIPUNKNOWN( 0x80, 0x80 )
2142
2143 PORT_START( "SW4" )
2144 PORT_DIPUNKNOWN( 0x01, 0x01 )
2145 PORT_DIPUNKNOWN( 0x02, 0x02 )
2146 PORT_DIPUNKNOWN( 0x04, 0x04 )
2147 PORT_DIPUNKNOWN( 0x08, 0x08 )
2148 PORT_DIPUNKNOWN( 0x10, 0x10 )
2149 PORT_DIPUNKNOWN( 0x20, 0x20 )
2150 PORT_DIPNAME( 0x40, 0x40, "Game Control" )
2151 PORT_DIPSETTING( 0x40, "Normal Holds" )
2152 PORT_DIPSETTING( 0x00, "Left-Right Marker" )
2153 PORT_DIPUNKNOWN( 0x80, 0x80 )
2154
2155 PORT_START( "INA" ) // d005
2156 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Double (Select)")
2157 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Right")
2158 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Left")
2159 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Select")
2160 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
2161 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Take")
2162 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Speed") PORT_IMPULSE(3)
2163 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2164
2165 PORT_START( "INB" ) // d006
2166 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
2167 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2168 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
2169 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2170 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
2171 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
2172 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
2173 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out?
2174
2175 PORT_START( "INC" ) // d00c
2176 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2177 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
2178 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
2179 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2180 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2181 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2182 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2183 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2184 INPUT_PORTS_END
2185
2186
2187 static INPUT_PORTS_START( smoto20 )
2188
2189 PORT_START( "SW1" )
2190 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) )
2191 PORT_DIPSETTING( 0x01, "1 Coin / 10 Credits" )
2192 PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
2193 PORT_DIPUNKNOWN( 0x02, 0x02 )
2194 PORT_DIPNAME( 0x04, 0x04, "Hopper" )
2195 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2196 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2197 PORT_DIPUNKNOWN( 0x08, 0x08 )
2198 PORT_DIPUNKNOWN( 0x10, 0x10 )
2199 PORT_DIPUNKNOWN( 0x20, 0x20 )
2200 PORT_DIPUNKNOWN( 0x40, 0x40 )
2201 PORT_DIPUNKNOWN( 0x80, 0x80 )
2202
2203 PORT_START( "SW2" )
2204 PORT_DIPUNKNOWN( 0x01, 0x01 )
2205 PORT_DIPUNKNOWN( 0x02, 0x02 )
2206 PORT_DIPUNKNOWN( 0x04, 0x04 )
2207 PORT_DIPUNKNOWN( 0x08, 0x08 )
2208 PORT_DIPUNKNOWN( 0x10, 0x10 )
2209 PORT_DIPUNKNOWN( 0x20, 0x20 )
2210 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
2211 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2212 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2213 PORT_DIPNAME( 0x80, 0x80, "Double-Up" )
2214 PORT_DIPSETTING( 0x00, DEF_STR( No ) )
2215 PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
2216
2217 PORT_START( "SW3" )
2218 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
2219 PORT_DIPSETTING( 0x00, "25%" )
2220 PORT_DIPSETTING( 0x01, "30%" )
2221 PORT_DIPSETTING( 0x02, "35%" )
2222 PORT_DIPSETTING( 0x03, "40%" )
2223 PORT_DIPSETTING( 0x04, "45%" )
2224 PORT_DIPSETTING( 0x07, "50%" )
2225 PORT_DIPSETTING( 0x05, "55%" )
2226 PORT_DIPSETTING( 0x06, "60%" )
2227 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
2228 PORT_DIPSETTING( 0x00, "0" )
2229 PORT_DIPSETTING( 0x08, "1" )
2230 PORT_DIPSETTING( 0x10, "2" )
2231 PORT_DIPSETTING( 0x18, "3" )
2232 PORT_DIPSETTING( 0x20, "4" )
2233 PORT_DIPSETTING( 0x28, "5" )
2234 PORT_DIPSETTING( 0x30, "6" )
2235 PORT_DIPSETTING( 0x38, "7" )
2236 PORT_DIPUNKNOWN( 0x40, 0x40 )
2237 PORT_DIPUNKNOWN( 0x80, 0x80 )
2238
2239 PORT_START( "SW4" )
2240 PORT_DIPUNKNOWN( 0x01, 0x01 )
2241 PORT_DIPUNKNOWN( 0x02, 0x02 )
2242 PORT_DIPUNKNOWN( 0x04, 0x04 )
2243 PORT_DIPUNKNOWN( 0x08, 0x08 )
2244 PORT_DIPUNKNOWN( 0x10, 0x10 )
2245 PORT_DIPUNKNOWN( 0x20, 0x20 )
2246 PORT_DIPNAME( 0x40, 0x40, "Game Control" )
2247 PORT_DIPSETTING( 0x40, "Normal Holds" )
2248 PORT_DIPSETTING( 0x00, "Left-Right Marker" )
2249 PORT_DIPUNKNOWN( 0x80, 0x80 )
2250
2251 PORT_START( "INA" ) // d005
2252 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Double (Select)")
2253 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Right")
2254 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Left")
2255 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Select")
2256 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
2257 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Take")
2258 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Speed") PORT_IMPULSE(3)
2259 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2260
2261 PORT_START( "INB" ) // d006
2262 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
2263 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2264 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
2265 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2266 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
2267 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
2268 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) // payout
2269 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // key out?
2270
2271 PORT_START( "INC" ) // d00c
2272 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2273 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // hopper sensor
2274 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset") // hard reset
2275 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2276 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2277 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2278 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2279 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2280 INPUT_PORTS_END
2281
2282
2283 static INPUT_PORTS_START( victor6 )
2284
2285 PORT_START( "SW1" )
2286 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
2287 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
2288 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
2289 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
2290 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
2291 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
2292 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
2293 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
2294 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
2295 PORT_DIPNAME( 0x38, 0x38, "Remote Credits" )
2296 PORT_DIPSETTING( 0x30, "1 Pulse / 1 Credits" )
2297 PORT_DIPSETTING( 0x28, "1 Pulse / 2 Credits" )
2298 PORT_DIPSETTING( 0x20, "1 Pulse / 5 Credits" )
2299 PORT_DIPSETTING( 0x18, "1 Pulse / 10 Credits" )
2300 PORT_DIPSETTING( 0x10, "1 Pulse / 50 Credits" )
2301 PORT_DIPSETTING( 0x38, "1 Pulse / 100 Credits" )
2302 PORT_DIPSETTING( 0x08, "1 Pulse / 200 Credits" )
2303 PORT_DIPSETTING( 0x00, "1 Pulse / 500 Credits" )
2304 PORT_DIPUNKNOWN( 0x40, 0x40 )
2305 PORT_DIPUNKNOWN( 0x80, 0x80 )
2306
2307 PORT_START( "SW2" )
2308 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" )
2309 PORT_DIPSETTING( 0x03, "1" )
2310 PORT_DIPSETTING( 0x02, "5" )
2311 PORT_DIPSETTING( 0x01, "10" )
2312 PORT_DIPSETTING( 0x00, "20" )
2313 PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" )
2314 PORT_DIPSETTING( 0x00, "8" )
2315 PORT_DIPSETTING( 0x08, "10" )
2316 PORT_DIPSETTING( 0x04, "40" )
2317 PORT_DIPSETTING( 0x0c, "50" )
2318 PORT_DIPNAME( 0x10, 0x10, "Jokers" )
2319 PORT_DIPSETTING( 0x10, DEF_STR( No ) )
2320 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
2321 PORT_DIPUNKNOWN( 0x20, 0x20 )
2322 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
2323 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2324 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2325 PORT_DIPUNKNOWN( 0x80, 0x80 )
2326
2327 PORT_START( "SW3" )
2328 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
2329 PORT_DIPSETTING( 0x00, "87%" )
2330 PORT_DIPSETTING( 0x01, "89%" )
2331 PORT_DIPSETTING( 0x02, "91%" )
2332 PORT_DIPSETTING( 0x03, "93%" )
2333 PORT_DIPSETTING( 0x04, "95%" )
2334 PORT_DIPSETTING( 0x07, "97%" )
2335 PORT_DIPSETTING( 0x05, "99%" )
2336 PORT_DIPSETTING( 0x06, "101%" )
2337 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
2338 PORT_DIPSETTING( 0x00, "82" )
2339 PORT_DIPSETTING( 0x08, "84" )
2340 PORT_DIPSETTING( 0x10, "86" )
2341 PORT_DIPSETTING( 0x18, "88" )
2342 PORT_DIPSETTING( 0x20, "90" )
2343 PORT_DIPSETTING( 0x38, "92" )
2344 PORT_DIPSETTING( 0x28, "94" )
2345 PORT_DIPSETTING( 0x30, "96" )
2346 PORT_DIPUNKNOWN( 0x40, 0x40 )
2347 PORT_DIPUNKNOWN( 0x80, 0x80 )
2348
2349 PORT_START( "SW4" )
2350 PORT_DIPUNKNOWN( 0x01, 0x01 )
2351 PORT_DIPUNKNOWN( 0x02, 0x02 )
2352 PORT_DIPUNKNOWN( 0x04, 0x04 )
2353 PORT_DIPUNKNOWN( 0x08, 0x08 )
2354 PORT_DIPUNKNOWN( 0x10, 0x10 )
2355 PORT_DIPUNKNOWN( 0x20, 0x20 )
2356 PORT_DIPUNKNOWN( 0x40, 0x40 )
2357 PORT_DIPUNKNOWN( 0x80, 0x80 )
2358
2359 PORT_START( "INA" )
2360 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2361 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2362 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2363 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Start")
2364 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Bet")
2365 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Double-Up")
2366 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2367 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2368
2369 PORT_START( "INB" )
2370 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
2371 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
2372 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2373 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2374 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
2375 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
2376 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2377 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
2378
2379 PORT_START( "INC" )
2380 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Small")
2381 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2382 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset Switch") // hard reset
2383 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Big")
2384 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2385 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2386 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Take")
2387 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2388 INPUT_PORTS_END
2389
2390
2391 static INPUT_PORTS_START( victor6a )
2392
2393 PORT_START( "SW1" )
2394 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
2395 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
2396 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
2397 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
2398 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
2399 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
2400 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
2401 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
2402 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
2403 PORT_DIPNAME( 0x38, 0x38, "Remote Credits" )
2404 PORT_DIPSETTING( 0x30, "1 Pulse / 1 Credits" )
2405 PORT_DIPSETTING( 0x28, "1 Pulse / 2 Credits" )
2406 PORT_DIPSETTING( 0x20, "1 Pulse / 5 Credits" )
2407 PORT_DIPSETTING( 0x18, "1 Pulse / 10 Credits" )
2408 PORT_DIPSETTING( 0x10, "1 Pulse / 50 Credits" )
2409 PORT_DIPSETTING( 0x38, "1 Pulse / 100 Credits" )
2410 PORT_DIPSETTING( 0x08, "1 Pulse / 200 Credits" )
2411 PORT_DIPSETTING( 0x00, "1 Pulse / 500 Credits" )
2412 PORT_DIPUNKNOWN( 0x40, 0x40 )
2413 PORT_DIPUNKNOWN( 0x80, 0x80 )
2414
2415 PORT_START( "SW2" )
2416 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" )
2417 PORT_DIPSETTING( 0x03, "1" )
2418 PORT_DIPSETTING( 0x02, "5" )
2419 PORT_DIPSETTING( 0x01, "10" )
2420 PORT_DIPSETTING( 0x00, "20" )
2421 PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" )
2422 PORT_DIPSETTING( 0x08, "10" )
2423 PORT_DIPSETTING( 0x04, "40" )
2424 PORT_DIPSETTING( 0x0c, "50" )
2425 PORT_DIPSETTING( 0x00, "80" )
2426 PORT_DIPNAME( 0x10, 0x10, "Jokers" )
2427 PORT_DIPSETTING( 0x10, DEF_STR( No ) )
2428 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
2429 PORT_DIPUNKNOWN( 0x20, 0x20 )
2430 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
2431 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2432 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2433 PORT_DIPUNKNOWN( 0x80, 0x80 )
2434
2435 PORT_START( "SW3" )
2436 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
2437 PORT_DIPSETTING( 0x00, "94%" )
2438 PORT_DIPSETTING( 0x01, "95%" )
2439 PORT_DIPSETTING( 0x02, "96%" )
2440 PORT_DIPSETTING( 0x03, "97%" )
2441 PORT_DIPSETTING( 0x04, "98%" )
2442 PORT_DIPSETTING( 0x07, "99%" )
2443 PORT_DIPSETTING( 0x05, "100%" )
2444 PORT_DIPSETTING( 0x06, "101%" )
2445 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
2446 PORT_DIPSETTING( 0x00, "82" )
2447 PORT_DIPSETTING( 0x08, "84" )
2448 PORT_DIPSETTING( 0x10, "86" )
2449 PORT_DIPSETTING( 0x18, "88" )
2450 PORT_DIPSETTING( 0x20, "90" )
2451 PORT_DIPSETTING( 0x38, "92" )
2452 PORT_DIPSETTING( 0x28, "94" )
2453 PORT_DIPSETTING( 0x30, "96" )
2454 PORT_DIPUNKNOWN( 0x40, 0x40 )
2455 PORT_DIPUNKNOWN( 0x80, 0x80 )
2456
2457 PORT_START( "SW4" )
2458 PORT_DIPUNKNOWN( 0x01, 0x01 )
2459 PORT_DIPUNKNOWN( 0x02, 0x02 )
2460 PORT_DIPUNKNOWN( 0x04, 0x04 )
2461 PORT_DIPUNKNOWN( 0x08, 0x08 )
2462 PORT_DIPUNKNOWN( 0x10, 0x10 )
2463 PORT_DIPUNKNOWN( 0x20, 0x20 )
2464 PORT_DIPUNKNOWN( 0x40, 0x40 )
2465 PORT_DIPUNKNOWN( 0x80, 0x80 )
2466
2467 PORT_START( "INA" )
2468 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2469 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2470 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2471 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Start")
2472 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Bet")
2473 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Double-Up")
2474 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2475 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2476
2477 PORT_START( "INB" )
2478 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
2479 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
2480 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2481 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2482 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
2483 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
2484 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2485 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
2486
2487 PORT_START( "INC" )
2488 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Small")
2489 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2490 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset Switch") // hard reset
2491 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Big")
2492 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2493 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2494 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Take")
2495 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2496 INPUT_PORTS_END
2497
2498
2499 static INPUT_PORTS_START( victor6b )
2500
2501 PORT_START( "SW1" )
2502 PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
2503 PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) )
2504 PORT_DIPSETTING( 0x05, DEF_STR( 1C_2C ) )
2505 PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
2506 PORT_DIPSETTING( 0x07, "1 Coin / 10 Credits" )
2507 PORT_DIPSETTING( 0x03, "1 Coin / 20 Credits" )
2508 PORT_DIPSETTING( 0x02, "1 Coin / 25 Credits" )
2509 PORT_DIPSETTING( 0x01, "1 Coin / 50 Credits" )
2510 PORT_DIPSETTING( 0x00, "1 Coin / 100 Credits" )
2511 PORT_DIPNAME( 0x38, 0x38, "Remote Credits" )
2512 PORT_DIPSETTING( 0x30, "1 Pulse / 1 Credits" )
2513 PORT_DIPSETTING( 0x28, "1 Pulse / 2 Credits" )
2514 PORT_DIPSETTING( 0x20, "1 Pulse / 5 Credits" )
2515 PORT_DIPSETTING( 0x18, "1 Pulse / 10 Credits" )
2516 PORT_DIPSETTING( 0x10, "1 Pulse / 50 Credits" )
2517 PORT_DIPSETTING( 0x38, "1 Pulse / 100 Credits" )
2518 PORT_DIPSETTING( 0x08, "1 Pulse / 200 Credits" )
2519 PORT_DIPSETTING( 0x00, "1 Pulse / 500 Credits" )
2520 PORT_DIPUNKNOWN( 0x40, 0x40 )
2521 PORT_DIPUNKNOWN( 0x80, 0x80 )
2522
2523 PORT_START( "SW2" )
2524 PORT_DIPNAME( 0x03, 0x03, "Minimum Bet" )
2525 PORT_DIPSETTING( 0x03, "1" )
2526 PORT_DIPSETTING( 0x02, "5" )
2527 PORT_DIPSETTING( 0x01, "10" )
2528 PORT_DIPSETTING( 0x00, "20" )
2529 PORT_DIPNAME( 0x0c, 0x0c, "Max Bet" )
2530 PORT_DIPSETTING( 0x08, "Invalid" )
2531 PORT_DIPSETTING( 0x04, "40" )
2532 PORT_DIPSETTING( 0x0c, "50" )
2533 PORT_DIPSETTING( 0x00, "80" )
2534 PORT_DIPNAME( 0x10, 0x10, "Jokers" )
2535 PORT_DIPSETTING( 0x10, DEF_STR( No ) )
2536 PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
2537 PORT_DIPUNKNOWN( 0x20, 0x20 )
2538 PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
2539 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2540 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2541 PORT_DIPUNKNOWN( 0x80, 0x80 )
2542
2543 PORT_START( "SW3" )
2544 PORT_DIPNAME( 0x07, 0x07, "Main Game Rate" )
2545 PORT_DIPSETTING( 0x00, "94%" )
2546 PORT_DIPSETTING( 0x01, "95%" )
2547 PORT_DIPSETTING( 0x02, "96%" )
2548 PORT_DIPSETTING( 0x03, "97%" )
2549 PORT_DIPSETTING( 0x04, "98%" )
2550 PORT_DIPSETTING( 0x07, "99%" )
2551 PORT_DIPSETTING( 0x05, "100%" )
2552 PORT_DIPSETTING( 0x06, "101%" )
2553 PORT_DIPNAME( 0x38, 0x38, "Double-Up Rate" )
2554 PORT_DIPSETTING( 0x00, "82" )
2555 PORT_DIPSETTING( 0x08, "84" )
2556 PORT_DIPSETTING( 0x10, "86" )
2557 PORT_DIPSETTING( 0x18, "88" )
2558 PORT_DIPSETTING( 0x20, "90" )
2559 PORT_DIPSETTING( 0x38, "92" )
2560 PORT_DIPSETTING( 0x28, "94" )
2561 PORT_DIPSETTING( 0x30, "96" )
2562 PORT_DIPUNKNOWN( 0x40, 0x40 )
2563 PORT_DIPUNKNOWN( 0x80, 0x80 )
2564
2565 PORT_START( "SW4" )
2566 PORT_DIPUNKNOWN( 0x01, 0x01 )
2567 PORT_DIPUNKNOWN( 0x02, 0x02 )
2568 PORT_DIPUNKNOWN( 0x04, 0x04 )
2569 PORT_DIPUNKNOWN( 0x08, 0x08 )
2570 PORT_DIPUNKNOWN( 0x10, 0x10 )
2571 PORT_DIPUNKNOWN( 0x20, 0x20 )
2572 PORT_DIPUNKNOWN( 0x40, 0x40 )
2573 PORT_DIPUNKNOWN( 0x80, 0x80 )
2574
2575 PORT_START( "INA" )
2576 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2577 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2578 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2579 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Start")
2580 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1 / Bet")
2581 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3 / Double-Up")
2582 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2583 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2584
2585 PORT_START( "INB" )
2586 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) // coin
2587 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
2588 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2589 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2590 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats / Test") // Bookkeeping.
2591 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings") // Game Rate & others.
2592 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2593 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
2594
2595 PORT_START( "INC" )
2596 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Small")
2597 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2598 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Reset Switch") // hard reset
2599 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Big")
2600 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2601 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2602 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2 / Take")
2603 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2604 INPUT_PORTS_END
2605
2606
2607 /***************************************************************************
2608 * Graphics Layout *
2609 ***************************************************************************/
2610
2611 static const gfx_layout layout_8x8x3 =
2612 {
2613 8, 8,
2614 RGN_FRAC(1, 3),
2615 3,
2616 { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) },
2617 { STEP8(0,1) },
2618 { STEP8(0,8) },
2619 8*8
2620 };
2621
2622 static const gfx_layout layout_8x8x4 =
2623 {
2624 8, 8,
2625 RGN_FRAC(1, 4),
2626 4,
2627 { RGN_FRAC(2,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(1,4) },
2628 { STEP8(0,1) },
2629 { STEP8(0,8) },
2630 8*8
2631 };
2632
2633 static const gfx_layout layout_8x32x4 =
2634 {
2635 8, 32,
2636 RGN_FRAC(1, 4),
2637 4,
2638 { RGN_FRAC(2,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(1,4) },
2639 { STEP8(0,1) },
2640 { STEP32(0,8) },
2641 8*8*4
2642 };
2643
2644 static const gfx_layout layout_8x8x8 =
2645 {
2646 8, 8,
2647 RGN_FRAC(1,4),
2648 8,
2649 { 0,1,2,3,4,5,6,7 },
2650 { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4), RGN_FRAC(0,4)+8, RGN_FRAC(1,4)+8, RGN_FRAC(2,4)+8, RGN_FRAC(3,4)+8 },
2651 { 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16 },
2652 8*16
2653 };
2654
2655 static const gfx_layout layout_8x32x8 =
2656 {
2657 8, 32,
2658 RGN_FRAC(1,4),
2659 8,
2660 { 0,1,2,3,4,5,6,7 },
2661 { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4), RGN_FRAC(0,4)+8, RGN_FRAC(1,4)+8, RGN_FRAC(2,4)+8, RGN_FRAC(3,4)+8 },
2662 { 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16, 8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16,
2663 16*16,17*16,18*16,19*16,20*16,21*16,22*16,23*16,24*16,25*16,26*16,27*16,28*16,29*16,30*16,31*16},
2664 32*16
2665 };
2666
2667
2668 static GFXDECODE_START( subsino_depth3 )
2669 GFXDECODE_ENTRY( "tilemap", 0, layout_8x8x3, 0, 16 )
2670 GFXDECODE_END
2671
GFXDECODE_START(subsino_depth4)2672 static GFXDECODE_START( subsino_depth4 )
2673 GFXDECODE_ENTRY( "tilemap", 0, layout_8x8x4, 0, 16 )
2674 GFXDECODE_END
2675
2676 static GFXDECODE_START( subsino_depth4_reels )
2677 GFXDECODE_ENTRY( "tilemap", 0, layout_8x8x4, 0, 16 )
2678 GFXDECODE_ENTRY( "reels", 0, layout_8x32x4, 0, 16 )
2679 GFXDECODE_END
2680
2681 static GFXDECODE_START( subsino_stbsub )
2682 GFXDECODE_ENTRY( "tilemap", 0, layout_8x8x8, 0, 1 )
2683 GFXDECODE_ENTRY( "reels", 0, layout_8x32x8, 0, 1 )
2684 GFXDECODE_END
2685
2686 /***************************************************************************
2687 * Machine Drivers *
2688 ***************************************************************************/
2689
2690 void subsino_state::victor21(machine_config &config)
2691 {
2692 /* basic machine hardware */
2693 HD647180X(config, m_maincpu, XTAL(12'000'000)); /* Unknown clock */
2694 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::victor21_map);
2695 m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap);
2696
2697 i8255_device &ppi(I8255A(config, "ppi"));
2698 ppi.out_pa_callback().set(FUNC(subsino_state::out_a_w));
2699 ppi.tri_pa_callback().set_constant(0);
2700 ppi.out_pb_callback().set(FUNC(subsino_state::out_b_w));
2701 ppi.tri_pb_callback().set_constant(0);
2702 ppi.in_pc_callback().set_ioport("INC");
2703
2704 TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
2705
2706 /* video hardware */
2707 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
2708 screen.set_refresh_hz(60);
2709 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
2710 screen.set_size(512, 256);
2711 screen.set_visarea(0, 512-1, 0+16, 256-16-1);
2712 screen.set_screen_update(FUNC(subsino_state::screen_update));
2713 screen.set_palette(m_palette);
2714
2715 GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth3);
2716
2717 PALETTE(config, m_palette, FUNC(subsino_state::_2proms_palette), 0x100);
2718
2719 MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
2720
2721 /* sound hardware */
2722 SPEAKER(config, "mono").front_center();
2723
2724 YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0);
2725
2726 OKIM6295(config, "oki", XTAL(4'433'619) / 4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* Clock frequency & pin 7 not verified */
2727 }
2728
2729 /* same but with an additional protection. */
victor5(machine_config & config)2730 void subsino_state::victor5(machine_config &config)
2731 {
2732 victor21(config);
2733
2734 /* basic machine hardware */
2735 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::victor5_map);
2736 }
2737
2738
crsbingo(machine_config & config)2739 void subsino_state::crsbingo(machine_config &config)
2740 {
2741 /* basic machine hardware */
2742 HD647180X(config, m_maincpu, XTAL(12'000'000)); /* Unknown CPU and clock */
2743 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::crsbingo_map);
2744 m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap);
2745
2746 TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
2747
2748 /* video hardware */
2749 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
2750 screen.set_refresh_hz(60);
2751 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
2752 screen.set_size(512, 256);
2753 screen.set_visarea(0, 512-1, 0+16, 256-16-1);
2754 screen.set_screen_update(FUNC(subsino_state::screen_update));
2755 screen.set_palette(m_palette);
2756
2757 GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth4);
2758
2759 PALETTE(config, m_palette, FUNC(subsino_state::_2proms_palette), 0x100);
2760
2761 MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
2762
2763 /* sound hardware */
2764 SPEAKER(config, "mono").front_center();
2765
2766 YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); /* Unknown clock */
2767 }
2768
2769
srider(machine_config & config)2770 void subsino_state::srider(machine_config &config)
2771 {
2772 /* basic machine hardware */
2773 HD647180X(config, m_maincpu, XTAL(12'000'000)); /* Unknown clock */
2774 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::srider_map);
2775 m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap);
2776
2777 i8255_device &ppi1(I8255A(config, "ppi1"));
2778 ppi1.in_pa_callback().set_ioport("SW1");
2779 ppi1.in_pb_callback().set_ioport("SW2");
2780 ppi1.in_pc_callback().set_ioport("SW3");
2781
2782 i8255_device &ppi2(I8255A(config, "ppi2"));
2783 ppi2.in_pa_callback().set_ioport("SW4");
2784 ppi2.in_pb_callback().set_ioport("INA");
2785 ppi2.in_pc_callback().set_ioport("INB");
2786
2787 TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
2788
2789 /* video hardware */
2790 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
2791 screen.set_refresh_hz(60);
2792 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
2793 screen.set_size(512, 256);
2794 screen.set_visarea(0, 512-1, 0+16, 256-16-1);
2795 screen.set_screen_update(FUNC(subsino_state::screen_update));
2796 screen.set_palette(m_palette);
2797
2798 GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth4);
2799
2800 PALETTE(config, m_palette, FUNC(subsino_state::_3proms_palette), 0x100);
2801
2802 MCFG_VIDEO_START_OVERRIDE(subsino_state,subsino)
2803
2804 /* sound hardware */
2805 SPEAKER(config, "mono").front_center();
2806
2807 YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0);
2808
2809 OKIM6295(config, "oki", XTAL(4'433'619) / 4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* Clock frequency & pin 7 not verified */
2810 }
2811
2812
sharkpy(machine_config & config)2813 void subsino_state::sharkpy(machine_config &config)
2814 {
2815 srider(config);
2816
2817 /* basic machine hardware */
2818 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::sharkpy_map);
2819 }
2820
tisub(machine_config & config)2821 void subsino_state::tisub(machine_config &config)
2822 {
2823 /* basic machine hardware */
2824 HD647180X(config, m_maincpu, XTAL(12'000'000)); /* Unknown CPU and clock */
2825 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::tisub_map);
2826 m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap);
2827
2828 i8255_device &ppi1(I8255A(config, "ppi1"));
2829 ppi1.in_pa_callback().set_ioport("SW1");
2830 ppi1.in_pb_callback().set_ioport("SW2");
2831 ppi1.in_pc_callback().set_ioport("SW3");
2832
2833 i8255_device &ppi2(I8255A(config, "ppi2"));
2834 ppi2.in_pa_callback().set_ioport("SW4");
2835 ppi2.in_pb_callback().set_ioport("INA");
2836 ppi2.in_pc_callback().set_ioport("INB");
2837
2838 TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
2839
2840 /* video hardware */
2841 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
2842 screen.set_refresh_hz(60);
2843 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
2844 screen.set_size(512, 256);
2845 screen.set_visarea(0, 512-1, 0+16, 256-16-1);
2846 screen.set_screen_update(FUNC(subsino_state::screen_update_reels));
2847 screen.set_palette(m_palette);
2848
2849 GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth4_reels);
2850
2851 PALETTE(config, m_palette, FUNC(subsino_state::_3proms_palette), 0x100);
2852
2853 MCFG_VIDEO_START_OVERRIDE(subsino_state, reels)
2854
2855 /* sound hardware */
2856 SPEAKER(config, "mono").front_center();
2857
2858 YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); /* Unknown clock */
2859 }
2860
stbsub(machine_config & config)2861 void subsino_state::stbsub(machine_config &config)
2862 {
2863 /* basic machine hardware */
2864 HD647180X(config, m_maincpu, XTAL(12'000'000)); /* Unknown clock */
2865 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::stbsub_map);
2866 m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap);
2867
2868 i8255_device &ppi1(I8255A(config, "ppi1"));
2869 ppi1.in_pa_callback().set_ioport("SW1");
2870 ppi1.in_pb_callback().set_ioport("SW2");
2871 ppi1.in_pc_callback().set_ioport("SW3");
2872
2873 i8255_device &ppi2(I8255A(config, "ppi2"));
2874 ppi2.in_pa_callback().set_ioport("SW4");
2875 ppi2.in_pb_callback().set_ioport("INB");
2876 ppi2.in_pc_callback().set_ioport("INA");
2877
2878 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
2879 TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
2880
2881 /* video hardware */
2882 screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
2883 screen.set_refresh_hz(60);
2884 screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
2885 screen.set_size(512, 256);
2886 screen.set_visarea(0, 512-1, 0+16, 256-16-1);
2887 screen.set_screen_update(FUNC(subsino_state::screen_update_stbsub_reels));
2888 screen.set_palette(m_palette);
2889
2890 GFXDECODE(config, m_gfxdecode, m_palette, subsino_stbsub);
2891
2892 PALETTE(config, m_palette).set_entries(0x100);
2893 //PALETTE(config, m_palette, FUNC(subsino_state::_3proms_palette), 0x100);
2894
2895 ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); // HMC HM86171 VGA 256 colour RAMDAC
2896 ramdac.set_addrmap(0, &subsino_state::ramdac_map);
2897
2898 MCFG_VIDEO_START_OVERRIDE(subsino_state,stbsub)
2899
2900 /* sound hardware */
2901 SPEAKER(config, "mono").front_center();
2902
2903 YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0);
2904 }
2905
mtrainnv(machine_config & config)2906 void subsino_state::mtrainnv(machine_config &config)
2907 {
2908 stbsub(config);
2909
2910 /* basic machine hardware */
2911 m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::mtrainnv_map);
2912 }
2913
2914
2915 /***************************************************************************
2916 * ROMs Loading *
2917 ***************************************************************************/
2918
2919 /***************************************************************************
2920
2921 Victor 5
2922 (C)1991 Subsino / Buffy
2923
2924 Original Subsino PCB
2925 with CPU brick.
2926
2927 Dumped by Team Europe.
2928
2929 ***************************************************************************/
2930
2931 ROM_START( victor5 )
2932 ROM_REGION( 0x14000, "maincpu", 0 )
CRC(bc4d6ed6)2933 ROM_LOAD( "1.u1", 0x10000, 0x4000, CRC(bc4d6ed6) SHA1(6b2087360ea0ae9e48a623934cb2fb973a80f1ec) )
2934 ROM_CONTINUE(0x0000,0xc000)
2935
2936 ROM_REGION( 0x18000, "tilemap", 0 )
2937 ROM_LOAD( "2.u24", 0x10000, 0x8000, CRC(f7026c74) SHA1(75a72839ad6b349563110ed10ad235958d5c0170) )
2938 ROM_LOAD( "3.u25", 0x08000, 0x8000, CRC(24ebe112) SHA1(61c32bb76c7600837880f468829dba176f8330f3) )
2939 ROM_LOAD( "4.u26", 0x00000, 0x8000, CRC(889baf02) SHA1(a2d01f3c09a69bd5b38531b41c53c550a03de229) )
2940
2941 ROM_REGION( 0x20000, "oki", ROMREGION_ERASE )
2942 ROM_LOAD( "6.u49", 0x00000, 0x10000, CRC(73fb4f7b) SHA1(23db0ff42503847c6c7ebb364985430a48de4d8a) )
2943 ROM_LOAD( "5.u48", 0x10000, 0x10000, CRC(403d5632) SHA1(844e1a4bdf7cc9c1196f79e75a83f03a964feb16) )
2944
2945 ROM_REGION( 0x200, "proms", 0 )
2946 ROM_LOAD( "82s129.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
2947 ROM_LOAD( "82s129.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
2948 ROM_END
2949
2950 /***************************************************************************
2951
2952 Victor 5
2953 (C)1991 Subsino
2954
2955 Chips:
2956
2957 1x unknown big black box
2958 1x M5L8255AP
2959 1x UM3567
2960 1x M6295
2961 1x oscillator 12.000
2962 1x oscillator 4.433619
2963 1x oscillator 3.579545
2964
2965 ROMs:
2966
2967 1x M27C512 (1)
2968 3x 27C256 (2,3,4)
2969
2970 Notes:
2971
2972 1x 36x2 edge connector (con3)
2973 1x 10x2 edge connector (con4)
2974 1x RS232 9pins connector (con5)
2975 2x batteries
2976 3x 8x2 switches dip
2977 1x pushbutton
2978
2979 Sticker on PCB reads V552520
2980
2981 Info by f205v (26/03/2008)
2982
2983 ***************************************************************************/
2984
2985 ROM_START( victor5a )
2986 ROM_REGION( 0x14000, "maincpu", 0 )
2987 ROM_LOAD( "1.u1", 0x10000, 0x4000, CRC(e3ada2fc) SHA1(eddb460dcb80a29fbbe3ed6c4733c75b892baf52) )
2988 ROM_CONTINUE(0x0000,0xc000)
2989
2990 ROM_REGION( 0x18000, "tilemap", 0 )
2991 ROM_LOAD( "2.u24", 0x10000, 0x8000, CRC(1229e951) SHA1(1e548625bb60e2d6f52a376a0dea9e5709f94135) )
2992 ROM_LOAD( "3.u23", 0x08000, 0x8000, CRC(2d89bbf1) SHA1(d7fda0174a835e88b330dfd09bdb604bfe4c2e44) )
2993 ROM_LOAD( "4.u22", 0x00000, 0x8000, CRC(ecf840a1) SHA1(9ecf522afb23e3557d37effc3c8568e8a14dad1a) )
2994
2995 ROM_REGION( 0x20000, "oki", ROMREGION_ERASE )
2996 ROM_LOAD( "6.u49", 0x00000, 0x10000, CRC(73fb4f7b) SHA1(23db0ff42503847c6c7ebb364985430a48de4d8a) )
2997 ROM_LOAD( "5.u48", 0x10000, 0x10000, CRC(403d5632) SHA1(844e1a4bdf7cc9c1196f79e75a83f03a964feb16) )
2998
2999 ROM_REGION( 0x200, "proms", 0 )
3000 ROM_LOAD( "82s129.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
3001 ROM_LOAD( "82s129.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
3002 ROM_END
3003
3004
3005 /***************************************************************************
3006
3007 Victor 21
3008 (C)1990 Subsino
3009
3010 Chips:
3011
3012 1x unknown big black box
3013 1x M5L8255AP
3014 1x UM3567
3015 1x M6295
3016 1x oscillator 12.000
3017 1x oscillator 4.433619
3018 1x oscillator 3.579545
3019
3020 ROMs:
3021
3022 1x M27C512 (1)
3023 3x 27C256 (2,3,4)
3024
3025 Other:
3026
3027 1x 36x2 edge connector (con3)
3028 1x 10x2 edge connector (con4)
3029 1x RS232 9pins connector (con5)
3030 2x batteries
3031 3x 8 switches dips
3032 1x pushbutton
3033
3034 PCB layout is identical to "Victor 5"
3035 Sticker on PCB reads V12040
3036
3037 Info by f205v, Corrado Tomaselli (20/04/2008)
3038
3039 ***************************************************************************/
3040
3041 ROM_START( victor21 )
3042 ROM_REGION( 0x14000, "maincpu", 0 )
3043 ROM_LOAD( "1.u1", 0x10000, 0x4000, CRC(43999b2d) SHA1(7ce26fd332ffe35fd826a1a6166b228d4bc370b8) )
3044 ROM_CONTINUE( 0x00000, 0xc000)
3045
3046 ROM_REGION( 0x18000, "tilemap", 0 )
3047 ROM_LOAD( "2.u24", 0x10000, 0x8000, CRC(f1181b93) SHA1(53cd4d2ce13973495b51d911a4745a69a9784983) )
3048 ROM_LOAD( "3.u25", 0x08000, 0x8000, CRC(437abb27) SHA1(bd3790807d60a41d58e07f60fb990553076d6e96) )
3049 ROM_LOAD( "4.u26", 0x00000, 0x8000, CRC(e2f66eee) SHA1(ece924fe626f21fd7d31faabf19225d80e2bcfd3) )
3050
3051 ROM_REGION( 0x20000, "oki", ROMREGION_ERASE )
3052 ROM_LOAD( "6.u49", 0x00000, 0x10000, CRC(4153711c) SHA1(11b4f5f8ec3c93194d1d5b78ae35ca79d8f66a16) )
3053 ROM_LOAD( "5.u48", 0x10000, 0x10000, CRC(3d451de6) SHA1(cbb22679fc9ce27e2ca90aa8035bf1b1c353c69e) )
3054
3055 ROM_REGION( 0x200, "proms", 0 )
3056 ROM_LOAD( "82s129.u35", 0x000, 0x100, CRC(40094bed) SHA1(b25d96126b3f7bd06bf76dc9958f8669f83abdb7) )
3057 ROM_LOAD( "82s129.u36", 0x100, 0x100, CRC(9ca021c5) SHA1(6a1d8d4f958d36e4a676dc4f4aee83d637933bc3) )
3058 ROM_END
3059
3060
3061 /***************************************************************************
3062
3063 Treasure Island
3064 -- this has an extra layer for the reels, exactly the same as goldstar.c
3065
3066 ***************************************************************************/
3067
3068 ROM_START( tisub )
3069 ROM_REGION( 0x18000, "maincpu", 0 )
3070 ROM_LOAD( "rom_1.bin", 0x10000, 0x4000, CRC(ed3b4a69) SHA1(c57985e8d19b2b495fc768e52b83cbbd75f027ad) )
3071 ROM_CONTINUE(0x0000,0xc000)
3072 ROM_COPY( "maincpu", 0x09000, 0x14000, 0x1000)
3073
3074 ROM_REGION( 0x40000, "tilemap", 0 )
3075 ROM_LOAD( "rom_6.bin", 0x00000, 0x10000, CRC(c2c226df) SHA1(39762b390d6b271c3252342e843a181dd152a0cc) )
3076 ROM_LOAD( "rom_4.bin", 0x10000, 0x10000, CRC(37724fda) SHA1(084653662c9f77afef2a77c607e1fb093aaf3adf) )
3077 ROM_LOAD( "rom_5.bin", 0x20000, 0x10000, CRC(3d18acd8) SHA1(179545c18ad880097366c07c8e2fa821701a2758) )
3078 ROM_LOAD( "rom_7.bin", 0x30000, 0x10000, CRC(9d7d99d8) SHA1(a3df5e023c2102028a5186101dc0b19d91e8965e) )
3079
3080 ROM_REGION( 0x8000, "reels", 0 )
3081 ROM_LOAD( "rom_2.bin", 0x0000, 0x4000, CRC(836c756d) SHA1(fca1d5b600861eea30ed73ee13be735e7d167097) )
3082 ROM_IGNORE(0x4000)
3083 ROM_LOAD( "rom_3.bin", 0x4000, 0x4000, CRC(2ad82222) SHA1(68780b9528393b28eaa2f90501efb5a8c39bed63) )
3084 ROM_IGNORE(0x4000)
3085
3086 ROM_REGION( 0x300, "proms", 0 )
3087 ROM_LOAD( "n82s129n.u39", 0x000, 0x100, CRC(971843e5) SHA1(4cb5fc1085503dae2f2f02eb49cca051ac84b890) )
3088 ROM_LOAD( "n82s129n.u40", 0x100, 0x100, CRC(b4bd872c) SHA1(c0f9fe68186636d6d6bc6f81415459631cf38edd) )
3089 ROM_LOAD( "n82s129n.u41", 0x200, 0x100, CRC(db99f6da) SHA1(d281a2fa06f1890ef0b1c4d099e6828827db14fd) )
3090 ROM_END
3091
3092 /*
3093
3094 Treasure Island (Alt version)...
3095
3096 ROMs 4 & 5 are missing. ROMs 6 & 7 are identical to parent set.
3097 So... Assuming that 4 & 5 should have the same bitplanes.
3098
3099 ROM 3 is bad, but ROM 2 only has the first byte different,
3100 getting different values in each dump. The rest remains identical.
3101
3102 Program ROM is different.
3103
3104 Color PROMs are from this set.
3105
3106 */
3107
3108 ROM_START( tisuba )
3109 ROM_REGION( 0x18000, "maincpu", 0 )
3110 ROM_LOAD( "01.bin", 0x10000, 0x4000, CRC(9967dd38) SHA1(63b74bc0c0952114b7321e8f399bd64dc293aade) )
3111 ROM_CONTINUE(0x0000,0xc000)
3112 ROM_COPY( "maincpu", 0x09000, 0x14000, 0x1000)
3113
3114 ROM_REGION( 0x40000, "tilemap", 0 )
3115 ROM_LOAD( "rom_6.bin", 0x00000, 0x10000, CRC(c2c226df) SHA1(39762b390d6b271c3252342e843a181dd152a0cc) )
3116 ROM_LOAD( "rom_4.bin", 0x10000, 0x10000, CRC(37724fda) SHA1(084653662c9f77afef2a77c607e1fb093aaf3adf) )
3117 ROM_LOAD( "rom_5.bin", 0x20000, 0x10000, CRC(3d18acd8) SHA1(179545c18ad880097366c07c8e2fa821701a2758) )
3118 ROM_LOAD( "rom_7.bin", 0x30000, 0x10000, CRC(9d7d99d8) SHA1(a3df5e023c2102028a5186101dc0b19d91e8965e) )
3119
3120 ROM_REGION( 0x8000, "reels", 0 )
3121 ROM_LOAD( "rom_2.bin", 0x0000, 0x4000, CRC(836c756d) SHA1(fca1d5b600861eea30ed73ee13be735e7d167097) )
3122 ROM_IGNORE(0x4000)
3123 ROM_LOAD( "rom_3.bin", 0x4000, 0x4000, CRC(2ad82222) SHA1(68780b9528393b28eaa2f90501efb5a8c39bed63) )
3124 ROM_IGNORE(0x4000)
3125
3126 ROM_REGION( 0x300, "proms", 0 )
3127 ROM_LOAD( "n82s129n.u39", 0x000, 0x100, CRC(971843e5) SHA1(4cb5fc1085503dae2f2f02eb49cca051ac84b890) )
3128 ROM_LOAD( "n82s129n.u40", 0x100, 0x100, CRC(b4bd872c) SHA1(c0f9fe68186636d6d6bc6f81415459631cf38edd) )
3129 ROM_LOAD( "n82s129n.u41", 0x200, 0x100, CRC(db99f6da) SHA1(d281a2fa06f1890ef0b1c4d099e6828827db14fd) )
3130 ROM_END
3131
3132
3133 /***************************************************************************
3134
3135 Cross Bingo
3136 (C)1991 Subsino
3137
3138 Chips:
3139
3140 1x big unknown epoxy block (main)
3141 1x unknown Subsino SS9101-173001 (DIP42)
3142 1x unknown blank quad chip (QFP68)
3143 1x UM3567 (sound)
3144 3x ULN2003AN (sound)
3145 1x LM324N (sound)
3146 1x oscillator 12.000
3147 1x oscillator 3.579545
3148
3149 ROMs:
3150
3151 3x M27512
3152 2x PROM N82S129N
3153 2x PLD 18CV8PC (read protected)
3154
3155 Other:
3156
3157 1x 22x2 edge connector
3158 1x 11x2 edge connector
3159 1x 10x2 edge connector (payout system)
3160 1x RS232 connector
3161 1x trimmer (volume)
3162 1x pushbutton
3163 4x 8x2 switches dip
3164 1x battery
3165
3166 Info by f205v (14/12/2008)
3167
3168 ***************************************************************************/
3169
3170 ROM_START( crsbingo )
3171 ROM_REGION( 0x14000, "maincpu", 0 )
3172 ROM_LOAD( "1.u36", 0x10000, 0x4000, CRC(c5aff4eb) SHA1(74f06d7735975657fca9be5fff9e7d53f38fcd02) )
3173 ROM_CONTINUE(0x0000,0xc000)
3174
3175 ROM_REGION( 0x20000, "tilemap", 0 )
3176 ROM_LOAD( "2.u4", 0x00000, 0x10000, CRC(ce527722) SHA1(f3759cefab902259eb25f8d4be2fcafc1afd90b9) )
3177 ROM_LOAD( "3.u15", 0x10000, 0x10000, CRC(23785451) SHA1(8574e59aa816a644ff4b102bd5754ef1284deea0) )
3178
3179 ROM_REGION( 0x200, "proms", 0 )
3180 ROM_LOAD( "82s129.u13", 0x000, 0x100, CRC(89c06859) SHA1(b98d5335f36ea3842086677aca47b605030d442f) )
3181 ROM_LOAD( "82s129.u14", 0x100, 0x100, CRC(eaddb54f) SHA1(51fbf31e910a93315204a892d10bcf982a6ed099) )
3182
3183 ROM_REGION( 0x40000, "oki", ROMREGION_ERASE00 )
3184
3185 ROM_REGION( 0x155 * 2, "plds", 0 )
3186 ROM_LOAD( "18cv8.u22", 0x000, 0x155, NO_DUMP )
3187 ROM_LOAD( "18cv8.u29", 0x155, 0x155, NO_DUMP )
3188 ROM_END
3189
3190
3191 /***************************************************************************
3192
3193 Shark Party
3194 (C)1993 Subsino
3195
3196 Chips:
3197
3198 1x unknown big black box
3199 1x custom SUBSINO_SS9101_409235I (DIL42)(u48)
3200 2x KD89C55 (u49,u50)
3201 1x K-665 (u55)(equivalent to M6295)
3202 1x K-664 (u57)(equivalent to YM3014)
3203 1x K-666 (u52)(equivalent to YM3812)
3204 3x 45580D (amplifier)(u58,u59,u60)
3205 2x custom SUBSINO_SS9100_3512204V (SMT 44pins)(u10,u19)
3206 1x oscillator 4.433619MHz
3207 1x oscillator 12.000MHz
3208
3209 ROMs:
3210
3211 1x 27C1001 (u54)
3212 1x 27C512 (u18)
3213 2x 27C010 (u16,u17)
3214 3x N82S129AN (u11,u12,u13)
3215 4x GAL16V8B (u2,u37,u45,u46)(not dumped)
3216 2x TIBPAL16L8 (u43,u44)(not dumped)
3217
3218 Other:
3219
3220 1x 36x2 edge connector (con5)
3221 1x 10x2 edge connector (con4)
3222 1x battery
3223 1x trimmer (volume)
3224 1x pushbutton (sw5)
3225 4x 8x2 switches dip (sw1,sw2,sw3,sw4)
3226
3227 Info by f205v (25/03/2008)
3228
3229 ***************************************************************************/
3230
3231 ROM_START( sharkpy )
3232 ROM_REGION( 0x14000, "maincpu", 0 )
3233 ROM_LOAD( "shark_n.1.u18", 0x0a000, 0x6000, CRC(25aeac2f) SHA1(d94e3e5cfffd150ac48e1463493a8323f42e7a89) ) // is this mapped correctly? - used during gameplay?
3234 ROM_CONTINUE(0x0000, 0xa000)
3235
3236 ROM_REGION( 0x40000, "tilemap", 0 )
3237 ROM_LOAD( "shark_n.3.u16", 0x00000, 0x08000, CRC(a7a715ce) SHA1(38b93e05377d9cb816688f5070e847480f195c6b) )
3238 ROM_CONTINUE( 0x10000, 0x08000 )
3239 ROM_CONTINUE( 0x08000, 0x08000 )
3240 ROM_CONTINUE( 0x18000, 0x08000 )
3241 ROM_LOAD( "shark_n.2.u17", 0x20000, 0x08000, CRC(c27f3d0a) SHA1(77c8eb0322c5b9c89777cb080d26ecf9abe01ae7) )
3242 ROM_CONTINUE( 0x30000, 0x08000 )
3243 ROM_CONTINUE( 0x28000, 0x08000 )
3244 ROM_CONTINUE( 0x38000, 0x08000 )
3245
3246 ROM_REGION( 0x40000, "oki", 0 )
3247 ROM_LOAD( "shark=ii=-italy_4_ver1.0.u54", 0x00000, 0x20000, CRC(9f384c59) SHA1(d2b087b8370b40b6f0944de661ea6aebaebea06f) )
3248
3249 ROM_REGION( 0x300, "proms", 0 )
3250 ROM_LOAD( "n82s129an.u11", 0x000, 0x100, CRC(daf3657a) SHA1(93005938e2d60d54e7bbf1e234bba3802ee1af21) )
3251 ROM_LOAD( "n82s129an.u12", 0x100, 0x100, CRC(5a7a25ed) SHA1(eebd679195e6ea50f64f3c46cd06ee21a1550491) )
3252 ROM_LOAD( "n82s129an.u13", 0x200, 0x100, CRC(0ef5f218) SHA1(a02cf266661385aa078563bd83240d36549c1cf0) )
3253 ROM_END
3254
3255 /***************************************************************************
3256
3257 Shark Party (alt)
3258 (C)1993 Subsino
3259
3260 Chips:
3261
3262 1x unknown big black box
3263 1x custom SUBSINO_SS9101_409235I (DIL42)(u48)
3264 2x KD89C55 (u49,u50)
3265 1x K-665 (u55)(equivalent to M6295)
3266 1x K-664 (u57)(equivalent to YM3014)
3267 1x SM64JBCK (u52)(equivalent to YM3812)
3268 3x 45580D (amplifier)(u58,u59,u60)
3269 2x custom SUBSINO_SS9100_3512201V (SMT 44pins)(u10,u19)
3270 1x oscillator 4.433619MHz
3271 1x oscillator 12.000MHz
3272
3273 ROMs:
3274
3275 2x 27C1001 (u54,u17)
3276 1x 27C512 (u18)
3277 1x 27C010 (u16)
3278 3x N82S129AN (u11,u12,u13)
3279 4x GAL16V8B (u2,u37,u45,u46)(not dumped)
3280 2x TIBPAL16L8 (u43,u44)(not dumped)
3281
3282 Other:
3283
3284 1x 36x2 edge connector (con5)
3285 1x 10x2 edge connector (con4)
3286 1x battery
3287 1x trimmer (volume)
3288 1x pushbutton (sw5)
3289 4x 8x2 switches dip (sw1,sw2,sw3,sw4)
3290
3291 Info by f205v (25/03/2008)
3292
3293 ***************************************************************************/
3294
3295 ROM_START( sharkpya )
3296 ROM_REGION( 0x14000, "maincpu", 0 )
3297 ROM_LOAD( "shark1.6.u18", 0x0a000, 0x6000, CRC(365312a0) SHA1(de8370b1f35e8d071185d2e5f2fbd2fdf74c55ac) )
3298 ROM_CONTINUE(0x0000, 0xa000)
3299
3300 ROM_REGION( 0x40000, "tilemap", 0 )
3301 ROM_LOAD( "shark_n.3.u16", 0x00000, 0x08000, CRC(a7a715ce) SHA1(38b93e05377d9cb816688f5070e847480f195c6b) )
3302 ROM_CONTINUE( 0x10000, 0x08000 )
3303 ROM_CONTINUE( 0x08000, 0x08000 )
3304 ROM_CONTINUE( 0x18000, 0x08000 )
3305 ROM_LOAD( "shark_n.2.u17", 0x20000, 0x08000, CRC(c27f3d0a) SHA1(77c8eb0322c5b9c89777cb080d26ecf9abe01ae7) )
3306 ROM_CONTINUE( 0x30000, 0x08000 )
3307 ROM_CONTINUE( 0x28000, 0x08000 )
3308 ROM_CONTINUE( 0x38000, 0x08000 )
3309
3310 ROM_REGION( 0x40000, "oki", 0 )
3311 ROM_LOAD( "shark=ii=-italy_4_ver1.0.u54", 0x00000, 0x20000, CRC(9f384c59) SHA1(d2b087b8370b40b6f0944de661ea6aebaebea06f) )
3312
3313 ROM_REGION( 0x300, "proms", 0 )
3314 ROM_LOAD( "sn82s129an.u11", 0x000, 0x100, CRC(daf3657a) SHA1(93005938e2d60d54e7bbf1e234bba3802ee1af21) )
3315 ROM_LOAD( "sn82s129an.u12", 0x100, 0x100, CRC(5a7a25ed) SHA1(eebd679195e6ea50f64f3c46cd06ee21a1550491) )
3316 ROM_LOAD( "sn82s129an.u13", 0x200, 0x100, CRC(0ef5f218) SHA1(a02cf266661385aa078563bd83240d36549c1cf0) )
3317 ROM_END
3318
3319 /***************************************************************************
3320
3321 Shark Party (English, Alpha license)
3322
3323 - Different inputs system.
3324 - Different DIP Switches.
3325 - Different Button-Lamps outputs.
3326
3327 ***************************************************************************/
3328
3329 ROM_START( sharkpye )
3330 ROM_REGION( 0x14000, "maincpu", 0 )
3331 ROM_LOAD( "sharkpye.u18", 0x0a000, 0x6000, CRC(12473814) SHA1(9c24ed41781aefee0161add912e730ba0d4f4d3e) )
3332 ROM_CONTINUE(0x0000, 0xa000)
3333
3334 ROM_REGION( 0x40000, "tilemap", 0 )
3335 ROM_LOAD( "sharkpye.u16", 0x00000, 0x08000, CRC(90862185) SHA1(9d632bfa707d3449a87d7f370eb2b5c36e61aadd) )
3336 ROM_CONTINUE( 0x10000, 0x08000 )
3337 ROM_CONTINUE( 0x08000, 0x08000 )
3338 ROM_CONTINUE( 0x18000, 0x08000 )
3339 ROM_LOAD( "sharkpye.u17", 0x20000, 0x08000, CRC(b7b6119a) SHA1(b61c77d2170d96fcb39ea31c4136387441b9037f) )
3340 ROM_CONTINUE( 0x30000, 0x08000 )
3341 ROM_CONTINUE( 0x28000, 0x08000 )
3342 ROM_CONTINUE( 0x38000, 0x08000 )
3343
3344 ROM_REGION( 0x40000, "oki", 0 )
3345 ROM_LOAD( "sharkpye.u54", 0x00000, 0x20000, CRC(9f384c59) SHA1(d2b087b8370b40b6f0944de661ea6aebaebea06f) )
3346
3347 ROM_REGION( 0x300, "proms", 0 )
3348 ROM_LOAD( "n82s129an.u11", 0x000, 0x100, CRC(daf3657a) SHA1(93005938e2d60d54e7bbf1e234bba3802ee1af21) )
3349 ROM_LOAD( "n82s129an.u12", 0x100, 0x100, CRC(5a7a25ed) SHA1(eebd679195e6ea50f64f3c46cd06ee21a1550491) )
3350 ROM_LOAD( "n82s129an.u13", 0x200, 0x100, CRC(0ef5f218) SHA1(a02cf266661385aa078563bd83240d36549c1cf0) )
3351 ROM_END
3352
3353
3354 /****************************************************************************
3355
3356 Victor 6 (Subsino/Alpha)
3357
3358 SET MAINRATE MAXBET
3359 ----------------------------
3360 victor6 87-101% 50
3361 victor6a 94-101% 80
3362 victor6b 94-101% 80 (no 10 option)
3363
3364
3365 ****************************************************************************/
3366
3367 ROM_START( victor6 )
3368 ROM_REGION( 0x14000, "maincpu", 0 )
3369 ROM_LOAD( "victor_6ii-rom_1.ver2.3n.u18", 0x0a000, 0x6000, CRC(d496ecbd) SHA1(1f982b42bc46c09298916a6cb2db0b38c6451ec3) )
3370 ROM_CONTINUE(0x0000, 0xa000)
3371
3372 ROM_REGION( 0x40000, "tilemap", 0 )
3373 ROM_LOAD( "victor_6ii-rom_3_ver1.0.u16", 0x00000, 0x08000, CRC(4e96c30a) SHA1(4989b10a52ba61459864aa44be9ebafe68b4d231) )
3374 ROM_CONTINUE( 0x10000, 0x08000 )
3375 ROM_CONTINUE( 0x08000, 0x08000 )
3376 ROM_CONTINUE( 0x18000, 0x08000 )
3377 ROM_LOAD( "victor_6ii-rom_2_ver1.0.u17", 0x20000, 0x08000, CRC(4630a1da) SHA1(a14df7d7047350a7b1ae485570869d9fa50a2f6d) )
3378 ROM_CONTINUE( 0x30000, 0x08000 )
3379 ROM_CONTINUE( 0x28000, 0x08000 )
3380 ROM_CONTINUE( 0x38000, 0x08000 )
3381
3382 ROM_REGION( 0x40000, "oki", 0 )
3383 ROM_LOAD( "victor_6ii-rom_4_ver1.0.u54", 0x00000, 0x20000, CRC(ed2a6ff8) SHA1(b776b85a350cd0176ffa04248084475d07ac5bfa) )
3384
3385 ROM_REGION( 0x300, "proms", 0 )
3386 ROM_LOAD( "n82s129.u11", 0x000, 0x100, CRC(e8d7c8c3) SHA1(26ea907e45e70269956f842817b2d827cbc647ec) )
3387 ROM_LOAD( "n82s129.u12", 0x100, 0x100, CRC(4cee9225) SHA1(bb784ff636f90de3965272021f610abb41e0d40d) )
3388 ROM_LOAD( "n82s129.u13", 0x200, 0x100, CRC(b135c3eb) SHA1(54b04c5c4eb3a769123f2630740f0575e2ea6ff2) )
3389 ROM_END
3390
3391 ROM_START( victor6a )
3392 ROM_REGION( 0x14000, "maincpu", 0 )
3393 ROM_LOAD( "victor_6ii_alpha_1_ver2.3.u18", 0x0a000, 0x6000, CRC(2a3eaecd) SHA1(18bf2dfec8cd5690d6465f750093942afda66475) )
3394 ROM_CONTINUE(0x0000, 0xa000)
3395
3396 ROM_REGION( 0x40000, "tilemap", 0 )
3397 ROM_LOAD( "victor_6ii-rom_3_ver1.0.u16", 0x00000, 0x08000, CRC(4e96c30a) SHA1(4989b10a52ba61459864aa44be9ebafe68b4d231) )
3398 ROM_CONTINUE( 0x10000, 0x08000 )
3399 ROM_CONTINUE( 0x08000, 0x08000 )
3400 ROM_CONTINUE( 0x18000, 0x08000 )
3401 ROM_LOAD( "victor_6ii-rom_2_ver1.0.u17", 0x20000, 0x08000, CRC(4630a1da) SHA1(a14df7d7047350a7b1ae485570869d9fa50a2f6d) )
3402 ROM_CONTINUE( 0x30000, 0x08000 )
3403 ROM_CONTINUE( 0x28000, 0x08000 )
3404 ROM_CONTINUE( 0x38000, 0x08000 )
3405
3406 ROM_REGION( 0x40000, "oki", 0 )
3407 ROM_LOAD( "victor_6ii-rom_4_ver1.0.u54", 0x00000, 0x20000, CRC(ed2a6ff8) SHA1(b776b85a350cd0176ffa04248084475d07ac5bfa) )
3408
3409 ROM_REGION( 0x300, "proms", 0 )
3410 ROM_LOAD( "n82s129.u11", 0x000, 0x100, CRC(e8d7c8c3) SHA1(26ea907e45e70269956f842817b2d827cbc647ec) )
3411 ROM_LOAD( "n82s129.u12", 0x100, 0x100, CRC(4cee9225) SHA1(bb784ff636f90de3965272021f610abb41e0d40d) )
3412 ROM_LOAD( "n82s129.u13", 0x200, 0x100, CRC(b135c3eb) SHA1(54b04c5c4eb3a769123f2630740f0575e2ea6ff2) )
3413 ROM_END
3414
3415 ROM_START( victor6b )
3416 ROM_REGION( 0x14000, "maincpu", 0 )
3417 ROM_LOAD( "victor_6ii_rom_1_ver1.2.u18", 0x0a000, 0x6000, CRC(309876fc) SHA1(305c4cf347b512607e2c58a580075a34b48bedd5) )
3418 ROM_CONTINUE(0x0000, 0xa000)
3419
3420 ROM_REGION( 0x40000, "tilemap", 0 )
3421 ROM_LOAD( "victor_6ii-rom_3_ver1.0.u16", 0x00000, 0x08000, CRC(4e96c30a) SHA1(4989b10a52ba61459864aa44be9ebafe68b4d231) )
3422 ROM_CONTINUE( 0x10000, 0x08000 )
3423 ROM_CONTINUE( 0x08000, 0x08000 )
3424 ROM_CONTINUE( 0x18000, 0x08000 )
3425 ROM_LOAD( "victor_6ii-rom_2_ver1.0.u17", 0x20000, 0x08000, CRC(4630a1da) SHA1(a14df7d7047350a7b1ae485570869d9fa50a2f6d) )
3426 ROM_CONTINUE( 0x30000, 0x08000 )
3427 ROM_CONTINUE( 0x28000, 0x08000 )
3428 ROM_CONTINUE( 0x38000, 0x08000 )
3429
3430 ROM_REGION( 0x40000, "oki", 0 )
3431 ROM_LOAD( "victor_6ii-rom_4_ver1.0.u54", 0x00000, 0x20000, CRC(ed2a6ff8) SHA1(b776b85a350cd0176ffa04248084475d07ac5bfa) )
3432
3433 ROM_REGION( 0x300, "proms", 0 )
3434 ROM_LOAD( "n82s129.u11", 0x000, 0x100, CRC(e8d7c8c3) SHA1(26ea907e45e70269956f842817b2d827cbc647ec) )
3435 ROM_LOAD( "n82s129.u12", 0x100, 0x100, CRC(4cee9225) SHA1(bb784ff636f90de3965272021f610abb41e0d40d) )
3436 ROM_LOAD( "n82s129.u13", 0x200, 0x100, CRC(b135c3eb) SHA1(54b04c5c4eb3a769123f2630740f0575e2ea6ff2) )
3437 ROM_END
3438
3439
3440 /***************************************************************************
3441
3442 Super Rider (Italy Ver 1.6)
3443 (C)1996 Subsino
3444
3445 Chips:
3446
3447 2x custom QFP44 label SUBSINOSS9100
3448 1x custom DIP42 label SUBSINOSS9101
3449 2x FILE KD89C55A (equivalent to 8255)
3450 1x custom QFP44 label M28 (sound)(equivalent to M6295)
3451 1x custom DIP24 label K-666 (sound)(equivalent to YM3812)
3452 1x custom DIP8 label K-664 (sound)(equivalent to YM3014)
3453 1x oscillator 12.000MHz (main)
3454 1x oscillator 4.43361MHz (sound)
3455
3456 ROMs:
3457
3458 1x TMS27C512 (1)
3459 2x TMS27C010A (2,3)(main)
3460 1x TMS27C010A (4) (sound)
3461 3x PROM N82S129AN
3462
3463 Other:
3464
3465 1x 10x2 edge connector (looks like a coin payout)
3466 1x 36x2 edge connector
3467 1x battery 3.6V NiCd
3468 1x pushbutton (sw5)
3469 4x 8 switches dips (sw1-4)
3470 1x trimmer (volume)
3471 1x BIG BLACK BOX (on top of the box there is a small door closing a button-battery; for sure there is more in it, but I do not know how to open it / tore it apart)
3472
3473 This game is the official Italian version of "Super Rider" by Subsino
3474
3475 Info by f205v (29/12/2005)
3476
3477 ***************************************************************************/
3478
3479 ROM_START( smoto16 )
3480 ROM_REGION( 0x10000, "maincpu", 0 )
3481 ROM_LOAD( "rideritaly_1ver1.6.u18", 0x0000, 0x10000, CRC(c7c0c3e8) SHA1(5dc80bc775f370653135a7b3ea9c8d3c92263804) )
3482
3483 ROM_REGION( 0x40000, "tilemap", 0 )
3484 ROM_LOAD( "rideritaly_3ver1.6.u16", 0x00000, 0x08000, CRC(998a8feb) SHA1(27f08b23f2dd3736f4f12f489d9a3aa096c99e8a) )
3485 ROM_CONTINUE( 0x10000, 0x08000 )
3486 ROM_CONTINUE( 0x08000, 0x08000 )
3487 ROM_CONTINUE( 0x18000, 0x08000 )
3488 ROM_LOAD( "rideritaly_2ver1.6.u17", 0x20000, 0x08000, CRC(bdf9bf26) SHA1(49e7c0b99fec06dca5816eb7e38aed025efcaaa7) )
3489 ROM_CONTINUE( 0x30000, 0x08000 )
3490 ROM_CONTINUE( 0x28000, 0x08000 )
3491 ROM_CONTINUE( 0x38000, 0x08000 )
3492
3493 ROM_REGION( 0x40000, "oki", 0 )
3494 ROM_LOAD( "rideritaly_4ver1.6.u54", 0x00000, 0x20000, CRC(df828563) SHA1(f39324c5c37486ed9512e0ff934394556dd182ae) )
3495
3496 ROM_REGION( 0x300, "proms", 0 )
3497 ROM_LOAD( "prom-n82s129an.u11", 0x000, 0x100, CRC(e17730a6) SHA1(50c730b24e1d3d205c70f9381e4136e2ba6e499a) )
3498 ROM_LOAD( "prom-n82s129an.u12", 0x100, 0x100, CRC(df848861) SHA1(f7e382f8b56d6b9f2af6c7a48a19e3631a64bb6d) )
3499 ROM_LOAD( "prom-n82s129an.u13", 0x200, 0x100, CRC(9cb4a5c0) SHA1(0e0a368329c6d1cb685ed655d699a4894988fdb1) )
3500 ROM_END
3501
3502 void subsino_state::init_smoto16()
3503 {
3504 uint8_t *rom = memregion( "maincpu" )->base();
3505 rom[0x12d0] = 0x20; // "ERROR 951010"
3506 }
3507
3508 /***************************************************************************
3509
3510 Super Rider (Italy Ver 2.0)
3511 (C)1997 Subsino
3512
3513 Chips:
3514
3515 2x custom QFP44 label SUBSINOSS9100
3516 1x custom DIP42 label SUBSINOSS9101
3517 2x D8255AC-2 (equivalent to 8255)
3518 1x custom QFP44 label K-665 (sound)(equivalent to OKI M6295)
3519 1x custom DIP24 label SM64 (sound)(equivalent to YM3812)
3520 1x custom DIP8 label K-664 (sound)(equivalent to YM3014)
3521 1x oscillator 12.000MHz (main)
3522 1x oscillator 4.433619MHz (sound)
3523
3524 ROMs:
3525
3526 1x 27C512 (1)
3527 2x M27C1001 (2,3)(main)
3528 1x M27C1001 (4) (sound)
3529 3x PROM N82S129AN
3530 3x PALCE16V8H (not dumped)
3531 2x TIBPAL16L8B (not dumped)
3532 1x GAL16V8B (not dumped)
3533
3534 Other:
3535
3536 1x 10x2 edge connector (looks like a coin payout)
3537 1x 36x2 edge connector
3538 1x battery 3.6V NiCd
3539 4x 8 switches dips (sw1-4)
3540 1x trimmer (volume)
3541 1x BIG BLACK BOX (on top of the box there is a small door closing a button-battery; for sure there is more in it, but I do not know how to open it / tore it apart)
3542
3543 This game is the official Italian version of "Super Rider" by Subsino
3544
3545 Info by f205v, Corrado Tomaselli (20/04/2008)
3546
3547 ***************************************************************************/
3548
3549 ROM_START( smoto20 )
3550 ROM_REGION( 0x10000, "maincpu", 0 )
3551 ROM_LOAD( "italyv2.0-25.u18", 0x00000, 0x10000, CRC(91abc76e) SHA1(b0eb3afda1d94111056559017802b16b2e72a9a5) )
3552
3553 ROM_REGION( 0x40000, "tilemap", 0 )
3554 ROM_LOAD( "3.u16", 0x00000, 0x08000, CRC(44b44385) SHA1(27c2865e52ab67aa8e077e8e1202cbf2addc0dfc) )
3555 ROM_CONTINUE( 0x10000, 0x08000 )
3556 ROM_CONTINUE( 0x08000, 0x08000 )
3557 ROM_CONTINUE( 0x18000, 0x08000 )
3558 ROM_LOAD( "2.u17", 0x20000, 0x08000, CRC(380fc964) SHA1(4a5076d90cb94e2ffeec7534ce64d4cdb320f374) )
3559 ROM_CONTINUE( 0x30000, 0x08000 )
3560 ROM_CONTINUE( 0x28000, 0x08000 )
3561 ROM_CONTINUE( 0x38000, 0x08000 )
3562
3563 ROM_REGION( 0x40000, "oki", 0 )
CRC(df828563)3564 ROM_LOAD( "rom4ver1.0.u54", 0x00000, 0x20000, CRC(df828563) SHA1(f39324c5c37486ed9512e0ff934394556dd182ae) )
3565
3566 ROM_REGION( 0x300, "proms", 0 )
3567 ROM_LOAD( "82s129.u11", 0x000, 0x100, CRC(e17730a6) SHA1(50c730b24e1d3d205c70f9381e4136e2ba6e499a) )
3568 ROM_LOAD( "82s129.u12", 0x100, 0x100, CRC(df848861) SHA1(f7e382f8b56d6b9f2af6c7a48a19e3631a64bb6d) )
3569 ROM_LOAD( "82s129.u13", 0x200, 0x100, CRC(9cb4a5c0) SHA1(0e0a368329c6d1cb685ed655d699a4894988fdb1) )
3570 ROM_END
3571
3572
3573 /***************************************************************************
3574
3575 Treasure Bonus
3576 (C) American Alpha
3577
3578 CPU module marked 'Super Treasure Island'
3579
3580 ***************************************************************************/
3581
3582 ROM_START( stbsub )
3583 ROM_REGION( 0x10000, "maincpu", 0 )
3584 ROM_LOAD( "trbon-rlu16.u12", 0x00000, 0x10000, CRC(07771290) SHA1(c485943045396d8580271504a1fec7c88579f4a2) )
3585
3586 ROM_REGION( 0x100000, "tilemap", 0 )
3587 ROM_LOAD( "sti-alpha_2-ver1.1.u30", 0x00000, 0x40000, CRC(3bc4c8c5) SHA1(12e868f4b4d4df6b59befcd785ab1fe5c1def58d) )
3588 ROM_LOAD( "sti-alpha_3-ver1.1.u29", 0x40000, 0x40000, CRC(5473c41a) SHA1(94294887af8ffc4f2edbcbde1c51797f20c44efe) )
3589 ROM_LOAD( "sti-alpha_4-ver1.1.u28", 0x80000, 0x40000, CRC(ccf895e1) SHA1(c12ecf0577b5b856d8202474f084003cc95da51c) )
3590 ROM_LOAD( "sti-alpha_5-ver1.1.u27", 0xc0000, 0x40000, CRC(98eed855) SHA1(89291b1b143924caa79a6d694f10c14d93c57eac) )
3591
3592 ROM_REGION( 0x80000, "reels", 0 )
3593 ROM_LOAD( "sti-alpha_6-ver1.1.u25", 0x00000, 0x20000, CRC(83471a70) SHA1(c63e4c1a8cfb6e7feae4fd97f7d77feaf63c949b) )
3594 ROM_LOAD( "sti-alpha_7-ver1.1.u24", 0x20000, 0x20000, CRC(05bc7ed2) SHA1(23ae716cd149ee940ac4bdc114fbfeb290e91b11) )
3595 ROM_LOAD( "sti-alpha_8-ver1.1.u23", 0x40000, 0x20000, CRC(d3c11545) SHA1(0383358d223c9bfe67c3b5de7a9cc3e43a9769b2) )
3596 ROM_LOAD( "sti-alpha_9-ver1.1.u22", 0x60000, 0x20000, CRC(9710a223) SHA1(76ef6bd77ae33d91a9b6a9a615d07caee3356dfb) )
3597 ROM_END
3598
3599 ROM_START( stisub )
3600 ROM_REGION( 0x10000, "maincpu", 0 )
3601 ROM_LOAD( "b1", 0x00000, 0x10000, CRC(3f7adf66) SHA1(6ff37d070c7866133853c7cb3e2fbcb5610d87e8) )
3602
3603 ROM_REGION( 0x100000, "tilemap", 0 )
3604 ROM_LOAD( "-2.u30", 0x00000, 0x40000, CRC(60596c9c) SHA1(6cea104539957bacb857bb14f967633e8cd729c0) )
3605 ROM_LOAD( "b-3.u29", 0x40000, 0x40000, CRC(eb0968d3) SHA1(5313150725d9b7019ddaddc0b1cdb92330ab0b49) )
3606 ROM_LOAD( "b-4.u28", 0x80000, 0x40000, CRC(ee5024ba) SHA1(cf65bbee12f6aaf8bb22c2a03e7b360fa58f3b80) )
3607 ROM_LOAD( "a-5.u27", 0xc0000, 0x40000, CRC(6748c76d) SHA1(1013f5924c584df4bd6a1a3dbd0fff96c1313ed3) )
3608
3609 ROM_REGION( 0x80000, "reels", 0 )
3610 ROM_LOAD( "a-6.u25", 0x00000, 0x20000, CRC(69a19c43) SHA1(d90a59bfee500ea9b1a21f60bc2fd7c3ddadb6a6) )
3611 ROM_LOAD( "b-7.u24", 0x20000, 0x20000, CRC(09173bec) SHA1(c9bf491a9d4009d1debf7a19657129a209f02768) )
3612 ROM_LOAD( "b-8.u23", 0x40000, 0x20000, CRC(10ff8fdf) SHA1(1f07ce5517c816852e5b739e3170d104c080ea18) )
3613 ROM_LOAD( "a-9.u22", 0x60000, 0x20000, CRC(ce1e9a3d) SHA1(263e396058e74ae55834dc028b477eb21ceab9b9) )
3614 ROM_END
3615
3616
3617 /***************************************************************************
3618
3619 Tesorone Dell'Isola (2 sets)
3620 (C) Subsino
3621
3622 Italian version of "Treasure Bonus"
3623
3624 PCB: SN01256-3 CS186P006-1 (same as "Treasure Bonus")
3625
3626 Chips:
3627
3628 1x pLSI 1032-60
3629 2x FILE KD89C55A (equivalent to 8255)
3630 1x K-664 (equivalent to YM3014)
3631 1x K-665 (equivalent to M6295)
3632 1x K-666 (equivalent to YM3812)
3633 1x custom DIP42 SUBSINO SS9101
3634 1x HMC HM86171-80 (RAMDAC)
3635
3636 2x oscillator 12.000MHz ?
3637 1x oscillator 4.43361MHz ?
3638
3639 Other:
3640
3641 1x empty ROM socket for upgrades
3642 1x battery (unpopulated)
3643 1x 6x2 edge connector (con2)
3644 1x 36x2 edge connector
3645 1x pushbutton (sw5)
3646 4x 8 switches dips (sw1-4)
3647 1x trimmer (volume)
3648 1x BIG BLACK BOX
3649
3650 ***************************************************************************/
3651
3652 ROM_START( tesorone )
3653 ROM_REGION( 0x10000, "maincpu", 0 )
3654 ROM_LOAD( "tesorone.d.isol.italy_1ver2.41.u12", 0x00000, 0x10000, CRC(b019b689) SHA1(ba7acd15842b29e6ac37795a4d6e0f93d99393a4) )
3655
3656 ROM_REGION( 0x100000, "tilemap", 0 )
3657 ROM_LOAD( "tesorone.d.isol.italy_2ver1.7.u30", 0x00000, 0x40000, CRC(295887c5) SHA1(b36914977b276ac5e5e31902dff28796f3a28ea1) )
3658 ROM_LOAD( "tesorone.d.isol.italy_3ver1.7.u29", 0x40000, 0x40000, CRC(89469522) SHA1(ba373900e0310aad3d04ff58909f6144d9b689a7) )
3659 ROM_LOAD( "tesorone.d.isol.italy_4ver1.7.u28", 0x80000, 0x40000, CRC(2092a368) SHA1(05e1af15761e0186ea7ddb8b82c177e35fcdd382) )
3660 ROM_LOAD( "tesorone.d.isol.italy_5ver1.7.u27", 0xc0000, 0x40000, CRC(57870bad) SHA1(7a3342c5cc3ed5f48d2dda224913eb357aeb401b) )
3661
3662 ROM_REGION( 0x80000, "reels", 0 )
3663 ROM_LOAD( "tesorone.d.isol.italy_6ver1.7.u25", 0x00000, 0x20000, CRC(e5578d00) SHA1(28882131d13f052bc31c3fc1b6dc5d9e45d30e82) )
3664 ROM_LOAD( "tesorone.d.isol.italy_7ver1.7.u24", 0x20000, 0x20000, CRC(c29a7841) SHA1(7bec4a4db0b545b9b9d9a4c14efa9442e7738d8a) )
3665 ROM_LOAD( "tesorone.d.isol.italy_8ver1.7.u23", 0x40000, 0x20000, CRC(2b4b195a) SHA1(cb165f6737231ae52dbf9775fff13b778835fcac) )
3666 ROM_LOAD( "tesorone.d.isol.italy_9ver1.7.u22", 0x60000, 0x20000, CRC(1c9f754e) SHA1(7b2feeeaaa4845d2fcfebb2c1bc4d6b69d937400) )
3667 ROM_END
3668
3669 ROM_START( tesorone230 )
3670 ROM_REGION( 0x10000, "maincpu", 0 )
3671 ROM_LOAD( "tesorone.d.isol.italy_1ver2.3.u12", 0x00000, 0x10000, CRC(46cd019b) SHA1(40412ac1234ae0f31b13c4d3b48681da34f1ded9) )
3672
3673 ROM_REGION( 0x100000, "tilemap", 0 )
3674 ROM_LOAD( "tesorone.d.isol.italy_2ver1.7.u30", 0x00000, 0x40000, CRC(295887c5) SHA1(b36914977b276ac5e5e31902dff28796f3a28ea1) )
3675 ROM_LOAD( "tesorone.d.isol.italy_3ver1.7.u29", 0x40000, 0x40000, CRC(89469522) SHA1(ba373900e0310aad3d04ff58909f6144d9b689a7) )
3676 ROM_LOAD( "tesorone.d.isol.italy_4ver1.7.u28", 0x80000, 0x40000, CRC(2092a368) SHA1(05e1af15761e0186ea7ddb8b82c177e35fcdd382) )
3677 ROM_LOAD( "tesorone.d.isol.italy_5ver1.7.u27", 0xc0000, 0x40000, CRC(57870bad) SHA1(7a3342c5cc3ed5f48d2dda224913eb357aeb401b) )
3678
3679 ROM_REGION( 0x80000, "reels", 0 )
3680 ROM_LOAD( "tesorone.d.isol.italy_6ver1.7.u25", 0x00000, 0x20000, CRC(e5578d00) SHA1(28882131d13f052bc31c3fc1b6dc5d9e45d30e82) )
3681 ROM_LOAD( "tesorone.d.isol.italy_7ver1.7.u24", 0x20000, 0x20000, CRC(c29a7841) SHA1(7bec4a4db0b545b9b9d9a4c14efa9442e7738d8a) )
3682 ROM_LOAD( "tesorone.d.isol.italy_8ver1.7.u23", 0x40000, 0x20000, CRC(2b4b195a) SHA1(cb165f6737231ae52dbf9775fff13b778835fcac) )
3683 ROM_LOAD( "tesorone.d.isol.italy_9ver1.7.u22", 0x60000, 0x20000, CRC(1c9f754e) SHA1(7b2feeeaaa4845d2fcfebb2c1bc4d6b69d937400) )
3684 ROM_END
3685
3686 ROM_START( tesorone240 )
3687 ROM_REGION( 0x10000, "maincpu", 0 )
3688 ROM_LOAD( "tesorone.d.isol.italy_1ver2.4.u12", 0x00000, 0x10000, CRC(6a7d5395) SHA1(448184b78b6a3e28f891731c83a4e2d1e283c205) )
3689
3690 ROM_REGION( 0x100000, "tilemap", 0 )
3691 ROM_LOAD( "tesorone.d.isol.italy_2ver1.7.u30", 0x00000, 0x40000, CRC(295887c5) SHA1(b36914977b276ac5e5e31902dff28796f3a28ea1) )
3692 ROM_LOAD( "tesorone.d.isol.italy_3ver1.7.u29", 0x40000, 0x40000, CRC(89469522) SHA1(ba373900e0310aad3d04ff58909f6144d9b689a7) )
3693 ROM_LOAD( "tesorone.d.isol.italy_4ver1.7.u28", 0x80000, 0x40000, CRC(2092a368) SHA1(05e1af15761e0186ea7ddb8b82c177e35fcdd382) )
3694 ROM_LOAD( "tesorone.d.isol.italy_5ver1.7.u27", 0xc0000, 0x40000, CRC(57870bad) SHA1(7a3342c5cc3ed5f48d2dda224913eb357aeb401b) )
3695
3696 ROM_REGION( 0x80000, "reels", 0 )
3697 ROM_LOAD( "tesorone.d.isol.italy_6ver1.7.u25", 0x00000, 0x20000, CRC(e5578d00) SHA1(28882131d13f052bc31c3fc1b6dc5d9e45d30e82) )
3698 ROM_LOAD( "tesorone.d.isol.italy_7ver1.7.u24", 0x20000, 0x20000, CRC(c29a7841) SHA1(7bec4a4db0b545b9b9d9a4c14efa9442e7738d8a) )
3699 ROM_LOAD( "tesorone.d.isol.italy_8ver1.7.u23", 0x40000, 0x20000, CRC(2b4b195a) SHA1(cb165f6737231ae52dbf9775fff13b778835fcac) )
3700 ROM_LOAD( "tesorone.d.isol.italy_9ver1.7.u22", 0x60000, 0x20000, CRC(1c9f754e) SHA1(7b2feeeaaa4845d2fcfebb2c1bc4d6b69d937400) )
3701 ROM_END
3702
3703
3704 /***************************************************************************
3705
3706 This is allegedly Magic Train - Clear NVRAM ROM:
3707
3708 Subsino sold a "Settings/Clear ROM" for some released titles.
3709 These devices are *extremely* expensive (and ultra rare, only sold
3710 to big casino corporations), and should be placed in the empty socket
3711 to fix a dead board due to NVRAM corruption.
3712
3713 A version of Magic Train running on subsino.cpp (unlike mtrain, which is
3714 subsino2.cpp) is needed to match this program ROM.
3715
3716 ***************************************************************************/
3717
3718 ROM_START( mtrainnv )
3719 ROM_REGION( 0x10000, "maincpu", 0 )
3720 ROM_LOAD( "mtrain_settings.bin", 0x00000, 0x10000, CRC(584af1b5) SHA1(91d966d282823dddfdc455bb03728fcdf3713dd7) )
3721
3722 ROM_REGION( 0x10000, "tilemap", 0 )
3723 ROM_LOAD( "mtrain_tilemap.bin", 0x00000, 0x10000, NO_DUMP )
3724 ROM_COPY( "maincpu", 0x000000, 0x00000, 0x10000 ) // just to show something
3725
3726 ROM_REGION( 0x10000, "reels", 0 )
3727 ROM_LOAD( "mtrain_reels.bin", 0x00000, 0x10000, NO_DUMP )
3728 ROM_COPY( "maincpu", 0x000000, 0x00000, 0x10000 ) // just to show something
3729 ROM_END
3730
3731
3732 /***************************************************************************
3733 * Driver Init / Decryption *
3734 ***************************************************************************/
3735
3736 void subsino_state::init_victor5()
3737 {
3738 subsino_decrypt(machine(), victor5_bitswaps, victor5_xors, 0xc000);
3739
3740 save_item(NAME(m_flash_packet));
3741 save_item(NAME(m_flash_packet_start));
3742 save_item(NAME(m_flash_val));
3743 }
3744
init_victor21()3745 void subsino_state::init_victor21()
3746 {
3747 subsino_decrypt(machine(), victor21_bitswaps, victor21_xors, 0xc000);
3748 }
3749
init_crsbingo()3750 void subsino_state::init_crsbingo()
3751 {
3752 subsino_decrypt(machine(), crsbingo_bitswaps, crsbingo_xors, 0xc000);
3753
3754 save_item(NAME(m_flash_packet));
3755 save_item(NAME(m_flash_packet_start));
3756 save_item(NAME(m_flash_val));
3757 }
3758
init_sharkpy()3759 void subsino_state::init_sharkpy()
3760 {
3761 subsino_decrypt(machine(), sharkpy_bitswaps, sharkpy_xors, 0xa000);
3762 }
3763
init_sharkpye()3764 void subsino_state::init_sharkpye()
3765 {
3766 subsino_decrypt(machine(), victor5_bitswaps, victor5_xors, 0xa000);
3767 }
3768
init_smoto20()3769 void subsino_state::init_smoto20()
3770 {
3771 uint8_t *rom = memregion( "maincpu" )->base();
3772 rom[0x12e1] = 0x20; // "ERROR 951010"
3773 }
3774
init_tisub()3775 void subsino_state::init_tisub()
3776 {
3777 uint8_t *rom = memregion( "maincpu" )->base();
3778
3779 init_victor5();
3780
3781 /* this trips a z180 MMU core bug? It unmaps a region then the program code jumps to that region... */
3782 rom[0x64c8] = 0x00;
3783 rom[0x64c9] = 0x00;
3784 rom[0x64ca] = 0x00;
3785 rom[0x64cd] = 0x00;
3786 rom[0x64ce] = 0x00;
3787 rom[0x64cf] = 0x00;
3788 }
3789
init_tisuba()3790 void subsino_state::init_tisuba()
3791 {
3792 uint8_t *rom = memregion( "maincpu" )->base();
3793
3794 init_victor5();
3795
3796 /* this trips a z180 MMU core bug? It unmaps a region then the program code jumps to that region... */
3797 rom[0x6491] = 0x00;
3798 rom[0x6492] = 0x00;
3799 rom[0x6493] = 0x00;
3800 rom[0x6496] = 0x00;
3801 rom[0x6497] = 0x00;
3802 rom[0x6498] = 0x00;
3803 }
3804
init_stbsub()3805 void subsino_state::init_stbsub()
3806 {
3807 #if 1
3808 uint8_t *rom = memregion( "maincpu" )->base();
3809 rom[0x1005] = 0x1d; //patch protection check
3810 rom[0x7ab] = 0x18; //patch "winning protection" check
3811 rom[0x957] = 0x18; //patch "losing protection" check
3812 #endif
3813
3814 for (uint8_t reel = 0; reel < 3; reel++)
3815 {
3816 m_reel_scroll[reel].allocate(0x40);
3817
3818 m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200);
3819
3820 save_pointer(NAME(m_reel_attr[reel]), 0x200, reel);
3821 }
3822 }
3823
init_stisub()3824 void subsino_state::init_stisub()
3825 {
3826 uint8_t *rom = memregion( "maincpu" )->base();
3827 rom[0x0FA0] = 0x28;
3828 rom[0x0FA1] = 0x1d; //patch protection check
3829
3830 for (uint8_t reel = 0; reel < 3; reel++)
3831 {
3832 m_reel_scroll[reel].allocate(0x40);
3833
3834 m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200);
3835
3836 save_pointer(NAME(m_reel_attr[reel]), 0x200, reel);
3837 }
3838 }
3839
init_tesorone()3840 void subsino_state::init_tesorone()
3841 {
3842 #if 1
3843 uint8_t *rom = memregion( "maincpu" )->base();
3844 rom[0x10a4] = 0x18; //patch protection check ("ERROR 08073"):
3845 rom[0x10a5] = 0x11;
3846 rom[0x8b6] = 0x18; //patch "winning protection" check
3847 rom[0xa84] = 0x18; //patch "losing protection" check
3848 #endif
3849
3850 for (uint8_t reel = 0; reel < 3; reel++)
3851 {
3852 m_reel_scroll[reel].allocate(0x40);
3853
3854 m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200);
3855
3856 save_pointer(NAME(m_reel_attr[reel]), 0x200, reel);
3857 }
3858 }
3859
init_tesorone230()3860 void subsino_state::init_tesorone230()
3861 {
3862 #if 1
3863 uint8_t *rom = memregion( "maincpu" )->base(); //check this patch!!!!
3864 rom[0x10a8] = 0x18; //patch protection check ("ERROR 08073"):
3865 rom[0x10a9] = 0x11;
3866 rom[0x8ba] = 0x18; //patch "winning protection" check
3867 rom[0xa88] = 0x18; //patch "losing protection" check
3868 #endif
3869
3870 for (uint8_t reel = 0; reel < 3; reel++)
3871 {
3872 m_reel_scroll[reel].allocate(0x40);
3873
3874 m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200);
3875
3876 save_pointer(NAME(m_reel_attr[reel]), 0x200, reel);
3877 }
3878 }
3879
3880
init_mtrainnv()3881 void subsino_state::init_mtrainnv()
3882 {
3883 for (uint8_t reel = 0; reel < 3; reel++)
3884 {
3885 m_reel_scroll[reel].allocate(0x40);
3886
3887 m_reel_attr[reel] = std::make_unique<uint8_t[]>(0x200);
3888
3889 save_pointer(NAME(m_reel_attr[reel]), 0x200, reel);
3890 }
3891 }
3892
3893 /***************************************************************************
3894 * Game Drivers *
3895 ***************************************************************************/
3896
3897 // YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
3898 GAMEL( 1990, victor21, 0, victor21, victor21, subsino_state, init_victor21, ROT0, "Subsino / Buffy", "Victor 21", 0, layout_victor21 )
3899
3900 GAMEL( 1991, victor5, 0, victor5, victor5, subsino_state, init_victor5, ROT0, "Subsino / Buffy", "Victor 5", 0, layout_victor5 ) // Original PCB and game from Subsino.
3901 GAMEL( 1991, victor5a, victor5, victor5, victor5, subsino_state, init_victor5, ROT0, "Subsino", "G.E.A.", 0, layout_victor5 ) // PCB black-box was marked 'victor 5' - in-game says G.E.A with no manufacturer info?
3902
3903 GAMEL( 1992, tisub, 0, tisub, tisub, subsino_state, init_tisub, ROT0, "Subsino", "Treasure Island (Subsino, set 1)", 0, layout_tisub )
3904 GAMEL( 1992, tisuba, tisub, tisub, tisub, subsino_state, init_tisuba, ROT0, "Subsino", "Treasure Island (Subsino, set 2)", 0, layout_tisub )
3905
3906 GAMEL( 1991, crsbingo, 0, crsbingo, crsbingo, subsino_state, init_crsbingo, ROT0, "Subsino", "Poker Carnival", 0, layout_crsbingo )
3907
3908 GAMEL( 1995, stbsub, 0, stbsub, stbsub, subsino_state, init_stbsub, ROT0, "American Alpha", "Treasure Bonus (Subsino, v1.6)", 0, layout_stisub ) // board CPU module marked 'Super Treasure Island' (alt title?)
3909 GAMEL( 1995, stisub, stbsub, stbsub, stbsub, subsino_state, init_stisub, ROT0, "Subsino", "Super Treasure Island (Italy, v1.6)", MACHINE_NOT_WORKING, layout_stisub ) // need proper patches
3910 GAMEL( 1995, tesorone, stbsub, stbsub, tesorone, subsino_state, init_tesorone, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.41)", 0, layout_stisub )
3911 GAMEL( 1995, tesorone240, stbsub, stbsub, tesorone, subsino_state, init_tesorone, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.40)", 0, layout_stisub )
3912 GAMEL( 1995, tesorone230, stbsub, stbsub, tesorone, subsino_state, init_tesorone230, ROT0, "Subsino", "Tesorone Dell'Isola (Italy, v2.30)", 0, layout_stisub )
3913
3914 GAMEL( 1996, sharkpy, 0, sharkpy, sharkpy, subsino_state, init_sharkpy, ROT0, "Subsino", "Shark Party (Italy, v1.3)", 0, layout_sharkpy ) // missing POST messages?
3915 GAMEL( 1996, sharkpya, sharkpy, sharkpy, sharkpy, subsino_state, init_sharkpy, ROT0, "Subsino", "Shark Party (Italy, v1.6)", 0, layout_sharkpy ) // missing POST messages?
3916 GAMEL( 1995, sharkpye, sharkpy, sharkpy, sharkpye, subsino_state, init_sharkpye, ROT0, "American Alpha", "Shark Party (English, Alpha license)", 0, layout_sharkpye ) // PCB black-box was marked 'victor 6'
3917
3918 GAMEL( 1995, victor6, 0, sharkpy, victor6, subsino_state, init_sharkpye, ROT0, "American Alpha", "Victor 6 (v2.3N)", 0, layout_sharkpye ) // ^^
3919 GAMEL( 1995, victor6a, victor6, sharkpy, victor6a, subsino_state, init_sharkpye, ROT0, "American Alpha", "Victor 6 (v2.3)", 0, layout_sharkpye ) // ^^
3920 GAMEL( 1995, victor6b, victor6, sharkpy, victor6b, subsino_state, init_sharkpye, ROT0, "American Alpha", "Victor 6 (v1.2)", 0, layout_sharkpye ) // ^^ Version # according to label, not displayed
3921
3922 GAMEL( 1996, smoto20, 0, srider, smoto20, subsino_state, init_smoto20, ROT0, "Subsino", "Super Rider (Italy, v2.0)", 0, layout_smoto )
3923 GAMEL( 1996, smoto16, smoto20, srider, smoto16, subsino_state, init_smoto16, ROT0, "Subsino", "Super Moto (Italy, v1.6)", 0, layout_smoto )
3924
3925 GAME( 1996, mtrainnv, mtrain, mtrainnv, stbsub, subsino_state, init_mtrainnv, ROT0, "Subsino", "Magic Train (Clear NVRAM ROM?)", MACHINE_NOT_WORKING )
3926