~ubuntu-branches/ubuntu/raring/mame/raring-proposed

« back to all changes in this revision

Viewing changes to mess/src/mame/drivers/bfm_sc2.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Jordi Mallach, Emmanuel Kasper
  • Date: 2011-12-19 22:56:27 UTC
  • mfrom: (0.1.2)
  • Revision ID: package-import@ubuntu.com-20111219225627-ub5oga1oys4ogqzm
Tags: 0.144-1
[ Jordi Mallach ]
* Fix syntax errors in DEP5 copyright file (lintian).
* Use a versioned copyright Format specification field.
* Update Vcs-* URLs.
* Move transitional packages to the new metapackages section, and make
  them priority extra.
* Remove references to GNU/Linux and MESS sources from copyright.
* Add build variables for s390x.
* Use .xz tarballs as it cuts 4MB for the upstream sources.
* Add nplayers.ini as a patch. Update copyright file to add CC-BY-SA-3.0.

[ Emmanuel Kasper ]
* New upstream release. Closes: #651538.
* Add Free Desktop compliant png icons of various sizes taken from
  the hydroxygen iconset
* Mess is now built from a new source package, to avoid possible source
  incompatibilities between mame and the mess overlay.
* Mame-tools are not built from the mame source package anymore, but
  from the mess source package

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************************
2
 
 
3
 
    bfm_sc2.c
4
 
 
5
 
    Bellfruit scorpion2/3 driver, (under heavy construction !!!)
6
 
 
7
 
*****************************************************************************************
8
 
 
9
 
     04-2011: J Wallace: Fixed watchdog to match actual circuit, also fixed lamping code.
10
 
  30-12-2006: J Wallace: Fixed init routines.
11
 
  07-03-2006: El Condor: Recoded to more accurately represent the hardware setup.
12
 
  18-01-2006: Cleaned up for MAME inclusion
13
 
  19-08-2005: Re-Animator
14
 
 
15
 
Standard scorpion2 memorymap
16
 
The hardware in Scorpion 2 is effectively a Scorpion 1 board with better, non-compatible
17
 
microcontrollers, incorporating many of the old expansions on board.
18
 
 
19
 
   hex     |r/w| D D D D D D D D |
20
 
 location  |   | 7 6 5 4 3 2 1 0 | function
21
 
-----------+---+-----------------+-----------------------------------------
22
 
0000-1FFF  |R/W| D D D D D D D D | RAM (8k) battery backed up
23
 
-----------+---+-----------------+-----------------------------------------
24
 
2000-20FF  | W | D D D D D D D D | Reel 1 + 2 stepper latch
25
 
-----------+---+-----------------+-----------------------------------------
26
 
2000       | R | D D D D D D D D | vfd status
27
 
-----------+---+-----------------+-----------------------------------------
28
 
2100-21FF  | W | D D D D D D D D | Reel 3 + 4 stepper latch
29
 
-----------+---+-----------------+-----------------------------------------
30
 
2200-22FF  | W | D D D D D D D D | Reel 5 + 6 stepper latch
31
 
-----------+---+-----------------+-----------------------------------------
32
 
2300-231F  | W | D D D D D D D D | output mux
33
 
-----------+---+-----------------+-----------------------------------------
34
 
2300-230B  | R | D D D D D D D D | input mux
35
 
-----------+---+-----------------+-----------------------------------------
36
 
2320       |R/W| D D D D D D D D | dimas0 ?
37
 
-----------+---+-----------------+-----------------------------------------
38
 
2321       |R/W| D D D D D D D D | dimas1 ?
39
 
-----------+---+-----------------+-----------------------------------------
40
 
2322       |R/W| D D D D D D D D | dimas2 ?
41
 
-----------+---+-----------------+-----------------------------------------
42
 
2323       |R/W| D D D D D D D D | dimas3 ?
43
 
-----------+---+-----------------+-----------------------------------------
44
 
2324       |R/W| D D D D D D D D | expansion latch
45
 
-----------+---+-----------------+-----------------------------------------
46
 
2325       | ? | D D D D D D D D | ???
47
 
-----------+---+-----------------+-----------------------------------------
48
 
2326       | ? | D D D D D D D D | ???
49
 
-----------+---+-----------------+-----------------------------------------
50
 
2327       | ? | D D D D D D D D | ???
51
 
-----------+---+-----------------+-----------------------------------------
52
 
2328       |R/W| D D D D D D D D | muxena
53
 
-----------+---+-----------------+-----------------------------------------
54
 
2329       | W | D D D D D D D D | Timer IRQ enable
55
 
-----------+---+-----------------+-----------------------------------------
56
 
232A       |R/W| D D D D D D D D | blkdiv ?
57
 
-----------+---+-----------------+-----------------------------------------
58
 
232B       | ? | D D D D D D D D | ???
59
 
-----------+---+-----------------+-----------------------------------------
60
 
232C       |R/W| D D D D D D D D | dimena ?
61
 
-----------+---+-----------------+-----------------------------------------
62
 
232D       | ? | D D D D D D D D | ???
63
 
-----------+---+-----------------+-----------------------------------------
64
 
232E       | R | D D D D D D D D | chip status b0 = IRQ status
65
 
-----------+---+-----------------+-----------------------------------------
66
 
232F       | W | D D D D D D D D | coin inhibits
67
 
-----------+---+-----------------+-----------------------------------------
68
 
2330       | W | D D D D D D D D | payout slide latch
69
 
-----------+---+-----------------+-----------------------------------------
70
 
2331       | W | D D D D D D D D | payout triac latch
71
 
-----------+---+-----------------+-----------------------------------------
72
 
2332       |R/W| D D D D D D D D | Watchdog timer
73
 
-----------+---+-----------------+-----------------------------------------
74
 
2333       | W | D D D D D D D D | electro mechanical meters
75
 
-----------+---+-----------------+-----------------------------------------
76
 
2334       | ? | D D D D D D D D | ???
77
 
-----------+---+-----------------+-----------------------------------------
78
 
2335       | ? | D D D D D D D D | ???
79
 
-----------+---+-----------------+-----------------------------------------
80
 
2336       |?/W| D D D D D D D D | dimcnt ?
81
 
-----------+---+-----------------+-----------------------------------------
82
 
2337       | W | D D D D D D D D | volume override
83
 
-----------+---+-----------------+-----------------------------------------
84
 
2338       | W | D D D D D D D D | payout chip select
85
 
-----------+---+-----------------+-----------------------------------------
86
 
2339       | W | D D D D D D D D | clkden ?
87
 
-----------+---+-----------------+-----------------------------------------
88
 
2400       |R/W| D D D D D D D D | uart1 (MC6850 compatible) control/status
89
 
-----------+---+-----------------+-----------------------------------------
90
 
2500       |R/W| D D D D D D D D | uart1 (MC6850 compatible) data
91
 
-----------+---+-----------------+-----------------------------------------
92
 
2600       |R/W| D D D D D D D D | uart2 (MC6850 compatible) control/status
93
 
-----------+---+-----------------+-----------------------------------------
94
 
2700       |R/W| D D D D D D D D | uart2 (MC6850 compatible) data
95
 
-----------+---+-----------------+-----------------------------------------
96
 
2800       |R/W| D D D D D D D D | vfd1
97
 
-----------+---+-----------------+-----------------------------------------
98
 
2900       |R/W| D D D D D D D D | reset vfd1 + vfd2
99
 
-----------+---+-----------------+-----------------------------------------
100
 
2D00       |R/W| D D D D D D D D | ym2413 control
101
 
-----------+---+-----------------+-----------------------------------------
102
 
2D01       |R/W| D D D D D D D D | ym2413 data
103
 
-----------+---+-----------------+-----------------------------------------
104
 
2E00       |R/W| D D D D D D D D | ROM page latch
105
 
-----------+---+-----------------+-----------------------------------------
106
 
2F00       |R/W| D D D D D D D D | vfd2
107
 
-----------+---+-----------------+-----------------------------------------
108
 
3FFE       | R | D D D D D D D D | direct input1
109
 
-----------+---+-----------------+-----------------------------------------
110
 
3FFF       | R | D D D D D D D D | direct input2
111
 
-----------+---+-----------------+-----------------------------------------
112
 
2A00       | W | D D D D D D D D | NEC uPD7759 data
113
 
-----------+---+-----------------+-----------------------------------------
114
 
2B00       | W | D D D D D D D D | NEC uPD7759 reset
115
 
-----------+---+-----------------+-----------------------------------------
116
 
4000-5FFF  | R | D D D D D D D D | ROM (8k)
117
 
-----------+---+-----------------+-----------------------------------------
118
 
6000-7FFF  | R | D D D D D D D D | Paged ROM (8k)
119
 
           |   |                 |   page 0 : rom area 0x0000 - 0x1FFF
120
 
           |   |                 |   page 1 : rom area 0x2000 - 0x3FFF
121
 
           |   |                 |   page 2 : rom area 0x4000 - 0x5FFF
122
 
           |   |                 |   page 3 : rom area 0x6000 - 0x7FFF
123
 
-----------+---+-----------------+-----------------------------------------
124
 
8000-FFFF  | R | D D D D D D D D | ROM (32k)
125
 
-----------+---+-----------------+-----------------------------------------
126
 
 
127
 
Adder hardware:
128
 
    Games supported:
129
 
        * Quintoon (2 sets Dutch, 2 sets UK)
130
 
        * Pokio (1 set)
131
 
        * Paradice (1 set)
132
 
        * Pyramid (1 set)
133
 
        * Slots (1 set Dutch, 2 sets Belgian)
134
 
        * Golden Crown (1 Set)
135
 
 
136
 
    Known issues:
137
 
        * Need to find the 'missing' game numbers
138
 
        * Fix RS232 protocol
139
 
***************************************************************************/
140
 
 
141
 
#include "emu.h"
142
 
#include "cpu/m6809/m6809.h"
143
 
 
144
 
#include "machine/nvram.h"
145
 
 
146
 
#include "video/bfm_adr2.h"
147
 
 
148
 
#include "sound/2413intf.h"
149
 
#include "sound/upd7759.h"
150
 
 
151
 
/* fruit machines only */
152
 
#include "video/awpvid.h"
153
 
#include "machine/steppers.h" // stepper motor
154
 
 
155
 
#include "machine/bfm_bd1.h"  // vfd
156
 
#include "machine/meters.h"
157
 
 
158
 
#include "bfm_sc2.lh"
159
 
#include "gldncrwn.lh"
160
 
#include "paradice.lh"
161
 
#include "pokio.lh"
162
 
#include "pyramid.lh"
163
 
#include "quintoon.lh"
164
 
#include "sltblgpo.lh"
165
 
#include "sltblgtk.lh"
166
 
#include "slots.lh"
167
 
 
168
 
class bfm_sc2_state : public driver_device
169
 
{
170
 
public:
171
 
        bfm_sc2_state(const machine_config &mconfig, device_type type, const char *tag)
172
 
                : driver_device(mconfig, type, tag) { }
173
 
 
174
 
        int m_sc2gui_update_mmtr;
175
 
        UINT8 *m_nvram;
176
 
        UINT8 m_key[16];
177
 
        UINT8 m_e2ram[1024];
178
 
        int m_mmtr_latch;
179
 
        int m_triac_latch;
180
 
        int m_vfd1_latch;
181
 
        int m_vfd2_latch;
182
 
        int m_irq_status;
183
 
        int m_optic_pattern;
184
 
        int m_uart1_data;
185
 
        int m_uart2_data;
186
 
        int m_data_to_uart1;
187
 
        int m_data_to_uart2;
188
 
        int m_locked;
189
 
        int m_is_timer_enabled;
190
 
        int m_reel_changed;
191
 
        int m_coin_inhibits;
192
 
        int m_irq_timer_stat;
193
 
        int m_expansion_latch;
194
 
        int m_global_volume;
195
 
        int m_volume_override;
196
 
        int m_sc2_show_door;
197
 
        int m_sc2_door_state;
198
 
        int m_reels;
199
 
        int m_reel12_latch;
200
 
        int m_reel34_latch;
201
 
        int m_reel56_latch;
202
 
        int m_pay_latch;
203
 
        int m_slide_states[6];
204
 
        int m_slide_pay_sensor[6];
205
 
        int m_has_hopper;
206
 
        int m_triac_select;
207
 
        int m_hopper_running;
208
 
        int m_hopper_coin_sense;
209
 
        int m_timercnt;
210
 
        UINT8 m_sc2_Inputs[64];
211
 
        UINT8 m_input_override[64];
212
 
        int m_e2reg;
213
 
        int m_e2state;
214
 
        int m_e2cnt;
215
 
        int m_e2data;
216
 
        int m_e2address;
217
 
        int m_e2rw;
218
 
        int m_e2data_pin;
219
 
        int m_e2dummywrite;
220
 
        int m_e2data_to_read;
221
 
        UINT8 m_codec_data[256];
222
 
};
223
 
 
224
 
 
225
 
#ifdef MAME_DEBUG
226
 
#define VERBOSE 1
227
 
#else
228
 
#define VERBOSE 0
229
 
#endif
230
 
 
231
 
// log serial communication between mainboard (scorpion2) and videoboard (adder2)
232
 
#define LOG_SERIAL(x) do { if (VERBOSE) logerror x; } while (0)
233
 
#define UART_LOG(x) do { if (VERBOSE) logerror x; } while (0)
234
 
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
235
 
 
236
 
#define MASTER_CLOCK            (XTAL_8MHz)
237
 
 
238
 
// local prototypes ///////////////////////////////////////////////////////
239
 
 
240
 
static int  read_e2ram(running_machine &machine);
241
 
static void e2ram_reset(running_machine &machine);
242
 
 
243
 
/*      INPUTS layout
244
 
 
245
 
     b7 b6 b5 b4 b3 b2 b1 b0
246
 
 
247
 
     82 81 80 04 03 02 01 00  0
248
 
     92 91 90 14 13 12 11 10  1
249
 
     A2 A1 A0 24 23 22 21 20  2
250
 
     B2 B1 B0 34 33 32 31 30  3
251
 
     -- 84 83 44 43 42 41 40  4
252
 
     -- 94 93 54 53 52 51 50  5
253
 
     -- A4 A3 64 63 62 61 60  6
254
 
     -- B4 B3 74 73 72 71 70  7
255
 
 
256
 
     B7 B6 B5 B4 B3 B2 B1 B0
257
 
      0  1  1  0  0  0
258
 
 
259
 
*/
260
 
 
261
 
///////////////////////////////////////////////////////////////////////////
262
 
// called if board is reset ///////////////////////////////////////////////
263
 
///////////////////////////////////////////////////////////////////////////
264
 
 
265
 
static void on_scorpion2_reset(running_machine &machine)
266
 
{
267
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
268
 
        state->m_vfd1_latch        = 0;
269
 
        state->m_vfd2_latch        = 0;
270
 
        state->m_mmtr_latch        = 0;
271
 
        state->m_triac_latch       = 0;
272
 
        state->m_irq_status        = 0;
273
 
        state->m_is_timer_enabled  = 1;
274
 
        state->m_coin_inhibits     = 0;
275
 
        state->m_irq_timer_stat    = 0;
276
 
        state->m_expansion_latch   = 0;
277
 
        state->m_global_volume     = 0;
278
 
        state->m_volume_override   = 0;
279
 
        state->m_triac_select      = 0;
280
 
        state->m_pay_latch         = 0;
281
 
 
282
 
        state->m_reel12_latch      = 0;
283
 
        state->m_reel34_latch      = 0;
284
 
        state->m_reel56_latch      = 0;
285
 
 
286
 
        state->m_hopper_running    = 0;  // for video games
287
 
        state->m_hopper_coin_sense = 0;
288
 
 
289
 
        state->m_slide_states[0] = 0;
290
 
        state->m_slide_states[1] = 0;
291
 
        state->m_slide_states[2] = 0;
292
 
        state->m_slide_states[3] = 0;
293
 
        state->m_slide_states[4] = 0;
294
 
        state->m_slide_states[5] = 0;
295
 
 
296
 
        BFM_BD1_reset(0);       // reset display1
297
 
        BFM_BD1_reset(1);       // reset display2
298
 
 
299
 
        e2ram_reset(machine);
300
 
 
301
 
        devtag_reset(machine, "ymsnd");
302
 
 
303
 
  // reset stepper motors /////////////////////////////////////////////////
304
 
        {
305
 
                int pattern =0, i;
306
 
 
307
 
                for ( i = 0; i < state->m_reels; i++)
308
 
                {
309
 
                        stepper_reset_position(i);
310
 
                        if ( stepper_optic_state(i) ) pattern |= 1<<i;
311
 
                }
312
 
 
313
 
                state->m_optic_pattern = pattern;
314
 
 
315
 
        }
316
 
 
317
 
        state->m_locked        = 0;
318
 
 
319
 
        // make sure no inputs are overidden ////////////////////////////////////
320
 
        memset(state->m_input_override, 0, sizeof(state->m_input_override));
321
 
 
322
 
        // init rom bank ////////////////////////////////////////////////////////
323
 
 
324
 
        {
325
 
                UINT8 *rom = machine.region("maincpu")->base();
326
 
 
327
 
                memory_configure_bank(machine, "bank1", 0, 1, &rom[0x10000], 0);
328
 
                memory_configure_bank(machine, "bank1", 1, 3, &rom[0x02000], 0x02000);
329
 
 
330
 
                memory_set_bank(machine, "bank1",3);
331
 
        }
332
 
}
333
 
 
334
 
///////////////////////////////////////////////////////////////////////////
335
 
 
336
 
void Scorpion2_SetSwitchState(running_machine &machine, int strobe, int data, int state)
337
 
{
338
 
        bfm_sc2_state *drvstate = machine.driver_data<bfm_sc2_state>();
339
 
        if ( strobe < 11 && data < 8 )
340
 
        {
341
 
                if ( strobe < 8 )
342
 
                {
343
 
                        drvstate->m_input_override[strobe] |= (1<<data);
344
 
 
345
 
                        if ( state ) drvstate->m_sc2_Inputs[strobe] |=  (1<<data);
346
 
                        else             drvstate->m_sc2_Inputs[strobe] &= ~(1<<data);
347
 
                }
348
 
                else
349
 
                {
350
 
                        if ( data > 2 )
351
 
                        {
352
 
                                drvstate->m_input_override[strobe-8+4] |= (1<<(data+2));
353
 
 
354
 
                                if ( state ) drvstate->m_sc2_Inputs[strobe-8+4] |=  (1<<(data+2));
355
 
                                else             drvstate->m_sc2_Inputs[strobe-8+4] &= ~(1<<(data+2));
356
 
                        }
357
 
                        else
358
 
                        {
359
 
                                drvstate->m_input_override[strobe-8] |= (1<<(data+5));
360
 
 
361
 
                                if ( state ) drvstate->m_sc2_Inputs[strobe-8] |=  (1 << (data+5));
362
 
                                else             drvstate->m_sc2_Inputs[strobe-8] &= ~(1 << (data+5));
363
 
                        }
364
 
                }
365
 
        }
366
 
}
367
 
 
368
 
///////////////////////////////////////////////////////////////////////////
369
 
 
370
 
int Scorpion2_GetSwitchState(running_machine &machine, int strobe, int data)
371
 
{
372
 
        bfm_sc2_state *drvstate = machine.driver_data<bfm_sc2_state>();
373
 
        int state = 0;
374
 
 
375
 
        if ( strobe < 11 && data < 8 )
376
 
        {
377
 
                if ( strobe < 8 )
378
 
                {
379
 
                        state = (drvstate->m_sc2_Inputs[strobe] & (1<<data) ) ? 1 : 0;
380
 
                }
381
 
                else
382
 
                {
383
 
                        if ( data > 2 )
384
 
                        {
385
 
                                state = (drvstate->m_sc2_Inputs[strobe-8+4] & (1<<(data+2)) ) ? 1 : 0;
386
 
                        }
387
 
                        else
388
 
                        {
389
 
                                state = (drvstate->m_sc2_Inputs[strobe-8] & (1 << (data+5)) ) ? 1 : 0;
390
 
                        }
391
 
                }
392
 
        }
393
 
        return state;
394
 
}
395
 
 
396
 
///////////////////////////////////////////////////////////////////////////
397
 
 
398
 
static NVRAM_HANDLER( bfm_sc2 )
399
 
{
400
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
401
 
        static const UINT8 init_e2ram[10] = { 1, 4, 10, 20, 0, 1, 1, 4, 10, 20 };
402
 
        if ( read_or_write )
403
 
        {       // writing
404
 
                file->write(state->m_e2ram,sizeof(state->m_e2ram));
405
 
        }
406
 
        else
407
 
        { // reading
408
 
                if ( file )
409
 
                {
410
 
                        file->read(state->m_e2ram,sizeof(state->m_e2ram));
411
 
                }
412
 
                else
413
 
                {
414
 
                        memset(state->m_e2ram,0x00,sizeof(state->m_e2ram));
415
 
                        memcpy(state->m_e2ram,init_e2ram,sizeof(init_e2ram));
416
 
                }
417
 
        }
418
 
}
419
 
 
420
 
///////////////////////////////////////////////////////////////////////////
421
 
 
422
 
static WRITE8_HANDLER( bankswitch_w )
423
 
{
424
 
        memory_set_bank(space->machine(), "bank1",data & 0x03);
425
 
}
426
 
 
427
 
///////////////////////////////////////////////////////////////////////////
428
 
 
429
 
static INTERRUPT_GEN( timer_irq )
430
 
{
431
 
        bfm_sc2_state *state = device->machine().driver_data<bfm_sc2_state>();
432
 
        state->m_timercnt++;
433
 
 
434
 
        if ( state->m_is_timer_enabled )
435
 
        {
436
 
                state->m_irq_timer_stat = 0x01;
437
 
                state->m_irq_status     = 0x02;
438
 
 
439
 
                generic_pulse_irq_line(device, M6809_IRQ_LINE);
440
 
        }
441
 
}
442
 
 
443
 
///////////////////////////////////////////////////////////////////////////
444
 
 
445
 
static WRITE8_HANDLER( reel12_vid_w )  // in a video cabinet this is used to drive a hopper
446
 
{
447
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
448
 
        state->m_reel12_latch = data;
449
 
 
450
 
        if ( state->m_has_hopper )
451
 
        {
452
 
                int oldhop = state->m_hopper_running;
453
 
 
454
 
                if ( data & 0x01 )
455
 
                { // hopper power
456
 
                        if ( data & 0x02 )
457
 
                        {
458
 
                                state->m_hopper_running    = 1;
459
 
                        }
460
 
                        else
461
 
                        {
462
 
                                state->m_hopper_running    = 0;
463
 
                        }
464
 
                }
465
 
                else
466
 
                {
467
 
                        //state->m_hopper_coin_sense = 0;
468
 
                        state->m_hopper_running    = 0;
469
 
                }
470
 
 
471
 
                if ( oldhop != state->m_hopper_running )
472
 
                {
473
 
                        state->m_hopper_coin_sense = 0;
474
 
                        oldhop = state->m_hopper_running;
475
 
                }
476
 
        }
477
 
}
478
 
 
479
 
///////////////////////////////////////////////////////////////////////////
480
 
// mechanical meters //////////////////////////////////////////////////////
481
 
///////////////////////////////////////////////////////////////////////////
482
 
 
483
 
static WRITE8_HANDLER( mmtr_w )
484
 
{
485
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
486
 
        int i;
487
 
        int  changed = state->m_mmtr_latch ^ data;
488
 
 
489
 
        state->m_mmtr_latch = data;
490
 
 
491
 
        for (i = 0; i<8; i++)
492
 
        {
493
 
                if ( changed & (1 << i) )
494
 
                {
495
 
                        MechMtr_update(i, data & (1 << i) );
496
 
                }
497
 
        }
498
 
        if ( data & 0x1F ) cputag_set_input_line(space->machine(), "maincpu", M6809_FIRQ_LINE, ASSERT_LINE );
499
 
}
500
 
 
501
 
///////////////////////////////////////////////////////////////////////////
502
 
 
503
 
static WRITE8_HANDLER( mux_output_w )
504
 
{
505
 
        int i;
506
 
        int off = offset<<3;
507
 
 
508
 
        for (i=0; i<8; i++)
509
 
                output_set_lamp_value(off+i, ((data & (1 << i)) != 0));
510
 
 
511
 
}
512
 
 
513
 
///////////////////////////////////////////////////////////////////////////
514
 
 
515
 
static READ8_HANDLER( mux_input_r )
516
 
{
517
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
518
 
        int result = 0xFF,t1,t2;
519
 
        static const char *const port[] = { "STROBE0", "STROBE1", "STROBE2", "STROBE3", "STROBE4", "STROBE5", "STROBE6", "STROBE7", "STROBE8", "STROBE9", "STROBE10", "STROBE11" };
520
 
 
521
 
        if (offset < 8)
522
 
        {
523
 
                int idx = (offset & 4) ? 4 : 8;
524
 
                t1 = state->m_input_override[offset];   // strobe 0-7 data 0-4
525
 
                t2 = state->m_input_override[offset+idx];       // strobe 8-B data 0-4
526
 
 
527
 
                t1 = (state->m_sc2_Inputs[offset]   & t1) | ( ( input_port_read(space->machine(), port[offset])   & ~t1) & 0x1F);
528
 
                if (idx == 8)
529
 
                        t2 = (state->m_sc2_Inputs[offset+8] & t2) | ( ( input_port_read(space->machine(), port[offset+8]) & ~t2) << 5);
530
 
                else
531
 
                        t2 =  (state->m_sc2_Inputs[offset+4] & t2) | ( ( ( input_port_read(space->machine(), port[offset+4]) & ~t2) << 2) & 0x60);
532
 
 
533
 
                state->m_sc2_Inputs[offset]   = (state->m_sc2_Inputs[offset]   & ~0x1F) | t1;
534
 
                state->m_sc2_Inputs[offset+idx] = (state->m_sc2_Inputs[offset+idx] & ~0x60) | t2;
535
 
                result = t1 | t2;
536
 
        }
537
 
 
538
 
        return result;
539
 
}
540
 
 
541
 
///////////////////////////////////////////////////////////////////////////
542
 
 
543
 
static WRITE8_HANDLER( unlock_w )
544
 
{
545
 
}
546
 
 
547
 
///////////////////////////////////////////////////////////////////////////
548
 
 
549
 
static WRITE8_HANDLER( dimas_w )
550
 
{
551
 
}
552
 
 
553
 
///////////////////////////////////////////////////////////////////////////
554
 
 
555
 
static WRITE8_HANDLER( dimcnt_w )
556
 
{
557
 
}
558
 
 
559
 
///////////////////////////////////////////////////////////////////////////
560
 
 
561
 
static WRITE8_HANDLER( unknown_w )
562
 
{
563
 
}
564
 
 
565
 
///////////////////////////////////////////////////////////////////////////
566
 
 
567
 
static WRITE8_HANDLER( volume_override_w )
568
 
{
569
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
570
 
        int old = state->m_volume_override;
571
 
 
572
 
        state->m_volume_override = data?1:0;
573
 
 
574
 
        if ( old != state->m_volume_override )
575
 
        {
576
 
                ym2413_device *ym = space->machine().device<ym2413_device>("ymsnd");
577
 
                upd7759_device *upd = space->machine().device<upd7759_device>("upd");
578
 
                float percent = state->m_volume_override? 1.0f : (32-state->m_global_volume)/32.0f;
579
 
 
580
 
                ym->set_output_gain(0, percent);
581
 
                ym->set_output_gain(1, percent);
582
 
                upd->set_output_gain(0, percent);
583
 
        }
584
 
}
585
 
 
586
 
///////////////////////////////////////////////////////////////////////////
587
 
 
588
 
static WRITE8_DEVICE_HANDLER( nec_reset_w )
589
 
{
590
 
        upd7759_start_w(device, 0);
591
 
        upd7759_reset_w(device, data);
592
 
}
593
 
 
594
 
///////////////////////////////////////////////////////////////////////////
595
 
 
596
 
static WRITE8_DEVICE_HANDLER( nec_latch_w )
597
 
{
598
 
        bfm_sc2_state *state = device->machine().driver_data<bfm_sc2_state>();
599
 
        int bank = 0;
600
 
 
601
 
        if ( data & 0x80 )         bank |= 0x01;
602
 
        if ( state->m_expansion_latch & 2 ) bank |= 0x02;
603
 
 
604
 
        upd7759_set_bank_base(device, bank*0x20000);
605
 
 
606
 
        upd7759_port_w(device, 0, data&0x3F);   // setup sample
607
 
        upd7759_start_w(device, 0);
608
 
        upd7759_start_w(device, 1);
609
 
}
610
 
 
611
 
///////////////////////////////////////////////////////////////////////////
612
 
 
613
 
static READ8_HANDLER( vfd_status_hop_r )        // on video games, hopper inputs are connected to this
614
 
{
615
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
616
 
        // b7 = NEC busy
617
 
        // b6 = alpha busy (also matrix board)
618
 
        // b5 - b0 = reel optics
619
 
 
620
 
        int result = 0;
621
 
 
622
 
        if ( state->m_has_hopper )
623
 
        {
624
 
                result |= 0x04; // hopper high level
625
 
                result |= 0x08; // hopper low  level
626
 
 
627
 
                result |= 0x01|0x02;
628
 
 
629
 
                if ( state->m_hopper_running )
630
 
                {
631
 
                        result &= ~0x01;                                                                  // set motor running input
632
 
 
633
 
                        if ( state->m_timercnt & 0x04 ) state->m_hopper_coin_sense ^= 1;          // toggle coin seen
634
 
 
635
 
                        if ( state->m_hopper_coin_sense ) result &= ~0x02;                // update coin seen input
636
 
                }
637
 
        }
638
 
 
639
 
        if ( !upd7759_busy_r(space->machine().device("upd")) ) result |= 0x80;                    // update sound busy input
640
 
 
641
 
        return result;
642
 
}
643
 
 
644
 
///////////////////////////////////////////////////////////////////////////
645
 
 
646
 
static WRITE8_HANDLER( expansion_latch_w )
647
 
{
648
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
649
 
        int changed = state->m_expansion_latch^data;
650
 
 
651
 
        state->m_expansion_latch = data;
652
 
 
653
 
        // bit0,  1 = lamp mux disabled, 0 = lamp mux enabled
654
 
        // bit1,  ? used in Del's millions
655
 
        // bit2,  digital volume pot meter, clock line
656
 
        // bit3,  digital volume pot meter, direction line
657
 
        // bit4,  ?
658
 
        // bit5,  ?
659
 
        // bit6,  ? used in Del's millions
660
 
        // bit7   ?
661
 
 
662
 
        if ( changed & 0x04)
663
 
        { // digital volume clock line changed
664
 
                if ( !(data & 0x04) )
665
 
                { // changed from high to low,
666
 
                        if ( !(data & 0x08) )
667
 
                        {
668
 
                                if ( state->m_global_volume < 31 ) state->m_global_volume++; //0-31 expressed as 1-32
669
 
                        }
670
 
                        else
671
 
                        {
672
 
                                if ( state->m_global_volume > 0  ) state->m_global_volume--;
673
 
                        }
674
 
 
675
 
                        {
676
 
                                ym2413_device *ym = space->machine().device<ym2413_device>("ymsnd");
677
 
                                upd7759_device *upd = space->machine().device<upd7759_device>("upd");
678
 
                                float percent = state->m_volume_override ? 1.0f : (32-state->m_global_volume)/32.0f;
679
 
 
680
 
                                ym->set_output_gain(0, percent);
681
 
                                ym->set_output_gain(1, percent);
682
 
                                upd->set_output_gain(0, percent);
683
 
                        }
684
 
                }
685
 
        }
686
 
}
687
 
 
688
 
///////////////////////////////////////////////////////////////////////////
689
 
 
690
 
static READ8_HANDLER( expansion_latch_r )
691
 
{
692
 
        return 0;
693
 
}
694
 
 
695
 
///////////////////////////////////////////////////////////////////////////
696
 
 
697
 
static WRITE8_HANDLER( muxena_w )
698
 
{
699
 
}
700
 
 
701
 
///////////////////////////////////////////////////////////////////////////
702
 
 
703
 
static WRITE8_HANDLER( timerirq_w )
704
 
{
705
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
706
 
        state->m_is_timer_enabled = data & 1;
707
 
}
708
 
 
709
 
///////////////////////////////////////////////////////////////////////////
710
 
 
711
 
static READ8_HANDLER( timerirqclr_r )
712
 
{
713
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
714
 
        state->m_irq_timer_stat = 0;
715
 
        state->m_irq_status     = 0;
716
 
 
717
 
        return 0;
718
 
}
719
 
 
720
 
///////////////////////////////////////////////////////////////////////////
721
 
 
722
 
static READ8_HANDLER( irqstatus_r )
723
 
{
724
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
725
 
        int result = state->m_irq_status | state->m_irq_timer_stat | 0x80;      // 0x80 = ~MUXERROR
726
 
 
727
 
        state->m_irq_timer_stat = 0;
728
 
 
729
 
        return result;
730
 
}
731
 
 
732
 
///////////////////////////////////////////////////////////////////////////
733
 
 
734
 
static WRITE8_HANDLER( coininhib_w )
735
 
{
736
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
737
 
        int changed = state->m_coin_inhibits^data,i,p;
738
 
 
739
 
        state->m_coin_inhibits = data;
740
 
 
741
 
        p = 0x01;
742
 
        i = 0;
743
 
 
744
 
        while ( i < 8 && changed )
745
 
        {
746
 
                if ( changed & p )
747
 
                { // this inhibit line has changed
748
 
                        coin_lockout_w(space->machine(), i, (~data & p) ); // update lockouts
749
 
                        changed &= ~p;
750
 
                }
751
 
 
752
 
                p <<= 1;
753
 
                i++;
754
 
        }
755
 
}
756
 
 
757
 
///////////////////////////////////////////////////////////////////////////
758
 
 
759
 
static READ8_HANDLER( coin_input_r )
760
 
{
761
 
        return input_port_read(space->machine(), "COINS");
762
 
}
763
 
 
764
 
///////////////////////////////////////////////////////////////////////////
765
 
 
766
 
static WRITE8_HANDLER( payout_latch_w )
767
 
{
768
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
769
 
        state->m_pay_latch = data;
770
 
}
771
 
 
772
 
///////////////////////////////////////////////////////////////////////////
773
 
 
774
 
static WRITE8_HANDLER( payout_triac_w )
775
 
{
776
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
777
 
        if ( state->m_triac_select == 0x57 )
778
 
        {
779
 
                int slide = 0;
780
 
 
781
 
                switch ( state->m_pay_latch )
782
 
                {
783
 
                        case 0x01: slide = 1;
784
 
                                break;
785
 
 
786
 
                        case 0x02: slide = 2;
787
 
                                break;
788
 
 
789
 
                        case 0x04: slide = 3;
790
 
                                break;
791
 
 
792
 
                        case 0x08: slide = 4;
793
 
                                break;
794
 
 
795
 
                        case 0x10: slide = 5;
796
 
                                break;
797
 
 
798
 
                        case 0x20: slide = 6;
799
 
                                break;
800
 
                }
801
 
 
802
 
                if ( slide )
803
 
                {
804
 
                        if ( data == 0x4D )
805
 
                        {
806
 
                                if ( !state->m_slide_states[slide] )
807
 
                                {
808
 
                                        if ( state->m_slide_pay_sensor[slide] )
809
 
                                        {
810
 
                                                int strobe = state->m_slide_pay_sensor[slide]>>4, data = state->m_slide_pay_sensor[slide]&0x0F;
811
 
 
812
 
                                                Scorpion2_SetSwitchState(space->machine(), strobe, data, 0);
813
 
                                        }
814
 
                                        state->m_slide_states[slide] = 1;
815
 
                                }
816
 
                        }
817
 
                        else
818
 
                        {
819
 
                                if ( state->m_slide_states[slide] )
820
 
                                {
821
 
                                        if ( state->m_slide_pay_sensor[slide] )
822
 
                                        {
823
 
                                                int strobe = state->m_slide_pay_sensor[slide]>>4, data = state->m_slide_pay_sensor[slide]&0x0F;
824
 
 
825
 
                                                Scorpion2_SetSwitchState(space->machine(), strobe, data, 1);
826
 
                                        }
827
 
                                        state->m_slide_states[slide] = 0;
828
 
                                }
829
 
                        }
830
 
                }
831
 
        }
832
 
}
833
 
 
834
 
///////////////////////////////////////////////////////////////////////////
835
 
 
836
 
static WRITE8_HANDLER( payout_select_w )
837
 
{
838
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
839
 
        state->m_triac_select = data;
840
 
}
841
 
 
842
 
///////////////////////////////////////////////////////////////////////////
843
 
 
844
 
static WRITE8_HANDLER( vfd1_data_w )
845
 
{
846
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
847
 
        state->m_vfd1_latch = data;
848
 
        BFM_BD1_newdata(0, data);
849
 
        BFM_BD1_draw(0);
850
 
}
851
 
 
852
 
///////////////////////////////////////////////////////////////////////////
853
 
 
854
 
static WRITE8_HANDLER( vfd2_data_w )
855
 
{
856
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
857
 
        state->m_vfd2_latch = data;
858
 
        BFM_BD1_newdata(1, data);
859
 
        BFM_BD1_draw(1);
860
 
}
861
 
 
862
 
///////////////////////////////////////////////////////////////////////////
863
 
 
864
 
static WRITE8_HANDLER( vfd_reset_w )
865
 
{
866
 
        BFM_BD1_reset(0);         // reset both VFD's
867
 
        BFM_BD1_reset(1);
868
 
        BFM_BD1_draw(0);
869
 
        BFM_BD1_draw(1);
870
 
}
871
 
 
872
 
///////////////////////////////////////////////////////////////////////////
873
 
// serial port ////////////////////////////////////////////////////////////
874
 
///////////////////////////////////////////////////////////////////////////
875
 
 
876
 
static READ8_HANDLER( uart1stat_r )
877
 
{
878
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
879
 
        int status = 0x06;
880
 
 
881
 
        if ( state->m_data_to_uart1  ) status |= 0x01;
882
 
        if ( !state->m_data_to_uart2 ) status |= 0x02;
883
 
 
884
 
        return status;
885
 
}
886
 
///////////////////////////////////////////////////////////////////////////
887
 
 
888
 
static READ8_HANDLER( uart1data_r )
889
 
{
890
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
891
 
        return state->m_uart1_data;
892
 
}
893
 
 
894
 
//////////////////////////////////////////////////////////////////////////
895
 
 
896
 
static WRITE8_HANDLER( uart1ctrl_w )
897
 
{
898
 
        UART_LOG(("uart1ctrl:%x\n", data));
899
 
}
900
 
///////////////////////////////////////////////////////////////////////////
901
 
 
902
 
static WRITE8_HANDLER( uart1data_w )
903
 
{
904
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
905
 
        state->m_data_to_uart2 = 1;
906
 
        state->m_uart1_data    = data;
907
 
        UART_LOG(("uart1:%x\n", data));
908
 
}
909
 
///////////////////////////////////////////////////////////////////////////
910
 
 
911
 
static READ8_HANDLER( uart2stat_r )
912
 
{
913
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
914
 
        int status = 0x06;
915
 
 
916
 
        if ( state->m_data_to_uart2  ) status |= 0x01;
917
 
        if ( !state->m_data_to_uart1 ) status |= 0x02;
918
 
 
919
 
        return status;
920
 
}
921
 
///////////////////////////////////////////////////////////////////////////
922
 
 
923
 
static READ8_HANDLER( uart2data_r )
924
 
{
925
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
926
 
        return state->m_uart2_data;
927
 
}
928
 
 
929
 
///////////////////////////////////////////////////////////////////////////
930
 
 
931
 
static WRITE8_HANDLER( uart2ctrl_w )
932
 
{
933
 
        UART_LOG(("uart2ctrl:%x\n", data));
934
 
}
935
 
 
936
 
///////////////////////////////////////////////////////////////////////////
937
 
 
938
 
static WRITE8_HANDLER( uart2data_w )
939
 
{
940
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
941
 
        state->m_data_to_uart1 = 1;
942
 
        state->m_uart2_data    = data;
943
 
        UART_LOG(("uart2:%x\n", data));
944
 
}
945
 
 
946
 
///////////////////////////////////////////////////////////////////////////
947
 
 
948
 
static WRITE8_HANDLER( vid_uart_tx_w )
949
 
{
950
 
        adder2_send(data);
951
 
        cputag_set_input_line(space->machine(), "adder2", M6809_IRQ_LINE, HOLD_LINE );
952
 
 
953
 
        LOG_SERIAL(("sadder  %02X  (%c)\n",data, data ));
954
 
}
955
 
 
956
 
///////////////////////////////////////////////////////////////////////////
957
 
 
958
 
static WRITE8_HANDLER( vid_uart_ctrl_w )
959
 
{
960
 
}
961
 
 
962
 
///////////////////////////////////////////////////////////////////////////
963
 
 
964
 
static READ8_HANDLER( vid_uart_rx_r )
965
 
{
966
 
        int data = adder2_receive();
967
 
 
968
 
        LOG_SERIAL(("radder:  %02X(%c)\n",data, data ));
969
 
 
970
 
        return data;
971
 
}
972
 
 
973
 
///////////////////////////////////////////////////////////////////////////
974
 
 
975
 
static READ8_HANDLER( vid_uart_ctrl_r )
976
 
{
977
 
        return adder2_status();
978
 
}
979
 
 
980
 
///////////////////////////////////////////////////////////////////////////
981
 
 
982
 
static READ8_HANDLER( key_r )
983
 
{
984
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
985
 
        int result = state->m_key[ offset ];
986
 
 
987
 
        if ( offset == 7 )
988
 
        {
989
 
                result = (result & 0xFE) | read_e2ram(space->machine());
990
 
        }
991
 
 
992
 
        return result;
993
 
}
994
 
 
995
 
///////////////////////////////////////////////////////////////////////////
996
 
/*
997
 
 
998
 
The X24C08 is a CMOS 8,192 bit serial EEPROM,
999
 
internally organized 1024 x 8. The X24C08 features a
1000
 
serial interface and software protocol allowing operation
1001
 
on a simple two wire bus.
1002
 
 
1003
 
*/
1004
 
 
1005
 
 
1006
 
 
1007
 
 
1008
 
#define SCL 0x01        //SCL pin (clock)
1009
 
#define SDA     0x02    //SDA pin (data)
1010
 
 
1011
 
 
1012
 
static void e2ram_reset(running_machine &machine)
1013
 
{
1014
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
1015
 
        state->m_e2reg   = 0;
1016
 
        state->m_e2state = 0;
1017
 
        state->m_e2address = 0;
1018
 
        state->m_e2rw    = 0;
1019
 
        state->m_e2data_pin = 0;
1020
 
        state->m_e2data  = (SDA|SCL);
1021
 
        state->m_e2dummywrite = 0;
1022
 
        state->m_e2data_to_read = 0;
1023
 
}
1024
 
 
1025
 
static int recdata(bfm_sc2_state *state, int changed, int data)
1026
 
{
1027
 
        int res = 1;
1028
 
 
1029
 
        if ( state->m_e2cnt < 8 )
1030
 
        {
1031
 
                res = 0;
1032
 
 
1033
 
                if ( (changed & SCL) && (data & SCL) )
1034
 
                { // clocked in new data
1035
 
                        int pattern = 1 << (7-state->m_e2cnt);
1036
 
 
1037
 
                        if ( data & SDA ) state->m_e2data |=  pattern;
1038
 
                        else              state->m_e2data &= ~pattern;
1039
 
 
1040
 
                        state->m_e2data_pin = state->m_e2data_to_read & 0x80 ? 1 : 0;
1041
 
 
1042
 
                        state->m_e2data_to_read <<= 1;
1043
 
 
1044
 
                        LOG(("e2d pin= %d\n", state->m_e2data_pin));
1045
 
 
1046
 
                        state->m_e2cnt++;
1047
 
                        if ( state->m_e2cnt >= 8 )
1048
 
                        {
1049
 
                                res++;
1050
 
                        }
1051
 
                }
1052
 
        }
1053
 
 
1054
 
        return res;
1055
 
}
1056
 
 
1057
 
static int recAck(int changed, int data)
1058
 
{
1059
 
        int result = 0;
1060
 
 
1061
 
        if ( (changed & SCL) && (data & SCL) )
1062
 
        {
1063
 
                if ( data & SDA )
1064
 
                {
1065
 
                        result = 1;
1066
 
                }
1067
 
                else
1068
 
                {
1069
 
                        result = -1;
1070
 
                }
1071
 
        }
1072
 
        return result;
1073
 
}
1074
 
 
1075
 
//
1076
 
static WRITE8_HANDLER( e2ram_w )
1077
 
{
1078
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>(); // b0 = clock b1 = data
1079
 
 
1080
 
        int changed, ack;
1081
 
 
1082
 
        data ^= (SDA|SCL);  // invert signals
1083
 
 
1084
 
        changed  = (state->m_e2reg^data) & 0x03;
1085
 
 
1086
 
        state->m_e2reg = data;
1087
 
 
1088
 
        if ( changed )
1089
 
        {
1090
 
                while ( 1 )
1091
 
                {
1092
 
                        if ( (  (changed & SDA) && !(data & SDA))       &&  // 1->0 on SDA  AND
1093
 
                                ( !(changed & SCL) && (data & SCL) )    // SCL=1 and not changed
1094
 
                                )
1095
 
                        {       // X24C08 Start condition (1->0 on SDA while SCL=1)
1096
 
                                state->m_e2dummywrite = ( state->m_e2state == 5 );
1097
 
 
1098
 
                                LOG(("e2ram:   c:%d d:%d Start condition dummywrite=%d\n", (data & SCL)?1:0, (data&SDA)?1:0, state->m_e2dummywrite ));
1099
 
 
1100
 
                                state->m_e2state = 1; // ready for commands
1101
 
                                state->m_e2cnt   = 0;
1102
 
                                state->m_e2data  = 0;
1103
 
                                break;
1104
 
                        }
1105
 
 
1106
 
                        if ( (  (changed & SDA) && (data & SDA))        &&  // 0->1 on SDA  AND
1107
 
                                ( !(changed & SCL) && (data & SCL) )     // SCL=1 and not changed
1108
 
                                )
1109
 
                        {       // X24C08 Stop condition (0->1 on SDA while SCL=1)
1110
 
                                LOG(("e2ram:   c:%d d:%d Stop condition\n", (data & SCL)?1:0, (data&SDA)?1:0 ));
1111
 
                                state->m_e2state = 0;
1112
 
                                state->m_e2data  = 0;
1113
 
                                break;
1114
 
                        }
1115
 
 
1116
 
                        switch ( state->m_e2state )
1117
 
                        {
1118
 
                                case 1: // Receiving address + R/W bit
1119
 
 
1120
 
                                        if ( recdata(state, changed, data) )
1121
 
                                        {
1122
 
                                                state->m_e2address = (state->m_e2address & 0x00FF) | ((state->m_e2data>>1) & 0x03) << 8;
1123
 
                                                state->m_e2cnt   = 0;
1124
 
                                                state->m_e2rw    = state->m_e2data & 1;
1125
 
 
1126
 
                                                LOG(("e2ram: Slave address received !!  device id=%01X device adr=%01d high order adr %0X RW=%d) %02X\n",
1127
 
                                                        state->m_e2data>>4, (state->m_e2data & 0x08)?1:0, (state->m_e2data>>1) & 0x03, state->m_e2rw , state->m_e2data ));
1128
 
 
1129
 
                                                state->m_e2state = 2;
1130
 
                                        }
1131
 
                                        break;
1132
 
 
1133
 
                                case 2: // Receive Acknowledge
1134
 
 
1135
 
                                        ack = recAck(changed,data);
1136
 
                                        if ( ack )
1137
 
                                        {
1138
 
                                                state->m_e2data_pin = 0;
1139
 
 
1140
 
                                                if ( ack < 0 )
1141
 
                                                {
1142
 
                                                        LOG(("ACK = 0\n"));
1143
 
                                                        state->m_e2state = 0;
1144
 
                                                }
1145
 
                                                else
1146
 
                                                {
1147
 
                                                        LOG(("ACK = 1\n"));
1148
 
                                                        if ( state->m_e2dummywrite )
1149
 
                                                        {
1150
 
                                                                state->m_e2dummywrite = 0;
1151
 
 
1152
 
                                                                state->m_e2data_to_read = state->m_e2ram[state->m_e2address];
1153
 
 
1154
 
                                                                if ( state->m_e2rw & 1 ) state->m_e2state = 7; // read data
1155
 
                                                                else              state->m_e2state = 0; //?not sure
1156
 
                                                        }
1157
 
                                                        else
1158
 
                                                        {
1159
 
                                                                if ( state->m_e2rw & 1 ) state->m_e2state = 7; // reading
1160
 
                                                                else            state->m_e2state = 3; // writing
1161
 
                                                        }
1162
 
                                                        switch ( state->m_e2state )
1163
 
                                                        {
1164
 
                                                                case 7:
1165
 
                                                                        LOG(("read address %04X\n",state->m_e2address));
1166
 
                                                                        state->m_e2data_to_read = state->m_e2ram[state->m_e2address];
1167
 
                                                                        break;
1168
 
                                                                case 3:
1169
 
                                                                        LOG(("write, awaiting address\n"));
1170
 
                                                                        break;
1171
 
                                                                default:
1172
 
                                                                        LOG(("?unknow action %04X\n",state->m_e2address));
1173
 
                                                                        break;
1174
 
                                                        }
1175
 
                                                }
1176
 
                                                state->m_e2data = 0;
1177
 
                                        }
1178
 
                                        break;
1179
 
 
1180
 
                                case 3: // writing data, receiving address
1181
 
 
1182
 
                                        if ( recdata(state, changed, data) )
1183
 
                                        {
1184
 
                                                state->m_e2data_pin = 0;
1185
 
                                                state->m_e2address = (state->m_e2address & 0xFF00) | state->m_e2data;
1186
 
 
1187
 
                                                LOG(("write address = %04X waiting for ACK\n", state->m_e2address));
1188
 
                                                state->m_e2state = 4;
1189
 
                                                state->m_e2cnt   = 0;
1190
 
                                                state->m_e2data  = 0;
1191
 
                                        }
1192
 
                                        break;
1193
 
 
1194
 
                                case 4: // wait ack, for write address
1195
 
 
1196
 
                                        ack = recAck(changed,data);
1197
 
                                        if ( ack )
1198
 
                                        {
1199
 
                                                state->m_e2data_pin = 0;        // pin=0, no error !!
1200
 
 
1201
 
                                                if ( ack < 0 )
1202
 
                                                {
1203
 
                                                        state->m_e2state = 0;
1204
 
                                                        LOG(("ACK = 0, cancel write\n" ));
1205
 
                                                }
1206
 
                                                else
1207
 
                                                {
1208
 
                                                        state->m_e2state = 5;
1209
 
                                                        LOG(("ACK = 1, awaiting data to write\n" ));
1210
 
                                                }
1211
 
                                        }
1212
 
                                        break;
1213
 
 
1214
 
                                case 5: // receive data to write
1215
 
                                        if ( recdata(state, changed, data) )
1216
 
                                        {
1217
 
                                                LOG(("write data = %02X received, awaiting ACK\n", state->m_e2data));
1218
 
                                                state->m_e2cnt   = 0;
1219
 
                                                state->m_e2state = 6;  // wait ack
1220
 
                                        }
1221
 
                                        break;
1222
 
 
1223
 
                                case 6: // Receive Acknowlede after writing
1224
 
 
1225
 
                                        ack = recAck(changed,data);
1226
 
                                        if ( ack )
1227
 
                                        {
1228
 
                                                if ( ack < 0 )
1229
 
                                                {
1230
 
                                                        state->m_e2state = 0;
1231
 
                                                        LOG(("ACK=0, write canceled\n"));
1232
 
                                                }
1233
 
                                                else
1234
 
                                                {
1235
 
                                                        LOG(("ACK=1, writing %02X to %04X\n", state->m_e2data, state->m_e2address));
1236
 
 
1237
 
                                                        state->m_e2ram[state->m_e2address] = state->m_e2data;
1238
 
 
1239
 
                                                        state->m_e2address = (state->m_e2address & ~0x000F) | ((state->m_e2address+1)&0x0F);
1240
 
 
1241
 
                                                        state->m_e2state = 5; // write next address
1242
 
                                                }
1243
 
                                        }
1244
 
                                        break;
1245
 
 
1246
 
                                case 7: // receive address from read
1247
 
 
1248
 
                                        if ( recdata(state, changed, data) )
1249
 
                                        {
1250
 
                                                //state->m_e2data_pin = 0;
1251
 
 
1252
 
                                                LOG(("address read, data = %02X waiting for ACK\n", state->m_e2data ));
1253
 
 
1254
 
                                                state->m_e2state = 8;
1255
 
                                        }
1256
 
                                        break;
1257
 
 
1258
 
                                case 8:
1259
 
 
1260
 
                                        if ( recAck(changed, data) )
1261
 
                                        {
1262
 
                                                state->m_e2state = 7;
1263
 
 
1264
 
                                                state->m_e2address = (state->m_e2address & ~0x0F) | ((state->m_e2address+1)&0x0F); // lower 4 bits wrap around
1265
 
 
1266
 
                                                state->m_e2data_to_read = state->m_e2ram[state->m_e2address];
1267
 
 
1268
 
                                                LOG(("ready for next address %04X\n", state->m_e2address));
1269
 
 
1270
 
                                                state->m_e2cnt   = 0;
1271
 
                                                state->m_e2data  = 0;
1272
 
                                        }
1273
 
                                        break;
1274
 
 
1275
 
                                case 0:
1276
 
 
1277
 
                                        LOG(("e2ram: ? c:%d d:%d\n", (data & SCL)?1:0, (data&SDA)?1:0 ));
1278
 
                                        break;
1279
 
                        }
1280
 
                        break;
1281
 
                }
1282
 
        }
1283
 
}
1284
 
 
1285
 
static int read_e2ram(running_machine &machine)
1286
 
{
1287
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
1288
 
        LOG(("e2ram: r %d (%02X) \n", state->m_e2data_pin, state->m_e2data_to_read ));
1289
 
 
1290
 
        return state->m_e2data_pin;
1291
 
}
1292
 
 
1293
 
static const UINT16 AddressDecode[]=
1294
 
{
1295
 
        0x0800,0x1000,0x0001,0x0004,0x0008,0x0020,0x0080,0x0200,
1296
 
        0x0100,0x0040,0x0002,0x0010,0x0400,0x2000,0x4000,0x8000,
1297
 
        0
1298
 
};
1299
 
 
1300
 
static const UINT8 DataDecode[]=
1301
 
{
1302
 
        0x02,0x08,0x20,0x40,0x10,0x04,0x01,0x80,
1303
 
        0
1304
 
};
1305
 
 
1306
 
 
1307
 
///////////////////////////////////////////////////////////////////////////
1308
 
static void decode_mainrom(running_machine &machine, const char *rom_region)
1309
 
{
1310
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
1311
 
        UINT8 *tmp, *rom;
1312
 
 
1313
 
        rom = machine.region(rom_region)->base();
1314
 
 
1315
 
        tmp = auto_alloc_array(machine, UINT8, 0x10000);
1316
 
        {
1317
 
                int i;
1318
 
                long address;
1319
 
 
1320
 
                memcpy(tmp, rom, 0x10000);
1321
 
 
1322
 
                for ( i = 0; i < 256; i++ )
1323
 
                {
1324
 
                        UINT8 data,pattern,newdata,*tab;
1325
 
                        data    = i;
1326
 
 
1327
 
                        tab     = (UINT8*)DataDecode;
1328
 
                        pattern = 0x01;
1329
 
                        newdata = 0;
1330
 
 
1331
 
                        do
1332
 
                        {
1333
 
                                newdata |= data & pattern ? *tab : 0;
1334
 
                                pattern <<= 1;
1335
 
                        } while ( *(++tab) );
1336
 
 
1337
 
                        state->m_codec_data[i] = newdata;
1338
 
                }
1339
 
 
1340
 
                for ( address = 0; address < 0x10000; address++)
1341
 
                {
1342
 
                        int     newaddress,pattern;
1343
 
                        UINT16 *tab;
1344
 
 
1345
 
                        tab      = (UINT16*)AddressDecode;
1346
 
                        pattern  = 0x0001;
1347
 
                        newaddress = 0;
1348
 
                        do
1349
 
                        {
1350
 
                                newaddress |= address & pattern ? *tab : 0;
1351
 
                                pattern <<= 1;
1352
 
                        } while ( *(++tab) );
1353
 
 
1354
 
                        rom[newaddress] = state->m_codec_data[ tmp[address] ];
1355
 
                }
1356
 
                auto_free(machine, tmp);
1357
 
        }
1358
 
}
1359
 
 
1360
 
// machine init (called only once) ////////////////////////////////////////
1361
 
 
1362
 
static MACHINE_RESET( init )
1363
 
{
1364
 
        // reset adder2
1365
 
        MACHINE_RESET_CALL(adder2);
1366
 
 
1367
 
        // reset the board //////////////////////////////////////////////////////
1368
 
 
1369
 
        on_scorpion2_reset(machine);
1370
 
        BFM_BD1_init(0);
1371
 
        BFM_BD1_init(1);
1372
 
}
1373
 
 
1374
 
static SCREEN_UPDATE( addersc2 )
1375
 
{
1376
 
        bfm_sc2_state *state = screen->machine().driver_data<bfm_sc2_state>();
1377
 
        if ( state->m_sc2_show_door )
1378
 
        {
1379
 
                output_set_value("door",( Scorpion2_GetSwitchState(screen->machine(),state->m_sc2_door_state>>4, state->m_sc2_door_state & 0x0F) ) );
1380
 
        }
1381
 
 
1382
 
        return SCREEN_UPDATE_CALL(adder2);
1383
 
}
1384
 
 
1385
 
// memory map for scorpion2 board video addon /////////////////////////////
1386
 
 
1387
 
static ADDRESS_MAP_START( memmap_vid, AS_PROGRAM, 8 )
1388
 
 
1389
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k RAM
1390
 
        AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_hop_r)              // vfd status register
1391
 
        AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_vid_w)
1392
 
        AM_RANGE(0x2100, 0x21FF) AM_WRITENOP
1393
 
        AM_RANGE(0x2200, 0x22FF) AM_WRITENOP
1394
 
 
1395
 
        AM_RANGE(0x2300, 0x230B) AM_READ(mux_input_r)                   // mux inputs
1396
 
        AM_RANGE(0x2300, 0x231F) AM_WRITE(mux_output_w)                 // mux outputs
1397
 
        AM_RANGE(0x2320, 0x2323) AM_WRITE(dimas_w)                              // ?unknown dim related
1398
 
 
1399
 
        AM_RANGE(0x2324, 0x2324) AM_READWRITE(expansion_latch_r, expansion_latch_w)
1400
 
        AM_RANGE(0x2325, 0x2327) AM_WRITE(unknown_w)                    // ?unknown
1401
 
        AM_RANGE(0x2328, 0x2328) AM_WRITE(muxena_w)                             // mux enable
1402
 
        AM_RANGE(0x2329, 0x2329) AM_READWRITE(timerirqclr_r, timerirq_w)
1403
 
        AM_RANGE(0x232A, 0x232D) AM_WRITE(unknown_w)                    // ?unknown
1404
 
        AM_RANGE(0x232E, 0x232E) AM_READ(irqstatus_r)
1405
 
        AM_RANGE(0x232F, 0x232F) AM_WRITE(coininhib_w)                  // coin inhibits
1406
 
        AM_RANGE(0x2330, 0x2330) AM_WRITE(payout_latch_w)
1407
 
        AM_RANGE(0x2331, 0x2331) AM_WRITE(payout_triac_w)
1408
 
        AM_RANGE(0x2332, 0x2332) AM_WRITE(watchdog_reset_w)                     // kick watchdog
1409
 
        AM_RANGE(0x2333, 0x2333) AM_WRITE(mmtr_w)                               // mechanical meters
1410
 
        AM_RANGE(0x2334, 0x2335) AM_WRITE(unknown_w)
1411
 
        AM_RANGE(0x2336, 0x2336) AM_WRITE(dimcnt_w)                             // ?unknown dim related
1412
 
        AM_RANGE(0x2337, 0x2337) AM_WRITE(volume_override_w)
1413
 
        AM_RANGE(0x2338, 0x2338) AM_WRITE(payout_select_w)
1414
 
        AM_RANGE(0x2339, 0x2339) AM_WRITE(unknown_w)                    // ?unknown
1415
 
        AM_RANGE(0x2400, 0x2400) AM_READWRITE(uart1stat_r, uart1ctrl_w) // mc6850 compatible uart
1416
 
        AM_RANGE(0x2500, 0x2500) AM_READWRITE(uart1data_r, uart1data_w)
1417
 
        AM_RANGE(0x2600, 0x2600) AM_READWRITE(uart2stat_r, uart2ctrl_w) // mc6850 compatible uart
1418
 
        AM_RANGE(0x2700, 0x2700) AM_READWRITE(uart2data_r, uart2data_w)
1419
 
        AM_RANGE(0x2800, 0x2800) AM_WRITE(vfd1_data_w)                  // vfd1 data
1420
 
        AM_RANGE(0x2900, 0x2900) AM_WRITE(vfd_reset_w)                  // vfd1+vfd2 reset line
1421
 
 
1422
 
        AM_RANGE(0x2A00, 0x2AFF) AM_DEVWRITE("upd", nec_latch_w)                        // this is where it reads?
1423
 
        AM_RANGE(0x2B00, 0x2BFF) AM_DEVWRITE("upd", nec_reset_w)                        // upd7759 reset line
1424
 
        AM_RANGE(0x2C00, 0x2C00) AM_WRITE(unlock_w)                             // custom chip unlock
1425
 
        AM_RANGE(0x2D00, 0x2D01) AM_DEVWRITE("ymsnd", ym2413_w)
1426
 
        AM_RANGE(0x2E00, 0x2E00) AM_WRITE(bankswitch_w)                 // write bank (rom page select for 0x6000 - 0x7fff )
1427
 
        AM_RANGE(0x2F00, 0x2F00) AM_WRITE(vfd2_data_w)                  // vfd2 data
1428
 
 
1429
 
        AM_RANGE(0x3C00, 0x3C07) AM_READ(  key_r   )
1430
 
        AM_RANGE(0x3C80, 0x3C80) AM_WRITE( e2ram_w )
1431
 
 
1432
 
        AM_RANGE(0x3E00, 0x3E00) AM_READWRITE(vid_uart_ctrl_r, vid_uart_ctrl_w)         // video uart control reg
1433
 
        AM_RANGE(0x3E01, 0x3E01) AM_READWRITE(vid_uart_rx_r, vid_uart_tx_w)                     // video uart data  reg
1434
 
        AM_RANGE(0x3FFF, 0x3FFF) AM_READ(coin_input_r)
1435
 
        AM_RANGE(0x4000, 0x5fff) AM_ROM                                                 // 8k  fixed ROM
1436
 
        AM_RANGE(0x4000, 0xFFFF) AM_WRITE(unknown_w)                    // contains unknown I/O registers
1437
 
        AM_RANGE(0x6000, 0x7FFF) AM_ROMBANK("bank1")                                    // 8k  paged ROM (4 pages)
1438
 
        AM_RANGE(0x8000, 0xFFFF) AM_ROM                                                 // 32k ROM
1439
 
 
1440
 
ADDRESS_MAP_END
1441
 
 
1442
 
// input ports for pyramid ////////////////////////////////////////
1443
 
 
1444
 
static INPUT_PORTS_START( pyramid )
1445
 
        PORT_START("COINS")
1446
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
1447
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
1448
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
1449
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.50")
1450
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1451
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1452
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1453
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1454
 
 
1455
 
        PORT_START("STROBE0")
1456
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1457
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1458
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1459
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1460
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1461
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1462
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1463
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1464
 
 
1465
 
        PORT_START("STROBE1")
1466
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
1467
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1468
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1469
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left")
1470
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Up")
1471
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1472
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1473
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1474
 
 
1475
 
        PORT_START("STROBE2")
1476
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Right")
1477
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1478
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Enter") PORT_CODE(KEYCODE_E)
1479
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
1480
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1481
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1482
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1483
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1484
 
 
1485
 
        PORT_START("STROBE3")
1486
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1487
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1488
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1489
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1490
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1491
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1492
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1493
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1494
 
 
1495
 
        PORT_START("STROBE4")
1496
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
1497
 
        PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
1498
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER)     PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
1499
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1500
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1501
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1502
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1503
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1504
 
 
1505
 
        PORT_START("STROBE5")
1506
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1507
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1508
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1509
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1510
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1511
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1512
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1513
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1514
 
 
1515
 
        PORT_START("STROBE6")
1516
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1517
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1518
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1519
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1520
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1521
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1522
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1523
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1524
 
 
1525
 
        PORT_START("STROBE7")
1526
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1527
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1528
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1529
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1530
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1531
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1532
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1533
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1534
 
 
1535
 
        PORT_START("STROBE8")
1536
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1537
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1538
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
1539
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1540
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1541
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1542
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1543
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1544
 
 
1545
 
        PORT_START("STROBE9")
1546
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
1547
 
        PORT_DIPNAME( 0x02, 0x00, "Coin 1 Lockout")PORT_DIPLOCATION("DIL:!02")
1548
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1549
 
        PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1550
 
        PORT_DIPNAME( 0x04, 0x00, "Coin 2 Lockout")PORT_DIPLOCATION("DIL:!03")
1551
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1552
 
        PORT_DIPSETTING(    0x04, DEF_STR( On ) )
1553
 
        PORT_DIPNAME( 0x08, 0x00, "Coin 3 Lockout")PORT_DIPLOCATION("DIL:!04")
1554
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1555
 
        PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1556
 
        PORT_DIPNAME( 0x10, 0x00, "Coin 4 Lockout")PORT_DIPLOCATION("DIL:!05")
1557
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1558
 
        PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1559
 
 
1560
 
        PORT_START("STROBE10")
1561
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!06" )
1562
 
        PORT_DIPNAME( 0x02, 0x00, "Attract mode language" ) PORT_DIPLOCATION("DIL:!07")
1563
 
        PORT_DIPSETTING(    0x00, DEF_STR( English ) )
1564
 
        PORT_DIPSETTING(    0x02, "Dutch"       )
1565
 
        PORT_DIPNAME( 0x0C, 0x00, "Skill Level" ) PORT_DIPLOCATION("DIL:!08,!10")
1566
 
        PORT_DIPSETTING(    0x00, DEF_STR( Low ) )
1567
 
        PORT_DIPSETTING(    0x04, "Medium-Low" )
1568
 
        PORT_DIPSETTING(    0x08, "Medium-High")
1569
 
        PORT_DIPSETTING(    0x0C, DEF_STR( High ) )
1570
 
        PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "DIL:!11" )
1571
 
 
1572
 
        PORT_START("STROBE11")
1573
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!12" )
1574
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!13" )
1575
 
        PORT_DIPNAME( 0x04, 0x00, "Attract mode" ) PORT_DIPLOCATION("DIL:!14")
1576
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1577
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
1578
 
        PORT_DIPNAME( 0x18, 0x00, "Stake" ) PORT_DIPLOCATION("DIL:!15,!16")
1579
 
        PORT_DIPSETTING(    0x00, "4 credits per game"  )
1580
 
        PORT_DIPSETTING(    0x08, "1 credit  per round" )
1581
 
        PORT_DIPSETTING(    0x10, "2 credit  per round" )
1582
 
        PORT_DIPSETTING(    0x18, "4 credits per round" )
1583
 
INPUT_PORTS_END
1584
 
 
1585
 
// input ports for golden crown ///////////////////////////////////
1586
 
 
1587
 
static INPUT_PORTS_START( gldncrwn )
1588
 
        PORT_INCLUDE( pyramid )
1589
 
 
1590
 
        PORT_MODIFY("COINS")
1591
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
1592
 
 
1593
 
        PORT_MODIFY("STROBE1")
1594
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER)   PORT_NAME( "Collect") PORT_CODE(KEYCODE_C)
1595
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME( "Reel 1" )
1596
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME( "Reel 2" )
1597
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME( "Reel 3" )
1598
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1599
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1600
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1601
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1602
 
 
1603
 
        PORT_MODIFY("STROBE2")
1604
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME( "Reel 4" )
1605
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME( "Reel 5" )
1606
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME( "Reel 6" )
1607
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
1608
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Hall Of Fame" ) PORT_CODE( KEYCODE_J )
1609
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
1610
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
1611
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
1612
 
 
1613
 
        PORT_MODIFY("STROBE10")
1614
 
        PORT_DIPNAME( 0x01, 0x00, "Attract mode language" )PORT_DIPLOCATION("DIL:!06")
1615
 
        PORT_DIPSETTING(    0x00, "Dutch")
1616
 
        PORT_DIPSETTING(    0x01, DEF_STR( English ) )
1617
 
        PORT_DIPNAME( 0x02, 0x00, "Max number of spins" )PORT_DIPLOCATION("DIL:!07")
1618
 
        PORT_DIPSETTING(    0x00, "99")
1619
 
        PORT_DIPSETTING(    0x02, "50")
1620
 
        PORT_DIPNAME( 0x0C, 0x00, "Skill Level" )PORT_DIPLOCATION("DIL:!08,!10")
1621
 
        PORT_DIPSETTING(    0x00, DEF_STR( Low ))
1622
 
        PORT_DIPSETTING(    0x04, "Medium-Low"  )
1623
 
        PORT_DIPSETTING(    0x08, "Medium-High" )
1624
 
        PORT_DIPSETTING(    0x0C, DEF_STR( High ) )
1625
 
        PORT_DIPNAME( 0x10, 0x00, "Base Pricing on:" )PORT_DIPLOCATION("DIL:!11")
1626
 
        PORT_DIPSETTING(    0x00, "Full Game")
1627
 
        PORT_DIPSETTING(    0x10, "Individual Rounds")
1628
 
 
1629
 
        PORT_MODIFY("STROBE11")
1630
 
        PORT_DIPNAME( 0x01, 0x00, "Credits required:" )PORT_DIPLOCATION("DIL:!12")
1631
 
        PORT_DIPSETTING(    0x00, "4 credits per game")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x00)
1632
 
        PORT_DIPSETTING(    0x01, "2 credits per game")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x00)
1633
 
        PORT_DIPSETTING(    0x00, "1 credit  per round")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x10)
1634
 
        PORT_DIPSETTING(    0x01, "4 credits per round")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x10)
1635
 
        PORT_DIPNAME( 0x02, 0x00, "Attract Mode" )PORT_DIPLOCATION("DIL:!13")
1636
 
        PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1637
 
        PORT_DIPSETTING(    0x00, DEF_STR( On  ) )
1638
 
        PORT_DIPNAME( 0x04, 0x00, "Time bar" )PORT_DIPLOCATION("DIL:!14")
1639
 
        PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1640
 
        PORT_DIPSETTING(    0x00, DEF_STR( On  ) )
1641
 
        PORT_DIPNAME( 0x18, 0x00, "Time bar speed" )PORT_DIPLOCATION("DIL:!15,!16")
1642
 
        PORT_DIPSETTING(    0x00, "1 (fast)" )
1643
 
        PORT_DIPSETTING(    0x08, "2" )
1644
 
        PORT_DIPSETTING(    0x10, "3" )
1645
 
        PORT_DIPSETTING(    0x18, "4 (slow)" )
1646
 
INPUT_PORTS_END
1647
 
 
1648
 
// input ports for dutch quintoon /////////////////////////////////
1649
 
 
1650
 
static INPUT_PORTS_START( qntoond )
1651
 
        PORT_INCLUDE( pyramid )
1652
 
 
1653
 
        PORT_MODIFY("COINS")
1654
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
1655
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
1656
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
1657
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.50")
1658
 
 
1659
 
        PORT_MODIFY("STROBE1")
1660
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER)        PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
1661
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Hand 1" )
1662
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hand 2" )
1663
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hand 3" )
1664
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hand 4" )
1665
 
 
1666
 
        PORT_MODIFY("STROBE2")
1667
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hand 5" )
1668
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
1669
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
1670
 
 
1671
 
        PORT_MODIFY("STROBE9")
1672
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
1673
 
        PORT_DIPNAME( 0x1e, 0x1c, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DIL:!02,!03,!04,!05")
1674
 
        PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1675
 
        PORT_DIPSETTING(    0x02, "C1=2.5 C2=1.25 C3=0.5 C4=2C_0.25C" )
1676
 
        PORT_DIPSETTING(    0x04, "C1=10 C2=5 C3=2 C4=0.5" )
1677
 
        PORT_DIPSETTING(    0x06, "C1=1.5/3.25/5 C2=0.75/1.5/3.25 C3=0.25/0.5/1 C4=3C_0.25C" )
1678
 
        PORT_DIPSETTING(    0x08, "C1=20 C2=10 C3=4 C4=1" )
1679
 
        PORT_DIPSETTING(    0x0a, "C1=2 C2=1 C3=0.25/0.75/1/1.5/2 C4=3C_0.25C 5C_0.5C" )
1680
 
        PORT_DIPSETTING(    0x0c, "C1=5 C2=2.5 C3=1 C4=0.25" )
1681
 
        PORT_DIPSETTING(    0x0e, "C1=1.25 C2=0.5/1.25/1.75 C3=0.25 C4=0.25" )
1682
 
        //PORT_DIPSETTING(    0x10, DEF_STR( Free_Play ) )
1683
 
        PORT_DIPSETTING(    0x12, "C1=3 C2=1.5 C3=0.5 C4=0.25" )
1684
 
        PORT_DIPSETTING(    0x14, "C1=12 C2=6 C3=2 C4=0.5" )
1685
 
        PORT_DIPSETTING(    0x16, "C1=2 C2=1 C3=0.25 C4=3C_0.25C" )
1686
 
        PORT_DIPSETTING(    0x18, "C1=24 C2=12 C3=4 C4=1" )
1687
 
        PORT_DIPSETTING(    0x1a, "C1=2.25/4.75 C2=1/2.25/3.5/4.75/6 C3=0.25/0.75/1/1.5/2 C4=3C_0.25C 5C_0.5C" )
1688
 
        PORT_DIPSETTING(    0x1c, "C1=6 C2=3 C3=1 C4=0.25" )
1689
 
        PORT_DIPSETTING(    0x1e, "C1=1.5 C2=0.75 C3=0.25 C4=4C_0.25C" )
1690
 
 
1691
 
        PORT_MODIFY("STROBE10")
1692
 
        PORT_DIPNAME( 0x01, 0x00, "Coin 1 Lockout")PORT_DIPLOCATION("DIL:!06")
1693
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1694
 
        PORT_DIPSETTING(    0x01, DEF_STR( On ) )
1695
 
        PORT_DIPNAME( 0x02, 0x00, "Coin 2 Lockout")PORT_DIPLOCATION("DIL:!07")
1696
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1697
 
        PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1698
 
        PORT_DIPNAME( 0x04, 0x00, "Coin 3 Lockout")PORT_DIPLOCATION("DIL:!08")
1699
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1700
 
        PORT_DIPSETTING(    0x04, DEF_STR( On ) )
1701
 
        PORT_DIPNAME( 0x08, 0x00, "Coin 4 Lockout")PORT_DIPLOCATION("DIL:!10")
1702
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1703
 
        PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1704
 
        PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:!11")
1705
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1706
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
1707
 
 
1708
 
        PORT_MODIFY("STROBE11")
1709
 
        PORT_DIPNAME( 0x01, 0x00, "Time bar" )PORT_DIPLOCATION("DIL:!12")
1710
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1711
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
1712
 
        PORT_DIPNAME( 0x02, 0x00, "Clear credits on reset" )PORT_DIPLOCATION("DIL:!13")
1713
 
        PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1714
 
        PORT_DIPSETTING(    0x02, DEF_STR( Yes  ) )
1715
 
        PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:!14")
1716
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1717
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
1718
 
        PORT_DIPNAME( 0x08, 0x00, "Attract mode language" )PORT_DIPLOCATION("DIL:!15")
1719
 
        PORT_DIPSETTING(    0x00, DEF_STR( English  ) )
1720
 
        PORT_DIPSETTING(    0x08, "Dutch"    )
1721
 
        PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "DIL:!16" )
1722
 
INPUT_PORTS_END
1723
 
 
1724
 
// input ports for UK quintoon ////////////////////////////////////////////
1725
 
 
1726
 
static INPUT_PORTS_START( quintoon )
1727
 
        PORT_INCLUDE( pyramid )
1728
 
 
1729
 
        PORT_MODIFY("COINS")
1730
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("10p")
1731
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("20p")
1732
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("50p")
1733
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("GBP 1.00")
1734
 
 
1735
 
        PORT_MODIFY("STROBE1")
1736
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER)   PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
1737
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hand 1")
1738
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hand 2")
1739
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hand 3")
1740
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hand 4")
1741
 
 
1742
 
        PORT_MODIFY("STROBE2")
1743
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Hand 5")
1744
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("?1") PORT_CODE(KEYCODE_U)
1745
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1)
1746
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("?2") PORT_CODE(KEYCODE_I)
1747
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("?3") PORT_CODE(KEYCODE_O)
1748
 
 
1749
 
        PORT_MODIFY("STROBE5")
1750
 
        PORT_BIT( 0x04, IP_ACTIVE_LOW,  IPT_SPECIAL) //Payout opto
1751
 
 
1752
 
        PORT_MODIFY("STROBE9")
1753
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!02" )
1754
 
        PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "DIL:!03" )
1755
 
        PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "DIL:!04" )
1756
 
        PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "DIL:!05" )
1757
 
 
1758
 
        PORT_MODIFY("STROBE10")
1759
 
        PORT_DIPNAME( 0x01, 0x00, "Coin Lockout")PORT_DIPLOCATION("DIL:!06")
1760
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) //Will activate coin lockout when Credit >= 1 Play
1761
 
        PORT_DIPSETTING(    0x01, DEF_STR( On ) )
1762
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!07" )
1763
 
        PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "DIL:!08" )
1764
 
        PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "DIL:!10" )
1765
 
        PORT_DIPNAME( 0x10, 0x00, "Stake per Game / Jackpot" )PORT_DIPLOCATION("DIL:!11")
1766
 
        PORT_DIPSETTING(    0x00, "20p / 6 Pounds" )
1767
 
        PORT_DIPSETTING(    0x10, "50p / 20 Pounds" )
1768
 
 
1769
 
        PORT_MODIFY("STROBE11")
1770
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!12" )
1771
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!13" )
1772
 
        PORT_DIPNAME( 0x1C, 0x00, "Target percentage" )PORT_DIPLOCATION("DIL:!14,!15,!16")
1773
 
        PORT_DIPSETTING(    0x1C, "50%")
1774
 
        PORT_DIPSETTING(    0x0C, "55%")
1775
 
        PORT_DIPSETTING(    0x08, "60%")
1776
 
        PORT_DIPSETTING(    0x18, "65%")
1777
 
        PORT_DIPSETTING(    0x10, "70%")
1778
 
        PORT_DIPSETTING(    0x00, "75%")
1779
 
        PORT_DIPSETTING(    0x04, "80%")
1780
 
        PORT_DIPSETTING(    0x14, "85%")
1781
 
INPUT_PORTS_END
1782
 
 
1783
 
// input ports for slotsnl  ///////////////////////////////////////////////
1784
 
 
1785
 
static INPUT_PORTS_START( slotsnl )
1786
 
        PORT_INCLUDE( pyramid )
1787
 
 
1788
 
        PORT_MODIFY("COINS")
1789
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
1790
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
1791
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
1792
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
1793
 
 
1794
 
        PORT_MODIFY("STROBE1")
1795
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
1796
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Slot 1")
1797
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Slot 2")
1798
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
1799
 
 
1800
 
        PORT_MODIFY("STROBE2")
1801
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3)  PORT_NAME("Slot 3")
1802
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4)  PORT_NAME("Slot 4")
1803
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER )   PORT_NAME("Enter") PORT_CODE( KEYCODE_E )
1804
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
1805
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
1806
 
 
1807
 
        PORT_MODIFY("STROBE3")
1808
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1)
1809
 
 
1810
 
        PORT_MODIFY("STROBE10")
1811
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!06" )
1812
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!07" )
1813
 
        PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "DIL:!08" )
1814
 
        PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "DIL:!10" )
1815
 
        PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:!11")
1816
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1817
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
1818
 
 
1819
 
        PORT_MODIFY("STROBE11")
1820
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!12" )
1821
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!13" )
1822
 
        PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:!14")
1823
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1824
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
1825
 
        PORT_DIPNAME( 0x18, 0x00, "Timebar speed" )PORT_DIPLOCATION("DIL:!15,!16")
1826
 
        PORT_DIPSETTING(    0x00, "1" )
1827
 
        PORT_DIPSETTING(    0x10, "2" )
1828
 
        PORT_DIPSETTING(    0x08, "3" )
1829
 
        PORT_DIPSETTING(    0x18, "4" )
1830
 
INPUT_PORTS_END
1831
 
 
1832
 
// input ports for sltblgtk  //////////////////////////////////////////////
1833
 
 
1834
 
static INPUT_PORTS_START( sltblgtk )
1835
 
        PORT_INCLUDE( pyramid )
1836
 
 
1837
 
        PORT_MODIFY("COINS")
1838
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1839
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Token")
1840
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("20 BFr")
1841
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("50 BFr")
1842
 
 
1843
 
        PORT_MODIFY("STROBE1")
1844
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
1845
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Slot 1")
1846
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Slot 2")
1847
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
1848
 
 
1849
 
        PORT_MODIFY("STROBE2")
1850
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Slot 3")
1851
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Slot 4")
1852
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER  ) PORT_NAME("Enter") PORT_CODE( KEYCODE_E )
1853
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
1854
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
1855
 
 
1856
 
        PORT_MODIFY("STROBE3")
1857
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_SPECIAL ) //Tube 1
1858
 
        PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_SPECIAL ) //Tube 2
1859
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1)
1860
 
 
1861
 
        PORT_MODIFY("STROBE9")
1862
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
1863
 
        PORT_DIPNAME( 0x02, 0x00, "CashMeters in refill menu" )PORT_DIPLOCATION("DIL:!02")
1864
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1865
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
1866
 
        PORT_DIPNAME( 0x04, 0x00, "Token Lockout" )PORT_DIPLOCATION("DIL:!03")
1867
 
        PORT_DIPSETTING(    0x00, DEF_STR( No  ) )
1868
 
        PORT_DIPSETTING(    0x04, DEF_STR( Yes ) )
1869
 
        PORT_DIPNAME( 0x08, 0x00, "20 Bfr Lockout" )PORT_DIPLOCATION("DIL:!04")
1870
 
        PORT_DIPSETTING(    0x00, DEF_STR( No  ) )
1871
 
        PORT_DIPSETTING(    0x08, DEF_STR( Yes ) )
1872
 
        PORT_DIPNAME( 0x10, 0x00, "50 Bfr Lockout" )PORT_DIPLOCATION("DIL:!05")
1873
 
        PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1874
 
        PORT_DIPSETTING(    0x10, DEF_STR( Yes  ) )
1875
 
 
1876
 
        PORT_MODIFY("STROBE10")
1877
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!06" )
1878
 
        PORT_DIPNAME( 0x0E, 0x00, "Payout Percentage" )PORT_DIPLOCATION("DIL:!07,!08,!10")
1879
 
        PORT_DIPSETTING(    0x00, "60%")
1880
 
        PORT_DIPSETTING(    0x08, "65%")
1881
 
        PORT_DIPSETTING(    0x04, "70%")
1882
 
        PORT_DIPSETTING(    0x0C, "75%")
1883
 
        PORT_DIPSETTING(    0x02, "80%")
1884
 
        PORT_DIPSETTING(    0x0A, "84%")
1885
 
        PORT_DIPSETTING(    0x06, "88%")
1886
 
        PORT_DIPSETTING(    0x0E, "90%")
1887
 
        PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:!11")
1888
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1889
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
1890
 
 
1891
 
        PORT_MODIFY("STROBE11")
1892
 
        PORT_DIPNAME( 0x01, 0x00, "Timebar" )PORT_DIPLOCATION("DIL:!12")
1893
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1894
 
        PORT_DIPSETTING(    0x01, DEF_STR( On ) )
1895
 
        PORT_DIPNAME( 0x02, 0x00, "Clear credits" )PORT_DIPLOCATION("DIL:!13")
1896
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1897
 
        PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1898
 
        PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:!14")
1899
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off  ) )
1900
 
        PORT_DIPSETTING(    0x04, DEF_STR( On   ) )
1901
 
        PORT_DIPNAME( 0x08, 0x00, "Show hints" )PORT_DIPLOCATION("DIL:!15")
1902
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1903
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
1904
 
        PORT_DIPNAME( 0x10, 0x00, "Pay win to credits" )PORT_DIPLOCATION("DIL:!16")
1905
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1906
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
1907
 
INPUT_PORTS_END
1908
 
 
1909
 
// input ports for sltblgpo  //////////////////////////////////////////////
1910
 
 
1911
 
static INPUT_PORTS_START( sltblgpo )
1912
 
        PORT_INCLUDE( pyramid )
1913
 
 
1914
 
        PORT_MODIFY("COINS")
1915
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
1916
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
1917
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Bfr 20")
1918
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Bfr 50")
1919
 
 
1920
 
        PORT_MODIFY("STROBE1")
1921
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
1922
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hand 1")
1923
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hand 2")
1924
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
1925
 
 
1926
 
        PORT_MODIFY("STROBE2")
1927
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3)  PORT_NAME("Hand 3")
1928
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4)  PORT_NAME("Hand 4")
1929
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1)
1930
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
1931
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1)  PORT_NAME("Stake")  PORT_CODE( KEYCODE_O )
1932
 
 
1933
 
        PORT_MODIFY("STROBE3")
1934
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
1935
 
 
1936
 
        PORT_MODIFY("STROBE9")
1937
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
1938
 
        PORT_DIPNAME( 0x02, 0x00, "Hopper Limit" )PORT_DIPLOCATION("DIL:!02")
1939
 
        PORT_DIPSETTING(    0x00, "300" )
1940
 
        PORT_DIPSETTING(    0x02, "500" )
1941
 
        PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "DIL:!03" )
1942
 
        PORT_DIPNAME( 0x18, 0x00, "Attendant payout" )PORT_DIPLOCATION("DIL:!04,!05")
1943
 
        PORT_DIPSETTING(    0x00, "1000 Bfr" )
1944
 
        PORT_DIPSETTING(    0x08, "1250 Bfr" )
1945
 
        PORT_DIPSETTING(    0x10, "1500 Bfr" )
1946
 
        PORT_DIPSETTING(    0x18, "1750 Bfr" )
1947
 
 
1948
 
        PORT_MODIFY("STROBE10")
1949
 
        PORT_DIPNAME( 0x01, 0x00, "Bfr 20 Lockout" )PORT_DIPLOCATION("DIL:!06")
1950
 
        PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1951
 
        PORT_DIPSETTING(    0x01, DEF_STR( Yes ) )
1952
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!07" )
1953
 
        PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "DIL:!08" )
1954
 
        PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "DIL:!10" )
1955
 
        PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:!11")
1956
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1957
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
1958
 
 
1959
 
        PORT_MODIFY("STROBE11")
1960
 
        PORT_DIPNAME( 0x01, 0x00, "Clear credits on reset?" )PORT_DIPLOCATION("DIL:!12")
1961
 
        PORT_DIPSETTING(    0x00, DEF_STR( No ) )
1962
 
        PORT_DIPSETTING(    0x01, DEF_STR( Yes ) )
1963
 
        PORT_DIPNAME( 0x02, 0x00, "Attract Mode" )PORT_DIPLOCATION("DIL:!13")
1964
 
        PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1965
 
        PORT_DIPSETTING(    0x00, DEF_STR( On  ) )
1966
 
        PORT_DIPNAME( 0x1C, 0x00, "Target Percentage" )PORT_DIPLOCATION("DIL:!14,!15,!16")
1967
 
        PORT_DIPSETTING(    0x14, "80%")
1968
 
        PORT_DIPSETTING(    0x04, "82%")
1969
 
        PORT_DIPSETTING(    0x1C, "84%")
1970
 
        PORT_DIPSETTING(    0x0C, "86%")
1971
 
        PORT_DIPSETTING(    0x10, "90%")
1972
 
        PORT_DIPSETTING(    0x00, "92%")
1973
 
        PORT_DIPSETTING(    0x18, "94%")
1974
 
        PORT_DIPSETTING(    0x08, "96%")
1975
 
INPUT_PORTS_END
1976
 
 
1977
 
// input ports for paradice ///////////////////////////////////////////////
1978
 
 
1979
 
static INPUT_PORTS_START( paradice )
1980
 
        PORT_INCLUDE( pyramid )
1981
 
 
1982
 
        PORT_MODIFY("COINS")
1983
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
1984
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
1985
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
1986
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
1987
 
 
1988
 
        PORT_MODIFY("STROBE1")
1989
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME( "1 Player Start (Left)" )
1990
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME( "2 Player Start (Right)" )
1991
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME( "A" )
1992
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME( "B" )
1993
 
 
1994
 
        PORT_MODIFY("STROBE2")
1995
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME( "C" )
1996
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER  ) PORT_NAME( "Enter" ) PORT_CODE( KEYCODE_E )
1997
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
1998
 
 
1999
 
        PORT_MODIFY("STROBE10")
2000
 
        PORT_DIPNAME( 0x01, 0x00, "Joker" )PORT_DIPLOCATION("DIL:!06")
2001
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2002
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
2003
 
        PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) )PORT_DIPLOCATION("DIL:!07")
2004
 
        PORT_DIPSETTING(    0x00, DEF_STR( English ) )
2005
 
        PORT_DIPSETTING(    0x02, "Dutch"    )
2006
 
        PORT_DIPNAME( 0x0C, 0x00, "Payout level" )PORT_DIPLOCATION("DIL:!08,!10")
2007
 
        PORT_DIPSETTING(    0x00, DEF_STR( Low ) )
2008
 
        PORT_DIPSETTING(    0x08, "Medium-Low"  )
2009
 
        PORT_DIPSETTING(    0x04, "Medium-High" )
2010
 
        PORT_DIPSETTING(    0x0C, DEF_STR( High ) )
2011
 
        PORT_DIPNAME( 0x10, 0x00, DEF_STR( Difficulty ) )PORT_DIPLOCATION("DIL:!11")
2012
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2013
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
2014
 
 
2015
 
        PORT_MODIFY("STROBE11")
2016
 
        PORT_DIPNAME( 0x03, 0x00, "Winlines to go" )PORT_DIPLOCATION("DIL:!12,!13")
2017
 
        PORT_DIPSETTING(    0x00, "6" )
2018
 
        PORT_DIPSETTING(    0x02, "7" )
2019
 
        PORT_DIPSETTING(    0x01, "8" )
2020
 
        PORT_DIPSETTING(    0x03, "9" )
2021
 
        PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:!14")
2022
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2023
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
2024
 
        PORT_DIPNAME( 0x18, 0x00, "Timebar speed" )PORT_DIPLOCATION("DIL:!15,!16")
2025
 
        PORT_DIPSETTING(    0x00, "0" )
2026
 
        PORT_DIPSETTING(    0x08, "1" )
2027
 
        PORT_DIPSETTING(    0x10, "2" )
2028
 
        PORT_DIPSETTING(    0x18, "3" )
2029
 
INPUT_PORTS_END
2030
 
 
2031
 
// input ports for pokio //////////////////////////////////////////////////
2032
 
 
2033
 
static INPUT_PORTS_START( pokio )
2034
 
        PORT_INCLUDE( pyramid )
2035
 
 
2036
 
        PORT_MODIFY("COINS")
2037
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
2038
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
2039
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
2040
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
2041
 
 
2042
 
        PORT_MODIFY("STROBE1")
2043
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Hand 1 Left" )
2044
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME( "Hand 2 Left" )
2045
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME( "Hand 3 Left" )
2046
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
2047
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
2048
 
 
2049
 
        PORT_MODIFY("STROBE2")
2050
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME( "1 Player Start (Left)" )
2051
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER )  PORT_NAME( "Enter" ) PORT_CODE( KEYCODE_SPACE )
2052
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME( "2 Player Start (Right)" )
2053
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON6 )PORT_NAME( "Hand 3 Right" )
2054
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 )PORT_NAME( "Hand 2 Right" )
2055
 
 
2056
 
        PORT_MODIFY("STROBE3")
2057
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 )PORT_NAME( "Hand 1 Right" )
2058
 
 
2059
 
        PORT_MODIFY("STROBE10")
2060
 
        PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "DIL:!06" )
2061
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!07" )
2062
 
        PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "DIL:!08" )
2063
 
        PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "DIL:!10" )
2064
 
        PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:!11")
2065
 
        PORT_DIPSETTING(    0x10, DEF_STR( Off  ) )
2066
 
        PORT_DIPSETTING(    0x00, DEF_STR( On   ) )
2067
 
 
2068
 
        PORT_MODIFY("STROBE11")
2069
 
        PORT_DIPNAME( 0x01, 0x00, "Time bar" ) PORT_DIPLOCATION("DIL:!12")
2070
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2071
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
2072
 
        PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "DIL:!13" )
2073
 
        PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:!14")
2074
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2075
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
2076
 
        PORT_DIPNAME( 0x18, 0x00, "Timebar speed" )PORT_DIPLOCATION("DIL:!15,!16")
2077
 
        PORT_DIPSETTING(    0x00, "0" )
2078
 
        PORT_DIPSETTING(    0x08, "1" )
2079
 
        PORT_DIPSETTING(    0x10, "2" )
2080
 
        PORT_DIPSETTING(    0x18, "3" )
2081
 
INPUT_PORTS_END
2082
 
 
2083
 
 
2084
 
///////////////////////////////////////////////////////////////////////////
2085
 
// machine driver for scorpion2 board + adder2 expansion //////////////////
2086
 
///////////////////////////////////////////////////////////////////////////
2087
 
 
2088
 
static MACHINE_CONFIG_START( scorpion2_vid, bfm_sc2_state )
2089
 
        MCFG_MACHINE_RESET( init )                                                      // main scorpion2 board initialisation
2090
 
        MCFG_QUANTUM_TIME(attotime::from_hz(960))                                                                       // needed for serial communication !!
2091
 
        MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 ) // 6809 CPU at 2 Mhz
2092
 
        MCFG_CPU_PROGRAM_MAP(memmap_vid)                                        // setup scorpion2 board memorymap
2093
 
        MCFG_CPU_PERIODIC_INT(timer_irq, 1000)                          // generate 1000 IRQ's per second
2094
 
        MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_MONOSTABLE(120000,100e-9))
2095
 
 
2096
 
        MCFG_NVRAM_ADD_0FILL("nvram")
2097
 
        MCFG_NVRAM_HANDLER(bfm_sc2)
2098
 
        MCFG_DEFAULT_LAYOUT(layout_bfm_sc2)
2099
 
 
2100
 
        MCFG_SCREEN_ADD("adder", RASTER)
2101
 
        MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
2102
 
        MCFG_SCREEN_SIZE( 400, 280)
2103
 
        MCFG_SCREEN_VISIBLE_AREA(  0, 400-1, 0, 280-1)
2104
 
        MCFG_SCREEN_REFRESH_RATE(50)
2105
 
        MCFG_SCREEN_UPDATE(addersc2)
2106
 
 
2107
 
        MCFG_VIDEO_START( adder2)
2108
 
        MCFG_VIDEO_RESET( adder2)
2109
 
 
2110
 
        MCFG_PALETTE_LENGTH(16)
2111
 
        MCFG_PALETTE_INIT(adder2)
2112
 
        MCFG_GFXDECODE(adder2)
2113
 
 
2114
 
        MCFG_CPU_ADD("adder2", M6809, MASTER_CLOCK/4 )  // adder2 board 6809 CPU at 2 Mhz
2115
 
        MCFG_CPU_PROGRAM_MAP(adder2_memmap)                             // setup adder2 board memorymap
2116
 
        MCFG_CPU_VBLANK_INT("adder", adder2_vbl)                // board has a VBL IRQ
2117
 
 
2118
 
        MCFG_SPEAKER_STANDARD_MONO("mono")
2119
 
        MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
2120
 
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
2121
 
 
2122
 
        MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz)
2123
 
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
2124
 
MACHINE_CONFIG_END
2125
 
 
2126
 
static void sc2_common_init(running_machine &machine, int decrypt)
2127
 
{
2128
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2129
 
        UINT8 *rom;
2130
 
 
2131
 
        if (decrypt) decode_mainrom(machine, "maincpu");                  // decode main rom
2132
 
 
2133
 
        rom = machine.region("maincpu")->base();
2134
 
        if ( rom )
2135
 
        {
2136
 
                memcpy(&rom[0x10000], &rom[0x00000], 0x2000);
2137
 
        }
2138
 
 
2139
 
        memset(state->m_sc2_Inputs, 0, sizeof(state->m_sc2_Inputs));  // clear all inputs
2140
 
}
2141
 
 
2142
 
static void adder2_common_init(running_machine &machine)
2143
 
{
2144
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2145
 
        UINT8 *pal;
2146
 
 
2147
 
        pal = machine.region("proms")->base();
2148
 
        if ( pal )
2149
 
        {
2150
 
                memcpy(state->m_key, pal, 8);
2151
 
        }
2152
 
}
2153
 
 
2154
 
// UK quintoon initialisation ////////////////////////////////////////////////
2155
 
 
2156
 
static DRIVER_INIT (quintoon)
2157
 
{
2158
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2159
 
        sc2_common_init(machine, 1);
2160
 
        adder2_decode_char_roms(machine);
2161
 
        MechMtr_config(machine,8);                                      // setup mech meters
2162
 
 
2163
 
        state->m_has_hopper = 0;
2164
 
 
2165
 
        Scorpion2_SetSwitchState(machine,3,0,1);        // tube1 level switch
2166
 
        Scorpion2_SetSwitchState(machine,3,1,1);        // tube2 level switch
2167
 
        Scorpion2_SetSwitchState(machine,3,2,1);        // tube3 level switch
2168
 
 
2169
 
        Scorpion2_SetSwitchState(machine,5,2,1);
2170
 
        Scorpion2_SetSwitchState(machine,6,4,1);
2171
 
 
2172
 
        state->m_sc2_show_door   = 1;
2173
 
        state->m_sc2_door_state  = 0x41;
2174
 
}
2175
 
 
2176
 
// dutch pyramid intialisation //////////////////////////////////////////////
2177
 
 
2178
 
static DRIVER_INIT( pyramid )
2179
 
{
2180
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2181
 
        sc2_common_init(machine, 1);
2182
 
        adder2_decode_char_roms(machine);                       // decode GFX roms
2183
 
        adder2_common_init(machine);
2184
 
 
2185
 
        state->m_has_hopper = 1;
2186
 
 
2187
 
        Scorpion2_SetSwitchState(machine,3,0,1);        // tube1 level switch
2188
 
        Scorpion2_SetSwitchState(machine,3,1,1);        // tube2 level switch
2189
 
        Scorpion2_SetSwitchState(machine,3,2,1);        // tube3 level switch
2190
 
 
2191
 
        state->m_sc2_show_door   = 1;
2192
 
        state->m_sc2_door_state  = 0x41;
2193
 
}
2194
 
// belgian slots initialisation /////////////////////////////////////////////
2195
 
 
2196
 
static DRIVER_INIT( sltsbelg )
2197
 
{
2198
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2199
 
        sc2_common_init(machine, 1);
2200
 
        adder2_decode_char_roms(machine);                       // decode GFX roms
2201
 
        adder2_common_init(machine);
2202
 
 
2203
 
        state->m_has_hopper = 1;
2204
 
 
2205
 
        state->m_sc2_show_door   = 1;
2206
 
        state->m_sc2_door_state  = 0x41;
2207
 
}
2208
 
 
2209
 
// other dutch adder games ////////////////////////////////////////////////
2210
 
 
2211
 
static DRIVER_INIT( adder_dutch )
2212
 
{
2213
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2214
 
        sc2_common_init(machine, 1);
2215
 
        adder2_decode_char_roms(machine);                       // decode GFX roms
2216
 
        adder2_common_init(machine);
2217
 
 
2218
 
        state->m_has_hopper = 0;
2219
 
 
2220
 
        Scorpion2_SetSwitchState(machine,3,0,1);        // tube1 level switch
2221
 
        Scorpion2_SetSwitchState(machine,3,1,1);        // tube2 level switch
2222
 
        Scorpion2_SetSwitchState(machine,3,2,1);        // tube3 level switch
2223
 
 
2224
 
        state->m_sc2_show_door   = 1;
2225
 
        state->m_sc2_door_state  = 0x41;
2226
 
}
2227
 
 
2228
 
// golden crown //////////////////////////////////////////////////////////
2229
 
 
2230
 
static DRIVER_INIT( gldncrwn )
2231
 
{
2232
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
2233
 
        sc2_common_init(machine, 1);
2234
 
        adder2_decode_char_roms(machine);                       // decode GFX roms
2235
 
        adder2_common_init(machine);
2236
 
 
2237
 
        state->m_has_hopper = 0;
2238
 
 
2239
 
        Scorpion2_SetSwitchState(machine,3,0,1);        // tube1 level switch
2240
 
        Scorpion2_SetSwitchState(machine,3,1,1);        // tube2 level switch
2241
 
        Scorpion2_SetSwitchState(machine,3,2,1);        // tube3 level switch
2242
 
 
2243
 
        state->m_sc2_show_door   = 0;
2244
 
        state->m_sc2_door_state  = 0x41;
2245
 
}
2246
 
 
2247
 
// ROM definition UK Quintoon ////////////////////////////////////////////
2248
 
 
2249
 
ROM_START( quintoon )
2250
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2251
 
        ROM_LOAD("95750206.p1", 0x00000, 0x10000,  CRC(05f4bfad) SHA1(22751573f3a51a9fd2d2a75a7d1b20d78112e0bb))
2252
 
 
2253
 
        ROM_REGION( 0x20000, "adder2", 0 )
2254
 
        ROM_LOAD("quinp132",            0x00000, 0x20000,  CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
2255
 
 
2256
 
        ROM_REGION( 0x20000, "upd", 0 ) // using Dutch samples, need to check a UK Quintoon PCB
2257
 
        ROM_LOAD("95001016.snd",        0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
2258
 
 
2259
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2260
 
        ROM_LOAD("quinp233",            0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
2261
 
ROM_END
2262
 
 
2263
 
// ROM definition UK Quintoon (older) ////////////////////////////////////
2264
 
 
2265
 
ROM_START( quintono )
2266
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2267
 
        ROM_LOAD("95750203.bin",        0x00000, 0x10000,  CRC(037ef2d0) SHA1(6958624e29629a7639a80e8929b833a8b0201833))
2268
 
 
2269
 
        ROM_REGION( 0x20000, "adder2", 0 )
2270
 
        ROM_LOAD("quinp132",            0x00000, 0x20000,  CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
2271
 
 
2272
 
        ROM_REGION( 0x20000, "upd", 0 ) // using Dutch samples, need to check a UK Quintoon PCB
2273
 
        ROM_LOAD("95001016.snd",        0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
2274
 
 
2275
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2276
 
        ROM_LOAD("quinp233",            0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
2277
 
ROM_END
2278
 
 
2279
 
// ROM definition UK Quintoon (data) /////////////////////////////////////
2280
 
 
2281
 
ROM_START( quintond )
2282
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2283
 
        ROM_LOAD("95751206.bin",        0x00000, 0x10000,  CRC(63def707) SHA1(d016df74f4f83cd72b16f9ccbe78cc382bf056c8))
2284
 
 
2285
 
        ROM_REGION( 0x20000, "adder2", 0 )
2286
 
        ROM_LOAD("quinp132",            0x00000, 0x20000,  CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
2287
 
 
2288
 
        ROM_REGION( 0x20000, "upd", 0 ) // using Dutch samples, need to check a UK Quintoon PCB
2289
 
        ROM_LOAD("95001016.snd",        0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
2290
 
 
2291
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2292
 
        ROM_LOAD("quinp233",            0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
2293
 
ROM_END
2294
 
 
2295
 
// ROM definition Dutch Quintoon ///////////////////////////////////////////
2296
 
 
2297
 
ROM_START( qntoond )
2298
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2299
 
        ROM_LOAD("95750243.bin", 0x00000, 0x10000, CRC(36a8dcd1) SHA1(ab21301312fbb6609f850e1cf6bcda5a2b7f66f5))
2300
 
 
2301
 
        ROM_REGION( 0x20000, "adder2", 0 )
2302
 
        ROM_LOAD("95770024.vid", 0x00000, 0x20000, CRC(5bc7ac55) SHA1(b54e9684f750b73c357d41b88ca8c527258e2a10))
2303
 
 
2304
 
        ROM_REGION( 0x20000, "upd", 0 )
2305
 
        ROM_LOAD("95001016.snd", 0x00000, 0x20000, CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
2306
 
 
2307
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2308
 
        ROM_LOAD("95770025.chr", 0x00000, 0x20000, CRC(f59748ea) SHA1(f0f7f914fdf72db8eb60717b95e7d027c0081339))
2309
 
ROM_END
2310
 
 
2311
 
// ROM definition Dutch Quintoon alternate set /////////////////////////////
2312
 
 
2313
 
ROM_START( qntoondo )
2314
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2315
 
        ROM_LOAD("95750136.bin", 0x00000, 0x10000, CRC(839ea01d) SHA1(d7f77dbaea4e87c3d782408eb50d10f44b6df5e2))
2316
 
 
2317
 
        ROM_REGION( 0x20000, "adder2", 0 )
2318
 
        ROM_LOAD("95770024.vid", 0x00000, 0x20000, CRC(5bc7ac55) SHA1(b54e9684f750b73c357d41b88ca8c527258e2a10))
2319
 
 
2320
 
        ROM_REGION( 0x20000, "upd", 0 )
2321
 
        ROM_LOAD("95001016.snd", 0x00000, 0x20000, CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
2322
 
 
2323
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2324
 
        ROM_LOAD("95770025.chr", 0x00000, 0x20000, CRC(f59748ea) SHA1(f0f7f914fdf72db8eb60717b95e7d027c0081339))
2325
 
ROM_END
2326
 
 
2327
 
// ROM definition dutch golden crown //////////////////////////////////////
2328
 
 
2329
 
ROM_START( gldncrwn )
2330
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2331
 
        ROM_LOAD("95752011.bin", 0x00000, 0x10000, CRC(54f7cca0) SHA1(835727d88113700a38060f880b4dfba2ded41487))
2332
 
 
2333
 
        ROM_REGION( 0x20000, "adder2", 0 )
2334
 
        ROM_LOAD("95770117.vid", 0x00000, 0x20000, CRC(598ba7cb) SHA1(ab518d7df24b0b453ec3fcddfc4db63e0391fde7))
2335
 
 
2336
 
        ROM_REGION( 0x20000, "upd", 0 )
2337
 
        ROM_LOAD("95001039.snd", 0x00000, 0x20000, CRC(6af26157) SHA1(9b3a85f5dd760c4430e38e2844928b74aadc7e75))
2338
 
 
2339
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2340
 
        ROM_LOAD("95770118.ch1", 0x00000, 0x20000, CRC(9c9ac946) SHA1(9a571e7d00f6654242aface032c2fb186ef44aba))
2341
 
        ROM_LOAD("95770119.ch2", 0x20000, 0x20000, CRC(9e0fdb2e) SHA1(05e8257285b0009df4fcc73e93490876358a8be8))
2342
 
 
2343
 
        ROM_REGION( 0x10, "proms", 0 )
2344
 
        ROM_LOAD("gcrpal.bin", 0, 8 , CRC(4edd5a1d) SHA1(d6fe38377d5f2291d33ee8ed808548871e63c4d7))
2345
 
ROM_END
2346
 
 
2347
 
// ROM definition Dutch Paradice //////////////////////////////////////////
2348
 
 
2349
 
ROM_START( paradice )
2350
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2351
 
        ROM_LOAD("95750615.bin", 0x00000, 0x10000, CRC(f51192e5) SHA1(a1290e32bba698006e83fd8d6075202586232929))
2352
 
 
2353
 
        ROM_REGION( 0x20000, "adder2", 0 )
2354
 
        ROM_LOAD("95770084.vid", 0x00000, 0x20000, CRC(8f27bd34) SHA1(fccf7283b5c952b74258ee6e5138c1ca89384e24))
2355
 
 
2356
 
        ROM_REGION( 0x20000, "upd", 0 )
2357
 
        ROM_LOAD("95001037.snd", 0x00000, 0x20000, CRC(82f74276) SHA1(c51c3caeb7bf514ec7a1b452c8effc4c79186062))
2358
 
 
2359
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2360
 
        ROM_LOAD("95770085.ch1", 0x00000, 0x20000, CRC(4d1fb82f) SHA1(054f683d1d7c884911bd2d0f85aab4c59ddf9930))
2361
 
        ROM_LOAD("95770086.ch2", 0x20000, 0x20000, CRC(7b566e11) SHA1(f34c82ad75a0f88204ac4ae83a00801215c46ca9))
2362
 
 
2363
 
        ROM_REGION( 0x10, "proms", 0 )
2364
 
        ROM_LOAD( "pdcepal.bin", 0, 8 , CRC(64020c97) SHA1(9371841e2df950c1f2e5b5a4b52621beb6f60945))
2365
 
ROM_END
2366
 
 
2367
 
// ROM definition Dutch Pokio /////////////////////////////////////////////
2368
 
 
2369
 
ROM_START( pokio )
2370
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2371
 
        ROM_LOAD("95750278.bin", 0x00000, 0x10000, CRC(5124b24d) SHA1(9bc63891a8e9283c2baa64c264a5d6d1625d44b2))
2372
 
 
2373
 
        ROM_REGION( 0x20000, "adder2", 0 )
2374
 
        ROM_LOAD("95770044.vid", 0x00000, 0x20000, CRC(46d7a6d8) SHA1(01f58e735621661b57c61491b3769ae99e92476a))
2375
 
 
2376
 
        ROM_REGION( 0x20000, "upd", 0 )
2377
 
        ROM_LOAD("95001016.snd", 0x00000, 0x20000, CRC(98aaff76) SHA1(4a59cf83daf018d93f1ff7805e06309d2f3d7252))
2378
 
 
2379
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2380
 
        ROM_LOAD("95770045.chr", 0x00000, 0x20000, CRC(dd30da90) SHA1(b4f5a229d88613c0c7d43adf3f325c619abe38a3))
2381
 
 
2382
 
        ROM_REGION( 0x10, "proms", 0 )
2383
 
        ROM_LOAD("pokiopal.bin", 0, 8 , CRC(53535184) SHA1(c5c98085e39ca3671dca72c21a8466d7d70cd341))
2384
 
ROM_END
2385
 
 
2386
 
// ROM definition pyramid prototype  //////////////////////////////////////
2387
 
 
2388
 
ROM_START( pyramid )
2389
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2390
 
        ROM_LOAD("95750898.bin", 0x00000, 0x10000,  CRC(3b0df16c) SHA1(9af599fe604f86c72986aa1610d74837852e023f))
2391
 
 
2392
 
        ROM_REGION( 0x20000, "adder2", 0 )
2393
 
        ROM_LOAD("95770108.vid", 0x00000, 0x20000,  CRC(216ff683) SHA1(227764771600ce88c5f36bed9878e6bb9988ae8f))
2394
 
 
2395
 
        ROM_REGION( 0x20000, "upd", 0 )
2396
 
        ROM_LOAD("95001038.snd", 0x00000, 0x20000, CRC(f885c42e) SHA1(4d79fc5ae4c58247740d78d81302bfbb43331c43))
2397
 
 
2398
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2399
 
        ROM_LOAD("95770106.ch1", 0x00000, 0x20000, CRC(a83c27ae) SHA1(f61ca3cdf19a933bae18c1b32a5fb0a2204dde78))
2400
 
        ROM_LOAD("95770107.ch2", 0x20000, 0x20000, CRC(52e59f64) SHA1(ea4828c2cfb72cd77c92c60560b4d5ee424f7dca))
2401
 
 
2402
 
        ROM_REGION( 0x10, "proms", 0 )
2403
 
        ROM_LOAD("pyrmdpal.bin", 0, 8 , CRC(1c7c37bb) SHA1(fe0276603fee8f58e4318f91645260368212b78b))
2404
 
ROM_END
2405
 
 
2406
 
// ROM definition Dutch slots /////////////////////////////////////////////
2407
 
 
2408
 
ROM_START( slotsnl )
2409
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2410
 
        ROM_LOAD("95750368.bin", 0x00000, 0x10000, CRC(3a43048c) SHA1(13728e05b334cba90ea9cc51ea00c4384baa8614))
2411
 
 
2412
 
        ROM_REGION( 0x20000, "adder2", 0 )
2413
 
        ROM_LOAD("video.vid",    0x00000, 0x20000, CRC(cc760208) SHA1(cc01b1e31335b26f2d0f3470d8624476b153655f))
2414
 
 
2415
 
        ROM_REGION( 0x20000, "upd", 0 )
2416
 
        ROM_LOAD("95001029.snd", 0x00000, 0x20000, CRC(7749c724) SHA1(a87cce0c99e392f501bba44b3936a7059d682c9c))
2417
 
 
2418
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2419
 
        ROM_LOAD("charset.chr",  0x00000, 0x20000,  CRC(ef4300b6) SHA1(a1f765f38c2f146651fc685ea6195af72465f559))
2420
 
 
2421
 
        ROM_REGION( 0x10, "proms", 0 )
2422
 
        ROM_LOAD( "slotspal.bin", 0, 8 , CRC(ee5421f0) SHA1(21bdcbf11dda8b1a93c49ae1c706954bba53c917))
2423
 
ROM_END
2424
 
 
2425
 
// ROM definition Belgian Slots (Token pay per round) Payslide ////////////
2426
 
 
2427
 
ROM_START( sltblgtk )
2428
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2429
 
        ROM_LOAD("95750943.bin", 0x00000, 0x10000, CRC(c9fb8153) SHA1(7c1d0660c15f05b1e0784d8322c62981fe8dc4c9))
2430
 
 
2431
 
        ROM_REGION( 0x20000, "adder2", 0 )
2432
 
        ROM_LOAD("adder121.bin", 0x00000, 0x20000, CRC(cedbbf28) SHA1(559ae341b55462feea771127394a54fc65266818))
2433
 
 
2434
 
        ROM_REGION( 0x20000, "upd", 0 )
2435
 
        ROM_LOAD("sound029.bin", 0x00000, 0x20000, CRC(7749c724) SHA1(a87cce0c99e392f501bba44b3936a7059d682c9c))
2436
 
 
2437
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2438
 
        ROM_LOAD("chr122.bin",   0x00000, 0x20000, CRC(a1e3bdf4) SHA1(f0cabe08dee028e2014cbf0fc3fe0806cdfa60c6))
2439
 
 
2440
 
        ROM_REGION( 0x10, "proms", 0 )
2441
 
        ROM_LOAD("stsbtpal.bin", 0, 8 , CRC(20e13635) SHA1(5aa7e7cac8c00ebc193d63d0c6795904f42c70fa))
2442
 
ROM_END
2443
 
 
2444
 
// ROM definition Belgian Slots (Cash Payout) /////////////////////////////
2445
 
 
2446
 
ROM_START( sltblgp1 )
2447
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2448
 
        ROM_LOAD("95752008.bin", 0x00000, 0x10000, CRC(3167d3b9) SHA1(a28563f65d55c4d47f3e7fdb41e050d8a733b9bd))
2449
 
 
2450
 
        ROM_REGION( 0x20000, "adder2", 0 )
2451
 
        ROM_LOAD("adder142.bin", 0x00000, 0x20000, CRC(a6f6356b) SHA1(b3d3063155ee3ea888273081f844279b6e33f7d9))
2452
 
 
2453
 
        ROM_REGION( 0x20000, "upd", 0 )
2454
 
        ROM_LOAD("sound033.bin", 0x00000, 0x20000, CRC(bb1dfa55) SHA1(442454fccfe03e6f4c3353551cb7459e184a099d))
2455
 
 
2456
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2457
 
        ROM_LOAD("chr143.bin",   0x00000, 0x20000, CRC(a40e91e2) SHA1(87dc76963ea961fcfbe4f3e25df9162348d39d79))
2458
 
 
2459
 
        ROM_REGION( 0x10, "proms", 0 )
2460
 
        ROM_LOAD("stsbcpal.bin", 0, 8 , CRC(c63bcab6) SHA1(238841165d5b3241b0bcc5c1792e9c0be1fc0177))
2461
 
ROM_END
2462
 
 
2463
 
// ROM definition Belgian Slots (Cash Payout) /////////////////////////////
2464
 
 
2465
 
ROM_START( sltblgpo )
2466
 
        ROM_REGION( 0x12000, "maincpu", 0 )
2467
 
        ROM_LOAD("95770938.bin", 0x00000, 0x10000, CRC(7e802634) SHA1(fecf86e632546649d5e647c42a248b39fc2cf982))
2468
 
 
2469
 
        ROM_REGION( 0x20000, "adder2", 0 )
2470
 
        ROM_LOAD("95770120.chr", 0x00000, 0x20000, CRC(ad505138) SHA1(67ccd8dc30e76283247ab5a62b22337ebaff74cd))
2471
 
 
2472
 
        ROM_REGION( 0x20000, "upd", 0 )
2473
 
        ROM_LOAD("sound033.bin", 0x00000, 0x20000, CRC(bb1dfa55) SHA1(442454fccfe03e6f4c3353551cb7459e184a099d))
2474
 
 
2475
 
        ROM_REGION( 0x40000, "gfx1", ROMREGION_ERASEFF )
2476
 
        ROM_LOAD("95770110.add", 0x00000, 0x20000, CRC(64b03284) SHA1(4b1c17b75e449c9762bb949d7cde0694a3aaabeb))
2477
 
 
2478
 
        ROM_REGION( 0x10, "proms", 0 )
2479
 
        ROM_LOAD("stsbcpal.bin", 0, 8 , CRC(c63bcab6) SHA1(238841165d5b3241b0bcc5c1792e9c0be1fc0177))
2480
 
ROM_END
2481
 
 
2482
 
//     year, name,     parent,    machine,       input,     init,       monitor, company,    fullname
2483
 
GAMEL( 1993, qntoondo, qntoond,   scorpion2_vid, qntoond,   adder_dutch,0,       "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-136)",          GAME_SUPPORTS_SAVE,layout_quintoon )
2484
 
GAMEL( 1993, quintoon, 0,                 scorpion2_vid, quintoon,  quintoon,   0,       "BFM",      "Quintoon (UK, Game Card 95-750-206)",                     GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
2485
 
GAMEL( 1993, quintond, quintoon,  scorpion2_vid, quintoon,  quintoon,   0,       "BFM",      "Quintoon (UK, Game Card 95-751-206, Datapak)",GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING,layout_quintoon ) //Current samples need verification
2486
 
GAMEL( 1993, quintono, quintoon,  scorpion2_vid, quintoon,  quintoon,   0,       "BFM",      "Quintoon (UK, Game Card 95-750-203)",                     GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
2487
 
GAMEL( 1993, qntoond,  0,                 scorpion2_vid, qntoond,   adder_dutch,0,       "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-243)",          GAME_SUPPORTS_SAVE,layout_quintoon )
2488
 
GAMEL( 1994, pokio,    0,                 scorpion2_vid, pokio,     adder_dutch,0,       "BFM/ELAM", "Pokio (Dutch, Game Card 95-750-278)",                     GAME_SUPPORTS_SAVE,layout_pokio )
2489
 
GAMEL( 1995, slotsnl,  0,                 scorpion2_vid, slotsnl,   adder_dutch,0,       "BFM/ELAM", "Slots (Dutch, Game Card 95-750-368)",                     GAME_SUPPORTS_SAVE,layout_slots )
2490
 
GAMEL( 1995, paradice, 0,                 scorpion2_vid, paradice,  adder_dutch,0,       "BFM/ELAM", "Paradice (Dutch, Game Card 95-750-615)",          GAME_SUPPORTS_SAVE,layout_paradice )
2491
 
GAMEL( 1996, pyramid,  0,                 scorpion2_vid, pyramid,   pyramid,    0,       "BFM/ELAM", "Pyramid (Dutch, Game Card 95-750-898)",           GAME_SUPPORTS_SAVE,layout_pyramid )
2492
 
 
2493
 
GAMEL( 1996, sltblgtk, 0,                 scorpion2_vid, sltblgtk,  sltsbelg,   0,       "BFM/ELAM", "Slots (Belgian Token, Game Card 95-750-943)",     GAME_SUPPORTS_SAVE,layout_sltblgtk )
2494
 
GAMEL( 1996, sltblgpo, 0,                 scorpion2_vid, sltblgpo,  sltsbelg,   0,       "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-750-938)",      GAME_SUPPORTS_SAVE,layout_sltblgpo )
2495
 
GAMEL( 1996, sltblgp1, sltblgpo,  scorpion2_vid, sltblgpo,  sltsbelg,   0,       "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-752-008)",      GAME_SUPPORTS_SAVE,layout_sltblgpo )
2496
 
GAMEL( 1997, gldncrwn, 0,                 scorpion2_vid, gldncrwn,  gldncrwn,   0,       "BFM/ELAM", "Golden Crown (Dutch, Game Card 95-752-011)",      GAME_SUPPORTS_SAVE,layout_gldncrwn )
2497
 
 
2498
 
/**************************************************************************
2499
 
 
2500
 
    Mechanical Scorpion 2 Games
2501
 
        AGEMAME driver
2502
 
 
2503
 
***************************************************************************
2504
 
 
2505
 
  30-12-2006: J Wallace: Fixed init routines.
2506
 
  07-03-2006: El Condor: Recoded to more accurately represent the hardware
2507
 
              setup.
2508
 
  18-01-2006: Cleaned up for MAME inclusion
2509
 
  19-08-2005: Re-Animator
2510
 
 
2511
 
***************************************************************************/
2512
 
 
2513
 
/* fruit machines only */
2514
 
#include "video/bfm_dm01.h"
2515
 
#include "awpdmd.lh"
2516
 
#include "drwho.lh"
2517
 
#include "awpvid14.lh"
2518
 
#include "awpvid16.lh"
2519
 
 
2520
 
 
2521
 
/* Reels 1 and 2 */
2522
 
static WRITE8_HANDLER( reel12_w )
2523
 
{
2524
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
2525
 
        state->m_reel12_latch = data;
2526
 
 
2527
 
        if ( stepper_update(0, data&0x0f   ) ) state->m_reel_changed |= 0x01;
2528
 
        if ( stepper_update(1, (data>>4))&0x0f ) state->m_reel_changed |= 0x02;
2529
 
 
2530
 
        if ( stepper_optic_state(0) ) state->m_optic_pattern |=  0x01;
2531
 
        else                          state->m_optic_pattern &= ~0x01;
2532
 
        if ( stepper_optic_state(1) ) state->m_optic_pattern |=  0x02;
2533
 
        else                          state->m_optic_pattern &= ~0x02;
2534
 
 
2535
 
        awp_draw_reel(0);
2536
 
        awp_draw_reel(1);
2537
 
}
2538
 
 
2539
 
static WRITE8_HANDLER( reel34_w )
2540
 
{
2541
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
2542
 
        state->m_reel34_latch = data;
2543
 
 
2544
 
        if ( stepper_update(2, data&0x0f ) ) state->m_reel_changed |= 0x04;
2545
 
        if ( stepper_update(3, (data>>4)&0x0f) ) state->m_reel_changed |= 0x08;
2546
 
 
2547
 
        if ( stepper_optic_state(2) ) state->m_optic_pattern |=  0x04;
2548
 
        else                          state->m_optic_pattern &= ~0x04;
2549
 
        if ( stepper_optic_state(3) ) state->m_optic_pattern |=  0x08;
2550
 
        else                          state->m_optic_pattern &= ~0x08;
2551
 
 
2552
 
        awp_draw_reel(2);
2553
 
        awp_draw_reel(3);
2554
 
}
2555
 
 
2556
 
///////////////////////////////////////////////////////////////////////////
2557
 
 
2558
 
static WRITE8_HANDLER( reel56_w )
2559
 
{
2560
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
2561
 
        state->m_reel56_latch = data;
2562
 
 
2563
 
        if ( stepper_update(4, data&0x0f   ) ) state->m_reel_changed |= 0x10;
2564
 
        if ( stepper_update(5, (data>>4)&0x0f) ) state->m_reel_changed |= 0x20;
2565
 
 
2566
 
        if ( stepper_optic_state(4) ) state->m_optic_pattern |=  0x10;
2567
 
        else                          state->m_optic_pattern &= ~0x10;
2568
 
        if ( stepper_optic_state(5) ) state->m_optic_pattern |=  0x20;
2569
 
        else                          state->m_optic_pattern &= ~0x20;
2570
 
 
2571
 
        awp_draw_reel(4);
2572
 
        awp_draw_reel(5);
2573
 
}
2574
 
 
2575
 
///////////////////////////////////////////////////////////////////////////
2576
 
 
2577
 
 
2578
 
/* VFD Status */
2579
 
static READ8_HANDLER( vfd_status_r )
2580
 
{
2581
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
2582
 
        /* b7 = NEC busy */
2583
 
        /* b6 = alpha busy (also matrix board) */
2584
 
        /* b5 - b0 = reel optics */
2585
 
 
2586
 
        int result = state->m_optic_pattern;
2587
 
 
2588
 
        if ( !upd7759_busy_r(space->machine().device("upd")) ) result |= 0x80;
2589
 
 
2590
 
        return result;
2591
 
}
2592
 
 
2593
 
/* VFD Status and data */
2594
 
static READ8_HANDLER( vfd_status_dm01_r )
2595
 
{
2596
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
2597
 
        /* b7 = NEC busy */
2598
 
        /* b6 = alpha busy (also matrix board) */
2599
 
        /* b5 - b0 = reel optics */
2600
 
 
2601
 
        int result = state->m_optic_pattern;
2602
 
 
2603
 
        if ( !upd7759_busy_r(space->machine().device("upd")) ) result |= 0x80;
2604
 
 
2605
 
        if ( BFM_dm01_busy() ) result |= 0x40;
2606
 
 
2607
 
        return result;
2608
 
}
2609
 
 
2610
 
 
2611
 
static WRITE8_HANDLER( vfd1_data_dm01_w )
2612
 
{
2613
 
        bfm_sc2_state *state = space->machine().driver_data<bfm_sc2_state>();
2614
 
        state->m_vfd1_latch = data;
2615
 
        BFM_dm01_writedata(space->machine(),data);
2616
 
}
2617
 
 
2618
 
 
2619
 
static READ8_HANDLER( direct_input_r )
2620
 
{
2621
 
        return 0;
2622
 
}
2623
 
 
2624
 
 
2625
 
#ifdef UNUSED_FUNCTION
2626
 
/* Scorpion 3 expansion */
2627
 
static READ8_HANDLER( sc3_expansion_r )
2628
 
{
2629
 
    int result = 0;
2630
 
 
2631
 
    switch ( offset )
2632
 
    {
2633
 
        case 0: result = 0;
2634
 
        break;
2635
 
        case 1: result = input_port_read_indexed(machine,0);  /* coin input */
2636
 
    }
2637
 
 
2638
 
    return result;
2639
 
}
2640
 
 
2641
 
 
2642
 
static WRITE8_HANDLER( sc3_expansion_w )
2643
 
{
2644
 
    switch ( offset )
2645
 
    {
2646
 
            case 0:
2647
 
        break;
2648
 
            case 1:
2649
 
        break;
2650
 
    }
2651
 
}
2652
 
#endif
2653
 
 
2654
 
 
2655
 
/* machine init (called only once) */
2656
 
static MACHINE_RESET( awp_init )
2657
 
{
2658
 
        on_scorpion2_reset(machine);
2659
 
        BFM_BD1_init(0);
2660
 
        BFM_BD1_init(1);
2661
 
}
2662
 
 
2663
 
 
2664
 
static MACHINE_RESET( dm01_init )
2665
 
{
2666
 
        on_scorpion2_reset(machine);
2667
 
        BFM_dm01_reset(machine);
2668
 
}
2669
 
 
2670
 
 
2671
 
static ADDRESS_MAP_START( sc2_memmap, AS_PROGRAM, 8 )
2672
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k
2673
 
        AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
2674
 
        AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
2675
 
        AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
2676
 
        AM_RANGE(0x2200, 0x22FF) AM_WRITE(reel56_w)
2677
 
 
2678
 
        AM_RANGE(0x2300, 0x230B) AM_READ(mux_input_r)
2679
 
        AM_RANGE(0x2300, 0x231F) AM_WRITE(mux_output_w)
2680
 
        AM_RANGE(0x2320, 0x2323) AM_WRITE(dimas_w)                              /* ?unknown dim related */
2681
 
 
2682
 
        AM_RANGE(0x2324, 0x2324) AM_READWRITE(expansion_latch_r, expansion_latch_w)
2683
 
        AM_RANGE(0x2325, 0x2327) AM_WRITE(unknown_w)
2684
 
        AM_RANGE(0x2328, 0x2328) AM_WRITE(muxena_w)
2685
 
        AM_RANGE(0x2329, 0x2329) AM_READWRITE(timerirqclr_r, timerirq_w)
2686
 
        AM_RANGE(0x232A, 0x232D) AM_WRITE(unknown_w)
2687
 
        AM_RANGE(0x232E, 0x232E) AM_READ(irqstatus_r)
2688
 
        AM_RANGE(0x232F, 0x232F) AM_WRITE(coininhib_w)
2689
 
        AM_RANGE(0x2330, 0x2330) AM_WRITE(payout_latch_w)
2690
 
        AM_RANGE(0x2331, 0x2331) AM_WRITE(payout_triac_w)
2691
 
        AM_RANGE(0x2332, 0x2332) AM_WRITE(watchdog_reset_w)
2692
 
        AM_RANGE(0x2333, 0x2333) AM_WRITE(mmtr_w)
2693
 
        AM_RANGE(0x2334, 0x2335) AM_WRITE(unknown_w)
2694
 
        AM_RANGE(0x2336, 0x2336) AM_WRITE(dimcnt_w)
2695
 
        AM_RANGE(0x2337, 0x2337) AM_WRITE(volume_override_w)
2696
 
        AM_RANGE(0x2338, 0x2338) AM_WRITE(payout_select_w)
2697
 
        AM_RANGE(0x2339, 0x2339) AM_WRITE(unknown_w)
2698
 
        AM_RANGE(0x2400, 0x2400) AM_READWRITE(uart1stat_r, uart1ctrl_w) /* mc6850 compatible uart */
2699
 
        AM_RANGE(0x2500, 0x2500) AM_READWRITE(uart1data_r, uart1data_w)
2700
 
        AM_RANGE(0x2600, 0x2600) AM_READWRITE(uart2stat_r, uart2ctrl_w) /* mc6850 compatible uart */
2701
 
        AM_RANGE(0x2700, 0x2700) AM_READWRITE(uart2data_r, uart2data_w)
2702
 
        AM_RANGE(0x2800, 0x2800) AM_WRITE(vfd1_data_w)                                  /* vfd1 data */
2703
 
        AM_RANGE(0x2900, 0x2900) AM_WRITE(vfd_reset_w)                                  /* vfd1+vfd2 reset line */
2704
 
 
2705
 
        AM_RANGE(0x2A00, 0x2AFF) AM_DEVWRITE("upd", nec_latch_w)
2706
 
        AM_RANGE(0x2B00, 0x2BFF) AM_DEVWRITE("upd", nec_reset_w)
2707
 
        AM_RANGE(0x2C00, 0x2C00) AM_WRITE(unlock_w)                                             /* custom chip unlock */
2708
 
        AM_RANGE(0x2D00, 0x2D01) AM_DEVWRITE("ymsnd", ym2413_w)
2709
 
        AM_RANGE(0x2E00, 0x2E00) AM_WRITE(bankswitch_w)                                 /* write bank (rom page select for 0x6000 - 0x7fff ) */
2710
 
        AM_RANGE(0x2F00, 0x2F00) AM_WRITE(vfd2_data_w)                                  /* vfd2 data */
2711
 
 
2712
 
        AM_RANGE(0x3FFF, 0x3FFF) AM_READ( coin_input_r)
2713
 
        AM_RANGE(0x4000, 0x5FFF) AM_ROM                                                                 /* 8k  fixed ROM */
2714
 
        AM_RANGE(0x6000, 0x7FFF) AM_ROMBANK("bank1")                                    /* 8k  paged ROM (4 pages) */
2715
 
        AM_RANGE(0x8000, 0xFFFF) AM_ROM                                                                 /* 32k ROM */
2716
 
ADDRESS_MAP_END
2717
 
 
2718
 
 
2719
 
/* memory map for scorpion3 board */
2720
 
static ADDRESS_MAP_START( sc3_memmap, AS_PROGRAM, 8 )
2721
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k
2722
 
        AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
2723
 
        AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
2724
 
        AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
2725
 
        AM_RANGE(0x2200, 0x22FF) AM_WRITE(reel56_w)
2726
 
 
2727
 
        AM_RANGE(0x2300, 0x230B) AM_READ(mux_input_r)
2728
 
        AM_RANGE(0x2300, 0x231F) AM_WRITE(mux_output_w)
2729
 
        AM_RANGE(0x2320, 0x2323) AM_WRITE(dimas_w)
2730
 
 
2731
 
        AM_RANGE(0x2324, 0x2324) AM_READWRITE(expansion_latch_r, expansion_latch_w)
2732
 
        AM_RANGE(0x2325, 0x2327) AM_WRITE(unknown_w)
2733
 
        AM_RANGE(0x2328, 0x2328) AM_WRITE(muxena_w)
2734
 
        AM_RANGE(0x2329, 0x2329) AM_READWRITE(timerirqclr_r, timerirq_w)
2735
 
        AM_RANGE(0x232A, 0x232D) AM_WRITE(unknown_w)
2736
 
        AM_RANGE(0x232E, 0x232E) AM_READ(irqstatus_r)
2737
 
        AM_RANGE(0x232F, 0x232F) AM_WRITE(coininhib_w)
2738
 
        AM_RANGE(0x2330, 0x2330) AM_WRITE(payout_latch_w)
2739
 
        AM_RANGE(0x2331, 0x2331) AM_WRITE(payout_triac_w)
2740
 
        AM_RANGE(0x2332, 0x2332) AM_WRITE(watchdog_reset_w)
2741
 
        AM_RANGE(0x2333, 0x2333) AM_WRITE(mmtr_w)
2742
 
        AM_RANGE(0x2334, 0x2335) AM_WRITE(unknown_w)
2743
 
        AM_RANGE(0x2336, 0x2336) AM_WRITE(dimcnt_w)
2744
 
        AM_RANGE(0x2337, 0x2337) AM_WRITE(volume_override_w)
2745
 
        AM_RANGE(0x2338, 0x2338) AM_WRITE(payout_select_w)
2746
 
        AM_RANGE(0x2339, 0x2339) AM_WRITE(unknown_w)
2747
 
        AM_RANGE(0x2400, 0x2400) AM_READWRITE(uart1stat_r, uart1ctrl_w)
2748
 
        AM_RANGE(0x2500, 0x2500) AM_READWRITE(uart1data_r, uart1data_w)
2749
 
        AM_RANGE(0x2600, 0x2600) AM_READWRITE(uart2stat_r, uart2ctrl_w)
2750
 
        AM_RANGE(0x2700, 0x2700) AM_READWRITE(uart2data_r, uart2data_w)
2751
 
        AM_RANGE(0x2800, 0x2800) AM_WRITE(vfd1_data_w)
2752
 
        AM_RANGE(0x2900, 0x2900) AM_WRITE(vfd_reset_w)
2753
 
 
2754
 
        AM_RANGE(0x2A00, 0x2AFF) AM_DEVWRITE("upd", nec_latch_w)
2755
 
        AM_RANGE(0x2B00, 0x2BFF) AM_DEVWRITE("upd", nec_reset_w)
2756
 
        AM_RANGE(0x2C00, 0x2C00) AM_WRITE(unlock_w)
2757
 
        AM_RANGE(0x2D00, 0x2D01) AM_DEVWRITE("ymsnd", ym2413_w)
2758
 
        AM_RANGE(0x2E00, 0x2E00) AM_WRITE(bankswitch_w)
2759
 
        AM_RANGE(0x2F00, 0x2F00) AM_WRITE(vfd2_data_w)
2760
 
        AM_RANGE(0x3FFF, 0x3FFF) AM_READ( coin_input_r)
2761
 
        AM_RANGE(0x4000, 0x5FFF) AM_ROM
2762
 
//  AM_RANGE(0x4000, 0xFFFF) AM_WRITE(unknown_w)
2763
 
        AM_RANGE(0x6000, 0x7FFF) AM_ROMBANK("bank1")
2764
 
        AM_RANGE(0x8000, 0xFFFF) AM_ROM
2765
 
ADDRESS_MAP_END
2766
 
 
2767
 
 
2768
 
/* memory map for scorpion2 board + dm01 dot matrix board */
2769
 
static ADDRESS_MAP_START( memmap_sc2_dm01, AS_PROGRAM, 8 )
2770
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram") //8k
2771
 
        AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_dm01_r)
2772
 
        AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
2773
 
        AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
2774
 
        AM_RANGE(0x2200, 0x22FF) AM_WRITE(reel56_w)
2775
 
 
2776
 
        AM_RANGE(0x2300, 0x230B) AM_READ(mux_input_r)
2777
 
        AM_RANGE(0x2300, 0x231F) AM_WRITE(mux_output_w)
2778
 
        AM_RANGE(0x2320, 0x2323) AM_WRITE(dimas_w)
2779
 
 
2780
 
        AM_RANGE(0x2324, 0x2324) AM_READWRITE(expansion_latch_r, expansion_latch_w)
2781
 
        AM_RANGE(0x2325, 0x2327) AM_WRITE(unknown_w)
2782
 
        AM_RANGE(0x2328, 0x2328) AM_WRITE(muxena_w)
2783
 
        AM_RANGE(0x2329, 0x2329) AM_READWRITE(timerirqclr_r, timerirq_w)
2784
 
        AM_RANGE(0x232A, 0x232D) AM_WRITE(unknown_w)
2785
 
        AM_RANGE(0x232E, 0x232E) AM_READ(irqstatus_r)
2786
 
        AM_RANGE(0x232F, 0x232F) AM_WRITE(coininhib_w)
2787
 
        AM_RANGE(0x2330, 0x2330) AM_WRITE(payout_latch_w)
2788
 
        AM_RANGE(0x2331, 0x2331) AM_WRITE(payout_triac_w)
2789
 
        AM_RANGE(0x2332, 0x2332) AM_WRITE(watchdog_reset_w)
2790
 
        AM_RANGE(0x2333, 0x2333) AM_WRITE(mmtr_w)
2791
 
        AM_RANGE(0x2334, 0x2335) AM_WRITE(unknown_w)
2792
 
        AM_RANGE(0x2336, 0x2336) AM_WRITE(dimcnt_w)
2793
 
        AM_RANGE(0x2337, 0x2337) AM_WRITE(volume_override_w)
2794
 
        AM_RANGE(0x2338, 0x2338) AM_WRITE(payout_select_w)
2795
 
        AM_RANGE(0x2339, 0x2339) AM_WRITE(unknown_w)
2796
 
        AM_RANGE(0x2400, 0x2400) AM_READWRITE(uart1stat_r, uart1ctrl_w)
2797
 
        AM_RANGE(0x2500, 0x2500) AM_READWRITE(uart1data_r, uart1data_w)
2798
 
        AM_RANGE(0x2600, 0x2600) AM_READWRITE(uart2stat_r, uart2ctrl_w)
2799
 
        AM_RANGE(0x2700, 0x2700) AM_READWRITE(uart2data_r, uart2data_w)
2800
 
        AM_RANGE(0x2800, 0x2800) AM_WRITE(vfd1_data_dm01_w)
2801
 
        AM_RANGE(0x2900, 0x2900) AM_WRITE(vfd_reset_w)
2802
 
 
2803
 
        AM_RANGE(0x2A00, 0x2AFF) AM_DEVWRITE("upd", nec_latch_w)
2804
 
        AM_RANGE(0x2B00, 0x2BFF) AM_DEVWRITE("upd", nec_reset_w)
2805
 
        AM_RANGE(0x2C00, 0x2C00) AM_WRITE(unlock_w)
2806
 
        AM_RANGE(0x2D00, 0x2D01) AM_DEVWRITE("ymsnd", ym2413_w)
2807
 
        AM_RANGE(0x2E00, 0x2E00) AM_WRITE(bankswitch_w)
2808
 
        AM_RANGE(0x2F00, 0x2F00) AM_WRITE(vfd2_data_w)
2809
 
        AM_RANGE(0x3FFE, 0x3FFE) AM_READ( direct_input_r)
2810
 
        AM_RANGE(0x3FFF, 0x3FFF) AM_READ( coin_input_r)
2811
 
        AM_RANGE(0x4000, 0x5FFF) AM_ROM
2812
 
//  AM_RANGE(0x4000, 0xFFFF) AM_WRITE(unknown_w)
2813
 
        AM_RANGE(0x6000, 0x7FFF) AM_ROMBANK("bank1")
2814
 
        AM_RANGE(0x8000, 0xFFFF) AM_ROM
2815
 
ADDRESS_MAP_END
2816
 
 
2817
 
#ifdef UNREFERENCED_CODE
2818
 
static INPUT_PORTS_START( scorpion2 )
2819
 
        PORT_START("COINS")
2820
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3)
2821
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3)
2822
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3)
2823
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3)
2824
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN5 ) PORT_IMPULSE(3)
2825
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN6 ) PORT_IMPULSE(3)
2826
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN7 ) PORT_IMPULSE(3)
2827
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN8 ) PORT_IMPULSE(3)
2828
 
 
2829
 
        PORT_START("STROBE0")
2830
 
        PORT_BIT( 0xFF, IP_ACTIVE_HIGH, IPT_UNUSED)
2831
 
 
2832
 
        PORT_START("STROBE1")
2833
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("I10")
2834
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("I11")
2835
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("I12")
2836
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("I13")
2837
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("I14")
2838
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
2839
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
2840
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
2841
 
 
2842
 
        PORT_START("STROBE2")
2843
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("I20")
2844
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("I21")
2845
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("I22")
2846
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_NAME("I23")
2847
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_NAME("I24")
2848
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED  )
2849
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED  )
2850
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED  )
2851
 
 
2852
 
        PORT_START("STROBE3")
2853
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER )     PORT_NAME("I30")
2854
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER )     PORT_NAME("I31")
2855
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER )     PORT_NAME("I32")
2856
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER )     PORT_NAME("I33")
2857
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER )     PORT_NAME("I34")
2858
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2859
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2860
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2861
 
 
2862
 
        PORT_START("STROBE4")
2863
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK)  PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
2864
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_INTERLOCK)  PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
2865
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER )             PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
2866
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER )             PORT_NAME("I43")
2867
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER )             PORT_NAME("I44")
2868
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2869
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2870
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2871
 
 
2872
 
        PORT_START("STROBE5")
2873
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I50")
2874
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I51")
2875
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I52")
2876
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I53")
2877
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I54")
2878
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2879
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2880
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2881
 
 
2882
 
        PORT_START("STROBE6")
2883
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I60")
2884
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I61")
2885
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I62")
2886
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I63")
2887
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I64")
2888
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2889
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2890
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2891
 
 
2892
 
        PORT_START("STROBE7")
2893
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I70")
2894
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I71")
2895
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I72")
2896
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I73")
2897
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I74")
2898
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2899
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2900
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2901
 
 
2902
 
        PORT_START("STROBE8")
2903
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I80")
2904
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I81")
2905
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I82")
2906
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I83")
2907
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("I84")
2908
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2909
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2910
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2911
 
 
2912
 
        PORT_START("STROBE9")
2913
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
2914
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
2915
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2916
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
2917
 
        PORT_DIPNAME( 0x04, 0x00, "DIL03" ) PORT_DIPLOCATION("DIL:03")
2918
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2919
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
2920
 
        PORT_DIPNAME( 0x08, 0x00, "DIL04" ) PORT_DIPLOCATION("DIL:04")
2921
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2922
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
2923
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
2924
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2925
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
2926
 
 
2927
 
        PORT_START("STROBE10")
2928
 
        PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
2929
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2930
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
2931
 
        PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
2932
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2933
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
2934
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
2935
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2936
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
2937
 
        PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
2938
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2939
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
2940
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
2941
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2942
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
2943
 
 
2944
 
        PORT_START("STROBE11")
2945
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
2946
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2947
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
2948
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
2949
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2950
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
2951
 
        PORT_DIPNAME( 0x04, 0x00, "DIL14" ) PORT_DIPLOCATION("DIL:14")
2952
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2953
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
2954
 
        PORT_DIPNAME( 0x08, 0x00, "DIL15" ) PORT_DIPLOCATION("DIL:15")
2955
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2956
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
2957
 
        PORT_DIPNAME( 0x10, 0x00, "DIL16" ) PORT_DIPLOCATION("DIL:16")
2958
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2959
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
2960
 
INPUT_PORTS_END
2961
 
#endif
2962
 
 
2963
 
static INPUT_PORTS_START( bbrkfst )
2964
 
        PORT_START("COINS")
2965
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("10p")
2966
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("20p")
2967
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("50p")
2968
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("GBP 1.00")
2969
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN5 ) PORT_IMPULSE(3) PORT_NAME("Token")
2970
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
2971
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
2972
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
2973
 
 
2974
 
        PORT_START("STROBE0")
2975
 
        PORT_BIT( 0xFF, IP_ACTIVE_HIGH, IPT_UNUSED)
2976
 
 
2977
 
        PORT_START("STROBE1")
2978
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Cancel")
2979
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1")
2980
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2/Hi")
2981
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3/Lo")
2982
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Stop/Collect")
2983
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
2984
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
2985
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
2986
 
 
2987
 
        PORT_START("STROBE2")
2988
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Exchange")
2989
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1  )
2990
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
2991
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Take Big Breakfast")
2992
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Take Feature")
2993
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED  )
2994
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED  )
2995
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED  )
2996
 
 
2997
 
        PORT_START("STROBE3")
2998
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
2999
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3000
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
3001
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3002
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3003
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3004
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3005
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3006
 
 
3007
 
        PORT_START("STROBE4")
3008
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK)  PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
3009
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_INTERLOCK)  PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
3010
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER )             PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
3011
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3012
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3013
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3014
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3015
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3016
 
 
3017
 
        PORT_START("STROBE5")
3018
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
3019
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3020
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
3021
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3022
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3023
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3024
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3025
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3026
 
 
3027
 
        PORT_START("STROBE6")
3028
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
3029
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3030
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
3031
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3032
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3033
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3034
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3035
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3036
 
 
3037
 
        PORT_START("STROBE7")
3038
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
3039
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3040
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
3041
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3042
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3043
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3044
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3045
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3046
 
 
3047
 
        PORT_START("STROBE8")
3048
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
3049
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3050
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
3051
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3052
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3053
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3054
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3055
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3056
 
 
3057
 
        PORT_START("STROBE9")
3058
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
3059
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
3060
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3061
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3062
 
        PORT_DIPNAME( 0x04, 0x00, "DIL03" ) PORT_DIPLOCATION("DIL:03")
3063
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3064
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3065
 
        PORT_DIPNAME( 0x08, 0x00, "DIL04" ) PORT_DIPLOCATION("DIL:04")
3066
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3067
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3068
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
3069
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3070
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3071
 
 
3072
 
        PORT_START("STROBE10")
3073
 
        PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
3074
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3075
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3076
 
        PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
3077
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3078
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3079
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
3080
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3081
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3082
 
        PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
3083
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3084
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3085
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
3086
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3087
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3088
 
 
3089
 
        PORT_START("STROBE11")
3090
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
3091
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3092
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3093
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
3094
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3095
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3096
 
        PORT_DIPNAME( 0x04, 0x00, "DIL14" ) PORT_DIPLOCATION("DIL:14")
3097
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3098
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3099
 
        PORT_DIPNAME( 0x08, 0x00, "DIL15" ) PORT_DIPLOCATION("DIL:15")
3100
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3101
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3102
 
        PORT_DIPNAME( 0x10, 0x00, "DIL16" ) PORT_DIPLOCATION("DIL:16")
3103
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3104
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3105
 
INPUT_PORTS_END
3106
 
 
3107
 
static INPUT_PORTS_START( drwho )
3108
 
        PORT_START("COINS")
3109
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("10p")
3110
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("20p")
3111
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("50p")
3112
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("GBP 1.00")
3113
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN5 ) PORT_IMPULSE(3) PORT_NAME("Token")
3114
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3115
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3116
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3117
 
 
3118
 
        PORT_START("STROBE0")
3119
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3120
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3121
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3122
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3123
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3124
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3125
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3126
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3127
 
 
3128
 
        PORT_START("STROBE1")
3129
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Cancel")
3130
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1")
3131
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2/Hi")
3132
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3/Lo")
3133
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Stop/Collect")
3134
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3135
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3136
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3137
 
 
3138
 
        PORT_START("STROBE2")
3139
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Exchange")
3140
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3141
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
3142
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3143
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3144
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3145
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3146
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3147
 
 
3148
 
        PORT_START("STROBE3")
3149
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK)PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
3150
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_INTERLOCK)PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
3151
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER  )  PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
3152
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3153
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3154
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3155
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3156
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3157
 
 
3158
 
        PORT_START("STROBE4")
3159
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status Low switch for 1 Pound*/
3160
 
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status Low switch for 20p*/
3161
 
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status Low switch for Token Front*/
3162
 
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status Low switch for Token Rear*/
3163
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3164
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3165
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3166
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3167
 
 
3168
 
        PORT_START("STROBE5")
3169
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3170
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3171
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3172
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3173
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3174
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3175
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3176
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3177
 
 
3178
 
        PORT_START("STROBE6")
3179
 
        PORT_DIPNAME( 0x07, 0x07, "PERCENTAGE KEY" ) PORT_DIPLOCATION("STROBE6:01,02,03")/*Certain combinations give different percentages*/
3180
 
        PORT_DIPSETTING(    0x00, "No key") /*Some day, I'll work all these values out.*/
3181
 
        PORT_DIPSETTING(    0x01, "Key 1" )
3182
 
        PORT_DIPSETTING(    0x02, "Key 2" )
3183
 
        PORT_DIPSETTING(    0x03, "Key 3" )
3184
 
        PORT_DIPSETTING(    0x04, "Key 4" )
3185
 
        PORT_DIPSETTING(    0x05, "Key 5" )
3186
 
        PORT_DIPSETTING(    0x06, "Key 6" )
3187
 
        PORT_DIPSETTING(    0x07, "Key 7" )
3188
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3189
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3190
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3191
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3192
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3193
 
 
3194
 
        PORT_START("STROBE7")
3195
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status High switch for 1 Pound*/
3196
 
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status High switch for 20p*/
3197
 
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status High switch for Token Front*/
3198
 
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL )/*Tube status High switch for Token Rear*/
3199
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3200
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3201
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3202
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3203
 
 
3204
 
        PORT_START("STROBE8")
3205
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3206
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3207
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3208
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3209
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3210
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3211
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3212
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3213
 
 
3214
 
        PORT_START("STROBE9")
3215
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
3216
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
3217
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3218
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3219
 
        PORT_DIPNAME( 0x04, 0x00, "DIL03" ) PORT_DIPLOCATION("DIL:03")
3220
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3221
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3222
 
        PORT_DIPNAME( 0x08, 0x00, "DIL04" ) PORT_DIPLOCATION("DIL:04")
3223
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3224
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3225
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
3226
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3227
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3228
 
 
3229
 
        PORT_START("STROBE10")
3230
 
        PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
3231
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3232
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3233
 
        PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
3234
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3235
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3236
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
3237
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3238
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3239
 
        PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
3240
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3241
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3242
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
3243
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3244
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3245
 
 
3246
 
        PORT_START("STROBE11")
3247
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
3248
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3249
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3250
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
3251
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3252
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3253
 
        PORT_DIPNAME( 0x04, 0x00, "DIL14" ) PORT_DIPLOCATION("DIL:14")
3254
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3255
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3256
 
        PORT_DIPNAME( 0x08, 0x00, "DIL15" ) PORT_DIPLOCATION("DIL:15")
3257
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3258
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3259
 
        PORT_DIPNAME( 0x10, 0x00, "DIL16" ) PORT_DIPLOCATION("DIL:16")
3260
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3261
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3262
 
INPUT_PORTS_END
3263
 
 
3264
 
static INPUT_PORTS_START( cpeno1 )
3265
 
        PORT_START("COINS")
3266
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3)
3267
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3)
3268
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3)
3269
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3)
3270
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN5 ) PORT_IMPULSE(3)
3271
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN6 ) PORT_IMPULSE(3)
3272
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN7 ) PORT_IMPULSE(3)
3273
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN8 ) PORT_IMPULSE(3)
3274
 
 
3275
 
        PORT_START("STROBE0")
3276
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3277
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3278
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3279
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3280
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3281
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3282
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3283
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3284
 
 
3285
 
        PORT_START("STROBE1")
3286
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hold 1")
3287
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1?")
3288
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2/Hi")
3289
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3/Lo")
3290
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Cancel/Collect")
3291
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3292
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3293
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3294
 
 
3295
 
        PORT_START("STROBE2")
3296
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Stop/Exchange")
3297
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3298
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
3299
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3300
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3301
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3302
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3303
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3304
 
 
3305
 
        PORT_START("STROBE3")
3306
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
3307
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
3308
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER  )   PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
3309
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3310
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3311
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3312
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3313
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3314
 
 
3315
 
        PORT_START("STROBE4")
3316
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3317
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3318
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3319
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3320
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3321
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3322
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3323
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3324
 
 
3325
 
        PORT_START("STROBE5")
3326
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3327
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3328
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3329
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3330
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3331
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3332
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3333
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3334
 
 
3335
 
        PORT_START("STROBE6")
3336
 
        PORT_DIPNAME( 0x07, 0x07, "PERCENTAGE KEY" ) PORT_DIPLOCATION("STROBE6:01,02,03")
3337
 
        PORT_DIPSETTING(    0x00, "No key" )
3338
 
        PORT_DIPSETTING(    0x01, "Key 1" )
3339
 
        PORT_DIPSETTING(    0x02, "Key 2" )
3340
 
        PORT_DIPSETTING(    0x03, "Key 3" )
3341
 
        PORT_DIPSETTING(    0x04, "Key 4" )
3342
 
        PORT_DIPSETTING(    0x05, "Key 5" )
3343
 
        PORT_DIPSETTING(    0x06, "Key 6" )
3344
 
        PORT_DIPSETTING(    0x07, "Key 7" )
3345
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3346
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3347
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3348
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3349
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3350
 
 
3351
 
        PORT_START("STROBE7")
3352
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3353
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3354
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3355
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3356
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3357
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3358
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3359
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3360
 
 
3361
 
        PORT_START("STROBE8")
3362
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3363
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3364
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3365
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3366
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3367
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3368
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3369
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3370
 
 
3371
 
        PORT_START("STROBE9")
3372
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
3373
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
3374
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3375
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3376
 
        PORT_DIPNAME( 0x04, 0x00, "Attract Hi/Lo reel" ) PORT_DIPLOCATION("DIL:03")
3377
 
        PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
3378
 
        PORT_DIPSETTING(    0x00, DEF_STR( On  ) )
3379
 
        PORT_DIPNAME( 0x08, 0x00, "Acceptor type" ) PORT_DIPLOCATION("DIL:04")
3380
 
        PORT_DIPSETTING(    0x00, "Mars" )
3381
 
        PORT_DIPSETTING(    0x08, "Sentinel" )
3382
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
3383
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3384
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3385
 
 
3386
 
        PORT_START("STROBE10")
3387
 
        PORT_DIPNAME( 0x01, 0x00, "Coin play" ) PORT_DIPLOCATION("DIL:06")
3388
 
        PORT_DIPSETTING(    0x00, "Multi coin" )
3389
 
        PORT_DIPSETTING(    0x01, "Single coin" )
3390
 
        PORT_DIPNAME( 0x02, 0x00, "CashPot Freq" ) PORT_DIPLOCATION("DIL:07")
3391
 
        PORT_DIPSETTING(    0x00, DEF_STR( High) )
3392
 
        PORT_DIPSETTING(    0x02, DEF_STR( Low ) )
3393
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
3394
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3395
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3396
 
        PORT_DIPNAME( 0x08, 0x00, "Coin Jam Alarm" ) PORT_DIPLOCATION("DIL:10")
3397
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3398
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3399
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
3400
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3401
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3402
 
 
3403
 
        PORT_START("STROBE11")
3404
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
3405
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3406
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3407
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
3408
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3409
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3410
 
        PORT_DIPNAME( 0x1C, 0x00, "Percentage setting" ) PORT_DIPLOCATION("DIL:14,15,16")
3411
 
        PORT_DIPSETTING(    0x0C, "72%" )
3412
 
        PORT_DIPSETTING(    0x04, "75%" )
3413
 
        PORT_DIPSETTING(    0x00, "78%" )
3414
 
        PORT_DIPSETTING(    0x10, "81%" )
3415
 
        PORT_DIPSETTING(    0x18, "85%" )
3416
 
INPUT_PORTS_END
3417
 
 
3418
 
static INPUT_PORTS_START( luvjub )
3419
 
        PORT_START("COINS")
3420
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3)
3421
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3)
3422
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3)
3423
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3)
3424
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN5 ) PORT_IMPULSE(3)
3425
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN6 ) PORT_IMPULSE(3)
3426
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN7 ) PORT_IMPULSE(3)
3427
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN8 ) PORT_IMPULSE(3)
3428
 
 
3429
 
        PORT_START("STROBE0")
3430
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3431
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3432
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3433
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3434
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3435
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3436
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3437
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3438
 
 
3439
 
        PORT_START("STROBE1")
3440
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Cancel")
3441
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold1")
3442
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold2")
3443
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold3")
3444
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Stop")
3445
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3446
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3447
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3448
 
 
3449
 
        PORT_START("STROBE2")
3450
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Take win")
3451
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3452
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
3453
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME( "Yes!" )
3454
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME( "No!" )
3455
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3456
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3457
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3458
 
 
3459
 
        PORT_START("STROBE3")
3460
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
3461
 
        PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
3462
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER  )   PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
3463
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3464
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON9)   PORT_NAME("Answer the phone")
3465
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3466
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3467
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3468
 
 
3469
 
        PORT_START("STROBE4")
3470
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3471
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3472
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3473
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3474
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3475
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3476
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3477
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3478
 
 
3479
 
        PORT_START("STROBE5")
3480
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3481
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3482
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3483
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3484
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3485
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3486
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3487
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3488
 
 
3489
 
        PORT_START("STROBE6")
3490
 
        PORT_DIPNAME( 0x07, 0x07, "PERCENTAGE KEY" ) PORT_DIPLOCATION("STROBE6:01,02,03")
3491
 
        PORT_DIPSETTING(    0x00, "No key" )
3492
 
        PORT_DIPSETTING(    0x01, "Key 1" )
3493
 
        PORT_DIPSETTING(    0x02, "Key 2" )
3494
 
        PORT_DIPSETTING(    0x03, "Key 3" )
3495
 
        PORT_DIPSETTING(    0x04, "Key 4" )
3496
 
        PORT_DIPSETTING(    0x05, "Key 5" )
3497
 
        PORT_DIPSETTING(    0x06, "Key 6" )
3498
 
        PORT_DIPSETTING(    0x07, "Key 7" )
3499
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3500
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3501
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3502
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3503
 
 
3504
 
        PORT_START("STROBE7")
3505
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3506
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3507
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3508
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3509
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3510
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3511
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3512
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3513
 
 
3514
 
        PORT_START("STROBE8")
3515
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3516
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3517
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3518
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3519
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3520
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3521
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3522
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3523
 
 
3524
 
        PORT_START("STROBE9")
3525
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
3526
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
3527
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3528
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3529
 
        PORT_DIPNAME( 0x04, 0x00, "DIL03" ) PORT_DIPLOCATION("DIL:03")
3530
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3531
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3532
 
        PORT_DIPNAME( 0x08, 0x00, "DIL04" ) PORT_DIPLOCATION("DIL:04")
3533
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3534
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3535
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
3536
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3537
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3538
 
 
3539
 
        PORT_START("STROBE10")
3540
 
        PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
3541
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3542
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3543
 
        PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
3544
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3545
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3546
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
3547
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3548
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3549
 
        PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
3550
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3551
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3552
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
3553
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3554
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3555
 
 
3556
 
        PORT_START("STROBE11")
3557
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
3558
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3559
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3560
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
3561
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3562
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3563
 
        PORT_DIPNAME( 0x04, 0x00, "DIL14" ) PORT_DIPLOCATION("DIL:14")
3564
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3565
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3566
 
        PORT_DIPNAME( 0x08, 0x00, "DIL15" ) PORT_DIPLOCATION("DIL:15")
3567
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3568
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3569
 
        PORT_DIPNAME( 0x10, 0x00, "DIL16" ) PORT_DIPLOCATION("DIL:16")
3570
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3571
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3572
 
INPUT_PORTS_END
3573
 
 
3574
 
static INPUT_PORTS_START( bfmcgslm )
3575
 
        PORT_START("COINS")
3576
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3)
3577
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3)
3578
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3)
3579
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3)
3580
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN5 ) PORT_IMPULSE(3)
3581
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN6 ) PORT_IMPULSE(3)
3582
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN7 ) PORT_IMPULSE(3)
3583
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN8 ) PORT_IMPULSE(3)
3584
 
 
3585
 
        PORT_START("STROBE0")
3586
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3587
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3588
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3589
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3590
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3591
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3592
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3593
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3594
 
 
3595
 
        PORT_START("STROBE1")
3596
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Cancel")
3597
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1")
3598
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2")
3599
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3")
3600
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Stop")
3601
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3602
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3603
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3604
 
 
3605
 
        PORT_START("STROBE2")
3606
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Exchange")
3607
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3608
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
3609
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3610
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3611
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3612
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3613
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3614
 
 
3615
 
        PORT_START("STROBE3")
3616
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
3617
 
        PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
3618
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER)     PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
3619
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3620
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3621
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3622
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3623
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3624
 
 
3625
 
        PORT_START("STROBE4")
3626
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3627
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3628
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3629
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3630
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3631
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3632
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3633
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3634
 
 
3635
 
        PORT_START("STROBE5")
3636
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3637
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3638
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3639
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3640
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3641
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3642
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3643
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3644
 
 
3645
 
        PORT_START("STROBE6")
3646
 
        PORT_DIPNAME( 0x07, 0x07, "PERCENTAGE KEY" ) PORT_DIPLOCATION("STROBE6:01,02,03")
3647
 
        PORT_DIPSETTING(    0x00, "No key" )
3648
 
        PORT_DIPSETTING(    0x01, "Key 1" )
3649
 
        PORT_DIPSETTING(    0x02, "Key 2" )
3650
 
        PORT_DIPSETTING(    0x03, "Key 3" )
3651
 
        PORT_DIPSETTING(    0x04, "Key 4" )
3652
 
        PORT_DIPSETTING(    0x05, "Key 5" )
3653
 
        PORT_DIPSETTING(    0x06, "Key 6" )
3654
 
        PORT_DIPSETTING(    0x07, "Key 7" )
3655
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3656
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3657
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3658
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3659
 
 
3660
 
        PORT_START("STROBE7")
3661
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3662
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3663
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3664
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3665
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3666
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3667
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3668
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3669
 
 
3670
 
        PORT_START("STROBE8")
3671
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3672
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3673
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3674
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3675
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3676
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3677
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3678
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3679
 
 
3680
 
        PORT_START("STROBE9")
3681
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
3682
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
3683
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3684
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3685
 
        PORT_DIPNAME( 0x04, 0x00, "DIL03" ) PORT_DIPLOCATION("DIL:03")
3686
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3687
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3688
 
        PORT_DIPNAME( 0x08, 0x00, "DIL04" ) PORT_DIPLOCATION("DIL:04")
3689
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3690
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3691
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
3692
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3693
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3694
 
 
3695
 
        PORT_START("STROBE10")
3696
 
        PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
3697
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3698
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3699
 
        PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
3700
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3701
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3702
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
3703
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3704
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3705
 
        PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
3706
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3707
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3708
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
3709
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3710
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3711
 
 
3712
 
        PORT_START("STROBE11")
3713
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
3714
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3715
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3716
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
3717
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3718
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3719
 
        PORT_DIPNAME( 0x04, 0x00, "DIL14" ) PORT_DIPLOCATION("DIL:14")
3720
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3721
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3722
 
        PORT_DIPNAME( 0x08, 0x00, "DIL15" ) PORT_DIPLOCATION("DIL:15")
3723
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3724
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3725
 
        PORT_DIPNAME( 0x10, 0x00, "DIL16" ) PORT_DIPLOCATION("DIL:16")
3726
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3727
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3728
 
INPUT_PORTS_END
3729
 
 
3730
 
static INPUT_PORTS_START( scorpion3 )
3731
 
        PORT_START("COINS")
3732
 
    PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
3733
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
3734
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
3735
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
3736
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3737
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3738
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3739
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3740
 
 
3741
 
        PORT_START("STROBE0")
3742
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3743
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3744
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3745
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3746
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3747
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3748
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3749
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3750
 
 
3751
 
        PORT_START("STROBE1")
3752
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hold 1")
3753
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hold 1?")
3754
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hold 2/Hi")
3755
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hold 3/Lo")
3756
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Cancel/Collect")
3757
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3758
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3759
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3760
 
 
3761
 
        PORT_START("STROBE2")
3762
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Stop/Exchange")
3763
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
3764
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
3765
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3766
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3767
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3768
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3769
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3770
 
 
3771
 
        PORT_START("STROBE3")
3772
 
        PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
3773
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
3774
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER  )   PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
3775
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3776
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3777
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3778
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3779
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3780
 
 
3781
 
        PORT_START("STROBE4")
3782
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3783
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3784
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3785
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3786
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3787
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3788
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3789
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3790
 
 
3791
 
        PORT_START("STROBE5")
3792
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3793
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3794
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3795
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3796
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3797
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3798
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3799
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3800
 
 
3801
 
        PORT_START("STROBE6")
3802
 
        PORT_DIPNAME( 0x07, 0x07, "PERCENTAGE KEY" ) PORT_DIPLOCATION("STROBE6:01,02,03")
3803
 
        PORT_DIPSETTING(    0x00, "No key" )
3804
 
        PORT_DIPSETTING(    0x01, "Key 1" )
3805
 
        PORT_DIPSETTING(    0x02, "Key 2" )
3806
 
        PORT_DIPSETTING(    0x03, "Key 3" )
3807
 
        PORT_DIPSETTING(    0x04, "Key 4" )
3808
 
        PORT_DIPSETTING(    0x05, "Key 5" )
3809
 
        PORT_DIPSETTING(    0x06, "Key 6" )
3810
 
        PORT_DIPSETTING(    0x07, "Key 7" )
3811
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
3812
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
3813
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
3814
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
3815
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
3816
 
 
3817
 
        PORT_START("STROBE7")
3818
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3819
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3820
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3821
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3822
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3823
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3824
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3825
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3826
 
 
3827
 
        PORT_START("STROBE8")
3828
 
        PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
3829
 
        PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
3830
 
        PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
3831
 
        PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
3832
 
        PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
3833
 
        PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
3834
 
        PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
3835
 
        PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
3836
 
 
3837
 
        PORT_START("STROBE9")
3838
 
        PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
3839
 
        PORT_DIPNAME( 0x02, 0x00, "DIL02" ) PORT_DIPLOCATION("DIL:02")
3840
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3841
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3842
 
        PORT_DIPNAME( 0x04, 0x00, "Attract Hi/Lo reel" ) PORT_DIPLOCATION("DIL:03")
3843
 
        PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
3844
 
        PORT_DIPSETTING(    0x00, DEF_STR( On  ) )
3845
 
        PORT_DIPNAME( 0x08, 0x00, "Acceptor type" ) PORT_DIPLOCATION("DIL:04")
3846
 
        PORT_DIPSETTING(    0x00, "Mars" )
3847
 
        PORT_DIPSETTING(    0x08, "Sentinel" )
3848
 
        PORT_DIPNAME( 0x10, 0x00, "DIL05" ) PORT_DIPLOCATION("DIL:05")
3849
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3850
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3851
 
 
3852
 
        PORT_START("STROBE10")
3853
 
        PORT_DIPNAME( 0x01, 0x00, "Coin play" ) PORT_DIPLOCATION("DIL:06")
3854
 
        PORT_DIPSETTING(    0x00, "Multi coin" )
3855
 
        PORT_DIPSETTING(    0x01, "Single coin" )
3856
 
        PORT_DIPNAME( 0x02, 0x00, "CashPot Freq" ) PORT_DIPLOCATION("DIL:07")
3857
 
        PORT_DIPSETTING(    0x00, DEF_STR( High) )
3858
 
        PORT_DIPSETTING(    0x02, DEF_STR( Low ) )
3859
 
        PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
3860
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3861
 
        PORT_DIPSETTING(    0x04, DEF_STR( On  ) )
3862
 
        PORT_DIPNAME( 0x08, 0x00, "Coin Jam Alarm" ) PORT_DIPLOCATION("DIL:10")
3863
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3864
 
        PORT_DIPSETTING(    0x08, DEF_STR( On  ) )
3865
 
        PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
3866
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3867
 
        PORT_DIPSETTING(    0x10, DEF_STR( On  ) )
3868
 
 
3869
 
        PORT_START("STROBE11")
3870
 
        PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
3871
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3872
 
        PORT_DIPSETTING(    0x01, DEF_STR( On  ) )
3873
 
        PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
3874
 
        PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3875
 
        PORT_DIPSETTING(    0x02, DEF_STR( On  ) )
3876
 
        PORT_DIPNAME( 0x1C, 0x00, "Percentage setting" ) PORT_DIPLOCATION("DIL:14,15,16")
3877
 
        PORT_DIPSETTING(    0x0C, "72%" )
3878
 
        PORT_DIPSETTING(    0x04, "75%" )
3879
 
        PORT_DIPSETTING(    0x00, "78%" )
3880
 
        PORT_DIPSETTING(    0x10, "81%" )
3881
 
        PORT_DIPSETTING(    0x18, "85%" )
3882
 
 
3883
 
INPUT_PORTS_END
3884
 
 
3885
 
 
3886
 
/* machine driver for scorpion2 board */
3887
 
 
3888
 
static MACHINE_CONFIG_START( scorpion2, bfm_sc2_state )
3889
 
        MCFG_MACHINE_RESET(awp_init)
3890
 
        MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 )
3891
 
        MCFG_CPU_PROGRAM_MAP(sc2_memmap)
3892
 
        MCFG_CPU_PERIODIC_INT(timer_irq, 1000 )
3893
 
        MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_MONOSTABLE(120000,100e-9))
3894
 
 
3895
 
        MCFG_SPEAKER_STANDARD_MONO("mono")
3896
 
        MCFG_SOUND_ADD("upd",UPD7759, UPD7759_STANDARD_CLOCK)
3897
 
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
3898
 
 
3899
 
        MCFG_SOUND_ADD("ymsnd",YM2413, XTAL_3_579545MHz)
3900
 
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
3901
 
 
3902
 
        MCFG_NVRAM_ADD_0FILL("nvram")
3903
 
        MCFG_NVRAM_HANDLER(bfm_sc2)
3904
 
 
3905
 
        /* video hardware */
3906
 
        MCFG_DEFAULT_LAYOUT(layout_awpvid14)
3907
 
MACHINE_CONFIG_END
3908
 
 
3909
 
 
3910
 
/* machine driver for scorpion3 board */
3911
 
static MACHINE_CONFIG_DERIVED( scorpion3, scorpion2 )
3912
 
        MCFG_CPU_MODIFY("maincpu")
3913
 
        MCFG_CPU_PROGRAM_MAP(sc3_memmap)
3914
 
MACHINE_CONFIG_END
3915
 
 
3916
 
 
3917
 
/* machine driver for scorpion2 board + matrix board */
3918
 
static MACHINE_CONFIG_START( scorpion2_dm01, bfm_sc2_state )
3919
 
        MCFG_MACHINE_RESET(dm01_init)
3920
 
        MCFG_QUANTUM_TIME(attotime::from_hz(960))                                                                       // needed for serial communication !!
3921
 
        MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK/4 )
3922
 
        MCFG_CPU_PROGRAM_MAP(memmap_sc2_dm01)
3923
 
        MCFG_CPU_PERIODIC_INT(timer_irq, 1000 )
3924
 
        MCFG_WATCHDOG_TIME_INIT(PERIOD_OF_555_MONOSTABLE(120000,100e-9))
3925
 
 
3926
 
 
3927
 
        MCFG_SPEAKER_STANDARD_MONO("mono")
3928
 
        MCFG_SOUND_ADD("ymsnd",YM2413, XTAL_3_579545MHz)
3929
 
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
3930
 
 
3931
 
        MCFG_SOUND_ADD("upd",UPD7759, UPD7759_STANDARD_CLOCK)
3932
 
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
3933
 
 
3934
 
        MCFG_NVRAM_ADD_0FILL("nvram")
3935
 
        MCFG_NVRAM_HANDLER(bfm_sc2)
3936
 
 
3937
 
        /* video hardware */
3938
 
        MCFG_DEFAULT_LAYOUT(layout_awpdmd)
3939
 
        MCFG_CPU_ADD("matrix", M6809, 2000000 )                         /* matrix board 6809 CPU at 2 Mhz ?? I don't know the exact freq.*/
3940
 
        MCFG_CPU_PROGRAM_MAP(bfm_dm01_memmap)
3941
 
        MCFG_CPU_PERIODIC_INT(bfm_dm01_vbl, 1500 )                      /* generate 1500 NMI's per second ?? what is the exact freq?? */
3942
 
MACHINE_CONFIG_END
3943
 
 
3944
 
static void sc2awp_common_init(running_machine &machine,int reels, int decrypt)
3945
 
{
3946
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
3947
 
 
3948
 
        int n;
3949
 
        sc2_common_init(machine, decrypt);
3950
 
        /* setup n default 96 half step reels */
3951
 
 
3952
 
        state->m_reels=reels;
3953
 
 
3954
 
        for ( n = 0; n < reels; n++ )
3955
 
        {
3956
 
                stepper_config(machine, n, &starpoint_interface_48step);
3957
 
        }
3958
 
        if (reels)
3959
 
        {
3960
 
                awp_reel_setup();
3961
 
        }
3962
 
}
3963
 
 
3964
 
static DRIVER_INIT (bbrkfst)
3965
 
{
3966
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
3967
 
        sc2awp_common_init(machine,5, 1);
3968
 
        MechMtr_config(machine,8);
3969
 
 
3970
 
        BFM_BD1_init(0);
3971
 
        BFM_BD1_init(1);
3972
 
 
3973
 
        state->m_has_hopper = 0;
3974
 
 
3975
 
        Scorpion2_SetSwitchState(machine,4,0, 1);         /* GBP1 Low Level Switch */
3976
 
        Scorpion2_SetSwitchState(machine,4,1, 1);         /* 20p Low Level Switch */
3977
 
        Scorpion2_SetSwitchState(machine,4,2, 1);         /* Token Front Low Level Switch */
3978
 
        Scorpion2_SetSwitchState(machine,4,3, 1);         /* Token Rear  Low Level Switch */
3979
 
        Scorpion2_SetSwitchState(machine,4,4, 1);
3980
 
        Scorpion2_SetSwitchState(machine,6,0, 0);
3981
 
        Scorpion2_SetSwitchState(machine,6,1, 1);
3982
 
        Scorpion2_SetSwitchState(machine,6,2, 0);
3983
 
        Scorpion2_SetSwitchState(machine,6,3, 1);
3984
 
 
3985
 
}
3986
 
 
3987
 
static DRIVER_INIT (drwho)
3988
 
{
3989
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
3990
 
        sc2awp_common_init(machine,4, 1);
3991
 
        MechMtr_config(machine,8);
3992
 
 
3993
 
        BFM_BD1_init(0);
3994
 
        BFM_BD1_init(1);
3995
 
 
3996
 
        state->m_has_hopper = 0;
3997
 
 
3998
 
        Scorpion2_SetSwitchState(machine,4,0, 0);         /* GBP1 Low Level Switch */
3999
 
        Scorpion2_SetSwitchState(machine,4,1, 0);         /* 20p Low Level Switch */
4000
 
        Scorpion2_SetSwitchState(machine,4,2, 0);         /* Token Front Low Level Switch */
4001
 
        Scorpion2_SetSwitchState(machine,4,3, 0);         /* Token Rear  Low Level Switch */
4002
 
        Scorpion2_SetSwitchState(machine,7,0, 0);         /* GBP1 High Level Switch */
4003
 
        Scorpion2_SetSwitchState(machine,7,1, 0);         /* 20P High Level Switch */
4004
 
        Scorpion2_SetSwitchState(machine,7,2, 0);         /* Token Front High Level Switch */
4005
 
        Scorpion2_SetSwitchState(machine,7,3, 0);         /* Token Rear High Level Switch */
4006
 
}
4007
 
 
4008
 
static DRIVER_INIT (drwhon)
4009
 
{
4010
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
4011
 
        sc2awp_common_init(machine,4, 0);
4012
 
        MechMtr_config(machine,8);
4013
 
 
4014
 
        BFM_BD1_init(0);
4015
 
        BFM_BD1_init(1);
4016
 
 
4017
 
        state->m_has_hopper = 0;
4018
 
 
4019
 
        Scorpion2_SetSwitchState(machine,4,0, 0);         /* GBP1 Low Level Switch */
4020
 
        Scorpion2_SetSwitchState(machine,4,1, 0);         /* 20p Low Level Switch */
4021
 
        Scorpion2_SetSwitchState(machine,4,2, 0);         /* Token Front Low Level Switch */
4022
 
        Scorpion2_SetSwitchState(machine,4,3, 0);         /* Token Rear  Low Level Switch */
4023
 
        Scorpion2_SetSwitchState(machine,7,0, 0);         /* GBP1 High Level Switch */
4024
 
        Scorpion2_SetSwitchState(machine,7,1, 0);         /* 20P High Level Switch */
4025
 
        Scorpion2_SetSwitchState(machine,7,2, 0);         /* Token Front High Level Switch */
4026
 
        Scorpion2_SetSwitchState(machine,7,3, 0);         /* Token Rear High Level Switch */
4027
 
}
4028
 
 
4029
 
 
4030
 
static DRIVER_INIT (focus)
4031
 
{
4032
 
        sc2awp_common_init(machine,6, 1);
4033
 
        MechMtr_config(machine,5);
4034
 
 
4035
 
        BFM_BD1_init(0);
4036
 
}
4037
 
 
4038
 
static DRIVER_INIT (cpeno1)
4039
 
{
4040
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
4041
 
        sc2awp_common_init(machine,6, 1);
4042
 
 
4043
 
        MechMtr_config(machine,5);
4044
 
 
4045
 
        Scorpion2_SetSwitchState(machine,3,3,1);        /*  5p play */
4046
 
        Scorpion2_SetSwitchState(machine,3,4,1);        /* 20p play */
4047
 
 
4048
 
        Scorpion2_SetSwitchState(machine,4,0,1);        /* pay tube low (1 pound front) */
4049
 
        Scorpion2_SetSwitchState(machine,4,1,1);        /* pay tube low (20p) */
4050
 
        Scorpion2_SetSwitchState(machine,4,2,1);        /* pay tube low (?1 right) */
4051
 
        Scorpion2_SetSwitchState(machine,4,3,1);        /* pay tube low (?1 left) */
4052
 
 
4053
 
        Scorpion2_SetSwitchState(machine,5,0,1);        /* pay sensor (GBP1 front) */
4054
 
        Scorpion2_SetSwitchState(machine,5,1,1);        /* pay sensor (20 p) */
4055
 
        Scorpion2_SetSwitchState(machine,5,2,1);        /* pay sensor (1 right) */
4056
 
        Scorpion2_SetSwitchState(machine,5,3,1);        /* pay sensor (?1 left) */
4057
 
        Scorpion2_SetSwitchState(machine,5,4,1);        /* payout unit present */
4058
 
 
4059
 
        state->m_slide_pay_sensor[0] = 0x50;
4060
 
        state->m_slide_pay_sensor[1] = 0x51;
4061
 
        state->m_slide_pay_sensor[2] = 0x52;
4062
 
        state->m_slide_pay_sensor[3] = 0x53;
4063
 
        state->m_slide_pay_sensor[4] = 0;
4064
 
        state->m_slide_pay_sensor[5] = 0;
4065
 
 
4066
 
        Scorpion2_SetSwitchState(machine,6,0,1);        /* ? percentage key */
4067
 
        Scorpion2_SetSwitchState(machine,6,1,1);
4068
 
        Scorpion2_SetSwitchState(machine,6,2,1);
4069
 
        Scorpion2_SetSwitchState(machine,6,3,1);
4070
 
        Scorpion2_SetSwitchState(machine,6,4,1);
4071
 
 
4072
 
        Scorpion2_SetSwitchState(machine,7,0,0);        /* GBP1 High Level Switch  */
4073
 
        Scorpion2_SetSwitchState(machine,7,1,0);        /* 20P High Level Switch */
4074
 
        Scorpion2_SetSwitchState(machine,7,2,0);        /* Token Front High Level Switch */
4075
 
        Scorpion2_SetSwitchState(machine,7,3,0);        /* Token Rear High Level Switch */
4076
 
 
4077
 
        state->m_sc2_show_door   = 1;
4078
 
        state->m_sc2_door_state  = 0x31;
4079
 
 
4080
 
        state->m_has_hopper = 0;
4081
 
}
4082
 
 
4083
 
static DRIVER_INIT (bfmcgslm)
4084
 
{
4085
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
4086
 
        sc2awp_common_init(machine,6, 1);
4087
 
        MechMtr_config(machine,8);
4088
 
        BFM_BD1_init(0);
4089
 
        state->m_has_hopper = 0;
4090
 
}
4091
 
 
4092
 
static DRIVER_INIT (luvjub)
4093
 
{
4094
 
        bfm_sc2_state *state = machine.driver_data<bfm_sc2_state>();
4095
 
        sc2awp_common_init(machine,6, 1);
4096
 
        MechMtr_config(machine,8);
4097
 
        state->m_has_hopper = 0;
4098
 
 
4099
 
        Scorpion2_SetSwitchState(machine,3,0,1);
4100
 
        Scorpion2_SetSwitchState(machine,3,1,1);
4101
 
 
4102
 
        Scorpion2_SetSwitchState(machine,4,0,1);
4103
 
        Scorpion2_SetSwitchState(machine,4,1,1);
4104
 
        Scorpion2_SetSwitchState(machine,4,2,1);
4105
 
        Scorpion2_SetSwitchState(machine,4,3,1);
4106
 
 
4107
 
        Scorpion2_SetSwitchState(machine,6,0,1);
4108
 
        Scorpion2_SetSwitchState(machine,6,1,1);
4109
 
        Scorpion2_SetSwitchState(machine,6,2,1);
4110
 
        Scorpion2_SetSwitchState(machine,6,3,0);
4111
 
 
4112
 
        Scorpion2_SetSwitchState(machine,7,0,0);
4113
 
        Scorpion2_SetSwitchState(machine,7,1,0);
4114
 
        Scorpion2_SetSwitchState(machine,7,2,0);
4115
 
        Scorpion2_SetSwitchState(machine,7,3,0);
4116
 
}
4117
 
 
4118
 
/*********************************************
4119
 
The Big Breakfast
4120
 
*********************************************/
4121
 
 
4122
 
ROM_START( m_brkfst )
4123
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4124
 
        ROM_LOAD("big-breakfast_std_ar_var_a.bin",      0x00000, 0x10000, CRC(5f016daa) SHA1(25ee10138bddf453588e3c458268533a88a51217) )
4125
 
 
4126
 
        ROM_REGION( 0x80000, "upd", 0 )
4127
 
        ROM_LOAD("bigbreakfastsnd.bin", 0x00000, 0x80000, CRC(bf91aa2b) SHA1(40942165e65ff9b027015d500e5a9726c44ba1c5))
4128
 
ROM_END
4129
 
 
4130
 
ROM_START( m_brkfs1 )
4131
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4132
 
        ROM_LOAD("big-breakfast_std_ss_var_a.bin",      0x00000, 0x10000, CRC(08d1fa7d) SHA1(a3dba79eef32835f0b46dbd7b376b797324df904) )
4133
 
 
4134
 
        ROM_REGION( 0x80000, "upd", 0 )
4135
 
        ROM_LOAD("bigbreakfastsnd.bin", 0x00000, 0x80000, CRC(bf91aa2b) SHA1(40942165e65ff9b027015d500e5a9726c44ba1c5))
4136
 
ROM_END
4137
 
 
4138
 
ROM_START( m_brkfs2 )
4139
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4140
 
        ROM_LOAD("big-breakfast_std_ac_var_jp-8_a.bin", 0x00000, 0x10000, CRC(2671af1b) SHA1(0a34dd2953a99be9fb2a128f9d1f7ddc0fc8242a) )
4141
 
 
4142
 
        ROM_REGION( 0x80000, "upd", 0 )
4143
 
        ROM_LOAD("bigbreakfastsnd.bin", 0x00000, 0x80000, CRC(bf91aa2b) SHA1(40942165e65ff9b027015d500e5a9726c44ba1c5))
4144
 
ROM_END
4145
 
 
4146
 
ROM_START( m_brkfs3 )
4147
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4148
 
        ROM_LOAD("big-breakfast_std_ac_8pnd20p_a.bin",  0x00000, 0x10000, CRC(054c38ad) SHA1(f4ab55f977848e3d2a933bba1ab619ffa3e14db6) )
4149
 
 
4150
 
        ROM_REGION( 0x80000, "upd", 0 )
4151
 
        ROM_LOAD("bigbreakfastsnd.bin", 0x00000, 0x80000, CRC(bf91aa2b) SHA1(40942165e65ff9b027015d500e5a9726c44ba1c5))
4152
 
ROM_END
4153
 
 
4154
 
ROM_START( m_brkfs4 )
4155
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4156
 
        ROM_LOAD("big-breakfast_std_ac_var_10pnd-20p_a.bin",    0x00000, 0x10000, CRC(d879feaa) SHA1(2656fbe018fe40194c2b77d289b77fabbc9e537c) )
4157
 
 
4158
 
        ROM_REGION( 0x80000, "upd", 0 )
4159
 
        ROM_LOAD("bigbreakfastsnd.bin", 0x00000, 0x80000, CRC(bf91aa2b) SHA1(40942165e65ff9b027015d500e5a9726c44ba1c5))
4160
 
ROM_END
4161
 
 
4162
 
ROM_START( m_brkfs5 )
4163
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4164
 
        ROM_LOAD("big-breakfast_std_ac_10pnd-20p_a.bin",        0x00000, 0x10000, CRC(55d7321c) SHA1(0b4a6b66aa64fbb3238539a2167f761d0910b814) )
4165
 
 
4166
 
        ROM_REGION( 0x80000, "upd", 0 )
4167
 
        ROM_LOAD("bigbreakfastsnd.bin", 0x00000, 0x80000, CRC(bf91aa2b) SHA1(40942165e65ff9b027015d500e5a9726c44ba1c5))
4168
 
ROM_END
4169
 
 
4170
 
/*********************************************
4171
 
Dr.Who The Timelord
4172
 
*********************************************/
4173
 
 
4174
 
ROM_START( m_bdrwho )
4175
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4176
 
        ROM_LOAD("95750288.bin",        0x00000, 0x10000, CRC(fe95b5a5) SHA1(876a812f69903fd99f896b35eeaf132c215b0035) ) // dr-who-time-lord_std_ss_20p_ass.bin
4177
 
 
4178
 
        ROM_REGION( 0x80000, "upd", 0 )
4179
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4180
 
ROM_END
4181
 
 
4182
 
ROM_START( m_bdrwh1 )
4183
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4184
 
        ROM_LOAD("95750661.p1", 0x00000, 0x10000, CRC(4b5b50eb) SHA1(fe2b820c214b3e967348b99ccff30a4bfe0251dc) )
4185
 
 
4186
 
        ROM_REGION( 0x80000, "upd", 0 )
4187
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4188
 
ROM_END
4189
 
 
4190
 
ROM_START( m_bdrwh2 )
4191
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4192
 
        ROM_LOAD("dr-who-time-lord_dat_ac_ass.bin",     0x00000, 0x10000, CRC(5a467a44) SHA1(d5a3dcdf50e07e36187350072b5d82d620f8f1d8) )
4193
 
 
4194
 
        ROM_REGION( 0x80000, "upd", 0 )
4195
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4196
 
ROM_END
4197
 
 
4198
 
ROM_START( m_bdrwh3 )
4199
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4200
 
        ROM_LOAD("dr-who-time-lord_dat_ss_20p_ass.bin", 0x00000, 0x10000, CRC(8ce06af9) SHA1(adb58507b2b6aae59857384748d59485f1739eaf) )
4201
 
 
4202
 
        ROM_REGION( 0x80000, "upd", 0 )
4203
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4204
 
ROM_END
4205
 
 
4206
 
ROM_START( m_bdrwh4 )
4207
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4208
 
        ROM_LOAD("dr-who-time-lord_std_ac_ass.bin",     0x00000, 0x10000, CRC(053313cc) SHA1(2a52b7edae0ce676255eb347bba17a2e48c1707a) )
4209
 
 
4210
 
        ROM_REGION( 0x80000, "upd", 0 )
4211
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4212
 
ROM_END
4213
 
 
4214
 
ROM_START( m_bdrwh5 )
4215
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4216
 
        ROM_LOAD("dr-who-time-lord_std_var_20p_ass.bin",        0x00000, 0x10000, CRC(35f4e6ab) SHA1(5e5e35889adb7d3384aae663c667b0251d39aeee) )
4217
 
 
4218
 
        ROM_REGION( 0x80000, "upd", 0 )
4219
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4220
 
ROM_END
4221
 
 
4222
 
ROM_START( m_bdrwh6 )
4223
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4224
 
        ROM_LOAD("time-lord_dat_20p_uk94_ass.bin",      0x00000, 0x10000, CRC(e65717c2) SHA1(9b8db0bcac9fd996de29527440d6af3592102120) )
4225
 
 
4226
 
        ROM_REGION( 0x80000, "upd", 0 )
4227
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4228
 
ROM_END
4229
 
 
4230
 
ROM_START( m_bdrwh7 )
4231
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4232
 
        ROM_LOAD("time-lord_dat_ac_10pnd-20p-25p_ass.bin",      0x00000, 0x10000, CRC(9a27ac6d) SHA1(d1b0e85d41198c5d2cd1b492e53359a5dc1ac474) )
4233
 
 
4234
 
        ROM_REGION( 0x80000, "upd", 0 )
4235
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4236
 
ROM_END
4237
 
 
4238
 
ROM_START( m_bdrwh8 )
4239
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4240
 
        ROM_LOAD("time-lord_dat_ac_8pnd-20p_ass.bin",   0x00000, 0x10000, CRC(b6629b5e) SHA1(d20085b4ab9a0786063eb063f7d1df2a6814f40c) )
4241
 
 
4242
 
        ROM_REGION( 0x80000, "upd", 0 )
4243
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4244
 
ROM_END
4245
 
 
4246
 
ROM_START( m_bdrwh9 )
4247
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4248
 
        ROM_LOAD("time-lord_dat_ar_10p_ass.bin",        0x00000, 0x10000, CRC(04653c3b) SHA1(0c23f939103772fac628342074de820ec6b472ce) )
4249
 
 
4250
 
        ROM_REGION( 0x80000, "upd", 0 )
4251
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4252
 
ROM_END
4253
 
 
4254
 
ROM_START( m_bdrw10 )
4255
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4256
 
        ROM_LOAD("time-lord_dat_ar_20p_uk94_ass.bin",   0x00000, 0x10000, CRC(40aaa98f) SHA1(80705e24e419558d8a7b1f886bfc2b3ce5465446) )
4257
 
 
4258
 
        ROM_REGION( 0x80000, "upd", 0 )
4259
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4260
 
ROM_END
4261
 
 
4262
 
ROM_START( m_bdrw11 )
4263
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4264
 
        ROM_LOAD("time-lord_dat_var_no-jp-spin_ass.bin",        0x00000, 0x10000, CRC(bf087547) SHA1(f4b7289a76e814af5fb3affc360a9ac659c09bbe) )
4265
 
 
4266
 
        ROM_REGION( 0x80000, "upd", 0 )
4267
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4268
 
ROM_END
4269
 
 
4270
 
ROM_START( m_bdrw12 )
4271
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4272
 
        ROM_LOAD("time-lord_std_20p_uk94_ass.bin",      0x00000, 0x10000, CRC(278f559e) SHA1(d4396df02a5e24b3684c26fcaa57c8e499789332) )
4273
 
 
4274
 
        ROM_REGION( 0x80000, "upd", 0 )
4275
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4276
 
ROM_END
4277
 
 
4278
 
ROM_START( m_bdrw13 )
4279
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4280
 
        ROM_LOAD("time-lord_std_ac_8pnd-20p_ass.bin",   0x00000, 0x10000, CRC(0b2850c8) SHA1(5fac64f35a6b6158d8c15f41e82574768b1c3617) )
4281
 
 
4282
 
        ROM_REGION( 0x80000, "upd", 0 )
4283
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4284
 
ROM_END
4285
 
 
4286
 
ROM_START( m_bdrw14 )
4287
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4288
 
        ROM_LOAD("time-lord_std_ar_10p_ass.bin",        0x00000, 0x10000, CRC(f716a21d) SHA1(340df4cdea3309bfebeba7c419057f1bf5ed5024) )
4289
 
 
4290
 
        ROM_REGION( 0x80000, "upd", 0 )
4291
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4292
 
ROM_END
4293
 
 
4294
 
ROM_START( m_bdrw15 )
4295
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4296
 
        ROM_LOAD("time-lord_std_ar_20p_uk94_ass.bin",   0x00000, 0x10000, CRC(8dd0f908) SHA1(2eca748874cc061f9a8145b081d2c097a40e1e47) )
4297
 
 
4298
 
        ROM_REGION( 0x80000, "upd", 0 )
4299
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4300
 
ROM_END
4301
 
 
4302
 
ROM_START( m_bdrw16 )
4303
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4304
 
        ROM_LOAD("tmld5pa",     0x00000, 0x10000, CRC(b9ddfd0d) SHA1(915afd83eab330a0e70635c35f031f2041b9f5ad) )
4305
 
 
4306
 
        ROM_REGION( 0x80000, "upd", 0 )
4307
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4308
 
ROM_END
4309
 
 
4310
 
 
4311
 
/* not encrypted, bootleg? */
4312
 
ROM_START( m_bdrw17 )
4313
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4314
 
        ROM_LOAD("drwho.bin",   0x00000, 0x10000, CRC(9e53a1f7) SHA1(60c6aa226c96678a6e487fbf0f32554fd85ebd66) )
4315
 
 
4316
 
        ROM_REGION( 0x80000, "upd", 0 )
4317
 
        ROM_LOAD("timelordsnd.bin", 0x00000, 0x80000, CRC(57fdaf3a) SHA1(f7cbaddb7f2ab8e1c7b17f187bab263e0dde463b))
4318
 
ROM_END
4319
 
 
4320
 
 
4321
 
 
4322
 
/*********************************************
4323
 
Focus
4324
 
*********************************************/
4325
 
 
4326
 
ROM_START( m_bfocus )
4327
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4328
 
        ROM_LOAD("focus.bin",    0x00000, 0x10000, CRC(ddd1a21e) SHA1(cbb467b03642d6de37f6dc204b902f2d7e92230e))
4329
 
 
4330
 
        ROM_REGION( 0x20000, "upd", 0 )
4331
 
        ROM_LOAD("focsound.bin", 0x00000, 0x20000, CRC(fce86700) SHA1(546680dd85234608c1b7e850bad3165400fd981c))
4332
 
ROM_END
4333
 
 
4334
 
/*********************************************
4335
 
Club Grandslam
4336
 
*********************************************/
4337
 
 
4338
 
ROM_START( m_bcgslm )
4339
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4340
 
        ROM_LOAD("95750843.bin", 0x00000, 0x10000, CRC(e159ddf6) SHA1(c897564a956becbd9d4c155df33b239e899156c0))
4341
 
 
4342
 
        ROM_REGION( 0x40000, "upd", 0 )
4343
 
        ROM_LOAD("gslamsnd.bin", 0x00000, 0x40000, CRC(9afb8b42) SHA1(20e108c0041412fcd7b2969701f47a4a99d3677c))
4344
 
ROM_END
4345
 
 
4346
 
/*********************************************
4347
 
Luvvly Jubbly
4348
 
*********************************************/
4349
 
 
4350
 
ROM_START( m_luvjub )
4351
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4352
 
        ROM_LOAD("95750808.bin", 0x00000, 0x10000, CRC(e6668fc7) SHA1(71dd412114c6386cba72e2b29ea07f2d99d14065))
4353
 
 
4354
 
        ROM_REGION( 0x20000, "matrix", 0 )
4355
 
        ROM_LOAD("mtx_ass.bin",  0x00000, 0x10000, CRC(cfdd7bb2) SHA1(90086aaff743a7b2385488af1e8a126029113028))
4356
 
 
4357
 
        ROM_REGION( 0x80000, "upd", 0 )
4358
 
        ROM_LOAD("snd.bin",              0x00000, 0x80000, CRC(19efac32) SHA1(26f901fc11f052a4d3cff67f8f61dcdd04f3dc22))
4359
 
ROM_END
4360
 
 
4361
 
/*********************************************
4362
 
Club Public Enemy No.1
4363
 
*********************************************/
4364
 
 
4365
 
ROM_START( m_cpeno1 )
4366
 
        ROM_REGION( 0x12000, "maincpu", 0 )
4367
 
        ROM_LOAD("ce1std25p.bin", 0x00000, 0x10000, CRC(2fad9a49) SHA1(5ffb53031eef8778363836143c4e8d2a65361d51))
4368
 
 
4369
 
        ROM_REGION( 0x20000, "matrix", 0 )
4370
 
        ROM_LOAD("cpe1_mtx.bin",  0x00000, 0x10000, CRC(5fd1fd7c) SHA1(7645f8c011be77ac48f4eb2c75c92cc4245fdad4))
4371
 
 
4372
 
        ROM_REGION( 0x80000, "upd", 0 )
4373
 
        ROM_LOAD("cpe1_snd.bin",  0x00000, 0x80000, CRC(ca8a56bb) SHA1(36434dae4369f004fa5b4dd00eb6b1a965be60f9))
4374
 
ROM_END
4375
 
 
4376
 
GAMEL( 1994, m_bdrwho, 0,         scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 1, UK, Game Card 95-750-288)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4377
 
GAMEL( 1994, m_bdrwh1, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 2, UK, Game Card 95-750-661)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4378
 
GAMEL( 1994, m_bdrwh2, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4379
 
GAMEL( 1994, m_bdrwh3, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 4)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4380
 
GAMEL( 1994, m_bdrwh4, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 5)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4381
 
GAMEL( 1994, m_bdrwh5, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 6)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4382
 
GAMEL( 1994, m_bdrwh6, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 7)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4383
 
GAMEL( 1994, m_bdrwh7, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 8)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4384
 
GAMEL( 1994, m_bdrwh8, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 9)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4385
 
GAMEL( 1994, m_bdrwh9, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 10)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4386
 
GAMEL( 1994, m_bdrw10, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 11)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4387
 
GAMEL( 1994, m_bdrw11, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 12)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4388
 
GAMEL( 1994, m_bdrw12, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 13)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4389
 
GAMEL( 1994, m_bdrw13, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 14)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4390
 
GAMEL( 1994, m_bdrw14, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 15)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4391
 
GAMEL( 1994, m_bdrw15, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 16)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4392
 
GAMEL( 1994, m_bdrw16, m_bdrwho,  scorpion2,     drwho,         drwho,          0,               "BFM",      "Dr.Who The Timelord (set 17)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4393
 
GAMEL( 1994, m_bdrw17, m_bdrwho,  scorpion2,     drwho,         drwhon,         0,               "BFM",      "Dr.Who The Timelord (set 18, not encrypted)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho)
4394
 
 
4395
 
GAME( 1994, m_brkfst, 0,          scorpion2,     bbrkfst,       bbrkfst,        0,               "BFM",      "The Big Breakfast (set 1 UK, Game Card 95-750-524)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
4396
 
GAME( 1994, m_brkfs1, m_brkfst,   scorpion2,     bbrkfst,       bbrkfst,        0,               "BFM",      "The Big Breakfast (set 2)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
4397
 
GAME( 1994, m_brkfs2, m_brkfst,   scorpion2,     bbrkfst,       bbrkfst,        0,               "BFM",      "The Big Breakfast (set 3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
4398
 
GAME( 1994, m_brkfs3, m_brkfst,   scorpion2,     bbrkfst,       bbrkfst,        0,               "BFM",      "The Big Breakfast (set 4)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
4399
 
GAME( 1994, m_brkfs4, m_brkfst,   scorpion2,     bbrkfst,       bbrkfst,        0,               "BFM",      "The Big Breakfast (set 5)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
4400
 
GAME( 1994, m_brkfs5, m_brkfst,   scorpion2,     bbrkfst,       bbrkfst,        0,               "BFM",      "The Big Breakfast (set 6)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
4401
 
 
4402
 
GAME( 1995, m_bfocus, 0,          scorpion3,     scorpion3,     focus,          0,               "BFM/ELAM", "Focus (Dutch, Game Card 95-750-347)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
4403
 
GAME( 1996, m_bcgslm, 0,          scorpion2,     bfmcgslm,      bfmcgslm,       0,               "BFM",      "Club Grandslam (UK, Game Card 95-750-843)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
4404
 
GAME( 1996, m_luvjub, 0,          scorpion2_dm01,luvjub,        luvjub,         0,               "BFM",      "Luvvly Jubbly (UK Multisite 10/25p, Game Card 95-750-808)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
4405
 
GAME( 1996, m_cpeno1, 0,          scorpion2_dm01,cpeno1,        cpeno1,         0,               "BFM",      "Club Public Enemy No.1 (UK, Game Card 95-750-846)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)