/**************************************************************************************** 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/mmtr.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 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; 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< 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< 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 ( 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 = MAME_TIME_TO_CYCLES(0, mame_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 ) { 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 )