/****************************************************************************************
bfm_sc2.c
Bellfruit scorpion2/3 driver, (under heavy construction !!!)
*****************************************************************************************
30-12-2006: J Wallace: Fixed init routines.
07-03-2006: El Condor: Recoded to more accurately represent the hardware setup.
18-01-2006: Cleaned up for MAME inclusion
19-08-2005: Re-Animator
Standard scorpion2 memorymap
hex |r/w| D D D D D D D D |
location | | 7 6 5 4 3 2 1 0 | function
-----------+---+-----------------+-----------------------------------------
0000-1FFF |R/W| D D D D D D D D | RAM (8k) battery backed up
-----------+---+-----------------+-----------------------------------------
2000-20FF | W | D D D D D D D D | Reel 1 + 2 stepper latch
-----------+---+-----------------+-----------------------------------------
2000 | R | D D D D D D D D | vfd status
-----------+---+-----------------+-----------------------------------------
2100-21FF | W | D D D D D D D D | Reel 3 + 4 stepper latch
-----------+---+-----------------+-----------------------------------------
2200-22FF | W | D D D D D D D D | Reel 5 + 6 stepper latch
-----------+---+-----------------+-----------------------------------------
2300-231F | W | D D D D D D D D | output mux
-----------+---+-----------------+-----------------------------------------
2300-230B | R | D D D D D D D D | input mux
-----------+---+-----------------+-----------------------------------------
2320 |R/W| D D D D D D D D | dimas0 ?
-----------+---+-----------------+-----------------------------------------
2321 |R/W| D D D D D D D D | dimas1 ?
-----------+---+-----------------+-----------------------------------------
2322 |R/W| D D D D D D D D | dimas2 ?
-----------+---+-----------------+-----------------------------------------
2323 |R/W| D D D D D D D D | dimas3 ?
-----------+---+-----------------+-----------------------------------------
2324 |R/W| D D D D D D D D | expansion latch
-----------+---+-----------------+-----------------------------------------
2325 | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
2326 | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
2327 | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
2328 |R/W| D D D D D D D D | muxena
-----------+---+-----------------+-----------------------------------------
2329 | W | D D D D D D D D | Timer IRQ enable
-----------+---+-----------------+-----------------------------------------
232A |R/W| D D D D D D D D | blkdiv ?
-----------+---+-----------------+-----------------------------------------
232B | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
232C |R/W| D D D D D D D D | dimena ?
-----------+---+-----------------+-----------------------------------------
232D | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
232E | R | D D D D D D D D | chip status b0 = IRQ status
-----------+---+-----------------+-----------------------------------------
232F | W | D D D D D D D D | coin inhibits
-----------+---+-----------------+-----------------------------------------
2330 | W | D D D D D D D D | payout slide latch
-----------+---+-----------------+-----------------------------------------
2331 | W | D D D D D D D D | payout triac latch
-----------+---+-----------------+-----------------------------------------
2332 |R/W| D D D D D D D D | Watchdog timer
-----------+---+-----------------+-----------------------------------------
2333 | W | D D D D D D D D | electro mechanical meters
-----------+---+-----------------+-----------------------------------------
2334 | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
2335 | ? | D D D D D D D D | ???
-----------+---+-----------------+-----------------------------------------
2336 |?/W| D D D D D D D D | dimcnt ?
-----------+---+-----------------+-----------------------------------------
2337 | W | D D D D D D D D | volume override
-----------+---+-----------------+-----------------------------------------
2338 | W | D D D D D D D D | payout chip select
-----------+---+-----------------+-----------------------------------------
2339 | W | D D D D D D D D | clkden ?
-----------+---+-----------------+-----------------------------------------
2400 |R/W| D D D D D D D D | uart1 (MC6850 compatible) control/status
-----------+---+-----------------+-----------------------------------------
2500 |R/W| D D D D D D D D | uart1 (MC6850 compatible) data
-----------+---+-----------------+-----------------------------------------
2600 |R/W| D D D D D D D D | uart2 (MC6850 compatible) control/status
-----------+---+-----------------+-----------------------------------------
2700 |R/W| D D D D D D D D | uart2 (MC6850 compatible) data
-----------+---+-----------------+-----------------------------------------
2800 |R/W| D D D D D D D D | vfd1
-----------+---+-----------------+-----------------------------------------
2900 |R/W| D D D D D D D D | reset vfd1 + vfd2
-----------+---+-----------------+-----------------------------------------
2D00 |R/W| D D D D D D D D | ym2413 control
-----------+---+-----------------+-----------------------------------------
2D01 |R/W| D D D D D D D D | ym2413 data
-----------+---+-----------------+-----------------------------------------
2E00 |R/W| D D D D D D D D | ROM page latch
-----------+---+-----------------+-----------------------------------------
2F00 |R/W| D D D D D D D D | vfd2
-----------+---+-----------------+-----------------------------------------
3FFE | R | D D D D D D D D | direct input1
-----------+---+-----------------+-----------------------------------------
3FFF | R | D D D D D D D D | direct input2
-----------+---+-----------------+-----------------------------------------
2A00 | W | D D D D D D D D | NEC uPD7759 data
-----------+---+-----------------+-----------------------------------------
2B00 | W | D D D D D D D D | NEC uPD7759 reset
-----------+---+-----------------+-----------------------------------------
4000-5FFF | R | D D D D D D D D | ROM (8k)
-----------+---+-----------------+-----------------------------------------
6000-7FFF | R | D D D D D D D D | Paged ROM (8k)
| | | page 0 : rom area 0x0000 - 0x1FFF
| | | page 1 : rom area 0x2000 - 0x3FFF
| | | page 2 : rom area 0x4000 - 0x5FFF
| | | page 3 : rom area 0x6000 - 0x7FFF
-----------+---+-----------------+-----------------------------------------
8000-FFFF | R | D D D D D D D D | ROM (32k)
-----------+---+-----------------+-----------------------------------------
Adder hardware:
Games supported:
* Quintoon (2 sets Dutch, 2 sets UK)
* Pokio (1 set)
* Paradice (1 set)
* Pyramid (1 set)
* Slots (1 set Dutch, 2 sets Belgian)
* Golden Crown (1 Set)
Known issues:
* Need to find the 'missing' game numbers
* Fix RS232 protocol
***************************************************************************/
#include "driver.h"
#include "cpu/m6809/m6809.h"
#include "video/bfm_adr2.h"
#include "sound/2413intf.h"
#include "sound/upd7759.h"
/* fruit machines only */
//#include "video/bfm_dm01.h"
//#include "video/awpvid.h"
#include "machine/steppers.h" // stepper motor
#include "machine/bfm_bd1.h" // vfd
#include "machine/meters.h"
#include "bfm_sc2.lh"
#include "gldncrwn.lh"
#include "paradice.lh"
#include "pokio.lh"
#include "pyramid.lh"
#include "quintoon.lh"
#include "sltblgpo.lh"
#include "sltblgtk.lh"
#include "slots.lh"
#ifdef MAME_DEBUG
#define LOG_SERIAL(x) logerror x // log serial communication between mainboard (scorpion2) and videoboard (adder2)
#define UART_LOG(x) logerror x //enable UART data logging
#define LOG(x) logerror x
#else
#define LOG_SERIAL(x)
#define UART_LOG(x)
#define LOG(x)
#endif
// local prototypes ///////////////////////////////////////////////////////
static int get_scorpion2_uart_status(void); // retrieve status of uart on scorpion2 board
static int read_e2ram(void);
static void e2ram_reset(void);
// global vars ////////////////////////////////////////////////////////////
static int sc2gui_update_mmtr; // bit pattern which mechanical meter needs updating
// local vars /////////////////////////////////////////////////////////////
static UINT8 *nvram; // pointer to NVRAM
static size_t nvram_size; // size of NVRAM
static UINT8 key[16]; // security device on gamecard (video games only)
static UINT8 e2ram[1024]; // x24C08 e2ram
static int mmtr_latch; // mechanical meter latch
static int triac_latch; // payslide triac latch
static int vfd1_latch; // vfd1 latch
static int vfd2_latch; // vfd2 latch
static int irq_status; // custom chip IRQ status
static int optic_pattern; // reel optics
static int uart1_data;
static int uart2_data;
static int data_to_uart1;
static int data_to_uart2;
static int locked; // hardware lock/unlock status (0=unlocked)
static int is_timer_enabled;
static int reel_changed;
static int coin_inhibits;
static int irq_timer_stat;
static int expansion_latch;
static int global_volume; // 0-31
static int volume_override; // 0 / 1
static int sc2_show_door; // flag <>0, show door state
static int sc2_door_state; // door switch strobe/data
static int reel12_latch;
static int reel34_latch;
static int reel56_latch;
static int pay_latch;
static int slide_states[6];
static int slide_pay_sensor[6];
static int has_hopper; // flag <>0, scorpion2 board has hopper connected
static int triac_select;
static int hopper_running; // flag <>0, hopper is running used in some scorpion2 videogames
static int hopper_coin_sense;
static int timercnt; // timer counts up every IRQ (=1000 times a second)
static int watchdog_cnt;
static int watchdog_kicked;
// user interface stuff ///////////////////////////////////////////////////
static UINT8 Lamps[256];
static UINT8 sc2_Inputs[64];
static UINT8 input_override[64];// bit pattern, bit set means this input is overriden and cannot be changed with switches
/* INPUTS layout
b7 b6 b5 b4 b3 b2 b1 b0
82 81 80 04 03 02 01 00 0
92 91 90 14 13 12 11 10 1
A2 A1 A0 24 23 22 21 20 2
B2 B1 B0 34 33 32 31 30 3
-- 84 83 44 43 42 41 40 4
-- 94 93 54 53 52 51 50 5
-- A4 A3 64 63 62 61 60 6
-- B4 B3 74 73 72 71 70 7
B7 B6 B5 B4 B3 B2 B1 B0
0 1 1 0 0 0
*/
///////////////////////////////////////////////////////////////////////////
static void send_to_adder(int data)
{
adder2_data_from_sc2 = 1;
adder2_sc2data = data;
adder2_acia_triggered = 1;
cpunum_set_input_line(1, M6809_IRQ_LINE, HOLD_LINE );
LOG_SERIAL(("sadder %02X (%c)\n",data, data ));
}
///////////////////////////////////////////////////////////////////////////
static int receive_from_adder(void)
{
int data = adder2_data;
adder2_data_to_sc2 = 0;
LOG_SERIAL(("radder: %02X(%c)\n",data, data ));
return data;
}
///////////////////////////////////////////////////////////////////////////
static int get_scorpion2_uart_status(void)
{
int status = 0;
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
}
///////////////////////////////////////////////////////////////////////////
// called if board is reset ///////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
static void on_scorpion2_reset(void)
{
vfd1_latch = 0;
vfd2_latch = 0;
mmtr_latch = 0;
triac_latch = 0;
irq_status = 0;
is_timer_enabled = 1;
coin_inhibits = 0;
irq_timer_stat = 0;
expansion_latch = 0;
global_volume = 0;
volume_override = 0;
triac_select = 0;
pay_latch = 0;
reel12_latch = 0;
reel34_latch = 0;
reel56_latch = 0;
hopper_running = 0; // for video games
hopper_coin_sense = 0;
sc2gui_update_mmtr= 0xFF;
slide_states[0] = 0;
slide_states[1] = 0;
slide_states[2] = 0;
slide_states[3] = 0;
slide_states[4] = 0;
slide_states[5] = 0;
watchdog_cnt = 0;
watchdog_kicked = 0;
BFM_BD1_reset(0); // reset display1
BFM_BD1_reset(1); // reset display2
e2ram_reset();
sndti_reset(SOUND_YM2413, 0);
// reset stepper motors /////////////////////////////////////////////////
{
/* Although the BFM video games don't use stepper motors to control reels,
the connections are still present on the board, and some of the programs still
send data to them, although obviously there's no response. */
int pattern =0, i;
for ( i = 0; i < 6; i++)
{
Stepper_reset_position(i);
if ( Stepper_optic_state(i) ) pattern |= 1<<i;
}
optic_pattern = pattern;
}
locked = 0;
// make sure no inputs are overidden ////////////////////////////////////
memset(input_override, 0, sizeof(input_override));
// init rom bank ////////////////////////////////////////////////////////
{
UINT8 *rom = memory_region(REGION_CPU1);
memory_configure_bank(1, 0, 1, &rom[0x10000], 0);
memory_configure_bank(1, 1, 3, &rom[0x02000], 0x02000);
memory_set_bank(1,3);
}
}
///////////////////////////////////////////////////////////////////////////
static void Scorpion2_SetSwitchState(int strobe, int data, int state)
{
if ( strobe < 11 && data < 8 )
{
if ( strobe < 8 )
{
input_override[strobe] |= (1<<data);
if ( state ) sc2_Inputs[strobe] |= (1<<data);
else sc2_Inputs[strobe] &= ~(1<<data);
}
else
{
if ( data > 2 )
{
input_override[strobe-8+4] |= (1<<(data+2));
if ( state ) sc2_Inputs[strobe-8+4] |= (1<<(data+2));
else sc2_Inputs[strobe-8+4] &= ~(1<<(data+2));
}
else
{
input_override[strobe-8] |= (1<<(data+5));
if ( state ) sc2_Inputs[strobe-8] |= (1 << (data+5));
else sc2_Inputs[strobe-8] &= ~(1 << (data+5));
}
}
}
}
///////////////////////////////////////////////////////////////////////////
static int Scorpion2_GetSwitchState(int strobe, int data)
{
int state = 0;
if ( strobe < 11 && data < 8 )
{
if ( strobe < 8 )
{
state = (sc2_Inputs[strobe] & (1<<data) ) ? 1 : 0;
}
else
{
if ( data > 2 )
{
state = (sc2_Inputs[strobe-8+4] & (1<<(data+2)) ) ? 1 : 0;
}
else
{
state = (sc2_Inputs[strobe-8] & (1 << (data+5)) ) ? 1 : 0;
}
}
}
return state;
}
///////////////////////////////////////////////////////////////////////////
static NVRAM_HANDLER( bfm_sc2 )
{
static const UINT8 init_e2ram[10] = { 1, 4, 10, 20, 0, 1, 1, 4, 10, 20 };
if ( read_or_write )
{ // writing
mame_fwrite(file,nvram,nvram_size);
mame_fwrite(file,e2ram,sizeof(e2ram));
}
else
{ // reading
if ( file )
{
mame_fread(file,nvram,nvram_size);
mame_fread(file,e2ram,sizeof(e2ram));
}
else
{
memset(nvram,0x00,nvram_size);
memset(e2ram,0x00,sizeof(e2ram));
memcpy(e2ram,init_e2ram,sizeof(init_e2ram));
}
}
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( ram_r )
{
return nvram[offset]; // read from RAM
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( ram_w )
{
nvram[offset] = data; // write to RAM
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( watchdog_w )
{
watchdog_kicked = 1;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( bankswitch_w )
{
memory_set_bank(1,data & 0x03);
}
///////////////////////////////////////////////////////////////////////////
static INTERRUPT_GEN( timer_irq )
{
timercnt++;
if ( watchdog_kicked )
{
watchdog_cnt = 0;
watchdog_kicked = 0;
}
else
{
watchdog_cnt++;
if ( watchdog_cnt > 2 ) // this is a hack, i don't know what the watchdog timeout is, 3 IRQ's works fine
{ // reset board
mame_schedule_soft_reset(Machine); // reset entire machine. CPU 0 should be enough, but that doesn't seem to work !!
on_scorpion2_reset();
return;
}
}
if ( is_timer_enabled )
{
irq_timer_stat = 0x01;
irq_status = 0x02;
cpunum_set_input_line(0, M6809_IRQ_LINE, HOLD_LINE );
}
}
///////////////////////////////////////////////////////////////////////////
#ifdef UNUSED_FUNCTION
static WRITE8_HANDLER( reel12_w )
{
reel12_latch = data;
if ( Stepper_update(0, data ) ) reel_changed |= 0x01;
if ( Stepper_update(1, data>>4) ) reel_changed |= 0x02;
if ( Stepper_optic_state(0) ) optic_pattern |= 0x01;
else optic_pattern &= ~0x01;
if ( Stepper_optic_state(1) ) optic_pattern |= 0x02;
else optic_pattern &= ~0x02;
}
#endif
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( reel12_vid_w ) // in a video cabinet this is used to drive a hopper
{
reel12_latch = data;
if ( has_hopper )
{
int oldhop = hopper_running;
if ( data & 0x01 )
{ // hopper power
if ( data & 0x02 )
{
hopper_running = 1;
}
else
{
hopper_running = 0;
}
}
else
{
//hopper_coin_sense = 0;
hopper_running = 0;
}
if ( oldhop != hopper_running )
{
hopper_coin_sense = 0;
oldhop = hopper_running;
}
}
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( reel34_w )
{
reel34_latch = data;
if ( Stepper_update(2, data ) ) reel_changed |= 0x04;
if ( Stepper_update(3, data>>4) ) reel_changed |= 0x08;
if ( Stepper_optic_state(2) ) optic_pattern |= 0x04;
else optic_pattern &= ~0x04;
if ( Stepper_optic_state(3) ) optic_pattern |= 0x08;
else optic_pattern &= ~0x08;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( reel56_w )
{
reel56_latch = data;
if ( Stepper_update(4, data ) ) reel_changed |= 0x10;
if ( Stepper_update(5, data>>4) ) reel_changed |= 0x20;
if ( Stepper_optic_state(4) ) optic_pattern |= 0x10;
else optic_pattern &= ~0x10;
if ( Stepper_optic_state(5) ) optic_pattern |= 0x20;
else optic_pattern &= ~0x20;
}
///////////////////////////////////////////////////////////////////////////
// mechanical meters //////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( mmtr_w )
{
int changed = mmtr_latch ^ data;
long cycles = ATTOTIME_TO_CYCLES(0, timer_get_time() );
mmtr_latch = data;
if ( changed & 0x01 )
{
if ( Mechmtr_update(0, cycles, data & 0x01 ) )
{
sc2gui_update_mmtr |= 0x01;
}
}
if ( changed & 0x02 )
{
if ( Mechmtr_update(1, cycles, data & 0x02 ) )
{
sc2gui_update_mmtr |= 0x02;
}
}
if ( changed & 0x04 )
{
if ( Mechmtr_update(2, cycles, data & 0x04 ) )
{
sc2gui_update_mmtr |= 0x04;
}
}
if ( changed & 0x08 )
{
if ( Mechmtr_update(3, cycles, data & 0x08 ) )
{
sc2gui_update_mmtr |= 0x08;
}
}
if ( changed & 0x10 )
{
if ( Mechmtr_update(4, cycles, data & 0x10 ) )
{
sc2gui_update_mmtr |= 0x10;
}
}
if ( changed & 0x20 )
{
if ( Mechmtr_update(5, cycles, data & 0x20 ) )
{
sc2gui_update_mmtr |= 0x20;
}
}
if ( changed & 0x40 )
{
if ( Mechmtr_update(6, cycles, data & 0x40 ) )
{
sc2gui_update_mmtr |= 0x40;
}
}
if ( changed & 0x80 )
{
if ( Mechmtr_update(7, cycles, data & 0x80 ) )
{
sc2gui_update_mmtr |= 0x80;
}
}
if ( data & 0x1F ) cpunum_set_input_line(0, M6809_FIRQ_LINE, PULSE_LINE );
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( mux_output_w )
{
int i;
int off = offset<<3;
for (i=0; i<8; i++)
{
Lamps[ off+i ] = (data & (1 << i)) != 0;
}
if (offset == 0) // update all lamps after strobe 0 has been updated (HACK)
{
for ( i = 0; i < 256; i++ )
{
output_set_lamp_value(i, Lamps[i]);
}
}
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( mux_input_r )
{
int result = 0xFF,t1,t2;
if (offset < 8)
{
int idx = (offset & 4) ? 4 : 8;
t1 = input_override[offset]; // strobe 0-7 data 0-4
t2 = input_override[offset+idx]; // strobe 8-B data 0-4
t1 = (sc2_Inputs[offset] & t1) | ( ( readinputport(offset+1) & ~t1) & 0x1F);
if (idx == 8)
t2 = (sc2_Inputs[offset+8] & t2) | ( ( readinputport(offset+1+8) & ~t2) << 5);
else
t2 = (sc2_Inputs[offset+4] & t2) | ( ( ( readinputport(offset+1+4) & ~t2) << 2) & 0x60);
sc2_Inputs[offset] = (sc2_Inputs[offset] & ~0x1F) | t1;
sc2_Inputs[offset+idx] = (sc2_Inputs[offset+idx] & ~0x60) | t2;
result = t1 | t2;
}
return result;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( unlock_w )
{
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( dimas_w )
{
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( dimcnt_w )
{
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( unknown_w )
{
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( volume_override_w )
{
int old = volume_override;
volume_override = data?1:0;
if ( old != volume_override )
{
float percent = volume_override?1.0:(32-global_volume)/32.0;
sndti_set_output_gain(SOUND_YM2413, 0, 0, percent);
sndti_set_output_gain(SOUND_YM2413, 0, 1, percent);
sndti_set_output_gain(SOUND_UPD7759, 0, 0, percent);
}
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( nec_reset_w )
{
upd7759_start_w(0, 0);
upd7759_reset_w(0, data);
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( nec_latch_w )
{
int bank = 0;
if ( data & 0x80 ) bank |= 0x01;
if ( expansion_latch & 2 ) bank |= 0x02;
upd7759_set_bank_base(0, bank*0x20000);
upd7759_port_w(0, data&0x3F); // setup sample
upd7759_start_w(0, 0);
upd7759_start_w(0, 1); // start
}
///////////////////////////////////////////////////////////////////////////
#ifdef UNUSED_FUNCTION
static READ8_HANDLER( vfd_status_r )
{
// b7 = NEC busy
// b6 = alpha busy (also matrix board)
// b5 - b0 = reel optics
int result = optic_pattern;
if ( !upd7759_busy_r(0) ) result |= 0x80;
return result;
}
#endif
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vfd_status_hop_r ) // on video games, hopper inputs are connected to this
{
// b7 = NEC busy
// b6 = alpha busy (also matrix board)
// b5 - b0 = reel optics
int result = 0;
if ( has_hopper )
{
result |= 0x04; // hopper high level
result |= 0x08; // hopper low level
result |= 0x01|0x02;
if ( hopper_running )
{
result &= ~0x01; // set motor running input
if ( timercnt & 0x04 ) hopper_coin_sense ^= 1; // toggle coin seen
if ( hopper_coin_sense ) result &= ~0x02; // update coin seen input
}
}
if ( !upd7759_busy_r(0) ) result |= 0x80; // update sound busy input
return result;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( expansion_latch_w )
{
int changed = expansion_latch^data;
expansion_latch = data;
// bit0, 1 = lamp mux disabled, 0 = lamp mux enabled
// bit1, ? used in Del's millions
// bit2, digital volume pot meter, clock line
// bit3, digital volume pot meter, direction line
// bit4, ?
// bit5, ?
// bit6, ? used in Del's millions
// bit7 ?
if ( changed & 0x04)
{ // digital volume clock line changed
if ( !(data & 0x04) )
{ // changed from high to low,
if ( !(data & 0x08) )
{
if ( global_volume < 31 ) global_volume++; //0-31 expressed as 1-32
}
else
{
if ( global_volume > 0 ) global_volume--;
}
{
float percent = volume_override?1.0:(32-global_volume)/32.0;
sndti_set_output_gain(SOUND_YM2413, 0, 0, percent);
sndti_set_output_gain(SOUND_YM2413, 0, 1, percent);
sndti_set_output_gain(SOUND_UPD7759, 0, 0, percent);
}
}
}
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( expansion_latch_r )
{
return 0;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( muxena_w )
{
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( timerirq_w )
{
is_timer_enabled = data & 1;
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( timerirqclr_r )
{
irq_timer_stat = 0;
irq_status = 0;
return 0;
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( irqstatus_r )
{
int result = irq_status | irq_timer_stat | 0x80; // 0x80 = ~MUXERROR
irq_timer_stat = 0;
return result;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( coininhib_w )
{
int changed = coin_inhibits^data,i,p;
coin_inhibits = data;
p = 0x01;
i = 0;
while ( i < 8 && changed )
{
if ( changed & p )
{ // this inhibit line has changed
coin_lockout_w(i, (~data & p) ); // update lockouts
changed &= ~p;
}
p <<= 1;
i++;
}
}
///////////////////////////////////////////////////////////////////////////
#ifdef UNUSED_FUNCTION
static READ8_HANDLER( direct_input_r )
{
return 0;
}
#endif
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( coin_input_r )
{
return input_port_0_r(0);
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( payout_latch_w )
{
pay_latch = data;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( payout_triac_w )
{
if ( triac_select == 0x57 )
{
int slide = 0;
switch ( pay_latch )
{
case 0x01: slide = 1;
break;
case 0x02: slide = 2;
break;
case 0x04: slide = 3;
break;
case 0x08: slide = 4;
break;
case 0x10: slide = 5;
break;
case 0x20: slide = 6;
break;
}
if ( slide )
{
if ( data == 0x4D )
{
if ( !slide_states[slide] )
{
if ( slide_pay_sensor[slide] )
{
int strobe = slide_pay_sensor[slide]>>4, data = slide_pay_sensor[slide]&0x0F;
Scorpion2_SetSwitchState(strobe, data, 0);
}
slide_states[slide] = 1;
}
}
else
{
if ( slide_states[slide] )
{
if ( slide_pay_sensor[slide] )
{
int strobe = slide_pay_sensor[slide]>>4, data = slide_pay_sensor[slide]&0x0F;
Scorpion2_SetSwitchState(strobe, data, 1);
}
slide_states[slide] = 0;
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( payout_select_w )
{
triac_select = data;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( vfd1_data_w )
{
vfd1_latch = data;
BFM_BD1_newdata(0, data);
BFM_BD1_draw(0);
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( vfd2_data_w )
{
vfd2_latch = data;
BFM_BD1_newdata(1, data);
BFM_BD1_draw(1);
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( vfd_reset_w )
{
BFM_BD1_reset(0); // reset both VFD's
BFM_BD1_reset(1);
BFM_BD1_draw(0);
BFM_BD1_draw(1);
}
///////////////////////////////////////////////////////////////////////////
// serial port ////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( uart1stat_r )
{
int status = 0x06;
if ( data_to_uart1 ) status |= 0x01;
if ( !data_to_uart2 ) status |= 0x02;
return status;
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( uart1data_r )
{
return uart1_data;
}
//////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( uart1ctrl_w )
{
UART_LOG(("uart1ctrl:%x\n", data));
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( uart1data_w )
{
data_to_uart2 = 1;
uart1_data = data;
UART_LOG(("uart1:%x\n", data));
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( uart2stat_r )
{
int status = 0x06;
if ( data_to_uart2 ) status |= 0x01;
if ( !data_to_uart1 ) status |= 0x02;
return status;
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( uart2data_r )
{
return uart2_data;
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( uart2ctrl_w )
{
UART_LOG(("uart2ctrl:%x\n", data));
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( uart2data_w )
{
data_to_uart1 = 1;
uart2_data = data;
UART_LOG(("uart2:%x\n", data));
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( vid_uart_tx_w )
{
send_to_adder(data);
}
///////////////////////////////////////////////////////////////////////////
static WRITE8_HANDLER( vid_uart_ctrl_w )
{
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vid_uart_rx_r )
{
return receive_from_adder();
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vid_uart_ctrl_r )
{
return get_scorpion2_uart_status();
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( key_r )
{
int result = key[ offset ];
if ( offset == 7 )
{
result = (result & 0xFE) | read_e2ram();
}
return result;
}
///////////////////////////////////////////////////////////////////////////
/*
The X24C08 is a CMOS 8,192 bit serial EEPROM,
internally organized 1024 x 8. The X24C08 features a
serial interface and software protocol allowing operation
on a simple two wire bus.
*/
static int e2reg;
static int e2state;
static int e2cnt;
static int e2data;
static int e2address;
static int e2rw;
static int e2data_pin;
static int e2dummywrite;
static int e2data_to_read;
#define SCL 0x01 //SCL pin (clock)
#define SDA 0x02 //SDA pin (data)
static void e2ram_reset(void)
{
e2reg = 0;
e2state = 0;
e2address = 0;
e2rw = 0;
e2data_pin = 0;
e2data = (SDA|SCL);
e2dummywrite = 0;
e2data_to_read = 0;
}
static int recdata(int changed, int data)
{
int res = 1;
if ( e2cnt < 8 )
{
res = 0;
if ( (changed & SCL) && (data & SCL) )
{ // clocked in new data
int pattern = 1 << (7-e2cnt);
if ( data & SDA ) e2data |= pattern;
else e2data &= ~pattern;
e2data_pin = e2data_to_read & 0x80 ? 1 : 0;
e2data_to_read <<= 1;
LOG(("e2d pin= %d\n", e2data_pin));
e2cnt++;
if ( e2cnt >= 8 )
{
res++;
}
}
}
return res;
}
static int recAck(int changed, int data)
{
int result = 0;
if ( (changed & SCL) && (data & SCL) )
{
if ( data & SDA )
{
result = 1;
}
else
{
result = -1;
}
}
return result;
}
//
static WRITE8_HANDLER( e2ram_w )
{ // b0 = clock b1 = data
int changed, ack;
data ^= (SDA|SCL); // invert signals
changed = (e2reg^data) & 0x03;
e2reg = data;
if ( changed )
{
while ( 1 )
{
if ( ( (changed & SDA) && !(data & SDA)) && // 1->0 on SDA AND
( !(changed & SCL) && (data & SCL) ) // SCL=1 and not changed
)
{ // X24C08 Start condition (1->0 on SDA while SCL=1)
e2dummywrite = ( e2state == 5 );
LOG(("e2ram: c:%d d:%d Start condition dummywrite=%d\n", (data & SCL)?1:0, (data&SDA)?1:0, e2dummywrite ));
e2state = 1; // ready for commands
e2cnt = 0;
e2data = 0;
break;
}
if ( ( (changed & SDA) && (data & SDA)) && // 0->1 on SDA AND
( !(changed & SCL) && (data & SCL) ) // SCL=1 and not changed
)
{ // X24C08 Stop condition (0->1 on SDA while SCL=1)
LOG(("e2ram: c:%d d:%d Stop condition\n", (data & SCL)?1:0, (data&SDA)?1:0 ));
e2state = 0;
e2data = 0;
break;
}
switch ( e2state )
{
case 1: // Receiving address + R/W bit
if ( recdata(changed, data) )
{
e2address = (e2address & 0x00FF) | ((e2data>>1) & 0x03) << 8;
e2cnt = 0;
e2rw = e2data & 1;
LOG(("e2ram: Slave address received !! device id=%01X device adr=%01d high order adr %0X RW=%d) %02X\n",
e2data>>4, (e2data & 0x08)?1:0, (e2data>>1) & 0x03, e2rw , e2data ));
e2state = 2;
}
break;
case 2: // Receive Acknowledge
ack = recAck(changed,data);
if ( ack )
{
e2data_pin = 0;
if ( ack < 0 )
{
LOG(("ACK = 0\n"));
e2state = 0;
}
else
{
LOG(("ACK = 1\n"));
if ( e2dummywrite )
{
e2dummywrite = 0;
e2data_to_read = e2ram[e2address];
if ( e2rw & 1 ) e2state = 7; // read data
else e2state = 0; //?not sure
}
else
{
if ( e2rw & 1 ) e2state = 7; // reading
else e2state = 3; // writing
}
switch ( e2state )
{
case 7:
LOG(("read address %04X\n",e2address));
e2data_to_read = e2ram[e2address];
break;
case 3:
LOG(("write, awaiting address\n"));
break;
default:
LOG(("?unknow action %04X\n",e2address));
break;
}
}
e2data = 0;
}
break;
case 3: // writing data, receiving address
if ( recdata(changed, data) )
{
e2data_pin = 0;
e2address = (e2address & 0xFF00) | e2data;
LOG(("write address = %04X waiting for ACK\n", e2address));
e2state = 4;
e2cnt = 0;
e2data = 0;
}
break;
case 4: // wait ack, for write address
ack = recAck(changed,data);
if ( ack )
{
e2data_pin = 0; // pin=0, no error !!
if ( ack < 0 )
{
e2state = 0;
LOG(("ACK = 0, cancel write\n" ));
}
else
{
e2state = 5;
LOG(("ACK = 1, awaiting data to write\n" ));
}
}
break;
case 5: // receive data to write
if ( recdata(changed, data) )
{
LOG(("write data = %02X received, awaiting ACK\n", e2data));
e2cnt = 0;
e2state = 6; // wait ack
}
break;
case 6: // Receive Acknowlede after writing
ack = recAck(changed,data);
if ( ack )
{
if ( ack < 0 )
{
e2state = 0;
LOG(("ACK=0, write canceled\n"));
}
else
{
LOG(("ACK=1, writing %02X to %04X\n", e2data, e2address));
e2ram[e2address] = e2data;
e2address = (e2address & ~0x000F) | ((e2address+1)&0x0F);
e2state = 5; // write next address
}
}
break;
case 7: // receive address from read
if ( recdata(changed, data) )
{
//e2data_pin = 0;
LOG(("address read, data = %02X waiting for ACK\n", e2data ));
e2state = 8;
}
break;
case 8:
if ( recAck(changed, data) )
{
e2state = 7;
e2address = (e2address & ~0x0F) | ((e2address+1)&0x0F); // lower 4 bits wrap around
e2data_to_read = e2ram[e2address];
LOG(("ready for next address %04X\n", e2address));
e2cnt = 0;
e2data = 0;
}
break;
case 0:
LOG(("e2ram: ? c:%d d:%d\n", (data & SCL)?1:0, (data&SDA)?1:0 ));
break;
}
break;
}
}
}
static int read_e2ram(void)
{
LOG(("e2ram: r %d (%02X) \n", e2data_pin, e2data_to_read ));
return e2data_pin;
}
static const UINT16 AddressDecode[]=
{
0x0800,0x1000,0x0001,0x0004,0x0008,0x0020,0x0080,0x0200,
0x0100,0x0040,0x0002,0x0010,0x0400,0x2000,0x4000,0x8000,
0
};
static const UINT8 DataDecode[]=
{
0x02,0x08,0x20,0x40,0x10,0x04,0x01,0x80,
0
};
static UINT8 codec_data[256];
///////////////////////////////////////////////////////////////////////////
static void decode_mainrom(int rom_region)
{
UINT8 *tmp, *rom;
rom = memory_region(rom_region);
tmp = malloc_or_die(0x10000);
{
int i;
long address;
memcpy(tmp, rom, 0x10000);
for ( i = 0; i < 256; i++ )
{
UINT8 data,pattern,newdata,*tab;
data = i;
tab = (UINT8*)DataDecode;
pattern = 0x01;
newdata = 0;
do
{
newdata |= data & pattern ? *tab : 0;
pattern <<= 1;
} while ( *(++tab) );
codec_data[i] = newdata;
}
for ( address = 0; address < 0x10000; address++)
{
int newaddress,pattern;
UINT16 *tab;
tab = (UINT16*)AddressDecode;
pattern = 0x0001;
newaddress = 0;
do
{
newaddress |= address & pattern ? *tab : 0;
pattern <<= 1;
} while ( *(++tab) );
rom[newaddress] = codec_data[ tmp[address] ];
}
free(tmp);
}
}
// machine init (called only once) ////////////////////////////////////////
static MACHINE_RESET( init )
{
// reset adder2
machine_reset_adder2(machine);
// reset the board //////////////////////////////////////////////////////
on_scorpion2_reset();
BFM_BD1_init(0);
BFM_BD1_init(1);
//BFM_dm01_reset(); No known video based game has a Matrix board
}
static VIDEO_UPDATE( addersc2 )
{
if ( sc2_show_door )
{
output_set_value("door",( Scorpion2_GetSwitchState(sc2_door_state>>4, sc2_door_state & 0x0F) ) );
}
return video_update_adder2(machine,screen,bitmap,cliprect);
}
// memory map for scorpion2 board video addon /////////////////////////////
static ADDRESS_MAP_START( memmap_vid, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)// 8k RAM
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_hop_r) // vfd status register
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_vid_w)
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
AM_RANGE(0x2200, 0x22FF) AM_WRITE(reel56_w)
AM_RANGE(0x2300, 0x230B) AM_READ(mux_input_r) // mux inputs
AM_RANGE(0x2300, 0x231F) AM_WRITE(mux_output_w) // mux outputs
AM_RANGE(0x2320, 0x2323) AM_WRITE(dimas_w) // ?unknown dim related
AM_RANGE(0x2324, 0x2324) AM_READWRITE(expansion_latch_r, expansion_latch_w)
AM_RANGE(0x2325, 0x2327) AM_WRITE(unknown_w) // ?unknown
AM_RANGE(0x2328, 0x2328) AM_WRITE(muxena_w) // mux enable
AM_RANGE(0x2329, 0x2329) AM_READWRITE(timerirqclr_r, timerirq_w)
AM_RANGE(0x232A, 0x232D) AM_WRITE(unknown_w) // ?unknown
AM_RANGE(0x232E, 0x232E) AM_READ(irqstatus_r)
AM_RANGE(0x232F, 0x232F) AM_WRITE(coininhib_w) // coin inhibits
AM_RANGE(0x2330, 0x2330) AM_WRITE(payout_latch_w)
AM_RANGE(0x2331, 0x2331) AM_WRITE(payout_triac_w)
AM_RANGE(0x2332, 0x2332) AM_WRITE(watchdog_w) // kick watchdog
AM_RANGE(0x2333, 0x2333) AM_WRITE(mmtr_w) // mechanical meters
AM_RANGE(0x2334, 0x2335) AM_WRITE(unknown_w)
AM_RANGE(0x2336, 0x2336) AM_WRITE(dimcnt_w) // ?unknown dim related
AM_RANGE(0x2337, 0x2337) AM_WRITE(volume_override_w)
AM_RANGE(0x2338, 0x2338) AM_WRITE(payout_select_w)
AM_RANGE(0x2339, 0x2339) AM_WRITE(unknown_w) // ?unknown
AM_RANGE(0x2400, 0x2400) AM_READWRITE(uart1stat_r, uart1ctrl_w) // mc6850 compatible uart
AM_RANGE(0x2500, 0x2500) AM_READWRITE(uart1data_r, uart1data_w)
AM_RANGE(0x2600, 0x2600) AM_READWRITE(uart2stat_r, uart2ctrl_w) // mc6850 compatible uart
AM_RANGE(0x2700, 0x2700) AM_READWRITE(uart2data_r, uart2data_w)
AM_RANGE(0x2800, 0x2800) AM_WRITE(vfd1_data_w) // vfd1 data
AM_RANGE(0x2900, 0x2900) AM_WRITE(vfd_reset_w) // vfd1+vfd2 reset line
AM_RANGE(0x2A00, 0x2AFF) AM_WRITE(nec_latch_w) // this is where it reads?
AM_RANGE(0x2B00, 0x2BFF) AM_WRITE(nec_reset_w) // upd7759 reset line
AM_RANGE(0x2C00, 0x2C00) AM_WRITE(unlock_w) // custom chip unlock
AM_RANGE(0x2D00, 0x2D00) AM_WRITE(YM2413_register_port_0_w)
AM_RANGE(0x2D01, 0x2D01) AM_WRITE(YM2413_data_port_0_w)
AM_RANGE(0x2E00, 0x2E00) AM_WRITE(bankswitch_w) // write bank (rom page select for 0x6000 - 0x7fff )
AM_RANGE(0x2F00, 0x2F00) AM_WRITE(vfd2_data_w) // vfd2 data
AM_RANGE(0x3C00, 0x3C07) AM_READ( key_r )
AM_RANGE(0x3C80, 0x3C80) AM_WRITE( e2ram_w )
AM_RANGE(0x3E00, 0x3E00) AM_READWRITE(vid_uart_ctrl_r, vid_uart_ctrl_w) // video uart control reg
AM_RANGE(0x3E01, 0x3E01) AM_READWRITE(vid_uart_rx_r, vid_uart_tx_w) // video uart data reg
AM_RANGE(0x3FFF, 0x3FFF) AM_READ(coin_input_r)
AM_RANGE(0x4000, 0x5fff) AM_ROM // 8k fixed ROM
AM_RANGE(0x4000, 0xFFFF) AM_WRITE(unknown_w) // contains unknown I/O registers
AM_RANGE(0x6000, 0x7FFF) AM_READ(MRA8_BANK1) // 8k paged ROM (4 pages)
AM_RANGE(0x8000, 0xFFFF) AM_ROM // 32k ROM
ADDRESS_MAP_END
// input ports for pyramid ////////////////////////////////////////
static INPUT_PORTS_START( pyramid )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.50")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Up")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Right")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Enter") PORT_CODE(KEYCODE_E)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Coin 1 Inhibit?" ) PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "Coin 2 Inhibit?" ) PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x00, "Coin 3 Inhibit?" ) PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x00, "Coin 4 Inhibit?" ) PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "Attract mode language" ) PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( English ) )
PORT_DIPSETTING( 0x02, "Dutch" )
PORT_DIPNAME( 0x0C, 0x00, "Skill Level" ) PORT_DIPLOCATION("DIL:08,10")
PORT_DIPSETTING( 0x00, DEF_STR( Low ) )
PORT_DIPSETTING( 0x04, "Medium-Low" )
PORT_DIPSETTING( 0x08, "Medium-High")
PORT_DIPSETTING( 0x0C, DEF_STR( High ) )
PORT_DIPNAME( 0x10, 0x00, "DIL11" ) PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Attract mode" ) PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x00, "Stake" ) PORT_DIPLOCATION("DIL:15,16")
PORT_DIPSETTING( 0x00, "4 credits per game" )
PORT_DIPSETTING( 0x08, "1 credit per round" )
PORT_DIPSETTING( 0x10, "2 credit per round" )
PORT_DIPSETTING( 0x18, "4 credits per round" )
INPUT_PORTS_END
// input ports for golden crown ///////////////////////////////////
static INPUT_PORTS_START( gldncrwn )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME( "Collect") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME( "Reel 1" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME( "Reel 2" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME( "Reel 3" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME( "Reel 4" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME( "Reel 5" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME( "Reel 6" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Hall Of Fame" ) PORT_CODE( KEYCODE_J )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Coin 1 Inhibit?" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "Coin 2 Inhibit?" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x00, "Coin 3 Inhibit?" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x00, "Coin 4 Inhibit?" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "Attract mode language" )PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, "Dutch")
PORT_DIPSETTING( 0x01, DEF_STR( English ) )
PORT_DIPNAME( 0x02, 0x00, "Max number of spins" )PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, "99")
PORT_DIPSETTING( 0x02, "50")
PORT_DIPNAME( 0x0C, 0x00, "Skill Level" )PORT_DIPLOCATION("DIL:08,10")
PORT_DIPSETTING( 0x00, DEF_STR( Low ))
PORT_DIPSETTING( 0x04, "Medium-Low" )
PORT_DIPSETTING( 0x08, "Medium-High" )
PORT_DIPSETTING( 0x0C, DEF_STR( High ) )
PORT_DIPNAME( 0x10, 0x00, "Base Pricing on:" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, "Full Game")
PORT_DIPSETTING( 0x10, "Individual Rounds")
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x01, "Credits required:" )PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, "4 credits per game")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x00)
PORT_DIPSETTING( 0x01, "2 credits per game")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x00)
PORT_DIPSETTING( 0x00, "1 credit per round")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x10)
PORT_DIPSETTING( 0x01, "4 credits per round")PORT_CONDITION("STROBE10",0x10,PORTCOND_EQUALS,0x10)
/*
Type1 Type2
0 0 4 credits per game
0 1 2 credits per game
1 0 1 credit per round
1 1 4 credits per round
*/
PORT_DIPNAME( 0x02, 0x00, "Attract Mode" )PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Time bar" )PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x00, "Time bar speed" )PORT_DIPLOCATION("DIL:15,16")
PORT_DIPSETTING( 0x00, "1 (fast)" )
PORT_DIPSETTING( 0x08, "2" )
PORT_DIPSETTING( 0x10, "3" )
PORT_DIPSETTING( 0x18, "4 (slow)" )
INPUT_PORTS_END
// input ports for dutch quintoon /////////////////////////////////
static INPUT_PORTS_START( qntoond )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Hand 1" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hand 2" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hand 3" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hand 4" )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hand 5" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x02, "Fl 0.25 Inhibit?" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x02, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x04, "Fl 1.00 Inhibit?" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x04, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x08, "Fl 2.50 Inhibit?" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x08, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x10, "Fl 5.00 Inhibit?" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x10, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "DIL09" ) PORT_DIPLOCATION("DIL:10")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x00, "Time bar" )PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "Clear credits on reset" )PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "Attract mode language" )PORT_DIPLOCATION("DIL:15")
PORT_DIPSETTING( 0x00, "Dutch" )
PORT_DIPSETTING( 0x08, DEF_STR( English ) )
PORT_DIPNAME( 0x10, 0x00, "DIL15" ) PORT_DIPLOCATION("DIL:16")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
INPUT_PORTS_END
// input ports for UK quintoon ////////////////////////////////////////////
static INPUT_PORTS_START( quintoon )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("10p")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("20p")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("50p")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("GBP 1.00")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hand 1")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hand 2")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hand 3")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hand 4")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Hand 5")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("?1") PORT_CODE(KEYCODE_U)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("?2") PORT_CODE(KEYCODE_I)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("?3") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE5")//
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL)//Payout opto
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Clear credits on reset?" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "DIL03" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "DIL04" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "DIL05" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "Coin Lockout")PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )//Will activate coin lockout when Credit >= 1 Play
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL07" )PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "DIL08" )PORT_DIPLOCATION("DIL:08")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "DIL10" )PORT_DIPLOCATION("DIL:10")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "Stake per Game / Jackpot" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, "20p / 6 Pounds" )
PORT_DIPSETTING( 0x10, "50p / 20 Pounds" )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x00, "DIL12" )PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL13" )PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x1C, 0x1C, "Target percentage" )PORT_DIPLOCATION("DIL:14,15,16")
PORT_DIPSETTING( 0x1C, "50%")
PORT_DIPSETTING( 0x0C, "55%")
PORT_DIPSETTING( 0x08, "60%")
PORT_DIPSETTING( 0x18, "65%")
PORT_DIPSETTING( 0x10, "70%")
PORT_DIPSETTING( 0x00, "75%")
PORT_DIPSETTING( 0x04, "80%")
PORT_DIPSETTING( 0x14, "85%")
INPUT_PORTS_END
// input ports for UK quintoon (older)/////////////////////////////////////
static INPUT_PORTS_START( quintono )
PORT_INCLUDE(quintoon)
PORT_MODIFY("STROBE10")
PORT_DIPNAME( 0x10, 0x00, "Stake per Game / Jackpot" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, "20p / 6 Pounds" )
PORT_DIPSETTING( 0x10, "50p / 20 Pounds" )
INPUT_PORTS_END
// input ports for slotsnl ///////////////////////////////////////////////
static INPUT_PORTS_START( slotsnl )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Slot 1")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Slot 2")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Slot 3")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Slot 4")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Enter") PORT_CODE( KEYCODE_E )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Fl 0.25 Inhibit?" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "Fl 1.00 Inhibit?" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x00, "Fl 2.50 Inhibit?" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x00, "Fl 5.00 Inhibit?" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x00, "DIL12" ) PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x00, "Timebar speed" )PORT_DIPLOCATION("DIL:15,16")
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x10, "2" )
PORT_DIPSETTING( 0x08, "3" )
PORT_DIPSETTING( 0x18, "4" )
INPUT_PORTS_END
// input ports for sltblgtk //////////////////////////////////////////////
static INPUT_PORTS_START( sltblgtk )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Token")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("20 BFr")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("50 BFr")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Slot 1")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Slot 2")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Slot 3")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Slot 4")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Enter") PORT_CODE( KEYCODE_E )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL )//Tube 1
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )//Tube 2
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "CashMeters in refill menu" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "Token Inhibit?" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x00, "20 Bfr Inhibit?" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x00, "50 Bfr Inhibit?" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x0E, 0x0E, "Payout Percentage" )PORT_DIPLOCATION("DIL:07,08,10")
PORT_DIPSETTING( 0x00, "60%")
PORT_DIPSETTING( 0x08, "65%")
PORT_DIPSETTING( 0x04, "70%")
PORT_DIPSETTING( 0x0C, "75%")
PORT_DIPSETTING( 0x02, "80%")
PORT_DIPSETTING( 0x0A, "84%")
PORT_DIPSETTING( 0x06, "88%")
PORT_DIPSETTING( 0x0E, "90%")
PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x01, "Timebar" )PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "Clear credits" )PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "Attract mode" )PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Show hints" )PORT_DIPLOCATION("DIL:15")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "Pay win to credits" )PORT_DIPLOCATION("DIL:16")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
INPUT_PORTS_END
// input ports for sltblgpo //////////////////////////////////////////////
static INPUT_PORTS_START( sltblgpo )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Bfr 20")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Bfr 50")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Hand 1")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Hand 2")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hand 3")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Hand 4")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Stake") PORT_CODE( KEYCODE_O )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Collect") PORT_CODE(KEYCODE_C)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Hopper Limit" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, "300" )
PORT_DIPSETTING( 0x02, "500" )
PORT_DIPNAME( 0x04, 0x00, "DIL03" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x00, "Attendant payout" )PORT_DIPLOCATION("DIL:04,05")
PORT_DIPSETTING( 0x00, "1000 Bfr" )
PORT_DIPSETTING( 0x08, "1250 Bfr" )
PORT_DIPSETTING( 0x10, "1500 Bfr" )
PORT_DIPSETTING( 0x18, "1750 Bfr" )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "Bfr 20 Inhibit?" )PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
PORT_DIPNAME( 0x02, 0x00, "DIL07" )PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "DIL08" )PORT_DIPLOCATION("DIL:08")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "DIL10" )PORT_DIPLOCATION("DIL:10")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x00, "Clear credits on reset?" )PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
PORT_DIPNAME( 0x02, 0x00, "Attract Mode" )PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x1C, 0x08, "Target Percentage" )PORT_DIPLOCATION("DIL:14,15,16")
PORT_DIPSETTING( 0x14, "80%")
PORT_DIPSETTING( 0x04, "82%")
PORT_DIPSETTING( 0x1C, "84%")
PORT_DIPSETTING( 0x0C, "86%")
PORT_DIPSETTING( 0x10, "90%")
PORT_DIPSETTING( 0x00, "92%")
PORT_DIPSETTING( 0x18, "94%")
PORT_DIPSETTING( 0x08, "96%")
INPUT_PORTS_END
// input ports for paradice ///////////////////////////////////////////////
static INPUT_PORTS_START( paradice )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME( "1 Player Start (Left)" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME( "2 Player Start (Right)" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME( "A" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME( "B" )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME( "C" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Enter" ) PORT_CODE( KEYCODE_E )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Coin 1 Inhibit?" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "Coin 2 Inhibit?" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x00, "Coin 3 Inhibit?" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x00, "Coin 4 Inhibit?" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x01, "Joker" )PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) )PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( English ) )
PORT_DIPSETTING( 0x02, "Dutch" )
PORT_DIPNAME( 0x0C, 0x0C, "Payout level" )PORT_DIPLOCATION("DIL:08,10")
PORT_DIPSETTING( 0x00, DEF_STR( Low ) )
PORT_DIPSETTING( 0x08, "Medium-Low" )
PORT_DIPSETTING( 0x04, "Medium-High" )
PORT_DIPSETTING( 0x0C, DEF_STR( High ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Difficulty ) )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x03, 0x00, "Winlines to go" )PORT_DIPLOCATION("DIL:12,13")
PORT_DIPSETTING( 0x00, "6" )
PORT_DIPSETTING( 0x02, "7" )
PORT_DIPSETTING( 0x01, "8" )
PORT_DIPSETTING( 0x03, "9" )
PORT_DIPNAME( 0x04, 0x04, "Attract mode" )PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x00, "Timebar speed" )PORT_DIPLOCATION("DIL:15,16")
PORT_DIPSETTING( 0x00, "0" )
PORT_DIPSETTING( 0x08, "1" )
PORT_DIPSETTING( 0x10, "2" )
PORT_DIPSETTING( 0x18, "3" )
INPUT_PORTS_END
// input ports for pokio //////////////////////////////////////////////////
static INPUT_PORTS_START( pokio )
PORT_START_TAG("COINS")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(3) PORT_NAME("Fl 0.25")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(3) PORT_NAME("Fl 1.00")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_IMPULSE(3) PORT_NAME("Fl 2.50")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN4 ) PORT_IMPULSE(3) PORT_NAME("Fl 5.00")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Hand 1 Left" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME( "Hand 2 Left" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME( "Hand 3 Left" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME( "1 Player Start (Left)" )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Enter" ) PORT_CODE( KEYCODE_SPACE )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME( "2 Player Start (Right)" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON6 )PORT_NAME( "Hand 3 Right" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 )PORT_NAME( "Hand 2 Right" )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 )PORT_NAME( "Hand 1 Right" )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Cashbox Door") PORT_CODE(KEYCODE_Q) PORT_TOGGLE
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_INTERLOCK) PORT_NAME("Front Door") PORT_CODE(KEYCODE_W) PORT_TOGGLE
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Refill Key") PORT_CODE(KEYCODE_R) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START_TAG("STROBE9")
PORT_SERVICE_NO_TOGGLE(0x01,IP_ACTIVE_HIGH)
PORT_DIPNAME( 0x02, 0x00, "Coin 1 Inhibit?" )PORT_DIPLOCATION("DIL:02")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x00, "Coin 2 Inhibit?" )PORT_DIPLOCATION("DIL:03")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x00, "Coin 3 Inhibit?" )PORT_DIPLOCATION("DIL:04")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x00, "Coin 4 Inhibit?" )PORT_DIPLOCATION("DIL:05")
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_START_TAG("STROBE10")
PORT_DIPNAME( 0x01, 0x00, "DIL06" ) PORT_DIPLOCATION("DIL:06")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL07" ) PORT_DIPLOCATION("DIL:07")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "DIL08" ) PORT_DIPLOCATION("DIL:08")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "DIL10" ) PORT_DIPLOCATION("DIL:10")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "Coin Jam Alarm" )PORT_DIPLOCATION("DIL:11")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START_TAG("STROBE11")
PORT_DIPNAME( 0x01, 0x01, "Time bar" ) PORT_DIPLOCATION("DIL:12")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "DIL13" ) PORT_DIPLOCATION("DIL:13")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Attract mode" )PORT_DIPLOCATION("DIL:14")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x00, "Timebar speed" )PORT_DIPLOCATION("DIL:15,16")
PORT_DIPSETTING( 0x00, "0" )
PORT_DIPSETTING( 0x08, "1" )
PORT_DIPSETTING( 0x10, "2" )
PORT_DIPSETTING( 0x18, "3" )
INPUT_PORTS_END
static struct upd7759_interface upd7759_interface =
{
REGION_SOUND1, /* memory region */
0
};
///////////////////////////////////////////////////////////////////////////
// machine driver for scorpion2 board + adder2 expansion //////////////////
///////////////////////////////////////////////////////////////////////////
static MACHINE_DRIVER_START( scorpion2_vid )
MDRV_MACHINE_RESET( init ) // main scorpion2 board initialisation
MDRV_INTERLEAVE(16) // needed for serial communication !!
MDRV_CPU_ADD_TAG("main", M6809, 2000000 ) // 6809 CPU at 2 Mhz
MDRV_CPU_PROGRAM_MAP(memmap_vid,0) // setup scorpion2 board memorymap
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second
MDRV_NVRAM_HANDLER(bfm_sc2)
MDRV_DEFAULT_LAYOUT(layout_bfm_sc2)
MDRV_SCREEN_ADD("ADDER", 0x000)
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE( 400, 280)
MDRV_SCREEN_VISIBLE_AREA( 0, 400-1, 0, 280-1)
MDRV_SCREEN_REFRESH_RATE(50)
MDRV_VIDEO_START( adder2)
MDRV_VIDEO_RESET( adder2)
MDRV_VIDEO_UPDATE(addersc2)
MDRV_PALETTE_LENGTH(16)
MDRV_COLORTABLE_LENGTH(16)
MDRV_PALETTE_INIT(adder2)
MDRV_GFXDECODE(adder2)
MDRV_CPU_ADD_TAG("adder2", M6809, 2000000 ) // adder2 board 6809 CPU at 2 Mhz
MDRV_CPU_PROGRAM_MAP(adder2_memmap,0) // setup adder2 board memorymap
MDRV_CPU_VBLANK_INT(adder2_vbl, 1) // board has a VBL IRQ
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK)
MDRV_SOUND_CONFIG(upd7759_interface)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MDRV_SOUND_ADD(YM2413, 3579545)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END
static void sc2_common_init(void)
{
UINT8 *rom;
decode_mainrom(REGION_CPU1); // decode main rom
rom = memory_region(REGION_CPU1);
if ( rom )
{
memcpy(&rom[0x10000], &rom[0x00000], 0x2000);
}
memset(sc2_Inputs, 0, sizeof(sc2_Inputs)); // clear all inputs
}
static void adder2_common_init(void)
{
UINT8 *pal;
pal = memory_region(REGION_PROMS);
if ( pal )
{
memcpy(key, pal, 8);
}
}
// UK quintoon initialisation ////////////////////////////////////////////////
static DRIVER_INIT (quintoon)
{
sc2_common_init();
adder2_decode_char_roms();
Mechmtr_init(8); // setup mech meters
has_hopper = 0;
Scorpion2_SetSwitchState(3,0,1); // tube1 level switch
Scorpion2_SetSwitchState(3,1,1); // tube2 level switch
Scorpion2_SetSwitchState(3,2,1); // tube3 level switch
Scorpion2_SetSwitchState(5,2,1);
Scorpion2_SetSwitchState(6,4,1);
sc2_show_door = 1;
sc2_door_state = 0x41;
}
// dutch pyramid intialisation //////////////////////////////////////////////
static DRIVER_INIT( pyramid )
{
sc2_common_init();
adder2_decode_char_roms(); // decode GFX roms
adder2_common_init();
has_hopper = 1;
Scorpion2_SetSwitchState(3,0,1); // tube1 level switch
Scorpion2_SetSwitchState(3,1,1); // tube2 level switch
Scorpion2_SetSwitchState(3,2,1); // tube3 level switch
sc2_show_door = 1;
sc2_door_state = 0x41;
}
// belgian slots initialisation /////////////////////////////////////////////
static DRIVER_INIT( sltsbelg )
{
sc2_common_init();
adder2_decode_char_roms(); // decode GFX roms
adder2_common_init();
has_hopper = 1;
sc2_show_door = 1;
sc2_door_state = 0x41;
}
// other dutch adder games ////////////////////////////////////////////////
static DRIVER_INIT( adder_dutch )
{
sc2_common_init();
adder2_decode_char_roms(); // decode GFX roms
adder2_common_init();
has_hopper = 0;
Scorpion2_SetSwitchState(3,0,1); // tube1 level switch
Scorpion2_SetSwitchState(3,1,1); // tube2 level switch
Scorpion2_SetSwitchState(3,2,1); // tube3 level switch
sc2_show_door = 1;
sc2_door_state = 0x41;
}
// golden crown //////////////////////////////////////////////////////////
static DRIVER_INIT( gldncrwn )
{
sc2_common_init();
adder2_decode_char_roms(); // decode GFX roms
adder2_common_init();
has_hopper = 0;
Scorpion2_SetSwitchState(3,0,1); // tube1 level switch
Scorpion2_SetSwitchState(3,1,1); // tube2 level switch
Scorpion2_SetSwitchState(3,2,1); // tube3 level switch
sc2_show_door = 0;
sc2_door_state = 0x41;
}
// ROM definition UK Quintoon ////////////////////////////////////////////
ROM_START( quintoon )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750206.p1", 0x00000, 0x10000, CRC(05f4bfad) SHA1(22751573f3a51a9fd2d2a75a7d1b20d78112e0bb))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("quinp132", 0x00000, 0x20000, CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
ROM_REGION( 0x20000, REGION_SOUND1, 0 ) // using Dutch samples, need to check a UK Quintoon PCB
ROM_LOAD("95001016.snd", 0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("quinp233", 0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
ROM_END
// ROM definition UK Quintoon (older) ////////////////////////////////////
ROM_START( quintono )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750203.bin", 0x00000, 0x10000, CRC(037ef2d0) SHA1(6958624e29629a7639a80e8929b833a8b0201833))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("quinp132", 0x00000, 0x20000, CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
ROM_REGION( 0x20000, REGION_SOUND1, 0 ) // using Dutch samples, need to check a UK Quintoon PCB
ROM_LOAD("95001016.snd", 0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("quinp233", 0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
ROM_END
// ROM definition UK Quintoon (data) /////////////////////////////////////
ROM_START( quintond )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95751206.bin", 0x00000, 0x10000, CRC(63def707) SHA1(d016df74f4f83cd72b16f9ccbe78cc382bf056c8))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("quinp132", 0x00000, 0x20000, CRC(63896a7f) SHA1(81aa56874a15faa3aabdfc0fc524b2e25b751f22))
ROM_REGION( 0x20000, REGION_SOUND1, 0 ) // using Dutch samples, need to check a UK Quintoon PCB
ROM_LOAD("95001016.snd", 0x00000, 0x20000, BAD_DUMP CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("quinp233", 0x00000, 0x20000, CRC(3d4ebecf) SHA1(b339cf16797ccf7a1ec20fcebf52b6edad9a1047))
ROM_END
// ROM definition Dutch Quintoon ///////////////////////////////////////////
ROM_START( qntoond )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750243.bin", 0x00000, 0x10000, CRC(36a8dcd1) SHA1(ab21301312fbb6609f850e1cf6bcda5a2b7f66f5))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770024.vid", 0x00000, 0x20000, CRC(5bc7ac55) SHA1(b54e9684f750b73c357d41b88ca8c527258e2a10))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001016.snd", 0x00000, 0x20000, CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770025.chr", 0x00000, 0x20000, CRC(f59748ea) SHA1(f0f7f914fdf72db8eb60717b95e7d027c0081339))
ROM_END
// ROM definition Dutch Quintoon alternate set /////////////////////////////
ROM_START( qntoondo )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750136.bin", 0x00000, 0x10000, CRC(839ea01d) SHA1(d7f77dbaea4e87c3d782408eb50d10f44b6df5e2))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770024.vid", 0x00000, 0x20000, CRC(5bc7ac55) SHA1(b54e9684f750b73c357d41b88ca8c527258e2a10))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001016.snd", 0x00000, 0x20000, CRC(cf097d41) SHA1(6712f93896483360256d8baffc05977c8e532ef1))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770025.chr", 0x00000, 0x20000, CRC(f59748ea) SHA1(f0f7f914fdf72db8eb60717b95e7d027c0081339))
ROM_END
// ROM definition dutch golden crown //////////////////////////////////////
ROM_START( gldncrwn )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95752011.bin", 0x00000, 0x10000, CRC(54f7cca0) SHA1(835727d88113700a38060f880b4dfba2ded41487))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770117.vid", 0x00000, 0x20000, CRC(598ba7cb) SHA1(ab518d7df24b0b453ec3fcddfc4db63e0391fde7))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001039.snd", 0x00000, 0x20000, CRC(6af26157) SHA1(9b3a85f5dd760c4430e38e2844928b74aadc7e75))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770118.ch1", 0x00000, 0x20000, CRC(9c9ac946) SHA1(9a571e7d00f6654242aface032c2fb186ef44aba))
ROM_LOAD("95770119.ch2", 0x20000, 0x20000, CRC(9e0fdb2e) SHA1(05e8257285b0009df4fcc73e93490876358a8be8))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD("gcrpal.bin", 0, 8 , CRC(4edd5a1d) SHA1(d6fe38377d5f2291d33ee8ed808548871e63c4d7))
ROM_END
// ROM definition Dutch Paradice //////////////////////////////////////////
ROM_START( paradice )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750615.bin", 0x00000, 0x10000, CRC(f51192e5) SHA1(a1290e32bba698006e83fd8d6075202586232929))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770084.vid", 0x00000, 0x20000, CRC(8f27bd34) SHA1(fccf7283b5c952b74258ee6e5138c1ca89384e24))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001037.snd", 0x00000, 0x20000, CRC(82f74276) SHA1(c51c3caeb7bf514ec7a1b452c8effc4c79186062))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770085.ch1", 0x00000, 0x20000, CRC(4d1fb82f) SHA1(054f683d1d7c884911bd2d0f85aab4c59ddf9930))
ROM_LOAD("95770086.ch2", 0x20000, 0x20000, CRC(7b566e11) SHA1(f34c82ad75a0f88204ac4ae83a00801215c46ca9))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD( "pdcepal.bin", 0, 8 , CRC(64020c97) SHA1(9371841e2df950c1f2e5b5a4b52621beb6f60945))
ROM_END
// ROM definition Dutch Pokio /////////////////////////////////////////////
ROM_START( pokio )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750278.bin", 0x00000, 0x10000, CRC(5124b24d) SHA1(9bc63891a8e9283c2baa64c264a5d6d1625d44b2))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770044.vid", 0x00000, 0x20000, CRC(46d7a6d8) SHA1(01f58e735621661b57c61491b3769ae99e92476a))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001016.snd", 0x00000, 0x20000, CRC(98aaff76) SHA1(4a59cf83daf018d93f1ff7805e06309d2f3d7252))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770045.chr", 0x00000, 0x20000, CRC(dd30da90) SHA1(b4f5a229d88613c0c7d43adf3f325c619abe38a3))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD("pokiopal.bin", 0, 8 , CRC(53535184) SHA1(c5c98085e39ca3671dca72c21a8466d7d70cd341))
ROM_END
// ROM definition pyramid prototype //////////////////////////////////////
ROM_START( pyramid )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750898.bin", 0x00000, 0x10000, CRC(3b0df16c) SHA1(9af599fe604f86c72986aa1610d74837852e023f))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770108.vid", 0x00000, 0x20000, CRC(216ff683) SHA1(227764771600ce88c5f36bed9878e6bb9988ae8f))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001038.snd", 0x00000, 0x20000, CRC(f885c42e) SHA1(4d79fc5ae4c58247740d78d81302bfbb43331c43))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770106.ch1", 0x00000, 0x20000, CRC(a83c27ae) SHA1(f61ca3cdf19a933bae18c1b32a5fb0a2204dde78))
ROM_LOAD("95770107.ch2", 0x20000, 0x20000, CRC(52e59f64) SHA1(ea4828c2cfb72cd77c92c60560b4d5ee424f7dca))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD("pyrmdpal.bin", 0, 8 , CRC(1c7c37bb) SHA1(fe0276603fee8f58e4318f91645260368212b78b))
ROM_END
// ROM definition Dutch slots /////////////////////////////////////////////
ROM_START( slotsnl )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750368.bin", 0x00000, 0x10000, CRC(3a43048c) SHA1(13728e05b334cba90ea9cc51ea00c4384baa8614))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("video.vid", 0x00000, 0x20000, CRC(cc760208) SHA1(cc01b1e31335b26f2d0f3470d8624476b153655f))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("95001029.snd", 0x00000, 0x20000, CRC(7749c724) SHA1(a87cce0c99e392f501bba44b3936a7059d682c9c))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("charset.chr", 0x00000, 0x20000, CRC(ef4300b6) SHA1(a1f765f38c2f146651fc685ea6195af72465f559))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD( "slotspal.bin", 0, 8 , CRC(ee5421f0) SHA1(21bdcbf11dda8b1a93c49ae1c706954bba53c917))
ROM_END
// ROM definition Belgian Slots (Token pay per round) Payslide ////////////
ROM_START( sltblgtk )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95750943.bin", 0x00000, 0x10000, CRC(c9fb8153) SHA1(7c1d0660c15f05b1e0784d8322c62981fe8dc4c9))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("adder121.bin", 0x00000, 0x20000, CRC(cedbbf28) SHA1(559ae341b55462feea771127394a54fc65266818))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("sound029.bin", 0x00000, 0x20000, CRC(7749c724) SHA1(a87cce0c99e392f501bba44b3936a7059d682c9c))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("chr122.bin", 0x00000, 0x20000, CRC(a1e3bdf4) SHA1(f0cabe08dee028e2014cbf0fc3fe0806cdfa60c6))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD("stsbtpal.bin", 0, 8 , CRC(20e13635) SHA1(5aa7e7cac8c00ebc193d63d0c6795904f42c70fa))
ROM_END
// ROM definition Belgian Slots (Cash Payout) /////////////////////////////
ROM_START( sltblgp1 )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95752008.bin", 0x00000, 0x10000, CRC(3167d3b9) SHA1(a28563f65d55c4d47f3e7fdb41e050d8a733b9bd))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("adder142.bin", 0x00000, 0x20000, CRC(a6f6356b) SHA1(b3d3063155ee3ea888273081f844279b6e33f7d9))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("sound033.bin", 0x00000, 0x20000, CRC(bb1dfa55) SHA1(442454fccfe03e6f4c3353551cb7459e184a099d))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("chr143.bin", 0x00000, 0x20000, CRC(a40e91e2) SHA1(87dc76963ea961fcfbe4f3e25df9162348d39d79))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD("stsbcpal.bin", 0, 8 , CRC(c63bcab6) SHA1(238841165d5b3241b0bcc5c1792e9c0be1fc0177))
ROM_END
// ROM definition Belgian Slots (Cash Payout) /////////////////////////////
ROM_START( sltblgpo )
ROM_REGION( 0x12000, REGION_CPU1, 0 )
ROM_LOAD("95770938.bin", 0x00000, 0x10000, CRC(7e802634) SHA1(fecf86e632546649d5e647c42a248b39fc2cf982))
ROM_REGION( 0x20000, REGION_CPU2, 0 )
ROM_LOAD("95770120.chr", 0x00000, 0x20000, CRC(ad505138) SHA1(67ccd8dc30e76283247ab5a62b22337ebaff74cd))
ROM_REGION( 0x20000, REGION_SOUND1, 0 )
ROM_LOAD("sound033.bin", 0x00000, 0x20000, CRC(bb1dfa55) SHA1(442454fccfe03e6f4c3353551cb7459e184a099d))
ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF )
ROM_LOAD("95770110.add", 0x00000, 0x20000, CRC(64b03284) SHA1(4b1c17b75e449c9762bb949d7cde0694a3aaabeb))
ROM_REGION( 0x10, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD("stsbcpal.bin", 0, 8 , CRC(c63bcab6) SHA1(238841165d5b3241b0bcc5c1792e9c0be1fc0177))
ROM_END
// year, name, parent, machine, input, init, monitor, company, fullname
GAMEL( 1993, qntoondo, qntoond, scorpion2_vid, qntoond, adder_dutch,0, "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-136)", GAME_SUPPORTS_SAVE,layout_quintoon )
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
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
GAMEL( 1993, quintono, quintoon, scorpion2_vid, quintono, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-750-203)", GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
GAMEL( 1993, qntoond, 0, scorpion2_vid, qntoond, adder_dutch,0, "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-243)", GAME_SUPPORTS_SAVE,layout_quintoon )
GAMEL( 1994, pokio, 0, scorpion2_vid, pokio, adder_dutch,0, "BFM/ELAM", "Pokio (Dutch, Game Card 95-750-278)", GAME_SUPPORTS_SAVE,layout_pokio )
GAMEL( 1995, slotsnl, 0, scorpion2_vid, slotsnl, adder_dutch,0, "BFM/ELAM", "Slots (Dutch, Game Card 95-750-368)", GAME_SUPPORTS_SAVE,layout_slots )
GAMEL( 1995, paradice, 0, scorpion2_vid, paradice, adder_dutch,0, "BFM/ELAM", "Paradice (Dutch, Game Card 95-750-615)", GAME_SUPPORTS_SAVE,layout_paradice )
GAMEL( 1996, pyramid, 0, scorpion2_vid, pyramid, pyramid, 0, "BFM/ELAM", "Pyramid (Dutch, Game Card 95-750-898)", GAME_SUPPORTS_SAVE,layout_pyramid )
GAMEL( 1996, sltblgtk, 0, scorpion2_vid, sltblgtk, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Token, Game Card 95-750-943)", GAME_SUPPORTS_SAVE,layout_sltblgtk )
GAMEL( 1996, sltblgpo, 0, scorpion2_vid, sltblgpo, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-750-938)", GAME_SUPPORTS_SAVE,layout_sltblgpo )
GAMEL( 1996, sltblgp1, sltblgpo, scorpion2_vid, sltblgpo, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-752-008)", GAME_SUPPORTS_SAVE,layout_sltblgpo )
GAMEL( 1997, gldncrwn, 0, scorpion2_vid, gldncrwn, gldncrwn, 0, "BFM/ELAM", "Golden Crown (Dutch, Game Card 95-752-011)", GAME_SUPPORTS_SAVE,layout_gldncrwn )